@deck.gl/geo-layers 9.4.0-beta.4 → 9.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist.min.js CHANGED
@@ -4,10 +4,10 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['deck'] = factory();
6
6
  else root['deck'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var w1=Object.create;var Po=Object.defineProperty;var L1=Object.getOwnPropertyDescriptor;var F1=Object.getOwnPropertyNames;var P1=Object.getPrototypeOf,N1=Object.prototype.hasOwnProperty;var Cf=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var He=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},pe=(t,e)=>{for(var r in e)Po(t,r,{get:e[r],enumerable:!0})},Fo=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of F1(e))!N1.call(t,o)&&o!==r&&Po(t,o,{get:()=>e[o],enumerable:!(n=L1(e,o))||n.enumerable});return t},_t=(t,e,r)=>(Fo(t,e,"default"),r&&Fo(r,e,"default")),D=(t,e,r)=>(r=t!=null?w1(P1(t)):{},Fo(e||!t||!t.__esModule?Po(r,"default",{value:t,enumerable:!0}):r,t)),O1=t=>Fo(Po({},"__esModule",{value:!0}),t);var ke=He((Cv,Ef)=>{Ef.exports=globalThis.deck});var ze=He((Mv,If)=>{If.exports=globalThis.deck});var Yo=He((oR,Gu)=>{Gu.exports=globalThis.h3||{}});var Xt=He((G3,Hh)=>{Hh.exports=globalThis.loaders});var Cc=He((qp,Wn)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof Cf=="function"&&typeof Wn=="object"&&Wn&&Wn.exports?Wn.exports=e():(t.dcodeIO=t.dcodeIO||{}).Long=e()})(qp,function(){"use strict";function t(A,g,B){this.low=A|0,this.high=g|0,this.unsigned=!!B}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(A){return(A&&A.__isLong__)===!0}t.isLong=e;var r={},n={};function o(A,g){var B,w,L;return g?(A>>>=0,(L=0<=A&&A<256)&&(w=n[A],w)?w:(B=i(A,(A|0)<0?-1:0,!0),L&&(n[A]=B),B)):(A|=0,(L=-128<=A&&A<128)&&(w=r[A],w)?w:(B=i(A,A<0?-1:0,!1),L&&(r[A]=B),B))}t.fromInt=o;function s(A,g){if(isNaN(A)||!isFinite(A))return g?x:b;if(g){if(A<0)return x;if(A>=p)return E}else{if(A<=-d)return I;if(A+1>=d)return M}return A<0?s(-A,g).neg():i(A%h|0,A/h|0,g)}t.fromNumber=s;function i(A,g,B){return new t(A,g,B)}t.fromBits=i;var a=Math.pow;function c(A,g,B){if(A.length===0)throw Error("empty string");if(A==="NaN"||A==="Infinity"||A==="+Infinity"||A==="-Infinity")return b;if(typeof g=="number"?(B=g,g=!1):g=!!g,B=B||10,B<2||36<B)throw RangeError("radix");var w;if((w=A.indexOf("-"))>0)throw Error("interior hyphen");if(w===0)return c(A.substring(1),g,B).neg();for(var L=s(a(B,8)),R=b,O=0;O<A.length;O+=8){var H=Math.min(8,A.length-O),U=parseInt(A.substring(O,O+H),B);if(H<8){var Z=s(a(B,H));R=R.mul(Z).add(s(U))}else R=R.mul(L),R=R.add(s(U))}return R.unsigned=g,R}t.fromString=c;function l(A){return A instanceof t?A:typeof A=="number"?s(A):typeof A=="string"?c(A):i(A.low,A.high,A.unsigned)}t.fromValue=l;var f=65536,u=1<<24,h=f*f,p=h*h,d=p/2,m=o(u),b=o(0);t.ZERO=b;var x=o(0,!0);t.UZERO=x;var y=o(1);t.ONE=y;var _=o(1,!0);t.UONE=_;var T=o(-1);t.NEG_ONE=T;var M=i(-1,2147483647,!1);t.MAX_VALUE=M;var E=i(-1,-1,!0);t.MAX_UNSIGNED_VALUE=E;var I=i(0,-2147483648,!1);t.MIN_VALUE=I;var C=t.prototype;return C.toInt=function(){return this.unsigned?this.low>>>0:this.low},C.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},C.toString=function(g){if(g=g||10,g<2||36<g)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(I)){var B=s(g),w=this.div(B),L=w.mul(B).sub(this);return w.toString(g)+L.toInt().toString(g)}else return"-"+this.neg().toString(g);for(var R=s(a(g,6),this.unsigned),O=this,H="";;){var U=O.div(R),Z=O.sub(U.mul(R)).toInt()>>>0,j=Z.toString(g);if(O=U,O.isZero())return j+H;for(;j.length<6;)j="0"+j;H=""+j+H}},C.getHighBits=function(){return this.high},C.getHighBitsUnsigned=function(){return this.high>>>0},C.getLowBits=function(){return this.low},C.getLowBitsUnsigned=function(){return this.low>>>0},C.getNumBitsAbs=function(){if(this.isNegative())return this.eq(I)?64:this.neg().getNumBitsAbs();for(var g=this.high!=0?this.high:this.low,B=31;B>0&&(g&1<<B)==0;B--);return this.high!=0?B+33:B+1},C.isZero=function(){return this.high===0&&this.low===0},C.isNegative=function(){return!this.unsigned&&this.high<0},C.isPositive=function(){return this.unsigned||this.high>=0},C.isOdd=function(){return(this.low&1)===1},C.isEven=function(){return(this.low&1)===0},C.equals=function(g){return e(g)||(g=l(g)),this.unsigned!==g.unsigned&&this.high>>>31===1&&g.high>>>31===1?!1:this.high===g.high&&this.low===g.low},C.eq=C.equals,C.notEquals=function(g){return!this.eq(g)},C.neq=C.notEquals,C.lessThan=function(g){return this.comp(g)<0},C.lt=C.lessThan,C.lessThanOrEqual=function(g){return this.comp(g)<=0},C.lte=C.lessThanOrEqual,C.greaterThan=function(g){return this.comp(g)>0},C.gt=C.greaterThan,C.greaterThanOrEqual=function(g){return this.comp(g)>=0},C.gte=C.greaterThanOrEqual,C.compare=function(g){if(e(g)||(g=l(g)),this.eq(g))return 0;var B=this.isNegative(),w=g.isNegative();return B&&!w?-1:!B&&w?1:this.unsigned?g.high>>>0>this.high>>>0||g.high===this.high&&g.low>>>0>this.low>>>0?-1:1:this.sub(g).isNegative()?-1:1},C.comp=C.compare,C.negate=function(){return!this.unsigned&&this.eq(I)?I:this.not().add(y)},C.neg=C.negate,C.add=function(g){e(g)||(g=l(g));var B=this.high>>>16,w=this.high&65535,L=this.low>>>16,R=this.low&65535,O=g.high>>>16,H=g.high&65535,U=g.low>>>16,Z=g.low&65535,j=0,K=0,te=0,_e=0;return _e+=R+Z,te+=_e>>>16,_e&=65535,te+=L+U,K+=te>>>16,te&=65535,K+=w+H,j+=K>>>16,K&=65535,j+=B+O,j&=65535,i(te<<16|_e,j<<16|K,this.unsigned)},C.subtract=function(g){return e(g)||(g=l(g)),this.add(g.neg())},C.sub=C.subtract,C.multiply=function(g){if(this.isZero()||(e(g)||(g=l(g)),g.isZero()))return b;if(this.eq(I))return g.isOdd()?I:b;if(g.eq(I))return this.isOdd()?I:b;if(this.isNegative())return g.isNegative()?this.neg().mul(g.neg()):this.neg().mul(g).neg();if(g.isNegative())return this.mul(g.neg()).neg();if(this.lt(m)&&g.lt(m))return s(this.toNumber()*g.toNumber(),this.unsigned);var B=this.high>>>16,w=this.high&65535,L=this.low>>>16,R=this.low&65535,O=g.high>>>16,H=g.high&65535,U=g.low>>>16,Z=g.low&65535,j=0,K=0,te=0,_e=0;return _e+=R*Z,te+=_e>>>16,_e&=65535,te+=L*Z,K+=te>>>16,te&=65535,te+=R*U,K+=te>>>16,te&=65535,K+=w*Z,j+=K>>>16,K&=65535,K+=L*U,j+=K>>>16,K&=65535,K+=R*H,j+=K>>>16,K&=65535,j+=B*Z+w*U+L*H+R*O,j&=65535,i(te<<16|_e,j<<16|K,this.unsigned)},C.mul=C.multiply,C.divide=function(g){if(e(g)||(g=l(g)),g.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?x:b;var B,w,L;if(this.unsigned){if(g.unsigned||(g=g.toUnsigned()),g.gt(this))return x;if(g.gt(this.shru(1)))return _;L=x}else{if(this.eq(I)){if(g.eq(y)||g.eq(T))return I;if(g.eq(I))return y;var R=this.shr(1);return B=R.div(g).shl(1),B.eq(b)?g.isNegative()?y:T:(w=this.sub(g.mul(B)),L=B.add(w.div(g)),L)}else if(g.eq(I))return this.unsigned?x:b;if(this.isNegative())return g.isNegative()?this.neg().div(g.neg()):this.neg().div(g).neg();if(g.isNegative())return this.div(g.neg()).neg();L=b}for(w=this;w.gte(g);){B=Math.max(1,Math.floor(w.toNumber()/g.toNumber()));for(var O=Math.ceil(Math.log(B)/Math.LN2),H=O<=48?1:a(2,O-48),U=s(B),Z=U.mul(g);Z.isNegative()||Z.gt(w);)B-=H,U=s(B,this.unsigned),Z=U.mul(g);U.isZero()&&(U=y),L=L.add(U),w=w.sub(Z)}return L},C.div=C.divide,C.modulo=function(g){return e(g)||(g=l(g)),this.sub(this.div(g).mul(g))},C.mod=C.modulo,C.not=function(){return i(~this.low,~this.high,this.unsigned)},C.and=function(g){return e(g)||(g=l(g)),i(this.low&g.low,this.high&g.high,this.unsigned)},C.or=function(g){return e(g)||(g=l(g)),i(this.low|g.low,this.high|g.high,this.unsigned)},C.xor=function(g){return e(g)||(g=l(g)),i(this.low^g.low,this.high^g.high,this.unsigned)},C.shiftLeft=function(g){return e(g)&&(g=g.toInt()),(g&=63)===0?this:g<32?i(this.low<<g,this.high<<g|this.low>>>32-g,this.unsigned):i(0,this.low<<g-32,this.unsigned)},C.shl=C.shiftLeft,C.shiftRight=function(g){return e(g)&&(g=g.toInt()),(g&=63)===0?this:g<32?i(this.low>>>g|this.high<<32-g,this.high>>g,this.unsigned):i(this.high>>g-32,this.high>=0?0:-1,this.unsigned)},C.shr=C.shiftRight,C.shiftRightUnsigned=function(g){if(e(g)&&(g=g.toInt()),g&=63,g===0)return this;var B=this.high;if(g<32){var w=this.low;return i(w>>>g|B<<32-g,B>>>g,this.unsigned)}else return g===32?i(B,0,this.unsigned):i(B>>>g-32,0,this.unsigned)},C.shru=C.shiftRightUnsigned,C.toSigned=function(){return this.unsigned?i(this.low,this.high,!1):this},C.toUnsigned=function(){return this.unsigned?this:i(this.low,this.high,!0)},C.toBytes=function(A){return A?this.toBytesLE():this.toBytesBE()},C.toBytesLE=function(){var A=this.high,g=this.low;return[g&255,g>>>8&255,g>>>16&255,g>>>24&255,A&255,A>>>8&255,A>>>16&255,A>>>24&255]},C.toBytesBE=function(){var A=this.high,g=this.low;return[A>>>24&255,A>>>16&255,A>>>8&255,A&255,g>>>24&255,g>>>16&255,g>>>8&255,g&255]},t})});var Uc=He((kU,Nd)=>{Nd.exports=globalThis.luma});var Hs=He((zU,Od)=>{Od.exports=globalThis.deck});var Dc=He((jU,Ud)=>{Ud.exports=globalThis.luma});var W0=He((g6,J0)=>{J0.exports=globalThis.deck});var n1=He(hf=>{hf.read=function(t,e,r,n,o){var s,i,a=o*8-n-1,c=(1<<a)-1,l=c>>1,f=-7,u=r?o-1:0,h=r?-1:1,p=t[e+u];for(u+=h,s=p&(1<<-f)-1,p>>=-f,f+=a;f>0;s=s*256+t[e+u],u+=h,f-=8);for(i=s&(1<<-f)-1,s>>=-f,f+=n;f>0;i=i*256+t[e+u],u+=h,f-=8);if(s===0)s=1-l;else{if(s===c)return i?NaN:(p?-1:1)*(1/0);i=i+Math.pow(2,n),s=s-l}return(p?-1:1)*i*Math.pow(2,s-n)};hf.write=function(t,e,r,n,o,s){var i,a,c,l=s*8-o-1,f=(1<<l)-1,u=f>>1,h=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,d=n?1:-1,m=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,i=f):(i=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-i))<1&&(i--,c*=2),i+u>=1?e+=h/c:e+=h*Math.pow(2,1-u),e*c>=2&&(i++,c/=2),i+u>=f?(a=0,i=f):i+u>=1?(a=(e*c-1)*Math.pow(2,o),i=i+u):(a=e*Math.pow(2,u-1)*Math.pow(2,o),i=0));o>=8;t[r+p]=a&255,p+=d,a/=256,o-=8);for(i=i<<o|a,l+=o;l>0;t[r+p]=i&255,p+=d,i/=256,l-=8);t[r+p-d]|=m*128}});var l1=He((sz,c1)=>{"use strict";c1.exports=W;var zi=n1();function W(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}W.Varint=0;W.Fixed64=1;W.Bytes=2;W.Fixed32=5;var pf=65536*65536,o1=1/pf,FB=12,a1=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");W.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),o=n>>3,s=this.pos;this.type=n&7,t(o,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=ji(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=i1(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=ji(this.buf,this.pos)+ji(this.buf,this.pos+4)*pf;return this.pos+=8,t},readSFixed64:function(){var t=ji(this.buf,this.pos)+i1(this.buf,this.pos+4)*pf;return this.pos+=8,t},readFloat:function(){var t=zi.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=zi.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e=this.buf,r,n;return n=e[this.pos++],r=n&127,n<128||(n=e[this.pos++],r|=(n&127)<<7,n<128)||(n=e[this.pos++],r|=(n&127)<<14,n<128)||(n=e[this.pos++],r|=(n&127)<<21,n<128)?r:(n=e[this.pos],r|=(n&15)<<28,PB(r,t,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2===1?(t+1)/-2:t/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=FB&&a1?XB(this.buf,e,t):WB(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==W.Bytes)return t.push(this.readVarint(e));var r=St(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==W.Bytes)return t.push(this.readSVarint());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==W.Bytes)return t.push(this.readBoolean());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==W.Bytes)return t.push(this.readFloat());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==W.Bytes)return t.push(this.readDouble());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==W.Bytes)return t.push(this.readFixed32());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==W.Bytes)return t.push(this.readSFixed32());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==W.Bytes)return t.push(this.readFixed64());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==W.Bytes)return t.push(this.readSFixed64());var e=St(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=t&7;if(e===W.Varint)for(;this.buf[this.pos++]>127;);else if(e===W.Bytes)this.pos=this.readVarint()+this.pos;else if(e===W.Fixed32)this.pos+=4;else if(e===W.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+e)},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),dn(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),dn(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),dn(this.buf,t&-1,this.pos),dn(this.buf,Math.floor(t*o1),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),dn(this.buf,t&-1,this.pos),dn(this.buf,Math.floor(t*o1),this.pos+4),this.pos+=8},writeVarint:function(t){if(t=+t||0,t>268435455||t<0){NB(t,this);return}this.realloc(4),this.buf[this.pos++]=t&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=t>>>7&127)))},writeSVarint:function(t){this.writeVarint(t<0?-t*2-1:t*2)},writeBoolean:function(t){this.writeVarint(!!t)},writeString:function(t){t=String(t),this.realloc(t.length*4),this.pos++;var e=this.pos;this.pos=KB(this.buf,t,this.pos);var r=this.pos-e;r>=128&&s1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),zi.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),zi.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r]},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&s1(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,W.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,DB,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,GB,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,kB,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,VB,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,HB,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,zB,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,jB,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,qB,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,JB,e)},writeBytesField:function(t,e){this.writeTag(t,W.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,W.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,W.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,W.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,W.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,W.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,W.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,W.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,W.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,W.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,!!e)}};function PB(t,e,r){var n=r.buf,o,s;if(s=n[r.pos++],o=(s&112)>>4,s<128||(s=n[r.pos++],o|=(s&127)<<3,s<128)||(s=n[r.pos++],o|=(s&127)<<10,s<128)||(s=n[r.pos++],o|=(s&127)<<17,s<128)||(s=n[r.pos++],o|=(s&127)<<24,s<128)||(s=n[r.pos++],o|=(s&1)<<31,s<128))return pn(t,o,e);throw new Error("Expected varint not more than 10 bytes")}function St(t){return t.type===W.Bytes?t.readVarint()+t.pos:t.pos+1}function pn(t,e,r){return r?e*4294967296+(t>>>0):(e>>>0)*4294967296+(t>>>0)}function NB(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(r=~(-t%4294967296),n=~(-t/4294967296),r^4294967295?r=r+1|0:(r=0,n=n+1|0)),t>=18446744073709552e3||t<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),OB(r,n,e),UB(n,e)}function OB(t,e,r){r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos]=t&127}function UB(t,e){var r=(t&7)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127)))))}function s1(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));r.realloc(n);for(var o=r.pos-1;o>=t;o--)r.buf[o+n]=r.buf[o]}function DB(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function GB(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function VB(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function HB(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function kB(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function zB(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function jB(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function qB(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function JB(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function ji(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function dn(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function i1(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function WB(t,e,r){for(var n="",o=e;o<r;){var s=t[o],i=null,a=s>239?4:s>223?3:s>191?2:1;if(o+a>r)break;var c,l,f;a===1?s<128&&(i=s):a===2?(c=t[o+1],(c&192)===128&&(i=(s&31)<<6|c&63,i<=127&&(i=null))):a===3?(c=t[o+1],l=t[o+2],(c&192)===128&&(l&192)===128&&(i=(s&15)<<12|(c&63)<<6|l&63,(i<=2047||i>=55296&&i<=57343)&&(i=null))):a===4&&(c=t[o+1],l=t[o+2],f=t[o+3],(c&192)===128&&(l&192)===128&&(f&192)===128&&(i=(s&15)<<18|(c&63)<<12|(l&63)<<6|f&63,(i<=65535||i>=1114112)&&(i=null))),i===null?(i=65533,a=1):i>65535&&(i-=65536,n+=String.fromCharCode(i>>>10&1023|55296),i=56320|i&1023),n+=String.fromCharCode(i),o+=a}return n}function XB(t,e,r){return a1.decode(t.subarray(e,r))}function KB(t,e,r){for(var n=0,o,s;n<e.length;n++){if(o=e.charCodeAt(n),o>55295&&o<57344)if(s)if(o<56320){t[r++]=239,t[r++]=191,t[r++]=189,s=o;continue}else o=s-55296<<10|o-56320|65536,s=null;else{o>56319||n+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):s=o;continue}else s&&(t[r++]=239,t[r++]=191,t[r++]=189,s=null);o<128?t[r++]=o:(o<2048?t[r++]=o>>6|192:(o<65536?t[r++]=o>>12|224:(t[r++]=o>>18|240,t[r++]=o>>12&63|128),t[r++]=o>>6&63|128),t[r++]=o&63|128)}return r}});var Lo={};pe(Lo,{A5Layer:()=>Vh,GeohashLayer:()=>R1,GreatCircleLayer:()=>jp,H3ClusterLayer:()=>Pd,H3HexagonLayer:()=>Vs,MVTLayer:()=>M1,QuadkeyLayer:()=>od,S2Layer:()=>rd,TerrainLayer:()=>q0,Tile3DLayer:()=>O0,TileLayer:()=>ar,TripsLayer:()=>wd,_GeoCellLayer:()=>Fe,_Tile2DHeader:()=>sr,_Tileset2D:()=>ir,_WMSLayer:()=>Hr,_getURLFromTemplate:()=>it});var Ze={},Mf=D(ke(),1);_t(Ze,D(ke(),1));if(!Mf.GeoJsonLayer)throw new Error("@deck.gl/layers is not found");_t(Lo,Ze);var Bf=D(ze(),1),Xi=D(ke(),1),U1={...Xi.PolygonLayer.defaultProps},gn=class extends Bf.CompositeLayer{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:n,filled:o,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineAntialiasing:f,lineJointRounded:u,lineMiterLimit:h,lineDashJustified:p,getElevation:d,getFillColor:m,getLineColor:b,getLineWidth:x}=this.props,{updateTriggers:y,material:_,transitions:T}=this.props,M=this.getSubLayerClass("cell",Xi.PolygonLayer),{updateTriggers:E,...I}=this.indexToBounds()||{};return new M({filled:o,wireframe:n,extruded:r,elevationScale:e,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineAntialiasing:f,lineJointRounded:u,lineMiterLimit:h,lineDashJustified:p,material:_,transitions:T,getElevation:d,getFillColor:m,getLineColor:b,getLineWidth:x},this.getSubLayerProps({id:"cell",updateTriggers:y&&{...E,getElevation:y.getElevation,getFillColor:y.getFillColor,getLineColor:y.getLineColor,getLineWidth:y.getLineWidth}}),I)}};gn.layerName="GeoCellLayer";gn.defaultProps=U1;var Fe=gn;function tu(){let t=new Float64Array(4);return t[0]=1,t[3]=1,t}function D1(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t}function jt(){return new Float64Array(2)}function $i(t){let e=new Float64Array(2);return e[0]=t[0],e[1]=t[1],e}function G1(t,e,r){return t[0]=e,t[1]=r,t}function V1(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function ru(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function H1(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function nu(t,e){return t[0]=-e[0],t[1]=-e[1],t}function ou(t){return Math.hypot(t[0],t[1])}function su(t,e,r,n){let o=e[0],s=e[1];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t}function k1(t,e,r,n){let o=e[0]-r[0],s=e[1]-r[1],i=Math.sin(n),a=Math.cos(n);return t[0]=o*a-s*i+r[0],t[1]=o*i+s*a+r[1],t}function ca(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function iu(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function Pe(){return new Float64Array(3)}function Er(t,e,r){let n=new Float64Array(3);return n[0]=t,n[1]=e,n[2]=r,n}function z1(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function No(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function Ki(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function j1(t){return Math.hypot(t[0],t[1],t[2])}function vf(t,e){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2])}function la(t,e){let r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function ft(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Rf(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function Ho(t,e,r){let n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,m=n*u-o*f,b=i*2;return f*=b,u*=b,h*=b,p*=2,d*=2,m*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+m,t}var Jo=(1+Math.sqrt(5))/2,Bv=2*Math.PI,ko=2*Math.PI/5,$e=Math.PI/5,wf=Math.PI/10,q1=2*Math.atan(Jo),ea=Math.PI-q1,vv=-.5*Math.PI+Math.acos(-1/Math.sqrt(3-Jo)),Wo=(Math.sqrt(5)-1)/2,J1=3-Math.sqrt(5),W1=Math.sqrt(3-Jo),Rv=Math.sqrt(3)*W1/Jo,zo=63710072e-1,wv=4*Math.PI*zo*zo;function X1(t,e,r,n){let o=e[0]-t[0],s=e[1]-t[1],i=n[0]-r[0],a=n[1]-r[1],c=o*a-s*i;if(Math.abs(c)<1e-12)return!1;let l=r[0]-t[0],f=r[1]-t[1],u=(l*a-f*i)/c,h=(l*s-f*o)/c;return u>=0&&u<=1&&h>=0&&h<=1}var fa=class ta{constructor(e){this.vertices=e,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let e=0,r=this.vertices.length;for(let n=0;n<r;n++){let o=(n+1)%r;e+=(this.vertices[o][0]-this.vertices[n][0])*(this.vertices[o][1]+this.vertices[n][1])}return e}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(e){for(let r of this.vertices)ru(r,r,e);return this}rotate180(){for(let e of this.vertices)nu(e,e);return this}reflectY(){for(let e of this.vertices)e[1]=-e[1];return this.vertices.reverse(),this}translate(e){for(let r of this.vertices)V1(r,r,e);return this}transform(e){for(let r of this.vertices)ca(r,r,e);return this}transform2d(e){for(let r of this.vertices)iu(r,r,e);return this}clone(){return new ta(this.vertices.map(r=>$i(r)))}getCenter(){let e=this.vertices.length;return this.vertices.reduce((n,o)=>[n[0]+o[0]/e,n[1]+o[1]/e],[0,0])}containsPoint(e){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");let r=this.vertices.length,n=1;for(let o=0;o<r;o++){let s=this.vertices[o],i=this.vertices[(o+1)%r],a=s[0]-i[0],c=s[1]-i[1],l=e[0]-s[0],f=e[1]-s[1],u=a*f-c*l;if(u<0){let h=Math.sqrt(l*l+f*f);n=Math.min(n,u/h)}}return n}intersectsSegment(e,r){if(this.containsPoint(e)>0||this.containsPoint(r)>0)return!0;let n=this.vertices.length;for(let o=0;o<n;o++){let s=this.vertices[o],i=this.vertices[(o+1)%n];if(X1(e,r,s,i))return!0}return!1}splitEdges(e){if(e<=1)return this;let r=[],n=this.vertices.length;for(let o=0;o<n;o++){let s=this.vertices[o],i=this.vertices[(o+1)%n];r.push($i(s));for(let a=1;a<e;a++){let c=a/e,l=jt();su(l,s,i,c),r.push(l)}}return new ta(r)}},au=[0,0],cu=[0,1],kt=[.7885966681787006,1.6149108024237764],lu=[1.6171013659387945,1.054928690397459],fu=[Math.cos(wf),Math.sin(wf)],K1=2*ou(kt)*Math.cos($e),Y1=$e-Math.atan2(kt[1],kt[0]),Q1=2*Wo/K1;[au,cu,kt,lu,fu].forEach(t=>{ru(t,t,Q1),k1(t,t,[0,0],Y1)});var uu=new fa([au,cu,kt,lu,fu]),hu=Math.atan2(kt[1],kt[0])-$e,Z1=[0,0],jo=Wo/Math.cos($e),Lf=hu+$e,Ct=[jo*Math.cos(Lf),jo*Math.sin(Lf)],Ff=hu-$e,zt=[jo*Math.cos(Ff),jo*Math.sin(Ff)],pu=new fa([Z1,Ct,zt]),$1=[Ct[0],Ct[1],zt[0],zt[1]],Oo=1/(Ct[0]*zt[1]-zt[0]*Ct[1]),Lv=[zt[1]*Oo,-Ct[1]*Oo,-zt[0]*Oo,Ct[0]*Oo],eb=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2559257686421274e-24,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),tb=new Float64Array([.0022392089963541657,28831978048607556e-22,508622073997266e-23,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]),rb=class{applyCoefficients(t,e){let r=Math.sin(t),n=Math.cos(t),o=2*(n-r)*(n+r),s,i;return s=o*e[5]+e[4],i=o*s+e[3],s=o*i-s+e[2],i=o*s-i+e[1],s=o*i-s+e[0],t+2*r*n*s}forward(t){return this.applyCoefficients(t,eb)}inverse(t){return this.applyCoefficients(t,tb)}},du=new rb;function Pf(t){return t*(Math.PI/180)}function Nf(t){return t*(180/Math.PI)}function Of(t){let e=ou(t),r=Math.atan2(t[1],t[0]);return[e,r]}function nb([t,e]){let r=t*Math.cos(e),n=t*Math.sin(e);return[r,n]}function ob(t,[e,r,n]){let o=[e[0]-n[0],e[1]-n[1]],s=[n[0]-r[0],n[1]-r[1]],i=[t[0]-n[0],t[1]-n[1]],a=s[0]*o[1]-s[1]*o[0],c=(s[0]*i[1]-s[1]*i[0])/a,l=(o[0]*i[1]-o[1]*i[0])/a,f=1-(c+l);return[c,l,f]}function sb(t,[e,r,n]){return[t[0]*e[0]+t[1]*r[0]+t[2]*n[0],t[0]*e[1]+t[1]*r[1]+t[2]*n[1]]}function ra(t){let e=Math.atan2(t[1],t[0]),r=Math.sqrt(t[0]*t[0]+t[1]*t[1]),n=Math.atan2(r,t[2]);return[e,n]}function Ht([t,e]){let r=Math.sin(e),n=r*Math.cos(t),o=r*Math.sin(t),s=Math.cos(e);return[n,o,s]}var mu=93;function ib([t,e]){let r=Pf(t+mu),n=Pf(e),o=du.forward(n),s=Math.PI/2-o;return[r,s]}function gu(t){return((t+180)%360+360)%360-180}function bu([t,e]){let r=gu(Nf(t)-mu),n=Math.PI/2-e,o=du.inverse(n),s=Nf(o);return[r,s]}function ab(t){let e=Pe();for(let s=0;s<t.length;s++)z1(e,e,Ht(ib(t[s])));la(e,e);let[r,n]=bu(ra(e));(n>89.99||n<-89.99)&&(r=t[0][0]),r=gu(r);let o=new Array(t.length);for(let s=0;s<t.length;s++){let i=t[s][0],a=t[s][1];for(;i-r>180;)i=i-360;for(;i-r<-180;)i=i+360;o[s]=[i,a]}return o}function cb(){let t=new Float64Array(4);return t[3]=1,t}function lb(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}var Fv=Pe(),Pv=Er(1,0,0),Nv=Er(0,1,0);var Xo=Math.sqrt(5),Ko=Math.sqrt(.2),Au=Math.sqrt((1-Ko)/2),xu=Math.sqrt((1+Ko)/2),Uo=.5,Uf=Math.sqrt((2.5-Xo)/10),Df=Math.sqrt((2.5+Xo)/10),Gf=Math.sqrt((1+Ko)/8),Vf=Math.sqrt((1-Ko)/8),Hf=Math.sqrt((3-Xo)/8),kf=Math.sqrt((3+Xo)/8),fb=[[0,0],[Au,0],[Uf,Uo],[-Gf,Hf],[-Gf,-Hf],[Uf,-Uo],[-xu,0],[-Vf,-kf],[Df,-Uo],[Df,Uo],[-Vf,kf],[0,0]],ub=fb.map(([t,e])=>[-e,t]),Do=ub.map((t,e)=>e===0?[0,0,0,1]:e===11?[0,-1,0,0]:[...t,0,e<6?xu:Au]),Tu=["vu","uw","vw","vw","vw"],bn=["wu","uw","vw","vu","uw"],Yi=["wu","uv","wv","wu","uw"],Go=["vu","uv","wv","wu","uw"],hb=[Tu,Go,Yi,bn,Yi,Go,Yi,bn,bn,bn,Go,Go],pb=[4,2,3,2,0,4,3,2,2,0,3,0],zf=[0,1,2,4,3,5,7,8,6,11,10,9],je=[];function db(){Vo([0,0],0,Do[0]);for(let t=0;t<5;t++){let e=t*ko,r=e+$e;Vo([e,ea],$e,Do[t+1]),Vo([r,Math.PI-ea],$e,Do[(t+3)%5+6])}Vo([0,Math.PI],0,Do[11])}var Sr=0;function Vo(t,e,r){if(Sr>11)throw new Error(`Too many origins: ${Sr}`);let n=cb();lb(n,r);let o={id:Sr,axis:t,axisCartesian:Ht(t),quat:r,inverseQuat:n,angle:e,orientation:hb[Sr],firstQuintant:pb[Sr]};je.push(o),Sr++}db();je.sort((t,e)=>zf.indexOf(t.id)-zf.indexOf(e.id));je.forEach((t,e)=>t.id=e);function mb(t,e){let r=e.orientation,n=r===Tu||r===bn?-1:1,o=(t-e.firstQuintant+5)%5,s=r[o];return{quintant:(e.firstQuintant+n*o+5)%5,orientation:s}}var gb=class{forward([t,e]){return[Math.tan(e),t]}inverse([t,e]){return[e,Math.atan(t)]}};function bb(t,e,r,n,o,s){let i=new Float64Array(6);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i[4]=o,i[5]=s,i}function Ab(t,e,r){return t[0]*(e[1]*r[2]-e[2]*r[1])+t[1]*(e[2]*r[0]-e[0]*r[2])+t[2]*(e[0]*r[1]-e[1]*r[0])}var Ov=Pe(),Uv=Pe();function jf(t,e,r){let n=1+(t[0]*e[0]+t[1]*e[1]+t[2]*e[2])+(e[0]*r[0]+e[1]*r[1]+e[2]*r[2])+(r[0]*t[0]+r[1]*t[1]+r[2]*t[2]);return 2*Math.atan2(Ab(t,e,r),n)}var qf=Pe(),Ae=Pe(),Qi=jt(),Zi=jt(),xb=class yu{constructor(e){this.constants=yu.computeConstants(e)}static computeConstants(e){let[r,n,o]=e,s=Pe();Rf(s,n,o);let i=ft(r,n),a=ft(r,o),c=ft(n,o),l=ft(r,s),f=a+c,u=i+1,h=i*c-a,p=f*f-u*u,d=2*u*h,m=bb(l*l-p,-d,-2*l*f,2*l*u,l*l+p,d);return{volumeABC:l,areaABC:jf(r,n,o),AdotB:i,AdotC:a,alphaTransform:m}}forward(e,r,n){let[o,s,i]=r,{areaABC:a,volumeABC:c}=this.constants;Rf(qf,s,i);let l=ft(e,qf);No(Ae,e,c),Ki(Ae,Ae,o,-l);let f=j1(Ae),u=f>0?1/f:1;No(Ae,Ae,u);let p=Math.max(0,jf(o,s,Ae))/a,d=f/c*Math.sqrt((1+ft(o,Ae))/(1+ft(o,e))),m=[1-d,d*(1-p),d*p];return sb(m,n)}inverse(e,r,n){let[o,s,i]=n,a=ob(e,r),c=1-1e-14;if(a[0]>c)return o;if(a[1]>c)return s;if(a[2]>c)return i;let{AdotB:l,AdotC:f,alphaTransform:u,areaABC:h}=this.constants,p=ft(o,s),d=Math.abs(p-l)>Math.abs(p-f),m=d?i:s,b=d?s:i,x=d?a[1]:a[2],y=1-a[0],_=x/y*h;Qi[0]=Math.cos(_),Qi[1]=Math.sin(_),iu(Zi,Qi,u),No(Ae,m,Zi[0]),Ki(Ae,Ae,b,Zi[1]),la(Ae,Ae);let T=ft(o,Ae),M=1+y*y*(T-1),E=y*Math.sqrt((1+M)/(1+T)),I=M-T*E,C=Pe();return No(C,o,I),Ki(C,C,Ae,E),C}},Tb=!1,ua=[0,1,2,3,4].map(t=>{let e=tu();return D1(e,ko*t),e}),Jf=jt(),Wf=jt(),Dv=[0,1,2,3].map(t=>{let e=uu.clone();return t&1&&e.rotate180(),t&2&&e.reflectY(),e.getCenter()});function yb(t,e,r,n,o=Tb){let s=(o?pu:uu).clone();return n&1&&s.rotate180(),n&2&&s.reflectY(),G1(Wf,r.x+r.y,-r.x+(n&1)),ca(Jf,Wf,$1),s.translate(Jf),s.scale(1/2**t),s.transform(ua[e]),s}function Su(t){let e=pu.clone();return e.transform(ua[t]),e}function Sb(){let t=[];for(let e of ua)t.push(ca(jt(),Ct,e));return t.reverse(),new fa(t)}var _b=class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),this.vertices.length!==62)throw new Error("Failed to construct CRS: vertices length is not 62");Object.freeze(this.vertices)}getCanonicalTriangle(){return[this.vertices[0],this.vertices[32],this.vertices[12]]}getVertex(t){this.invocations++,this.invocations===1e4&&console.warn("Too many CRS invocations, results should be cached");for(let e of this.vertices)if(vf(t,e)<1e-5)return e;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){je.forEach(t=>this.add(Ht(t.axis)))}addVertices(){let t=Math.atan(J1);for(let e of je)for(let r=0;r<5;r++){let n=(2*r+1)*Math.PI/5,o=Ht([n+e.angle,t]);Ho(o,o,e.quat),this.add(o)}}addMidpoints(){let t=Math.atan(Wo);for(let e of je)for(let r=0;r<5;r++){let n=2*r*Math.PI/5,o=Ht([n+e.angle,t]);Ho(o,o,e.quat),this.add(o)}}add(t){let e=la(Pe(),t);return this.vertices.find(n=>vf(e,n)<1e-5)?!1:(this.vertices.push(e),!0)}},Xf=new _b,Cb=class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.equalArea=new xb(Xf.getCanonicalTriangle()),this.gnomonic=new gb}forward(t,e){return this.forwardCartesian(Ht(t),e)}forwardCartesian(t,e){let r=je[e],n=Pe();Ho(n,t,r.inverseQuat);let o=ra(n),s=this.gnomonic.forward(o);s[1]=s[1]-r.angle;let i=this.getFaceTriangleIndex(s),a=this.shouldReflect(s),c=this.getFaceTriangle(i,a,!1),l=this.getSphericalTriangle(i,e,a);return this.equalArea.forward(t,l,c)}inverse(t,e){let r=Of(t),n=this.getFaceTriangleIndex(r),o=this.shouldReflect(r),s=this.getFaceTriangle(n,o,!1),i=this.getSphericalTriangle(n,e,o),a=this.equalArea.inverse(t,s,i);return ra(a)}shouldReflect(t){let[e,r]=t;return nb([e,this.normalizeGamma(r)])[0]>Wo}getFaceTriangleIndex([t,e]){return(Math.floor(e/$e)+10)%10}getFaceTriangle(t,e=!1,r=!1){let n=t;return e&&(n+=r?20:10),this.faceTriangles[n]?this.faceTriangles[n]:(this.faceTriangles[n]=e?this._getReflectedFaceTriangle(t,r):this._getFaceTriangle(t),Object.freeze(this.faceTriangles[n]),this.faceTriangles[n])}_getFaceTriangle(t){let e=Math.floor((t+1)/2)%5,[r,n,o]=Su(e).getVertices(),s=jt();return su(s,n,o,.5),t%2===0?[r,s,n]:[r,o,s]}_getReflectedFaceTriangle(t,e=!1){let[r,n,o]=this._getFaceTriangle(t).map(a=>$i(a)),s=t%2===0;return nu(r,r),H1(r,r,s?n:o,e?1+1/Math.cos(ea):2),[r,o,n]}getSphericalTriangle(t,e,r=!1){let n=10*e+t;return r&&(n+=120),this.sphericalTriangles[n]?this.sphericalTriangles[n]:(this.sphericalTriangles[n]=this._getSphericalTriangle(t,e,r),Object.freeze(this.sphericalTriangles[n]),this.sphericalTriangles[n])}_getSphericalTriangle(t,e,r=!1){let n=je[e];return this.getFaceTriangle(t,r,!0).map(i=>{let[a,c]=Of(i),l=[a,c+n.angle],f=Ht(this.gnomonic.inverse(l));return Ho(f,f,n.quat),Xf.getVertex(f)})}normalizeGamma(t){let e=t/ko,r=Math.round(e);return(e-r)*ko}},_u={A:"PQAB",B:"B+++PQ---A",C:"P---RMb+++",M:"qQ+++C---b",P:"PpB---B+++",Q:"PQ---Cb+++",R:"b+++a---qQ"},Eb={A:"E",B:"+e-",C:"-e+",M:"T",P:"S",Q:"D",R:"+++D---"},Kf=Object.keys(_u),Gv=[...Kf,...Kf.map(t=>t.toLowerCase())],Mb=t=>t>="a"&&t<="z"?t.toUpperCase():t.toLowerCase(),Cu=t=>[...t].reverse().map(e=>e==="+"?"-":e==="-"?"+":Mb(e)).join("");function Yf(t,e){let r="";for(let n of t){let o=n.toUpperCase();e[n]!==void 0?r+=e[n]:n!==o&&e[o]!==void 0?r+=Cu(e[o]):r+=n}return r}var Eu=(t,e)=>({a:t.a+e.a,b:t.b+e.b}),Ib=t=>({a:-t.b,b:t.a+t.b}),Mu=(t,e)=>{let r=t,n=(e%6+6)%6;for(let o=0;o<n;o++)r=Ib(r);return r},Iu={E:{a:4,b:0},e:{a:4,b:0},S:{a:4,b:-2},s:{a:4,b:-2},U:{a:0,b:2},u:{a:0,b:2},D:{a:0,b:-2},d:{a:0,b:-2},T:{a:-4,b:0},t:{a:-4,b:0}},Bb=new Set(Object.keys(Iu)),vb={E:[{a:0,b:0},{a:4,b:0},{a:4,b:-4}],e:[{a:0,b:0},{a:4,b:0},{a:0,b:4}],S:[{a:0,b:0},{a:4,b:0},{a:4,b:-4}],s:[{a:4,b:-2},{a:0,b:2},{a:0,b:-2}],U:[{a:0,b:2},{a:0,b:-2},{a:4,b:-2}],u:[{a:0,b:0},{a:0,b:4},{a:-4,b:4}],D:[{a:0,b:2},{a:0,b:-2},{a:4,b:-2}],d:[{a:0,b:0},{a:0,b:-4},{a:-4,b:0}],T:[{a:0,b:-4},{a:-4,b:0},{a:-4,b:-4}],t:[{a:-4,b:4},{a:0,b:0},{a:0,b:4}]};function na(t,e,r){return vb[t].map(n=>Eu(e,Mu(n,r)))}function Rb(t,e,r){let[n,o,s]=na(t,e,r);return{a:n.a+o.a+s.a,b:n.b+o.b+s.b}}function oa(t,e,r,n){let o={...e},s=(r%6+6)%6;for(let i of t){if(i==="+"){s=(s+1)%6;continue}if(i==="-"){s=(s+5)%6;continue}Bb.has(i)&&(n?.(i,o,s),o=Eu(o,Mu(Iu[i],s)))}return{pos:o,heading:s}}function wb(t){let e=oa(t,{a:0,b:0},0);return{disp:e.pos,dHeading:e.heading}}var Qf=1e-6;function Lb(t,e,r){let n=r?-1:1,o=[];for(let s=0;s<4;s++){let i=e*4+s,a=t.childToken[i],c=t.childFlip[i],l=t.childOffA[i],f=t.childOffB[i],u=t.fpEdges[a*2+(r^c)],h=[];for(let p=0;p<u.length;p+=4)h.push([3*l*n+u[p],3*f*n+u[p+1]]);o.push([s,h])}return o}function sa(t){if(t.length===1)return{leaf:t[0][0]};for(let[,e]of t){let r=e.length;for(let n=0;n<r;n++){let[o,s]=e[n],[i,a]=e[(n+1)%r],c=a-s,l=-(i-o),f=-(c*o+l*s),u=[],h=[],p=!0;for(let[d,m]of t){let b=1/0,x=-1/0;for(let[y,_]of m){let T=c*y+l*_+f;T<b&&(b=T),T>x&&(x=T)}if(b>=-Qf)u.push([d,m]);else if(x<=Qf)h.push([d,m]);else{p=!1;break}}if(p&&u.length&&h.length)return{nx:c,ny:l,c:f,pos:sa(u),neg:sa(h)}}}throw new Error("lsystem: no clean BSP split for child set")}function ia(t,e){if("leaf"in t)return;let r=[t.nx,t.ny,t.c];e.some(n=>n[0]===r[0]&&n[1]===r[1]&&n[2]===r[2])||e.push(r),ia(t.pos,e),ia(t.neg,e)}function Bu(t,e,r){if("leaf"in t)return t.leaf;let n=r.findIndex(o=>o[0]===t.nx&&o[1]===t.ny&&o[2]===t.c);return Bu(e>>n&1?t.pos:t.neg,e,r)}var Zf={S:0,D:1,E:2,T:3};function vu(t,e){let r=Object.keys(t),n=[...r,...r.map(T=>T.toLowerCase())],o=n.length,s={};n.forEach((T,M)=>s[T]=M);function i(T,M){let E=T;for(let I=0;I<M;I++)E=Yf(E,t);return Yf(E,e)}let a=T=>wb(i(T,1)).disp;function c(T){let M={a:0,b:0},E=0,I=[];for(let C of T){if(C==="+"){E=(E+1)%6;continue}if(C==="-"){E=(E+5)%6;continue}if(t[C.toUpperCase()]===void 0)continue;if(E!==0&&E!==3)throw new Error(`lsystem: non-180\xB0 turn (${60*E}\xB0) before a child in rule "${T}"`);let A=E===3;I.push({token:C,offUnit:{...M},flip:A});let g=a(C);M=A?{a:M.a-g.a,b:M.b-g.b}:{a:M.a+g.a,b:M.b+g.b}}if(I.length!==4)throw new Error(`lsystem: rule "${T}" must have 4 children`);return I}let l={};for(let T of r)l[T]=c(t[T]);for(let T of r)l[T.toLowerCase()]=c(Cu(t[T]));let f=new Int32Array(o*4),u=new Uint8Array(o*4),h=new Float64Array(o*4),p=new Float64Array(o*4);for(let T of n){let M=l[T];for(let E=0;E<4;E++){let I=s[T]*4+E;f[I]=s[M[E].token],u[I]=M[E].flip?1:0,h[I]=M[E].offUnit.a,p[I]=M[E].offUnit.b}}function d(T){let M=[...new Map(T.map(A=>[`${A.a},${A.b}`,A])).values()].sort((A,g)=>A.a-g.a||A.b-g.b);if(M.length<3)return M;let E=(A,g,B)=>(g.a-A.a)*(B.b-A.b)-(g.b-A.b)*(B.a-A.a),I=[];for(let A of M){for(;I.length>=2&&E(I[I.length-2],I[I.length-1],A)<=0;)I.pop();I.push(A)}let C=[];for(let A=M.length-1;A>=0;A--){let g=M[A];for(;C.length>=2&&E(C[C.length-2],C[C.length-1],g)<=0;)C.pop();C.push(g)}return I.slice(0,-1).concat(C.slice(0,-1))}let m=new Array(o*2);for(let T of n){let M=[];oa(i(T,1),{a:0,b:0},0,(I,C,A)=>M.push(...na(I,C,A)));let E=d(M);for(let I=0;I<2;I++){let C=I?-1:1,A=new Float64Array(E.length*4);for(let g=0;g<E.length;g++){let B=E[g],w=E[(g+1)%E.length];A[g*4]=3*C*B.a,A[g*4+1]=3*C*B.b,A[g*4+2]=C*(w.a-B.a),A[g*4+3]=C*(w.b-B.b)}m[s[T]*2+I]=A}}let b=new Float64Array(o*2*8),x=new Float64Array(o*2*48),y=new Uint8Array(o*2*4);for(let T of n){let M=i(T,1);for(let E=0;E<2;E++){let I=s[T]*2+E,C=0;oa(M,{a:0,b:0},E?3:0,(A,g,B)=>{let w=Rb(A,g,B);b[I*8+C*2]=w.a,b[I*8+C*2+1]=w.b;let L=A.toUpperCase();if(Zf[L]===void 0)throw new Error(`lsystem: no pentagon flavor for draw symbol ${A}`);y[I*4+C]=Zf[L]^(A===L?0:1)^B&1;let R=na(A,g,B);(R[1].a-R[0].a)*(R[2].b-R[0].b)-(R[1].b-R[0].b)*(R[2].a-R[0].a)<0&&(R=[R[0],R[2],R[1]]);for(let H=0;H<3;H++){let U=R[H],Z=R[(H+1)%3],j=I*48+C*12+H*4;x[j]=3*U.a,x[j+1]=3*U.b,x[j+2]=Z.a-U.a,x[j+3]=Z.b-U.b}C++})}}let _={motifIdx:s,childToken:f,childFlip:u,childOffA:h,childOffB:p,fpEdges:m,leafSum:b,leafTri:x,leafFlavor:y,classSep:new Float64Array(o*2*9),classLut:new Uint8Array(o*2*8)};for(let T=0;T<o;T++)for(let M=0;M<2;M++){let E=T*2+M,I=sa(Lb(_,T,M)),C=[];ia(I,C);for(let A=0;A<C.length;A++)_.classSep[E*9+A*3]=C[A][0],_.classSep[E*9+A*3+1]=C[A][1],_.classSep[E*9+A*3+2]=C[A][2];for(let A=0;A<8;A++)_.classLut[E*8+A]=Bu(I,A,C)}return _}var qo=new Float64Array(32);for(let t=0;t<32;t++)qo[t]=2**t;var Ru=new Float64Array(20);for(let t=0;t<20;t++)Ru[t]=4**t;var _r=vu(_u,Eb);var $f=13,Fb=26n,Pb=0x3ffffffn;function Nb(t,e){if((2*t+e)%12!==0||e%4!==0)throw new Error(`abToTriple: off-lattice corner sum (${t},${e})`);let r=(2*t+e-12)/12,n=(e+4)/4;for(let o of[0,1]){if((n+o)%3!==0)continue;let s=(n+o)/3,i=o-s;if((i+r)%2===0)return{x:s,y:(i+r)/2,z:(i-r)/2}}throw new Error(`abToTriple: no integer triple for (${t},${e})`)}function Ob(t,e,r,n){let{childToken:o,childFlip:s,childOffA:i,childOffB:a,leafSum:c,leafFlavor:l}=t,f=Number(e&Pb),u=Number(e>>Fb),h=n,p=0,d=0,m=0;for(let y=r;y>=2;y--){let _=y-1,T=_<$f?f>>>(_<<1)&3:Math.floor(u/Ru[_-$f])%4,M=h*4+T,E=p?-qo[y-2]:qo[y-2];d+=i[M]*E,m+=a[M]*E,p^=s[M],h=o[M]}let b=r>=1?f&3:0,x=h*2+p;return{a:3*d+c[x*8+b*2],b:3*m+c[x*8+b*2+1],flavor:l[x*4+b]}}var Vv={uv:{axiom:_r.motifIdx.A,reverse:!1,isB:!1},vu:{axiom:_r.motifIdx.A,reverse:!0,isB:!1},uw:{axiom:_r.motifIdx.C,reverse:!1,isB:!1},wu:{axiom:_r.motifIdx.C,reverse:!0,isB:!1},vw:{axiom:_r.motifIdx.B,reverse:!0,isB:!0},wv:{axiom:_r.motifIdx.B,reverse:!1,isB:!0}},wu=vu({W:"W+++Z---WZ",Z:"Z+++W---ZW"},{W:"E",Z:"+e-"}),Ub=wu.motifIdx.W;function Lu(t){return Array.from({length:t.length},(e,r)=>t.indexOf(r))}var Fu=[0,1,3,4,5,6,7,2],Pu=[0,1,2,7,3,4,5,6],Hv=Lu(Fu),kv=Lu(Pu);function Db(t,e,r,n,o){if(e<=0)return;let s=t[e]||0,i=t[e-1],a=r[0]+r[1],c=!0,l=!0;if(n!==(a===0)?(c=s===1||s===2,l=s===1):(c=s<2,l=s===0),!c)return;let f=l?i:i+4,u=o[f];t[e-1]=u%4,t[e]=(s+4+Math.floor(u/4)-Math.floor(f/4))%4}function Gb(t,e){e===1?t[1]=-t[1]:e===3&&(t[0]=-t[0])}function Vb(t,e,r){let n=r?Pu:Fu,o=[1,1];for(let s=t.length-1;s>=0;s--)Db(t,s,o,e,n),Gb(o,t[s]);return o}function Hb(t,e){let r=[],n=t;for(;n>0n||r.length<e;)r.push(Number(n&3n)),n>>=2n;return r}function kb(t){let e=0n;for(let r=t.length-1;r>=0;r--)e=e<<2n|BigInt(t[r]);return e}var zb={uv:{reverse:!1,invertJ:!1,flipIJ:!1},vu:{reverse:!0,invertJ:!1,flipIJ:!1},uw:{reverse:!1,invertJ:!1,flipIJ:!0},wu:{reverse:!0,invertJ:!1,flipIJ:!0},vw:{reverse:!0,invertJ:!0,flipIJ:!1},wv:{reverse:!1,invertJ:!0,flipIJ:!1}};function jb(t,e){let r=t[1]===-1?1:0,o=(t[0]+t[1]===0?e===0||e===3:e===2||e===3)?1:0;return r|o<<1}function qb(t,e,r){let n=1n<<BigInt(2*e),o=r.reverse?n-1n-t:t,s=Hb(o,e),i=Vb(s,r.invertJ,r.flipIJ),a=Ob(wu,kb(s),e,Ub),c=Nb(a.a,a.b);if(r.flipIJ&&(c={x:c.z,y:c.y,z:c.x}),r.invertJ){let l=qo[e]-1;c={x:c.y-l,y:c.x+l,z:c.z}}return{triple:c,flips:i,q:s.length>0?s[0]:0}}function Jb(t,e,r="uv"){let n=zb[r],{triple:o,flips:s,q:i}=qb(t,e,n);return n.invertJ&&(s[0]=-s[0]),{triple:o,flavor:jb(s,i)}}var Cr=2,aa=30,eu=58n,Wb=0n;function Xb(t){if(t===0n)return-1;if(t&1n||(t&0b111n)===0b100n||(t&0b11111n)===0b10000n)return aa;let e=aa-1,r=t>>1n;if(r===0n)return-1;let n=Number(r&0xffffffffn),o;for(n===0?(r>>=32n,e-=16,o=Number(r)):o=n,(o&65535)===0&&(o>>=16,e-=8),e>=6&&(o&255)===0&&(o>>=8,e-=4),e>=4&&(o&15)===0&&(o>>=4,e-=2);e>-1&&(o&1)===0;)e-=1,o=o>>(e<Cr?1:2);return e}function Kb(t){let e=Xb(t);if(e===-1)return{origin:je[0],segment:0,S:0n,resolution:e};let r=eu,n=0;if(e===aa){let u=t&1n?1n:t&0b100n?3n:5n;r=eu+u,n=u===1n?0:u===3n?32:40}let o=Number(t>>r)+n,s,i;if(e===0)s=je[o],i=0;else{let u=Math.floor(o/5);s=je[u],i=(o+s.firstQuintant)%5}if(!s)throw new Error(`Could not parse origin: ${o}`);if(e<Cr)return{origin:s,segment:i,S:0n,resolution:e};let a=e-Cr+1,c=BigInt(2*a),l=(1n<<r)-1n,f=(t&l)>>r-c;return{origin:s,segment:i,S:f,resolution:e}}var F=(t,e,r)=>({x:t,y:e,z:r}),zv=[{edge:[F(0,0,1),F(0,1,-1),F(0,1,0),F(1,-1,0),F(1,0,0)],vertex:[F(1,-1,1),F(1,1,-1)],all:[F(0,0,1),F(0,1,-1),F(0,1,0),F(1,-1,0),F(1,0,0),F(1,-1,1),F(1,1,-1)]},{edge:[F(0,0,-1),F(0,-1,1),F(0,-1,0),F(-1,1,0),F(-1,0,0)],vertex:[F(-1,1,-1),F(-1,-1,1)],all:[F(0,0,-1),F(0,-1,1),F(0,-1,0),F(-1,1,0),F(-1,0,0),F(-1,1,-1),F(-1,-1,1)]},{edge:[F(-1,1,0),F(0,-1,1),F(0,0,1),F(0,1,0),F(1,0,0)],vertex:[F(-1,1,1),F(1,-1,1)],all:[F(-1,1,0),F(0,-1,1),F(0,0,1),F(0,1,0),F(1,0,0),F(-1,1,1),F(1,-1,1)]},{edge:[F(1,-1,0),F(0,1,-1),F(0,0,-1),F(0,-1,0),F(-1,0,0)],vertex:[F(1,-1,-1),F(-1,1,-1)],all:[F(1,-1,0),F(0,1,-1),F(0,0,-1),F(0,-1,0),F(-1,0,0),F(1,-1,-1),F(-1,1,-1)]}];var Yb=24,Qb=1.4,jv=Er(0,0,1),qv=(()=>{let t=[];for(let e=0;e<Yb;e++){let r=(e+1)*Qb;t.push(Er(Math.cos(r),Math.sin(r),0))}return t})();var Jv=tu(),Zb=new Cb;var Wv=70*Math.PI/180,Xv=Pe();function $b({S:t,segment:e,origin:r,resolution:n}){let{quintant:o,orientation:s}=mb(e,r);if(n===Cr-1)return Su(o);if(n===Cr-2)return Sb();let i=n-Cr+1,{triple:a,flavor:c}=Jb(t,i,s);return yb(i,o,a,c)}function Nu(t,{closedRing:e=!0,segments:r="auto"}={closedRing:!0,segments:"auto"}){if(t===Wb)return[];let{S:n,segment:o,origin:s,resolution:i}=Kb(t);r==="auto"&&(r=Math.max(1,Math.pow(2,6-i)));let l=$b({S:n,segment:o,origin:s,resolution:i}).splitEdges(r).getVertices(),f=new Array(l.length);for(let h=0;h<l.length;h++)f[h]=bu(Zb.inverse(l[h],s.id));let u=ab(f);return e&&u.push(u[0]),u.reverse(),u}function Ou(t){return BigInt(`0x${t}`)}var Uu=2;var eA=Uu*zo/Math.sqrt(15),Du=new Array(31);Du[0]=Uu*zo/Math.sqrt(3);for(let t=1;t<=30;t++)Du[t]=eA/(1<<t-1);var Kv=(()=>{let t=[];for(let e=-1;e<=1;e++)for(let r=-1;r<=1;r++)for(let n=-1;n<=1;n++)e===0&&r===0&&n===0||t.push([e,r,n]);return t})();var Yv=Er(0,0,1),Qv=Er(1,0,0),Zv=Pe();var Cn=D(Yo(),1);var tA=1/Math.PI*180,rA=1/180*Math.PI,nA={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...nA}};var Q=globalThis.mathgl.config;function ha(t,{precision:e=Q.precision}={}){return t=oA(t),`${parseFloat(t.toPrecision(e))}`}function ve(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function pa(t){return Vu(t)}function da(t){return Re(t)}function Vu(t,e){return ma(t,r=>r*rA,e)}function Re(t,e){return ma(t,r=>r*tA,e)}function Qo(t,e,r){return ma(t,n=>Math.max(e,Math.min(r,n)))}function Et(t,e,r){return ve(t)?t.map((n,o)=>Et(n,e[o],r)):r*e+(1-r)*t}function xe(t,e,r){let n=Q.EPSILON;r&&(Q.EPSILON=r);try{if(t===e)return!0;if(ve(t)&&ve(e)){if(t.length!==e.length)return!1;for(let o=0;o<t.length;++o)if(!xe(t[o],e[o]))return!1;return!0}return t&&t.equals?t.equals(e):e&&e.equals?e.equals(t):typeof t=="number"&&typeof e=="number"?Math.abs(t-e)<=Q.EPSILON*Math.max(1,Math.abs(t),Math.abs(e)):!1}finally{Q.EPSILON=n}}function oA(t){return Math.round(t/Q.EPSILON)*Q.EPSILON}function sA(t){return t.clone?t.clone():new Array(t.length)}function ma(t,e,r){if(ve(t)){let n=t;r=r||sA(n);for(let o=0;o<r.length&&o<n.length;++o){let s=typeof t=="number"?t:t[o];r[o]=e(s,o,r)}return r}return e(t)}var Mt=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(e,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=e[n+r];return this.check()}toArray(e=[],r=0){for(let n=0;n<this.ELEMENTS;++n)e[r+n]=this[n];return e}toObject(e){return e}from(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}to(e){return e===this?this:ve(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(Q)}formatString(e){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+ha(this[n],e);return`${e.printTypes?this.constructor.name:""}[${r}]`}equals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!xe(this[r],e[r]))return!1;return!0}exactEquals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==e[r])return!1;return!0}negate(){for(let e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}lerp(e,r,n){if(n===void 0)return this.lerp(this,e,r);for(let o=0;o<this.ELEMENTS;++o){let s=e[o],i=typeof r=="number"?r:r[o];this[o]=s+n*(i-s)}return this.check()}min(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(e[r],this[r]);return this.check()}max(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(e[r],this[r]);return this.check()}clamp(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e[n]),r[n]);return this.check()}add(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(e){if(typeof e=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;else for(let r=0;r<this.ELEMENTS&&r<e.length;++r)this[r]*=e[r];return this.check()}multiplyByScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}check(){if(Q.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let e=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)e=e&&Number.isFinite(this[r]);return e}sub(e){return this.subtract(e)}setScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=e;return this.check()}addScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]+=e;return this.check()}subScalar(e){return this.addScalar(-e)}multiplyScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}divideScalar(e){return this.multiplyByScalar(1/e)}clampScalar(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e),r);return this.check()}get elements(){return this}};function iA(t,e){if(t.length!==e)return!1;for(let r=0;r<t.length;++r)if(!Number.isFinite(t[r]))return!1;return!0}function V(t){if(!Number.isFinite(t))throw new Error(`Invalid number ${JSON.stringify(t)}`);return t}function It(t,e,r=""){if(Q.debug&&!iA(t,e))throw new Error(`math.gl: ${r} some fields set to invalid numbers'`);return t}function fe(t,e){if(!t)throw new Error(`math.gl assertion ${e}`)}var Bt=class extends Mt{get x(){return this[0]}set x(e){this[0]=V(e)}get y(){return this[1]}set y(e){this[1]=V(e)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let e=0;for(let r=0;r<this.ELEMENTS;++r)e+=this[r]*this[r];return e}magnitudeSquared(){return this.lengthSquared()}distance(e){return Math.sqrt(this.distanceSquared(e))}distanceSquared(e){let r=0;for(let n=0;n<this.ELEMENTS;++n){let o=this[n]-e[n];r+=o*o}return V(r)}dot(e){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*e[n];return V(r)}normalize(){let e=this.magnitude();if(e!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=e;return this.check()}multiply(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(e){return this.distance(e)}distanceToSquared(e){return this.distanceSquared(e)}getComponent(e){return fe(e>=0&&e<this.ELEMENTS,"index is out of range"),V(this[e])}setComponent(e,r){return fe(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=r,this.check()}addVectors(e,r){return this.copy(e).add(r)}subVectors(e,r){return this.copy(e).subtract(r)}multiplyVectors(e,r){return this.copy(e).multiply(r)}addScaledVector(e,r){return this.add(new this.constructor(e).multiplyScalar(r))}};var re=typeof Float32Array<"u"?Float32Array:Array,An=Math.random;function Mr(t){return t>=0?Math.round(t):t%.5===0?Math.floor(t):Math.round(t)}var mR=Math.PI/180;function aA(){let t=new re(2);return re!=Float32Array&&(t[0]=0,t[1]=0),t}function Hu(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function ku(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function Zo(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[3]*o+r[6],t[1]=r[1]*n+r[4]*o+r[7],t}function $o(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[4]*o+r[12],t[1]=r[1]*n+r[5]*o+r[13],t}var gR=(function(){let t=aA();return function(e,r,n,o,s,i){let a,c;for(r||(r=2),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,i),e[a]=t[0],e[a+1]=t[1];return e}})();function es(t,e,r){let n=e[0],o=e[1],s=r[3]*n+r[7]*o||1;return t[0]=(r[0]*n+r[4]*o)/s,t[1]=(r[1]*n+r[5]*o)/s,t}function ts(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s||1;return t[0]=(r[0]*n+r[4]*o+r[8]*s)/i,t[1]=(r[1]*n+r[5]*o+r[9]*s)/i,t[2]=(r[2]*n+r[6]*o+r[10]*s)/i,t}function zu(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t}function ju(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t[3]=e[3],t}function rs(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=r[0]*n+r[3]*o+r[6]*s,t[1]=r[1]*n+r[4]*o+r[7]*s,t[2]=r[2]*n+r[5]*o+r[8]*s,t[3]=e[3],t}var qt=class extends Bt{constructor(e=0,r=0){super(2),ve(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(r)),this[0]=e,this[1]=r)}set(e,r){return this[0]=e,this[1]=r,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y)),this[0]=e.x,this[1]=e.y,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e}get ELEMENTS(){return 2}horizontalAngle(){return Math.atan2(this.y,this.x)}verticalAngle(){return Math.atan2(this.x,this.y)}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return $o(this,this,e),this.check()}transformAsVector(e){return es(this,this,e),this.check()}transformByMatrix3(e){return Zo(this,this,e),this.check()}transformByMatrix2x3(e){return ku(this,this,e),this.check()}transformByMatrix2(e){return Hu(this,this,e),this.check()}};var Br={};pe(Br,{add:()=>hA,angle:()=>Ta,bezier:()=>EA,ceil:()=>pA,clone:()=>lA,copy:()=>fA,create:()=>ns,cross:()=>Jt,dist:()=>PA,distance:()=>Ku,div:()=>FA,divide:()=>Xu,dot:()=>xn,equals:()=>RA,exactEquals:()=>vA,floor:()=>dA,forEach:()=>UA,fromValues:()=>os,hermite:()=>CA,inverse:()=>yA,len:()=>ya,length:()=>qu,lerp:()=>SA,max:()=>gA,min:()=>mA,mul:()=>LA,multiply:()=>Wu,negate:()=>TA,normalize:()=>ga,random:()=>MA,rotateX:()=>ba,rotateY:()=>Aa,rotateZ:()=>xa,round:()=>bA,scale:()=>AA,scaleAndAdd:()=>xA,set:()=>uA,slerp:()=>_A,sqrDist:()=>NA,sqrLen:()=>OA,squaredDistance:()=>Yu,squaredLength:()=>Qu,str:()=>BA,sub:()=>wA,subtract:()=>Ju,transformMat3:()=>Tn,transformMat4:()=>Wt,transformQuat:()=>yn,zero:()=>IA});function ns(){let t=new re(3);return re!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function lA(t){let e=new re(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function qu(t){let e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function os(t,e,r){let n=new re(3);return n[0]=t,n[1]=e,n[2]=r,n}function fA(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function uA(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function hA(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function Ju(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function Wu(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function Xu(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function pA(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function dA(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function mA(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function gA(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function bA(t,e){return t[0]=Mr(e[0]),t[1]=Mr(e[1]),t[2]=Mr(e[2]),t}function AA(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function xA(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function Ku(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(r*r+n*n+o*o)}function Yu(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return r*r+n*n+o*o}function Qu(t){let e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function TA(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function yA(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function ga(t,e){let r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function xn(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Jt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function SA(t,e,r,n){let o=e[0],s=e[1],i=e[2];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t}function _A(t,e,r,n){let o=Math.acos(Math.min(Math.max(xn(e,r),-1),1)),s=Math.sin(o),i=Math.sin((1-n)*o)/s,a=Math.sin(n*o)/s;return t[0]=i*e[0]+a*r[0],t[1]=i*e[1]+a*r[1],t[2]=i*e[2]+a*r[2],t}function CA(t,e,r,n,o,s){let i=s*s,a=i*(2*s-3)+1,c=i*(s-2)+s,l=i*(s-1),f=i*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+o[0]*f,t[1]=e[1]*a+r[1]*c+n[1]*l+o[1]*f,t[2]=e[2]*a+r[2]*c+n[2]*l+o[2]*f,t}function EA(t,e,r,n,o,s){let i=1-s,a=i*i,c=s*s,l=a*i,f=3*s*a,u=3*c*i,h=c*s;return t[0]=e[0]*l+r[0]*f+n[0]*u+o[0]*h,t[1]=e[1]*l+r[1]*f+n[1]*u+o[1]*h,t[2]=e[2]*l+r[2]*f+n[2]*u+o[2]*h,t}function MA(t,e){e=e===void 0?1:e;let r=An()*2*Math.PI,n=An()*2-1,o=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=n*e,t}function Wt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s+r[15];return i=i||1,t[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/i,t[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/i,t[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/i,t}function Tn(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=n*r[0]+o*r[3]+s*r[6],t[1]=n*r[1]+o*r[4]+s*r[7],t[2]=n*r[2]+o*r[5]+s*r[8],t}function yn(t,e,r){let n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,m=n*u-o*f,b=i*2;return f*=b,u*=b,h*=b,p*=2,d*=2,m*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+m,t}function ba(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Aa(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function xa(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Ta(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2],c=Math.sqrt((r*r+n*n+o*o)*(s*s+i*i+a*a)),l=c&&xn(t,e)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function IA(t){return t[0]=0,t[1]=0,t[2]=0,t}function BA(t){return`vec3(${t[0]}, ${t[1]}, ${t[2]})`}function vA(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function RA(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-i)<=1e-6*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(o-a)<=1e-6*Math.max(1,Math.abs(o),Math.abs(a))}var wA=Ju,LA=Wu,FA=Xu,PA=Ku,NA=Yu,ya=qu,OA=Qu,UA=(function(){let t=ns();return function(e,r,n,o,s,i){let a,c;for(r||(r=3),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}})();var Sa=[0,0,0],ss,S=class t extends Bt{static get ZERO(){return ss||(ss=new t(0,0,0),Object.freeze(ss)),ss}constructor(e=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&ve(e)?this.copy(e):(Q.debug&&(V(e),V(r),V(n)),this[0]=e,this[1]=r,this[2]=n)}set(e,r,n){return this[0]=e,this[1]=r,this[2]=n,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y),V(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}get ELEMENTS(){return 3}get z(){return this[2]}set z(e){this[2]=V(e)}angle(e){return Ta(this,e)}cross(e){return Jt(this,this,e),this.check()}rotateX({radians:e,origin:r=Sa}){return ba(this,this,r,e),this.check()}rotateY({radians:e,origin:r=Sa}){return Aa(this,this,r,e),this.check()}rotateZ({radians:e,origin:r=Sa}){return xa(this,this,r,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return Wt(this,this,e),this.check()}transformAsVector(e){return ts(this,this,e),this.check()}transformByMatrix3(e){return Tn(this,this,e),this.check()}transformByMatrix2(e){return zu(this,this,e),this.check()}transformByQuaternion(e){return yn(this,this,e),this.check()}};var is,as=class t extends Bt{static get ZERO(){return is||(is=new t(0,0,0,0),Object.freeze(is)),is}constructor(e=0,r=0,n=0,o=0){super(-0,-0,-0,-0),ve(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(r),V(n),V(o)),this[0]=e,this[1]=r,this[2]=n,this[3]=o)}set(e,r,n,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y),V(e.z),V(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e.w=this[3],e}get ELEMENTS(){return 4}get z(){return this[2]}set z(e){this[2]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}transform(e){return Wt(this,this,e),this.check()}transformByMatrix3(e){return rs(this,this,e),this.check()}transformByMatrix2(e){return ju(this,this,e),this.check()}transformByQuaternion(e){return yn(this,this,e),this.check()}applyMatrix4(e){return e.transform(this,this),this}};var vr=class extends Mt{toString(){let e="[";if(Q.printRowMajor){e+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)e+=` ${this[n*this.RANK+r]}`}else{e+="column-major:";for(let r=0;r<this.ELEMENTS;++r)e+=` ${this[r]}`}return e+="]",e}getElementIndex(e,r){return r*this.RANK+e}getElement(e,r){return this[r*this.RANK+e]}setElement(e,r,n){return this[r*this.RANK+e]=V(n),this}getColumn(e,r=new Array(this.RANK).fill(-0)){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)r[o]=this[n+o];return r}setColumn(e,r){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)this[n+o]=r[o];return this}};function Zu(){let t=new re(9);return re!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function $u(t,e){if(t===e){let r=e[1],n=e[2],o=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=o}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t}function eh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=f*i-a*l,h=-f*s+a*c,p=l*s-i*c,d=r*u+n*h+o*p;return d?(d=1/d,t[0]=u*d,t[1]=(-f*n+o*l)*d,t[2]=(a*n-o*i)*d,t[3]=h*d,t[4]=(f*r-o*c)*d,t[5]=(-a*r+o*s)*d,t[6]=p*d,t[7]=(-l*r+n*c)*d,t[8]=(i*r-n*s)*d,t):null}function th(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8];return e*(l*s-i*c)+r*(-l*o+i*a)+n*(c*o-s*a)}function _a(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1],d=r[2],m=r[3],b=r[4],x=r[5],y=r[6],_=r[7],T=r[8];return t[0]=h*n+p*i+d*l,t[1]=h*o+p*a+d*f,t[2]=h*s+p*c+d*u,t[3]=m*n+b*i+x*l,t[4]=m*o+b*a+x*f,t[5]=m*s+b*c+x*u,t[6]=y*n+_*i+T*l,t[7]=y*o+_*a+T*f,t[8]=y*s+_*c+T*u,t}function rh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1];return t[0]=n,t[1]=o,t[2]=s,t[3]=i,t[4]=a,t[5]=c,t[6]=h*n+p*i+l,t[7]=h*o+p*a+f,t[8]=h*s+p*c+u,t}function nh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=Math.sin(r),p=Math.cos(r);return t[0]=p*n+h*i,t[1]=p*o+h*a,t[2]=p*s+h*c,t[3]=p*i-h*n,t[4]=p*a-h*o,t[5]=p*c-h*s,t[6]=l,t[7]=f,t[8]=u,t}function Ca(t,e,r){let n=r[0],o=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=o*e[3],t[4]=o*e[4],t[5]=o*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function oh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,m=s*i,b=s*a,x=s*c;return t[0]=1-u-d,t[3]=f-x,t[6]=h+b,t[1]=f+x,t[4]=1-l-d,t[7]=p-m,t[2]=h-b,t[5]=p+m,t[8]=1-l-u,t}var Ea;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL1ROW0=3]="COL1ROW0",t[t.COL1ROW1=4]="COL1ROW1",t[t.COL1ROW2=5]="COL1ROW2",t[t.COL2ROW0=6]="COL2ROW0",t[t.COL2ROW1=7]="COL2ROW1",t[t.COL2ROW2=8]="COL2ROW2"})(Ea||(Ea={}));var DA=Object.freeze([1,0,0,0,1,0,0,0,1]),z=class extends vr{static get IDENTITY(){return VA()}static get ZERO(){return GA()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return Ea}constructor(e,...r){super(-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):r.length>0?this.copy([e,...r]):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}identity(){return this.copy(DA)}fromObject(e){return this.check()}fromQuaternion(e){return oh(this,e),this.check()}set(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=o,this[2]=a,this[3]=r,this[4]=s,this[5]=c,this[6]=n,this[7]=i,this[8]=l,this.check()}determinant(){return th(this)}transpose(){return $u(this,this),this.check()}invert(){return eh(this,this),this.check()}multiplyLeft(e){return _a(this,e,this),this.check()}multiplyRight(e){return _a(this,this,e),this.check()}rotate(e){return nh(this,this,e),this.check()}scale(e){return Array.isArray(e)?Ca(this,this,e):Ca(this,this,[e,e]),this.check()}translate(e){return rh(this,this,e),this.check()}transform(e,r){let n;switch(e.length){case 2:n=Zo(r||[-0,-0],e,this);break;case 3:n=Tn(r||[-0,-0,-0],e,this);break;case 4:n=rs(r||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(n,e.length),n}transformVector(e,r){return this.transform(e,r)}transformVector2(e,r){return this.transform(e,r)}transformVector3(e,r){return this.transform(e,r)}},cs,ls=null;function GA(){return cs||(cs=new z([0,0,0,0,0,0,0,0,0]),Object.freeze(cs)),cs}function VA(){return ls||(ls=new z,Object.freeze(ls)),ls}var fs={};pe(fs,{add:()=>ux,adjoint:()=>JA,clone:()=>kA,copy:()=>zA,create:()=>HA,decompose:()=>rx,determinant:()=>Ba,equals:()=>mx,exactEquals:()=>dx,frob:()=>fx,fromQuat:()=>Na,fromQuat2:()=>$A,fromRotation:()=>KA,fromRotationTranslation:()=>ah,fromRotationTranslationScale:()=>nx,fromRotationTranslationScaleOrigin:()=>ox,fromScaling:()=>XA,fromTranslation:()=>WA,fromValues:()=>jA,fromXRotation:()=>YA,fromYRotation:()=>QA,fromZRotation:()=>ZA,frustum:()=>Oa,getRotation:()=>tx,getScaling:()=>ch,getTranslation:()=>ex,identity:()=>ih,invert:()=>Ia,lookAt:()=>Ga,mul:()=>gx,multiply:()=>Sn,multiplyScalar:()=>hx,multiplyScalarAndAdd:()=>px,ortho:()=>Da,orthoNO:()=>fh,orthoZO:()=>ax,perspective:()=>Ua,perspectiveFromFieldOfView:()=>ix,perspectiveNO:()=>lh,perspectiveZO:()=>sx,rotate:()=>wa,rotateX:()=>La,rotateY:()=>Fa,rotateZ:()=>Pa,scale:()=>Ra,set:()=>qA,str:()=>lx,sub:()=>bx,subtract:()=>uh,targetTo:()=>cx,translate:()=>va,transpose:()=>Ma});function HA(){let t=new re(16);return re!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function kA(t){let e=new re(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function zA(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function jA(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,m){let b=new re(16);return b[0]=t,b[1]=e,b[2]=r,b[3]=n,b[4]=o,b[5]=s,b[6]=i,b[7]=a,b[8]=c,b[9]=l,b[10]=f,b[11]=u,b[12]=h,b[13]=p,b[14]=d,b[15]=m,b}function qA(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,m,b){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t[4]=s,t[5]=i,t[6]=a,t[7]=c,t[8]=l,t[9]=f,t[10]=u,t[11]=h,t[12]=p,t[13]=d,t[14]=m,t[15]=b,t}function ih(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Ma(t,e){if(t===e){let r=e[1],n=e[2],o=e[3],s=e[6],i=e[7],a=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=s,t[11]=e[14],t[12]=o,t[13]=i,t[14]=a}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function Ia(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],m=e[13],b=e[14],x=e[15],y=r*a-n*i,_=r*c-o*i,T=r*l-s*i,M=n*c-o*a,E=n*l-s*a,I=o*l-s*c,C=f*m-u*d,A=f*b-h*d,g=f*x-p*d,B=u*b-h*m,w=u*x-p*m,L=h*x-p*b,R=y*L-_*w+T*B+M*g-E*A+I*C;return R?(R=1/R,t[0]=(a*L-c*w+l*B)*R,t[1]=(o*w-n*L-s*B)*R,t[2]=(m*I-b*E+x*M)*R,t[3]=(h*E-u*I-p*M)*R,t[4]=(c*g-i*L-l*A)*R,t[5]=(r*L-o*g+s*A)*R,t[6]=(b*T-d*I-x*_)*R,t[7]=(f*I-h*T+p*_)*R,t[8]=(i*w-a*g+l*C)*R,t[9]=(n*g-r*w-s*C)*R,t[10]=(d*E-m*T+x*y)*R,t[11]=(u*T-f*E-p*y)*R,t[12]=(a*A-i*B-c*C)*R,t[13]=(r*B-n*A+o*C)*R,t[14]=(m*_-d*M-b*y)*R,t[15]=(f*M-u*_+h*y)*R,t):null}function JA(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],m=e[13],b=e[14],x=e[15],y=r*a-n*i,_=r*c-o*i,T=r*l-s*i,M=n*c-o*a,E=n*l-s*a,I=o*l-s*c,C=f*m-u*d,A=f*b-h*d,g=f*x-p*d,B=u*b-h*m,w=u*x-p*m,L=h*x-p*b;return t[0]=a*L-c*w+l*B,t[1]=o*w-n*L-s*B,t[2]=m*I-b*E+x*M,t[3]=h*E-u*I-p*M,t[4]=c*g-i*L-l*A,t[5]=r*L-o*g+s*A,t[6]=b*T-d*I-x*_,t[7]=f*I-h*T+p*_,t[8]=i*w-a*g+l*C,t[9]=n*g-r*w-s*C,t[10]=d*E-m*T+x*y,t[11]=u*T-f*E-p*y,t[12]=a*A-i*B-c*C,t[13]=r*B-n*A+o*C,t[14]=m*_-d*M-b*y,t[15]=f*M-u*_+h*y,t}function Ba(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8],f=t[9],u=t[10],h=t[11],p=t[12],d=t[13],m=t[14],b=t[15],x=e*i-r*s,y=e*a-n*s,_=r*a-n*i,T=l*d-f*p,M=l*m-u*p,E=f*m-u*d,I=e*E-r*M+n*T,C=s*E-i*M+a*T,A=l*_-f*y+u*x,g=p*_-d*y+m*x;return c*I-o*C+b*A-h*g}function Sn(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=e[9],p=e[10],d=e[11],m=e[12],b=e[13],x=e[14],y=e[15],_=r[0],T=r[1],M=r[2],E=r[3];return t[0]=_*n+T*a+M*u+E*m,t[1]=_*o+T*c+M*h+E*b,t[2]=_*s+T*l+M*p+E*x,t[3]=_*i+T*f+M*d+E*y,_=r[4],T=r[5],M=r[6],E=r[7],t[4]=_*n+T*a+M*u+E*m,t[5]=_*o+T*c+M*h+E*b,t[6]=_*s+T*l+M*p+E*x,t[7]=_*i+T*f+M*d+E*y,_=r[8],T=r[9],M=r[10],E=r[11],t[8]=_*n+T*a+M*u+E*m,t[9]=_*o+T*c+M*h+E*b,t[10]=_*s+T*l+M*p+E*x,t[11]=_*i+T*f+M*d+E*y,_=r[12],T=r[13],M=r[14],E=r[15],t[12]=_*n+T*a+M*u+E*m,t[13]=_*o+T*c+M*h+E*b,t[14]=_*s+T*l+M*p+E*x,t[15]=_*i+T*f+M*d+E*y,t}function va(t,e,r){let n=r[0],o=r[1],s=r[2],i,a,c,l,f,u,h,p,d,m,b,x;return e===t?(t[12]=e[0]*n+e[4]*o+e[8]*s+e[12],t[13]=e[1]*n+e[5]*o+e[9]*s+e[13],t[14]=e[2]*n+e[6]*o+e[10]*s+e[14],t[15]=e[3]*n+e[7]*o+e[11]*s+e[15]):(i=e[0],a=e[1],c=e[2],l=e[3],f=e[4],u=e[5],h=e[6],p=e[7],d=e[8],m=e[9],b=e[10],x=e[11],t[0]=i,t[1]=a,t[2]=c,t[3]=l,t[4]=f,t[5]=u,t[6]=h,t[7]=p,t[8]=d,t[9]=m,t[10]=b,t[11]=x,t[12]=i*n+f*o+d*s+e[12],t[13]=a*n+u*o+m*s+e[13],t[14]=c*n+h*o+b*s+e[14],t[15]=l*n+p*o+x*s+e[15]),t}function Ra(t,e,r){let n=r[0],o=r[1],s=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*o,t[5]=e[5]*o,t[6]=e[6]*o,t[7]=e[7]*o,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function wa(t,e,r,n){let o=n[0],s=n[1],i=n[2],a=Math.sqrt(o*o+s*s+i*i),c,l,f,u,h,p,d,m,b,x,y,_,T,M,E,I,C,A,g,B,w,L,R,O;return a<1e-6?null:(a=1/a,o*=a,s*=a,i*=a,l=Math.sin(r),c=Math.cos(r),f=1-c,u=e[0],h=e[1],p=e[2],d=e[3],m=e[4],b=e[5],x=e[6],y=e[7],_=e[8],T=e[9],M=e[10],E=e[11],I=o*o*f+c,C=s*o*f+i*l,A=i*o*f-s*l,g=o*s*f-i*l,B=s*s*f+c,w=i*s*f+o*l,L=o*i*f+s*l,R=s*i*f-o*l,O=i*i*f+c,t[0]=u*I+m*C+_*A,t[1]=h*I+b*C+T*A,t[2]=p*I+x*C+M*A,t[3]=d*I+y*C+E*A,t[4]=u*g+m*B+_*w,t[5]=h*g+b*B+T*w,t[6]=p*g+x*B+M*w,t[7]=d*g+y*B+E*w,t[8]=u*L+m*R+_*O,t[9]=h*L+b*R+T*O,t[10]=p*L+x*R+M*O,t[11]=d*L+y*R+E*O,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function La(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[4],i=e[5],a=e[6],c=e[7],l=e[8],f=e[9],u=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*o+l*n,t[5]=i*o+f*n,t[6]=a*o+u*n,t[7]=c*o+h*n,t[8]=l*o-s*n,t[9]=f*o-i*n,t[10]=u*o-a*n,t[11]=h*o-c*n,t}function Fa(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[8],f=e[9],u=e[10],h=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*o-l*n,t[1]=i*o-f*n,t[2]=a*o-u*n,t[3]=c*o-h*n,t[8]=s*n+l*o,t[9]=i*n+f*o,t[10]=a*n+u*o,t[11]=c*n+h*o,t}function Pa(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[4],f=e[5],u=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*o+l*n,t[1]=i*o+f*n,t[2]=a*o+u*n,t[3]=c*o+h*n,t[4]=l*o-s*n,t[5]=f*o-i*n,t[6]=u*o-a*n,t[7]=h*o-c*n,t}function WA(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function XA(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function KA(t,e,r){let n=r[0],o=r[1],s=r[2],i=Math.sqrt(n*n+o*o+s*s),a,c,l;return i<1e-6?null:(i=1/i,n*=i,o*=i,s*=i,c=Math.sin(e),a=Math.cos(e),l=1-a,t[0]=n*n*l+a,t[1]=o*n*l+s*c,t[2]=s*n*l-o*c,t[3]=0,t[4]=n*o*l-s*c,t[5]=o*o*l+a,t[6]=s*o*l+n*c,t[7]=0,t[8]=n*s*l+o*c,t[9]=o*s*l-n*c,t[10]=s*s*l+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function YA(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function QA(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ZA(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ah(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=n+n,c=o+o,l=s+s,f=n*a,u=n*c,h=n*l,p=o*c,d=o*l,m=s*l,b=i*a,x=i*c,y=i*l;return t[0]=1-(p+m),t[1]=u+y,t[2]=h-x,t[3]=0,t[4]=u-y,t[5]=1-(f+m),t[6]=d+b,t[7]=0,t[8]=h+x,t[9]=d-b,t[10]=1-(f+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function $A(t,e){let r=new re(3),n=-e[0],o=-e[1],s=-e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=n*n+o*o+s*s+i*i;return u>0?(r[0]=(a*i+f*n+c*s-l*o)*2/u,r[1]=(c*i+f*o+l*n-a*s)*2/u,r[2]=(l*i+f*s+a*o-c*n)*2/u):(r[0]=(a*i+f*n+c*s-l*o)*2,r[1]=(c*i+f*o+l*n-a*s)*2,r[2]=(l*i+f*s+a*o-c*n)*2),ah(t,e,r),t}function ex(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function ch(t,e){let r=e[0],n=e[1],o=e[2],s=e[4],i=e[5],a=e[6],c=e[8],l=e[9],f=e[10];return t[0]=Math.sqrt(r*r+n*n+o*o),t[1]=Math.sqrt(s*s+i*i+a*a),t[2]=Math.sqrt(c*c+l*l+f*f),t}function tx(t,e){let r=new re(3);ch(r,e);let n=1/r[0],o=1/r[1],s=1/r[2],i=e[0]*n,a=e[1]*o,c=e[2]*s,l=e[4]*n,f=e[5]*o,u=e[6]*s,h=e[8]*n,p=e[9]*o,d=e[10]*s,m=i+f+d,b=0;return m>0?(b=Math.sqrt(m+1)*2,t[3]=.25*b,t[0]=(u-p)/b,t[1]=(h-c)/b,t[2]=(a-l)/b):i>f&&i>d?(b=Math.sqrt(1+i-f-d)*2,t[3]=(u-p)/b,t[0]=.25*b,t[1]=(a+l)/b,t[2]=(h+c)/b):f>d?(b=Math.sqrt(1+f-i-d)*2,t[3]=(h-c)/b,t[0]=(a+l)/b,t[1]=.25*b,t[2]=(u+p)/b):(b=Math.sqrt(1+d-i-f)*2,t[3]=(a-l)/b,t[0]=(h+c)/b,t[1]=(u+p)/b,t[2]=.25*b),t}function rx(t,e,r,n){e[0]=n[12],e[1]=n[13],e[2]=n[14];let o=n[0],s=n[1],i=n[2],a=n[4],c=n[5],l=n[6],f=n[8],u=n[9],h=n[10];r[0]=Math.sqrt(o*o+s*s+i*i),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(f*f+u*u+h*h);let p=1/r[0],d=1/r[1],m=1/r[2],b=o*p,x=s*d,y=i*m,_=a*p,T=c*d,M=l*m,E=f*p,I=u*d,C=h*m,A=b+T+C,g=0;return A>0?(g=Math.sqrt(A+1)*2,t[3]=.25*g,t[0]=(M-I)/g,t[1]=(E-y)/g,t[2]=(x-_)/g):b>T&&b>C?(g=Math.sqrt(1+b-T-C)*2,t[3]=(M-I)/g,t[0]=.25*g,t[1]=(x+_)/g,t[2]=(E+y)/g):T>C?(g=Math.sqrt(1+T-b-C)*2,t[3]=(E-y)/g,t[0]=(x+_)/g,t[1]=.25*g,t[2]=(M+I)/g):(g=Math.sqrt(1+C-b-T)*2,t[3]=(x-_)/g,t[0]=(E+y)/g,t[1]=(M+I)/g,t[2]=.25*g),t}function nx(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=o+o,l=s+s,f=i+i,u=o*c,h=o*l,p=o*f,d=s*l,m=s*f,b=i*f,x=a*c,y=a*l,_=a*f,T=n[0],M=n[1],E=n[2];return t[0]=(1-(d+b))*T,t[1]=(h+_)*T,t[2]=(p-y)*T,t[3]=0,t[4]=(h-_)*M,t[5]=(1-(u+b))*M,t[6]=(m+x)*M,t[7]=0,t[8]=(p+y)*E,t[9]=(m-x)*E,t[10]=(1-(u+d))*E,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function ox(t,e,r,n,o){let s=e[0],i=e[1],a=e[2],c=e[3],l=s+s,f=i+i,u=a+a,h=s*l,p=s*f,d=s*u,m=i*f,b=i*u,x=a*u,y=c*l,_=c*f,T=c*u,M=n[0],E=n[1],I=n[2],C=o[0],A=o[1],g=o[2],B=(1-(m+x))*M,w=(p+T)*M,L=(d-_)*M,R=(p-T)*E,O=(1-(h+x))*E,H=(b+y)*E,U=(d+_)*I,Z=(b-y)*I,j=(1-(h+m))*I;return t[0]=B,t[1]=w,t[2]=L,t[3]=0,t[4]=R,t[5]=O,t[6]=H,t[7]=0,t[8]=U,t[9]=Z,t[10]=j,t[11]=0,t[12]=r[0]+C-(B*C+R*A+U*g),t[13]=r[1]+A-(w*C+O*A+Z*g),t[14]=r[2]+g-(L*C+H*A+j*g),t[15]=1,t}function Na(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,m=s*i,b=s*a,x=s*c;return t[0]=1-u-d,t[1]=f+x,t[2]=h-b,t[3]=0,t[4]=f-x,t[5]=1-l-d,t[6]=p+m,t[7]=0,t[8]=h+b,t[9]=p-m,t[10]=1-l-u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Oa(t,e,r,n,o,s,i){let a=1/(r-e),c=1/(o-n),l=1/(s-i);return t[0]=s*2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*a,t[9]=(o+n)*c,t[10]=(i+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=i*s*2*l,t[15]=0,t}function lh(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=(o+n)*i,t[14]=2*o*n*i}else t[10]=-1,t[14]=-2*n;return t}var Ua=lh;function sx(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=o*i,t[14]=o*n*i}else t[10]=-1,t[14]=-n;return t}function ix(t,e,r,n){let o=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),i=Math.tan(e.leftDegrees*Math.PI/180),a=Math.tan(e.rightDegrees*Math.PI/180),c=2/(i+a),l=2/(o+s);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=-((i-a)*c*.5),t[9]=(o-s)*l*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function fh(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*a,t[13]=(o+n)*c,t[14]=(i+s)*l,t[15]=1,t}var Da=fh;function ax(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=l,t[11]=0,t[12]=(e+r)*a,t[13]=(o+n)*c,t[14]=s*l,t[15]=1,t}function Ga(t,e,r,n){let o,s,i,a,c,l,f,u,h,p,d=e[0],m=e[1],b=e[2],x=n[0],y=n[1],_=n[2],T=r[0],M=r[1],E=r[2];return Math.abs(d-T)<1e-6&&Math.abs(m-M)<1e-6&&Math.abs(b-E)<1e-6?ih(t):(u=d-T,h=m-M,p=b-E,o=1/Math.sqrt(u*u+h*h+p*p),u*=o,h*=o,p*=o,s=y*p-_*h,i=_*u-x*p,a=x*h-y*u,o=Math.sqrt(s*s+i*i+a*a),o?(o=1/o,s*=o,i*=o,a*=o):(s=0,i=0,a=0),c=h*a-p*i,l=p*s-u*a,f=u*i-h*s,o=Math.sqrt(c*c+l*l+f*f),o?(o=1/o,c*=o,l*=o,f*=o):(c=0,l=0,f=0),t[0]=s,t[1]=c,t[2]=u,t[3]=0,t[4]=i,t[5]=l,t[6]=h,t[7]=0,t[8]=a,t[9]=f,t[10]=p,t[11]=0,t[12]=-(s*d+i*m+a*b),t[13]=-(c*d+l*m+f*b),t[14]=-(u*d+h*m+p*b),t[15]=1,t)}function cx(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=n[0],c=n[1],l=n[2],f=o-r[0],u=s-r[1],h=i-r[2],p=f*f+u*u+h*h;p>0&&(p=1/Math.sqrt(p),f*=p,u*=p,h*=p);let d=c*h-l*u,m=l*f-a*h,b=a*u-c*f;return p=d*d+m*m+b*b,p>0&&(p=1/Math.sqrt(p),d*=p,m*=p,b*=p),t[0]=d,t[1]=m,t[2]=b,t[3]=0,t[4]=u*b-h*m,t[5]=h*d-f*b,t[6]=f*m-u*d,t[7]=0,t[8]=f,t[9]=u,t[10]=h,t[11]=0,t[12]=o,t[13]=s,t[14]=i,t[15]=1,t}function lx(t){return`mat4(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}, ${t[4]}, ${t[5]}, ${t[6]}, ${t[7]}, ${t[8]}, ${t[9]}, ${t[10]}, ${t[11]}, ${t[12]}, ${t[13]}, ${t[14]}, ${t[15]})`}function fx(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]+t[3]*t[3]+t[4]*t[4]+t[5]*t[5]+t[6]*t[6]+t[7]*t[7]+t[8]*t[8]+t[9]*t[9]+t[10]*t[10]+t[11]*t[11]+t[12]*t[12]+t[13]*t[13]+t[14]*t[14]+t[15]*t[15])}function ux(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t}function uh(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}function hx(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t}function px(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t}function dx(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function mx(t,e){let r=t[0],n=t[1],o=t[2],s=t[3],i=t[4],a=t[5],c=t[6],l=t[7],f=t[8],u=t[9],h=t[10],p=t[11],d=t[12],m=t[13],b=t[14],x=t[15],y=e[0],_=e[1],T=e[2],M=e[3],E=e[4],I=e[5],C=e[6],A=e[7],g=e[8],B=e[9],w=e[10],L=e[11],R=e[12],O=e[13],H=e[14],U=e[15];return Math.abs(r-y)<=1e-6*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(n-_)<=1e-6*Math.max(1,Math.abs(n),Math.abs(_))&&Math.abs(o-T)<=1e-6*Math.max(1,Math.abs(o),Math.abs(T))&&Math.abs(s-M)<=1e-6*Math.max(1,Math.abs(s),Math.abs(M))&&Math.abs(i-E)<=1e-6*Math.max(1,Math.abs(i),Math.abs(E))&&Math.abs(a-I)<=1e-6*Math.max(1,Math.abs(a),Math.abs(I))&&Math.abs(c-C)<=1e-6*Math.max(1,Math.abs(c),Math.abs(C))&&Math.abs(l-A)<=1e-6*Math.max(1,Math.abs(l),Math.abs(A))&&Math.abs(f-g)<=1e-6*Math.max(1,Math.abs(f),Math.abs(g))&&Math.abs(u-B)<=1e-6*Math.max(1,Math.abs(u),Math.abs(B))&&Math.abs(h-w)<=1e-6*Math.max(1,Math.abs(h),Math.abs(w))&&Math.abs(p-L)<=1e-6*Math.max(1,Math.abs(p),Math.abs(L))&&Math.abs(d-R)<=1e-6*Math.max(1,Math.abs(d),Math.abs(R))&&Math.abs(m-O)<=1e-6*Math.max(1,Math.abs(m),Math.abs(O))&&Math.abs(b-H)<=1e-6*Math.max(1,Math.abs(b),Math.abs(H))&&Math.abs(x-U)<=1e-6*Math.max(1,Math.abs(x),Math.abs(U))}var gx=Sn,bx=uh;function Ax(){let t=new re(4);return re!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function hh(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function ph(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function dh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return Math.sqrt(e*e+r*r+n*n+o*o)}function mh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return e*e+r*r+n*n+o*o}function gh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=r*i,t[1]=n*i,t[2]=o*i,t[3]=s*i,t}function bh(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Ah(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t[3]=a+n*(r[3]-a),t}function xh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3];return t[0]=r[0]*n+r[4]*o+r[8]*s+r[12]*i,t[1]=r[1]*n+r[5]*o+r[9]*s+r[13]*i,t[2]=r[2]*n+r[6]*o+r[10]*s+r[14]*i,t[3]=r[3]*n+r[7]*o+r[11]*s+r[15]*i,t}function Th(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2],l=r[3],f=l*n+a*s-c*o,u=l*o+c*n-i*s,h=l*s+i*o-a*n,p=-i*n-a*o-c*s;return t[0]=f*l+p*-i+u*-c-h*-a,t[1]=u*l+p*-a+h*-i-f*-c,t[2]=h*l+p*-c+f*-a-u*-i,t[3]=e[3],t}var WR=(function(){let t=Ax();return function(e,r,n,o,s,i){let a,c;for(r||(r=4),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],t[3]=e[a+3],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}})();var ka;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL0ROW3=3]="COL0ROW3",t[t.COL1ROW0=4]="COL1ROW0",t[t.COL1ROW1=5]="COL1ROW1",t[t.COL1ROW2=6]="COL1ROW2",t[t.COL1ROW3=7]="COL1ROW3",t[t.COL2ROW0=8]="COL2ROW0",t[t.COL2ROW1=9]="COL2ROW1",t[t.COL2ROW2=10]="COL2ROW2",t[t.COL2ROW3=11]="COL2ROW3",t[t.COL3ROW0=12]="COL3ROW0",t[t.COL3ROW1=13]="COL3ROW1",t[t.COL3ROW2=14]="COL3ROW2",t[t.COL3ROW3=15]="COL3ROW3"})(ka||(ka={}));var xx=45*Math.PI/180,Tx=1,Va=.1,Ha=500,yx=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),P=class extends vr{static get IDENTITY(){return _x()}static get ZERO(){return Sx()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return ka}constructor(e){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}set(e,r,n,o,s,i,a,c,l,f,u,h,p,d,m,b){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this[9]=f,this[10]=u,this[11]=h,this[12]=p,this[13]=d,this[14]=m,this[15]=b,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l,f,u,h,p,d,m,b){return this[0]=e,this[1]=s,this[2]=l,this[3]=p,this[4]=r,this[5]=i,this[6]=f,this[7]=d,this[8]=n,this[9]=a,this[10]=u,this[11]=m,this[12]=o,this[13]=c,this[14]=h,this[15]=b,this.check()}toRowMajor(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}identity(){return this.copy(yx)}fromObject(e){return this.check()}fromQuaternion(e){return Na(this,e),this.check()}frustum(e){let{left:r,right:n,bottom:o,top:s,near:i=Va,far:a=Ha}=e;return a===1/0?Cx(this,r,n,o,s,i):Oa(this,r,n,o,s,i,a),this.check()}lookAt(e){let{eye:r,center:n=[0,0,0],up:o=[0,1,0]}=e;return Ga(this,r,n,o),this.check()}ortho(e){let{left:r,right:n,bottom:o,top:s,near:i=Va,far:a=Ha}=e;return Da(this,r,n,o,s,i,a),this.check()}orthographic(e){let{fovy:r=xx,aspect:n=Tx,focalDistance:o=1,near:s=Va,far:i=Ha}=e;Sh(r);let a=r/2,c=o*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:s,far:i})}perspective(e){let{fovy:r=45*Math.PI/180,aspect:n=1,near:o=.1,far:s=500}=e;return Sh(r),Ua(this,r,n,o,s),this.check()}determinant(){return Ba(this)}getScale(e=[-0,-0,-0]){return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}getTranslation(e=[-0,-0,-0]){return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}getRotation(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=0,e[4]=this[4]*o,e[5]=this[5]*s,e[6]=this[6]*i,e[7]=0,e[8]=this[8]*o,e[9]=this[9]*s,e[10]=this[10]*i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}getRotationMatrix3(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=this[4]*o,e[4]=this[5]*s,e[5]=this[6]*i,e[6]=this[8]*o,e[7]=this[9]*s,e[8]=this[10]*i,e}transpose(){return Ma(this,this),this.check()}invert(){return Ia(this,this),this.check()}multiplyLeft(e){return Sn(this,e,this),this.check()}multiplyRight(e){return Sn(this,this,e),this.check()}rotateX(e){return La(this,this,e),this.check()}rotateY(e){return Fa(this,this,e),this.check()}rotateZ(e){return Pa(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,r){return wa(this,this,e,r),this.check()}scale(e){return Ra(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return va(this,this,e),this.check()}transform(e,r){return e.length===4?(r=xh(r||[-0,-0,-0,-0],e,this),It(r,4),r):this.transformAsPoint(e,r)}transformAsPoint(e,r){let{length:n}=e,o;switch(n){case 2:o=$o(r||[-0,-0],e,this);break;case 3:o=Wt(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(o,e.length),o}transformAsVector(e,r){let n;switch(e.length){case 2:n=es(r||[-0,-0],e,this);break;case 3:n=ts(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return It(n,e.length),n}transformPoint(e,r){return this.transformAsPoint(e,r)}transformVector(e,r){return this.transformAsPoint(e,r)}transformDirection(e,r){return this.transformAsVector(e,r)}makeRotationX(e){return this.identity().rotateX(e)}makeTranslation(e,r,n){return this.identity().translate([e,r,n])}},us,hs;function Sx(){return us||(us=new P([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(us)),us}function _x(){return hs||(hs=new P,Object.freeze(hs)),hs}function Sh(t){if(t>Math.PI*2)throw Error("expected radians")}function Cx(t,e,r,n,o,s){let i=2*s/(r-e),a=2*s/(o-n),c=(r+e)/(r-e),l=(o+n)/(o-n),f=-1,u=-1,h=-2*s;return t[0]=i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=c,t[9]=l,t[10]=f,t[11]=u,t[12]=0,t[13]=0,t[14]=h,t[15]=0,t}function _h(){let t=new re(4);return re!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Ch(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function za(t,e,r){r=r*.5;let n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function ja(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+i*a+o*l-s*c,t[1]=o*f+i*c+s*a-n*l,t[2]=s*f+i*l+n*c-o*a,t[3]=i*f-n*a-o*c-s*l,t}function Eh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+i*a,t[1]=o*c+s*a,t[2]=s*c-o*a,t[3]=i*c-n*a,t}function Mh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-s*a,t[1]=o*c+i*a,t[2]=s*c+n*a,t[3]=i*c-o*a,t}function Ih(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=o*c-n*a,t[2]=s*c+i*a,t[3]=i*c-s*a,t}function Bh(t,e){let r=e[0],n=e[1],o=e[2];return t[0]=r,t[1]=n,t[2]=o,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-o*o)),t}function _n(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=r[0],l=r[1],f=r[2],u=r[3],h,p,d,m,b;return h=o*c+s*l+i*f+a*u,h<0&&(h=-h,c=-c,l=-l,f=-f,u=-u),1-h>1e-6?(p=Math.acos(h),b=Math.sin(p),d=Math.sin((1-n)*p)/b,m=Math.sin(n*p)/b):(d=1-n,m=n),t[0]=d*o+m*c,t[1]=d*s+m*l,t[2]=d*i+m*f,t[3]=d*a+m*u,t}function vh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s,a=i?1/i:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-o*a,t[3]=s*a,t}function Rh(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function qa(t,e){let r=e[0]+e[4]+e[8],n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{let o=0;e[4]>e[0]&&(o=1),e[8]>e[o*3+o]&&(o=2);let s=(o+1)%3,i=(o+2)%3;n=Math.sqrt(e[o*3+o]-e[s*3+s]-e[i*3+i]+1),t[o]=.5*n,n=.5/n,t[3]=(e[s*3+i]-e[i*3+s])*n,t[s]=(e[s*3+o]+e[o*3+s])*n,t[i]=(e[i*3+o]+e[o*3+i])*n}return t}var wh=hh;var Lh=ph,Fh=bh,Ph=Ah,Nh=dh;var Oh=mh;var Uh=gh;var Dh=(function(){let t=ns(),e=os(1,0,0),r=os(0,1,0);return function(n,o,s){let i=xn(o,s);return i<-.999999?(Jt(t,e,o),ya(t)<1e-6&&Jt(t,r,o),ga(t,t),za(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Jt(t,o,s),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,Uh(n,n))}})(),a3=(function(){let t=_h(),e=_h();return function(r,n,o,s,i,a){return _n(t,n,i,a),_n(e,o,s,a),_n(r,t,e,2*a*(1-a)),r}})(),c3=(function(){let t=Zu();return function(e,r,n,o){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],Uh(e,qa(e,t))}})();var Mx=[0,0,0,1],et=class extends Mt{constructor(e=0,r=0,n=0,o=1){super(-0,-0,-0,-0),Array.isArray(e)&&arguments.length===1?this.copy(e):this.set(e,r,n,o)}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}set(e,r,n,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this.check()}fromObject(e){return this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this.check()}fromMatrix3(e){return qa(this,e),this.check()}fromAxisRotation(e,r){return za(this,e,r),this.check()}identity(){return Ch(this),this.check()}setAxisAngle(e,r){return this.fromAxisRotation(e,r)}get ELEMENTS(){return 4}get x(){return this[0]}set x(e){this[0]=V(e)}get y(){return this[1]}set y(e){this[1]=V(e)}get z(){return this[2]}set z(e){this[2]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}len(){return Nh(this)}lengthSquared(){return Oh(this)}dot(e){return Fh(this,e)}rotationTo(e,r){return Dh(this,e,r),this.check()}add(e){return wh(this,this,e),this.check()}calculateW(){return Bh(this,this),this.check()}conjugate(){return Rh(this,this),this.check()}invert(){return vh(this,this),this.check()}lerp(e,r,n){return n===void 0?this.lerp(this,e,r):(Ph(this,e,r,n),this.check())}multiplyRight(e){return ja(this,this,e),this.check()}multiplyLeft(e){return ja(this,e,this),this.check()}normalize(){let e=this.len(),r=e>0?1/e:0;return this[0]=this[0]*r,this[1]=this[1]*r,this[2]=this[2]*r,this[3]=this[3]*r,e===0&&(this[3]=1),this.check()}rotateX(e){return Eh(this,this,e),this.check()}rotateY(e){return Mh(this,this,e),this.check()}rotateZ(e){return Ih(this,this,e),this.check()}scale(e){return Lh(this,this,e),this.check()}slerp(e,r,n){let o,s,i;switch(arguments.length){case 1:({start:o=Mx,target:s,ratio:i}=e);break;case 2:o=this,s=e,i=r;break;default:o=e,s=r,i=n}return _n(this,o,s,i),this.check()}transformVector4(e,r=new as){return Th(r,e,this),It(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(e,r){return this.setAxisAngle(e,r)}premultiply(e){return this.multiplyLeft(e)}multiply(e){return this.multiplyRight(e)}};var qe={};pe(qe,{EPSILON1:()=>Ix,EPSILON10:()=>Ox,EPSILON11:()=>Ux,EPSILON12:()=>Dx,EPSILON13:()=>Gx,EPSILON14:()=>Vx,EPSILON15:()=>Hx,EPSILON16:()=>kx,EPSILON17:()=>zx,EPSILON18:()=>jx,EPSILON19:()=>qx,EPSILON2:()=>Bx,EPSILON20:()=>Jx,EPSILON3:()=>vx,EPSILON4:()=>Rx,EPSILON5:()=>wx,EPSILON6:()=>Lx,EPSILON7:()=>Fx,EPSILON8:()=>Px,EPSILON9:()=>Nx,PI_OVER_FOUR:()=>Xx,PI_OVER_SIX:()=>Kx,PI_OVER_TWO:()=>Wx,TWO_PI:()=>Yx});var Ix=.1,Bx=.01,vx=.001,Rx=1e-4,wx=1e-5,Lx=1e-6,Fx=1e-7,Px=1e-8,Nx=1e-9,Ox=1e-10,Ux=1e-11,Dx=1e-12,Gx=1e-13,Vx=1e-14,Hx=1e-15,kx=1e-16,zx=1e-17,jx=1e-18,qx=1e-19,Jx=1e-20,Wx=Math.PI/2,Xx=Math.PI/4,Kx=Math.PI/6,Yx=Math.PI*2;function ps(t,e){e=e===void 0?t[0][0]:e;for(let r of t){let n=r[0]-e;n>180?r[0]-=360:n<-180&&(r[0]+=360)}}function Qx(t,e,r){let[n,o]=(0,Cn.cellToLatLng)(t),s=e.length;ps(e,o);let i=e[0]===e[s-1]?s-1:s;for(let a=0;a<i;a++)e[a][0]=Et(o,e[a][0],r),e[a][1]=Et(n,e[a][1],r)}function Gh(t,e,r){let n=t(e,r),[o,s]=(0,Cn.cellToLatLng)(n);return[s,o]}function Ja(t,e=1){let r=(0,Cn.cellToBoundary)(t,!0);return e!==1?Qx(t,r,e):ps(r),r}function ds(t){let e=new Float64Array(t.length*2),r=0;for(let n of t)e[r++]=n[0],e[r++]=n[1];return e}var Zx={getPentagon:{type:"accessor",value:t=>t.pentagon}},En=class extends Fe{indexToBounds(){let{data:e,getPentagon:r}=this.props;return{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(n,o)=>{let s=r(n,o),i=Nu(typeof s=="string"?Ou(s):s,{closedRing:!0,segments:"auto"});return ds(i)}}}};En.layerName="A5Layer";En.defaultProps=Zx;var Vh=En;var or=D(ze(),1),Hp=D(ke(),1),kp=D(Xt(),1);function $x(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function ms(t){if(Array.isArray(t))return t.map(e=>ms(e));if(t&&typeof t=="object"){let e={};for(let[r,n]of Object.entries(t))e[$x(r)]=ms(n);return e}return t}var kh=":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",eT=kh+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",tT="["+kh+"]["+eT+"]*",rT=new RegExp("^"+tT+"$");function gs(t,e){let r=[],n=e.exec(t);for(;n;){let o=[];o.startIndex=e.lastIndex-n[0].length;let s=n.length;for(let i=0;i<s;i++)o.push(n[i]);r.push(o),n=e.exec(t)}return r}var Rr=function(t){let e=rT.exec(t);return!(e===null||typeof e>"u")};function zh(t){return typeof t<"u"}var Mn=["hasOwnProperty","toString","valueOf","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"],bs=["__proto__","constructor","prototype"];var nT={allowBooleanAttributes:!1,unpairedTags:[]};function Xh(t,e){e=Object.assign({},nT,e);let r=[],n=!1,o=!1;t[0]==="\uFEFF"&&(t=t.substr(1));for(let s=0;s<t.length;s++)if(t[s]==="<"&&t[s+1]==="?"){if(s+=2,s=qh(t,s),s.err)return s}else if(t[s]==="<"){let i=s;if(s++,t[s]==="!"){s=Jh(t,s);continue}else{let a=!1;t[s]==="/"&&(a=!0,s++);let c="";for(;s<t.length&&t[s]!==">"&&t[s]!==" "&&t[s]!==" "&&t[s]!==`
7
+ "use strict";var __exports__=(()=>{var w1=Object.create;var Po=Object.defineProperty;var L1=Object.getOwnPropertyDescriptor;var F1=Object.getOwnPropertyNames;var P1=Object.getPrototypeOf,N1=Object.prototype.hasOwnProperty;var Cf=(t=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(t,{get:(e,r)=>(typeof require<"u"?require:e)[r]}):t)(function(t){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+t+'" is not supported')});var ke=(t,e)=>()=>{try{return e||t((e={exports:{}}).exports,e),e.exports}catch(r){throw e=0,r}},pe=(t,e)=>{for(var r in e)Po(t,r,{get:e[r],enumerable:!0})},Fo=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let o of F1(e))!N1.call(t,o)&&o!==r&&Po(t,o,{get:()=>e[o],enumerable:!(n=L1(e,o))||n.enumerable});return t},Ct=(t,e,r)=>(Fo(t,e,"default"),r&&Fo(r,e,"default")),D=(t,e,r)=>(r=t!=null?w1(P1(t)):{},Fo(e||!t||!t.__esModule?Po(r,"default",{value:t,enumerable:!0}):r,t)),O1=t=>Fo(Po({},"__esModule",{value:!0}),t);var ze=ke((Mv,Ef)=>{Ef.exports=globalThis.deck});var je=ke((Bv,If)=>{If.exports=globalThis.deck});var Yo=ke((iR,Gu)=>{Gu.exports=globalThis.h3||{}});var Xt=ke((H3,Hh)=>{Hh.exports=globalThis.loaders});var Cc=ke((qp,Wn)=>{(function(t,e){typeof define=="function"&&define.amd?define([],e):typeof Cf=="function"&&typeof Wn=="object"&&Wn&&Wn.exports?Wn.exports=e():(t.dcodeIO=t.dcodeIO||{}).Long=e()})(qp,function(){"use strict";function t(A,g,B){this.low=A|0,this.high=g|0,this.unsigned=!!B}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(A){return(A&&A.__isLong__)===!0}t.isLong=e;var r={},n={};function o(A,g){var B,w,L;return g?(A>>>=0,(L=0<=A&&A<256)&&(w=n[A],w)?w:(B=i(A,(A|0)<0?-1:0,!0),L&&(n[A]=B),B)):(A|=0,(L=-128<=A&&A<128)&&(w=r[A],w)?w:(B=i(A,A<0?-1:0,!1),L&&(r[A]=B),B))}t.fromInt=o;function s(A,g){if(isNaN(A)||!isFinite(A))return g?x:b;if(g){if(A<0)return x;if(A>=p)return E}else{if(A<=-d)return I;if(A+1>=d)return M}return A<0?s(-A,g).neg():i(A%h|0,A/h|0,g)}t.fromNumber=s;function i(A,g,B){return new t(A,g,B)}t.fromBits=i;var a=Math.pow;function c(A,g,B){if(A.length===0)throw Error("empty string");if(A==="NaN"||A==="Infinity"||A==="+Infinity"||A==="-Infinity")return b;if(typeof g=="number"?(B=g,g=!1):g=!!g,B=B||10,B<2||36<B)throw RangeError("radix");var w;if((w=A.indexOf("-"))>0)throw Error("interior hyphen");if(w===0)return c(A.substring(1),g,B).neg();for(var L=s(a(B,8)),R=b,O=0;O<A.length;O+=8){var H=Math.min(8,A.length-O),U=parseInt(A.substring(O,O+H),B);if(H<8){var Z=s(a(B,H));R=R.mul(Z).add(s(U))}else R=R.mul(L),R=R.add(s(U))}return R.unsigned=g,R}t.fromString=c;function l(A){return A instanceof t?A:typeof A=="number"?s(A):typeof A=="string"?c(A):i(A.low,A.high,A.unsigned)}t.fromValue=l;var f=65536,u=1<<24,h=f*f,p=h*h,d=p/2,m=o(u),b=o(0);t.ZERO=b;var x=o(0,!0);t.UZERO=x;var y=o(1);t.ONE=y;var _=o(1,!0);t.UONE=_;var T=o(-1);t.NEG_ONE=T;var M=i(-1,2147483647,!1);t.MAX_VALUE=M;var E=i(-1,-1,!0);t.MAX_UNSIGNED_VALUE=E;var I=i(0,-2147483648,!1);t.MIN_VALUE=I;var C=t.prototype;return C.toInt=function(){return this.unsigned?this.low>>>0:this.low},C.toNumber=function(){return this.unsigned?(this.high>>>0)*h+(this.low>>>0):this.high*h+(this.low>>>0)},C.toString=function(g){if(g=g||10,g<2||36<g)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(I)){var B=s(g),w=this.div(B),L=w.mul(B).sub(this);return w.toString(g)+L.toInt().toString(g)}else return"-"+this.neg().toString(g);for(var R=s(a(g,6),this.unsigned),O=this,H="";;){var U=O.div(R),Z=O.sub(U.mul(R)).toInt()>>>0,j=Z.toString(g);if(O=U,O.isZero())return j+H;for(;j.length<6;)j="0"+j;H=""+j+H}},C.getHighBits=function(){return this.high},C.getHighBitsUnsigned=function(){return this.high>>>0},C.getLowBits=function(){return this.low},C.getLowBitsUnsigned=function(){return this.low>>>0},C.getNumBitsAbs=function(){if(this.isNegative())return this.eq(I)?64:this.neg().getNumBitsAbs();for(var g=this.high!=0?this.high:this.low,B=31;B>0&&(g&1<<B)==0;B--);return this.high!=0?B+33:B+1},C.isZero=function(){return this.high===0&&this.low===0},C.isNegative=function(){return!this.unsigned&&this.high<0},C.isPositive=function(){return this.unsigned||this.high>=0},C.isOdd=function(){return(this.low&1)===1},C.isEven=function(){return(this.low&1)===0},C.equals=function(g){return e(g)||(g=l(g)),this.unsigned!==g.unsigned&&this.high>>>31===1&&g.high>>>31===1?!1:this.high===g.high&&this.low===g.low},C.eq=C.equals,C.notEquals=function(g){return!this.eq(g)},C.neq=C.notEquals,C.lessThan=function(g){return this.comp(g)<0},C.lt=C.lessThan,C.lessThanOrEqual=function(g){return this.comp(g)<=0},C.lte=C.lessThanOrEqual,C.greaterThan=function(g){return this.comp(g)>0},C.gt=C.greaterThan,C.greaterThanOrEqual=function(g){return this.comp(g)>=0},C.gte=C.greaterThanOrEqual,C.compare=function(g){if(e(g)||(g=l(g)),this.eq(g))return 0;var B=this.isNegative(),w=g.isNegative();return B&&!w?-1:!B&&w?1:this.unsigned?g.high>>>0>this.high>>>0||g.high===this.high&&g.low>>>0>this.low>>>0?-1:1:this.sub(g).isNegative()?-1:1},C.comp=C.compare,C.negate=function(){return!this.unsigned&&this.eq(I)?I:this.not().add(y)},C.neg=C.negate,C.add=function(g){e(g)||(g=l(g));var B=this.high>>>16,w=this.high&65535,L=this.low>>>16,R=this.low&65535,O=g.high>>>16,H=g.high&65535,U=g.low>>>16,Z=g.low&65535,j=0,K=0,te=0,_e=0;return _e+=R+Z,te+=_e>>>16,_e&=65535,te+=L+U,K+=te>>>16,te&=65535,K+=w+H,j+=K>>>16,K&=65535,j+=B+O,j&=65535,i(te<<16|_e,j<<16|K,this.unsigned)},C.subtract=function(g){return e(g)||(g=l(g)),this.add(g.neg())},C.sub=C.subtract,C.multiply=function(g){if(this.isZero()||(e(g)||(g=l(g)),g.isZero()))return b;if(this.eq(I))return g.isOdd()?I:b;if(g.eq(I))return this.isOdd()?I:b;if(this.isNegative())return g.isNegative()?this.neg().mul(g.neg()):this.neg().mul(g).neg();if(g.isNegative())return this.mul(g.neg()).neg();if(this.lt(m)&&g.lt(m))return s(this.toNumber()*g.toNumber(),this.unsigned);var B=this.high>>>16,w=this.high&65535,L=this.low>>>16,R=this.low&65535,O=g.high>>>16,H=g.high&65535,U=g.low>>>16,Z=g.low&65535,j=0,K=0,te=0,_e=0;return _e+=R*Z,te+=_e>>>16,_e&=65535,te+=L*Z,K+=te>>>16,te&=65535,te+=R*U,K+=te>>>16,te&=65535,K+=w*Z,j+=K>>>16,K&=65535,K+=L*U,j+=K>>>16,K&=65535,K+=R*H,j+=K>>>16,K&=65535,j+=B*Z+w*U+L*H+R*O,j&=65535,i(te<<16|_e,j<<16|K,this.unsigned)},C.mul=C.multiply,C.divide=function(g){if(e(g)||(g=l(g)),g.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?x:b;var B,w,L;if(this.unsigned){if(g.unsigned||(g=g.toUnsigned()),g.gt(this))return x;if(g.gt(this.shru(1)))return _;L=x}else{if(this.eq(I)){if(g.eq(y)||g.eq(T))return I;if(g.eq(I))return y;var R=this.shr(1);return B=R.div(g).shl(1),B.eq(b)?g.isNegative()?y:T:(w=this.sub(g.mul(B)),L=B.add(w.div(g)),L)}else if(g.eq(I))return this.unsigned?x:b;if(this.isNegative())return g.isNegative()?this.neg().div(g.neg()):this.neg().div(g).neg();if(g.isNegative())return this.div(g.neg()).neg();L=b}for(w=this;w.gte(g);){B=Math.max(1,Math.floor(w.toNumber()/g.toNumber()));for(var O=Math.ceil(Math.log(B)/Math.LN2),H=O<=48?1:a(2,O-48),U=s(B),Z=U.mul(g);Z.isNegative()||Z.gt(w);)B-=H,U=s(B,this.unsigned),Z=U.mul(g);U.isZero()&&(U=y),L=L.add(U),w=w.sub(Z)}return L},C.div=C.divide,C.modulo=function(g){return e(g)||(g=l(g)),this.sub(this.div(g).mul(g))},C.mod=C.modulo,C.not=function(){return i(~this.low,~this.high,this.unsigned)},C.and=function(g){return e(g)||(g=l(g)),i(this.low&g.low,this.high&g.high,this.unsigned)},C.or=function(g){return e(g)||(g=l(g)),i(this.low|g.low,this.high|g.high,this.unsigned)},C.xor=function(g){return e(g)||(g=l(g)),i(this.low^g.low,this.high^g.high,this.unsigned)},C.shiftLeft=function(g){return e(g)&&(g=g.toInt()),(g&=63)===0?this:g<32?i(this.low<<g,this.high<<g|this.low>>>32-g,this.unsigned):i(0,this.low<<g-32,this.unsigned)},C.shl=C.shiftLeft,C.shiftRight=function(g){return e(g)&&(g=g.toInt()),(g&=63)===0?this:g<32?i(this.low>>>g|this.high<<32-g,this.high>>g,this.unsigned):i(this.high>>g-32,this.high>=0?0:-1,this.unsigned)},C.shr=C.shiftRight,C.shiftRightUnsigned=function(g){if(e(g)&&(g=g.toInt()),g&=63,g===0)return this;var B=this.high;if(g<32){var w=this.low;return i(w>>>g|B<<32-g,B>>>g,this.unsigned)}else return g===32?i(B,0,this.unsigned):i(B>>>g-32,0,this.unsigned)},C.shru=C.shiftRightUnsigned,C.toSigned=function(){return this.unsigned?i(this.low,this.high,!1):this},C.toUnsigned=function(){return this.unsigned?this:i(this.low,this.high,!0)},C.toBytes=function(A){return A?this.toBytesLE():this.toBytesBE()},C.toBytesLE=function(){var A=this.high,g=this.low;return[g&255,g>>>8&255,g>>>16&255,g>>>24&255,A&255,A>>>8&255,A>>>16&255,A>>>24&255]},C.toBytesBE=function(){var A=this.high,g=this.low;return[A>>>24&255,A>>>16&255,A>>>8&255,A&255,g>>>24&255,g>>>16&255,g>>>8&255,g&255]},t})});var Uc=ke((jU,Nd)=>{Nd.exports=globalThis.luma});var Hs=ke((qU,Od)=>{Od.exports=globalThis.deck});var Dc=ke((JU,Ud)=>{Ud.exports=globalThis.luma});var W0=ke((A6,J0)=>{J0.exports=globalThis.deck});var n1=ke(hf=>{hf.read=function(t,e,r,n,o){var s,i,a=o*8-n-1,c=(1<<a)-1,l=c>>1,f=-7,u=r?o-1:0,h=r?-1:1,p=t[e+u];for(u+=h,s=p&(1<<-f)-1,p>>=-f,f+=a;f>0;s=s*256+t[e+u],u+=h,f-=8);for(i=s&(1<<-f)-1,s>>=-f,f+=n;f>0;i=i*256+t[e+u],u+=h,f-=8);if(s===0)s=1-l;else{if(s===c)return i?NaN:(p?-1:1)*(1/0);i=i+Math.pow(2,n),s=s-l}return(p?-1:1)*i*Math.pow(2,s-n)};hf.write=function(t,e,r,n,o,s){var i,a,c,l=s*8-o-1,f=(1<<l)-1,u=f>>1,h=o===23?Math.pow(2,-24)-Math.pow(2,-77):0,p=n?0:s-1,d=n?1:-1,m=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(a=isNaN(e)?1:0,i=f):(i=Math.floor(Math.log(e)/Math.LN2),e*(c=Math.pow(2,-i))<1&&(i--,c*=2),i+u>=1?e+=h/c:e+=h*Math.pow(2,1-u),e*c>=2&&(i++,c/=2),i+u>=f?(a=0,i=f):i+u>=1?(a=(e*c-1)*Math.pow(2,o),i=i+u):(a=e*Math.pow(2,u-1)*Math.pow(2,o),i=0));o>=8;t[r+p]=a&255,p+=d,a/=256,o-=8);for(i=i<<o|a,l+=o;l>0;t[r+p]=i&255,p+=d,i/=256,l-=8);t[r+p-d]|=m*128}});var l1=ke((az,c1)=>{"use strict";c1.exports=W;var zi=n1();function W(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}W.Varint=0;W.Fixed64=1;W.Bytes=2;W.Fixed32=5;var pf=65536*65536,o1=1/pf,NB=12,a1=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");W.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var n=this.readVarint(),o=n>>3,s=this.pos;this.type=n&7,t(o,e,this),this.pos===s&&this.skip(n)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=ji(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=i1(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=ji(this.buf,this.pos)+ji(this.buf,this.pos+4)*pf;return this.pos+=8,t},readSFixed64:function(){var t=ji(this.buf,this.pos)+i1(this.buf,this.pos+4)*pf;return this.pos+=8,t},readFloat:function(){var t=zi.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=zi.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e=this.buf,r,n;return n=e[this.pos++],r=n&127,n<128||(n=e[this.pos++],r|=(n&127)<<7,n<128)||(n=e[this.pos++],r|=(n&127)<<14,n<128)||(n=e[this.pos++],r|=(n&127)<<21,n<128)?r:(n=e[this.pos],r|=(n&15)<<28,OB(r,t,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2===1?(t+1)/-2:t/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=NB&&a1?YB(this.buf,e,t):KB(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==W.Bytes)return t.push(this.readVarint(e));var r=_t(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==W.Bytes)return t.push(this.readSVarint());var e=_t(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==W.Bytes)return t.push(this.readBoolean());var e=_t(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==W.Bytes)return t.push(this.readFloat());var e=_t(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==W.Bytes)return t.push(this.readDouble());var e=_t(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==W.Bytes)return t.push(this.readFixed32());var e=_t(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==W.Bytes)return t.push(this.readSFixed32());var e=_t(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==W.Bytes)return t.push(this.readFixed64());var e=_t(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==W.Bytes)return t.push(this.readSFixed64());var e=_t(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=t&7;if(e===W.Varint)for(;this.buf[this.pos++]>127;);else if(e===W.Bytes)this.pos=this.readVarint()+this.pos;else if(e===W.Fixed32)this.pos+=4;else if(e===W.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+e)},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),dn(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),dn(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),dn(this.buf,t&-1,this.pos),dn(this.buf,Math.floor(t*o1),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),dn(this.buf,t&-1,this.pos),dn(this.buf,Math.floor(t*o1),this.pos+4),this.pos+=8},writeVarint:function(t){if(t=+t||0,t>268435455||t<0){UB(t,this);return}this.realloc(4),this.buf[this.pos++]=t&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=t>>>7&127)))},writeSVarint:function(t){this.writeVarint(t<0?-t*2-1:t*2)},writeBoolean:function(t){this.writeVarint(!!t)},writeString:function(t){t=String(t),this.realloc(t.length*4),this.pos++;var e=this.pos;this.pos=QB(this.buf,t,this.pos);var r=this.pos-e;r>=128&&s1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),zi.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),zi.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r]},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var n=this.pos-r;n>=128&&s1(r,n,this),this.pos=r-1,this.writeVarint(n),this.pos+=n},writeMessage:function(t,e,r){this.writeTag(t,W.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,VB,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,HB,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,jB,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,kB,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,zB,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,qB,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,JB,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,WB,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,XB,e)},writeBytesField:function(t,e){this.writeTag(t,W.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,W.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,W.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,W.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,W.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,W.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,W.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,W.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,W.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,W.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,!!e)}};function OB(t,e,r){var n=r.buf,o,s;if(s=n[r.pos++],o=(s&112)>>4,s<128||(s=n[r.pos++],o|=(s&127)<<3,s<128)||(s=n[r.pos++],o|=(s&127)<<10,s<128)||(s=n[r.pos++],o|=(s&127)<<17,s<128)||(s=n[r.pos++],o|=(s&127)<<24,s<128)||(s=n[r.pos++],o|=(s&1)<<31,s<128))return pn(t,o,e);throw new Error("Expected varint not more than 10 bytes")}function _t(t){return t.type===W.Bytes?t.readVarint()+t.pos:t.pos+1}function pn(t,e,r){return r?e*4294967296+(t>>>0):(e>>>0)*4294967296+(t>>>0)}function UB(t,e){var r,n;if(t>=0?(r=t%4294967296|0,n=t/4294967296|0):(r=~(-t%4294967296),n=~(-t/4294967296),r^4294967295?r=r+1|0:(r=0,n=n+1|0)),t>=18446744073709552e3||t<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),DB(r,n,e),GB(n,e)}function DB(t,e,r){r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos]=t&127}function GB(t,e){var r=(t&7)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127)))))}function s1(t,e,r){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));r.realloc(n);for(var o=r.pos-1;o>=t;o--)r.buf[o+n]=r.buf[o]}function VB(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function HB(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function kB(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function zB(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function jB(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function qB(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function JB(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function WB(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function XB(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function ji(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function dn(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function i1(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function KB(t,e,r){for(var n="",o=e;o<r;){var s=t[o],i=null,a=s>239?4:s>223?3:s>191?2:1;if(o+a>r)break;var c,l,f;a===1?s<128&&(i=s):a===2?(c=t[o+1],(c&192)===128&&(i=(s&31)<<6|c&63,i<=127&&(i=null))):a===3?(c=t[o+1],l=t[o+2],(c&192)===128&&(l&192)===128&&(i=(s&15)<<12|(c&63)<<6|l&63,(i<=2047||i>=55296&&i<=57343)&&(i=null))):a===4&&(c=t[o+1],l=t[o+2],f=t[o+3],(c&192)===128&&(l&192)===128&&(f&192)===128&&(i=(s&15)<<18|(c&63)<<12|(l&63)<<6|f&63,(i<=65535||i>=1114112)&&(i=null))),i===null?(i=65533,a=1):i>65535&&(i-=65536,n+=String.fromCharCode(i>>>10&1023|55296),i=56320|i&1023),n+=String.fromCharCode(i),o+=a}return n}function YB(t,e,r){return a1.decode(t.subarray(e,r))}function QB(t,e,r){for(var n=0,o,s;n<e.length;n++){if(o=e.charCodeAt(n),o>55295&&o<57344)if(s)if(o<56320){t[r++]=239,t[r++]=191,t[r++]=189,s=o;continue}else o=s-55296<<10|o-56320|65536,s=null;else{o>56319||n+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):s=o;continue}else s&&(t[r++]=239,t[r++]=191,t[r++]=189,s=null);o<128?t[r++]=o:(o<2048?t[r++]=o>>6|192:(o<65536?t[r++]=o>>12|224:(t[r++]=o>>18|240,t[r++]=o>>12&63|128),t[r++]=o>>6&63|128),t[r++]=o&63|128)}return r}});var Lo={};pe(Lo,{A5Layer:()=>Vh,GeohashLayer:()=>R1,GreatCircleLayer:()=>jp,H3ClusterLayer:()=>Pd,H3HexagonLayer:()=>Vs,MVTLayer:()=>M1,QuadkeyLayer:()=>od,S2Layer:()=>rd,TerrainLayer:()=>q0,Tile3DLayer:()=>O0,TileLayer:()=>ar,TripsLayer:()=>wd,_GeoCellLayer:()=>Pe,_Tile2DHeader:()=>sr,_Tileset2D:()=>ir,_WMSLayer:()=>Hr,_getURLFromTemplate:()=>at});var $e={},Mf=D(ze(),1);Ct($e,D(ze(),1));if(!Mf.GeoJsonLayer)throw new Error("@deck.gl/layers is not found");Ct(Lo,$e);var Bf=D(je(),1),Xi=D(ze(),1),U1={...Xi.PolygonLayer.defaultProps},gn=class extends Bf.CompositeLayer{indexToBounds(){return null}renderLayers(){let{elevationScale:e,extruded:r,wireframe:n,filled:o,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineAntialiasing:f,lineJointRounded:u,lineMiterLimit:h,lineDashJustified:p,getElevation:d,getFillColor:m,getLineColor:b,getLineWidth:x}=this.props,{updateTriggers:y,material:_,transitions:T}=this.props,M=this.getSubLayerClass("cell",Xi.PolygonLayer),{updateTriggers:E,...I}=this.indexToBounds()||{};return new M({filled:o,wireframe:n,extruded:r,elevationScale:e,stroked:s,lineWidthUnits:i,lineWidthScale:a,lineWidthMinPixels:c,lineWidthMaxPixels:l,lineAntialiasing:f,lineJointRounded:u,lineMiterLimit:h,lineDashJustified:p,material:_,transitions:T,getElevation:d,getFillColor:m,getLineColor:b,getLineWidth:x},this.getSubLayerProps({id:"cell",updateTriggers:y&&{...E,getElevation:y.getElevation,getFillColor:y.getFillColor,getLineColor:y.getLineColor,getLineWidth:y.getLineWidth}}),I)}};gn.layerName="GeoCellLayer";gn.defaultProps=U1;var Pe=gn;function tu(){let t=new Float64Array(4);return t[0]=1,t[3]=1,t}function D1(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=-r,t[3]=n,t}function jt(){return new Float64Array(2)}function $i(t){let e=new Float64Array(2);return e[0]=t[0],e[1]=t[1],e}function G1(t,e,r){return t[0]=e,t[1]=r,t}function V1(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function ru(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function H1(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t}function nu(t,e){return t[0]=-e[0],t[1]=-e[1],t}function ou(t){return Math.hypot(t[0],t[1])}function su(t,e,r,n){let o=e[0],s=e[1];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t}function k1(t,e,r,n){let o=e[0]-r[0],s=e[1]-r[1],i=Math.sin(n),a=Math.cos(n);return t[0]=o*a-s*i+r[0],t[1]=o*i+s*a+r[1],t}function ca(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function iu(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function Ne(){return new Float64Array(3)}function Er(t,e,r){let n=new Float64Array(3);return n[0]=t,n[1]=e,n[2]=r,n}function z1(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function No(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function Ki(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function j1(t){return Math.hypot(t[0],t[1],t[2])}function vf(t,e){return Math.hypot(e[0]-t[0],e[1]-t[1],e[2]-t[2])}function la(t,e){let r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function ut(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Rf(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function Ho(t,e,r){let n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,m=n*u-o*f,b=i*2;return f*=b,u*=b,h*=b,p*=2,d*=2,m*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+m,t}var Jo=(1+Math.sqrt(5))/2,Rv=2*Math.PI,ko=2*Math.PI/5,et=Math.PI/5,wf=Math.PI/10,q1=2*Math.atan(Jo),ea=Math.PI-q1,wv=-.5*Math.PI+Math.acos(-1/Math.sqrt(3-Jo)),Wo=(Math.sqrt(5)-1)/2,J1=3-Math.sqrt(5),W1=Math.sqrt(3-Jo),Lv=Math.sqrt(3)*W1/Jo,zo=63710072e-1,Fv=4*Math.PI*zo*zo;function X1(t,e,r,n){let o=e[0]-t[0],s=e[1]-t[1],i=n[0]-r[0],a=n[1]-r[1],c=o*a-s*i;if(Math.abs(c)<1e-12)return!1;let l=r[0]-t[0],f=r[1]-t[1],u=(l*a-f*i)/c,h=(l*s-f*o)/c;return u>=0&&u<=1&&h>=0&&h<=1}var fa=class ta{constructor(e){this.vertices=e,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let e=0,r=this.vertices.length;for(let n=0;n<r;n++){let o=(n+1)%r;e+=(this.vertices[o][0]-this.vertices[n][0])*(this.vertices[o][1]+this.vertices[n][1])}return e}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(e){for(let r of this.vertices)ru(r,r,e);return this}rotate180(){for(let e of this.vertices)nu(e,e);return this}reflectY(){for(let e of this.vertices)e[1]=-e[1];return this.vertices.reverse(),this}translate(e){for(let r of this.vertices)V1(r,r,e);return this}transform(e){for(let r of this.vertices)ca(r,r,e);return this}transform2d(e){for(let r of this.vertices)iu(r,r,e);return this}clone(){return new ta(this.vertices.map(r=>$i(r)))}getCenter(){let e=this.vertices.length;return this.vertices.reduce((n,o)=>[n[0]+o[0]/e,n[1]+o[1]/e],[0,0])}containsPoint(e){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");let r=this.vertices.length,n=1;for(let o=0;o<r;o++){let s=this.vertices[o],i=this.vertices[(o+1)%r],a=s[0]-i[0],c=s[1]-i[1],l=e[0]-s[0],f=e[1]-s[1],u=a*f-c*l;if(u<0){let h=Math.sqrt(l*l+f*f);n=Math.min(n,u/h)}}return n}intersectsSegment(e,r){if(this.containsPoint(e)>0||this.containsPoint(r)>0)return!0;let n=this.vertices.length;for(let o=0;o<n;o++){let s=this.vertices[o],i=this.vertices[(o+1)%n];if(X1(e,r,s,i))return!0}return!1}splitEdges(e){if(e<=1)return this;let r=[],n=this.vertices.length;for(let o=0;o<n;o++){let s=this.vertices[o],i=this.vertices[(o+1)%n];r.push($i(s));for(let a=1;a<e;a++){let c=a/e,l=jt();su(l,s,i,c),r.push(l)}}return new ta(r)}},au=[0,0],cu=[0,1],kt=[.7885966681787006,1.6149108024237764],lu=[1.6171013659387945,1.054928690397459],fu=[Math.cos(wf),Math.sin(wf)],K1=2*ou(kt)*Math.cos(et),Y1=et-Math.atan2(kt[1],kt[0]),Q1=2*Wo/K1;[au,cu,kt,lu,fu].forEach(t=>{ru(t,t,Q1),k1(t,t,[0,0],Y1)});var uu=new fa([au,cu,kt,lu,fu]),hu=Math.atan2(kt[1],kt[0])-et,Z1=[0,0],jo=Wo/Math.cos(et),Lf=hu+et,Et=[jo*Math.cos(Lf),jo*Math.sin(Lf)],Ff=hu-et,zt=[jo*Math.cos(Ff),jo*Math.sin(Ff)],pu=new fa([Z1,Et,zt]),$1=[Et[0],Et[1],zt[0],zt[1]],Oo=1/(Et[0]*zt[1]-zt[0]*Et[1]),Pv=[zt[1]*Oo,-Et[1]*Oo,-zt[0]*Oo,Et[0]*Oo],eb=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2559257686421274e-24,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),tb=new Float64Array([.0022392089963541657,28831978048607556e-22,508622073997266e-23,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]),rb=class{applyCoefficients(t,e){let r=Math.sin(t),n=Math.cos(t),o=2*(n-r)*(n+r),s,i;return s=o*e[5]+e[4],i=o*s+e[3],s=o*i-s+e[2],i=o*s-i+e[1],s=o*i-s+e[0],t+2*r*n*s}forward(t){return this.applyCoefficients(t,eb)}inverse(t){return this.applyCoefficients(t,tb)}},du=new rb;function Pf(t){return t*(Math.PI/180)}function Nf(t){return t*(180/Math.PI)}function Of(t){let e=ou(t),r=Math.atan2(t[1],t[0]);return[e,r]}function nb([t,e]){let r=t*Math.cos(e),n=t*Math.sin(e);return[r,n]}function ob(t,[e,r,n]){let o=[e[0]-n[0],e[1]-n[1]],s=[n[0]-r[0],n[1]-r[1]],i=[t[0]-n[0],t[1]-n[1]],a=s[0]*o[1]-s[1]*o[0],c=(s[0]*i[1]-s[1]*i[0])/a,l=(o[0]*i[1]-o[1]*i[0])/a,f=1-(c+l);return[c,l,f]}function sb(t,[e,r,n]){return[t[0]*e[0]+t[1]*r[0]+t[2]*n[0],t[0]*e[1]+t[1]*r[1]+t[2]*n[1]]}function ra(t){let e=Math.atan2(t[1],t[0]),r=Math.sqrt(t[0]*t[0]+t[1]*t[1]),n=Math.atan2(r,t[2]);return[e,n]}function Ht([t,e]){let r=Math.sin(e),n=r*Math.cos(t),o=r*Math.sin(t),s=Math.cos(e);return[n,o,s]}var mu=93;function ib([t,e]){let r=Pf(t+mu),n=Pf(e),o=du.forward(n),s=Math.PI/2-o;return[r,s]}function gu(t){return((t+180)%360+360)%360-180}function bu([t,e]){let r=gu(Nf(t)-mu),n=Math.PI/2-e,o=du.inverse(n),s=Nf(o);return[r,s]}function ab(t){let e=Ne();for(let s=0;s<t.length;s++)z1(e,e,Ht(ib(t[s])));la(e,e);let[r,n]=bu(ra(e));(n>89.99||n<-89.99)&&(r=t[0][0]),r=gu(r);let o=new Array(t.length);for(let s=0;s<t.length;s++){let i=t[s][0],a=t[s][1];for(;i-r>180;)i=i-360;for(;i-r<-180;)i=i+360;o[s]=[i,a]}return o}function cb(){let t=new Float64Array(4);return t[3]=1,t}function lb(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}var Nv=Ne(),Ov=Er(1,0,0),Uv=Er(0,1,0);var Xo=Math.sqrt(5),Ko=Math.sqrt(.2),Au=Math.sqrt((1-Ko)/2),xu=Math.sqrt((1+Ko)/2),Uo=.5,Uf=Math.sqrt((2.5-Xo)/10),Df=Math.sqrt((2.5+Xo)/10),Gf=Math.sqrt((1+Ko)/8),Vf=Math.sqrt((1-Ko)/8),Hf=Math.sqrt((3-Xo)/8),kf=Math.sqrt((3+Xo)/8),fb=[[0,0],[Au,0],[Uf,Uo],[-Gf,Hf],[-Gf,-Hf],[Uf,-Uo],[-xu,0],[-Vf,-kf],[Df,-Uo],[Df,Uo],[-Vf,kf],[0,0]],ub=fb.map(([t,e])=>[-e,t]),Do=ub.map((t,e)=>e===0?[0,0,0,1]:e===11?[0,-1,0,0]:[...t,0,e<6?xu:Au]),Tu=["vu","uw","vw","vw","vw"],bn=["wu","uw","vw","vu","uw"],Yi=["wu","uv","wv","wu","uw"],Go=["vu","uv","wv","wu","uw"],hb=[Tu,Go,Yi,bn,Yi,Go,Yi,bn,bn,bn,Go,Go],pb=[4,2,3,2,0,4,3,2,2,0,3,0],zf=[0,1,2,4,3,5,7,8,6,11,10,9],qe=[];function db(){Vo([0,0],0,Do[0]);for(let t=0;t<5;t++){let e=t*ko,r=e+et;Vo([e,ea],et,Do[t+1]),Vo([r,Math.PI-ea],et,Do[(t+3)%5+6])}Vo([0,Math.PI],0,Do[11])}var Sr=0;function Vo(t,e,r){if(Sr>11)throw new Error(`Too many origins: ${Sr}`);let n=cb();lb(n,r);let o={id:Sr,axis:t,axisCartesian:Ht(t),quat:r,inverseQuat:n,angle:e,orientation:hb[Sr],firstQuintant:pb[Sr]};qe.push(o),Sr++}db();qe.sort((t,e)=>zf.indexOf(t.id)-zf.indexOf(e.id));qe.forEach((t,e)=>t.id=e);function mb(t,e){let r=e.orientation,n=r===Tu||r===bn?-1:1,o=(t-e.firstQuintant+5)%5,s=r[o];return{quintant:(e.firstQuintant+n*o+5)%5,orientation:s}}var gb=class{forward([t,e]){return[Math.tan(e),t]}inverse([t,e]){return[e,Math.atan(t)]}};function bb(t,e,r,n,o,s){let i=new Float64Array(6);return i[0]=t,i[1]=e,i[2]=r,i[3]=n,i[4]=o,i[5]=s,i}function Ab(t,e,r){return t[0]*(e[1]*r[2]-e[2]*r[1])+t[1]*(e[2]*r[0]-e[0]*r[2])+t[2]*(e[0]*r[1]-e[1]*r[0])}var Dv=Ne(),Gv=Ne();function jf(t,e,r){let n=1+(t[0]*e[0]+t[1]*e[1]+t[2]*e[2])+(e[0]*r[0]+e[1]*r[1]+e[2]*r[2])+(r[0]*t[0]+r[1]*t[1]+r[2]*t[2]);return 2*Math.atan2(Ab(t,e,r),n)}var qf=Ne(),Ae=Ne(),Qi=jt(),Zi=jt(),xb=class yu{constructor(e){this.constants=yu.computeConstants(e)}static computeConstants(e){let[r,n,o]=e,s=Ne();Rf(s,n,o);let i=ut(r,n),a=ut(r,o),c=ut(n,o),l=ut(r,s),f=a+c,u=i+1,h=i*c-a,p=f*f-u*u,d=2*u*h,m=bb(l*l-p,-d,-2*l*f,2*l*u,l*l+p,d);return{volumeABC:l,areaABC:jf(r,n,o),AdotB:i,AdotC:a,alphaTransform:m}}forward(e,r,n){let[o,s,i]=r,{areaABC:a,volumeABC:c}=this.constants;Rf(qf,s,i);let l=ut(e,qf);No(Ae,e,c),Ki(Ae,Ae,o,-l);let f=j1(Ae),u=f>0?1/f:1;No(Ae,Ae,u);let p=Math.max(0,jf(o,s,Ae))/a,d=f/c*Math.sqrt((1+ut(o,Ae))/(1+ut(o,e))),m=[1-d,d*(1-p),d*p];return sb(m,n)}inverse(e,r,n){let[o,s,i]=n,a=ob(e,r),c=1-1e-14;if(a[0]>c)return o;if(a[1]>c)return s;if(a[2]>c)return i;let{AdotB:l,AdotC:f,alphaTransform:u,areaABC:h}=this.constants,p=ut(o,s),d=Math.abs(p-l)>Math.abs(p-f),m=d?i:s,b=d?s:i,x=d?a[1]:a[2],y=1-a[0],_=x/y*h;Qi[0]=Math.cos(_),Qi[1]=Math.sin(_),iu(Zi,Qi,u),No(Ae,m,Zi[0]),Ki(Ae,Ae,b,Zi[1]),la(Ae,Ae);let T=ut(o,Ae),M=1+y*y*(T-1),E=y*Math.sqrt((1+M)/(1+T)),I=M-T*E,C=Ne();return No(C,o,I),Ki(C,C,Ae,E),C}},Tb=!1,ua=[0,1,2,3,4].map(t=>{let e=tu();return D1(e,ko*t),e}),Jf=jt(),Wf=jt(),Vv=[0,1,2,3].map(t=>{let e=uu.clone();return t&1&&e.rotate180(),t&2&&e.reflectY(),e.getCenter()});function yb(t,e,r,n,o=Tb){let s=(o?pu:uu).clone();return n&1&&s.rotate180(),n&2&&s.reflectY(),G1(Wf,r.x+r.y,-r.x+(n&1)),ca(Jf,Wf,$1),s.translate(Jf),s.scale(1/2**t),s.transform(ua[e]),s}function Su(t){let e=pu.clone();return e.transform(ua[t]),e}function Sb(){let t=[];for(let e of ua)t.push(ca(jt(),Et,e));return t.reverse(),new fa(t)}var _b=class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),this.vertices.length!==62)throw new Error("Failed to construct CRS: vertices length is not 62");Object.freeze(this.vertices)}getCanonicalTriangle(){return[this.vertices[0],this.vertices[32],this.vertices[12]]}getVertex(t){this.invocations++,this.invocations===1e4&&console.warn("Too many CRS invocations, results should be cached");for(let e of this.vertices)if(vf(t,e)<1e-5)return e;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){qe.forEach(t=>this.add(Ht(t.axis)))}addVertices(){let t=Math.atan(J1);for(let e of qe)for(let r=0;r<5;r++){let n=(2*r+1)*Math.PI/5,o=Ht([n+e.angle,t]);Ho(o,o,e.quat),this.add(o)}}addMidpoints(){let t=Math.atan(Wo);for(let e of qe)for(let r=0;r<5;r++){let n=2*r*Math.PI/5,o=Ht([n+e.angle,t]);Ho(o,o,e.quat),this.add(o)}}add(t){let e=la(Ne(),t);return this.vertices.find(n=>vf(e,n)<1e-5)?!1:(this.vertices.push(e),!0)}},Xf=new _b,Cb=class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.equalArea=new xb(Xf.getCanonicalTriangle()),this.gnomonic=new gb}forward(t,e){return this.forwardCartesian(Ht(t),e)}forwardCartesian(t,e){let r=qe[e],n=Ne();Ho(n,t,r.inverseQuat);let o=ra(n),s=this.gnomonic.forward(o);s[1]=s[1]-r.angle;let i=this.getFaceTriangleIndex(s),a=this.shouldReflect(s),c=this.getFaceTriangle(i,a,!1),l=this.getSphericalTriangle(i,e,a);return this.equalArea.forward(t,l,c)}inverse(t,e){let r=Of(t),n=this.getFaceTriangleIndex(r),o=this.shouldReflect(r),s=this.getFaceTriangle(n,o,!1),i=this.getSphericalTriangle(n,e,o),a=this.equalArea.inverse(t,s,i);return ra(a)}shouldReflect(t){let[e,r]=t;return nb([e,this.normalizeGamma(r)])[0]>Wo}getFaceTriangleIndex([t,e]){return(Math.floor(e/et)+10)%10}getFaceTriangle(t,e=!1,r=!1){let n=t;return e&&(n+=r?20:10),this.faceTriangles[n]?this.faceTriangles[n]:(this.faceTriangles[n]=e?this._getReflectedFaceTriangle(t,r):this._getFaceTriangle(t),Object.freeze(this.faceTriangles[n]),this.faceTriangles[n])}_getFaceTriangle(t){let e=Math.floor((t+1)/2)%5,[r,n,o]=Su(e).getVertices(),s=jt();return su(s,n,o,.5),t%2===0?[r,s,n]:[r,o,s]}_getReflectedFaceTriangle(t,e=!1){let[r,n,o]=this._getFaceTriangle(t).map(a=>$i(a)),s=t%2===0;return nu(r,r),H1(r,r,s?n:o,e?1+1/Math.cos(ea):2),[r,o,n]}getSphericalTriangle(t,e,r=!1){let n=10*e+t;return r&&(n+=120),this.sphericalTriangles[n]?this.sphericalTriangles[n]:(this.sphericalTriangles[n]=this._getSphericalTriangle(t,e,r),Object.freeze(this.sphericalTriangles[n]),this.sphericalTriangles[n])}_getSphericalTriangle(t,e,r=!1){let n=qe[e];return this.getFaceTriangle(t,r,!0).map(i=>{let[a,c]=Of(i),l=[a,c+n.angle],f=Ht(this.gnomonic.inverse(l));return Ho(f,f,n.quat),Xf.getVertex(f)})}normalizeGamma(t){let e=t/ko,r=Math.round(e);return(e-r)*ko}},_u={A:"PQAB",B:"B+++PQ---A",C:"P---RMb+++",M:"qQ+++C---b",P:"PpB---B+++",Q:"PQ---Cb+++",R:"b+++a---qQ"},Eb={A:"E",B:"+e-",C:"-e+",M:"T",P:"S",Q:"D",R:"+++D---"},Kf=Object.keys(_u),Hv=[...Kf,...Kf.map(t=>t.toLowerCase())],Mb=t=>t>="a"&&t<="z"?t.toUpperCase():t.toLowerCase(),Cu=t=>[...t].reverse().map(e=>e==="+"?"-":e==="-"?"+":Mb(e)).join("");function Yf(t,e){let r="";for(let n of t){let o=n.toUpperCase();e[n]!==void 0?r+=e[n]:n!==o&&e[o]!==void 0?r+=Cu(e[o]):r+=n}return r}var Eu=(t,e)=>({a:t.a+e.a,b:t.b+e.b}),Ib=t=>({a:-t.b,b:t.a+t.b}),Mu=(t,e)=>{let r=t,n=(e%6+6)%6;for(let o=0;o<n;o++)r=Ib(r);return r},Iu={E:{a:4,b:0},e:{a:4,b:0},S:{a:4,b:-2},s:{a:4,b:-2},U:{a:0,b:2},u:{a:0,b:2},D:{a:0,b:-2},d:{a:0,b:-2},T:{a:-4,b:0},t:{a:-4,b:0}},Bb=new Set(Object.keys(Iu)),vb={E:[{a:0,b:0},{a:4,b:0},{a:4,b:-4}],e:[{a:0,b:0},{a:4,b:0},{a:0,b:4}],S:[{a:0,b:0},{a:4,b:0},{a:4,b:-4}],s:[{a:4,b:-2},{a:0,b:2},{a:0,b:-2}],U:[{a:0,b:2},{a:0,b:-2},{a:4,b:-2}],u:[{a:0,b:0},{a:0,b:4},{a:-4,b:4}],D:[{a:0,b:2},{a:0,b:-2},{a:4,b:-2}],d:[{a:0,b:0},{a:0,b:-4},{a:-4,b:0}],T:[{a:0,b:-4},{a:-4,b:0},{a:-4,b:-4}],t:[{a:-4,b:4},{a:0,b:0},{a:0,b:4}]};function na(t,e,r){return vb[t].map(n=>Eu(e,Mu(n,r)))}function Rb(t,e,r){let[n,o,s]=na(t,e,r);return{a:n.a+o.a+s.a,b:n.b+o.b+s.b}}function oa(t,e,r,n){let o={...e},s=(r%6+6)%6;for(let i of t){if(i==="+"){s=(s+1)%6;continue}if(i==="-"){s=(s+5)%6;continue}Bb.has(i)&&(n?.(i,o,s),o=Eu(o,Mu(Iu[i],s)))}return{pos:o,heading:s}}function wb(t){let e=oa(t,{a:0,b:0},0);return{disp:e.pos,dHeading:e.heading}}var Qf=1e-6;function Lb(t,e,r){let n=r?-1:1,o=[];for(let s=0;s<4;s++){let i=e*4+s,a=t.childToken[i],c=t.childFlip[i],l=t.childOffA[i],f=t.childOffB[i],u=t.fpEdges[a*2+(r^c)],h=[];for(let p=0;p<u.length;p+=4)h.push([3*l*n+u[p],3*f*n+u[p+1]]);o.push([s,h])}return o}function sa(t){if(t.length===1)return{leaf:t[0][0]};for(let[,e]of t){let r=e.length;for(let n=0;n<r;n++){let[o,s]=e[n],[i,a]=e[(n+1)%r],c=a-s,l=-(i-o),f=-(c*o+l*s),u=[],h=[],p=!0;for(let[d,m]of t){let b=1/0,x=-1/0;for(let[y,_]of m){let T=c*y+l*_+f;T<b&&(b=T),T>x&&(x=T)}if(b>=-Qf)u.push([d,m]);else if(x<=Qf)h.push([d,m]);else{p=!1;break}}if(p&&u.length&&h.length)return{nx:c,ny:l,c:f,pos:sa(u),neg:sa(h)}}}throw new Error("lsystem: no clean BSP split for child set")}function ia(t,e){if("leaf"in t)return;let r=[t.nx,t.ny,t.c];e.some(n=>n[0]===r[0]&&n[1]===r[1]&&n[2]===r[2])||e.push(r),ia(t.pos,e),ia(t.neg,e)}function Bu(t,e,r){if("leaf"in t)return t.leaf;let n=r.findIndex(o=>o[0]===t.nx&&o[1]===t.ny&&o[2]===t.c);return Bu(e>>n&1?t.pos:t.neg,e,r)}var Zf={S:0,D:1,E:2,T:3};function vu(t,e){let r=Object.keys(t),n=[...r,...r.map(T=>T.toLowerCase())],o=n.length,s={};n.forEach((T,M)=>s[T]=M);function i(T,M){let E=T;for(let I=0;I<M;I++)E=Yf(E,t);return Yf(E,e)}let a=T=>wb(i(T,1)).disp;function c(T){let M={a:0,b:0},E=0,I=[];for(let C of T){if(C==="+"){E=(E+1)%6;continue}if(C==="-"){E=(E+5)%6;continue}if(t[C.toUpperCase()]===void 0)continue;if(E!==0&&E!==3)throw new Error(`lsystem: non-180\xB0 turn (${60*E}\xB0) before a child in rule "${T}"`);let A=E===3;I.push({token:C,offUnit:{...M},flip:A});let g=a(C);M=A?{a:M.a-g.a,b:M.b-g.b}:{a:M.a+g.a,b:M.b+g.b}}if(I.length!==4)throw new Error(`lsystem: rule "${T}" must have 4 children`);return I}let l={};for(let T of r)l[T]=c(t[T]);for(let T of r)l[T.toLowerCase()]=c(Cu(t[T]));let f=new Int32Array(o*4),u=new Uint8Array(o*4),h=new Float64Array(o*4),p=new Float64Array(o*4);for(let T of n){let M=l[T];for(let E=0;E<4;E++){let I=s[T]*4+E;f[I]=s[M[E].token],u[I]=M[E].flip?1:0,h[I]=M[E].offUnit.a,p[I]=M[E].offUnit.b}}function d(T){let M=[...new Map(T.map(A=>[`${A.a},${A.b}`,A])).values()].sort((A,g)=>A.a-g.a||A.b-g.b);if(M.length<3)return M;let E=(A,g,B)=>(g.a-A.a)*(B.b-A.b)-(g.b-A.b)*(B.a-A.a),I=[];for(let A of M){for(;I.length>=2&&E(I[I.length-2],I[I.length-1],A)<=0;)I.pop();I.push(A)}let C=[];for(let A=M.length-1;A>=0;A--){let g=M[A];for(;C.length>=2&&E(C[C.length-2],C[C.length-1],g)<=0;)C.pop();C.push(g)}return I.slice(0,-1).concat(C.slice(0,-1))}let m=new Array(o*2);for(let T of n){let M=[];oa(i(T,1),{a:0,b:0},0,(I,C,A)=>M.push(...na(I,C,A)));let E=d(M);for(let I=0;I<2;I++){let C=I?-1:1,A=new Float64Array(E.length*4);for(let g=0;g<E.length;g++){let B=E[g],w=E[(g+1)%E.length];A[g*4]=3*C*B.a,A[g*4+1]=3*C*B.b,A[g*4+2]=C*(w.a-B.a),A[g*4+3]=C*(w.b-B.b)}m[s[T]*2+I]=A}}let b=new Float64Array(o*2*8),x=new Float64Array(o*2*48),y=new Uint8Array(o*2*4);for(let T of n){let M=i(T,1);for(let E=0;E<2;E++){let I=s[T]*2+E,C=0;oa(M,{a:0,b:0},E?3:0,(A,g,B)=>{let w=Rb(A,g,B);b[I*8+C*2]=w.a,b[I*8+C*2+1]=w.b;let L=A.toUpperCase();if(Zf[L]===void 0)throw new Error(`lsystem: no pentagon flavor for draw symbol ${A}`);y[I*4+C]=Zf[L]^(A===L?0:1)^B&1;let R=na(A,g,B);(R[1].a-R[0].a)*(R[2].b-R[0].b)-(R[1].b-R[0].b)*(R[2].a-R[0].a)<0&&(R=[R[0],R[2],R[1]]);for(let H=0;H<3;H++){let U=R[H],Z=R[(H+1)%3],j=I*48+C*12+H*4;x[j]=3*U.a,x[j+1]=3*U.b,x[j+2]=Z.a-U.a,x[j+3]=Z.b-U.b}C++})}}let _={motifIdx:s,childToken:f,childFlip:u,childOffA:h,childOffB:p,fpEdges:m,leafSum:b,leafTri:x,leafFlavor:y,classSep:new Float64Array(o*2*9),classLut:new Uint8Array(o*2*8)};for(let T=0;T<o;T++)for(let M=0;M<2;M++){let E=T*2+M,I=sa(Lb(_,T,M)),C=[];ia(I,C);for(let A=0;A<C.length;A++)_.classSep[E*9+A*3]=C[A][0],_.classSep[E*9+A*3+1]=C[A][1],_.classSep[E*9+A*3+2]=C[A][2];for(let A=0;A<8;A++)_.classLut[E*8+A]=Bu(I,A,C)}return _}var qo=new Float64Array(32);for(let t=0;t<32;t++)qo[t]=2**t;var Ru=new Float64Array(20);for(let t=0;t<20;t++)Ru[t]=4**t;var _r=vu(_u,Eb);var $f=13,Fb=26n,Pb=0x3ffffffn;function Nb(t,e){if((2*t+e)%12!==0||e%4!==0)throw new Error(`abToTriple: off-lattice corner sum (${t},${e})`);let r=(2*t+e-12)/12,n=(e+4)/4;for(let o of[0,1]){if((n+o)%3!==0)continue;let s=(n+o)/3,i=o-s;if((i+r)%2===0)return{x:s,y:(i+r)/2,z:(i-r)/2}}throw new Error(`abToTriple: no integer triple for (${t},${e})`)}function Ob(t,e,r,n){let{childToken:o,childFlip:s,childOffA:i,childOffB:a,leafSum:c,leafFlavor:l}=t,f=Number(e&Pb),u=Number(e>>Fb),h=n,p=0,d=0,m=0;for(let y=r;y>=2;y--){let _=y-1,T=_<$f?f>>>(_<<1)&3:Math.floor(u/Ru[_-$f])%4,M=h*4+T,E=p?-qo[y-2]:qo[y-2];d+=i[M]*E,m+=a[M]*E,p^=s[M],h=o[M]}let b=r>=1?f&3:0,x=h*2+p;return{a:3*d+c[x*8+b*2],b:3*m+c[x*8+b*2+1],flavor:l[x*4+b]}}var kv={uv:{axiom:_r.motifIdx.A,reverse:!1,isB:!1},vu:{axiom:_r.motifIdx.A,reverse:!0,isB:!1},uw:{axiom:_r.motifIdx.C,reverse:!1,isB:!1},wu:{axiom:_r.motifIdx.C,reverse:!0,isB:!1},vw:{axiom:_r.motifIdx.B,reverse:!0,isB:!0},wv:{axiom:_r.motifIdx.B,reverse:!1,isB:!0}},wu=vu({W:"W+++Z---WZ",Z:"Z+++W---ZW"},{W:"E",Z:"+e-"}),Ub=wu.motifIdx.W;function Lu(t){return Array.from({length:t.length},(e,r)=>t.indexOf(r))}var Fu=[0,1,3,4,5,6,7,2],Pu=[0,1,2,7,3,4,5,6],zv=Lu(Fu),jv=Lu(Pu);function Db(t,e,r,n,o){if(e<=0)return;let s=t[e]||0,i=t[e-1],a=r[0]+r[1],c=!0,l=!0;if(n!==(a===0)?(c=s===1||s===2,l=s===1):(c=s<2,l=s===0),!c)return;let f=l?i:i+4,u=o[f];t[e-1]=u%4,t[e]=(s+4+Math.floor(u/4)-Math.floor(f/4))%4}function Gb(t,e){e===1?t[1]=-t[1]:e===3&&(t[0]=-t[0])}function Vb(t,e,r){let n=r?Pu:Fu,o=[1,1];for(let s=t.length-1;s>=0;s--)Db(t,s,o,e,n),Gb(o,t[s]);return o}function Hb(t,e){let r=[],n=t;for(;n>0n||r.length<e;)r.push(Number(n&3n)),n>>=2n;return r}function kb(t){let e=0n;for(let r=t.length-1;r>=0;r--)e=e<<2n|BigInt(t[r]);return e}var zb={uv:{reverse:!1,invertJ:!1,flipIJ:!1},vu:{reverse:!0,invertJ:!1,flipIJ:!1},uw:{reverse:!1,invertJ:!1,flipIJ:!0},wu:{reverse:!0,invertJ:!1,flipIJ:!0},vw:{reverse:!0,invertJ:!0,flipIJ:!1},wv:{reverse:!1,invertJ:!0,flipIJ:!1}};function jb(t,e){let r=t[1]===-1?1:0,o=(t[0]+t[1]===0?e===0||e===3:e===2||e===3)?1:0;return r|o<<1}function qb(t,e,r){let n=1n<<BigInt(2*e),o=r.reverse?n-1n-t:t,s=Hb(o,e),i=Vb(s,r.invertJ,r.flipIJ),a=Ob(wu,kb(s),e,Ub),c=Nb(a.a,a.b);if(r.flipIJ&&(c={x:c.z,y:c.y,z:c.x}),r.invertJ){let l=qo[e]-1;c={x:c.y-l,y:c.x+l,z:c.z}}return{triple:c,flips:i,q:s.length>0?s[0]:0}}function Jb(t,e,r="uv"){let n=zb[r],{triple:o,flips:s,q:i}=qb(t,e,n);return n.invertJ&&(s[0]=-s[0]),{triple:o,flavor:jb(s,i)}}var Cr=2,aa=30,eu=58n,Wb=0n;function Xb(t){if(t===0n)return-1;if(t&1n||(t&0b111n)===0b100n||(t&0b11111n)===0b10000n)return aa;let e=aa-1,r=t>>1n;if(r===0n)return-1;let n=Number(r&0xffffffffn),o;for(n===0?(r>>=32n,e-=16,o=Number(r)):o=n,(o&65535)===0&&(o>>=16,e-=8),e>=6&&(o&255)===0&&(o>>=8,e-=4),e>=4&&(o&15)===0&&(o>>=4,e-=2);e>-1&&(o&1)===0;)e-=1,o=o>>(e<Cr?1:2);return e}function Kb(t){let e=Xb(t);if(e===-1)return{origin:qe[0],segment:0,S:0n,resolution:e};let r=eu,n=0;if(e===aa){let u=t&1n?1n:t&0b100n?3n:5n;r=eu+u,n=u===1n?0:u===3n?32:40}let o=Number(t>>r)+n,s,i;if(e===0)s=qe[o],i=0;else{let u=Math.floor(o/5);s=qe[u],i=(o+s.firstQuintant)%5}if(!s)throw new Error(`Could not parse origin: ${o}`);if(e<Cr)return{origin:s,segment:i,S:0n,resolution:e};let a=e-Cr+1,c=BigInt(2*a),l=(1n<<r)-1n,f=(t&l)>>r-c;return{origin:s,segment:i,S:f,resolution:e}}var F=(t,e,r)=>({x:t,y:e,z:r}),qv=[{edge:[F(0,0,1),F(0,1,-1),F(0,1,0),F(1,-1,0),F(1,0,0)],vertex:[F(1,-1,1),F(1,1,-1)],all:[F(0,0,1),F(0,1,-1),F(0,1,0),F(1,-1,0),F(1,0,0),F(1,-1,1),F(1,1,-1)]},{edge:[F(0,0,-1),F(0,-1,1),F(0,-1,0),F(-1,1,0),F(-1,0,0)],vertex:[F(-1,1,-1),F(-1,-1,1)],all:[F(0,0,-1),F(0,-1,1),F(0,-1,0),F(-1,1,0),F(-1,0,0),F(-1,1,-1),F(-1,-1,1)]},{edge:[F(-1,1,0),F(0,-1,1),F(0,0,1),F(0,1,0),F(1,0,0)],vertex:[F(-1,1,1),F(1,-1,1)],all:[F(-1,1,0),F(0,-1,1),F(0,0,1),F(0,1,0),F(1,0,0),F(-1,1,1),F(1,-1,1)]},{edge:[F(1,-1,0),F(0,1,-1),F(0,0,-1),F(0,-1,0),F(-1,0,0)],vertex:[F(1,-1,-1),F(-1,1,-1)],all:[F(1,-1,0),F(0,1,-1),F(0,0,-1),F(0,-1,0),F(-1,0,0),F(1,-1,-1),F(-1,1,-1)]}];var Yb=24,Qb=1.4,Jv=Er(0,0,1),Wv=(()=>{let t=[];for(let e=0;e<Yb;e++){let r=(e+1)*Qb;t.push(Er(Math.cos(r),Math.sin(r),0))}return t})();var Xv=tu(),Zb=new Cb;var Kv=70*Math.PI/180,Yv=Ne();function $b({S:t,segment:e,origin:r,resolution:n}){let{quintant:o,orientation:s}=mb(e,r);if(n===Cr-1)return Su(o);if(n===Cr-2)return Sb();let i=n-Cr+1,{triple:a,flavor:c}=Jb(t,i,s);return yb(i,o,a,c)}function Nu(t,{closedRing:e=!0,segments:r="auto"}={closedRing:!0,segments:"auto"}){if(t===Wb)return[];let{S:n,segment:o,origin:s,resolution:i}=Kb(t);r==="auto"&&(r=Math.max(1,Math.pow(2,6-i)));let l=$b({S:n,segment:o,origin:s,resolution:i}).splitEdges(r).getVertices(),f=new Array(l.length);for(let h=0;h<l.length;h++)f[h]=bu(Zb.inverse(l[h],s.id));let u=ab(f);return e&&u.push(u[0]),u.reverse(),u}function Ou(t){return BigInt(`0x${t}`)}var Uu=2;var eA=Uu*zo/Math.sqrt(15),Du=new Array(31);Du[0]=Uu*zo/Math.sqrt(3);for(let t=1;t<=30;t++)Du[t]=eA/(1<<t-1);var Qv=(()=>{let t=[];for(let e=-1;e<=1;e++)for(let r=-1;r<=1;r++)for(let n=-1;n<=1;n++)e===0&&r===0&&n===0||t.push([e,r,n]);return t})();var Zv=Er(0,0,1),$v=Er(1,0,0),eR=Ne();var Cn=D(Yo(),1);var tA=1/Math.PI*180,rA=1/180*Math.PI,nA={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...nA}};var Q=globalThis.mathgl.config;function ha(t,{precision:e=Q.precision}={}){return t=oA(t),`${parseFloat(t.toPrecision(e))}`}function ve(t){return Array.isArray(t)||ArrayBuffer.isView(t)&&!(t instanceof DataView)}function pa(t){return Vu(t)}function da(t){return Re(t)}function Vu(t,e){return ma(t,r=>r*rA,e)}function Re(t,e){return ma(t,r=>r*tA,e)}function Qo(t,e,r){return ma(t,n=>Math.max(e,Math.min(r,n)))}function Mt(t,e,r){return ve(t)?t.map((n,o)=>Mt(n,e[o],r)):r*e+(1-r)*t}function xe(t,e,r){let n=Q.EPSILON;r&&(Q.EPSILON=r);try{if(t===e)return!0;if(ve(t)&&ve(e)){if(t.length!==e.length)return!1;for(let o=0;o<t.length;++o)if(!xe(t[o],e[o]))return!1;return!0}return t&&t.equals?t.equals(e):e&&e.equals?e.equals(t):typeof t=="number"&&typeof e=="number"?Math.abs(t-e)<=Q.EPSILON*Math.max(1,Math.abs(t),Math.abs(e)):!1}finally{Q.EPSILON=n}}function oA(t){return Math.round(t/Q.EPSILON)*Q.EPSILON}function sA(t){return t.clone?t.clone():new Array(t.length)}function ma(t,e,r){if(ve(t)){let n=t;r=r||sA(n);for(let o=0;o<r.length&&o<n.length;++o){let s=typeof t=="number"?t:t[o];r[o]=e(s,o,r)}return r}return e(t)}var It=class extends Array{clone(){return new this.constructor().copy(this)}fromArray(e,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=e[n+r];return this.check()}toArray(e=[],r=0){for(let n=0;n<this.ELEMENTS;++n)e[r+n]=this[n];return e}toObject(e){return e}from(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}to(e){return e===this?this:ve(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(Q)}formatString(e){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+ha(this[n],e);return`${e.printTypes?this.constructor.name:""}[${r}]`}equals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!xe(this[r],e[r]))return!1;return!0}exactEquals(e){if(!e||this.length!==e.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==e[r])return!1;return!0}negate(){for(let e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}lerp(e,r,n){if(n===void 0)return this.lerp(this,e,r);for(let o=0;o<this.ELEMENTS;++o){let s=e[o],i=typeof r=="number"?r:r[o];this[o]=s+n*(i-s)}return this.check()}min(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(e[r],this[r]);return this.check()}max(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(e[r],this[r]);return this.check()}clamp(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e[n]),r[n]);return this.check()}add(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(e){if(typeof e=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;else for(let r=0;r<this.ELEMENTS&&r<e.length;++r)this[r]*=e[r];return this.check()}multiplyByScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}check(){if(Q.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let e=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)e=e&&Number.isFinite(this[r]);return e}sub(e){return this.subtract(e)}setScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]=e;return this.check()}addScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]+=e;return this.check()}subScalar(e){return this.addScalar(-e)}multiplyScalar(e){for(let r=0;r<this.ELEMENTS;++r)this[r]*=e;return this.check()}divideScalar(e){return this.multiplyByScalar(1/e)}clampScalar(e,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e),r);return this.check()}get elements(){return this}};function iA(t,e){if(t.length!==e)return!1;for(let r=0;r<t.length;++r)if(!Number.isFinite(t[r]))return!1;return!0}function V(t){if(!Number.isFinite(t))throw new Error(`Invalid number ${JSON.stringify(t)}`);return t}function Bt(t,e,r=""){if(Q.debug&&!iA(t,e))throw new Error(`math.gl: ${r} some fields set to invalid numbers'`);return t}function fe(t,e){if(!t)throw new Error(`math.gl assertion ${e}`)}var vt=class extends It{get x(){return this[0]}set x(e){this[0]=V(e)}get y(){return this[1]}set y(e){this[1]=V(e)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let e=0;for(let r=0;r<this.ELEMENTS;++r)e+=this[r]*this[r];return e}magnitudeSquared(){return this.lengthSquared()}distance(e){return Math.sqrt(this.distanceSquared(e))}distanceSquared(e){let r=0;for(let n=0;n<this.ELEMENTS;++n){let o=this[n]-e[n];r+=o*o}return V(r)}dot(e){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*e[n];return V(r)}normalize(){let e=this.magnitude();if(e!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=e;return this.check()}multiply(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...e){for(let r of e)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(e){return this.distance(e)}distanceToSquared(e){return this.distanceSquared(e)}getComponent(e){return fe(e>=0&&e<this.ELEMENTS,"index is out of range"),V(this[e])}setComponent(e,r){return fe(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=r,this.check()}addVectors(e,r){return this.copy(e).add(r)}subVectors(e,r){return this.copy(e).subtract(r)}multiplyVectors(e,r){return this.copy(e).multiply(r)}addScaledVector(e,r){return this.add(new this.constructor(e).multiplyScalar(r))}};var re=typeof Float32Array<"u"?Float32Array:Array,An=Math.random;function Mr(t){return t>=0?Math.round(t):t%.5===0?Math.floor(t):Math.round(t)}var bR=Math.PI/180;function aA(){let t=new re(2);return re!=Float32Array&&(t[0]=0,t[1]=0),t}function Hu(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t}function ku(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o+r[4],t[1]=r[1]*n+r[3]*o+r[5],t}function Zo(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[3]*o+r[6],t[1]=r[1]*n+r[4]*o+r[7],t}function $o(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[4]*o+r[12],t[1]=r[1]*n+r[5]*o+r[13],t}var AR=(function(){let t=aA();return function(e,r,n,o,s,i){let a,c;for(r||(r=2),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],s(t,t,i),e[a]=t[0],e[a+1]=t[1];return e}})();function es(t,e,r){let n=e[0],o=e[1],s=r[3]*n+r[7]*o||1;return t[0]=(r[0]*n+r[4]*o)/s,t[1]=(r[1]*n+r[5]*o)/s,t}function ts(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s||1;return t[0]=(r[0]*n+r[4]*o+r[8]*s)/i,t[1]=(r[1]*n+r[5]*o+r[9]*s)/i,t[2]=(r[2]*n+r[6]*o+r[10]*s)/i,t}function zu(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t}function ju(t,e,r){let n=e[0],o=e[1];return t[0]=r[0]*n+r[2]*o,t[1]=r[1]*n+r[3]*o,t[2]=e[2],t[3]=e[3],t}function rs(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=r[0]*n+r[3]*o+r[6]*s,t[1]=r[1]*n+r[4]*o+r[7]*s,t[2]=r[2]*n+r[5]*o+r[8]*s,t[3]=e[3],t}var qt=class extends vt{constructor(e=0,r=0){super(2),ve(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(r)),this[0]=e,this[1]=r)}set(e,r){return this[0]=e,this[1]=r,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y)),this[0]=e.x,this[1]=e.y,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e}get ELEMENTS(){return 2}horizontalAngle(){return Math.atan2(this.y,this.x)}verticalAngle(){return Math.atan2(this.x,this.y)}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return $o(this,this,e),this.check()}transformAsVector(e){return es(this,this,e),this.check()}transformByMatrix3(e){return Zo(this,this,e),this.check()}transformByMatrix2x3(e){return ku(this,this,e),this.check()}transformByMatrix2(e){return Hu(this,this,e),this.check()}};var Br={};pe(Br,{add:()=>hA,angle:()=>Ta,bezier:()=>EA,ceil:()=>pA,clone:()=>lA,copy:()=>fA,create:()=>ns,cross:()=>Jt,dist:()=>PA,distance:()=>Ku,div:()=>FA,divide:()=>Xu,dot:()=>xn,equals:()=>RA,exactEquals:()=>vA,floor:()=>dA,forEach:()=>UA,fromValues:()=>os,hermite:()=>CA,inverse:()=>yA,len:()=>ya,length:()=>qu,lerp:()=>SA,max:()=>gA,min:()=>mA,mul:()=>LA,multiply:()=>Wu,negate:()=>TA,normalize:()=>ga,random:()=>MA,rotateX:()=>ba,rotateY:()=>Aa,rotateZ:()=>xa,round:()=>bA,scale:()=>AA,scaleAndAdd:()=>xA,set:()=>uA,slerp:()=>_A,sqrDist:()=>NA,sqrLen:()=>OA,squaredDistance:()=>Yu,squaredLength:()=>Qu,str:()=>BA,sub:()=>wA,subtract:()=>Ju,transformMat3:()=>Tn,transformMat4:()=>Wt,transformQuat:()=>yn,zero:()=>IA});function ns(){let t=new re(3);return re!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function lA(t){let e=new re(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function qu(t){let e=t[0],r=t[1],n=t[2];return Math.sqrt(e*e+r*r+n*n)}function os(t,e,r){let n=new re(3);return n[0]=t,n[1]=e,n[2]=r,n}function fA(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function uA(t,e,r,n){return t[0]=e,t[1]=r,t[2]=n,t}function hA(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function Ju(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function Wu(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function Xu(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function pA(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function dA(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function mA(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function gA(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function bA(t,e){return t[0]=Mr(e[0]),t[1]=Mr(e[1]),t[2]=Mr(e[2]),t}function AA(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function xA(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t}function Ku(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return Math.sqrt(r*r+n*n+o*o)}function Yu(t,e){let r=e[0]-t[0],n=e[1]-t[1],o=e[2]-t[2];return r*r+n*n+o*o}function Qu(t){let e=t[0],r=t[1],n=t[2];return e*e+r*r+n*n}function TA(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function yA(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function ga(t,e){let r=e[0],n=e[1],o=e[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),t[0]=e[0]*s,t[1]=e[1]*s,t[2]=e[2]*s,t}function xn(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function Jt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2];return t[0]=o*c-s*a,t[1]=s*i-n*c,t[2]=n*a-o*i,t}function SA(t,e,r,n){let o=e[0],s=e[1],i=e[2];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t}function _A(t,e,r,n){let o=Math.acos(Math.min(Math.max(xn(e,r),-1),1)),s=Math.sin(o),i=Math.sin((1-n)*o)/s,a=Math.sin(n*o)/s;return t[0]=i*e[0]+a*r[0],t[1]=i*e[1]+a*r[1],t[2]=i*e[2]+a*r[2],t}function CA(t,e,r,n,o,s){let i=s*s,a=i*(2*s-3)+1,c=i*(s-2)+s,l=i*(s-1),f=i*(3-2*s);return t[0]=e[0]*a+r[0]*c+n[0]*l+o[0]*f,t[1]=e[1]*a+r[1]*c+n[1]*l+o[1]*f,t[2]=e[2]*a+r[2]*c+n[2]*l+o[2]*f,t}function EA(t,e,r,n,o,s){let i=1-s,a=i*i,c=s*s,l=a*i,f=3*s*a,u=3*c*i,h=c*s;return t[0]=e[0]*l+r[0]*f+n[0]*u+o[0]*h,t[1]=e[1]*l+r[1]*f+n[1]*u+o[1]*h,t[2]=e[2]*l+r[2]*f+n[2]*u+o[2]*h,t}function MA(t,e){e=e===void 0?1:e;let r=An()*2*Math.PI,n=An()*2-1,o=Math.sqrt(1-n*n)*e;return t[0]=Math.cos(r)*o,t[1]=Math.sin(r)*o,t[2]=n*e,t}function Wt(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[3]*n+r[7]*o+r[11]*s+r[15];return i=i||1,t[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/i,t[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/i,t[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/i,t}function Tn(t,e,r){let n=e[0],o=e[1],s=e[2];return t[0]=n*r[0]+o*r[3]+s*r[6],t[1]=n*r[1]+o*r[4]+s*r[7],t[2]=n*r[2]+o*r[5]+s*r[8],t}function yn(t,e,r){let n=r[0],o=r[1],s=r[2],i=r[3],a=e[0],c=e[1],l=e[2],f=o*l-s*c,u=s*a-n*l,h=n*c-o*a,p=o*h-s*u,d=s*f-n*h,m=n*u-o*f,b=i*2;return f*=b,u*=b,h*=b,p*=2,d*=2,m*=2,t[0]=a+f+p,t[1]=c+u+d,t[2]=l+h+m,t}function ba(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Aa(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function xa(t,e,r,n){let o=[],s=[];return o[0]=e[0]-r[0],o[1]=e[1]-r[1],o[2]=e[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],t[0]=s[0]+r[0],t[1]=s[1]+r[1],t[2]=s[2]+r[2],t}function Ta(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2],c=Math.sqrt((r*r+n*n+o*o)*(s*s+i*i+a*a)),l=c&&xn(t,e)/c;return Math.acos(Math.min(Math.max(l,-1),1))}function IA(t){return t[0]=0,t[1]=0,t[2]=0,t}function BA(t){return`vec3(${t[0]}, ${t[1]}, ${t[2]})`}function vA(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function RA(t,e){let r=t[0],n=t[1],o=t[2],s=e[0],i=e[1],a=e[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-i)<=1e-6*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(o-a)<=1e-6*Math.max(1,Math.abs(o),Math.abs(a))}var wA=Ju,LA=Wu,FA=Xu,PA=Ku,NA=Yu,ya=qu,OA=Qu,UA=(function(){let t=ns();return function(e,r,n,o,s,i){let a,c;for(r||(r=3),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2];return e}})();var Sa=[0,0,0],ss,S=class t extends vt{static get ZERO(){return ss||(ss=new t(0,0,0),Object.freeze(ss)),ss}constructor(e=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&ve(e)?this.copy(e):(Q.debug&&(V(e),V(r),V(n)),this[0]=e,this[1]=r,this[2]=n)}set(e,r,n){return this[0]=e,this[1]=r,this[2]=n,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y),V(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}get ELEMENTS(){return 3}get z(){return this[2]}set z(e){this[2]=V(e)}angle(e){return Ta(this,e)}cross(e){return Jt(this,this,e),this.check()}rotateX({radians:e,origin:r=Sa}){return ba(this,this,r,e),this.check()}rotateY({radians:e,origin:r=Sa}){return Aa(this,this,r,e),this.check()}rotateZ({radians:e,origin:r=Sa}){return xa(this,this,r,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return Wt(this,this,e),this.check()}transformAsVector(e){return ts(this,this,e),this.check()}transformByMatrix3(e){return Tn(this,this,e),this.check()}transformByMatrix2(e){return zu(this,this,e),this.check()}transformByQuaternion(e){return yn(this,this,e),this.check()}};var is,as=class t extends vt{static get ZERO(){return is||(is=new t(0,0,0,0),Object.freeze(is)),is}constructor(e=0,r=0,n=0,o=0){super(-0,-0,-0,-0),ve(e)&&arguments.length===1?this.copy(e):(Q.debug&&(V(e),V(r),V(n),V(o)),this[0]=e,this[1]=r,this[2]=n,this[3]=o)}set(e,r,n,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}fromObject(e){return Q.debug&&(V(e.x),V(e.y),V(e.z),V(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e.w=this[3],e}get ELEMENTS(){return 4}get z(){return this[2]}set z(e){this[2]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}transform(e){return Wt(this,this,e),this.check()}transformByMatrix3(e){return rs(this,this,e),this.check()}transformByMatrix2(e){return ju(this,this,e),this.check()}transformByQuaternion(e){return yn(this,this,e),this.check()}applyMatrix4(e){return e.transform(this,this),this}};var vr=class extends It{toString(){let e="[";if(Q.printRowMajor){e+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)e+=` ${this[n*this.RANK+r]}`}else{e+="column-major:";for(let r=0;r<this.ELEMENTS;++r)e+=` ${this[r]}`}return e+="]",e}getElementIndex(e,r){return r*this.RANK+e}getElement(e,r){return this[r*this.RANK+e]}setElement(e,r,n){return this[r*this.RANK+e]=V(n),this}getColumn(e,r=new Array(this.RANK).fill(-0)){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)r[o]=this[n+o];return r}setColumn(e,r){let n=e*this.RANK;for(let o=0;o<this.RANK;++o)this[n+o]=r[o];return this}};function Zu(){let t=new re(9);return re!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}function $u(t,e){if(t===e){let r=e[1],n=e[2],o=e[5];t[1]=e[3],t[2]=e[6],t[3]=r,t[5]=e[7],t[6]=n,t[7]=o}else t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8];return t}function eh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=f*i-a*l,h=-f*s+a*c,p=l*s-i*c,d=r*u+n*h+o*p;return d?(d=1/d,t[0]=u*d,t[1]=(-f*n+o*l)*d,t[2]=(a*n-o*i)*d,t[3]=h*d,t[4]=(f*r-o*c)*d,t[5]=(-a*r+o*s)*d,t[6]=p*d,t[7]=(-l*r+n*c)*d,t[8]=(i*r-n*s)*d,t):null}function th(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8];return e*(l*s-i*c)+r*(-l*o+i*a)+n*(c*o-s*a)}function _a(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1],d=r[2],m=r[3],b=r[4],x=r[5],y=r[6],_=r[7],T=r[8];return t[0]=h*n+p*i+d*l,t[1]=h*o+p*a+d*f,t[2]=h*s+p*c+d*u,t[3]=m*n+b*i+x*l,t[4]=m*o+b*a+x*f,t[5]=m*s+b*c+x*u,t[6]=y*n+_*i+T*l,t[7]=y*o+_*a+T*f,t[8]=y*s+_*c+T*u,t}function rh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=r[0],p=r[1];return t[0]=n,t[1]=o,t[2]=s,t[3]=i,t[4]=a,t[5]=c,t[6]=h*n+p*i+l,t[7]=h*o+p*a+f,t[8]=h*s+p*c+u,t}function nh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=Math.sin(r),p=Math.cos(r);return t[0]=p*n+h*i,t[1]=p*o+h*a,t[2]=p*s+h*c,t[3]=p*i-h*n,t[4]=p*a-h*o,t[5]=p*c-h*s,t[6]=l,t[7]=f,t[8]=u,t}function Ca(t,e,r){let n=r[0],o=r[1];return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=o*e[3],t[4]=o*e[4],t[5]=o*e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t}function oh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,m=s*i,b=s*a,x=s*c;return t[0]=1-u-d,t[3]=f-x,t[6]=h+b,t[1]=f+x,t[4]=1-l-d,t[7]=p-m,t[2]=h-b,t[5]=p+m,t[8]=1-l-u,t}var Ea;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL1ROW0=3]="COL1ROW0",t[t.COL1ROW1=4]="COL1ROW1",t[t.COL1ROW2=5]="COL1ROW2",t[t.COL2ROW0=6]="COL2ROW0",t[t.COL2ROW1=7]="COL2ROW1",t[t.COL2ROW2=8]="COL2ROW2"})(Ea||(Ea={}));var DA=Object.freeze([1,0,0,0,1,0,0,0,1]),z=class extends vr{static get IDENTITY(){return VA()}static get ZERO(){return GA()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return Ea}constructor(e,...r){super(-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):r.length>0?this.copy([e,...r]):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}identity(){return this.copy(DA)}fromObject(e){return this.check()}fromQuaternion(e){return oh(this,e),this.check()}set(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l){return this[0]=e,this[1]=o,this[2]=a,this[3]=r,this[4]=s,this[5]=c,this[6]=n,this[7]=i,this[8]=l,this.check()}determinant(){return th(this)}transpose(){return $u(this,this),this.check()}invert(){return eh(this,this),this.check()}multiplyLeft(e){return _a(this,e,this),this.check()}multiplyRight(e){return _a(this,this,e),this.check()}rotate(e){return nh(this,this,e),this.check()}scale(e){return Array.isArray(e)?Ca(this,this,e):Ca(this,this,[e,e]),this.check()}translate(e){return rh(this,this,e),this.check()}transform(e,r){let n;switch(e.length){case 2:n=Zo(r||[-0,-0],e,this);break;case 3:n=Tn(r||[-0,-0,-0],e,this);break;case 4:n=rs(r||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Bt(n,e.length),n}transformVector(e,r){return this.transform(e,r)}transformVector2(e,r){return this.transform(e,r)}transformVector3(e,r){return this.transform(e,r)}},cs,ls=null;function GA(){return cs||(cs=new z([0,0,0,0,0,0,0,0,0]),Object.freeze(cs)),cs}function VA(){return ls||(ls=new z,Object.freeze(ls)),ls}var fs={};pe(fs,{add:()=>ux,adjoint:()=>JA,clone:()=>kA,copy:()=>zA,create:()=>HA,decompose:()=>rx,determinant:()=>Ba,equals:()=>mx,exactEquals:()=>dx,frob:()=>fx,fromQuat:()=>Na,fromQuat2:()=>$A,fromRotation:()=>KA,fromRotationTranslation:()=>ah,fromRotationTranslationScale:()=>nx,fromRotationTranslationScaleOrigin:()=>ox,fromScaling:()=>XA,fromTranslation:()=>WA,fromValues:()=>jA,fromXRotation:()=>YA,fromYRotation:()=>QA,fromZRotation:()=>ZA,frustum:()=>Oa,getRotation:()=>tx,getScaling:()=>ch,getTranslation:()=>ex,identity:()=>ih,invert:()=>Ia,lookAt:()=>Ga,mul:()=>gx,multiply:()=>Sn,multiplyScalar:()=>hx,multiplyScalarAndAdd:()=>px,ortho:()=>Da,orthoNO:()=>fh,orthoZO:()=>ax,perspective:()=>Ua,perspectiveFromFieldOfView:()=>ix,perspectiveNO:()=>lh,perspectiveZO:()=>sx,rotate:()=>wa,rotateX:()=>La,rotateY:()=>Fa,rotateZ:()=>Pa,scale:()=>Ra,set:()=>qA,str:()=>lx,sub:()=>bx,subtract:()=>uh,targetTo:()=>cx,translate:()=>va,transpose:()=>Ma});function HA(){let t=new re(16);return re!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=0,t[12]=0,t[13]=0,t[14]=0),t[0]=1,t[5]=1,t[10]=1,t[15]=1,t}function kA(t){let e=new re(16);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function zA(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function jA(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,m){let b=new re(16);return b[0]=t,b[1]=e,b[2]=r,b[3]=n,b[4]=o,b[5]=s,b[6]=i,b[7]=a,b[8]=c,b[9]=l,b[10]=f,b[11]=u,b[12]=h,b[13]=p,b[14]=d,b[15]=m,b}function qA(t,e,r,n,o,s,i,a,c,l,f,u,h,p,d,m,b){return t[0]=e,t[1]=r,t[2]=n,t[3]=o,t[4]=s,t[5]=i,t[6]=a,t[7]=c,t[8]=l,t[9]=f,t[10]=u,t[11]=h,t[12]=p,t[13]=d,t[14]=m,t[15]=b,t}function ih(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Ma(t,e){if(t===e){let r=e[1],n=e[2],o=e[3],s=e[6],i=e[7],a=e[11];t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=s,t[11]=e[14],t[12]=o,t[13]=i,t[14]=a}else t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15];return t}function Ia(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],m=e[13],b=e[14],x=e[15],y=r*a-n*i,_=r*c-o*i,T=r*l-s*i,M=n*c-o*a,E=n*l-s*a,I=o*l-s*c,C=f*m-u*d,A=f*b-h*d,g=f*x-p*d,B=u*b-h*m,w=u*x-p*m,L=h*x-p*b,R=y*L-_*w+T*B+M*g-E*A+I*C;return R?(R=1/R,t[0]=(a*L-c*w+l*B)*R,t[1]=(o*w-n*L-s*B)*R,t[2]=(m*I-b*E+x*M)*R,t[3]=(h*E-u*I-p*M)*R,t[4]=(c*g-i*L-l*A)*R,t[5]=(r*L-o*g+s*A)*R,t[6]=(b*T-d*I-x*_)*R,t[7]=(f*I-h*T+p*_)*R,t[8]=(i*w-a*g+l*C)*R,t[9]=(n*g-r*w-s*C)*R,t[10]=(d*E-m*T+x*y)*R,t[11]=(u*T-f*E-p*y)*R,t[12]=(a*A-i*B-c*C)*R,t[13]=(r*B-n*A+o*C)*R,t[14]=(m*_-d*M-b*y)*R,t[15]=(f*M-u*_+h*y)*R,t):null}function JA(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=e[4],a=e[5],c=e[6],l=e[7],f=e[8],u=e[9],h=e[10],p=e[11],d=e[12],m=e[13],b=e[14],x=e[15],y=r*a-n*i,_=r*c-o*i,T=r*l-s*i,M=n*c-o*a,E=n*l-s*a,I=o*l-s*c,C=f*m-u*d,A=f*b-h*d,g=f*x-p*d,B=u*b-h*m,w=u*x-p*m,L=h*x-p*b;return t[0]=a*L-c*w+l*B,t[1]=o*w-n*L-s*B,t[2]=m*I-b*E+x*M,t[3]=h*E-u*I-p*M,t[4]=c*g-i*L-l*A,t[5]=r*L-o*g+s*A,t[6]=b*T-d*I-x*_,t[7]=f*I-h*T+p*_,t[8]=i*w-a*g+l*C,t[9]=n*g-r*w-s*C,t[10]=d*E-m*T+x*y,t[11]=u*T-f*E-p*y,t[12]=a*A-i*B-c*C,t[13]=r*B-n*A+o*C,t[14]=m*_-d*M-b*y,t[15]=f*M-u*_+h*y,t}function Ba(t){let e=t[0],r=t[1],n=t[2],o=t[3],s=t[4],i=t[5],a=t[6],c=t[7],l=t[8],f=t[9],u=t[10],h=t[11],p=t[12],d=t[13],m=t[14],b=t[15],x=e*i-r*s,y=e*a-n*s,_=r*a-n*i,T=l*d-f*p,M=l*m-u*p,E=f*m-u*d,I=e*E-r*M+n*T,C=s*E-i*M+a*T,A=l*_-f*y+u*x,g=p*_-d*y+m*x;return c*I-o*C+b*A-h*g}function Sn(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=e[8],h=e[9],p=e[10],d=e[11],m=e[12],b=e[13],x=e[14],y=e[15],_=r[0],T=r[1],M=r[2],E=r[3];return t[0]=_*n+T*a+M*u+E*m,t[1]=_*o+T*c+M*h+E*b,t[2]=_*s+T*l+M*p+E*x,t[3]=_*i+T*f+M*d+E*y,_=r[4],T=r[5],M=r[6],E=r[7],t[4]=_*n+T*a+M*u+E*m,t[5]=_*o+T*c+M*h+E*b,t[6]=_*s+T*l+M*p+E*x,t[7]=_*i+T*f+M*d+E*y,_=r[8],T=r[9],M=r[10],E=r[11],t[8]=_*n+T*a+M*u+E*m,t[9]=_*o+T*c+M*h+E*b,t[10]=_*s+T*l+M*p+E*x,t[11]=_*i+T*f+M*d+E*y,_=r[12],T=r[13],M=r[14],E=r[15],t[12]=_*n+T*a+M*u+E*m,t[13]=_*o+T*c+M*h+E*b,t[14]=_*s+T*l+M*p+E*x,t[15]=_*i+T*f+M*d+E*y,t}function va(t,e,r){let n=r[0],o=r[1],s=r[2],i,a,c,l,f,u,h,p,d,m,b,x;return e===t?(t[12]=e[0]*n+e[4]*o+e[8]*s+e[12],t[13]=e[1]*n+e[5]*o+e[9]*s+e[13],t[14]=e[2]*n+e[6]*o+e[10]*s+e[14],t[15]=e[3]*n+e[7]*o+e[11]*s+e[15]):(i=e[0],a=e[1],c=e[2],l=e[3],f=e[4],u=e[5],h=e[6],p=e[7],d=e[8],m=e[9],b=e[10],x=e[11],t[0]=i,t[1]=a,t[2]=c,t[3]=l,t[4]=f,t[5]=u,t[6]=h,t[7]=p,t[8]=d,t[9]=m,t[10]=b,t[11]=x,t[12]=i*n+f*o+d*s+e[12],t[13]=a*n+u*o+m*s+e[13],t[14]=c*n+h*o+b*s+e[14],t[15]=l*n+p*o+x*s+e[15]),t}function Ra(t,e,r){let n=r[0],o=r[1],s=r[2];return t[0]=e[0]*n,t[1]=e[1]*n,t[2]=e[2]*n,t[3]=e[3]*n,t[4]=e[4]*o,t[5]=e[5]*o,t[6]=e[6]*o,t[7]=e[7]*o,t[8]=e[8]*s,t[9]=e[9]*s,t[10]=e[10]*s,t[11]=e[11]*s,t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t}function wa(t,e,r,n){let o=n[0],s=n[1],i=n[2],a=Math.sqrt(o*o+s*s+i*i),c,l,f,u,h,p,d,m,b,x,y,_,T,M,E,I,C,A,g,B,w,L,R,O;return a<1e-6?null:(a=1/a,o*=a,s*=a,i*=a,l=Math.sin(r),c=Math.cos(r),f=1-c,u=e[0],h=e[1],p=e[2],d=e[3],m=e[4],b=e[5],x=e[6],y=e[7],_=e[8],T=e[9],M=e[10],E=e[11],I=o*o*f+c,C=s*o*f+i*l,A=i*o*f-s*l,g=o*s*f-i*l,B=s*s*f+c,w=i*s*f+o*l,L=o*i*f+s*l,R=s*i*f-o*l,O=i*i*f+c,t[0]=u*I+m*C+_*A,t[1]=h*I+b*C+T*A,t[2]=p*I+x*C+M*A,t[3]=d*I+y*C+E*A,t[4]=u*g+m*B+_*w,t[5]=h*g+b*B+T*w,t[6]=p*g+x*B+M*w,t[7]=d*g+y*B+E*w,t[8]=u*L+m*R+_*O,t[9]=h*L+b*R+T*O,t[10]=p*L+x*R+M*O,t[11]=d*L+y*R+E*O,e!==t&&(t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t)}function La(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[4],i=e[5],a=e[6],c=e[7],l=e[8],f=e[9],u=e[10],h=e[11];return e!==t&&(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[4]=s*o+l*n,t[5]=i*o+f*n,t[6]=a*o+u*n,t[7]=c*o+h*n,t[8]=l*o-s*n,t[9]=f*o-i*n,t[10]=u*o-a*n,t[11]=h*o-c*n,t}function Fa(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[8],f=e[9],u=e[10],h=e[11];return e!==t&&(t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*o-l*n,t[1]=i*o-f*n,t[2]=a*o-u*n,t[3]=c*o-h*n,t[8]=s*n+l*o,t[9]=i*n+f*o,t[10]=a*n+u*o,t[11]=c*n+h*o,t}function Pa(t,e,r){let n=Math.sin(r),o=Math.cos(r),s=e[0],i=e[1],a=e[2],c=e[3],l=e[4],f=e[5],u=e[6],h=e[7];return e!==t&&(t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15]),t[0]=s*o+l*n,t[1]=i*o+f*n,t[2]=a*o+u*n,t[3]=c*o+h*n,t[4]=l*o-s*n,t[5]=f*o-i*n,t[6]=u*o-a*n,t[7]=h*o-c*n,t}function WA(t,e){return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=e[0],t[13]=e[1],t[14]=e[2],t[15]=1,t}function XA(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e[1],t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e[2],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function KA(t,e,r){let n=r[0],o=r[1],s=r[2],i=Math.sqrt(n*n+o*o+s*s),a,c,l;return i<1e-6?null:(i=1/i,n*=i,o*=i,s*=i,c=Math.sin(e),a=Math.cos(e),l=1-a,t[0]=n*n*l+a,t[1]=o*n*l+s*c,t[2]=s*n*l-o*c,t[3]=0,t[4]=n*o*l-s*c,t[5]=o*o*l+a,t[6]=s*o*l+n*c,t[7]=0,t[8]=n*s*l+o*c,t[9]=o*s*l-n*c,t[10]=s*s*l+a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t)}function YA(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=n,t[6]=r,t[7]=0,t[8]=0,t[9]=-r,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function QA(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=0,t[2]=-r,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=r,t[9]=0,t[10]=n,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ZA(t,e){let r=Math.sin(e),n=Math.cos(e);return t[0]=n,t[1]=r,t[2]=0,t[3]=0,t[4]=-r,t[5]=n,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function ah(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=n+n,c=o+o,l=s+s,f=n*a,u=n*c,h=n*l,p=o*c,d=o*l,m=s*l,b=i*a,x=i*c,y=i*l;return t[0]=1-(p+m),t[1]=u+y,t[2]=h-x,t[3]=0,t[4]=u-y,t[5]=1-(f+m),t[6]=d+b,t[7]=0,t[8]=h+x,t[9]=d-b,t[10]=1-(f+p),t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function $A(t,e){let r=new re(3),n=-e[0],o=-e[1],s=-e[2],i=e[3],a=e[4],c=e[5],l=e[6],f=e[7],u=n*n+o*o+s*s+i*i;return u>0?(r[0]=(a*i+f*n+c*s-l*o)*2/u,r[1]=(c*i+f*o+l*n-a*s)*2/u,r[2]=(l*i+f*s+a*o-c*n)*2/u):(r[0]=(a*i+f*n+c*s-l*o)*2,r[1]=(c*i+f*o+l*n-a*s)*2,r[2]=(l*i+f*s+a*o-c*n)*2),ah(t,e,r),t}function ex(t,e){return t[0]=e[12],t[1]=e[13],t[2]=e[14],t}function ch(t,e){let r=e[0],n=e[1],o=e[2],s=e[4],i=e[5],a=e[6],c=e[8],l=e[9],f=e[10];return t[0]=Math.sqrt(r*r+n*n+o*o),t[1]=Math.sqrt(s*s+i*i+a*a),t[2]=Math.sqrt(c*c+l*l+f*f),t}function tx(t,e){let r=new re(3);ch(r,e);let n=1/r[0],o=1/r[1],s=1/r[2],i=e[0]*n,a=e[1]*o,c=e[2]*s,l=e[4]*n,f=e[5]*o,u=e[6]*s,h=e[8]*n,p=e[9]*o,d=e[10]*s,m=i+f+d,b=0;return m>0?(b=Math.sqrt(m+1)*2,t[3]=.25*b,t[0]=(u-p)/b,t[1]=(h-c)/b,t[2]=(a-l)/b):i>f&&i>d?(b=Math.sqrt(1+i-f-d)*2,t[3]=(u-p)/b,t[0]=.25*b,t[1]=(a+l)/b,t[2]=(h+c)/b):f>d?(b=Math.sqrt(1+f-i-d)*2,t[3]=(h-c)/b,t[0]=(a+l)/b,t[1]=.25*b,t[2]=(u+p)/b):(b=Math.sqrt(1+d-i-f)*2,t[3]=(a-l)/b,t[0]=(h+c)/b,t[1]=(u+p)/b,t[2]=.25*b),t}function rx(t,e,r,n){e[0]=n[12],e[1]=n[13],e[2]=n[14];let o=n[0],s=n[1],i=n[2],a=n[4],c=n[5],l=n[6],f=n[8],u=n[9],h=n[10];r[0]=Math.sqrt(o*o+s*s+i*i),r[1]=Math.sqrt(a*a+c*c+l*l),r[2]=Math.sqrt(f*f+u*u+h*h);let p=1/r[0],d=1/r[1],m=1/r[2],b=o*p,x=s*d,y=i*m,_=a*p,T=c*d,M=l*m,E=f*p,I=u*d,C=h*m,A=b+T+C,g=0;return A>0?(g=Math.sqrt(A+1)*2,t[3]=.25*g,t[0]=(M-I)/g,t[1]=(E-y)/g,t[2]=(x-_)/g):b>T&&b>C?(g=Math.sqrt(1+b-T-C)*2,t[3]=(M-I)/g,t[0]=.25*g,t[1]=(x+_)/g,t[2]=(E+y)/g):T>C?(g=Math.sqrt(1+T-b-C)*2,t[3]=(E-y)/g,t[0]=(x+_)/g,t[1]=.25*g,t[2]=(M+I)/g):(g=Math.sqrt(1+C-b-T)*2,t[3]=(x-_)/g,t[0]=(E+y)/g,t[1]=(M+I)/g,t[2]=.25*g),t}function nx(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=o+o,l=s+s,f=i+i,u=o*c,h=o*l,p=o*f,d=s*l,m=s*f,b=i*f,x=a*c,y=a*l,_=a*f,T=n[0],M=n[1],E=n[2];return t[0]=(1-(d+b))*T,t[1]=(h+_)*T,t[2]=(p-y)*T,t[3]=0,t[4]=(h-_)*M,t[5]=(1-(u+b))*M,t[6]=(m+x)*M,t[7]=0,t[8]=(p+y)*E,t[9]=(m-x)*E,t[10]=(1-(u+d))*E,t[11]=0,t[12]=r[0],t[13]=r[1],t[14]=r[2],t[15]=1,t}function ox(t,e,r,n,o){let s=e[0],i=e[1],a=e[2],c=e[3],l=s+s,f=i+i,u=a+a,h=s*l,p=s*f,d=s*u,m=i*f,b=i*u,x=a*u,y=c*l,_=c*f,T=c*u,M=n[0],E=n[1],I=n[2],C=o[0],A=o[1],g=o[2],B=(1-(m+x))*M,w=(p+T)*M,L=(d-_)*M,R=(p-T)*E,O=(1-(h+x))*E,H=(b+y)*E,U=(d+_)*I,Z=(b-y)*I,j=(1-(h+m))*I;return t[0]=B,t[1]=w,t[2]=L,t[3]=0,t[4]=R,t[5]=O,t[6]=H,t[7]=0,t[8]=U,t[9]=Z,t[10]=j,t[11]=0,t[12]=r[0]+C-(B*C+R*A+U*g),t[13]=r[1]+A-(w*C+O*A+Z*g),t[14]=r[2]+g-(L*C+H*A+j*g),t[15]=1,t}function Na(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r+r,a=n+n,c=o+o,l=r*i,f=n*i,u=n*a,h=o*i,p=o*a,d=o*c,m=s*i,b=s*a,x=s*c;return t[0]=1-u-d,t[1]=f+x,t[2]=h-b,t[3]=0,t[4]=f-x,t[5]=1-l-d,t[6]=p+m,t[7]=0,t[8]=h+b,t[9]=p-m,t[10]=1-l-u,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}function Oa(t,e,r,n,o,s,i){let a=1/(r-e),c=1/(o-n),l=1/(s-i);return t[0]=s*2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s*2*c,t[6]=0,t[7]=0,t[8]=(r+e)*a,t[9]=(o+n)*c,t[10]=(i+s)*l,t[11]=-1,t[12]=0,t[13]=0,t[14]=i*s*2*l,t[15]=0,t}function lh(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=(o+n)*i,t[14]=2*o*n*i}else t[10]=-1,t[14]=-2*n;return t}var Ua=lh;function sx(t,e,r,n,o){let s=1/Math.tan(e/2);if(t[0]=s/r,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=s,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[11]=-1,t[12]=0,t[13]=0,t[15]=0,o!=null&&o!==1/0){let i=1/(n-o);t[10]=o*i,t[14]=o*n*i}else t[10]=-1,t[14]=-n;return t}function ix(t,e,r,n){let o=Math.tan(e.upDegrees*Math.PI/180),s=Math.tan(e.downDegrees*Math.PI/180),i=Math.tan(e.leftDegrees*Math.PI/180),a=Math.tan(e.rightDegrees*Math.PI/180),c=2/(i+a),l=2/(o+s);return t[0]=c,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=l,t[6]=0,t[7]=0,t[8]=-((i-a)*c*.5),t[9]=(o-s)*l*.5,t[10]=n/(r-n),t[11]=-1,t[12]=0,t[13]=0,t[14]=n*r/(r-n),t[15]=0,t}function fh(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=2*l,t[11]=0,t[12]=(e+r)*a,t[13]=(o+n)*c,t[14]=(i+s)*l,t[15]=1,t}var Da=fh;function ax(t,e,r,n,o,s,i){let a=1/(e-r),c=1/(n-o),l=1/(s-i);return t[0]=-2*a,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=-2*c,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=l,t[11]=0,t[12]=(e+r)*a,t[13]=(o+n)*c,t[14]=s*l,t[15]=1,t}function Ga(t,e,r,n){let o,s,i,a,c,l,f,u,h,p,d=e[0],m=e[1],b=e[2],x=n[0],y=n[1],_=n[2],T=r[0],M=r[1],E=r[2];return Math.abs(d-T)<1e-6&&Math.abs(m-M)<1e-6&&Math.abs(b-E)<1e-6?ih(t):(u=d-T,h=m-M,p=b-E,o=1/Math.sqrt(u*u+h*h+p*p),u*=o,h*=o,p*=o,s=y*p-_*h,i=_*u-x*p,a=x*h-y*u,o=Math.sqrt(s*s+i*i+a*a),o?(o=1/o,s*=o,i*=o,a*=o):(s=0,i=0,a=0),c=h*a-p*i,l=p*s-u*a,f=u*i-h*s,o=Math.sqrt(c*c+l*l+f*f),o?(o=1/o,c*=o,l*=o,f*=o):(c=0,l=0,f=0),t[0]=s,t[1]=c,t[2]=u,t[3]=0,t[4]=i,t[5]=l,t[6]=h,t[7]=0,t[8]=a,t[9]=f,t[10]=p,t[11]=0,t[12]=-(s*d+i*m+a*b),t[13]=-(c*d+l*m+f*b),t[14]=-(u*d+h*m+p*b),t[15]=1,t)}function cx(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=n[0],c=n[1],l=n[2],f=o-r[0],u=s-r[1],h=i-r[2],p=f*f+u*u+h*h;p>0&&(p=1/Math.sqrt(p),f*=p,u*=p,h*=p);let d=c*h-l*u,m=l*f-a*h,b=a*u-c*f;return p=d*d+m*m+b*b,p>0&&(p=1/Math.sqrt(p),d*=p,m*=p,b*=p),t[0]=d,t[1]=m,t[2]=b,t[3]=0,t[4]=u*b-h*m,t[5]=h*d-f*b,t[6]=f*m-u*d,t[7]=0,t[8]=f,t[9]=u,t[10]=h,t[11]=0,t[12]=o,t[13]=s,t[14]=i,t[15]=1,t}function lx(t){return`mat4(${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}, ${t[4]}, ${t[5]}, ${t[6]}, ${t[7]}, ${t[8]}, ${t[9]}, ${t[10]}, ${t[11]}, ${t[12]}, ${t[13]}, ${t[14]}, ${t[15]})`}function fx(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]+t[3]*t[3]+t[4]*t[4]+t[5]*t[5]+t[6]*t[6]+t[7]*t[7]+t[8]*t[8]+t[9]*t[9]+t[10]*t[10]+t[11]*t[11]+t[12]*t[12]+t[13]*t[13]+t[14]*t[14]+t[15]*t[15])}function ux(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t[4]=e[4]+r[4],t[5]=e[5]+r[5],t[6]=e[6]+r[6],t[7]=e[7]+r[7],t[8]=e[8]+r[8],t[9]=e[9]+r[9],t[10]=e[10]+r[10],t[11]=e[11]+r[11],t[12]=e[12]+r[12],t[13]=e[13]+r[13],t[14]=e[14]+r[14],t[15]=e[15]+r[15],t}function uh(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t[4]=e[4]-r[4],t[5]=e[5]-r[5],t[6]=e[6]-r[6],t[7]=e[7]-r[7],t[8]=e[8]-r[8],t[9]=e[9]-r[9],t[10]=e[10]-r[10],t[11]=e[11]-r[11],t[12]=e[12]-r[12],t[13]=e[13]-r[13],t[14]=e[14]-r[14],t[15]=e[15]-r[15],t}function hx(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t[4]=e[4]*r,t[5]=e[5]*r,t[6]=e[6]*r,t[7]=e[7]*r,t[8]=e[8]*r,t[9]=e[9]*r,t[10]=e[10]*r,t[11]=e[11]*r,t[12]=e[12]*r,t[13]=e[13]*r,t[14]=e[14]*r,t[15]=e[15]*r,t}function px(t,e,r,n){return t[0]=e[0]+r[0]*n,t[1]=e[1]+r[1]*n,t[2]=e[2]+r[2]*n,t[3]=e[3]+r[3]*n,t[4]=e[4]+r[4]*n,t[5]=e[5]+r[5]*n,t[6]=e[6]+r[6]*n,t[7]=e[7]+r[7]*n,t[8]=e[8]+r[8]*n,t[9]=e[9]+r[9]*n,t[10]=e[10]+r[10]*n,t[11]=e[11]+r[11]*n,t[12]=e[12]+r[12]*n,t[13]=e[13]+r[13]*n,t[14]=e[14]+r[14]*n,t[15]=e[15]+r[15]*n,t}function dx(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]&&t[4]===e[4]&&t[5]===e[5]&&t[6]===e[6]&&t[7]===e[7]&&t[8]===e[8]&&t[9]===e[9]&&t[10]===e[10]&&t[11]===e[11]&&t[12]===e[12]&&t[13]===e[13]&&t[14]===e[14]&&t[15]===e[15]}function mx(t,e){let r=t[0],n=t[1],o=t[2],s=t[3],i=t[4],a=t[5],c=t[6],l=t[7],f=t[8],u=t[9],h=t[10],p=t[11],d=t[12],m=t[13],b=t[14],x=t[15],y=e[0],_=e[1],T=e[2],M=e[3],E=e[4],I=e[5],C=e[6],A=e[7],g=e[8],B=e[9],w=e[10],L=e[11],R=e[12],O=e[13],H=e[14],U=e[15];return Math.abs(r-y)<=1e-6*Math.max(1,Math.abs(r),Math.abs(y))&&Math.abs(n-_)<=1e-6*Math.max(1,Math.abs(n),Math.abs(_))&&Math.abs(o-T)<=1e-6*Math.max(1,Math.abs(o),Math.abs(T))&&Math.abs(s-M)<=1e-6*Math.max(1,Math.abs(s),Math.abs(M))&&Math.abs(i-E)<=1e-6*Math.max(1,Math.abs(i),Math.abs(E))&&Math.abs(a-I)<=1e-6*Math.max(1,Math.abs(a),Math.abs(I))&&Math.abs(c-C)<=1e-6*Math.max(1,Math.abs(c),Math.abs(C))&&Math.abs(l-A)<=1e-6*Math.max(1,Math.abs(l),Math.abs(A))&&Math.abs(f-g)<=1e-6*Math.max(1,Math.abs(f),Math.abs(g))&&Math.abs(u-B)<=1e-6*Math.max(1,Math.abs(u),Math.abs(B))&&Math.abs(h-w)<=1e-6*Math.max(1,Math.abs(h),Math.abs(w))&&Math.abs(p-L)<=1e-6*Math.max(1,Math.abs(p),Math.abs(L))&&Math.abs(d-R)<=1e-6*Math.max(1,Math.abs(d),Math.abs(R))&&Math.abs(m-O)<=1e-6*Math.max(1,Math.abs(m),Math.abs(O))&&Math.abs(b-H)<=1e-6*Math.max(1,Math.abs(b),Math.abs(H))&&Math.abs(x-U)<=1e-6*Math.max(1,Math.abs(x),Math.abs(U))}var gx=Sn,bx=uh;function Ax(){let t=new re(4);return re!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function hh(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function ph(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function dh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return Math.sqrt(e*e+r*r+n*n+o*o)}function mh(t){let e=t[0],r=t[1],n=t[2],o=t[3];return e*e+r*r+n*n+o*o}function gh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s;return i>0&&(i=1/Math.sqrt(i)),t[0]=r*i,t[1]=n*i,t[2]=o*i,t[3]=s*i,t}function bh(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Ah(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3];return t[0]=o+n*(r[0]-o),t[1]=s+n*(r[1]-s),t[2]=i+n*(r[2]-i),t[3]=a+n*(r[3]-a),t}function xh(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3];return t[0]=r[0]*n+r[4]*o+r[8]*s+r[12]*i,t[1]=r[1]*n+r[5]*o+r[9]*s+r[13]*i,t[2]=r[2]*n+r[6]*o+r[10]*s+r[14]*i,t[3]=r[3]*n+r[7]*o+r[11]*s+r[15]*i,t}function Th(t,e,r){let n=e[0],o=e[1],s=e[2],i=r[0],a=r[1],c=r[2],l=r[3],f=l*n+a*s-c*o,u=l*o+c*n-i*s,h=l*s+i*o-a*n,p=-i*n-a*o-c*s;return t[0]=f*l+p*-i+u*-c-h*-a,t[1]=u*l+p*-a+h*-i-f*-c,t[2]=h*l+p*-c+f*-a-u*-i,t[3]=e[3],t}var KR=(function(){let t=Ax();return function(e,r,n,o,s,i){let a,c;for(r||(r=4),n||(n=0),o?c=Math.min(o*r+n,e.length):c=e.length,a=n;a<c;a+=r)t[0]=e[a],t[1]=e[a+1],t[2]=e[a+2],t[3]=e[a+3],s(t,t,i),e[a]=t[0],e[a+1]=t[1],e[a+2]=t[2],e[a+3]=t[3];return e}})();var ka;(function(t){t[t.COL0ROW0=0]="COL0ROW0",t[t.COL0ROW1=1]="COL0ROW1",t[t.COL0ROW2=2]="COL0ROW2",t[t.COL0ROW3=3]="COL0ROW3",t[t.COL1ROW0=4]="COL1ROW0",t[t.COL1ROW1=5]="COL1ROW1",t[t.COL1ROW2=6]="COL1ROW2",t[t.COL1ROW3=7]="COL1ROW3",t[t.COL2ROW0=8]="COL2ROW0",t[t.COL2ROW1=9]="COL2ROW1",t[t.COL2ROW2=10]="COL2ROW2",t[t.COL2ROW3=11]="COL2ROW3",t[t.COL3ROW0=12]="COL3ROW0",t[t.COL3ROW1=13]="COL3ROW1",t[t.COL3ROW2=14]="COL3ROW2",t[t.COL3ROW3=15]="COL3ROW3"})(ka||(ka={}));var xx=45*Math.PI/180,Tx=1,Va=.1,Ha=500,yx=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),P=class extends vr{static get IDENTITY(){return _x()}static get ZERO(){return Sx()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return ka}constructor(e){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}set(e,r,n,o,s,i,a,c,l,f,u,h,p,d,m,b){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this[4]=s,this[5]=i,this[6]=a,this[7]=c,this[8]=l,this[9]=f,this[10]=u,this[11]=h,this[12]=p,this[13]=d,this[14]=m,this[15]=b,this.check()}setRowMajor(e,r,n,o,s,i,a,c,l,f,u,h,p,d,m,b){return this[0]=e,this[1]=s,this[2]=l,this[3]=p,this[4]=r,this[5]=i,this[6]=f,this[7]=d,this[8]=n,this[9]=a,this[10]=u,this[11]=m,this[12]=o,this[13]=c,this[14]=h,this[15]=b,this.check()}toRowMajor(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}identity(){return this.copy(yx)}fromObject(e){return this.check()}fromQuaternion(e){return Na(this,e),this.check()}frustum(e){let{left:r,right:n,bottom:o,top:s,near:i=Va,far:a=Ha}=e;return a===1/0?Cx(this,r,n,o,s,i):Oa(this,r,n,o,s,i,a),this.check()}lookAt(e){let{eye:r,center:n=[0,0,0],up:o=[0,1,0]}=e;return Ga(this,r,n,o),this.check()}ortho(e){let{left:r,right:n,bottom:o,top:s,near:i=Va,far:a=Ha}=e;return Da(this,r,n,o,s,i,a),this.check()}orthographic(e){let{fovy:r=xx,aspect:n=Tx,focalDistance:o=1,near:s=Va,far:i=Ha}=e;Sh(r);let a=r/2,c=o*Math.tan(a),l=c*n;return this.ortho({left:-l,right:l,bottom:-c,top:c,near:s,far:i})}perspective(e){let{fovy:r=45*Math.PI/180,aspect:n=1,near:o=.1,far:s=500}=e;return Sh(r),Ua(this,r,n,o,s),this.check()}determinant(){return Ba(this)}getScale(e=[-0,-0,-0]){return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}getTranslation(e=[-0,-0,-0]){return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}getRotation(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=0,e[4]=this[4]*o,e[5]=this[5]*s,e[6]=this[6]*i,e[7]=0,e[8]=this[8]*o,e[9]=this[9]*s,e[10]=this[10]*i,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}getRotationMatrix3(e,r){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),o=1/n[0],s=1/n[1],i=1/n[2];return e[0]=this[0]*o,e[1]=this[1]*s,e[2]=this[2]*i,e[3]=this[4]*o,e[4]=this[5]*s,e[5]=this[6]*i,e[6]=this[8]*o,e[7]=this[9]*s,e[8]=this[10]*i,e}transpose(){return Ma(this,this),this.check()}invert(){return Ia(this,this),this.check()}multiplyLeft(e){return Sn(this,e,this),this.check()}multiplyRight(e){return Sn(this,this,e),this.check()}rotateX(e){return La(this,this,e),this.check()}rotateY(e){return Fa(this,this,e),this.check()}rotateZ(e){return Pa(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,r){return wa(this,this,e,r),this.check()}scale(e){return Ra(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return va(this,this,e),this.check()}transform(e,r){return e.length===4?(r=xh(r||[-0,-0,-0,-0],e,this),Bt(r,4),r):this.transformAsPoint(e,r)}transformAsPoint(e,r){let{length:n}=e,o;switch(n){case 2:o=$o(r||[-0,-0],e,this);break;case 3:o=Wt(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Bt(o,e.length),o}transformAsVector(e,r){let n;switch(e.length){case 2:n=es(r||[-0,-0],e,this);break;case 3:n=ts(r||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return Bt(n,e.length),n}transformPoint(e,r){return this.transformAsPoint(e,r)}transformVector(e,r){return this.transformAsPoint(e,r)}transformDirection(e,r){return this.transformAsVector(e,r)}makeRotationX(e){return this.identity().rotateX(e)}makeTranslation(e,r,n){return this.identity().translate([e,r,n])}},us,hs;function Sx(){return us||(us=new P([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(us)),us}function _x(){return hs||(hs=new P,Object.freeze(hs)),hs}function Sh(t){if(t>Math.PI*2)throw Error("expected radians")}function Cx(t,e,r,n,o,s){let i=2*s/(r-e),a=2*s/(o-n),c=(r+e)/(r-e),l=(o+n)/(o-n),f=-1,u=-1,h=-2*s;return t[0]=i,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=a,t[6]=0,t[7]=0,t[8]=c,t[9]=l,t[10]=f,t[11]=u,t[12]=0,t[13]=0,t[14]=h,t[15]=0,t}function _h(){let t=new re(4);return re!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function Ch(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function za(t,e,r){r=r*.5;let n=Math.sin(r);return t[0]=n*e[0],t[1]=n*e[1],t[2]=n*e[2],t[3]=Math.cos(r),t}function ja(t,e,r){let n=e[0],o=e[1],s=e[2],i=e[3],a=r[0],c=r[1],l=r[2],f=r[3];return t[0]=n*f+i*a+o*l-s*c,t[1]=o*f+i*c+s*a-n*l,t[2]=s*f+i*l+n*c-o*a,t[3]=i*f-n*a-o*c-s*l,t}function Eh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+i*a,t[1]=o*c+s*a,t[2]=s*c-o*a,t[3]=i*c-n*a,t}function Mh(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c-s*a,t[1]=o*c+i*a,t[2]=s*c+n*a,t[3]=i*c-o*a,t}function Ih(t,e,r){r*=.5;let n=e[0],o=e[1],s=e[2],i=e[3],a=Math.sin(r),c=Math.cos(r);return t[0]=n*c+o*a,t[1]=o*c-n*a,t[2]=s*c+i*a,t[3]=i*c-s*a,t}function Bh(t,e){let r=e[0],n=e[1],o=e[2];return t[0]=r,t[1]=n,t[2]=o,t[3]=Math.sqrt(Math.abs(1-r*r-n*n-o*o)),t}function _n(t,e,r,n){let o=e[0],s=e[1],i=e[2],a=e[3],c=r[0],l=r[1],f=r[2],u=r[3],h,p,d,m,b;return h=o*c+s*l+i*f+a*u,h<0&&(h=-h,c=-c,l=-l,f=-f,u=-u),1-h>1e-6?(p=Math.acos(h),b=Math.sin(p),d=Math.sin((1-n)*p)/b,m=Math.sin(n*p)/b):(d=1-n,m=n),t[0]=d*o+m*c,t[1]=d*s+m*l,t[2]=d*i+m*f,t[3]=d*a+m*u,t}function vh(t,e){let r=e[0],n=e[1],o=e[2],s=e[3],i=r*r+n*n+o*o+s*s,a=i?1/i:0;return t[0]=-r*a,t[1]=-n*a,t[2]=-o*a,t[3]=s*a,t}function Rh(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function qa(t,e){let r=e[0]+e[4]+e[8],n;if(r>0)n=Math.sqrt(r+1),t[3]=.5*n,n=.5/n,t[0]=(e[5]-e[7])*n,t[1]=(e[6]-e[2])*n,t[2]=(e[1]-e[3])*n;else{let o=0;e[4]>e[0]&&(o=1),e[8]>e[o*3+o]&&(o=2);let s=(o+1)%3,i=(o+2)%3;n=Math.sqrt(e[o*3+o]-e[s*3+s]-e[i*3+i]+1),t[o]=.5*n,n=.5/n,t[3]=(e[s*3+i]-e[i*3+s])*n,t[s]=(e[s*3+o]+e[o*3+s])*n,t[i]=(e[i*3+o]+e[o*3+i])*n}return t}var wh=hh;var Lh=ph,Fh=bh,Ph=Ah,Nh=dh;var Oh=mh;var Uh=gh;var Dh=(function(){let t=ns(),e=os(1,0,0),r=os(0,1,0);return function(n,o,s){let i=xn(o,s);return i<-.999999?(Jt(t,e,o),ya(t)<1e-6&&Jt(t,r,o),ga(t,t),za(n,t,Math.PI),n):i>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(Jt(t,o,s),n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=1+i,Uh(n,n))}})(),l3=(function(){let t=_h(),e=_h();return function(r,n,o,s,i,a){return _n(t,n,i,a),_n(e,o,s,a),_n(r,t,e,2*a*(1-a)),r}})(),f3=(function(){let t=Zu();return function(e,r,n,o){return t[0]=n[0],t[3]=n[1],t[6]=n[2],t[1]=o[0],t[4]=o[1],t[7]=o[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],Uh(e,qa(e,t))}})();var Mx=[0,0,0,1],tt=class extends It{constructor(e=0,r=0,n=0,o=1){super(-0,-0,-0,-0),Array.isArray(e)&&arguments.length===1?this.copy(e):this.set(e,r,n,o)}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}set(e,r,n,o){return this[0]=e,this[1]=r,this[2]=n,this[3]=o,this.check()}fromObject(e){return this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this.check()}fromMatrix3(e){return qa(this,e),this.check()}fromAxisRotation(e,r){return za(this,e,r),this.check()}identity(){return Ch(this),this.check()}setAxisAngle(e,r){return this.fromAxisRotation(e,r)}get ELEMENTS(){return 4}get x(){return this[0]}set x(e){this[0]=V(e)}get y(){return this[1]}set y(e){this[1]=V(e)}get z(){return this[2]}set z(e){this[2]=V(e)}get w(){return this[3]}set w(e){this[3]=V(e)}len(){return Nh(this)}lengthSquared(){return Oh(this)}dot(e){return Fh(this,e)}rotationTo(e,r){return Dh(this,e,r),this.check()}add(e){return wh(this,this,e),this.check()}calculateW(){return Bh(this,this),this.check()}conjugate(){return Rh(this,this),this.check()}invert(){return vh(this,this),this.check()}lerp(e,r,n){return n===void 0?this.lerp(this,e,r):(Ph(this,e,r,n),this.check())}multiplyRight(e){return ja(this,this,e),this.check()}multiplyLeft(e){return ja(this,e,this),this.check()}normalize(){let e=this.len(),r=e>0?1/e:0;return this[0]=this[0]*r,this[1]=this[1]*r,this[2]=this[2]*r,this[3]=this[3]*r,e===0&&(this[3]=1),this.check()}rotateX(e){return Eh(this,this,e),this.check()}rotateY(e){return Mh(this,this,e),this.check()}rotateZ(e){return Ih(this,this,e),this.check()}scale(e){return Lh(this,this,e),this.check()}slerp(e,r,n){let o,s,i;switch(arguments.length){case 1:({start:o=Mx,target:s,ratio:i}=e);break;case 2:o=this,s=e,i=r;break;default:o=e,s=r,i=n}return _n(this,o,s,i),this.check()}transformVector4(e,r=new as){return Th(r,e,this),Bt(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(e,r){return this.setAxisAngle(e,r)}premultiply(e){return this.multiplyLeft(e)}multiply(e){return this.multiplyRight(e)}};var Je={};pe(Je,{EPSILON1:()=>Ix,EPSILON10:()=>Ox,EPSILON11:()=>Ux,EPSILON12:()=>Dx,EPSILON13:()=>Gx,EPSILON14:()=>Vx,EPSILON15:()=>Hx,EPSILON16:()=>kx,EPSILON17:()=>zx,EPSILON18:()=>jx,EPSILON19:()=>qx,EPSILON2:()=>Bx,EPSILON20:()=>Jx,EPSILON3:()=>vx,EPSILON4:()=>Rx,EPSILON5:()=>wx,EPSILON6:()=>Lx,EPSILON7:()=>Fx,EPSILON8:()=>Px,EPSILON9:()=>Nx,PI_OVER_FOUR:()=>Xx,PI_OVER_SIX:()=>Kx,PI_OVER_TWO:()=>Wx,TWO_PI:()=>Yx});var Ix=.1,Bx=.01,vx=.001,Rx=1e-4,wx=1e-5,Lx=1e-6,Fx=1e-7,Px=1e-8,Nx=1e-9,Ox=1e-10,Ux=1e-11,Dx=1e-12,Gx=1e-13,Vx=1e-14,Hx=1e-15,kx=1e-16,zx=1e-17,jx=1e-18,qx=1e-19,Jx=1e-20,Wx=Math.PI/2,Xx=Math.PI/4,Kx=Math.PI/6,Yx=Math.PI*2;function ps(t,e){e=e===void 0?t[0][0]:e;for(let r of t){let n=r[0]-e;n>180?r[0]-=360:n<-180&&(r[0]+=360)}}function Qx(t,e,r){let[n,o]=(0,Cn.cellToLatLng)(t),s=e.length;ps(e,o);let i=e[0]===e[s-1]?s-1:s;for(let a=0;a<i;a++)e[a][0]=Mt(o,e[a][0],r),e[a][1]=Mt(n,e[a][1],r)}function Gh(t,e,r){let n=t(e,r),[o,s]=(0,Cn.cellToLatLng)(n);return[s,o]}function Ja(t,e=1){let r=(0,Cn.cellToBoundary)(t,!0);return e!==1?Qx(t,r,e):ps(r),r}function ds(t){let e=new Float64Array(t.length*2),r=0;for(let n of t)e[r++]=n[0],e[r++]=n[1];return e}var Zx={getPentagon:{type:"accessor",value:t=>t.pentagon}},En=class extends Pe{indexToBounds(){let{data:e,getPentagon:r}=this.props;return{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(n,o)=>{let s=r(n,o),i=Nu(typeof s=="string"?Ou(s):s,{closedRing:!0,segments:"auto"});return ds(i)}}}};En.layerName="A5Layer";En.defaultProps=Zx;var Vh=En;var or=D(je(),1),Hp=D(ze(),1),kp=D(Xt(),1);function $x(t){return typeof t=="string"?t.charAt(0).toLowerCase()+t.slice(1):t}function ms(t){if(Array.isArray(t))return t.map(e=>ms(e));if(t&&typeof t=="object"){let e={};for(let[r,n]of Object.entries(t))e[$x(r)]=ms(n);return e}return t}var kh=":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",eT=kh+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",tT="["+kh+"]["+eT+"]*",rT=new RegExp("^"+tT+"$");function gs(t,e){let r=[],n=e.exec(t);for(;n;){let o=[];o.startIndex=e.lastIndex-n[0].length;let s=n.length;for(let i=0;i<s;i++)o.push(n[i]);r.push(o),n=e.exec(t)}return r}var Rr=function(t){let e=rT.exec(t);return!(e===null||typeof e>"u")};function zh(t){return typeof t<"u"}var Mn=["hasOwnProperty","toString","valueOf","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"],bs=["__proto__","constructor","prototype"];var nT={allowBooleanAttributes:!1,unpairedTags:[]};function Xh(t,e){e=Object.assign({},nT,e);let r=[],n=!1,o=!1;t[0]==="\uFEFF"&&(t=t.substr(1));for(let s=0;s<t.length;s++)if(t[s]==="<"&&t[s+1]==="?"){if(s+=2,s=qh(t,s),s.err)return s}else if(t[s]==="<"){let i=s;if(s++,t[s]==="!"){s=Jh(t,s);continue}else{let a=!1;t[s]==="/"&&(a=!0,s++);let c="";for(;s<t.length&&t[s]!==">"&&t[s]!==" "&&t[s]!==" "&&t[s]!==`
8
8
  `&&t[s]!=="\r";s++)c+=t[s];if(c=c.trim(),c[c.length-1]==="/"&&(c=c.substring(0,c.length-1),s--),!uT(c)){let u;return c.trim().length===0?u="Invalid space after '<'.":u="Tag '"+c+"' is an invalid name.",oe("InvalidTag",u,Te(t,s))}let l=iT(t,s);if(l===!1)return oe("InvalidAttr","Attributes for '"+c+"' have open quote.",Te(t,s));let f=l.value;if(s=l.index,f[f.length-1]==="/"){let u=s-f.length;f=f.substring(0,f.length-1);let h=Wh(f,e);if(h===!0)n=!0;else return oe(h.err.code,h.err.msg,Te(t,u+h.err.line))}else if(a)if(l.tagClosed){if(f.trim().length>0)return oe("InvalidTag","Closing tag '"+c+"' can't have attributes or invalid starting.",Te(t,i));if(r.length===0)return oe("InvalidTag","Closing tag '"+c+"' has not been opened.",Te(t,i));{let u=r.pop();if(c!==u.tagName){let h=Te(t,u.tagStartPos);return oe("InvalidTag","Expected closing tag '"+u.tagName+"' (opened in line "+h.line+", col "+h.col+") instead of closing tag '"+c+"'.",Te(t,i))}r.length==0&&(o=!0)}}else return oe("InvalidTag","Closing tag '"+c+"' doesn't have proper closing.",Te(t,s));else{let u=Wh(f,e);if(u!==!0)return oe(u.err.code,u.err.msg,Te(t,s-f.length+u.err.line));if(o===!0)return oe("InvalidXml","Multiple possible root nodes found.",Te(t,s));e.unpairedTags.indexOf(c)!==-1||r.push({tagName:c,tagStartPos:i}),n=!0}for(s++;s<t.length;s++)if(t[s]==="<")if(t[s+1]==="!"){s++,s=Jh(t,s);continue}else if(t[s+1]==="?"){if(s=qh(t,++s),s.err)return s}else break;else if(t[s]==="&"){let u=lT(t,s);if(u==-1)return oe("InvalidChar","char '&' is not expected.",Te(t,s));s=u}else if(o===!0&&!jh(t[s]))return oe("InvalidXml","Extra text at the end",Te(t,s));t[s]==="<"&&s--}}else{if(jh(t[s]))continue;return oe("InvalidChar","char '"+t[s]+"' is not expected.",Te(t,s))}if(n){if(r.length==1)return oe("InvalidTag","Unclosed tag '"+r[0].tagName+"'.",Te(t,r[0].tagStartPos));if(r.length>0)return oe("InvalidXml","Invalid '"+JSON.stringify(r.map(s=>s.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return oe("InvalidXml","Start tag expected.",1);return!0}function jh(t){return t===" "||t===" "||t===`
9
9
  `||t==="\r"}function qh(t,e){let r=e;for(;e<t.length;e++)if(t[e]=="?"||t[e]==" "){let n=t.substr(r,e-r);if(e>5&&n==="xml")return oe("InvalidXml","XML declaration allowed only at the start of the document.",Te(t,e));if(t[e]=="?"&&t[e+1]==">"){e++;break}else continue}return e}function Jh(t,e){if(t.length>e+5&&t[e+1]==="-"&&t[e+2]==="-"){for(e+=3;e<t.length;e++)if(t[e]==="-"&&t[e+1]==="-"&&t[e+2]===">"){e+=2;break}}else if(t.length>e+8&&t[e+1]==="D"&&t[e+2]==="O"&&t[e+3]==="C"&&t[e+4]==="T"&&t[e+5]==="Y"&&t[e+6]==="P"&&t[e+7]==="E"){let r=1;for(e+=8;e<t.length;e++)if(t[e]==="<")r++;else if(t[e]===">"&&(r--,r===0))break}else if(t.length>e+9&&t[e+1]==="["&&t[e+2]==="C"&&t[e+3]==="D"&&t[e+4]==="A"&&t[e+5]==="T"&&t[e+6]==="A"&&t[e+7]==="["){for(e+=8;e<t.length;e++)if(t[e]==="]"&&t[e+1]==="]"&&t[e+2]===">"){e+=2;break}}return e}var oT='"',sT="'";function iT(t,e){let r="",n="",o=!1;for(;e<t.length;e++){if(t[e]===oT||t[e]===sT)n===""?n=t[e]:n!==t[e]||(n="");else if(t[e]===">"&&n===""){o=!0;break}r+=t[e]}return n!==""?!1:{value:r,index:e,tagClosed:o}}var aT=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function Wh(t,e){let r=gs(t,aT),n={};for(let o=0;o<r.length;o++){if(r[o][1].length===0)return oe("InvalidAttr","Attribute '"+r[o][2]+"' has no space in starting.",In(r[o]));if(r[o][3]!==void 0&&r[o][4]===void 0)return oe("InvalidAttr","Attribute '"+r[o][2]+"' is without value.",In(r[o]));if(r[o][3]===void 0&&!e.allowBooleanAttributes)return oe("InvalidAttr","boolean attribute '"+r[o][2]+"' is not allowed.",In(r[o]));let s=r[o][2];if(!fT(s))return oe("InvalidAttr","Attribute '"+s+"' is an invalid name.",In(r[o]));if(!Object.prototype.hasOwnProperty.call(n,s))n[s]=1;else return oe("InvalidAttr","Attribute '"+s+"' is repeated.",In(r[o]))}return!0}function cT(t,e){let r=/\d/;for(t[e]==="x"&&(e++,r=/[\da-fA-F]/);e<t.length;e++){if(t[e]===";")return e;if(!t[e].match(r))break}return-1}function lT(t,e){if(e++,t[e]===";")return-1;if(t[e]==="#")return e++,cT(t,e);let r=0;for(;e<t.length;e++,r++)if(!(t[e].match(/\w/)&&r<20)){if(t[e]===";")break;return-1}return e}function oe(t,e,r){return{err:{code:t,msg:e,line:r.line||r,col:r.col}}}function fT(t){return Rr(t)}function uT(t){return Rr(t)}function Te(t,e){let r=t.substring(0,e).split(/\r?\n/);return{line:r.length,col:r[r.length-1].length+1}}function In(t){return t.startIndex+t[1].length}var Kh=t=>Mn.includes(t)?"__"+t:t,hT={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:Kh};function pT(t,e){if(typeof t!="string")return;let r=t.toLowerCase();if(Mn.some(n=>r===n.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);if(bs.some(n=>r===n.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`)}function Yh(t){return typeof t=="boolean"?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,maxEntityCount:100,allowedTags:null,tagFilter:null}:typeof t=="object"&&t!==null?{enabled:t.enabled!==!1,maxEntitySize:Math.max(1,t.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,t.maxExpansionDepth??1e4),maxTotalExpansions:Math.max(1,t.maxTotalExpansions??1/0),maxExpandedLength:Math.max(1,t.maxExpandedLength??1e5),maxEntityCount:Math.max(1,t.maxEntityCount??1e3),allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:Yh(!0)}var Qh=function(t){let e=Object.assign({},hT,t),r=[{value:e.attributeNamePrefix,name:"attributeNamePrefix"},{value:e.attributesGroupName,name:"attributesGroupName"},{value:e.textNodeName,name:"textNodeName"},{value:e.cdataPropName,name:"cdataPropName"},{value:e.commentPropName,name:"commentPropName"}];for(let{value:n,name:o}of r)n&&pT(n,o);return e.onDangerousProperty===null&&(e.onDangerousProperty=Kh),e.processEntities=Yh(e.processEntities),e.unpairedTagsSet=new Set(e.unpairedTags),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(n=>typeof n=="string"&&n.startsWith("*.")?".."+n.substring(2):n)),e};var As;typeof Symbol!="function"?As="@@xmlMetadata":As=Symbol("XML Node Metadata");var Ce=class{constructor(e){this.tagname=e,this.child=[],this[":@"]=Object.create(null)}add(e,r){e==="__proto__"&&(e="#__proto__"),this.child.push({[e]:r})}addChild(e,r){e.tagname==="__proto__"&&(e.tagname="#__proto__"),e[":@"]&&Object.keys(e[":@"]).length>0?this.child.push({[e.tagname]:e.child,":@":e[":@"]}):this.child.push({[e.tagname]:e.child}),r!==void 0&&(this.child[this.child.length-1][As]={startIndex:r})}static getMetaDataSymbol(){return As}};var vn=class{constructor(e){this.suppressValidationErr=!e,this.options=e}readDocType(e,r){let n=Object.create(null),o=0;if(e[r+3]==="O"&&e[r+4]==="C"&&e[r+5]==="T"&&e[r+6]==="Y"&&e[r+7]==="P"&&e[r+8]==="E"){r=r+9;let s=1,i=!1,a=!1,c="";for(;r<e.length;r++)if(e[r]==="<"&&!a){if(i&&Kt(e,"!ENTITY",r)){r+=7;let l,f;if([l,f,r]=this.readEntityExp(e,r+1,this.suppressValidationErr),f.indexOf("&")===-1){if(this.options.enabled!==!1&&this.options.maxEntityCount!=null&&o>=this.options.maxEntityCount)throw new Error(`Entity count (${o+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);let u=l.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");n[l]={regx:RegExp(`&${u};`,"g"),val:f},o++}}else if(i&&Kt(e,"!ELEMENT",r)){r+=8;let{index:l}=this.readElementExp(e,r+1);r=l}else if(i&&Kt(e,"!ATTLIST",r))r+=8;else if(i&&Kt(e,"!NOTATION",r)){r+=9;let{index:l}=this.readNotationExp(e,r+1,this.suppressValidationErr);r=l}else if(Kt(e,"!--",r))a=!0;else throw new Error("Invalid DOCTYPE");s++,c=""}else if(e[r]===">"){if(a?e[r-1]==="-"&&e[r-2]==="-"&&(a=!1,s--):s--,s===0)break}else e[r]==="["?i=!0:c+=e[r];if(s!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:n,i:r}}readEntityExp(e,r){r=Ee(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r])&&e[r]!=='"'&&e[r]!=="'";)r++;let o=e.substring(n,r);if(Bn(o),r=Ee(e,r),!this.suppressValidationErr){if(e.substring(r,r+6).toUpperCase()==="SYSTEM")throw new Error("External entities are not supported");if(e[r]==="%")throw new Error("Parameter entities are not supported")}let s="";if([r,s]=this.readIdentifierVal(e,r,"entity"),this.options.enabled!==!1&&this.options.maxEntitySize!=null&&s.length>this.options.maxEntitySize)throw new Error(`Entity "${o}" size (${s.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return r--,[o,s,r]}readNotationExp(e,r){r=Ee(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);!this.suppressValidationErr&&Bn(o),r=Ee(e,r);let s=e.substring(r,r+6).toUpperCase();if(!this.suppressValidationErr&&s!=="SYSTEM"&&s!=="PUBLIC")throw new Error(`Expected SYSTEM or PUBLIC, found "${s}"`);r+=s.length,r=Ee(e,r);let i=null,a=null;if(s==="PUBLIC")[r,i]=this.readIdentifierVal(e,r,"publicIdentifier"),r=Ee(e,r),(e[r]==='"'||e[r]==="'")&&([r,a]=this.readIdentifierVal(e,r,"systemIdentifier"));else if(s==="SYSTEM"&&([r,a]=this.readIdentifierVal(e,r,"systemIdentifier"),!this.suppressValidationErr&&!a))throw new Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:o,publicIdentifier:i,systemIdentifier:a,index:--r}}readIdentifierVal(e,r,n){let o="",s=e[r];if(s!=='"'&&s!=="'")throw new Error(`Expected quoted string, found "${s}"`);r++;let i=r;for(;r<e.length&&e[r]!==s;)r++;if(o=e.substring(i,r),e[r]!==s)throw new Error(`Unterminated ${n} value`);return r++,[r,o]}readElementExp(e,r){r=Ee(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);if(!this.suppressValidationErr&&!Rr(o))throw new Error(`Invalid element name: "${o}"`);r=Ee(e,r);let s="";if(e[r]==="E"&&Kt(e,"MPTY",r))r+=4;else if(e[r]==="A"&&Kt(e,"NY",r))r+=2;else if(e[r]==="("){r++;let i=r;for(;r<e.length&&e[r]!==")";)r++;if(s=e.substring(i,r),e[r]!==")")throw new Error("Unterminated content model")}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found "${e[r]}"`);return{elementName:o,contentModel:s.trim(),index:r}}readAttlistExp(e,r){r=Ee(e,r);let n=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let o=e.substring(n,r);for(Bn(o),r=Ee(e,r),n=r;r<e.length&&!/\s/.test(e[r]);)r++;let s=e.substring(n,r);if(!Bn(s))throw new Error(`Invalid attribute name: "${s}"`);r=Ee(e,r);let i="";if(e.substring(r,r+8).toUpperCase()==="NOTATION"){if(i="NOTATION",r+=8,r=Ee(e,r),e[r]!=="(")throw new Error(`Expected '(', found "${e[r]}"`);r++;let c=[];for(;r<e.length&&e[r]!==")";){let l=r;for(;r<e.length&&e[r]!=="|"&&e[r]!==")";)r++;let f=e.substring(l,r);if(f=f.trim(),!Bn(f))throw new Error(`Invalid notation name: "${f}"`);c.push(f),e[r]==="|"&&(r++,r=Ee(e,r))}if(e[r]!==")")throw new Error("Unterminated list of notations");r++,i+=" ("+c.join("|")+")"}else{let c=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;i+=e.substring(c,r);let l=["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"];if(!this.suppressValidationErr&&!l.includes(i.toUpperCase()))throw new Error(`Invalid attribute type: "${i}"`)}r=Ee(e,r);let a="";return e.substring(r,r+8).toUpperCase()==="#REQUIRED"?(a="#REQUIRED",r+=8):e.substring(r,r+7).toUpperCase()==="#IMPLIED"?(a="#IMPLIED",r+=7):[r,a]=this.readIdentifierVal(e,r,"ATTLIST"),{elementName:o,attributeName:s,attributeType:i,defaultValue:a,index:r}}},Ee=(t,e)=>{for(;e<t.length&&/\s/.test(t[e]);)e++;return e};function Kt(t,e,r){for(let n=0;n<e.length;n++)if(e[n]!==t[r+n+1])return!1;return!0}function Bn(t){if(Rr(t))return t;throw new Error(`Invalid entity name ${t}`)}var dT=/^[-+]?0x[a-fA-F0-9]+$/,mT=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,gT={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0,infinity:"original"};function Wa(t,e={}){if(e=Object.assign({},gT,e),!t||typeof t!="string")return t;let r=t.trim();if(r.length===0)return t;if(e.skipLike!==void 0&&e.skipLike.test(r))return t;if(r==="0")return 0;if(e.hex&&dT.test(r))return TT(r,16);if(isFinite(r)){if(r.includes("e")||r.includes("E"))return AT(t,r,e);{let n=mT.exec(r);if(n){let o=n[1]||"",s=n[2],i=xT(n[3]),a=o?t[s.length+1]===".":t[s.length]===".";if(!e.leadingZeros&&(s.length>1||s.length===1&&!a))return t;{let c=Number(r),l=String(c);if(c===0)return c;if(l.search(/[eE]/)!==-1)return e.eNotation?c:t;if(r.indexOf(".")!==-1)return l==="0"||l===i||l===`${o}${i}`?c:t;let f=s?i:r;return s?f===l||o+f===l?c:t:f===l||f===o+l?c:t}}else return t}}else return yT(t,Number(r),e)}var bT=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function AT(t,e,r){if(!r.eNotation)return t;let n=e.match(bT);if(n){let o=n[1]||"",s=n[3].indexOf("e")===-1?"E":"e",i=n[2],a=o?t[i.length+1]===s:t[i.length]===s;return i.length>1&&a?t:i.length===1&&(n[3].startsWith(`.${s}`)||n[3][0]===s)?Number(e):i.length>0?r.leadingZeros&&!a?(e=(n[1]||"")+n[3],Number(e)):t:Number(e)}else return t}function xT(t){return t&&t.indexOf(".")!==-1&&(t=t.replace(/0+$/,""),t==="."?t="0":t[0]==="."?t="0"+t:t[t.length-1]==="."&&(t=t.substring(0,t.length-1))),t}function TT(t,e){if(parseInt)return parseInt(t,e);if(Number.parseInt)return Number.parseInt(t,e);if(window&&window.parseInt)return window.parseInt(t,e);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}function yT(t,e,r){let n=e===1/0;switch(r.infinity.toLowerCase()){case"null":return null;case"infinity":return e;case"string":return n?"Infinity":"-Infinity";default:return t}}function Xa(t){return typeof t=="function"?t:Array.isArray(t)?e=>{for(let r of t)if(typeof r=="string"&&e===r||r instanceof RegExp&&r.test(e))return!0}:()=>!1}var Yt=class{constructor(e,r={},n){this.pattern=e,this.separator=r.separator||".",this.segments=this._parse(e),this.data=n,this._hasDeepWildcard=this.segments.some(o=>o.type==="deep-wildcard"),this._hasAttributeCondition=this.segments.some(o=>o.attrName!==void 0),this._hasPositionSelector=this.segments.some(o=>o.position!==void 0)}_parse(e){let r=[],n=0,o="";for(;n<e.length;)e[n]===this.separator?n+1<e.length&&e[n+1]===this.separator?(o.trim()&&(r.push(this._parseSegment(o.trim())),o=""),r.push({type:"deep-wildcard"}),n+=2):(o.trim()&&r.push(this._parseSegment(o.trim())),o="",n++):(o+=e[n],n++);return o.trim()&&r.push(this._parseSegment(o.trim())),r}_parseSegment(e){let r={type:"tag"},n=null,o=e,s=e.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(s&&(o=s[1]+s[3],s[2])){let f=s[2].slice(1,-1);f&&(n=f)}let i,a=o;if(o.includes("::")){let f=o.indexOf("::");if(i=o.substring(0,f).trim(),a=o.substring(f+2).trim(),!i)throw new Error(`Invalid namespace in pattern: ${e}`)}let c,l=null;if(a.includes(":")){let f=a.lastIndexOf(":"),u=a.substring(0,f).trim(),h=a.substring(f+1).trim();["first","last","odd","even"].includes(h)||/^nth\(\d+\)$/.test(h)?(c=u,l=h):c=a}else c=a;if(!c)throw new Error(`Invalid segment pattern: ${e}`);if(r.tag=c,i&&(r.namespace=i),n)if(n.includes("=")){let f=n.indexOf("=");r.attrName=n.substring(0,f).trim(),r.attrValue=n.substring(f+1).trim()}else r.attrName=n.trim();if(l){let f=l.match(/^nth\((\d+)\)$/);f?(r.position="nth",r.positionValue=parseInt(f[1],10)):r.position=l}return r}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}};var wr=class{constructor(){this._byDepthAndTag=new Map,this._wildcardByDepth=new Map,this._deepWildcards=[],this._patterns=new Set,this._sealed=!1}add(e){if(this._sealed)throw new TypeError("ExpressionSet is sealed. Create a new ExpressionSet to add more expressions.");if(this._patterns.has(e.pattern))return this;if(this._patterns.add(e.pattern),e.hasDeepWildcard())return this._deepWildcards.push(e),this;let r=e.length,o=e.segments[e.segments.length-1]?.tag;if(!o||o==="*")this._wildcardByDepth.has(r)||this._wildcardByDepth.set(r,[]),this._wildcardByDepth.get(r).push(e);else{let s=`${r}:${o}`;this._byDepthAndTag.has(s)||this._byDepthAndTag.set(s,[]),this._byDepthAndTag.get(s).push(e)}return this}addAll(e){for(let r of e)this.add(r);return this}has(e){return this._patterns.has(e.pattern)}get size(){return this._patterns.size}seal(){return this._sealed=!0,this}get isSealed(){return this._sealed}matchesAny(e){return this.findMatch(e)!==null}findMatch(e){let r=e.getDepth(),n=e.getCurrentTag(),o=`${r}:${n}`,s=this._byDepthAndTag.get(o);if(s){for(let a=0;a<s.length;a++)if(e.matches(s[a]))return s[a]}let i=this._wildcardByDepth.get(r);if(i){for(let a=0;a<i.length;a++)if(e.matches(i[a]))return i[a]}for(let a=0;a<this._deepWildcards.length;a++)if(e.matches(this._deepWildcards[a]))return this._deepWildcards[a];return null}};var ST=new Set(["push","pop","reset","updateCurrent","restore"]),Lr=class{constructor(e={}){this.separator=e.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null}push(e,r=null,n=null){if(this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path.length>0){let f=this.path[this.path.length-1];f.values=void 0}let o=this.path.length;this.siblingStacks[o]||(this.siblingStacks[o]=new Map);let s=this.siblingStacks[o],i=n?`${n}:${e}`:e,a=s.get(i)||0,c=0;for(let f of s.values())c+=f;s.set(i,a+1);let l={tag:e,position:c,counter:a};n!=null&&(l.namespace=n),r!=null&&(l.values=r),this.path.push(l)}pop(){if(this.path.length===0)return;this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null;let e=this.path.pop();return this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1),e}updateCurrent(e){if(this.path.length>0){let r=this.path[this.path.length-1];e!=null&&(r.values=e,this._frozenPathCache=null)}}getCurrentTag(){return this.path.length>0?this.path[this.path.length-1].tag:void 0}getCurrentNamespace(){return this.path.length>0?this.path[this.path.length-1].namespace:void 0}getAttrValue(e){return this.path.length===0?void 0:this.path[this.path.length-1].values?.[e]}hasAttr(e){if(this.path.length===0)return!1;let r=this.path[this.path.length-1];return r.values!==void 0&&e in r.values}getPosition(){return this.path.length===0?-1:this.path[this.path.length-1].position??0}getCounter(){return this.path.length===0?-1:this.path[this.path.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this.path.length}toString(e,r=!0){let n=e||this.separator;if(n===this.separator&&r===!0){if(this._pathStringCache!==null&&this._pathStringCache!==void 0)return this._pathStringCache;let s=this.path.map(i=>r&&i.namespace?`${i.namespace}:${i.tag}`:i.tag).join(n);return this._pathStringCache=s,s}return this.path.map(s=>r&&s.namespace?`${s.namespace}:${s.tag}`:s.tag).join(n)}toArray(){return this.path.map(e=>e.tag)}reset(){this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path=[],this.siblingStacks=[]}matches(e){let r=e.segments;return r.length===0?!1:e.hasDeepWildcard()?this._matchWithDeepWildcard(r):this._matchSimple(r)}_matchSimple(e){if(this.path.length!==e.length)return!1;for(let r=0;r<e.length;r++){let n=e[r],o=this.path[r],s=r===this.path.length-1;if(!this._matchSegment(n,o,s))return!1}return!0}_matchWithDeepWildcard(e){let r=this.path.length-1,n=e.length-1;for(;n>=0&&r>=0;){let o=e[n];if(o.type==="deep-wildcard"){if(n--,n<0)return!0;let s=e[n],i=!1;for(let a=r;a>=0;a--){let c=a===this.path.length-1;if(this._matchSegment(s,this.path[a],c)){r=a-1,n--,i=!0;break}}if(!i)return!1}else{let s=r===this.path.length-1;if(!this._matchSegment(o,this.path[r],s))return!1;r--,n--}}return n<0}_matchSegment(e,r,n){if(e.tag!=="*"&&e.tag!==r.tag||e.namespace!==void 0&&e.namespace!=="*"&&e.namespace!==r.namespace)return!1;if(e.attrName!==void 0){if(!n||!r.values||!(e.attrName in r.values))return!1;if(e.attrValue!==void 0){let o=r.values[e.attrName];if(String(o)!==String(e.attrValue))return!1}}if(e.position!==void 0){if(!n)return!1;let o=r.counter??0;if(e.position==="first"&&o!==0)return!1;if(e.position==="odd"&&o%2!==1)return!1;if(e.position==="even"&&o%2!==0)return!1;if(e.position==="nth"&&o!==e.positionValue)return!1}return!0}matchesAny(e){return e.matchesAny(this)}snapshot(){return{path:this.path.map(e=>({...e})),siblingStacks:this.siblingStacks.map(e=>new Map(e))}}restore(e){this._pathStringCache=null,this._frozenPathCache=null,this._frozenSiblingsCache=null,this.path=e.path.map(r=>({...r})),this.siblingStacks=e.siblingStacks.map(r=>new Map(r))}readOnly(){let e=this;return new Proxy(e,{get(r,n,o){if(ST.has(n))return()=>{throw new TypeError(`Cannot call '${n}' on a read-only Matcher. Obtain a writable instance to mutate state.`)};if(n==="path")return r._frozenPathCache===null&&(r._frozenPathCache=Object.freeze(r.path.map(i=>Object.freeze({...i})))),r._frozenPathCache;if(n==="siblingStacks")return r._frozenSiblingsCache===null&&(r._frozenSiblingsCache=Object.freeze(r.siblingStacks.map(i=>Object.freeze(new Map(i))))),r._frozenSiblingsCache;let s=Reflect.get(r,n,o);return typeof s=="function"?s.bind(r):s},set(r,n){throw new TypeError(`Cannot set property '${String(n)}' on a read-only Matcher.`)},deleteProperty(r,n){throw new TypeError(`Cannot delete property '${String(n)}' from a read-only Matcher.`)}})}};function _T(t,e){if(!t)return{};let r=e.attributesGroupName?t[e.attributesGroupName]:t;if(!r)return{};let n={};for(let o in r)if(o.startsWith(e.attributeNamePrefix)){let s=o.substring(e.attributeNamePrefix.length);n[s]=r[o]}else n[o]=r[o];return n}function CT(t){if(!t||typeof t!="string")return;let e=t.indexOf(":");if(e!==-1&&e>0){let r=t.substring(0,e);if(r!=="xmlns")return r}}var Rn=class{constructor(e){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"\xA2"},pound:{regex:/&(pound|#163);/g,val:"\xA3"},yen:{regex:/&(yen|#165);/g,val:"\xA5"},euro:{regex:/&(euro|#8364);/g,val:"\u20AC"},copyright:{regex:/&(copy|#169);/g,val:"\xA9"},reg:{regex:/&(reg|#174);/g,val:"\xAE"},inr:{regex:/&(inr|#8377);/g,val:"\u20B9"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(n,o)=>Zh(o,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(n,o)=>Zh(o,16,"&#x")}},this.addExternalEntities=ET,this.parseXml=RT,this.parseTextData=MT,this.resolveNameSpace=IT,this.buildAttributesMap=vT,this.isItStopNode=PT,this.replaceEntitiesValue=LT,this.readStopNodeData=UT,this.saveTextToParentTag=FT,this.addChild=wT,this.ignoreAttributesFn=Xa(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.matcher=new Lr,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.stopNodeExpressionsSet=new wr;let r=this.options.stopNodes;if(r&&r.length>0){for(let n=0;n<r.length;n++){let o=r[n];typeof o=="string"?this.stopNodeExpressionsSet.add(new Yt(o)):o instanceof Yt&&this.stopNodeExpressionsSet.add(o)}this.stopNodeExpressionsSet.seal()}}};function ET(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r],o=n.replace(/[.\-+*:]/g,"\\.");this.lastEntities[n]={regex:new RegExp("&"+o+";","g"),val:t[n]}}}function MT(t,e,r,n,o,s,i){let a=this.options;if(t!==void 0&&(a.trimValues&&!n&&(t=t.trim()),t.length>0)){i||(t=this.replaceEntitiesValue(t,e,r));let c=a.jPath?r.toString():r,l=a.tagValueProcessor(e,t,c,o,s);return l==null?t:typeof l!=typeof t||l!==t?l:a.trimValues||t.trim()===t?Qa(t,a.parseTagValue,a.numberParseOptions):t}}function IT(t){if(this.options.removeNSPrefix){let e=t.split(":"),r=t.charAt(0)==="/"?"/":"";if(e[0]==="xmlns")return"";e.length===2&&(t=r+e[1])}return t}var BT=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function vT(t,e,r){let n=this.options;if(n.ignoreAttributes!==!0&&typeof t=="string"){let o=gs(t,BT),s=o.length,i={},a=new Array(s),c=!1,l={};for(let h=0;h<s;h++){let p=this.resolveNameSpace(o[h][1]),d=o[h][4];if(p.length&&d!==void 0){let m=d;n.trimValues&&(m=m.trim()),m=this.replaceEntitiesValue(m,r,this.readonlyMatcher),a[h]=m,l[p]=m,c=!0}}c&&typeof e=="object"&&e.updateCurrent&&e.updateCurrent(l);let f=n.jPath?e.toString():this.readonlyMatcher,u=!1;for(let h=0;h<s;h++){let p=this.resolveNameSpace(o[h][1]);if(this.ignoreAttributesFn(p,f))continue;let d=n.attributeNamePrefix+p;if(p.length)if(n.transformAttributeName&&(d=n.transformAttributeName(d)),d=$h(d,n),o[h][4]!==void 0){let m=a[h],b=n.attributeValueProcessor(p,m,f);b==null?i[d]=m:typeof b!=typeof m||b!==m?i[d]=b:i[d]=Qa(m,n.parseAttributeValue,n.numberParseOptions),u=!0}else n.allowBooleanAttributes&&(i[d]=!0,u=!0)}if(!u)return;if(n.attributesGroupName){let h={};return h[n.attributesGroupName]=i,h}return i}}var RT=function(t){t=t.replace(/\r\n?/g,`
10
- `);let e=new Ce("!xml"),r=e,n="";this.matcher.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0,this.docTypeEntitiesKeys=[],this.lastEntitiesKeys=Object.keys(this.lastEntities),this.htmlEntitiesKeys=this.options.htmlEntities?Object.keys(this.htmlEntities):[];let o=this.options,s=new vn(o.processEntities),i=t.length;for(let a=0;a<i;a++)if(t[a]==="<"){let l=t.charCodeAt(a+1);if(l===47){let f=Fr(t,">",a,"Closing Tag is not closed."),u=t.substring(a+2,f).trim();if(o.removeNSPrefix){let p=u.indexOf(":");p!==-1&&(u=u.substr(p+1))}u=Ka(o.transformTagName,u,"",o).tagName,r&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher));let h=this.matcher.getCurrentTag();if(u&&o.unpairedTagsSet.has(u))throw new Error(`Unpaired tag can not be used as closing tag: </${u}>`);h&&o.unpairedTagsSet.has(h)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=this.tagsNodeStack.pop(),n="",a=f}else if(l===63){let f=Ya(t,a,!1,"?>");if(!f)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,this.readonlyMatcher),!(o.ignoreDeclaration&&f.tagName==="?xml"||o.ignorePiTags)){let u=new Ce(f.tagName);u.add(o.textNodeName,""),f.tagName!==f.tagExp&&f.attrExpPresent&&(u[":@"]=this.buildAttributesMap(f.tagExp,this.matcher,f.tagName)),this.addChild(r,u,this.readonlyMatcher,a)}a=f.closeIndex+1}else if(l===33&&t.charCodeAt(a+2)===45&&t.charCodeAt(a+3)===45){let f=Fr(t,"-->",a+4,"Comment is not closed.");if(o.commentPropName){let u=t.substring(a+4,f-2);n=this.saveTextToParentTag(n,r,this.readonlyMatcher),r.add(o.commentPropName,[{[o.textNodeName]:u}])}a=f}else if(l===33&&t.charCodeAt(a+2)===68){let f=s.readDocType(t,a);this.docTypeEntities=f.entities,this.docTypeEntitiesKeys=Object.keys(this.docTypeEntities)||[],a=f.i}else if(l===33&&t.charCodeAt(a+2)===91){let f=Fr(t,"]]>",a,"CDATA is not closed.")-2,u=t.substring(a+9,f);n=this.saveTextToParentTag(n,r,this.readonlyMatcher);let h=this.parseTextData(u,r.tagname,this.readonlyMatcher,!0,!1,!0,!0);h==null&&(h=""),o.cdataPropName?r.add(o.cdataPropName,[{[o.textNodeName]:u}]):r.add(o.textNodeName,h),a=f+2}else{let f=Ya(t,a,o.removeNSPrefix);if(!f){let E=t.substring(Math.max(0,a-50),Math.min(i,a+50));throw new Error(`readTagExp returned undefined at position ${a}. Context: "${E}"`)}let u=f.tagName,h=f.rawTagName,p=f.tagExp,d=f.attrExpPresent,m=f.closeIndex;if({tagName:u,tagExp:p}=Ka(o.transformTagName,u,p,o),o.strictReservedNames&&(u===o.commentPropName||u===o.cdataPropName||u===o.textNodeName||u===o.attributesGroupName))throw new Error(`Invalid tag name: ${u}`);r&&n&&r.tagname!=="!xml"&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher,!1));let b=r;b&&o.unpairedTagsSet.has(b.tagname)&&(r=this.tagsNodeStack.pop(),this.matcher.pop());let x=!1;p.length>0&&p.lastIndexOf("/")===p.length-1&&(x=!0,u[u.length-1]==="/"?(u=u.substr(0,u.length-1),p=u):p=p.substr(0,p.length-1),d=u!==p);let y=null,_={},T;T=CT(h),u!==e.tagname&&this.matcher.push(u,{},T),u!==p&&d&&(y=this.buildAttributesMap(p,this.matcher,u),y&&(_=_T(y,o))),u!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let M=a;if(this.isCurrentNodeStopNode){let E="";if(x)a=f.closeIndex;else if(o.unpairedTagsSet.has(u))a=f.closeIndex;else{let C=this.readStopNodeData(t,h,m+1);if(!C)throw new Error(`Unexpected end of ${h}`);a=C.i,E=C.tagContent}let I=new Ce(u);y&&(I[":@"]=y),I.add(o.textNodeName,E),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(r,I,this.readonlyMatcher,M)}else{if(x){({tagName:u,tagExp:p}=Ka(o.transformTagName,u,p,o));let E=new Ce(u);y&&(E[":@"]=y),this.addChild(r,E,this.readonlyMatcher,M),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else if(o.unpairedTagsSet.has(u)){let E=new Ce(u);y&&(E[":@"]=y),this.addChild(r,E,this.readonlyMatcher,M),this.matcher.pop(),this.isCurrentNodeStopNode=!1,a=f.closeIndex;continue}else{let E=new Ce(u);if(this.tagsNodeStack.length>o.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(r),y&&(E[":@"]=y),this.addChild(r,E,this.readonlyMatcher,M),r=E}n="",a=m}}}else n+=t[a];return e.child};function wT(t,e,r,n){this.options.captureMetaData||(n=void 0);let o=this.options.jPath?r.toString():r,s=this.options.updateTag(e.tagname,o,e[":@"]);s===!1||(typeof s=="string"&&(e.tagname=s),t.addChild(e,n))}function LT(t,e,r){let n=this.options.processEntities;if(!n||!n.enabled)return t;if(n.allowedTags){let o=this.options.jPath?r.toString():r;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,o)))return t}if(n.tagFilter){let o=this.options.jPath?r.toString():r;if(!n.tagFilter(e,o))return t}for(let o of this.docTypeEntitiesKeys){let s=this.docTypeEntities[o],i=t.match(s.regx);if(i){if(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);let a=t.length;if(t=t.replace(s.regx,s.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-a,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}if(t.indexOf("&")===-1)return t;for(let o of this.lastEntitiesKeys){let s=this.lastEntities[o],i=t.match(s.regex);if(i&&(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(s.regex,s.val)}if(t.indexOf("&")===-1)return t;for(let o of this.htmlEntitiesKeys){let s=this.htmlEntities[o],i=t.match(s.regex);if(i&&(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(s.regex,s.val)}return t=t.replace(this.ampEntity.regex,this.ampEntity.val),t}function FT(t,e,r,n){return t&&(n===void 0&&(n=e.child.length===0),t=this.parseTextData(t,e.tagname,r,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,n),t!==void 0&&t!==""&&e.add(this.options.textNodeName,t),t=""),t}function PT(){return this.stopNodeExpressionsSet.size===0?!1:this.matcher.matchesAny(this.stopNodeExpressionsSet)}function NT(t,e,r=">"){let n=0,o=[],s=t.length,i=r.charCodeAt(0),a=r.length>1?r.charCodeAt(1):-1;for(let c=e;c<s;c++){let l=t.charCodeAt(c);if(n)l===n&&(n=0);else if(l===34||l===39)n=l;else if(l===i)if(a!==-1){if(t.charCodeAt(c+1)===a)return{data:String.fromCharCode(...o),index:c}}else return{data:String.fromCharCode(...o),index:c};else if(l===9){o.push(32);continue}o.push(l)}}function Fr(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o+e.length-1}function OT(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o}function Ya(t,e,r,n=">"){let o=NT(t,e+1,n);if(!o)return;let s=o.data,i=o.index,a=s.search(/\s/),c=s,l=!0;a!==-1&&(c=s.substring(0,a),s=s.substring(a+1).trimStart());let f=c;if(r){let u=c.indexOf(":");u!==-1&&(c=c.substr(u+1),l=c!==o.data.substr(u+1))}return{tagName:c,tagExp:s,closeIndex:i,attrExpPresent:l,rawTagName:f}}function UT(t,e,r){let n=r,o=1,s=t.length;for(;r<s;r++)if(t[r]==="<"){let i=t.charCodeAt(r+1);if(i===47){let a=OT(t,">",r,`${e} is not closed`);if(t.substring(r+2,a).trim()===e&&(o--,o===0))return{tagContent:t.substring(n,r),i:a};r=a}else if(i===63)r=Fr(t,"?>",r+1,"StopNode is not closed.");else if(i===33&&t.charCodeAt(r+2)===45&&t.charCodeAt(r+3)===45)r=Fr(t,"-->",r+3,"StopNode is not closed.");else if(i===33&&t.charCodeAt(r+2)===91)r=Fr(t,"]]>",r,"StopNode is not closed.")-2;else{let a=Ya(t,r,">");a&&((a&&a.tagName)===e&&a.tagExp[a.tagExp.length-1]!=="/"&&o++,r=a.closeIndex)}}}function Qa(t,e,r){if(e&&typeof t=="string"){let n=t.trim();return n==="true"?!0:n==="false"?!1:Wa(t,r)}else return zh(t)?t:""}function Zh(t,e,r){let n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):r+t+";"}function Ka(t,e,r,n){if(t){let o=t(e);r===e&&(r=o),e=o}return e=$h(e,n),{tagName:e,tagExp:r}}function $h(t,e){if(bs.includes(t))throw new Error(`[SECURITY] Invalid name: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);return Mn.includes(t)?e.onDangerousProperty(t):t}var Za=Ce.getMetaDataSymbol();function DT(t,e){if(!t||typeof t!="object")return{};if(!e)return t;let r={};for(let n in t)if(n.startsWith(e)){let o=n.substring(e.length);r[o]=t[n]}else r[n]=t[n];return r}function $a(t,e,r,n){return ep(t,e,r,n)}function ep(t,e,r,n){let o,s={};for(let i=0;i<t.length;i++){let a=t[i],c=GT(a);if(c!==void 0&&c!==e.textNodeName){let l=DT(a[":@"]||{},e.attributeNamePrefix);r.push(c,l)}if(c===e.textNodeName)o===void 0?o=a[c]:o+=""+a[c];else{if(c===void 0)continue;if(a[c]){let l=ep(a[c],e,r,n),f=HT(l,e);if(a[":@"]?VT(l,a[":@"],n,e):Object.keys(l).length===1&&l[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?l=l[e.textNodeName]:Object.keys(l).length===0&&(e.alwaysCreateTextNode?l[e.textNodeName]="":l=""),a[Za]!==void 0&&typeof l=="object"&&l!==null&&(l[Za]=a[Za]),s[c]!==void 0&&Object.prototype.hasOwnProperty.call(s,c))Array.isArray(s[c])||(s[c]=[s[c]]),s[c].push(l);else{let u=e.jPath?n.toString():n;e.isArray(c,u,f)?s[c]=[l]:s[c]=l}c!==void 0&&c!==e.textNodeName&&r.pop()}}}return typeof o=="string"?o.length>0&&(s[e.textNodeName]=o):o!==void 0&&(s[e.textNodeName]=o),s}function GT(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r];if(n!==":@")return n}}function VT(t,e,r,n){if(e){let o=Object.keys(e),s=o.length;for(let i=0;i<s;i++){let a=o[i],c=a.startsWith(n.attributeNamePrefix)?a.substring(n.attributeNamePrefix.length):a,l=n.jPath?r.toString()+"."+c:r;n.isArray(a,l,!0,!0)?t[a]=[e[a]]:t[a]=e[a]}}}function HT(t,e){let{textNodeName:r}=e,n=Object.keys(t).length;return!!(n===0||n===1&&(t[r]||typeof t[r]=="boolean"||t[r]===0))}var Pr=class{constructor(e){this.externalEntities={},this.options=Qh(e)}parse(e,r){if(typeof e!="string"&&e.toString)e=e.toString();else if(typeof e!="string")throw new Error("XML data is accepted in String or Bytes[] form.");if(r){r===!0&&(r={});let s=Xh(e,r);if(s!==!0)throw Error(`${s.err.msg}:${s.err.line}:${s.err.col}`)}let n=new Rn(this.options);n.addExternalEntities(this.externalEntities);let o=n.parseXml(e);return this.options.preserveOrder||o===void 0?o:$a(o,this.options,n.matcher,n.readonlyMatcher)}addEntity(e,r){if(r.indexOf("&")!==-1)throw new Error("Entity value can't have '&'");if(e.indexOf("&")!==-1||e.indexOf(";")!==-1)throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");if(r==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=r}static getMetaDataSymbol(){return Ce.getMetaDataSymbol()}};function ec(t,e){if(e?._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(o,s,i,a)=>!!e?.arrayPaths?.some(l=>s===l),...e?._fastXML},n=kT(t,r);return e?.uncapitalizeKeys?ms(n):n}function kT(t,e){return new Pr({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var zT="4.4.3",Je={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:zT,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:jT,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>ec(new TextDecoder().decode(t),{...Je.options.xml,...e?.xml}),parseTextSync:(t,e)=>ec(t,{...Je.options.xml,...e?.xml})};function jT(t){return t.startsWith("<?xml")}async function we(t,e,r,n){return n._parse(t,e,r,n)}function k(t,e){if(!t)throw new Error(e||"loader assertion failed.")}var tt={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},qT=tt.self||tt.window||tt.global||{},JT=tt.window||tt.self||tt.global||{},WT=tt.global||tt.self||tt.window||{},XT=tt.document||{};var wn=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser);var tp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),KT=tp&&parseFloat(tp[1])||0;var xs=globalThis,YT=globalThis.document||{},Ts=globalThis.process||{},QT=globalThis.console,Rw=globalThis.navigator||{};function rp(t){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&process.versions?.electron)return!0;let e=typeof navigator<"u"&&navigator.userAgent,r=t||e;return!!(r&&r.indexOf("Electron")>=0)}function Qt(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||rp()}var tc="4.1.1";function Nr(t,e){if(!t)throw new Error(e||"Assertion failed")}function rc(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return Nr(Number.isFinite(e)&&e>=0),e}function np(t){let{logLevel:e,message:r}=t;t.logLevel=rc(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let o=typeof t.message;return Nr(o==="string"||o==="object"),Object.assign(t,{args:n},t.opts)}var Zt=()=>{},ys=class{constructor({level:e=0}={}){this.userData={},this._onceCache=new Set,this._level=e}set level(e){this.setLevel(e)}get level(){return this.getLevel()}setLevel(e){return this._level=e,this}getLevel(){return this._level}warn(e,...r){return this._log("warn",0,e,r,{once:!0})}error(e,...r){return this._log("error",0,e,r)}log(e,r,...n){return this._log("log",e,r,n)}info(e,r,...n){return this._log("info",e,r,n)}once(e,r,...n){return this._log("once",e,r,n,{once:!0})}_log(e,r,n,o,s={}){let i=np({logLevel:r,message:n,args:this._buildArgs(r,n,o),opts:s});return this._createLogFunction(e,i,s)}_buildArgs(e,r,n){return[e,r,...n]}_createLogFunction(e,r,n){if(!this._shouldLog(r.logLevel))return Zt;let o=this._getOnceTag(n.tag??r.tag??r.message);if((n.once||r.once)&&o!==void 0){if(this._onceCache.has(o))return Zt;this._onceCache.add(o)}return this._emit(e,r)}_shouldLog(e){return this.getLevel()>=rc(e)}_getOnceTag(e){if(e!==void 0)try{return typeof e=="string"?e:String(e)}catch{return}}};function $T(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var Ss=class{constructor(e,r,n="sessionStorage"){this.storage=$T(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function op(t){let e;return t<10?e=`${t.toFixed(2)}ms`:t<100?e=`${t.toFixed(1)}ms`:t<1e3?e=`${t.toFixed(0)}ms`:e=`${(t/1e3).toFixed(2)}s`,e}function sp(t,e=8){let r=Math.max(e-t.length,0);return`${" ".repeat(r)}${t}`}var _s;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(_s||(_s={}));var ey=10;function ip(t){return typeof t!="string"?t:(t=t.toUpperCase(),_s[t]||_s.WHITE)}function ap(t,e,r){return!Qt&&typeof t=="string"&&(e&&(t=`\x1B[${ip(e)}m${t}\x1B[39m`),r&&(t=`\x1B[${ip(r)+ey}m${t}\x1B[49m`)),t}function cp(t,e=["constructor"]){let r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),o=t;for(let s of n){let i=o[s];typeof i=="function"&&(e.find(a=>s===a)||(o[s]=i.bind(t)))}}function Or(){let t;if(Qt()&&xs.performance)t=xs?.performance?.now?.();else if("hrtime"in Ts){let e=Ts?.hrtime?.();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var Ur={debug:Qt()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},nc={enabled:!0,level:0},ut=class extends ys{constructor({id:e}={id:""}){super({level:0}),this.VERSION=tc,this._startTs=Or(),this._deltaTs=Or(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new Ss(`__probe-${this.id}__`,{[this.id]:nc}),this.timeStamp(`${this.id} started`),cp(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((Or()-this._startTs).toPrecision(10))}getDelta(){return Number((Or()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._updateConfiguration({enabled:e}),this}setLevel(e){return this._updateConfiguration({level:e}),this}get(e){return this._getConfiguration()[e]}set(e,r){this._updateConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){if(!e)throw new Error(r||"Assertion failed")}warn(e,...r){return this._log("warn",0,e,r,{method:Ur.warn,once:!0})}error(e,...r){return this._log("error",0,e,r,{method:Ur.error})}deprecated(e,r){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(e,r){return this.error(`\`${e}\` has been removed. Use \`${r}\` instead`)}probe(e,r,...n){return this._log("log",e,r,n,{method:Ur.log,time:!0,once:!0})}log(e,r,...n){return this._log("log",e,r,n,{method:Ur.debug})}info(e,r,...n){return this._log("info",e,r,n,{method:console.info})}once(e,r,...n){return this._log("once",e,r,n,{method:Ur.debug||Ur.info,once:!0})}table(e,r,n){return r?this._log("table",e,r,n&&[n]||[],{method:console.table||Zt,tag:ry(r)}):Zt}time(e,r){return this._log("time",e,r,[],{method:console.time?console.time:console.info})}timeEnd(e,r){return this._log("time",e,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(e,r){return this._log("time",e,r,[],{method:console.timeStamp||Zt})}group(e,r,n={collapsed:!1}){let o=(n.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",e,r,[],{method:o})}groupCollapsed(e,r,n={}){return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._log("groupEnd",e,"",[],{method:console.groupEnd||Zt})}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&super._shouldLog(e)}_emit(e,r){let n=r.method;Nr(n),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=Or();let o=ty(this.id,r.message,r);return n.bind(console,o,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(nc),this._storage.config[this.id]}_updateConfiguration(e){let r=this._storage.config[this.id]||{...nc};this._storage.setConfiguration({[this.id]:{...r,...e}})}};ut.VERSION=tc;function ty(t,e,r){if(typeof e=="string"){let n=r.time?sp(op(r.total)):"";e=r.time?`${t}: ${n} ${e}`:`${t}: ${e}`,e=ap(e,r.color,r.background)}return e}function ry(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}globalThis.probe={};var oc=new ut({id:"@probe.gl/log"});var sc="4.4.3",ny=sc[0]>="0"&&sc[0]<="9"?`v${sc}`:"";function oy(){let t=new ut({id:"loaders.gl"});return globalThis.loaders||={},globalThis.loaders.log=t,globalThis.loaders.version=ny,globalThis.probe||={},globalThis.probe.loaders=t,t}var ic=oy();var lp=t=>typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer;function Ln(t,e){return fp(t||{},e)}function fp(t,e,r=0){if(r>3)return e;let n={...t};for(let[o,s]of Object.entries(e))s&&typeof s=="object"&&!Array.isArray(s)?n[o]=fp(n[o]||{},e[o],r+1):n[o]=e[o];return n}function ac(t){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,t)}function cc(t){return globalThis.loaders?.modules?.[t]||null}function sy(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.3"),globalThis._loadersgl_.version}var up=sy();function hp(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}var rt={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},gL=rt.self||rt.window||rt.global||{},bL=rt.window||rt.self||rt.global||{},AL=rt.global||rt.self||rt.window||{},xL=rt.document||{};var ht=typeof process!="object"||String(process)!=="[object process]"||process.browser,Fn=typeof importScripts=="function",TL=typeof window<"u"&&typeof window.orientation<"u",pp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),yL=pp&&parseFloat(pp[1])||0;var lc={};function Pn(t={}){let e=t.useLocalLibraries??t.core?.useLocalLibraries,r=t.CDN??t.core?.CDN,n=t.modules;return{...e!==void 0?{useLocalLibraries:e}:{},...r!==void 0?{CDN:r}:{},...n!==void 0?{modules:n}:{}}}async function Ne(t,e=null,r={},n=null){return e&&(t=dp(t,e,r,n)),lc[t]=lc[t]||iy(t),await lc[t]}function dp(t,e,r={},n=null){if(r?.core)throw new Error("loadLibrary: options.core must be pre-normalized");if(!r.useLocalLibraries&&t.startsWith("http"))return t;n=n||t;let o=r.modules||{};return o[n]?o[n]:ht?r.CDN?(hp(r.CDN.startsWith("http")),`${r.CDN}/${e}@${up}/dist/libs/${n}`):Fn?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function iy(t){if(t.endsWith("wasm"))return await cy(t);if(!ht){let{requireFromFile:r}=globalThis.loaders||{};try{let n=await r?.(t);return n||!t.includes("/dist/libs/")?n:await r?.(t.replace("/dist/libs/","/src/libs/"))}catch(n){if(t.includes("/dist/libs/"))try{return await r?.(t.replace("/dist/libs/","/src/libs/"))}catch{}return console.error(n),null}}if(Fn)return importScripts(t);let e=await ly(t);return ay(e,t)}function ay(t,e){if(!ht){let{requireFromString:n}=globalThis.loaders||{};return n?.(t,e)}if(Fn)return eval.call(globalThis,t),null;let r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch{r.text=t}return document.body.appendChild(r),null}async function cy(t){let{readFileAsArrayBuffer:e}=globalThis.loaders||{};if(ht||!e||t.startsWith("http"))return await(await fetch(t)).arrayBuffer();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load ArrayBuffer from ${t}`)}}async function ly(t){let{readFileAsText:e}=globalThis.loaders||{};if(ht||!e||t.startsWith("http"))return await(await fetch(t)).text();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load text from ${t}`)}}function gp(t,e=5){return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?mp(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?mp(t,0,e):""}function mp(t,e,r){if(t.byteLength<=e+r)return"";let n=new DataView(t),o="";for(let s=0;s<r;s++)o+=String.fromCharCode(n.getUint8(e+s));return o}function fc(t){try{return JSON.parse(t)}catch{throw new Error(`Failed to parse JSON from data starting with "${gp(t)}"`)}}function Nn(...t){let e=t,r=e&&e.length>1&&e[0].constructor||null;if(!r)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let n=e.reduce((i,a)=>i+a.length,0),o=new r(n),s=0;for(let i of e)o.set(i,s),s+=i.length;return o}function $t(t,e,r){let n=r!==void 0?new Uint8Array(t).subarray(e,e+r):new Uint8Array(t).subarray(e);return new Uint8Array(n).buffer}function vt(t,e){return k(t>=0),k(e>0),t+(e-1)&~(e-1)}function uc(t,e,r){let n;if(t instanceof ArrayBuffer)n=new Uint8Array(t);else{let o=t.byteOffset,s=t.byteLength;n=new Uint8Array(t.buffer||t.arrayBuffer,o,s)}return e.set(n,r),r+vt(n.byteLength,4)}function On(){let t;if(typeof window<"u"&&window.performance)t=window.performance.now();else if(typeof process<"u"&&process.hrtime){let e=process.hrtime();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var er=class{constructor(e,r){this.sampleSize=1,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.name=e,this.type=r,this.reset()}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}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=On(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(On()-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}_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)}};var Rt=class{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,r="count"){return this._getOrCreate({name:e,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let e of Object.values(this.stats))e.reset();return this}forEach(e){for(let r of Object.values(this.stats))e(r)}getTable(){let e={};return this.forEach(r=>{e[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),e}_initializeStats(e=[]){e.forEach(r=>this._getOrCreate(r))}_getOrCreate(e){let{name:r,type:n}=e,o=this.stats[r];return o||(e instanceof er?o=e:o=new er(r,n),this.stats[r]=o),o}};var fy="Queued Requests",uy="Active Requests",hy="Cancelled Requests",py="Queued Requests Ever",dy="Active Requests Ever",my={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},wt=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...my,...e},this.stats=new Rt({id:this.props.id}),this.stats.get(fy),this.stats.get(uy),this.stats.get(hy),this.stats.get(py),this.stats.get(dy)}setProps(e){e.throttleRequests!==void 0&&(this.props.throttleRequests=e.throttleRequests),e.maxRequests!==void 0&&(this.props.maxRequests=e.maxRequests),e.debounceTime!==void 0&&(this.props.debounceTime=e.debounceTime)}scheduleRequest(e,r=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);let n={handle:e,priority:0,getPriority:r},o=new Promise(s=>(n.resolve=s,n));return this.requestQueue.push(n),this.requestMap.set(e,o),this._issueNewRequests(),o}_issueRequest(e){let{handle:r,resolve:n}=e,o=!1,s=()=>{o||(o=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(e!==0){this._updateAllRequests();for(let r=0;r<e;++r){let n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){let e=this.requestQueue;for(let r=0;r<e.length;++r){let n=e[r];this._updateRequest(n)||(e.splice(r,1),this.requestMap.delete(n.handle),r--)}e.sort((r,n)=>r.priority-n.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),e.priority<0?(e.resolve(null),!1):!0}};var gy="",bp={};function Ap(t){for(let e in bp)if(t.startsWith(e)){let r=bp[e];t=t.replace(e,r)}return!t.startsWith("http://")&&!t.startsWith("https://")&&(t=`${gy}${t}`),t}function Lt(t){if(t instanceof ArrayBuffer)return t;if(lp(t))return Un(t);let{buffer:e,byteOffset:r,byteLength:n}=t;return e instanceof ArrayBuffer&&r===0&&n===e.byteLength?e:Un(e,r,n)}function Un(t,e=0,r=t.byteLength-e){let n=new Uint8Array(t,e,r),o=new Uint8Array(n.length);return o.set(n),o.buffer}var Ft={};pe(Ft,{dirname:()=>Ay,filename:()=>by,join:()=>xy,resolve:()=>Ty});function xp(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let t=window.location?.pathname;return t?.slice(0,t.lastIndexOf("/")+1)||""}function by(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(e+1):t}function Ay(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(0,e):""}function xy(...t){return t=t.map((r,n)=>(n&&(r=r.replace(new RegExp("^/"),"")),n!==t.length-1&&(r=r.replace(new RegExp("/$"),"")),r)),t.join("/")}function Ty(...t){let e=[];for(let s=0;s<t.length;s++)e[s]=t[s];let r="",n=!1,o;for(let s=e.length-1;s>=-1&&!n;s--){let i;s>=0?i=e[s]:(o===void 0&&(o=xp()),i=o),i.length!==0&&(r=`${i}/${r}`,n=i.charCodeAt(0)===Dn)}return r=yy(r,!n),n?`/${r}`:r.length>0?r:"."}var Dn=47,hc=46;function yy(t,e){let r="",n=-1,o=0,s,i=!1;for(let a=0;a<=t.length;++a){if(a<t.length)s=t.charCodeAt(a);else{if(s===Dn)break;s=Dn}if(s===Dn){if(!(n===a-1||o===1))if(n!==a-1&&o===2){if(r.length<2||!i||r.charCodeAt(r.length-1)!==hc||r.charCodeAt(r.length-2)!==hc){if(r.length>2){let c=r.length-1,l=c;for(;l>=0&&r.charCodeAt(l)!==Dn;--l);if(l!==c){r=l===-1?"":r.slice(0,l),n=a,o=0,i=!1;continue}}else if(r.length===2||r.length===1){r="",n=a,o=0,i=!1;continue}}e&&(r.length>0?r+="/..":r="..",i=!0)}else{let c=t.slice(n+1,a);r.length>0?r+=`/${c}`:r=c,i=!1}n=a,o=0}else s===hc&&o!==-1?++o:o=-1}return r}var Gn=class t{static defaultOptions={core:{type:"auto",attributions:[],loadOptions:{},loaders:[]}};optionsType;options;data;url;loadOptions;fetch;_needsRefresh=!0;constructor(e,r,n){n?this.options=Ln({...n,core:t.defaultOptions},r):this.options={...r},this.data=e,this.url=typeof e=="string"?Ap(e):"",this.loadOptions=_y(this.options.core?.loadOptions),this.fetch=Sy(this.loadOptions)}setProps(e){this.options=Object.assign(this.options,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(e=!0){let r=this._needsRefresh;return e&&(this._needsRefresh=!1),r}};function Sy(t){let e=t?.core?.fetch;if(e&&typeof e=="function")return(n,o)=>e(n,o);let r=t?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}function _y(t){let e={...t};t?.core&&(e.core={...t.core});let r=typeof e.baseUri=="string"?e.baseUri:void 0,n=typeof e.baseUrl=="string"?e.baseUrl:void 0;return(r!==void 0||n!==void 0)&&(e.core||={},e.core.baseUrl===void 0&&(e.core.baseUrl=n??r),delete e.baseUri,delete e.baseUrl),e}var Dr=class{static type="template";static testURL=e=>!1};function Tp(t,e){let r=Je.parseTextSync?.(t,e),n=r?.ServiceExceptionReport?.ServiceException||r?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof n=="string"?n:n.value||n.code||"Unknown error"}var Cy="4.4.3",Vn={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:Cy,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:Ey,options:{wms:{throwOnError:!1}},parse:async(t,e)=>pc(new TextDecoder().decode(t),e),parseSync:(t,e)=>pc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>pc(t,e)};function Ey(t){return t.startsWith("<?xml")}function pc(t,e){let r={...Vn.options.wms,...e?.wms},n=Tp(t,r),o=r.minimalErrors?n:`WMS Service error: ${n}`;if(r.throwOnError)throw new Error(o);return o}function tr(t){return Array.isArray(t)?t:t?[t]:[]}function Hn(t){let e=tr(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function kn(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function Cs(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function rr(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function dc(t,e){let r=Je.parseTextSync?.(t,e),n=r.WMT_MS_Capabilities||r.WMS_Capabilities||r,o=My(n);if(e?.inheritedLayerProps)for(let s of o.layers)Sp(s,null);return e?.includeRawJSON&&(o.json=n),e?.includeXMLText&&(o.xml=t),o}function My(t){let e={version:String(t.version||""),name:String(t.Service?.Name||"unnamed"),title:t.Service?.Title?String(t.Service?.Title):void 0,abstract:t.Service?.Abstract?String(t.Service?.Abstract):void 0,keywords:Hn(t.Service?.KeywordList?.Keyword),fees:t.Service?.Fees?JSON.stringify(t.Service?.Fees):void 0,accessConstraints:t.Service?.AccessConstraints?JSON.stringify(t.Service?.AccessConstraints):void 0,layerLimit:Cs(t.Service?.LayerLimit),maxWidth:Cs(t.Service?.maxWidth),maxHeight:Cs(t.Service?.maxHeight),layers:[],requests:Iy(t.Capability?.Request),exceptions:By(t.Exception)},r=tr(t.Capability?.Layer);for(let n of r)e.layers.push(yp(n));for(let[n,o]of Object.entries(e))o===void 0&&delete e[n];return e}function Iy(t){let e={};for(let[r,n]of Object.entries(t||{})){let o=Hn(n?.Format);e[r]={mimeTypes:o}}return e}function By(t){if(tr(t?.Format).length>0)return{mimeTypes:Hn(t)}}function yp(t){let e={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:Hn(t.KeywordList?.Keyword)},r=t?.CRS||t?.SRS;r&&Array.isArray(r)&&r.every(l=>typeof l=="string")&&(e.crs=r);let n=t?.EX_GeographicBoundingBox&&vy(t?.EX_GeographicBoundingBox);n&&(e.geographicBoundingBox=n),n=t?.LatLonBoundingBox&&Ry(t?.LatLonBoundingBox),n&&(e.geographicBoundingBox=n);let o=t?.BoundingBox&&wy(t?.BoundingBox);o&&o.length>0&&(e.boundingBoxes=o);let i=tr(t?.Dimension).map(l=>Fy(l));i.length&&(e.dimensions=i),t?.opaque&&(e.opaque=rr(t?.opaque)),t?.cascaded&&(e.cascaded=rr(t?.cascaded)),t?.queryable&&(e.queryable=rr(t?.queryable));let a=tr(t?.Layer),c=[];for(let l of a)c.push(yp(l));c.length>0&&(e.layers=c);for(let[l,f]of Object.entries(e))f===void 0&&delete e[l];return e}function vy(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:n,southBoundLatitude:o}=t;return[[e,o],[n,r]]}function Ry(t){let{minx:e,miny:r,maxx:n,maxy:o}=t;return[[e,r],[n,o]]}function wy(t){return tr(t).map(r=>Ly(r))}function Ly(t){let{CRS:e,SRS:r,minx:n,miny:o,maxx:s,maxy:i,resx:a,resy:c}=t,l={crs:e||r,boundingBox:[[kn(n),kn(o)],[kn(s),kn(i)]]};return a&&(l.xResolution=a),c&&(l.yResolution=c),l}function Fy(t){let{name:e,units:r,value:n}=t,o={name:e,units:r,extent:n};return t.unitSymbol&&(o.unitSymbol=t.unitSymbol),t.default&&(o.defaultValue=t.default),t.multipleValues&&(o.multipleValues=rr(t.multipleValues)),t.nearestValue&&(o.nearestValue=rr(t.nearestValue)),t.current&&(o.current=rr(t.current)),o}function Sp(t,e){e?.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!t.crs&&(t.crs=[...e.crs]),e?.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])Sp(r,t)}var Py="4.4.3",Gr={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:Py,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:Ny,options:{wms:{}},parse:async(t,e)=>dc(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>dc(t,e?.wms)};function Ny(t){return t.startsWith("<?xml")}function mc(t,e){let n=(Je.parseTextSync?.(t,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(n)?n:[n]).map(s=>Oy(s))}}function Oy(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var _p={...Gr,dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>mc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>mc(t,e)};function gc(t,e){return Je.parseTextSync?.(t,e)}var Cp={...Gr,dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>gc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>gc(t,e)};var Ep="4.4.3";var Uy=globalThis.loaders?.parseImageNode,bc=typeof Image<"u",Ac=typeof ImageBitmap<"u",Dy=!!Uy,xc=wn?!0:Dy;function Mp(t){switch(t){case"auto":return Ac||bc||xc;case"imagebitmap":return Ac;case"image":return bc;case"data":return xc;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function Ip(){if(Ac)return"imagebitmap";if(bc)return"image";if(xc)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function Bp(t){let e=Gy(t);if(!e)throw new Error("Not an image");return e}function zn(t){switch(Bp(t)){case"data":return t;case"image":case"imagebitmap":let e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("getImageData");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height);default:throw new Error("getImageData")}}function Gy(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&t instanceof Image?"image":t&&typeof t=="object"&&t.data&&t.width&&t.height?"data":null}var Vy=/^data:image\/svg\+xml/,Hy=/\.svg((\?|#).*)?$/;function Es(t){return t&&(Vy.test(t)||Hy.test(t))}function vp(t,e){if(Es(e)){let n=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(s){throw new Error(s.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return Tc(t,e)}function Tc(t,e){if(Es(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function Ms(t,e,r){let n=vp(t,r),o=self.URL||self.webkitURL,s=typeof n!="string"&&o.createObjectURL(n);try{return await ky(s||n,e)}finally{s&&o.revokeObjectURL(s)}}async function ky(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((n,o)=>{try{r.onload=()=>n(r),r.onerror=s=>{let i=s instanceof Error?s.message:"error";o(new Error(i))}}catch(s){o(s)}})}var Rp=!0;async function wp(t,e,r){let n;Es(r)?n=await Ms(t,e,r):n=Tc(t,r);let o=e&&e.imagebitmap;return await zy(n,o)}async function zy(t,e=null){if((jy(e)||!Rp)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),Rp=!1}return await createImageBitmap(t)}function jy(t){if(!t)return!0;for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function Lp(t){return!Xy(t,"ftyp",4)||(t[8]&96)===0?null:qy(t)}function qy(t){switch(Jy(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Jy(t,e,r){return String.fromCharCode(...t.slice(e,r))}function Wy(t){return[...t].map(e=>e.charCodeAt(0))}function Xy(t,e,r=0){let n=Wy(e);for(let o=0;o<n.length;++o)if(n[o]!==t[o+r])return!1;return!0}var nt=!1,jn=!0;function nr(t){let e=qn(t);return Yy(e)||$y(e)||Qy(e)||Zy(e)||Ky(e)}function Ky(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=Lp(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function Yy(t){let e=qn(t);return e.byteLength>=24&&e.getUint32(0,nt)===2303741511?{mimeType:"image/png",width:e.getUint32(16,nt),height:e.getUint32(20,nt)}:null}function Qy(t){let e=qn(t);return e.byteLength>=10&&e.getUint32(0,nt)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,jn),height:e.getUint16(8,jn)}:null}function Zy(t){let e=qn(t);return e.byteLength>=14&&e.getUint16(0,nt)===16973&&e.getUint32(2,jn)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,jn),height:e.getUint32(22,jn)}:null}function $y(t){let e=qn(t);if(!(e.byteLength>=3&&e.getUint16(0,nt)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:o}=eS(),s=2;for(;s+9<e.byteLength;){let i=e.getUint16(s,nt);if(o.has(i))return{mimeType:"image/jpeg",height:e.getUint16(s+5,nt),width:e.getUint16(s+7,nt)};if(!n.has(i))return null;s+=2,s+=e.getUint16(s,nt)}return null}function eS(){let t=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)t.add(r);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function qn(t){if(t instanceof DataView)return t;if(ArrayBuffer.isView(t))return new DataView(t.buffer);if(t instanceof ArrayBuffer)return new DataView(t);throw new Error("toDataView")}async function Fp(t,e){let{mimeType:r}=nr(t)||{},n=globalThis.loaders?.parseImageNode;return k(n),await n(t,r)}async function Pp(t,e,r){e=e||{};let o=(e.image||{}).type||"auto",{url:s}=r||{},i=tS(o),a;switch(i){case"imagebitmap":a=await wp(t,e,s);break;case"image":a=await Ms(t,e,s);break;case"data":a=await Fp(t,e);break;default:k(!1)}return o==="data"&&(a=zn(a)),a}function tS(t){switch(t){case"auto":case"data":return Ip();default:return Mp(t),t}}var rS=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],nS=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],oS={image:{type:"auto",decode:!0}},Vr={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:Ep,mimeTypes:nS,extensions:rS,parse:Pp,tests:[t=>!!nr(new DataView(t))],options:oS};var yc={};function Sc(t){if(yc[t]===void 0){let e=wn?iS(t):sS(t);yc[t]=e}return yc[t]}function sS(t){let e=["image/png","image/jpeg","image/gif"],r=globalThis.loaders?.imageFormatsNode||e;return!!globalThis.loaders?.parseImageNode&&r.includes(t)}function iS(t){switch(t){case"image/avif":case"image/webp":return aS(t);default:return!0}}function aS(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var Bs={name:"Web Map Service (OGC WMS)",id:"wms",module:"wms",version:"0.0.0",extensions:[],mimeTypes:[],type:"wms",fromUrl:!0,fromBlob:!1,defaultOptions:{wms:{}},testURL:t=>t.toLowerCase().includes("wms"),createDataSource:(t,e)=>new Is(t,e)},Is=class extends Gn{substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e,r){super(e,r,Bs.defaultOptions),this.substituteCRS84=r.wms?.substituteCRS84??!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...r.wmsParameters,...r.wms?.wmsParameters},this.vendorParameters=r.wms?.vendorParameters||r.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:n,...o}=e,s={bbox:r?[...r[0],...r[1]]:n,...o};return await this.getMap(s)}normalizeMetadata(e){return e}async getCapabilities(e,r){let n=this.getCapabilitiesURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);let i=await Gr.parse(s,this.loadOptions);return this.capabilities=i,i}async getMap(e,r){let n=this.getMapURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await Vr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}async getFeatureInfo(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await _p.parse(s,this.loadOptions)}async getFeatureInfoText(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),new TextDecoder().decode(s)}async describeLayer(e,r){let n=this.describeLayerURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await Cp.parse(s,this.loadOptions)}async getLegendGraphic(e,r){let n=this.getLegendGraphicURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await Vr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}getCapabilitiesURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",n,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let n={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",n,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let{boundingBox:n,bbox:o}=e;e.bbox=n?[...n[0],...n[1]]:o;let s={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",s,r)}describeLayerURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",n,r)}getLegendGraphicURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",n,r)}_parseWMSUrl(e){let[r,n]=e.split("?"),o=n.split("&"),s={};for(let i of o){let[a,c]=i.split("=");s[a]=c}return{url:r,parameters:s}}_getWMSUrl(e,r,n){let o=this.url,s=!0,i={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...n},a=["transparent","time","elevation"];for(let[c,l]of Object.entries(i))(!a.includes(c)||l)&&(o+=s?"?":"&",s=!1,o+=this._getURLParameter(c,l,r));return encodeURI(o)}_getWMS130Parameters(e){let r={...e};return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,n){switch(e){case"crs":n.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case"srs":n.version==="1.3.0"&&(e="crs");break;case"bbox":let o=this._flipBoundingBox(r,n);o&&(r=o);break;case"x":n.version==="1.3.0"&&(e="i");break;case"y":n.version==="1.3.0"&&(e="j");break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(",")}`:`${e}=${r?String(r):""}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let n=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),o=e;return n?[o[1],o[0],o[3],o[2]]:o}async _fetchArrayBuffer(e){let r=await this.fetch(e),n=await r.arrayBuffer();return this._checkResponse(r,n),n}_checkResponse(e,r){let n=e.headers["content-type"];if(!e.ok||Vn.mimeTypes.includes(n)){let o=Ln(this.loadOptions,{wms:{throwOnError:!0}}),s=Vn.parseSync?.(r,o);throw new Error(s)}}_parseError(e){let r=Vn.parseSync?.(e,this.options.core?.loadOptions);return new Error(r)}};function vs(t,e){if(!t)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var We=Math.PI,Dp=We/4,Np=We/180,Op=180/We,Rs=512;function pt(t){let[e,r]=t;vs(Number.isFinite(e)),vs(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=e*Np,o=r*Np,s=Rs*(n+We)/(2*We),i=Rs*(We+Math.log(Math.tan(Dp+o*.5)))/(2*We);return[s,i]}function dt(t){let[e,r]=t,n=e/Rs*(2*We)-We,o=2*(Math.atan(Math.exp(r/Rs*(2*We)-We))-Dp);return[n*Op,o*Op]}var nN=Math.PI/180;var Vp=6378137*Math.PI;function _c(t){let e=pt(t);return e[0]=(e[0]/256-1)*Vp,e[1]=(e[1]/256-1)*Vp,e}var _S={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(t,e)=>console.error(e,t)}},Hr=class extends or.CompositeLayer{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:r,oldProps:n}){let{viewport:o}=this.context;e.dataChanged||r.serviceType!==n.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(o,"image source changed"),0)):(0,or._deepEqual)(r.layers,n.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(o,"viewport changed")):this.debounce(()=>this.loadImage(o,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:n}=this.state;return r&&new Hp.BitmapLayer({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:n.srs==="EPSG:4326"?or.COORDINATE_SYSTEM.LNGLAT:or.COORDINATE_SYSTEM.CARTESIAN,bounds:e,image:r})}async getFeatureInfoText(e,r){let{lastRequestParameters:n}=this.state;return n?await this.state.imageSource.getFeatureInfoText?.({...n,query_layers:n.layers,x:e,y:r,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof Dr)return e.data;if(typeof e.data=="string")return(0,kp.createDataSource)(e.data,[Bs],{core:{type:e.serviceType,loadOptions:e.loadOptions}});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:e}=this.state;try{this.state.loadCounter++;let r=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(r)}catch(r){this.getCurrentLayer()?.props.onMetadataLoadError(r)}finally{this.state.loadCounter--}}async loadImage(e,r){let{layers:n,serviceType:o}=this.props;if(o==="wms"&&n.length===0)return;let s=e.getBounds(),{width:i,height:a}=e,c=this.getRequestId(),{srs:l}=this.props;l==="auto"&&(l=e.resolution?"EPSG:4326":"EPSG:3857");let f={width:i,height:a,boundingBox:[[s[0],s[1]],[s[2],s[3]]],layers:n,crs:l};if(l==="EPSG:3857"){let u=_c([s[0],s[1]]),h=_c([s[2],s[3]]);f.boundingBox=[u,h]}try{this.state.loadCounter++,this.props.onImageLoadStart(c);let u=await this.state.imageSource.getImage(f);this.state.lastRequestId<c&&(this.getCurrentLayer()?.props.onImageLoad(c),this.setState({image:u,bounds:s,lastRequestParameters:f,lastRequestId:c}))}catch(u){this.raiseError(u,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(c,u)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}};Hr.layerName="WMSLayer";Hr.defaultProps=_S;var zp=D(ke(),1),CS={getHeight:{type:"accessor",value:0},greatCircle:!0},Jn=class extends zp.ArcLayer{};Jn.layerName="GreatCircleLayer";Jn.defaultProps=CS;var jp=Jn;var ws=D(Cc(),1),ES=3,MS=30,IS=2*MS+1,Jp=180/Math.PI;function Xp(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function Wp(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Kp(t){return[Wp(t[0]),Wp(t[1])]}function Yp(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function Qp([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*Jp,n*Jp]}function Zp(t){let e=ws.default.fromString(t,!0,10).toString(2);for(;e.length<ES+IS;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=ws.default.fromString(n,!0,2).toString(10),a=ws.default.fromString(o,!0,2).toString(4);for(;a.length<s;)a="0"+a;return`${i}/${a}`}function BS(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function $p(t){let e=t.split("/"),r=parseInt(e[0],10),n=e[1],o=n.length,s=[0,0],i;for(let a=o-1;a>=0;a--){i=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,i-1);BS(u,s,l,f),s[0]+=u*l,s[1]+=u*f}if(r%2===1){let a=s[0];s[0]=s[1],s[1]=a}return{face:r,ij:s,level:i}}var ed=D(Cc(),1);function vS(t){let e=t.padEnd(16,"0");return ed.default.fromString(e,16)}var RS=100;function wS({face:t,ij:e,level:r}){let n=[[0,0],[0,1],[1,1],[1,0],[0,0]],o=Math.max(1,Math.ceil(RS*Math.pow(2,-r))),s=new Float64Array(4*o*2+2),i=0,a=0;for(let c=0;c<4;c++){let l=n[c].slice(0),f=n[c+1],u=(f[0]-l[0])/o,h=(f[1]-l[1])/o;for(let p=0;p<o;p++){l[0]+=u,l[1]+=h;let d=Xp(e,r,l),m=Kp(d),b=Yp(t,m),x=Qp(b);Math.abs(x[1])>89.999&&(x[0]=a);let y=x[0]-a;x[0]+=y>180?-360:y<-180?360:0,s[i++]=x[0],s[i++]=x[1],a=x[0]}}return s[i++]=s[0],s[i++]=s[1],s}function LS(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=vS(t)}return Zp(t.toString())}function td(t){let e=LS(t),r=$p(e);return wS(r)}var FS={getS2Token:{type:"accessor",value:t=>t.token}},Xn=class extends Fe{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>td(r(n,o))}}};Xn.layerName="S2Layer";Xn.defaultProps=FS;var rd=Xn;var Ec=512;function PS(t,e){let r=0,n=0,o=1<<t.length,s=o/Ec;for(let i=0;i<t.length;i++){o>>=1;let a=parseInt(t[i]);a%2&&(r|=o),a>1&&(n|=o)}return[[r/s,Ec-n/s],[(r+e)/s,Ec-(n+e)/s]]}function nd(t,e=1){let[r,n]=PS(t,e),[o,s]=dt(r),[i,a]=dt(n);return[i,s,i,a,o,a,o,s,i,s]}var NS={getQuadkey:{type:"accessor",value:t=>t.quadkey}},Kn=class extends Fe{indexToBounds(){let{data:e,extruded:r,getQuadkey:n}=this.props,o=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(s,i)=>nd(n(s,i),o),updateTriggers:{getPolygon:o}}}};Kn.layerName="QuadkeyLayer";Kn.defaultProps=NS;var od=Kn;var Ds=D(ze(),1),Cd=D(ke(),1);var sr=class{constructor(e){this.index=e,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 bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}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(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,getRequestPriority:r,requestScheduler:n,onLoad:o,onError:s}){let{index:i,id:a,bbox:c,userData:l,zoom:f}=this,u=this._loaderId;this._abortController=new AbortController;let{signal:h}=this._abortController,p=await n.scheduleRequest(this,r);if(!p){this._isCancelled=!0;return}if(this._isCancelled){p.done();return}let d=null,m;try{d=await e({index:i,id:a,bbox:c,userData:l,zoom:f,signal:h})}catch(b){m=b||!0}finally{p.done()}if(u===this._loaderId){if(this._loader=void 0,this.content=d,this._isCancelled&&!d){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,m?s(m,this):o(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}};var Zn=D(ze(),1);var se={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var sd=new S,OS=new S,kr=class t{constructor(e=[0,0,0],r=[0,0,0],n){n=n||sd.copy(e).add(r).scale(.5),this.center=new S(n),this.halfDiagonal=new S(r).subtract(this.center),this.minimum=new S(e),this.maximum=new S(r)}clone(){return new t(this.minimum,this.maximum,this.center)}equals(e){return this===e||!!e&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,n=OS.from(e.normal),o=r.x*Math.abs(n.x)+r.y*Math.abs(n.y)+r.z*Math.abs(n.z),s=this.center.dot(n)+e.distance;return s-o>0?se.INSIDE:s+o<0?se.OUTSIDE:se.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=sd.from(e).subtract(this.center),{halfDiagonal:n}=this,o=0,s;return s=Math.abs(r.x)-n.x,s>0&&(o+=s*s),s=Math.abs(r.y)-n.y,s>0&&(o+=s*s),s=Math.abs(r.z)-n.z,s>0&&(o+=s*s),o}};var Yn=new S,id=new S,ot=class t{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new S,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=Yn.from(r),this.center=new S().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new t(this.center,this.radius)}union(e){let r=this.center,n=this.radius,o=e.center,s=e.radius,i=Yn.copy(o).subtract(r),a=i.magnitude();if(n>=a+s)return this.clone();if(s>=a+n)return e.clone();let c=(n+a+s)*.5;return id.copy(i).scale((-n+c)/a).add(r),this.center.copy(id),this.radius=c,this}expand(e){let n=Yn.from(e).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(e){this.center.transform(e);let r=fs.getScaling(Yn,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let n=Yn.from(e).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(e){let r=this.center,n=this.radius,s=e.normal.dot(r)+e.distance;return s<-n?se.OUTSIDE:s<n?se.INTERSECTING:se.INSIDE}};var US=new S,DS=new S,Ls=new S,Fs=new S,Ps=new S,GS=new S,VS=new S,mt={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},gt=class t{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new S().from(e),this.halfAxes=new z(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new S(e).len(),new S(r).len(),new S(n).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),o=new S(e).normalize(),s=new S(r).normalize(),i=new S(n).normalize();return new et().fromMatrix3(new z([...o,...s,...i]))}fromCenterHalfSizeQuaternion(e,r,n){let o=new et(n),s=new z().fromQuaternion(o);return s[0]=s[0]*r[0],s[1]=s[1]*r[0],s[2]=s[2]*r[0],s[3]=s[3]*r[1],s[4]=s[4]*r[1],s[5]=s[5]*r[1],s[6]=s[6]*r[2],s[7]=s[7]*r[2],s[8]=s[8]*r[2],this.center=new S().from(e),this.halfAxes=s,this}clone(){return new t(this.center,this.halfAxes)}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new ot){let r=this.halfAxes,n=r.getColumn(0,Ls),o=r.getColumn(1,Fs),s=r.getColumn(2,Ps),i=US.copy(n).add(o).add(s);return e.center.copy(this.center),e.radius=i.magnitude(),e}intersectPlane(e){let r=this.center,n=e.normal,o=this.halfAxes,s=n.x,i=n.y,a=n.z,c=Math.abs(s*o[mt.COLUMN0ROW0]+i*o[mt.COLUMN0ROW1]+a*o[mt.COLUMN0ROW2])+Math.abs(s*o[mt.COLUMN1ROW0]+i*o[mt.COLUMN1ROW1]+a*o[mt.COLUMN1ROW2])+Math.abs(s*o[mt.COLUMN2ROW0]+i*o[mt.COLUMN2ROW1]+a*o[mt.COLUMN2ROW2]),l=n.dot(r)+e.distance;return l<=-c?se.OUTSIDE:l>=c?se.INSIDE:se.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=DS.from(e).subtract(this.center),n=this.halfAxes,o=n.getColumn(0,Ls),s=n.getColumn(1,Fs),i=n.getColumn(2,Ps),a=o.magnitude(),c=s.magnitude(),l=i.magnitude();o.normalize(),s.normalize(),i.normalize();let f=0,u;return u=Math.abs(r.dot(o))-a,u>0&&(f+=u*u),u=Math.abs(r.dot(s))-c,u>0&&(f+=u*u),u=Math.abs(r.dot(i))-l,u>0&&(f+=u*u),f}computePlaneDistances(e,r,n=[-0,-0]){let o=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,i=this.center,a=this.halfAxes,c=a.getColumn(0,Ls),l=a.getColumn(1,Fs),f=a.getColumn(2,Ps),u=GS.copy(c).add(l).add(f).add(i),h=VS.copy(u).subtract(e),p=r.dot(h);return o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),n[0]=o,n[1]=s,n}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,Ls);r.transformAsPoint(e);let n=this.halfAxes.getColumn(1,Fs);n.transformAsPoint(e);let o=this.halfAxes.getColumn(2,Ps);return o.transformAsPoint(e),this.halfAxes=new z([...r,...n,...o]),this}getTransform(){throw new Error("not implemented")}};var ad=new S,cd=new S,de=class t{constructor(e=[0,0,1],r=0){this.normal=new S,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return fe(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=ad.from(e),this.normal.from(r).normalize();let n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,r,n,o){return this.normal.set(e,r,n),fe(xe(this.normal.len(),1)),this.distance=o,this}clone(){return new t(this.normal,this.distance)}equals(e){return xe(this.distance,e.distance)&&xe(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=cd.copy(this.normal).transformAsVector(e).normalize(),n=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(n,r)}projectPointOntoPlane(e,r=[0,0,0]){let n=ad.from(e),o=this.getPointDistance(n),s=cd.copy(this.normal).scale(o);return n.subtract(s).to(r)}};var ld=[new S([1,0,0]),new S([0,1,0]),new S([0,0,1])],fd=new S,HS=new S,ye=class t{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*ld.length;let r=e.center,n=e.radius,o=0;for(let s of ld){let i=this.planes[o],a=this.planes[o+1];i||(i=this.planes[o]=new de),a||(a=this.planes[o+1]=new de);let c=fd.copy(s).scale(-n).add(r);i.fromPointNormal(c,s);let l=fd.copy(s).scale(n).add(r),f=HS.copy(s).negate();a.fromPointNormal(l,f),o+=2}return this}computeVisibility(e){let r=se.INSIDE;for(let n of this.planes)switch(e.intersectPlane(n)){case se.OUTSIDE:return se.OUTSIDE;case se.INTERSECTING:r=se.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(fe(Number.isFinite(r),"parentPlaneMask is required."),r===t.MASK_OUTSIDE||r===t.MASK_INSIDE)return r;let n=t.MASK_INSIDE,o=this.planes;for(let s=0;s<this.planes.length;++s){let i=s<31?1<<s:0;if(s<31&&(r&i)===0)continue;let a=o[s],c=e.intersectPlane(a);if(c===se.OUTSIDE)return t.MASK_OUTSIDE;c===se.INTERSECTING&&(n|=i)}return n}};ye.MASK_OUTSIDE=4294967295;ye.MASK_INSIDE=0;ye.MASK_INDETERMINATE=2147483647;var xO=new S,TO=new S,yO=new S,SO=new S,_O=new S;var vO=new S,RO=new S,wO=new S,LO=new S,FO=new S,PO=new S,NO=new S,OO=new S,UO=new S,DO=new S,GO=new S,VO=new S;var st=new z,zS=new z,jS=new z,Ns=new z,ud=new z;function Bc(t,e={}){let r=qe.EPSILON20,n=10,o=0,s=0,i=zS,a=jS;i.identity(),a.copy(t);let c=r*qS(a);for(;s<n&&JS(a)>c;)WS(a,Ns),ud.copy(Ns).transpose(),a.multiplyRight(Ns),a.multiplyLeft(ud),i.multiplyRight(Ns),++o>2&&(++s,o=0);return e.unitary=i.toTarget(e.unitary),e.diagonal=a.toTarget(e.diagonal),e}function qS(t){let e=0;for(let r=0;r<9;++r){let n=t[r];e+=n*n}return Math.sqrt(e)}var Mc=[1,0,0],Ic=[2,2,1];function JS(t){let e=0;for(let r=0;r<3;++r){let n=t[st.getElementIndex(Ic[r],Mc[r])];e+=2*n*n}return Math.sqrt(e)}function WS(t,e){let r=qe.EPSILON15,n=0,o=1;for(let l=0;l<3;++l){let f=Math.abs(t[st.getElementIndex(Ic[l],Mc[l])]);f>n&&(o=l,n=f)}let s=Mc[o],i=Ic[o],a=1,c=0;if(Math.abs(t[st.getElementIndex(i,s)])>r){let l=t[st.getElementIndex(i,i)],f=t[st.getElementIndex(s,s)],u=t[st.getElementIndex(i,s)],h=(l-f)/2/u,p;h<0?p=-1/(-h+Math.sqrt(1+h*h)):p=1/(h+Math.sqrt(1+h*h)),a=1/Math.sqrt(1+p*p),c=p*a}return z.IDENTITY.to(e),e[st.getElementIndex(s,s)]=e[st.getElementIndex(i,i)]=a,e[st.getElementIndex(i,s)]=c,e[st.getElementIndex(s,i)]=-c,e}var Pt=new S,XS=new S,KS=new S,YS=new S,QS=new S,ZS=new z,$S={diagonal:new z,unitary:new z};function Qn(t,e=new gt){if(!t||t.length===0)return e.halfAxes=new z([0,0,0,0,0,0,0,0,0]),e.center=new S,e;let r=t.length,n=new S(0,0,0);for(let A of t)n.add(A);let o=1/r;n.multiplyByScalar(o);let s=0,i=0,a=0,c=0,l=0,f=0;for(let A of t){let g=Pt.copy(A).subtract(n);s+=g.x*g.x,i+=g.x*g.y,a+=g.x*g.z,c+=g.y*g.y,l+=g.y*g.z,f+=g.z*g.z}s*=o,i*=o,a*=o,c*=o,l*=o,f*=o;let u=ZS;u[0]=s,u[1]=i,u[2]=a,u[3]=i,u[4]=c,u[5]=l,u[6]=a,u[7]=l,u[8]=f;let{unitary:h}=Bc(u,$S),p=e.halfAxes.copy(h),d=p.getColumn(0,KS),m=p.getColumn(1,YS),b=p.getColumn(2,QS),x=-Number.MAX_VALUE,y=-Number.MAX_VALUE,_=-Number.MAX_VALUE,T=Number.MAX_VALUE,M=Number.MAX_VALUE,E=Number.MAX_VALUE;for(let A of t)Pt.copy(A),x=Math.max(Pt.dot(d),x),y=Math.max(Pt.dot(m),y),_=Math.max(Pt.dot(b),_),T=Math.min(Pt.dot(d),T),M=Math.min(Pt.dot(m),M),E=Math.min(Pt.dot(b),E);d=d.multiplyByScalar(.5*(T+x)),m=m.multiplyByScalar(.5*(M+y)),b=b.multiplyByScalar(.5*(E+_)),e.center.copy(d).add(m).add(b);let I=XS.set(x-T,y-M,_-E).multiplyByScalar(.5),C=new z([I[0],0,0,0,I[1],0,0,0,I[2]]);return e.halfAxes.multiplyRight(C),e}var zr=512,hd=3,pd=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],dd=pd.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),e_=dd.concat([[.25,.5],[.75,.5]]),vc=class t{constructor(e,r,n){this.x=e,this.y=r,this.z=n}get children(){if(!this._children){let e=this.x*2,r=this.y*2,n=this.z+1;this._children=[new t(e,r,n),new t(e,r+1,n),new t(e+1,r,n),new t(e+1,r+1,n)]}return this._children}update(e){let{viewport:r,cullingVolume:n,elevationBounds:o,minZ:s,maxZ:i,bounds:a,offset:c,project:l}=e,f=this.getBoundingVolume(o,c,l);if(a&&!this.insideBounds(a)||n.computeVisibility(f)<0||l&&this.beyondHorizon(r.cameraPosition,l,o[1]))return!1;if(!this.childVisible){let{z:h}=this;if(h<i&&h>=s){let p=f.distanceTo(r.cameraPosition)*r.scale/r.height;h+=Math.floor(Math.log2(p))}if(h>=i)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let h of this.children)h.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}beyondHorizon(e,r,n){let o=e[0],s=e[1],i=e[2],a=Math.sqrt(o*o+s*s+i*i),c=Math.atan2(o,-s)*180/Math.PI,l=Math.asin(i/a)*180/Math.PI,[f,u]=jr(this.x,this.y,this.z),[h,p]=jr(this.x+1,this.y+1,this.z),d=(f+h)/2,m=d+((c-d+540)%360-180),b=Math.max(f,Math.min(m,h)),x=Math.max(p,Math.min(l,u)),y=r([b,x,n]),_=y[0]*o+y[1]*s+y[2]*i,T=y[0]*y[0]+y[1]*y[1]+y[2]*y[2];return _<=T}insideBounds([e,r,n,o]){let s=Math.pow(2,this.z),i=zr/s;return this.x*i<n&&this.y*i<o&&(this.x+1)*i>e&&(this.y+1)*i>r}getBoundingVolume(e,r,n){if(n){let c=this.z<1?e_:this.z<2?dd:pd,l=[];for(let f of c){let u=jr(this.x+f[0],this.y+f[1],this.z);u[2]=e[0],l.push(n(u)),e[0]!==e[1]&&(u[2]=e[1],l.push(n(u)))}return Qn(l)}let o=Math.pow(2,this.z),s=zr/o,i=this.x*s+r*zr,a=zr-(this.y+1)*s;return new kr([i,a,e[0]],[i+s,a+s,e[1]])}};function md(t,e,r,n){let o=t instanceof Zn._GlobeViewport?t.projectPosition:null,s=Object.values(t.getFrustumPlanes()).map(({normal:p,distance:d})=>new de(p.clone().negate(),d)),i=new ye(s),a=t.distanceScales.unitsPerMeter[2],c=r&&r[0]*a||0,l=r&&r[1]*a||0,f=t instanceof Zn.WebMercatorViewport&&t.pitch<=60?e:0;if(n){let[p,d,m,b]=n,x=pt([p,b]),y=pt([m,d]);n=[x[0],zr-x[1],y[0],zr-y[1]]}let u=new vc(0,0,0),h={viewport:t,project:o,cullingVolume:i,elevationBounds:[c,l],minZ:f,maxZ:e,bounds:n,offset:0};if(u.update(h),t instanceof Zn.WebMercatorViewport&&t.subViewports&&t.subViewports.length>1){for(h.offset=-1;u.update(h)&&!(--h.offset<-hd););for(h.offset=1;u.update(h)&&!(++h.offset>hd););}return u.getSelected()}var bt=512,t_=[-1/0,-1/0,1/0,1/0],Nt={type:"object",value:null,validate:(t,e)=>e.optional&&t===null||typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}};function Os(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(o=>o[0])),Math.min(...r.map(o=>o[1])),Math.max(...r.map(o=>o[0])),Math.max(...r.map(o=>o[1]))]}function r_(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function it(t,e){if(!t||!t.length)return null;let{index:r,id:n}=e;if(Array.isArray(t)){let s=r_(n)%t.length;t=t[s]}let o=t;for(let s of Object.keys(r)){let i=new RegExp(`{${s}}`,"g");o=o.replace(i,String(r[s]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(o=o.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),o}function n_(t,e,r){let n;if(e&&e.length===2){let[o,s]=e,i=t.getBounds({z:o}),a=t.getBounds({z:s});n=[Math.min(i[0],a[0]),Math.min(i[1],a[1]),Math.max(i[2],a[2]),Math.max(i[3],a[3])]}else n=t.getBounds();return t.isGeospatial?[Math.max(n[0],r[0]),Math.max(n[1],r[1]),Math.min(n[2],r[2]),Math.min(n[3],r[3])]:[Math.max(Math.min(n[0],r[2]),r[0]),Math.max(Math.min(n[1],r[3]),r[1]),Math.min(Math.max(n[2],r[0]),r[2]),Math.min(Math.max(n[3],r[1]),r[3])]}function bd({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(o=>Rc(o,e||0,r))}function Rc(t,e,r){if(!Array.isArray(e)){let s=r.x-t.x,i=r.y-t.y,{width:a,height:c}=r,l={targetZ:e},f=t.unproject([s,i],l),u=t.unproject([s+a,i],l),h=t.unproject([s,i+c],l),p=t.unproject([s+a,i+c],l);return[Math.min(f[0],u[0],h[0],p[0]),Math.min(f[1],u[1],h[1],p[1]),Math.max(f[0],u[0],h[0],p[0]),Math.max(f[1],u[1],h[1],p[1])]}let n=Rc(t,e[0],r),o=Rc(t,e[1],r);return[Math.min(n[0],o[0]),Math.min(n[1],o[1]),Math.max(n[2],o[2]),Math.max(n[3],o[3])]}function o_(t,e,r){return r?Os(t,r).map(o=>o*e/bt):t.map(n=>n*e/bt)}function wc(t,e){return Math.pow(2,t)*bt/e}function jr(t,e,r){let n=wc(r,bt),o=t/n*360-180,s=Math.PI-2*Math.PI*e/n,i=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[o,i]}function gd(t,e,r,n){let o=wc(r,n);return[t/o*bt,e/o*bt]}function Lc(t,e,r,n,o=bt){if(t.isGeospatial){let[l,f]=jr(e,r,n),[u,h]=jr(e+1,r+1,n);return{west:l,north:f,east:u,south:h}}let[s,i]=gd(e,r,n,o),[a,c]=gd(e+1,r+1,n,o);return{left:s,top:i,right:a,bottom:c}}function s_(t,e,r,n,o){let s=n_(t,null,n),i=wc(e,r),[a,c,l,f]=o_(s,i,o),u=[];for(let h=Math.floor(a);h<l;h++)for(let p=Math.floor(c);p<f;p++)u.push({x:h,y:p,z:e});return u}function Fc({viewport:t,maxZoom:e,minZoom:r,zRange:n,extent:o,tileSize:s=bt,modelMatrix:i,modelMatrixInverse:a,zoomOffset:c=0,visibleMinZoom:l,visibleMaxZoom:f}){let u=t.isGeospatial?Math.round(t.zoom+Math.log2(bt/s)+c):Math.ceil(t.zoom+c);if(typeof r=="number"&&Number.isFinite(r)&&u<r){if(!o)return[];u=r}if(typeof e=="number"&&Number.isFinite(e)&&u>e&&(u=e),l!=null&&t.zoom<l)return[];if(f!=null&&t.zoom>f)return[];let h=o;return i&&a&&o&&!t.isGeospatial&&(h=Os(o,i)),t.isGeospatial?md(t,u,n,o):s_(t,u,s,h||t_,a)}function Pc(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function Nc(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function Ad(t){let e={},r;return n=>{for(let o in n)if(!i_(n[o],e[o])){r=t(n),e=n;break}return r}}function i_(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}return!1}var xd=1,Us=2,a_="never",c_="no-overlap",$n="best-available",l_=5,yd=0,Sd=1e8,Td=Sd-yd-1,f_={[$n]:h_,[c_]:p_,[a_]:()=>{}},u_={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},ir=class{constructor(e){this._getCullBounds=Ad(bd),this.opts={...u_,...e},this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize!==null&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new wt({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new P,this._modelMatrixInverse=new P}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom)),this._viewport=null}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:n}={zRange:null,modelMatrix:null}){let o=n?new P(n):new P,s=!o.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!xe(this._zRange,r)||s){s&&(this._modelMatrixInverse=o.clone().invert(),this._modelMatrix=o),this._viewport=e,this._zRange=r;let a=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=a.map(c=>this._getTile(c,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(a=>this._getTile(a.index,!0)));let i=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),i&&this._frameNumber++,this._frameNumber}isTileVisible(e,r,n){if(!e.isVisible)return!1;if(r&&this._viewport){let o=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:s}=e;for(let[i,a,c,l]of o){let f;if("west"in s)f=s.west<c&&s.east>i&&s.south<l&&s.north>a;else{if(n&&!P.IDENTITY.equals(n)){let[p,d,m,b]=Os([s.left,s.top,s.right,s.bottom],n);s={left:p,top:d,right:m,bottom:b}}let u=Math.min(s.top,s.bottom),h=Math.max(s.top,s.bottom);f=s.left<c&&s.right>i&&u<l&&h>a}if(f)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:n,zRange:o,modelMatrix:s,modelMatrixInverse:i}){let{tileSize:a,extent:c,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u}=this.opts;return Fc({viewport:e,maxZoom:r,minZoom:n,zRange:o,tileSize:a,extent:c,modelMatrix:s,modelMatrixInverse:i,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:Lc(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),n=Math.floor(e.y/2),o=e.z-1;return{x:r,y:n,z:o}}updateTileStates(){let e=this.opts.refinementStrategy||$n,r=new Array(this._cache.size),n=0;for(let o of this._cache.values())r[n++]=o.isVisible,o.isSelected=!1,o.isVisible=!1;for(let o of this._selectedTiles)o.isSelected=!0,o.isVisible=!0;(typeof e=="function"?e:f_[e])(Array.from(this._cache.values())),n=0;for(let o of this._cache.values())if(r[n++]!==o.isVisible)return!0;return!1}_getRequestPriority(e){if(!e.isSelected&&!e.isVisible)return-1;let r=this._getTileDistancePriority(e);return e.isSelected?yd+r:Sd+r}_getTileDistancePriority(e){let{width:r,height:n}=this._viewport||{};if(!this._viewport||!r||!n)return 0;try{let o=this._getTileScreenCorners(e.bbox),s=[r/2,n/2];if(o.length===4){if(this._isPointInPolygon(s,o))return 0;let i=o.reduce((a,c,l)=>{let f=o[(l+1)%o.length];return Math.min(a,this._getPointToSegmentDistanceSquared(s,c,f))},Number.MAX_SAFE_INTEGER);return Math.min(i,Td)}}catch{}return Td}_getTileScreenCorners(e){return("west"in e?[[e.west,e.south],[e.east,e.south],[e.east,e.north],[e.west,e.north]]:[[e.left,e.top],[e.right,e.top],[e.right,e.bottom],[e.left,e.bottom]]).map(n=>this._viewport.project(n)).filter(([n,o])=>Number.isFinite(n)&&Number.isFinite(o))}_isPointInPolygon(e,r){let n=!1,[o,s]=e;for(let i=0,a=r.length-1;i<r.length;a=i++){let[c,l]=r[i],[f,u]=r[a];l>s!=u>s&&o<(f-c)*(s-l)/(u-l)+c&&(n=!n)}return n}_getPointToSegmentDistanceSquared(e,r,n){let[o,s]=e,[i,a]=r,[c,l]=n,f=c-i,u=l-a,h=f*f+u*u,p=h?Math.max(0,Math.min(1,((o-i)*f+(s-a)*u)/h)):0,d=i+p*f,m=a+p*u,b=o-d,x=s-m;return b*b+x*x}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],n=0;for(let o of this._cache.values())o.isLoading&&(n++,!o.isSelected&&!o.isVisible&&r.push(o));for(;e>0&&n>e&&r.length>0;)r.shift().abort(),n--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let n=this._getNearestAncestor(r);r.parent=n,n?.children&&n.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,n=r.maxCacheSize??(r.maxCacheByteSize!==null?1/0:l_*this.selectedTiles.length),o=r.maxCacheByteSize??1/0;if(e.size>n||this._cacheByteSize>o){for(let[i,a]of e)if(!a.isVisible&&!a.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize!==null?a.byteLength:0,e.delete(i),this.opts.onTileUnload?.(a)),e.size<=n&&this._cacheByteSize<=o)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((i,a)=>i.zoom-a.zoom),this._dirty=!1)}_getTile(e,r){let n=this.getTileId(e),o=this._cache.get(n),s=!1;return!o&&r?(o=new sr(e),Object.assign(o,this.getTileMetadata(o.index)),Object.assign(o,{id:n,zoom:this.getTileZoom(o.index)}),s=!0,this._cache.set(n,o),this._dirty=!0):o&&o.needsReload&&(s=!0),o&&s&&o.loadData({getData:this.opts.getTileData,getRequestPriority:this._getRequestPriority.bind(this),requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),o}_getNearestAncestor(e){let{_minZoom:r=0}=this,n=e.index;for(;this.getTileZoom(n)>r;){n=this.getParentIndex(n);let o=this._getTile(n);if(o)return o}return null}};function h_(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!_d(e)&&Oc(e);for(let e of t)e.isVisible=!!(e.state&Us)}function p_(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&_d(r);let e=Array.from(t).sort((r,n)=>r.zoom-n.zoom);for(let r of e)if(r.isVisible=!!(r.state&Us),r.children&&(r.isVisible||r.state&xd))for(let n of r.children)n.state=xd;else r.isSelected&&Oc(r)}function _d(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=Us,!0;e=e.parent}return!1}function Oc(t){for(let e of t.children)e.isLoaded||e.content?e.state|=Us:Oc(e)}var d_={TilesetClass:ir,data:{type:"data",value:[]},dataComparator:Nt.equal,renderSubLayers:{type:"function",value:t=>new Cd.GeoJsonLayer(t)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:$n,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null},eo=class extends Ds.CompositeLayer{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return!!this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&(!e.content||!e.layers||e.layers.every(r=>r.isLoaded)))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:r}=this.state,n=e.propsOrDataChanged||e.updateTriggersChanged,o=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?n&&(r.setOptions(this._getTilesetOptions()),o?r.reloadAll():r.tiles.forEach(s=>{s.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:n,refinementStrategy:o,extent:s,maxZoom:i,minZoom:a,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h}=this.props;return{maxCacheSize:r,maxCacheByteSize:n,maxZoom:i,minZoom:a,tileSize:e,refinementStrategy:o,extent:s,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:r,modelMatrix:n}=this.props,o=e.update(this.context.viewport,{zRange:r,modelMatrix:n}),{isLoaded:s}=e,i=this.state.isLoaded!==s,a=this.state.frameNumber!==o;s&&(i||a)&&this._onViewportLoad(),a&&this.setState({frameNumber:o}),this.state.isLoaded=s}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:r}=this.props;r&&r(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,r){this.props.onTileError(e),r.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:r,getTileData:n,fetch:o}=this.props,{signal:s}=e;return e.url=typeof r=="string"||Array.isArray(r)?it(r,e):null,n?n(e):o&&e.url?o(e.url,{propName:"data",layer:this,signal:s}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let r=e.sourceLayer,n=r.props.tile,o=e.info;return o.picked&&(o.tile=n),o.sourceTile=n,o.sourceTileSubLayer=r,o}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){let{visibleMinZoom:e,visibleMaxZoom:r,minZoom:n,extent:o}=this.props,s=this.context.viewport.zoom;if(e!=null&&s<e||r!=null&&s>r||n!=null&&!o&&s<n){for(let a of this.state.tileset.tiles)a.layers=null;return[]}return this.state.tileset.tiles.map(a=>{let c=this.getSubLayerPropsByTile(a);if(!(!a.isLoaded&&!a.content))if(a.layers)c&&a.layers[0]&&Object.keys(c).some(l=>a.layers[0].props[l]!==c[l])&&(a.layers=a.layers.map(l=>l.clone(c)));else{let l=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:a.id,updateTriggers:this.props.updateTriggers}),data:a.content,_offset:0,tile:a});a.layers=(0,Ds._flatten)(l,Boolean).map(f=>f.clone({tile:a,...c}))}return a.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:n}=e.props,{modelMatrix:o}=this.props;return this.state.tileset.isTileVisible(n,r,o?new P(o):null)}};eo.defaultProps=d_;eo.layerName="TileLayer";var ar=eo;var vd=D(ze(),1),Rd=D(ke(),1);var m_=`struct TripsUniforms {
10
+ `);let e=new Ce("!xml"),r=e,n="";this.matcher.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0,this.docTypeEntitiesKeys=[],this.lastEntitiesKeys=Object.keys(this.lastEntities),this.htmlEntitiesKeys=this.options.htmlEntities?Object.keys(this.htmlEntities):[];let o=this.options,s=new vn(o.processEntities),i=t.length;for(let a=0;a<i;a++)if(t[a]==="<"){let l=t.charCodeAt(a+1);if(l===47){let f=Fr(t,">",a,"Closing Tag is not closed."),u=t.substring(a+2,f).trim();if(o.removeNSPrefix){let p=u.indexOf(":");p!==-1&&(u=u.substr(p+1))}u=Ka(o.transformTagName,u,"",o).tagName,r&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher));let h=this.matcher.getCurrentTag();if(u&&o.unpairedTagsSet.has(u))throw new Error(`Unpaired tag can not be used as closing tag: </${u}>`);h&&o.unpairedTagsSet.has(h)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=this.tagsNodeStack.pop(),n="",a=f}else if(l===63){let f=Ya(t,a,!1,"?>");if(!f)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,this.readonlyMatcher),!(o.ignoreDeclaration&&f.tagName==="?xml"||o.ignorePiTags)){let u=new Ce(f.tagName);u.add(o.textNodeName,""),f.tagName!==f.tagExp&&f.attrExpPresent&&(u[":@"]=this.buildAttributesMap(f.tagExp,this.matcher,f.tagName)),this.addChild(r,u,this.readonlyMatcher,a)}a=f.closeIndex+1}else if(l===33&&t.charCodeAt(a+2)===45&&t.charCodeAt(a+3)===45){let f=Fr(t,"-->",a+4,"Comment is not closed.");if(o.commentPropName){let u=t.substring(a+4,f-2);n=this.saveTextToParentTag(n,r,this.readonlyMatcher),r.add(o.commentPropName,[{[o.textNodeName]:u}])}a=f}else if(l===33&&t.charCodeAt(a+2)===68){let f=s.readDocType(t,a);this.docTypeEntities=f.entities,this.docTypeEntitiesKeys=Object.keys(this.docTypeEntities)||[],a=f.i}else if(l===33&&t.charCodeAt(a+2)===91){let f=Fr(t,"]]>",a,"CDATA is not closed.")-2,u=t.substring(a+9,f);n=this.saveTextToParentTag(n,r,this.readonlyMatcher);let h=this.parseTextData(u,r.tagname,this.readonlyMatcher,!0,!1,!0,!0);h==null&&(h=""),o.cdataPropName?r.add(o.cdataPropName,[{[o.textNodeName]:u}]):r.add(o.textNodeName,h),a=f+2}else{let f=Ya(t,a,o.removeNSPrefix);if(!f){let E=t.substring(Math.max(0,a-50),Math.min(i,a+50));throw new Error(`readTagExp returned undefined at position ${a}. Context: "${E}"`)}let u=f.tagName,h=f.rawTagName,p=f.tagExp,d=f.attrExpPresent,m=f.closeIndex;if({tagName:u,tagExp:p}=Ka(o.transformTagName,u,p,o),o.strictReservedNames&&(u===o.commentPropName||u===o.cdataPropName||u===o.textNodeName||u===o.attributesGroupName))throw new Error(`Invalid tag name: ${u}`);r&&n&&r.tagname!=="!xml"&&(n=this.saveTextToParentTag(n,r,this.readonlyMatcher,!1));let b=r;b&&o.unpairedTagsSet.has(b.tagname)&&(r=this.tagsNodeStack.pop(),this.matcher.pop());let x=!1;p.length>0&&p.lastIndexOf("/")===p.length-1&&(x=!0,u[u.length-1]==="/"?(u=u.substr(0,u.length-1),p=u):p=p.substr(0,p.length-1),d=u!==p);let y=null,_={},T;T=CT(h),u!==e.tagname&&this.matcher.push(u,{},T),u!==p&&d&&(y=this.buildAttributesMap(p,this.matcher,u),y&&(_=_T(y,o))),u!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let M=a;if(this.isCurrentNodeStopNode){let E="";if(x)a=f.closeIndex;else if(o.unpairedTagsSet.has(u))a=f.closeIndex;else{let C=this.readStopNodeData(t,h,m+1);if(!C)throw new Error(`Unexpected end of ${h}`);a=C.i,E=C.tagContent}let I=new Ce(u);y&&(I[":@"]=y),I.add(o.textNodeName,E),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(r,I,this.readonlyMatcher,M)}else{if(x){({tagName:u,tagExp:p}=Ka(o.transformTagName,u,p,o));let E=new Ce(u);y&&(E[":@"]=y),this.addChild(r,E,this.readonlyMatcher,M),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else if(o.unpairedTagsSet.has(u)){let E=new Ce(u);y&&(E[":@"]=y),this.addChild(r,E,this.readonlyMatcher,M),this.matcher.pop(),this.isCurrentNodeStopNode=!1,a=f.closeIndex;continue}else{let E=new Ce(u);if(this.tagsNodeStack.length>o.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(r),y&&(E[":@"]=y),this.addChild(r,E,this.readonlyMatcher,M),r=E}n="",a=m}}}else n+=t[a];return e.child};function wT(t,e,r,n){this.options.captureMetaData||(n=void 0);let o=this.options.jPath?r.toString():r,s=this.options.updateTag(e.tagname,o,e[":@"]);s===!1||(typeof s=="string"&&(e.tagname=s),t.addChild(e,n))}function LT(t,e,r){let n=this.options.processEntities;if(!n||!n.enabled)return t;if(n.allowedTags){let o=this.options.jPath?r.toString():r;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,o)))return t}if(n.tagFilter){let o=this.options.jPath?r.toString():r;if(!n.tagFilter(e,o))return t}for(let o of this.docTypeEntitiesKeys){let s=this.docTypeEntities[o],i=t.match(s.regx);if(i){if(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);let a=t.length;if(t=t.replace(s.regx,s.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-a,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}if(t.indexOf("&")===-1)return t;for(let o of this.lastEntitiesKeys){let s=this.lastEntities[o],i=t.match(s.regex);if(i&&(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(s.regex,s.val)}if(t.indexOf("&")===-1)return t;for(let o of this.htmlEntitiesKeys){let s=this.htmlEntities[o],i=t.match(s.regex);if(i&&(this.entityExpansionCount+=i.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions))throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);t=t.replace(s.regex,s.val)}return t=t.replace(this.ampEntity.regex,this.ampEntity.val),t}function FT(t,e,r,n){return t&&(n===void 0&&(n=e.child.length===0),t=this.parseTextData(t,e.tagname,r,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,n),t!==void 0&&t!==""&&e.add(this.options.textNodeName,t),t=""),t}function PT(){return this.stopNodeExpressionsSet.size===0?!1:this.matcher.matchesAny(this.stopNodeExpressionsSet)}function NT(t,e,r=">"){let n=0,o=[],s=t.length,i=r.charCodeAt(0),a=r.length>1?r.charCodeAt(1):-1;for(let c=e;c<s;c++){let l=t.charCodeAt(c);if(n)l===n&&(n=0);else if(l===34||l===39)n=l;else if(l===i)if(a!==-1){if(t.charCodeAt(c+1)===a)return{data:String.fromCharCode(...o),index:c}}else return{data:String.fromCharCode(...o),index:c};else if(l===9){o.push(32);continue}o.push(l)}}function Fr(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o+e.length-1}function OT(t,e,r,n){let o=t.indexOf(e,r);if(o===-1)throw new Error(n);return o}function Ya(t,e,r,n=">"){let o=NT(t,e+1,n);if(!o)return;let s=o.data,i=o.index,a=s.search(/\s/),c=s,l=!0;a!==-1&&(c=s.substring(0,a),s=s.substring(a+1).trimStart());let f=c;if(r){let u=c.indexOf(":");u!==-1&&(c=c.substr(u+1),l=c!==o.data.substr(u+1))}return{tagName:c,tagExp:s,closeIndex:i,attrExpPresent:l,rawTagName:f}}function UT(t,e,r){let n=r,o=1,s=t.length;for(;r<s;r++)if(t[r]==="<"){let i=t.charCodeAt(r+1);if(i===47){let a=OT(t,">",r,`${e} is not closed`);if(t.substring(r+2,a).trim()===e&&(o--,o===0))return{tagContent:t.substring(n,r),i:a};r=a}else if(i===63)r=Fr(t,"?>",r+1,"StopNode is not closed.");else if(i===33&&t.charCodeAt(r+2)===45&&t.charCodeAt(r+3)===45)r=Fr(t,"-->",r+3,"StopNode is not closed.");else if(i===33&&t.charCodeAt(r+2)===91)r=Fr(t,"]]>",r,"StopNode is not closed.")-2;else{let a=Ya(t,r,">");a&&((a&&a.tagName)===e&&a.tagExp[a.tagExp.length-1]!=="/"&&o++,r=a.closeIndex)}}}function Qa(t,e,r){if(e&&typeof t=="string"){let n=t.trim();return n==="true"?!0:n==="false"?!1:Wa(t,r)}else return zh(t)?t:""}function Zh(t,e,r){let n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):r+t+";"}function Ka(t,e,r,n){if(t){let o=t(e);r===e&&(r=o),e=o}return e=$h(e,n),{tagName:e,tagExp:r}}function $h(t,e){if(bs.includes(t))throw new Error(`[SECURITY] Invalid name: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);return Mn.includes(t)?e.onDangerousProperty(t):t}var Za=Ce.getMetaDataSymbol();function DT(t,e){if(!t||typeof t!="object")return{};if(!e)return t;let r={};for(let n in t)if(n.startsWith(e)){let o=n.substring(e.length);r[o]=t[n]}else r[n]=t[n];return r}function $a(t,e,r,n){return ep(t,e,r,n)}function ep(t,e,r,n){let o,s={};for(let i=0;i<t.length;i++){let a=t[i],c=GT(a);if(c!==void 0&&c!==e.textNodeName){let l=DT(a[":@"]||{},e.attributeNamePrefix);r.push(c,l)}if(c===e.textNodeName)o===void 0?o=a[c]:o+=""+a[c];else{if(c===void 0)continue;if(a[c]){let l=ep(a[c],e,r,n),f=HT(l,e);if(a[":@"]?VT(l,a[":@"],n,e):Object.keys(l).length===1&&l[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?l=l[e.textNodeName]:Object.keys(l).length===0&&(e.alwaysCreateTextNode?l[e.textNodeName]="":l=""),a[Za]!==void 0&&typeof l=="object"&&l!==null&&(l[Za]=a[Za]),s[c]!==void 0&&Object.prototype.hasOwnProperty.call(s,c))Array.isArray(s[c])||(s[c]=[s[c]]),s[c].push(l);else{let u=e.jPath?n.toString():n;e.isArray(c,u,f)?s[c]=[l]:s[c]=l}c!==void 0&&c!==e.textNodeName&&r.pop()}}}return typeof o=="string"?o.length>0&&(s[e.textNodeName]=o):o!==void 0&&(s[e.textNodeName]=o),s}function GT(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let n=e[r];if(n!==":@")return n}}function VT(t,e,r,n){if(e){let o=Object.keys(e),s=o.length;for(let i=0;i<s;i++){let a=o[i],c=a.startsWith(n.attributeNamePrefix)?a.substring(n.attributeNamePrefix.length):a,l=n.jPath?r.toString()+"."+c:r;n.isArray(a,l,!0,!0)?t[a]=[e[a]]:t[a]=e[a]}}}function HT(t,e){let{textNodeName:r}=e,n=Object.keys(t).length;return!!(n===0||n===1&&(t[r]||typeof t[r]=="boolean"||t[r]===0))}var Pr=class{constructor(e){this.externalEntities={},this.options=Qh(e)}parse(e,r){if(typeof e!="string"&&e.toString)e=e.toString();else if(typeof e!="string")throw new Error("XML data is accepted in String or Bytes[] form.");if(r){r===!0&&(r={});let s=Xh(e,r);if(s!==!0)throw Error(`${s.err.msg}:${s.err.line}:${s.err.col}`)}let n=new Rn(this.options);n.addExternalEntities(this.externalEntities);let o=n.parseXml(e);return this.options.preserveOrder||o===void 0?o:$a(o,this.options,n.matcher,n.readonlyMatcher)}addEntity(e,r){if(r.indexOf("&")!==-1)throw new Error("Entity value can't have '&'");if(e.indexOf("&")!==-1||e.indexOf(";")!==-1)throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '&#xD;'");if(r==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=r}static getMetaDataSymbol(){return Ce.getMetaDataSymbol()}};function ec(t,e){if(e?._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let r={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(o,s,i,a)=>!!e?.arrayPaths?.some(l=>s===l),...e?._fastXML},n=kT(t,r);return e?.uncapitalizeKeys?ms(n):n}function kT(t,e){return new Pr({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(t)}var zT="4.4.3",We={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:zT,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:jT,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(t,e)=>ec(new TextDecoder().decode(t),{...We.options.xml,...e?.xml}),parseTextSync:(t,e)=>ec(t,{...We.options.xml,...e?.xml})};function jT(t){return t.startsWith("<?xml")}async function we(t,e,r,n){return n._parse(t,e,r,n)}function k(t,e){if(!t)throw new Error(e||"loader assertion failed.")}var rt={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},qT=rt.self||rt.window||rt.global||{},JT=rt.window||rt.self||rt.global||{},WT=rt.global||rt.self||rt.window||{},XT=rt.document||{};var wn=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser);var tp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),KT=tp&&parseFloat(tp[1])||0;var xs=globalThis,YT=globalThis.document||{},Ts=globalThis.process||{},QT=globalThis.console,Lw=globalThis.navigator||{};function rp(t){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&process.versions?.electron)return!0;let e=typeof navigator<"u"&&navigator.userAgent,r=t||e;return!!(r&&r.indexOf("Electron")>=0)}function Qt(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||rp()}var tc="4.1.1";function Nr(t,e){if(!t)throw new Error(e||"Assertion failed")}function rc(t){if(!t)return 0;let e;switch(typeof t){case"number":e=t;break;case"object":e=t.logLevel||t.priority||0;break;default:return 0}return Nr(Number.isFinite(e)&&e>=0),e}function np(t){let{logLevel:e,message:r}=t;t.logLevel=rc(e);let n=t.args?Array.from(t.args):[];for(;n.length&&n.shift()!==r;);switch(typeof e){case"string":case"function":r!==void 0&&n.unshift(r),t.message=e;break;case"object":Object.assign(t,e);break;default:}typeof t.message=="function"&&(t.message=t.message());let o=typeof t.message;return Nr(o==="string"||o==="object"),Object.assign(t,{args:n},t.opts)}var Zt=()=>{},ys=class{constructor({level:e=0}={}){this.userData={},this._onceCache=new Set,this._level=e}set level(e){this.setLevel(e)}get level(){return this.getLevel()}setLevel(e){return this._level=e,this}getLevel(){return this._level}warn(e,...r){return this._log("warn",0,e,r,{once:!0})}error(e,...r){return this._log("error",0,e,r)}log(e,r,...n){return this._log("log",e,r,n)}info(e,r,...n){return this._log("info",e,r,n)}once(e,r,...n){return this._log("once",e,r,n,{once:!0})}_log(e,r,n,o,s={}){let i=np({logLevel:r,message:n,args:this._buildArgs(r,n,o),opts:s});return this._createLogFunction(e,i,s)}_buildArgs(e,r,n){return[e,r,...n]}_createLogFunction(e,r,n){if(!this._shouldLog(r.logLevel))return Zt;let o=this._getOnceTag(n.tag??r.tag??r.message);if((n.once||r.once)&&o!==void 0){if(this._onceCache.has(o))return Zt;this._onceCache.add(o)}return this._emit(e,r)}_shouldLog(e){return this.getLevel()>=rc(e)}_getOnceTag(e){if(e!==void 0)try{return typeof e=="string"?e:String(e)}catch{return}}};function $T(t){try{let e=window[t],r="__storage_test__";return e.setItem(r,r),e.removeItem(r),e}catch{return null}}var Ss=class{constructor(e,r,n="sessionStorage"){this.storage=$T(n),this.id=e,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let e={};if(this.storage){let r=this.storage.getItem(this.id);e=r?JSON.parse(r):{}}return Object.assign(this.config,e),this}};function op(t){let e;return t<10?e=`${t.toFixed(2)}ms`:t<100?e=`${t.toFixed(1)}ms`:t<1e3?e=`${t.toFixed(0)}ms`:e=`${(t/1e3).toFixed(2)}s`,e}function sp(t,e=8){let r=Math.max(e-t.length,0);return`${" ".repeat(r)}${t}`}var _s;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(_s||(_s={}));var ey=10;function ip(t){return typeof t!="string"?t:(t=t.toUpperCase(),_s[t]||_s.WHITE)}function ap(t,e,r){return!Qt&&typeof t=="string"&&(e&&(t=`\x1B[${ip(e)}m${t}\x1B[39m`),r&&(t=`\x1B[${ip(r)+ey}m${t}\x1B[49m`)),t}function cp(t,e=["constructor"]){let r=Object.getPrototypeOf(t),n=Object.getOwnPropertyNames(r),o=t;for(let s of n){let i=o[s];typeof i=="function"&&(e.find(a=>s===a)||(o[s]=i.bind(t)))}}function Or(){let t;if(Qt()&&xs.performance)t=xs?.performance?.now?.();else if("hrtime"in Ts){let e=Ts?.hrtime?.();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var Ur={debug:Qt()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},nc={enabled:!0,level:0},ht=class extends ys{constructor({id:e}={id:""}){super({level:0}),this.VERSION=tc,this._startTs=Or(),this._deltaTs=Or(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new Ss(`__probe-${this.id}__`,{[this.id]:nc}),this.timeStamp(`${this.id} started`),cp(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((Or()-this._startTs).toPrecision(10))}getDelta(){return Number((Or()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._updateConfiguration({enabled:e}),this}setLevel(e){return this._updateConfiguration({level:e}),this}get(e){return this._getConfiguration()[e]}set(e,r){this._updateConfiguration({[e]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,r){if(!e)throw new Error(r||"Assertion failed")}warn(e,...r){return this._log("warn",0,e,r,{method:Ur.warn,once:!0})}error(e,...r){return this._log("error",0,e,r,{method:Ur.error})}deprecated(e,r){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(e,r){return this.error(`\`${e}\` has been removed. Use \`${r}\` instead`)}probe(e,r,...n){return this._log("log",e,r,n,{method:Ur.log,time:!0,once:!0})}log(e,r,...n){return this._log("log",e,r,n,{method:Ur.debug})}info(e,r,...n){return this._log("info",e,r,n,{method:console.info})}once(e,r,...n){return this._log("once",e,r,n,{method:Ur.debug||Ur.info,once:!0})}table(e,r,n){return r?this._log("table",e,r,n&&[n]||[],{method:console.table||Zt,tag:ry(r)}):Zt}time(e,r){return this._log("time",e,r,[],{method:console.time?console.time:console.info})}timeEnd(e,r){return this._log("time",e,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(e,r){return this._log("time",e,r,[],{method:console.timeStamp||Zt})}group(e,r,n={collapsed:!1}){let o=(n.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",e,r,[],{method:o})}groupCollapsed(e,r,n={}){return this.group(e,r,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._log("groupEnd",e,"",[],{method:console.groupEnd||Zt})}withGroup(e,r,n){this.group(e,r)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&super._shouldLog(e)}_emit(e,r){let n=r.method;Nr(n),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=Or();let o=ty(this.id,r.message,r);return n.bind(console,o,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(nc),this._storage.config[this.id]}_updateConfiguration(e){let r=this._storage.config[this.id]||{...nc};this._storage.setConfiguration({[this.id]:{...r,...e}})}};ht.VERSION=tc;function ty(t,e,r){if(typeof e=="string"){let n=r.time?sp(op(r.total)):"";e=r.time?`${t}: ${n} ${e}`:`${t}: ${e}`,e=ap(e,r.color,r.background)}return e}function ry(t){for(let e in t)for(let r in t[e])return r||"untitled";return"empty"}globalThis.probe={};var oc=new ht({id:"@probe.gl/log"});var sc="4.4.3",ny=sc[0]>="0"&&sc[0]<="9"?`v${sc}`:"";function oy(){let t=new ht({id:"loaders.gl"});return globalThis.loaders||={},globalThis.loaders.log=t,globalThis.loaders.version=ny,globalThis.probe||={},globalThis.probe.loaders=t,t}var ic=oy();var lp=t=>typeof SharedArrayBuffer<"u"&&t instanceof SharedArrayBuffer;function Ln(t,e){return fp(t||{},e)}function fp(t,e,r=0){if(r>3)return e;let n={...t};for(let[o,s]of Object.entries(e))s&&typeof s=="object"&&!Array.isArray(s)?n[o]=fp(n[o]||{},e[o],r+1):n[o]=e[o];return n}function ac(t){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,t)}function cc(t){return globalThis.loaders?.modules?.[t]||null}function sy(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.3"),globalThis._loadersgl_.version}var up=sy();function hp(t,e){if(!t)throw new Error(e||"loaders.gl assertion failed.")}var nt={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},AL=nt.self||nt.window||nt.global||{},xL=nt.window||nt.self||nt.global||{},TL=nt.global||nt.self||nt.window||{},yL=nt.document||{};var pt=typeof process!="object"||String(process)!=="[object process]"||process.browser,Fn=typeof importScripts=="function",SL=typeof window<"u"&&typeof window.orientation<"u",pp=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),_L=pp&&parseFloat(pp[1])||0;var lc={};function Pn(t={}){let e=t.useLocalLibraries??t.core?.useLocalLibraries,r=t.CDN??t.core?.CDN,n=t.modules;return{...e!==void 0?{useLocalLibraries:e}:{},...r!==void 0?{CDN:r}:{},...n!==void 0?{modules:n}:{}}}async function Oe(t,e=null,r={},n=null){return e&&(t=dp(t,e,r,n)),lc[t]=lc[t]||iy(t),await lc[t]}function dp(t,e,r={},n=null){if(r?.core)throw new Error("loadLibrary: options.core must be pre-normalized");if(!r.useLocalLibraries&&t.startsWith("http"))return t;n=n||t;let o=r.modules||{};return o[n]?o[n]:pt?r.CDN?(hp(r.CDN.startsWith("http")),`${r.CDN}/${e}@${up}/dist/libs/${n}`):Fn?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function iy(t){if(t.endsWith("wasm"))return await cy(t);if(!pt){let{requireFromFile:r}=globalThis.loaders||{};try{let n=await r?.(t);return n||!t.includes("/dist/libs/")?n:await r?.(t.replace("/dist/libs/","/src/libs/"))}catch(n){if(t.includes("/dist/libs/"))try{return await r?.(t.replace("/dist/libs/","/src/libs/"))}catch{}return console.error(n),null}}if(Fn)return importScripts(t);let e=await ly(t);return ay(e,t)}function ay(t,e){if(!pt){let{requireFromString:n}=globalThis.loaders||{};return n?.(t,e)}if(Fn)return eval.call(globalThis,t),null;let r=document.createElement("script");r.id=e;try{r.appendChild(document.createTextNode(t))}catch{r.text=t}return document.body.appendChild(r),null}async function cy(t){let{readFileAsArrayBuffer:e}=globalThis.loaders||{};if(pt||!e||t.startsWith("http"))return await(await fetch(t)).arrayBuffer();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load ArrayBuffer from ${t}`)}}async function ly(t){let{readFileAsText:e}=globalThis.loaders||{};if(pt||!e||t.startsWith("http"))return await(await fetch(t)).text();try{return await e(t)}catch{if(t.includes("/dist/libs/"))return await e(t.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load text from ${t}`)}}function gp(t,e=5){return typeof t=="string"?t.slice(0,e):ArrayBuffer.isView(t)?mp(t.buffer,t.byteOffset,e):t instanceof ArrayBuffer?mp(t,0,e):""}function mp(t,e,r){if(t.byteLength<=e+r)return"";let n=new DataView(t),o="";for(let s=0;s<r;s++)o+=String.fromCharCode(n.getUint8(e+s));return o}function fc(t){try{return JSON.parse(t)}catch{throw new Error(`Failed to parse JSON from data starting with "${gp(t)}"`)}}function Nn(...t){let e=t,r=e&&e.length>1&&e[0].constructor||null;if(!r)throw new Error('"concatenateTypedArrays" - incorrect quantity of arguments or arguments have incompatible data types');let n=e.reduce((i,a)=>i+a.length,0),o=new r(n),s=0;for(let i of e)o.set(i,s),s+=i.length;return o}function $t(t,e,r){let n=r!==void 0?new Uint8Array(t).subarray(e,e+r):new Uint8Array(t).subarray(e);return new Uint8Array(n).buffer}function Rt(t,e){return k(t>=0),k(e>0),t+(e-1)&~(e-1)}function uc(t,e,r){let n;if(t instanceof ArrayBuffer)n=new Uint8Array(t);else{let o=t.byteOffset,s=t.byteLength;n=new Uint8Array(t.buffer||t.arrayBuffer,o,s)}return e.set(n,r),r+Rt(n.byteLength,4)}function On(){let t;if(typeof window<"u"&&window.performance)t=window.performance.now();else if(typeof process<"u"&&process.hrtime){let e=process.hrtime();t=e[0]*1e3+e[1]/1e6}else t=Date.now();return t}var er=class{constructor(e,r){this.sampleSize=1,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.name=e,this.type=r,this.reset()}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}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=On(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(On()-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}_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)}};var wt=class{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,r="count"){return this._getOrCreate({name:e,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let e of Object.values(this.stats))e.reset();return this}forEach(e){for(let r of Object.values(this.stats))e(r)}getTable(){let e={};return this.forEach(r=>{e[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),e}_initializeStats(e=[]){e.forEach(r=>this._getOrCreate(r))}_getOrCreate(e){let{name:r,type:n}=e,o=this.stats[r];return o||(e instanceof er?o=e:o=new er(r,n),this.stats[r]=o),o}};var fy="Queued Requests",uy="Active Requests",hy="Cancelled Requests",py="Queued Requests Ever",dy="Active Requests Ever",my={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0},Lt=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...my,...e},this.stats=new wt({id:this.props.id}),this.stats.get(fy),this.stats.get(uy),this.stats.get(hy),this.stats.get(py),this.stats.get(dy)}setProps(e){e.throttleRequests!==void 0&&(this.props.throttleRequests=e.throttleRequests),e.maxRequests!==void 0&&(this.props.maxRequests=e.maxRequests),e.debounceTime!==void 0&&(this.props.debounceTime=e.debounceTime)}scheduleRequest(e,r=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);let n={handle:e,priority:0,getPriority:r},o=new Promise(s=>(n.resolve=s,n));return this.requestQueue.push(n),this.requestMap.set(e,o),this._issueNewRequests(),o}_issueRequest(e){let{handle:r,resolve:n}=e,o=!1,s=()=>{o||(o=!0,this.requestMap.delete(r),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;let e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(e!==0){this._updateAllRequests();for(let r=0;r<e;++r){let n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){let e=this.requestQueue;for(let r=0;r<e.length;++r){let n=e[r];this._updateRequest(n)||(e.splice(r,1),this.requestMap.delete(n.handle),r--)}e.sort((r,n)=>r.priority-n.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),e.priority<0?(e.resolve(null),!1):!0}};var gy="",bp={};function Ap(t){for(let e in bp)if(t.startsWith(e)){let r=bp[e];t=t.replace(e,r)}return!t.startsWith("http://")&&!t.startsWith("https://")&&(t=`${gy}${t}`),t}function Ft(t){if(t instanceof ArrayBuffer)return t;if(lp(t))return Un(t);let{buffer:e,byteOffset:r,byteLength:n}=t;return e instanceof ArrayBuffer&&r===0&&n===e.byteLength?e:Un(e,r,n)}function Un(t,e=0,r=t.byteLength-e){let n=new Uint8Array(t,e,r),o=new Uint8Array(n.length);return o.set(n),o.buffer}var Pt={};pe(Pt,{dirname:()=>Ay,filename:()=>by,join:()=>xy,resolve:()=>Ty});function xp(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let t=window.location?.pathname;return t?.slice(0,t.lastIndexOf("/")+1)||""}function by(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(e+1):t}function Ay(t){let e=t?t.lastIndexOf("/"):-1;return e>=0?t.substr(0,e):""}function xy(...t){return t=t.map((r,n)=>(n&&(r=r.replace(new RegExp("^/"),"")),n!==t.length-1&&(r=r.replace(new RegExp("/$"),"")),r)),t.join("/")}function Ty(...t){let e=[];for(let s=0;s<t.length;s++)e[s]=t[s];let r="",n=!1,o;for(let s=e.length-1;s>=-1&&!n;s--){let i;s>=0?i=e[s]:(o===void 0&&(o=xp()),i=o),i.length!==0&&(r=`${i}/${r}`,n=i.charCodeAt(0)===Dn)}return r=yy(r,!n),n?`/${r}`:r.length>0?r:"."}var Dn=47,hc=46;function yy(t,e){let r="",n=-1,o=0,s,i=!1;for(let a=0;a<=t.length;++a){if(a<t.length)s=t.charCodeAt(a);else{if(s===Dn)break;s=Dn}if(s===Dn){if(!(n===a-1||o===1))if(n!==a-1&&o===2){if(r.length<2||!i||r.charCodeAt(r.length-1)!==hc||r.charCodeAt(r.length-2)!==hc){if(r.length>2){let c=r.length-1,l=c;for(;l>=0&&r.charCodeAt(l)!==Dn;--l);if(l!==c){r=l===-1?"":r.slice(0,l),n=a,o=0,i=!1;continue}}else if(r.length===2||r.length===1){r="",n=a,o=0,i=!1;continue}}e&&(r.length>0?r+="/..":r="..",i=!0)}else{let c=t.slice(n+1,a);r.length>0?r+=`/${c}`:r=c,i=!1}n=a,o=0}else s===hc&&o!==-1?++o:o=-1}return r}var Gn=class t{static defaultOptions={core:{type:"auto",attributions:[],loadOptions:{},loaders:[]}};optionsType;options;data;url;loadOptions;fetch;_needsRefresh=!0;constructor(e,r,n){n?this.options=Ln({...n,core:t.defaultOptions},r):this.options={...r},this.data=e,this.url=typeof e=="string"?Ap(e):"",this.loadOptions=_y(this.options.core?.loadOptions),this.fetch=Sy(this.loadOptions)}setProps(e){this.options=Object.assign(this.options,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(e=!0){let r=this._needsRefresh;return e&&(this._needsRefresh=!1),r}};function Sy(t){let e=t?.core?.fetch;if(e&&typeof e=="function")return(n,o)=>e(n,o);let r=t?.fetch;return r&&typeof r!="function"?n=>fetch(n,r):n=>fetch(n)}function _y(t){let e={...t};t?.core&&(e.core={...t.core});let r=typeof e.baseUri=="string"?e.baseUri:void 0,n=typeof e.baseUrl=="string"?e.baseUrl:void 0;return(r!==void 0||n!==void 0)&&(e.core||={},e.core.baseUrl===void 0&&(e.core.baseUrl=n??r),delete e.baseUri,delete e.baseUrl),e}var Dr=class{static type="template";static testURL=e=>!1};function Tp(t,e){let r=We.parseTextSync?.(t,e),n=r?.ServiceExceptionReport?.ServiceException||r?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof n=="string"?n:n.value||n.code||"Unknown error"}var Cy="4.4.3",Vn={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:Cy,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:Ey,options:{wms:{throwOnError:!1}},parse:async(t,e)=>pc(new TextDecoder().decode(t),e),parseSync:(t,e)=>pc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>pc(t,e)};function Ey(t){return t.startsWith("<?xml")}function pc(t,e){let r={...Vn.options.wms,...e?.wms},n=Tp(t,r),o=r.minimalErrors?n:`WMS Service error: ${n}`;if(r.throwOnError)throw new Error(o);return o}function tr(t){return Array.isArray(t)?t:t?[t]:[]}function Hn(t){let e=tr(t);return e.length>0&&e.every(r=>typeof r=="string")?e:[]}function kn(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseFloat(t);default:return}}function Cs(t,e=void 0){switch(typeof t){case"number":return t;case"string":return parseInt(t,10);default:return}}function rr(t){switch(t){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function dc(t,e){let r=We.parseTextSync?.(t,e),n=r.WMT_MS_Capabilities||r.WMS_Capabilities||r,o=My(n);if(e?.inheritedLayerProps)for(let s of o.layers)Sp(s,null);return e?.includeRawJSON&&(o.json=n),e?.includeXMLText&&(o.xml=t),o}function My(t){let e={version:String(t.version||""),name:String(t.Service?.Name||"unnamed"),title:t.Service?.Title?String(t.Service?.Title):void 0,abstract:t.Service?.Abstract?String(t.Service?.Abstract):void 0,keywords:Hn(t.Service?.KeywordList?.Keyword),fees:t.Service?.Fees?JSON.stringify(t.Service?.Fees):void 0,accessConstraints:t.Service?.AccessConstraints?JSON.stringify(t.Service?.AccessConstraints):void 0,layerLimit:Cs(t.Service?.LayerLimit),maxWidth:Cs(t.Service?.maxWidth),maxHeight:Cs(t.Service?.maxHeight),layers:[],requests:Iy(t.Capability?.Request),exceptions:By(t.Exception)},r=tr(t.Capability?.Layer);for(let n of r)e.layers.push(yp(n));for(let[n,o]of Object.entries(e))o===void 0&&delete e[n];return e}function Iy(t){let e={};for(let[r,n]of Object.entries(t||{})){let o=Hn(n?.Format);e[r]={mimeTypes:o}}return e}function By(t){if(tr(t?.Format).length>0)return{mimeTypes:Hn(t)}}function yp(t){let e={title:String(t?.Title||""),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:Hn(t.KeywordList?.Keyword)},r=t?.CRS||t?.SRS;r&&Array.isArray(r)&&r.every(l=>typeof l=="string")&&(e.crs=r);let n=t?.EX_GeographicBoundingBox&&vy(t?.EX_GeographicBoundingBox);n&&(e.geographicBoundingBox=n),n=t?.LatLonBoundingBox&&Ry(t?.LatLonBoundingBox),n&&(e.geographicBoundingBox=n);let o=t?.BoundingBox&&wy(t?.BoundingBox);o&&o.length>0&&(e.boundingBoxes=o);let i=tr(t?.Dimension).map(l=>Fy(l));i.length&&(e.dimensions=i),t?.opaque&&(e.opaque=rr(t?.opaque)),t?.cascaded&&(e.cascaded=rr(t?.cascaded)),t?.queryable&&(e.queryable=rr(t?.queryable));let a=tr(t?.Layer),c=[];for(let l of a)c.push(yp(l));c.length>0&&(e.layers=c);for(let[l,f]of Object.entries(e))f===void 0&&delete e[l];return e}function vy(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:n,southBoundLatitude:o}=t;return[[e,o],[n,r]]}function Ry(t){let{minx:e,miny:r,maxx:n,maxy:o}=t;return[[e,r],[n,o]]}function wy(t){return tr(t).map(r=>Ly(r))}function Ly(t){let{CRS:e,SRS:r,minx:n,miny:o,maxx:s,maxy:i,resx:a,resy:c}=t,l={crs:e||r,boundingBox:[[kn(n),kn(o)],[kn(s),kn(i)]]};return a&&(l.xResolution=a),c&&(l.yResolution=c),l}function Fy(t){let{name:e,units:r,value:n}=t,o={name:e,units:r,extent:n};return t.unitSymbol&&(o.unitSymbol=t.unitSymbol),t.default&&(o.defaultValue=t.default),t.multipleValues&&(o.multipleValues=rr(t.multipleValues)),t.nearestValue&&(o.nearestValue=rr(t.nearestValue)),t.current&&(o.current=rr(t.current)),o}function Sp(t,e){e?.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!t.crs&&(t.crs=[...e.crs]),e?.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])Sp(r,t)}var Py="4.4.3",Gr={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:Py,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:Ny,options:{wms:{}},parse:async(t,e)=>dc(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>dc(t,e?.wms)};function Ny(t){return t.startsWith("<?xml")}function mc(t,e){let n=(We.parseTextSync?.(t,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(n)?n:[n]).map(s=>Oy(s))}}function Oy(t){return{attributes:t||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var _p={...Gr,dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(t,e)=>mc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>mc(t,e)};function gc(t,e){return We.parseTextSync?.(t,e)}var Cp={...Gr,dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(t,e)=>gc(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>gc(t,e)};var Ep="4.4.3";var Uy=globalThis.loaders?.parseImageNode,bc=typeof Image<"u",Ac=typeof ImageBitmap<"u",Dy=!!Uy,xc=wn?!0:Dy;function Mp(t){switch(t){case"auto":return Ac||bc||xc;case"imagebitmap":return Ac;case"image":return bc;case"data":return xc;default:throw new Error(`@loaders.gl/images: image ${t} not supported in this environment`)}}function Ip(){if(Ac)return"imagebitmap";if(bc)return"image";if(xc)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function Bp(t){let e=Gy(t);if(!e)throw new Error("Not an image");return e}function zn(t){switch(Bp(t)){case"data":return t;case"image":case"imagebitmap":let e=document.createElement("canvas"),r=e.getContext("2d");if(!r)throw new Error("getImageData");return e.width=t.width,e.height=t.height,r.drawImage(t,0,0),r.getImageData(0,0,t.width,t.height);default:throw new Error("getImageData")}}function Gy(t){return typeof ImageBitmap<"u"&&t instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&t instanceof Image?"image":t&&typeof t=="object"&&t.data&&t.width&&t.height?"data":null}var Vy=/^data:image\/svg\+xml/,Hy=/\.svg((\?|#).*)?$/;function Es(t){return t&&(Vy.test(t)||Hy.test(t))}function vp(t,e){if(Es(e)){let n=new TextDecoder().decode(t);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(s){throw new Error(s.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return Tc(t,e)}function Tc(t,e){if(Es(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(t)])}async function Ms(t,e,r){let n=vp(t,r),o=self.URL||self.webkitURL,s=typeof n!="string"&&o.createObjectURL(n);try{return await ky(s||n,e)}finally{s&&o.revokeObjectURL(s)}}async function ky(t,e){let r=new Image;return r.src=t,e.image&&e.image.decode&&r.decode?(await r.decode(),r):await new Promise((n,o)=>{try{r.onload=()=>n(r),r.onerror=s=>{let i=s instanceof Error?s.message:"error";o(new Error(i))}}catch(s){o(s)}})}var Rp=!0;async function wp(t,e,r){let n;Es(r)?n=await Ms(t,e,r):n=Tc(t,r);let o=e&&e.imagebitmap;return await zy(n,o)}async function zy(t,e=null){if((jy(e)||!Rp)&&(e=null),e)try{return await createImageBitmap(t,e)}catch(r){console.warn(r),Rp=!1}return await createImageBitmap(t)}function jy(t){if(!t)return!0;for(let e in t)if(Object.prototype.hasOwnProperty.call(t,e))return!1;return!0}function Lp(t){return!Xy(t,"ftyp",4)||(t[8]&96)===0?null:qy(t)}function qy(t){switch(Jy(t,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Jy(t,e,r){return String.fromCharCode(...t.slice(e,r))}function Wy(t){return[...t].map(e=>e.charCodeAt(0))}function Xy(t,e,r=0){let n=Wy(e);for(let o=0;o<n.length;++o)if(n[o]!==t[o+r])return!1;return!0}var ot=!1,jn=!0;function nr(t){let e=qn(t);return Yy(e)||$y(e)||Qy(e)||Zy(e)||Ky(e)}function Ky(t){let e=new Uint8Array(t instanceof DataView?t.buffer:t),r=Lp(e);return r?{mimeType:r.mimeType,width:0,height:0}:null}function Yy(t){let e=qn(t);return e.byteLength>=24&&e.getUint32(0,ot)===2303741511?{mimeType:"image/png",width:e.getUint32(16,ot),height:e.getUint32(20,ot)}:null}function Qy(t){let e=qn(t);return e.byteLength>=10&&e.getUint32(0,ot)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,jn),height:e.getUint16(8,jn)}:null}function Zy(t){let e=qn(t);return e.byteLength>=14&&e.getUint16(0,ot)===16973&&e.getUint32(2,jn)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,jn),height:e.getUint32(22,jn)}:null}function $y(t){let e=qn(t);if(!(e.byteLength>=3&&e.getUint16(0,ot)===65496&&e.getUint8(2)===255))return null;let{tableMarkers:n,sofMarkers:o}=eS(),s=2;for(;s+9<e.byteLength;){let i=e.getUint16(s,ot);if(o.has(i))return{mimeType:"image/jpeg",height:e.getUint16(s+5,ot),width:e.getUint16(s+7,ot)};if(!n.has(i))return null;s+=2,s+=e.getUint16(s,ot)}return null}function eS(){let t=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)t.add(r);return{tableMarkers:t,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function qn(t){if(t instanceof DataView)return t;if(ArrayBuffer.isView(t))return new DataView(t.buffer);if(t instanceof ArrayBuffer)return new DataView(t);throw new Error("toDataView")}async function Fp(t,e){let{mimeType:r}=nr(t)||{},n=globalThis.loaders?.parseImageNode;return k(n),await n(t,r)}async function Pp(t,e,r){e=e||{};let o=(e.image||{}).type||"auto",{url:s}=r||{},i=tS(o),a;switch(i){case"imagebitmap":a=await wp(t,e,s);break;case"image":a=await Ms(t,e,s);break;case"data":a=await Fp(t,e);break;default:k(!1)}return o==="data"&&(a=zn(a)),a}function tS(t){switch(t){case"auto":case"data":return Ip();default:return Mp(t),t}}var rS=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],nS=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],oS={image:{type:"auto",decode:!0}},Vr={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:Ep,mimeTypes:nS,extensions:rS,parse:Pp,tests:[t=>!!nr(new DataView(t))],options:oS};var yc={};function Sc(t){if(yc[t]===void 0){let e=wn?iS(t):sS(t);yc[t]=e}return yc[t]}function sS(t){let e=["image/png","image/jpeg","image/gif"],r=globalThis.loaders?.imageFormatsNode||e;return!!globalThis.loaders?.parseImageNode&&r.includes(t)}function iS(t){switch(t){case"image/avif":case"image/webp":return aS(t);default:return!0}}function aS(t){try{return document.createElement("canvas").toDataURL(t).indexOf(`data:${t}`)===0}catch{return!1}}var Bs={name:"Web Map Service (OGC WMS)",id:"wms",module:"wms",version:"0.0.0",extensions:[],mimeTypes:[],type:"wms",fromUrl:!0,fromBlob:!1,defaultOptions:{wms:{}},testURL:t=>t.toLowerCase().includes("wms"),createDataSource:(t,e)=>new Is(t,e)},Is=class extends Gn{substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e,r){super(e,r,Bs.defaultOptions),this.substituteCRS84=r.wms?.substituteCRS84??!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...r.wmsParameters,...r.wms?.wmsParameters},this.vendorParameters=r.wms?.vendorParameters||r.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let{boundingBox:r,bbox:n,...o}=e,s={bbox:r?[...r[0],...r[1]]:n,...o};return await this.getMap(s)}normalizeMetadata(e){return e}async getCapabilities(e,r){let n=this.getCapabilitiesURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);let i=await Gr.parse(s,this.loadOptions);return this.capabilities=i,i}async getMap(e,r){let n=this.getMapURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await Vr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}async getFeatureInfo(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await _p.parse(s,this.loadOptions)}async getFeatureInfoText(e,r){let n=this.getFeatureInfoURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),new TextDecoder().decode(s)}async describeLayer(e,r){let n=this.describeLayerURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();return this._checkResponse(o,s),await Cp.parse(s,this.loadOptions)}async getLegendGraphic(e,r){let n=this.getLegendGraphicURL(e,r),o=await this.fetch(n),s=await o.arrayBuffer();this._checkResponse(o,s);try{return await Vr.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}getCapabilitiesURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",n,r)}getMapURL(e,r){e=this._getWMS130Parameters(e);let n={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",n,r)}getFeatureInfoURL(e,r){e=this._getWMS130Parameters(e);let{boundingBox:n,bbox:o}=e;e.bbox=n?[...n[0],...n[1]]:o;let s={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",s,r)}describeLayerURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",n,r)}getLegendGraphicURL(e,r){let n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",n,r)}_parseWMSUrl(e){let[r,n]=e.split("?"),o=n.split("&"),s={};for(let i of o){let[a,c]=i.split("=");s[a]=c}return{url:r,parameters:s}}_getWMSUrl(e,r,n){let o=this.url,s=!0,i={service:"WMS",version:r.version,request:e,...r,...this.vendorParameters,...n},a=["transparent","time","elevation"];for(let[c,l]of Object.entries(i))(!a.includes(c)||l)&&(o+=s?"?":"&",s=!1,o+=this._getURLParameter(c,l,r));return encodeURI(o)}_getWMS130Parameters(e){let r={...e};return r.srs&&(r.crs=r.crs||r.srs,delete r.srs),r}_getURLParameter(e,r,n){switch(e){case"crs":n.version!=="1.3.0"?e="srs":this.substituteCRS84&&r==="EPSG:4326"&&(r="CRS:84");break;case"srs":n.version==="1.3.0"&&(e="crs");break;case"bbox":let o=this._flipBoundingBox(r,n);o&&(r=o);break;case"x":n.version==="1.3.0"&&(e="i");break;case"y":n.version==="1.3.0"&&(e="j");break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(",")}`:`${e}=${r?String(r):""}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let n=r.version==="1.3.0"&&this.flipCRS.includes(r.crs||"")&&!(this.substituteCRS84&&r.crs==="EPSG:4326"),o=e;return n?[o[1],o[0],o[3],o[2]]:o}async _fetchArrayBuffer(e){let r=await this.fetch(e),n=await r.arrayBuffer();return this._checkResponse(r,n),n}_checkResponse(e,r){let n=e.headers["content-type"];if(!e.ok||Vn.mimeTypes.includes(n)){let o=Ln(this.loadOptions,{wms:{throwOnError:!0}}),s=Vn.parseSync?.(r,o);throw new Error(s)}}_parseError(e){let r=Vn.parseSync?.(e,this.options.core?.loadOptions);return new Error(r)}};function vs(t,e){if(!t)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}var Xe=Math.PI,Dp=Xe/4,Np=Xe/180,Op=180/Xe,Rs=512;function dt(t){let[e,r]=t;vs(Number.isFinite(e)),vs(Number.isFinite(r)&&r>=-90&&r<=90,"invalid latitude");let n=e*Np,o=r*Np,s=Rs*(n+Xe)/(2*Xe),i=Rs*(Xe+Math.log(Math.tan(Dp+o*.5)))/(2*Xe);return[s,i]}function mt(t){let[e,r]=t,n=e/Rs*(2*Xe)-Xe,o=2*(Math.atan(Math.exp(r/Rs*(2*Xe)-Xe))-Dp);return[n*Op,o*Op]}var sN=Math.PI/180;var Vp=6378137*Math.PI;function _c(t){let e=dt(t);return e[0]=(e[0]/256-1)*Vp,e[1]=(e[1]/256-1)*Vp,e}var _S={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(t,e)=>console.error(e,t)}},Hr=class extends or.CompositeLayer{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:r,oldProps:n}){let{viewport:o}=this.context;e.dataChanged||r.serviceType!==n.serviceType?(this.state.imageSource=this._createImageSource(r),this._loadMetadata(),this.debounce(()=>this.loadImage(o,"image source changed"),0)):(0,or._deepEqual)(r.layers,n.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(o,"viewport changed")):this.debounce(()=>this.loadImage(o,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:e,image:r,lastRequestParameters:n}=this.state;return r&&new Hp.BitmapLayer({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:n.srs==="EPSG:4326"?or.COORDINATE_SYSTEM.LNGLAT:or.COORDINATE_SYSTEM.CARTESIAN,bounds:e,image:r})}async getFeatureInfoText(e,r){let{lastRequestParameters:n}=this.state;return n?await this.state.imageSource.getFeatureInfoText?.({...n,query_layers:n.layers,x:e,y:r,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof Dr)return e.data;if(typeof e.data=="string")return(0,kp.createDataSource)(e.data,[Bs],{core:{type:e.serviceType,loadOptions:e.loadOptions}});throw new Error("invalid image source in props.data")}async _loadMetadata(){let{imageSource:e}=this.state;try{this.state.loadCounter++;let r=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(r)}catch(r){this.getCurrentLayer()?.props.onMetadataLoadError(r)}finally{this.state.loadCounter--}}async loadImage(e,r){let{layers:n,serviceType:o}=this.props;if(o==="wms"&&n.length===0)return;let s=e.getBounds(),{width:i,height:a}=e,c=this.getRequestId(),{srs:l}=this.props;l==="auto"&&(l=e.resolution?"EPSG:4326":"EPSG:3857");let f={width:i,height:a,boundingBox:[[s[0],s[1]],[s[2],s[3]]],layers:n,crs:l};if(l==="EPSG:3857"){let u=_c([s[0],s[1]]),h=_c([s[2],s[3]]);f.boundingBox=[u,h]}try{this.state.loadCounter++,this.props.onImageLoadStart(c);let u=await this.state.imageSource.getImage(f);this.state.lastRequestId<c&&(this.getCurrentLayer()?.props.onImageLoad(c),this.setState({image:u,bounds:s,lastRequestParameters:f,lastRequestId:c}))}catch(u){this.raiseError(u,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(c,u)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,r=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),r)}};Hr.layerName="WMSLayer";Hr.defaultProps=_S;var zp=D(ze(),1),CS={getHeight:{type:"accessor",value:0},greatCircle:!0},Jn=class extends zp.ArcLayer{};Jn.layerName="GreatCircleLayer";Jn.defaultProps=CS;var jp=Jn;var ws=D(Cc(),1),ES=3,MS=30,IS=2*MS+1,Jp=180/Math.PI;function Xp(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function Wp(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Kp(t){return[Wp(t[0]),Wp(t[1])]}function Yp(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function Qp([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*Jp,n*Jp]}function Zp(t){let e=ws.default.fromString(t,!0,10).toString(2);for(;e.length<ES+IS;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=ws.default.fromString(n,!0,2).toString(10),a=ws.default.fromString(o,!0,2).toString(4);for(;a.length<s;)a="0"+a;return`${i}/${a}`}function BS(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function $p(t){let e=t.split("/"),r=parseInt(e[0],10),n=e[1],o=n.length,s=[0,0],i;for(let a=o-1;a>=0;a--){i=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,i-1);BS(u,s,l,f),s[0]+=u*l,s[1]+=u*f}if(r%2===1){let a=s[0];s[0]=s[1],s[1]=a}return{face:r,ij:s,level:i}}var ed=D(Cc(),1);function vS(t){let e=t.padEnd(16,"0");return ed.default.fromString(e,16)}var RS=100;function wS({face:t,ij:e,level:r}){let n=[[0,0],[0,1],[1,1],[1,0],[0,0]],o=Math.max(1,Math.ceil(RS*Math.pow(2,-r))),s=new Float64Array(4*o*2+2),i=0,a=0;for(let c=0;c<4;c++){let l=n[c].slice(0),f=n[c+1],u=(f[0]-l[0])/o,h=(f[1]-l[1])/o;for(let p=0;p<o;p++){l[0]+=u,l[1]+=h;let d=Xp(e,r,l),m=Kp(d),b=Yp(t,m),x=Qp(b);Math.abs(x[1])>89.999&&(x[0]=a);let y=x[0]-a;x[0]+=y>180?-360:y<-180?360:0,s[i++]=x[0],s[i++]=x[1],a=x[0]}}return s[i++]=s[0],s[i++]=s[1],s}function LS(t){if(typeof t=="string"){if(t.indexOf("/")>0)return t;t=vS(t)}return Zp(t.toString())}function td(t){let e=LS(t),r=$p(e);return wS(r)}var FS={getS2Token:{type:"accessor",value:t=>t.token}},Xn=class extends Pe{indexToBounds(){let{data:e,getS2Token:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>td(r(n,o))}}};Xn.layerName="S2Layer";Xn.defaultProps=FS;var rd=Xn;var Ec=512;function PS(t,e){let r=0,n=0,o=1<<t.length,s=o/Ec;for(let i=0;i<t.length;i++){o>>=1;let a=parseInt(t[i]);a%2&&(r|=o),a>1&&(n|=o)}return[[r/s,Ec-n/s],[(r+e)/s,Ec-(n+e)/s]]}function nd(t,e=1){let[r,n]=PS(t,e),[o,s]=mt(r),[i,a]=mt(n);return[i,s,i,a,o,a,o,s,i,s]}var NS={getQuadkey:{type:"accessor",value:t=>t.quadkey}},Kn=class extends Pe{indexToBounds(){let{data:e,extruded:r,getQuadkey:n}=this.props,o=r?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(s,i)=>nd(n(s,i),o),updateTriggers:{getPolygon:o}}}};Kn.layerName="QuadkeyLayer";Kn.defaultProps=NS;var od=Kn;var Ds=D(je(),1),Cd=D(ze(),1);var sr=class{constructor(e){this.index=e,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 bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,"west"in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}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(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error("byteLength not defined in tile data"),e}async _loadData({getData:e,getRequestPriority:r,requestScheduler:n,onLoad:o,onError:s}){let{index:i,id:a,bbox:c,userData:l,zoom:f}=this,u=this._loaderId;this._abortController=new AbortController;let{signal:h}=this._abortController,p=await n.scheduleRequest(this,r);if(!p){this._isCancelled=!0;return}if(this._isCancelled){p.done();return}let d=null,m;try{d=await e({index:i,id:a,bbox:c,userData:l,zoom:f,signal:h})}catch(b){m=b||!0}finally{p.done()}if(u===this._loaderId){if(this._loader=void 0,this.content=d,this._isCancelled&&!d){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,m?s(m,this):o(this)}}loadData(e){return this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1,this._loaderId++,this._loader=this._loadData(e),this._loader}setNeedsReload(){this.isLoading&&(this.abort(),this._loader=void 0),this._needsReload=!0}abort(){this.isLoaded||(this._isCancelled=!0,this._abortController?.abort())}};var Zn=D(je(),1);var se={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var sd=new S,OS=new S,kr=class t{constructor(e=[0,0,0],r=[0,0,0],n){n=n||sd.copy(e).add(r).scale(.5),this.center=new S(n),this.halfDiagonal=new S(r).subtract(this.center),this.minimum=new S(e),this.maximum=new S(r)}clone(){return new t(this.minimum,this.maximum,this.center)}equals(e){return this===e||!!e&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,n=OS.from(e.normal),o=r.x*Math.abs(n.x)+r.y*Math.abs(n.y)+r.z*Math.abs(n.z),s=this.center.dot(n)+e.distance;return s-o>0?se.INSIDE:s+o<0?se.OUTSIDE:se.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=sd.from(e).subtract(this.center),{halfDiagonal:n}=this,o=0,s;return s=Math.abs(r.x)-n.x,s>0&&(o+=s*s),s=Math.abs(r.y)-n.y,s>0&&(o+=s*s),s=Math.abs(r.z)-n.z,s>0&&(o+=s*s),o}};var Yn=new S,id=new S,st=class t{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new S,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=Yn.from(r),this.center=new S().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new t(this.center,this.radius)}union(e){let r=this.center,n=this.radius,o=e.center,s=e.radius,i=Yn.copy(o).subtract(r),a=i.magnitude();if(n>=a+s)return this.clone();if(s>=a+n)return e.clone();let c=(n+a+s)*.5;return id.copy(i).scale((-n+c)/a).add(r),this.center.copy(id),this.radius=c,this}expand(e){let n=Yn.from(e).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(e){this.center.transform(e);let r=fs.getScaling(Yn,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let n=Yn.from(e).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(e){let r=this.center,n=this.radius,s=e.normal.dot(r)+e.distance;return s<-n?se.OUTSIDE:s<n?se.INTERSECTING:se.INSIDE}};var US=new S,DS=new S,Ls=new S,Fs=new S,Ps=new S,GS=new S,VS=new S,gt={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},bt=class t{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new S().from(e),this.halfAxes=new z(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new S(e).len(),new S(r).len(),new S(n).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),o=new S(e).normalize(),s=new S(r).normalize(),i=new S(n).normalize();return new tt().fromMatrix3(new z([...o,...s,...i]))}fromCenterHalfSizeQuaternion(e,r,n){let o=new tt(n),s=new z().fromQuaternion(o);return s[0]=s[0]*r[0],s[1]=s[1]*r[0],s[2]=s[2]*r[0],s[3]=s[3]*r[1],s[4]=s[4]*r[1],s[5]=s[5]*r[1],s[6]=s[6]*r[2],s[7]=s[7]*r[2],s[8]=s[8]*r[2],this.center=new S().from(e),this.halfAxes=s,this}clone(){return new t(this.center,this.halfAxes)}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new st){let r=this.halfAxes,n=r.getColumn(0,Ls),o=r.getColumn(1,Fs),s=r.getColumn(2,Ps),i=US.copy(n).add(o).add(s);return e.center.copy(this.center),e.radius=i.magnitude(),e}intersectPlane(e){let r=this.center,n=e.normal,o=this.halfAxes,s=n.x,i=n.y,a=n.z,c=Math.abs(s*o[gt.COLUMN0ROW0]+i*o[gt.COLUMN0ROW1]+a*o[gt.COLUMN0ROW2])+Math.abs(s*o[gt.COLUMN1ROW0]+i*o[gt.COLUMN1ROW1]+a*o[gt.COLUMN1ROW2])+Math.abs(s*o[gt.COLUMN2ROW0]+i*o[gt.COLUMN2ROW1]+a*o[gt.COLUMN2ROW2]),l=n.dot(r)+e.distance;return l<=-c?se.OUTSIDE:l>=c?se.INSIDE:se.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=DS.from(e).subtract(this.center),n=this.halfAxes,o=n.getColumn(0,Ls),s=n.getColumn(1,Fs),i=n.getColumn(2,Ps),a=o.magnitude(),c=s.magnitude(),l=i.magnitude();o.normalize(),s.normalize(),i.normalize();let f=0,u;return u=Math.abs(r.dot(o))-a,u>0&&(f+=u*u),u=Math.abs(r.dot(s))-c,u>0&&(f+=u*u),u=Math.abs(r.dot(i))-l,u>0&&(f+=u*u),f}computePlaneDistances(e,r,n=[-0,-0]){let o=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,i=this.center,a=this.halfAxes,c=a.getColumn(0,Ls),l=a.getColumn(1,Fs),f=a.getColumn(2,Ps),u=GS.copy(c).add(l).add(f).add(i),h=VS.copy(u).subtract(e),p=r.dot(h);return o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),u.copy(i).add(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).add(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).add(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),i.copy(u).subtract(c).subtract(l).subtract(f),h.copy(u).subtract(e),p=r.dot(h),o=Math.min(p,o),s=Math.max(p,s),n[0]=o,n[1]=s,n}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,Ls);r.transformAsPoint(e);let n=this.halfAxes.getColumn(1,Fs);n.transformAsPoint(e);let o=this.halfAxes.getColumn(2,Ps);return o.transformAsPoint(e),this.halfAxes=new z([...r,...n,...o]),this}getTransform(){throw new Error("not implemented")}};var ad=new S,cd=new S,de=class t{constructor(e=[0,0,1],r=0){this.normal=new S,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return fe(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=ad.from(e),this.normal.from(r).normalize();let n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,r,n,o){return this.normal.set(e,r,n),fe(xe(this.normal.len(),1)),this.distance=o,this}clone(){return new t(this.normal,this.distance)}equals(e){return xe(this.distance,e.distance)&&xe(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=cd.copy(this.normal).transformAsVector(e).normalize(),n=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(n,r)}projectPointOntoPlane(e,r=[0,0,0]){let n=ad.from(e),o=this.getPointDistance(n),s=cd.copy(this.normal).scale(o);return n.subtract(s).to(r)}};var ld=[new S([1,0,0]),new S([0,1,0]),new S([0,0,1])],fd=new S,HS=new S,ye=class t{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*ld.length;let r=e.center,n=e.radius,o=0;for(let s of ld){let i=this.planes[o],a=this.planes[o+1];i||(i=this.planes[o]=new de),a||(a=this.planes[o+1]=new de);let c=fd.copy(s).scale(-n).add(r);i.fromPointNormal(c,s);let l=fd.copy(s).scale(n).add(r),f=HS.copy(s).negate();a.fromPointNormal(l,f),o+=2}return this}computeVisibility(e){let r=se.INSIDE;for(let n of this.planes)switch(e.intersectPlane(n)){case se.OUTSIDE:return se.OUTSIDE;case se.INTERSECTING:r=se.INTERSECTING;break;default:}return r}computeVisibilityWithPlaneMask(e,r){if(fe(Number.isFinite(r),"parentPlaneMask is required."),r===t.MASK_OUTSIDE||r===t.MASK_INSIDE)return r;let n=t.MASK_INSIDE,o=this.planes;for(let s=0;s<this.planes.length;++s){let i=s<31?1<<s:0;if(s<31&&(r&i)===0)continue;let a=o[s],c=e.intersectPlane(a);if(c===se.OUTSIDE)return t.MASK_OUTSIDE;c===se.INTERSECTING&&(n|=i)}return n}};ye.MASK_OUTSIDE=4294967295;ye.MASK_INSIDE=0;ye.MASK_INDETERMINATE=2147483647;var yO=new S,SO=new S,_O=new S,CO=new S,EO=new S;var wO=new S,LO=new S,FO=new S,PO=new S,NO=new S,OO=new S,UO=new S,DO=new S,GO=new S,VO=new S,HO=new S,kO=new S;var it=new z,zS=new z,jS=new z,Ns=new z,ud=new z;function Bc(t,e={}){let r=Je.EPSILON20,n=10,o=0,s=0,i=zS,a=jS;i.identity(),a.copy(t);let c=r*qS(a);for(;s<n&&JS(a)>c;)WS(a,Ns),ud.copy(Ns).transpose(),a.multiplyRight(Ns),a.multiplyLeft(ud),i.multiplyRight(Ns),++o>2&&(++s,o=0);return e.unitary=i.toTarget(e.unitary),e.diagonal=a.toTarget(e.diagonal),e}function qS(t){let e=0;for(let r=0;r<9;++r){let n=t[r];e+=n*n}return Math.sqrt(e)}var Mc=[1,0,0],Ic=[2,2,1];function JS(t){let e=0;for(let r=0;r<3;++r){let n=t[it.getElementIndex(Ic[r],Mc[r])];e+=2*n*n}return Math.sqrt(e)}function WS(t,e){let r=Je.EPSILON15,n=0,o=1;for(let l=0;l<3;++l){let f=Math.abs(t[it.getElementIndex(Ic[l],Mc[l])]);f>n&&(o=l,n=f)}let s=Mc[o],i=Ic[o],a=1,c=0;if(Math.abs(t[it.getElementIndex(i,s)])>r){let l=t[it.getElementIndex(i,i)],f=t[it.getElementIndex(s,s)],u=t[it.getElementIndex(i,s)],h=(l-f)/2/u,p;h<0?p=-1/(-h+Math.sqrt(1+h*h)):p=1/(h+Math.sqrt(1+h*h)),a=1/Math.sqrt(1+p*p),c=p*a}return z.IDENTITY.to(e),e[it.getElementIndex(s,s)]=e[it.getElementIndex(i,i)]=a,e[it.getElementIndex(i,s)]=c,e[it.getElementIndex(s,i)]=-c,e}var Nt=new S,XS=new S,KS=new S,YS=new S,QS=new S,ZS=new z,$S={diagonal:new z,unitary:new z};function Qn(t,e=new bt){if(!t||t.length===0)return e.halfAxes=new z([0,0,0,0,0,0,0,0,0]),e.center=new S,e;let r=t.length,n=new S(0,0,0);for(let A of t)n.add(A);let o=1/r;n.multiplyByScalar(o);let s=0,i=0,a=0,c=0,l=0,f=0;for(let A of t){let g=Nt.copy(A).subtract(n);s+=g.x*g.x,i+=g.x*g.y,a+=g.x*g.z,c+=g.y*g.y,l+=g.y*g.z,f+=g.z*g.z}s*=o,i*=o,a*=o,c*=o,l*=o,f*=o;let u=ZS;u[0]=s,u[1]=i,u[2]=a,u[3]=i,u[4]=c,u[5]=l,u[6]=a,u[7]=l,u[8]=f;let{unitary:h}=Bc(u,$S),p=e.halfAxes.copy(h),d=p.getColumn(0,KS),m=p.getColumn(1,YS),b=p.getColumn(2,QS),x=-Number.MAX_VALUE,y=-Number.MAX_VALUE,_=-Number.MAX_VALUE,T=Number.MAX_VALUE,M=Number.MAX_VALUE,E=Number.MAX_VALUE;for(let A of t)Nt.copy(A),x=Math.max(Nt.dot(d),x),y=Math.max(Nt.dot(m),y),_=Math.max(Nt.dot(b),_),T=Math.min(Nt.dot(d),T),M=Math.min(Nt.dot(m),M),E=Math.min(Nt.dot(b),E);d=d.multiplyByScalar(.5*(T+x)),m=m.multiplyByScalar(.5*(M+y)),b=b.multiplyByScalar(.5*(E+_)),e.center.copy(d).add(m).add(b);let I=XS.set(x-T,y-M,_-E).multiplyByScalar(.5),C=new z([I[0],0,0,0,I[1],0,0,0,I[2]]);return e.halfAxes.multiplyRight(C),e}var zr=512,hd=3,pd=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],dd=pd.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),e_=dd.concat([[.25,.5],[.75,.5]]),vc=class t{constructor(e,r,n){this.x=e,this.y=r,this.z=n}get children(){if(!this._children){let e=this.x*2,r=this.y*2,n=this.z+1;this._children=[new t(e,r,n),new t(e,r+1,n),new t(e+1,r,n),new t(e+1,r+1,n)]}return this._children}update(e){let{viewport:r,cullingVolume:n,elevationBounds:o,minZ:s,maxZ:i,bounds:a,offset:c,project:l}=e,f=this.getBoundingVolume(o,c,l);if(a&&!this.insideBounds(a)||n.computeVisibility(f)<0||l&&this.beyondHorizon(r.cameraPosition,l,o[1]))return!1;if(!this.childVisible){let{z:h}=this;if(h<i&&h>=s){let p=f.distanceTo(r.cameraPosition)*r.scale/r.height;h+=Math.floor(Math.log2(p))}if(h>=i)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let h of this.children)h.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}beyondHorizon(e,r,n){let o=e[0],s=e[1],i=e[2],a=Math.sqrt(o*o+s*s+i*i),c=Math.atan2(o,-s)*180/Math.PI,l=Math.asin(i/a)*180/Math.PI,[f,u]=jr(this.x,this.y,this.z),[h,p]=jr(this.x+1,this.y+1,this.z),d=(f+h)/2,m=d+((c-d+540)%360-180),b=Math.max(f,Math.min(m,h)),x=Math.max(p,Math.min(l,u)),y=r([b,x,n]),_=y[0]*o+y[1]*s+y[2]*i,T=y[0]*y[0]+y[1]*y[1]+y[2]*y[2];return _<=T}insideBounds([e,r,n,o]){let s=Math.pow(2,this.z),i=zr/s;return this.x*i<n&&this.y*i<o&&(this.x+1)*i>e&&(this.y+1)*i>r}getBoundingVolume(e,r,n){if(n){let c=this.z<1?e_:this.z<2?dd:pd,l=[];for(let f of c){let u=jr(this.x+f[0],this.y+f[1],this.z);u[2]=e[0],l.push(n(u)),e[0]!==e[1]&&(u[2]=e[1],l.push(n(u)))}return Qn(l)}let o=Math.pow(2,this.z),s=zr/o,i=this.x*s+r*zr,a=zr-(this.y+1)*s;return new kr([i,a,e[0]],[i+s,a+s,e[1]])}};function md(t,e,r,n){let o=t instanceof Zn._GlobeViewport?t.projectPosition:null,s=Object.values(t.getFrustumPlanes()).map(({normal:p,distance:d})=>new de(p.clone().negate(),d)),i=new ye(s),a=t.distanceScales.unitsPerMeter[2],c=r&&r[0]*a||0,l=r&&r[1]*a||0,f=t instanceof Zn.WebMercatorViewport&&t.pitch<=60?e:0;if(n){let[p,d,m,b]=n,x=dt([p,b]),y=dt([m,d]);n=[x[0],zr-x[1],y[0],zr-y[1]]}let u=new vc(0,0,0),h={viewport:t,project:o,cullingVolume:i,elevationBounds:[c,l],minZ:f,maxZ:e,bounds:n,offset:0};if(u.update(h),t instanceof Zn.WebMercatorViewport&&t.subViewports&&t.subViewports.length>1){for(h.offset=-1;u.update(h)&&!(--h.offset<-hd););for(h.offset=1;u.update(h)&&!(++h.offset>hd););}return u.getSelected()}var At=512,t_=[-1/0,-1/0,1/0,1/0],Ot={type:"object",value:null,validate:(t,e)=>e.optional&&t===null||typeof t=="string"||Array.isArray(t)&&t.every(r=>typeof r=="string"),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}};function Os(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(o=>o[0])),Math.min(...r.map(o=>o[1])),Math.max(...r.map(o=>o[0])),Math.max(...r.map(o=>o[1]))]}function r_(t){return Math.abs(t.split("").reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function at(t,e){if(!t||!t.length)return null;let{index:r,id:n}=e;if(Array.isArray(t)){let s=r_(n)%t.length;t=t[s]}let o=t;for(let s of Object.keys(r)){let i=new RegExp(`{${s}}`,"g");o=o.replace(i,String(r[s]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(o=o.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),o}function n_(t,e,r){let n;if(e&&e.length===2){let[o,s]=e,i=t.getBounds({z:o}),a=t.getBounds({z:s});n=[Math.min(i[0],a[0]),Math.min(i[1],a[1]),Math.max(i[2],a[2]),Math.max(i[3],a[3])]}else n=t.getBounds();return t.isGeospatial?[Math.max(n[0],r[0]),Math.max(n[1],r[1]),Math.min(n[2],r[2]),Math.min(n[3],r[3])]:[Math.max(Math.min(n[0],r[2]),r[0]),Math.max(Math.min(n[1],r[3]),r[1]),Math.min(Math.max(n[2],r[0]),r[2]),Math.min(Math.max(n[3],r[1]),r[3])]}function bd({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(o=>Rc(o,e||0,r))}function Rc(t,e,r){if(!Array.isArray(e)){let s=r.x-t.x,i=r.y-t.y,{width:a,height:c}=r,l={targetZ:e},f=t.unproject([s,i],l),u=t.unproject([s+a,i],l),h=t.unproject([s,i+c],l),p=t.unproject([s+a,i+c],l);return[Math.min(f[0],u[0],h[0],p[0]),Math.min(f[1],u[1],h[1],p[1]),Math.max(f[0],u[0],h[0],p[0]),Math.max(f[1],u[1],h[1],p[1])]}let n=Rc(t,e[0],r),o=Rc(t,e[1],r);return[Math.min(n[0],o[0]),Math.min(n[1],o[1]),Math.max(n[2],o[2]),Math.max(n[3],o[3])]}function o_(t,e,r){return r?Os(t,r).map(o=>o*e/At):t.map(n=>n*e/At)}function wc(t,e){return Math.pow(2,t)*At/e}function jr(t,e,r){let n=wc(r,At),o=t/n*360-180,s=Math.PI-2*Math.PI*e/n,i=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[o,i]}function gd(t,e,r,n){let o=wc(r,n);return[t/o*At,e/o*At]}function Lc(t,e,r,n,o=At){if(t.isGeospatial){let[l,f]=jr(e,r,n),[u,h]=jr(e+1,r+1,n);return{west:l,north:f,east:u,south:h}}let[s,i]=gd(e,r,n,o),[a,c]=gd(e+1,r+1,n,o);return{left:s,top:i,right:a,bottom:c}}function s_(t,e,r,n,o){let s=n_(t,null,n),i=wc(e,r),[a,c,l,f]=o_(s,i,o),u=[];for(let h=Math.floor(a);h<l;h++)for(let p=Math.floor(c);p<f;p++)u.push({x:h,y:p,z:e});return u}function Fc({viewport:t,maxZoom:e,minZoom:r,zRange:n,extent:o,tileSize:s=At,modelMatrix:i,modelMatrixInverse:a,zoomOffset:c=0,visibleMinZoom:l,visibleMaxZoom:f}){let u=t.isGeospatial?Math.round(t.zoom+Math.log2(At/s)+c):Math.ceil(t.zoom+c);if(typeof r=="number"&&Number.isFinite(r)&&u<r){if(!o)return[];u=r}if(typeof e=="number"&&Number.isFinite(e)&&u>e&&(u=e),l!=null&&t.zoom<l)return[];if(f!=null&&t.zoom>f)return[];let h=o;return i&&a&&o&&!t.isGeospatial&&(h=Os(o,i)),t.isGeospatial?md(t,u,n,o):s_(t,u,s,h||t_,a)}function Pc(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function Nc(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function Ad(t){let e={},r;return n=>{for(let o in n)if(!i_(n[o],e[o])){r=t(n),e=n;break}return r}}function i_(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let n=0;n<r;n++)if(t[n]!==e[n])return!1;return!0}return!1}var xd=1,Us=2,a_="never",c_="no-overlap",$n="best-available",l_=5,yd=0,Sd=1e8,Td=Sd-yd-1,f_={[$n]:h_,[c_]:p_,[a_]:()=>{}},u_={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}},ir=class{constructor(e){this._getCullBounds=Ad(bd),this.opts={...u_,...e},this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize!==null&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new Lt({throttleRequests:this.opts.maxRequests>0||this.opts.debounceTime>0,maxRequests:this.opts.maxRequests,debounceTime:this.opts.debounceTime}),this._cache=new Map,this._tiles=[],this._dirty=!1,this._cacheByteSize=0,this._viewport=null,this._zRange=null,this._selectedTiles=null,this._frameNumber=0,this._modelMatrix=new P,this._modelMatrixInverse=new P}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom)),this._viewport=null}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:n}={zRange:null,modelMatrix:null}){let o=n?new P(n):new P,s=!o.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!xe(this._zRange,r)||s){s&&(this._modelMatrixInverse=o.clone().invert(),this._modelMatrix=o),this._viewport=e,this._zRange=r;let a=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=a.map(c=>this._getTile(c,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(a=>this._getTile(a.index,!0)));let i=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),i&&this._frameNumber++,this._frameNumber}isTileVisible(e,r,n){if(!e.isVisible)return!1;if(r&&this._viewport){let o=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:s}=e;for(let[i,a,c,l]of o){let f;if("west"in s)f=s.west<c&&s.east>i&&s.south<l&&s.north>a;else{if(n&&!P.IDENTITY.equals(n)){let[p,d,m,b]=Os([s.left,s.top,s.right,s.bottom],n);s={left:p,top:d,right:m,bottom:b}}let u=Math.min(s.top,s.bottom),h=Math.max(s.top,s.bottom);f=s.left<c&&s.right>i&&u<l&&h>a}if(f)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:n,zRange:o,modelMatrix:s,modelMatrixInverse:i}){let{tileSize:a,extent:c,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u}=this.opts;return Fc({viewport:e,maxZoom:r,minZoom:n,zRange:o,tileSize:a,extent:c,modelMatrix:s,modelMatrixInverse:i,zoomOffset:l,visibleMinZoom:f,visibleMaxZoom:u})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:Lc(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){let r=Math.floor(e.x/2),n=Math.floor(e.y/2),o=e.z-1;return{x:r,y:n,z:o}}updateTileStates(){let e=this.opts.refinementStrategy||$n,r=new Array(this._cache.size),n=0;for(let o of this._cache.values())r[n++]=o.isVisible,o.isSelected=!1,o.isVisible=!1;for(let o of this._selectedTiles)o.isSelected=!0,o.isVisible=!0;(typeof e=="function"?e:f_[e])(Array.from(this._cache.values())),n=0;for(let o of this._cache.values())if(r[n++]!==o.isVisible)return!0;return!1}_getRequestPriority(e){if(!e.isSelected&&!e.isVisible)return-1;let r=this._getTileDistancePriority(e);return e.isSelected?yd+r:Sd+r}_getTileDistancePriority(e){let{width:r,height:n}=this._viewport||{};if(!this._viewport||!r||!n)return 0;try{let o=this._getTileScreenCorners(e.bbox),s=[r/2,n/2];if(o.length===4){if(this._isPointInPolygon(s,o))return 0;let i=o.reduce((a,c,l)=>{let f=o[(l+1)%o.length];return Math.min(a,this._getPointToSegmentDistanceSquared(s,c,f))},Number.MAX_SAFE_INTEGER);return Math.min(i,Td)}}catch{}return Td}_getTileScreenCorners(e){return("west"in e?[[e.west,e.south],[e.east,e.south],[e.east,e.north],[e.west,e.north]]:[[e.left,e.top],[e.right,e.top],[e.right,e.bottom],[e.left,e.bottom]]).map(n=>this._viewport.project(n)).filter(([n,o])=>Number.isFinite(n)&&Number.isFinite(o))}_isPointInPolygon(e,r){let n=!1,[o,s]=e;for(let i=0,a=r.length-1;i<r.length;a=i++){let[c,l]=r[i],[f,u]=r[a];l>s!=u>s&&o<(f-c)*(s-l)/(u-l)+c&&(n=!n)}return n}_getPointToSegmentDistanceSquared(e,r,n){let[o,s]=e,[i,a]=r,[c,l]=n,f=c-i,u=l-a,h=f*f+u*u,p=h?Math.max(0,Math.min(1,((o-i)*f+(s-a)*u)/h)):0,d=i+p*f,m=a+p*u,b=o-d,x=s-m;return b*b+x*x}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],n=0;for(let o of this._cache.values())o.isLoading&&(n++,!o.isSelected&&!o.isVisible&&r.push(o));for(;e>0&&n>e&&r.length>0;)r.shift().abort(),n--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let n=this._getNearestAncestor(r);r.parent=n,n?.children&&n.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,n=r.maxCacheSize??(r.maxCacheByteSize!==null?1/0:l_*this.selectedTiles.length),o=r.maxCacheByteSize??1/0;if(e.size>n||this._cacheByteSize>o){for(let[i,a]of e)if(!a.isVisible&&!a.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize!==null?a.byteLength:0,e.delete(i),this.opts.onTileUnload?.(a)),e.size<=n&&this._cacheByteSize<=o)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((i,a)=>i.zoom-a.zoom),this._dirty=!1)}_getTile(e,r){let n=this.getTileId(e),o=this._cache.get(n),s=!1;return!o&&r?(o=new sr(e),Object.assign(o,this.getTileMetadata(o.index)),Object.assign(o,{id:n,zoom:this.getTileZoom(o.index)}),s=!0,this._cache.set(n,o),this._dirty=!0):o&&o.needsReload&&(s=!0),o&&s&&o.loadData({getData:this.opts.getTileData,getRequestPriority:this._getRequestPriority.bind(this),requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),o}_getNearestAncestor(e){let{_minZoom:r=0}=this,n=e.index;for(;this.getTileZoom(n)>r;){n=this.getParentIndex(n);let o=this._getTile(n);if(o)return o}return null}};function h_(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!_d(e)&&Oc(e);for(let e of t)e.isVisible=!!(e.state&Us)}function p_(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&_d(r);let e=Array.from(t).sort((r,n)=>r.zoom-n.zoom);for(let r of e)if(r.isVisible=!!(r.state&Us),r.children&&(r.isVisible||r.state&xd))for(let n of r.children)n.state=xd;else r.isSelected&&Oc(r)}function _d(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=Us,!0;e=e.parent}return!1}function Oc(t){for(let e of t.children)e.isLoaded||e.content?e.state|=Us:Oc(e)}var d_={TilesetClass:ir,data:{type:"data",value:[]},dataComparator:Ot.equal,renderSubLayers:{type:"function",value:t=>new Cd.GeoJsonLayer(t)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:t=>console.error(t)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:$n,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null},eo=class extends Ds.CompositeLayer{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return!!this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&(!e.content||!e.layers||e.layers.every(r=>r.isLoaded)))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:r}=this.state,n=e.propsOrDataChanged||e.updateTriggersChanged,o=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);r?n&&(r.setOptions(this._getTilesetOptions()),o?r.reloadAll():r.tiles.forEach(s=>{s.layers=null})):(r=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:r})),this._updateTileset()}_getTilesetOptions(){let{tileSize:e,maxCacheSize:r,maxCacheByteSize:n,refinementStrategy:o,extent:s,maxZoom:i,minZoom:a,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h}=this.props;return{maxCacheSize:r,maxCacheByteSize:n,maxZoom:i,minZoom:a,tileSize:e,refinementStrategy:o,extent:s,maxRequests:c,debounceTime:l,zoomOffset:f,visibleMinZoom:u,visibleMaxZoom:h,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let e=this.state.tileset,{zRange:r,modelMatrix:n}=this.props,o=e.update(this.context.viewport,{zRange:r,modelMatrix:n}),{isLoaded:s}=e,i=this.state.isLoaded!==s,a=this.state.frameNumber!==o;s&&(i||a)&&this._onViewportLoad(),a&&this.setState({frameNumber:o}),this.state.isLoaded=s}_onViewportLoad(){let{tileset:e}=this.state,{onViewportLoad:r}=this.props;r&&r(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,r){this.props.onTileError(e),r.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){let{data:r,getTileData:n,fetch:o}=this.props,{signal:s}=e;return e.url=typeof r=="string"||Array.isArray(r)?at(r,e):null,n?n(e):o&&e.url?o(e.url,{propName:"data",layer:this,signal:s}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){let r=e.sourceLayer,n=r.props.tile,o=e.info;return o.picked&&(o.tile=n),o.sourceTile=n,o.sourceTileSubLayer=r,o}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){let{visibleMinZoom:e,visibleMaxZoom:r,minZoom:n,extent:o}=this.props,s=this.context.viewport.zoom;if(e!=null&&s<e||r!=null&&s>r||n!=null&&!o&&s<n){for(let a of this.state.tileset.tiles)a.layers=null;return[]}return this.state.tileset.tiles.map(a=>{let c=this.getSubLayerPropsByTile(a);if(!(!a.isLoaded&&!a.content))if(a.layers)c&&a.layers[0]&&Object.keys(c).some(l=>a.layers[0].props[l]!==c[l])&&(a.layers=a.layers.map(l=>l.clone(c)));else{let l=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:a.id,updateTriggers:this.props.updateTriggers}),data:a.content,_offset:0,tile:a});a.layers=(0,Ds._flatten)(l,Boolean).map(f=>f.clone({tile:a,...c}))}return a.layers})}filterSubLayer({layer:e,cullRect:r}){let{tile:n}=e.props,{modelMatrix:o}=this.props;return this.state.tileset.isTileVisible(n,r,o?new P(o):null)}};eo.defaultProps=d_;eo.layerName="TileLayer";var ar=eo;var vd=D(je(),1),Rd=D(ze(),1);var m_=`struct TripsUniforms {
11
11
  fadeTrail: f32,
12
12
  trailLength: f32,
13
13
  currentTime: f32,
@@ -50,7 +50,7 @@ out float vTime;
50
50
  if(trips.fadeTrail) {
51
51
  color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength;
52
52
  }
53
- `},to=class extends Rd.PathLayer{getShaders(){let e=super.getShaders();return e.inject=this.context.device.type==="webgpu"?Bd:b_,e.modules=[...e.modules,Md],e}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({...this.context.device.type==="webgpu"?{instanceTimestamps:{size:2,accessor:"getTimestamps",update:this.calculateWebGPUTimestamps,bufferGroup:"path-instance-data"}}:{timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}}})}calculateWebGPUTimestamps(e,{data:r,props:n}){let{pathTesselator:o}=this.state,{instanceCount:s,vertexStarts:i}=o,a=new Float32Array(s*2),{iterable:c,objectInfo:l}=(0,vd.createIterable)(r);for(let f of c){l.index++;let u=i[l.index],h=i[l.index+1]??s;if(h<=u)continue;let p=n.getTimestamps?.(f,l)??[];a.set(Id(p,h-u,n._pathType==="loop"),u*2)}e.startIndices=i,e.value=a}draw(e){let{fadeTrail:r,trailLength:n,currentTime:o}=this.props,s={fadeTrail:r,trailLength:n,currentTime:o};this.state.model.shaderInputs.setProps({trips:s}),super.draw(e)}};to.layerName="TripsLayer";to.defaultProps=g_;var wd=to;var Ld=D(Yo(),1),Fd=D(ze(),1);var Oe=D(Yo(),1),Gs=D(ze(),1),ro=D(ke(),1);var A_=10;function x_(t,e){let r;return t==null?r=e:typeof t=="object"?r={...t,coverage:e}:r={getHexagon:t,coverage:e},r}var T_={...ro.PolygonLayer.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:t=>t.hexagon},extruded:!0},qr=class t extends Gs.CompositeLayer{initializeState(){t._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:e}){return this._shouldUseHighPrecision()?e.propsOrDataChanged:e.somethingChanged}updateState({props:e,changeFlags:r}){if(e.highPrecision!==!0&&(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagon)){let n=this._calculateH3DataProps();this.setState(n)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let e=-1,r=!1,n=!1,{iterable:o,objectInfo:s}=(0,Gs.createIterable)(this.props.data);for(let i of o){s.index++;let a=this.props.getHexagon(i,s),c=(0,Oe.getResolution)(a);if(e<0){if(e=c,!this.props.highPrecision)break}else if(e!==c){n=!0;break}if((0,Oe.isPentagon)(a)){r=!0;break}}return{resolution:e,edgeLengthKM:e>=0?(0,Oe.getHexagonEdgeLengthAvg)(e,"km"):0,hasMultipleRes:n,hasPentagon:r}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){let{resolution:e,hasPentagon:r,hasMultipleRes:n}=this.state,{viewport:o}=this.context;return!!o?.resolution||n||r||e>=0&&e<=5}return this.props.highPrecision}_updateVertices(e){if(this._shouldUseHighPrecision())return;let{resolution:r,edgeLengthKM:n,centerHex:o}=this.state;if(r<0)return;let s=this.props.centerHexagon||(0,Oe.latLngToCell)(e.latitude,e.longitude,r);if(o===s)return;if(o)try{if((0,Oe.gridDistance)(o,s)*n<A_)return}catch{}let{unitsPerMeter:i}=e.distanceScales,a=Ja(s),[c,l]=(0,Oe.cellToLatLng)(s),[f,u]=e.projectFlat([l,c]);a=a.map(h=>{let p=e.projectFlat(h);return[(p[0]-f)/i[0],(p[1]-u)/i[1]]}),this.setState({centerHex:s,vertices:a})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:e,material:r,coverage:n,extruded:o,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,getFillColor:h,getElevation:p,getLineColor:d,getLineWidth:m,transitions:b,updateTriggers:x}=this.props;return{elevationScale:e,extruded:o,coverage:n,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,material:r,getElevation:p,getFillColor:h,getLineColor:d,getLineWidth:m,transitions:b,updateTriggers:{getFillColor:x.getFillColor,getElevation:x.getElevation,getLineColor:x.getLineColor,getLineWidth:x.getLineWidth}}}_renderPolygonLayer(){let{data:e,getHexagon:r,updateTriggers:n,coverage:o}=this.props,s=this.getSubLayerClass("hexagon-cell-hifi",ro.PolygonLayer),i=this._getForwardProps();return i.updateTriggers.getPolygon=x_(n.getHexagon,o),new s(i,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:i.updateTriggers}),{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(a,c)=>{let l=r(a,c);return ds(Ja(l,o))}})}_renderColumnLayer(){let{data:e,getHexagon:r,updateTriggers:n}=this.props,o=this.getSubLayerClass("hexagon-cell",ro.ColumnLayer),s=this._getForwardProps();return s.updateTriggers.getPosition=n.getHexagon,new o(s,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:s.updateTriggers}),{data:e,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:Gh.bind(null,r)})}};qr.defaultProps=T_;qr.layerName="H3HexagonLayer";qr._checkH3Lib=()=>{};var Vs=qr;var y_={getHexagons:{type:"accessor",value:t=>t.hexagons}},no=class extends Fe{initializeState(){Vs._checkH3Lib()}updateState({props:e,changeFlags:r}){if(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagons){let{data:n,getHexagons:o}=e,s=[],{iterable:i,objectInfo:a}=(0,Fd.createIterable)(n);for(let c of i){a.index++;let l=o(c,a),f=(0,Ld.cellsToMultiPolygon)(l,!0);for(let u of f){for(let h of u)ps(h);s.push(this.getSubLayerRow({polygon:u},c,a.index))}}this.setState({polygons:s})}}indexToBounds(){let{getElevation:e,getFillColor:r,getLineColor:n,getLineWidth:o}=this.props;return{data:this.state.polygons,getPolygon:s=>s.polygon,getElevation:this.getSubLayerAccessor(e),getFillColor:this.getSubLayerAccessor(r),getLineColor:this.getSubLayerAccessor(n),getLineWidth:this.getSubLayerAccessor(o)}}};no.layerName="H3ClusterLayer";no.defaultProps=y_;var Pd=no;var L0=D(Uc(),1),Vt=D(ze(),1),F0=D(ke(),1),P0=D(Hs(),1);function Dd(t,e=!0){return t??e}function Gd(t=[0,0,0],e=!0){return e?t.map(r=>r/255):[...t]}var Hd=D(Dc(),1);var Gc=`precision highp int;
53
+ `},to=class extends Rd.PathLayer{getShaders(){let e=super.getShaders();return e.inject=this.context.device.type==="webgpu"?Bd:b_,e.modules=[...e.modules,Md],e}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({...this.context.device.type==="webgpu"?{instanceTimestamps:{size:2,accessor:"getTimestamps",update:this.calculateWebGPUTimestamps,bufferGroup:"path-instance-data"}}:{timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}}})}calculateWebGPUTimestamps(e,{data:r,props:n}){let{pathTesselator:o}=this.state,{instanceCount:s,vertexStarts:i}=o,a=new Float32Array(s*2),{iterable:c,objectInfo:l}=(0,vd.createIterable)(r);for(let f of c){l.index++;let u=i[l.index],h=i[l.index+1]??s;if(h<=u)continue;let p=n.getTimestamps?.(f,l)??[];a.set(Id(p,h-u,n._pathType==="loop"),u*2)}e.startIndices=i,e.value=a}draw(e){let{fadeTrail:r,trailLength:n,currentTime:o}=this.props,s={fadeTrail:r,trailLength:n,currentTime:o};this.state.model.shaderInputs.setProps({trips:s}),super.draw(e)}};to.layerName="TripsLayer";to.defaultProps=g_;var wd=to;var Ld=D(Yo(),1),Fd=D(je(),1);var Ue=D(Yo(),1),Gs=D(je(),1),ro=D(ze(),1);var A_=10;function x_(t,e){let r;return t==null?r=e:typeof t=="object"?r={...t,coverage:e}:r={getHexagon:t,coverage:e},r}var T_={...ro.PolygonLayer.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:t=>t.hexagon},extruded:!0},qr=class t extends Gs.CompositeLayer{initializeState(){t._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:e}){return this._shouldUseHighPrecision()?e.propsOrDataChanged:e.somethingChanged}updateState({props:e,changeFlags:r}){if(e.highPrecision!==!0&&(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagon)){let n=this._calculateH3DataProps();this.setState(n)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let e=-1,r=!1,n=!1,{iterable:o,objectInfo:s}=(0,Gs.createIterable)(this.props.data);for(let i of o){s.index++;let a=this.props.getHexagon(i,s),c=(0,Ue.getResolution)(a);if(e<0){if(e=c,!this.props.highPrecision)break}else if(e!==c){n=!0;break}if((0,Ue.isPentagon)(a)){r=!0;break}}return{resolution:e,edgeLengthKM:e>=0?(0,Ue.getHexagonEdgeLengthAvg)(e,"km"):0,hasMultipleRes:n,hasPentagon:r}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){let{resolution:e,hasPentagon:r,hasMultipleRes:n}=this.state,{viewport:o}=this.context;return!!o?.resolution||n||r||e>=0&&e<=5}return this.props.highPrecision}_updateVertices(e){if(this._shouldUseHighPrecision())return;let{resolution:r,edgeLengthKM:n,centerHex:o}=this.state;if(r<0)return;let s=this.props.centerHexagon||(0,Ue.latLngToCell)(e.latitude,e.longitude,r);if(o===s)return;if(o)try{if((0,Ue.gridDistance)(o,s)*n<A_)return}catch{}let{unitsPerMeter:i}=e.distanceScales,a=Ja(s),[c,l]=(0,Ue.cellToLatLng)(s),[f,u]=e.projectFlat([l,c]);a=a.map(h=>{let p=e.projectFlat(h);return[(p[0]-f)/i[0],(p[1]-u)/i[1]]}),this.setState({centerHex:s,vertices:a})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:e,material:r,coverage:n,extruded:o,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,getFillColor:h,getElevation:p,getLineColor:d,getLineWidth:m,transitions:b,updateTriggers:x}=this.props;return{elevationScale:e,extruded:o,coverage:n,wireframe:s,stroked:i,filled:a,lineWidthUnits:c,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:u,material:r,getElevation:p,getFillColor:h,getLineColor:d,getLineWidth:m,transitions:b,updateTriggers:{getFillColor:x.getFillColor,getElevation:x.getElevation,getLineColor:x.getLineColor,getLineWidth:x.getLineWidth}}}_renderPolygonLayer(){let{data:e,getHexagon:r,updateTriggers:n,coverage:o}=this.props,s=this.getSubLayerClass("hexagon-cell-hifi",ro.PolygonLayer),i=this._getForwardProps();return i.updateTriggers.getPolygon=x_(n.getHexagon,o),new s(i,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:i.updateTriggers}),{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(a,c)=>{let l=r(a,c);return ds(Ja(l,o))}})}_renderColumnLayer(){let{data:e,getHexagon:r,updateTriggers:n}=this.props,o=this.getSubLayerClass("hexagon-cell",ro.ColumnLayer),s=this._getForwardProps();return s.updateTriggers.getPosition=n.getHexagon,new o(s,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:s.updateTriggers}),{data:e,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:Gh.bind(null,r)})}};qr.defaultProps=T_;qr.layerName="H3HexagonLayer";qr._checkH3Lib=()=>{};var Vs=qr;var y_={getHexagons:{type:"accessor",value:t=>t.hexagons}},no=class extends Pe{initializeState(){Vs._checkH3Lib()}updateState({props:e,changeFlags:r}){if(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagons){let{data:n,getHexagons:o}=e,s=[],{iterable:i,objectInfo:a}=(0,Fd.createIterable)(n);for(let c of i){a.index++;let l=o(c,a),f=(0,Ld.cellsToMultiPolygon)(l,!0);for(let u of f){for(let h of u)ps(h);s.push(this.getSubLayerRow({polygon:u},c,a.index))}}this.setState({polygons:s})}}indexToBounds(){let{getElevation:e,getFillColor:r,getLineColor:n,getLineWidth:o}=this.props;return{data:this.state.polygons,getPolygon:s=>s.polygon,getElevation:this.getSubLayerAccessor(e),getFillColor:this.getSubLayerAccessor(r),getLineColor:this.getSubLayerAccessor(n),getLineWidth:this.getSubLayerAccessor(o)}}};no.layerName="H3ClusterLayer";no.defaultProps=y_;var Pd=no;var L0=D(Uc(),1),Fe=D(je(),1),F0=D(ze(),1),P0=D(Hs(),1);function Dd(t,e=!0){return t??e}function Gd(t=[0,0,0],e=!0){return e?t.map(r=>r/255):[...t]}var Hd=D(Dc(),1);var Gc=`precision highp int;
54
54
 
55
55
  // #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
56
56
  struct AmbientLight {
@@ -3612,7 +3612,7 @@ fn pbr_filterColor(vertexColor: vec4<f32>) -> vec4<f32> {
3612
3612
  };
3613
3613
 
3614
3614
  @group(0) @binding(auto) var<uniform> pbrProjection: pbrProjectionUniforms;
3615
- `,Yd={name:"pbrProjection",bindingLayout:[{name:"pbrProjection",group:0}],source:v_,vs:Kd,fs:Kd,getUniforms:t=>t,uniformTypes:{modelViewProjectionMatrix:"mat4x4<f32>",modelMatrix:"mat4x4<f32>",normalMatrix:"mat4x4<f32>",camera:"vec3<f32>"}};var js={props:{},uniforms:{},defaultUniforms:{unlit:!1,baseColorMapEnabled:!1,baseColorFactor:[1,1,1,1],normalMapEnabled:!1,normalScale:1,emissiveMapEnabled:!1,emissiveFactor:[0,0,0],metallicRoughnessValues:[1,1],metallicRoughnessMapEnabled:!1,occlusionMapEnabled:!1,occlusionStrength:1,alphaCutoffEnabled:!1,alphaCutoff:.5,IBLenabled:!1,scaleIBLAmbient:[1,1],scaleDiffBaseMR:[0,0,0,0],scaleFGDSpec:[0,0,0,0],specularColorFactor:[1,1,1],specularIntensityFactor:1,specularColorMapEnabled:!1,specularIntensityMapEnabled:!1,ior:1.5,transmissionFactor:0,transmissionMapEnabled:!1,thicknessFactor:0,attenuationDistance:1e9,attenuationColor:[1,1,1],clearcoatFactor:0,clearcoatRoughnessFactor:0,clearcoatMapEnabled:!1,clearcoatRoughnessMapEnabled:!1,sheenColorFactor:[0,0,0],sheenRoughnessFactor:0,sheenColorMapEnabled:!1,sheenRoughnessMapEnabled:!1,iridescenceFactor:0,iridescenceIor:1.3,iridescenceThicknessRange:[100,400],iridescenceMapEnabled:!1,anisotropyStrength:0,anisotropyRotation:0,anisotropyDirection:[1,0],anisotropyMapEnabled:!1,emissiveStrength:1,dispersion:0,baseColorUVSet:0,baseColorUVTransform:[1,0,0,0,1,0,0,0,1],metallicRoughnessUVSet:0,metallicRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],normalUVSet:0,normalUVTransform:[1,0,0,0,1,0,0,0,1],occlusionUVSet:0,occlusionUVTransform:[1,0,0,0,1,0,0,0,1],emissiveUVSet:0,emissiveUVTransform:[1,0,0,0,1,0,0,0,1],specularColorUVSet:0,specularColorUVTransform:[1,0,0,0,1,0,0,0,1],specularIntensityUVSet:0,specularIntensityUVTransform:[1,0,0,0,1,0,0,0,1],transmissionUVSet:0,transmissionUVTransform:[1,0,0,0,1,0,0,0,1],thicknessUVSet:0,thicknessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatUVSet:0,clearcoatUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatRoughnessUVSet:0,clearcoatRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatNormalUVSet:0,clearcoatNormalUVTransform:[1,0,0,0,1,0,0,0,1],sheenColorUVSet:0,sheenColorUVTransform:[1,0,0,0,1,0,0,0,1],sheenRoughnessUVSet:0,sheenRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceUVSet:0,iridescenceUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceThicknessUVSet:0,iridescenceThicknessUVTransform:[1,0,0,0,1,0,0,0,1],anisotropyUVSet:0,anisotropyUVTransform:[1,0,0,0,1,0,0,0,1],bumpFactor:1,bumpMapEnabled:!1,diffuseTransmissionFactor:0,diffuseTransmissionMapEnabled:!1,diffuseTransmissionColorFactor:[1,1,1],diffuseTransmissionColorMapEnabled:!1,multiscatterColorFactor:[0,0,0],multiscatterColorMapEnabled:!1,scatterAnisotropy:0,bumpUVSet:0,bumpUVTransform:[1,0,0,0,1,0,0,0,1],diffuseTransmissionUVSet:0,diffuseTransmissionUVTransform:[1,0,0,0,1,0,0,0,1],diffuseTransmissionColorUVSet:0,diffuseTransmissionColorUVTransform:[1,0,0,0,1,0,0,0,1],multiscatterColorUVSet:0,multiscatterColorUVTransform:[1,0,0,0,1,0,0,0,1]},name:"pbrMaterial",firstBindingSlot:0,bindingLayout:[{name:"pbrMaterial",group:3},{name:"pbr_baseColorSampler",group:3},{name:"pbr_normalSampler",group:3},{name:"pbr_emissiveSampler",group:3},{name:"pbr_metallicRoughnessSampler",group:3},{name:"pbr_occlusionSampler",group:3},{name:"pbr_specularColorSampler",group:3},{name:"pbr_specularIntensitySampler",group:3},{name:"pbr_transmissionSampler",group:3},{name:"pbr_thicknessSampler",group:3},{name:"pbr_clearcoatSampler",group:3},{name:"pbr_clearcoatRoughnessSampler",group:3},{name:"pbr_clearcoatNormalSampler",group:3},{name:"pbr_sheenColorSampler",group:3},{name:"pbr_sheenRoughnessSampler",group:3},{name:"pbr_iridescenceSampler",group:3},{name:"pbr_iridescenceThicknessSampler",group:3},{name:"pbr_anisotropySampler",group:3},{name:"pbr_bumpSampler",group:3},{name:"pbr_diffuseTransmissionSampler",group:3},{name:"pbr_diffuseTransmissionColorSampler",group:3},{name:"pbr_multiscatterColorSampler",group:3}],dependencies:[kd,qd,Yd],source:Xd,vs:Jd,fs:Wd,defines:{LIGHTING_FRAGMENT:!0,HAS_NORMALMAP:!1,HAS_EMISSIVEMAP:!1,HAS_OCCLUSIONMAP:!1,HAS_BASECOLORMAP:!1,HAS_METALROUGHNESSMAP:!1,HAS_SPECULARCOLORMAP:!1,HAS_SPECULARINTENSITYMAP:!1,HAS_TRANSMISSIONMAP:!1,HAS_THICKNESSMAP:!1,HAS_CLEARCOATMAP:!1,HAS_CLEARCOATROUGHNESSMAP:!1,HAS_CLEARCOATNORMALMAP:!1,HAS_SHEENCOLORMAP:!1,HAS_SHEENROUGHNESSMAP:!1,HAS_IRIDESCENCEMAP:!1,HAS_IRIDESCENCETHICKNESSMAP:!1,HAS_ANISOTROPYMAP:!1,HAS_BUMPMAP:!1,HAS_DIFFUSETRANSMISSIONMAP:!1,HAS_DIFFUSETRANSMISSIONCOLORMAP:!1,HAS_MULTISCATTERCOLORMAP:!1,USE_MATERIAL_EXTENSIONS:!1,ALPHA_CUTOFF:!1,USE_IBL:!1,PBR_DEBUG:!1},getUniforms:t=>t,uniformTypes:{unlit:"i32",baseColorMapEnabled:"i32",baseColorFactor:"vec4<f32>",normalMapEnabled:"i32",normalScale:"f32",emissiveMapEnabled:"i32",emissiveFactor:"vec3<f32>",metallicRoughnessValues:"vec2<f32>",metallicRoughnessMapEnabled:"i32",occlusionMapEnabled:"i32",occlusionStrength:"f32",alphaCutoffEnabled:"i32",alphaCutoff:"f32",specularColorFactor:"vec3<f32>",specularIntensityFactor:"f32",specularColorMapEnabled:"i32",specularIntensityMapEnabled:"i32",ior:"f32",transmissionFactor:"f32",transmissionMapEnabled:"i32",thicknessFactor:"f32",attenuationDistance:"f32",attenuationColor:"vec3<f32>",clearcoatFactor:"f32",clearcoatRoughnessFactor:"f32",clearcoatMapEnabled:"i32",clearcoatRoughnessMapEnabled:"i32",sheenColorFactor:"vec3<f32>",sheenRoughnessFactor:"f32",sheenColorMapEnabled:"i32",sheenRoughnessMapEnabled:"i32",iridescenceFactor:"f32",iridescenceIor:"f32",iridescenceThicknessRange:"vec2<f32>",iridescenceMapEnabled:"i32",anisotropyStrength:"f32",anisotropyRotation:"f32",anisotropyDirection:"vec2<f32>",anisotropyMapEnabled:"i32",emissiveStrength:"f32",dispersion:"f32",IBLenabled:"i32",scaleIBLAmbient:"vec2<f32>",scaleDiffBaseMR:"vec4<f32>",scaleFGDSpec:"vec4<f32>",baseColorUVSet:"i32",baseColorUVTransform:"mat3x3<f32>",metallicRoughnessUVSet:"i32",metallicRoughnessUVTransform:"mat3x3<f32>",normalUVSet:"i32",normalUVTransform:"mat3x3<f32>",occlusionUVSet:"i32",occlusionUVTransform:"mat3x3<f32>",emissiveUVSet:"i32",emissiveUVTransform:"mat3x3<f32>",specularColorUVSet:"i32",specularColorUVTransform:"mat3x3<f32>",specularIntensityUVSet:"i32",specularIntensityUVTransform:"mat3x3<f32>",transmissionUVSet:"i32",transmissionUVTransform:"mat3x3<f32>",thicknessUVSet:"i32",thicknessUVTransform:"mat3x3<f32>",clearcoatUVSet:"i32",clearcoatUVTransform:"mat3x3<f32>",clearcoatRoughnessUVSet:"i32",clearcoatRoughnessUVTransform:"mat3x3<f32>",clearcoatNormalUVSet:"i32",clearcoatNormalUVTransform:"mat3x3<f32>",sheenColorUVSet:"i32",sheenColorUVTransform:"mat3x3<f32>",sheenRoughnessUVSet:"i32",sheenRoughnessUVTransform:"mat3x3<f32>",iridescenceUVSet:"i32",iridescenceUVTransform:"mat3x3<f32>",iridescenceThicknessUVSet:"i32",iridescenceThicknessUVTransform:"mat3x3<f32>",anisotropyUVSet:"i32",anisotropyUVTransform:"mat3x3<f32>",bumpFactor:"f32",bumpMapEnabled:"i32",diffuseTransmissionFactor:"f32",diffuseTransmissionMapEnabled:"i32",diffuseTransmissionColorFactor:"vec3<f32>",diffuseTransmissionColorMapEnabled:"i32",multiscatterColorFactor:"vec3<f32>",multiscatterColorMapEnabled:"i32",scatterAnisotropy:"f32",bumpUVSet:"i32",bumpUVTransform:"mat3x3<f32>",diffuseTransmissionUVSet:"i32",diffuseTransmissionUVTransform:"mat3x3<f32>",diffuseTransmissionColorUVSet:"i32",diffuseTransmissionColorUVTransform:"mat3x3<f32>",multiscatterColorUVSet:"i32",multiscatterColorUVTransform:"mat3x3<f32>"}};var Y;(function(t){t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN",t[t.ONE=1]="ONE",t[t.SRC_ALPHA=770]="SRC_ALPHA",t[t.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",t[t.FUNC_ADD=32774]="FUNC_ADD",t[t.LINEAR=9729]="LINEAR",t[t.NEAREST=9728]="NEAREST",t[t.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",t[t.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",t[t.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",t[t.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",t[t.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",t[t.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",t[t.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",t[t.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",t[t.REPEAT=10497]="REPEAT",t[t.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t[t.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"})(Y||(Y={}));var ee=D(Dc(),1);var Qd=[ie("baseColor","pbr_baseColorSampler","baseColorTexture",["pbrMetallicRoughness","baseColorTexture"]),ie("metallicRoughness","pbr_metallicRoughnessSampler","metallicRoughnessTexture",["pbrMetallicRoughness","metallicRoughnessTexture"]),ie("normal","pbr_normalSampler","normalTexture",["normalTexture"]),ie("occlusion","pbr_occlusionSampler","occlusionTexture",["occlusionTexture"]),ie("emissive","pbr_emissiveSampler","emissiveTexture",["emissiveTexture"]),ie("specularColor","pbr_specularColorSampler","KHR_materials_specular.specularColorTexture",["extensions","KHR_materials_specular","specularColorTexture"]),ie("specularIntensity","pbr_specularIntensitySampler","KHR_materials_specular.specularTexture",["extensions","KHR_materials_specular","specularTexture"]),ie("transmission","pbr_transmissionSampler","KHR_materials_transmission.transmissionTexture",["extensions","KHR_materials_transmission","transmissionTexture"]),ie("thickness","pbr_thicknessSampler","KHR_materials_volume.thicknessTexture",["extensions","KHR_materials_volume","thicknessTexture"]),ie("clearcoat","pbr_clearcoatSampler","KHR_materials_clearcoat.clearcoatTexture",["extensions","KHR_materials_clearcoat","clearcoatTexture"]),ie("clearcoatRoughness","pbr_clearcoatRoughnessSampler","KHR_materials_clearcoat.clearcoatRoughnessTexture",["extensions","KHR_materials_clearcoat","clearcoatRoughnessTexture"]),ie("clearcoatNormal","pbr_clearcoatNormalSampler","KHR_materials_clearcoat.clearcoatNormalTexture",["extensions","KHR_materials_clearcoat","clearcoatNormalTexture"]),ie("sheenColor","pbr_sheenColorSampler","KHR_materials_sheen.sheenColorTexture",["extensions","KHR_materials_sheen","sheenColorTexture"]),ie("sheenRoughness","pbr_sheenRoughnessSampler","KHR_materials_sheen.sheenRoughnessTexture",["extensions","KHR_materials_sheen","sheenRoughnessTexture"]),ie("iridescence","pbr_iridescenceSampler","KHR_materials_iridescence.iridescenceTexture",["extensions","KHR_materials_iridescence","iridescenceTexture"]),ie("iridescenceThickness","pbr_iridescenceThicknessSampler","KHR_materials_iridescence.iridescenceThicknessTexture",["extensions","KHR_materials_iridescence","iridescenceThicknessTexture"]),ie("anisotropy","pbr_anisotropySampler","KHR_materials_anisotropy.anisotropyTexture",["extensions","KHR_materials_anisotropy","anisotropyTexture"]),ie("bump","pbr_bumpSampler","EXT_materials_bump.bumpTexture",["extensions","EXT_materials_bump","bumpTexture"]),ie("diffuseTransmission","pbr_diffuseTransmissionSampler","KHR_materials_diffuse_transmission.diffuseTransmissionTexture",["extensions","KHR_materials_diffuse_transmission","diffuseTransmissionTexture"]),ie("diffuseTransmissionColor","pbr_diffuseTransmissionColorSampler","KHR_materials_diffuse_transmission.diffuseTransmissionColorTexture",["extensions","KHR_materials_diffuse_transmission","diffuseTransmissionColorTexture"]),ie("multiscatterColor","pbr_multiscatterColorSampler","KHR_materials_volume_scatter.multiscatterColorTexture",["extensions","KHR_materials_volume_scatter","multiscatterColorTexture"])],R_=new Map(Qd.map(t=>[t.slot,t]));function ie(t,e,r,n){return{slot:t,binding:e,displayName:r,pathSegments:n,colorSpace:t==="baseColor"||t==="emissive"||t==="specularColor"||t==="sheenColor"||t==="diffuseTransmissionColor"||t==="multiscatterColor"?"srgb":"linear",uvSetUniform:`${t}UVSet`,uvTransformUniform:`${t}UVTransform`}}function Zd(){return Qd}function $d(t){let e=R_.get(t);if(!e)throw new Error(`Unknown PBR texture transform slot ${t}`);return e}function em(t){let e=t?.extensions?.KHR_texture_transform;return{offset:e?.offset?[e.offset[0],e.offset[1]]:[0,0],rotation:e?.rotation??0,scale:e?.scale?[e.scale[0],e.scale[1]]:[1,1]}}function Vc(t){return t?.extensions?.KHR_texture_transform?.texCoord??t?.texCoord??0}function tm(t){let e=new z().set(1,0,0,0,1,0,t.offset[0],t.offset[1],1),r=new z().set(Math.cos(t.rotation),Math.sin(t.rotation),0,-Math.sin(t.rotation),Math.cos(t.rotation),0,0,0,1),n=new z().set(t.scale[0],0,0,0,t.scale[1],0,0,0,1);return Array.from(e.multiplyRight(r).multiplyRight(n))}function nm(t={}){let e=t.wrapS??t.parameters?.[Y.TEXTURE_WRAP_S],r=t.wrapT??t.parameters?.[Y.TEXTURE_WRAP_T],n=t.magFilter??t.parameters?.[Y.TEXTURE_MAG_FILTER],o=t.minFilter??t.parameters?.[Y.TEXTURE_MIN_FILTER],s=rm(e),i=rm(r),a=w_(n);return{...s?{addressModeU:s}:{},...i?{addressModeV:i}:{},...a?{magFilter:a}:{},...L_(o)}}function rm(t){switch(t){case Y.CLAMP_TO_EDGE:return"clamp-to-edge";case Y.REPEAT:return"repeat";case Y.MIRRORED_REPEAT:return"mirror-repeat";default:return}}function w_(t){switch(t){case Y.NEAREST:return"nearest";case Y.LINEAR:return"linear";default:return}}function L_(t){switch(t){case Y.NEAREST:return{minFilter:"nearest"};case Y.LINEAR:return{minFilter:"linear"};case Y.NEAREST_MIPMAP_NEAREST:return{minFilter:"nearest",mipmapFilter:"nearest"};case Y.LINEAR_MIPMAP_NEAREST:return{minFilter:"linear",mipmapFilter:"nearest"};case Y.NEAREST_MIPMAP_LINEAR:return{minFilter:"nearest",mipmapFilter:"linear"};case Y.LINEAR_MIPMAP_LINEAR:return{minFilter:"linear",mipmapFilter:"linear"};default:return{}}}var F_={NORMAL:["NORMAL","normals"],TANGENT:["TANGENT"],TEXCOORD_0:["TEXCOORD_0","texCoords"],TEXCOORD_1:["TEXCOORD_1","texCoords1"],JOINTS_0:["JOINTS_0"],WEIGHTS_0:["WEIGHTS_0"],COLOR_0:["COLOR_0","colors"]};function Hc(t,e,r,n){let o={defines:{MANUAL_SRGB:!0},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};o.defines.USE_TEX_LOD=!0;let{imageBasedLightingEnvironment:s}=n;return s&&(o.bindings.pbr_diffuseEnvSampler=s.diffuseEnvSampler.texture,o.bindings.pbr_specularEnvSampler=s.specularEnvSampler.texture,o.bindings.pbr_brdfLUT=s.brdfLutTexture.texture,o.uniforms.IBLenabled=!0,o.uniforms.scaleIBLAmbient=[1,1]),n?.pbrDebug&&(o.defines.PBR_DEBUG=!0,o.uniforms.scaleDiffBaseMR=[0,0,0,0],o.uniforms.scaleFGDSpec=[0,0,0,0]),Xe(r,"NORMAL")&&(o.defines.HAS_NORMALS=!0),Xe(r,"TANGENT")&&n?.useTangents&&(o.defines.HAS_TANGENTS=!0),Xe(r,"TEXCOORD_0")&&(o.defines.HAS_UV=!0),Xe(r,"TEXCOORD_1")&&(o.defines.HAS_UV_1=!0),Xe(r,"JOINTS_0")&&Xe(r,"WEIGHTS_0")&&(o.defines.HAS_SKIN=!0),Xe(r,"COLOR_0")&&(o.defines.HAS_COLORS=!0),n?.imageBasedLightingEnvironment&&(o.defines.USE_IBL=!0),n?.lights&&(o.defines.USE_LIGHTS=!0),e&&(n.validateAttributes!==!1&&P_(e,r),O_(t,e,o,r,n.gltf)),o}function P_(t,e){let r=om(t,0);r.length>0&&!Xe(e,"TEXCOORD_0")&&ee.log.warn(`glTF material uses ${r.join(", ")} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();let n=om(t,1);if(n.length>0&&!Xe(e,"TEXCOORD_1")&&ee.log.warn(`glTF material uses ${n.join(", ")} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)(),!!(t.unlit||t.extensions?.KHR_materials_unlit)||Xe(e,"NORMAL"))return;let s=t.normalTexture?"lit PBR shading with normalTexture":"lit PBR shading";ee.log.warn(`glTF primitive is missing NORMAL while using ${s}; shading will fall back to geometric normals`)()}function om(t,e){let r=[];for(let n of Zd()){let o=N_(t,n.pathSegments);o&&Vc(o)===e&&r.push(n.displayName)}return r}function Xe(t,e){return F_[e].some(r=>!!t[r])}function N_(t,e){let r=t;for(let n of e)if(r=r?.[n],!r)return null;return r}function O_(t,e,r,n,o){if(r.uniforms.unlit=!!(e.unlit||e.extensions?.KHR_materials_unlit),e.pbrMetallicRoughness&&G_(t,e.pbrMetallicRoughness,r,n,o),e.normalTexture){ae(t,e.normalTexture,"pbr_normalSampler",r,{featureOptions:{define:"HAS_NORMALMAP",enabledUniformName:"normalMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"normal"});let{scale:s=1}=e.normalTexture;r.uniforms.normalScale=s}if(e.occlusionTexture){ae(t,e.occlusionTexture,"pbr_occlusionSampler",r,{featureOptions:{define:"HAS_OCCLUSIONMAP",enabledUniformName:"occlusionMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"occlusion"});let{strength:s=1}=e.occlusionTexture;r.uniforms.occlusionStrength=s}switch(r.uniforms.emissiveFactor=e.emissiveFactor||[0,0,0],e.emissiveTexture&&ae(t,e.emissiveTexture,"pbr_emissiveSampler",r,{featureOptions:{define:"HAS_EMISSIVEMAP",enabledUniformName:"emissiveMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"emissive"}),V_(t,e.extensions,r,o,n),e.alphaMode||"OPAQUE"){case"OPAQUE":break;case"MASK":{let{alphaCutoff:s=.5}=e;r.defines.ALPHA_CUTOFF=!0,r.uniforms.alphaCutoffEnabled=!0,r.uniforms.alphaCutoff=s;break}case"BLEND":ee.log.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),U_(r);break}}function U_(t){t.parameters.blend=!0,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="src-alpha",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.blendEquation=Y.FUNC_ADD,t.glParameters.blendFunc=[Y.SRC_ALPHA,Y.ONE_MINUS_SRC_ALPHA,Y.ONE,Y.ONE_MINUS_SRC_ALPHA]}function D_(t){t.parameters.blend=!0,t.parameters.depthWriteEnabled=!1,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="one",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.depthMask=!1,t.glParameters.blendEquation=Y.FUNC_ADD,t.glParameters.blendFunc=[Y.ONE,Y.ONE_MINUS_SRC_ALPHA,Y.ONE,Y.ONE_MINUS_SRC_ALPHA]}function G_(t,e,r,n,o){e.baseColorTexture&&ae(t,e.baseColorTexture,"pbr_baseColorSampler",r,{featureOptions:{define:"HAS_BASECOLORMAP",enabledUniformName:"baseColorMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"baseColor"}),r.uniforms.baseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&ae(t,e.metallicRoughnessTexture,"pbr_metallicRoughnessSampler",r,{featureOptions:{define:"HAS_METALROUGHNESSMAP",enabledUniformName:"metallicRoughnessMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"metallicRoughness"});let{metallicFactor:s=1,roughnessFactor:i=1}=e;r.uniforms.metallicRoughnessValues=[s,i]}function V_(t,e,r,n,o={}){e&&(H_(e)&&(r.defines.USE_MATERIAL_EXTENSIONS=!0),k_(t,e.KHR_materials_specular,r,n,o),z_(e.KHR_materials_ior,r),q_(t,e.EXT_materials_bump,r,n,o),j_(t,e.KHR_materials_transmission,r,n,o),J_(t,e.KHR_materials_diffuse_transmission,r,n,o),W_(t,e.KHR_materials_volume,r,n,o),X_(t,e.KHR_materials_volume_scatter,e.KHR_materials_volume,r,n,o),K_(e.KHR_materials_dispersion,r),Y_(t,e.KHR_materials_clearcoat,r,n,o),Q_(t,e.KHR_materials_sheen,r,n,o),Z_(t,e.KHR_materials_iridescence,r,n,o),$_(t,e.KHR_materials_anisotropy,r,n,o),eC(e.KHR_materials_emissive_strength,r))}function H_(t){return!!(t.KHR_materials_specular||t.KHR_materials_ior||t.EXT_materials_bump||t.KHR_materials_transmission||t.KHR_materials_diffuse_transmission||t.KHR_materials_volume||t.KHR_materials_volume_scatter||t.KHR_materials_dispersion||t.KHR_materials_clearcoat||t.KHR_materials_sheen||t.KHR_materials_iridescence||t.KHR_materials_anisotropy)}function k_(t,e,r,n,o={}){e&&(e.specularColorFactor&&(r.uniforms.specularColorFactor=e.specularColorFactor),e.specularFactor!==void 0&&(r.uniforms.specularIntensityFactor=e.specularFactor),e.specularColorTexture&&ae(t,e.specularColorTexture,"pbr_specularColorSampler",r,{featureOptions:{define:"HAS_SPECULARCOLORMAP",enabledUniformName:"specularColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularColor"}),e.specularTexture&&ae(t,e.specularTexture,"pbr_specularIntensitySampler",r,{featureOptions:{define:"HAS_SPECULARINTENSITYMAP",enabledUniformName:"specularIntensityMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularIntensity"}))}function z_(t,e){t?.ior!==void 0&&(e.uniforms.ior=t.ior)}function j_(t,e,r,n,o={}){e&&(e.transmissionFactor!==void 0&&(r.uniforms.transmissionFactor=e.transmissionFactor),e.transmissionTexture&&ae(t,e.transmissionTexture,"pbr_transmissionSampler",r,{featureOptions:{define:"HAS_TRANSMISSIONMAP",enabledUniformName:"transmissionMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"transmission"}),((e.transmissionFactor??0)>0||e.transmissionTexture)&&(ee.log.warn("KHR_materials_transmission uses a premultiplied-alpha blending approximation and may require mesh sorting")(),D_(r)))}function q_(t,e,r,n,o={}){e&&(r.uniforms.bumpFactor=Math.max(e.bumpFactor??1,0),e.bumpTexture&&ae(t,e.bumpTexture,"pbr_bumpSampler",r,{featureOptions:{define:"HAS_BUMPMAP",enabledUniformName:"bumpMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"bump"}))}function J_(t,e,r,n,o={}){e&&(r.uniforms.diffuseTransmissionFactor=Math.min(Math.max(e.diffuseTransmissionFactor??0,0),1),r.uniforms.diffuseTransmissionColorFactor=e.diffuseTransmissionColorFactor||[1,1,1],e.diffuseTransmissionTexture&&ae(t,e.diffuseTransmissionTexture,"pbr_diffuseTransmissionSampler",r,{featureOptions:{define:"HAS_DIFFUSETRANSMISSIONMAP",enabledUniformName:"diffuseTransmissionMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"diffuseTransmission"}),e.diffuseTransmissionColorTexture&&ae(t,e.diffuseTransmissionColorTexture,"pbr_diffuseTransmissionColorSampler",r,{featureOptions:{define:"HAS_DIFFUSETRANSMISSIONCOLORMAP",enabledUniformName:"diffuseTransmissionColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"diffuseTransmissionColor"}))}function W_(t,e,r,n,o={}){e&&(e.thicknessFactor!==void 0&&(r.uniforms.thicknessFactor=e.thicknessFactor),e.thicknessTexture&&ae(t,e.thicknessTexture,"pbr_thicknessSampler",r,{featureOptions:{define:"HAS_THICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"thickness"}),e.attenuationDistance!==void 0&&(r.uniforms.attenuationDistance=e.attenuationDistance),e.attenuationColor&&(r.uniforms.attenuationColor=e.attenuationColor))}function X_(t,e,r,n,o,s={}){!e||!r||(n.uniforms.multiscatterColorFactor=e.multiscatterColorFactor||e.multiscatterColor||[0,0,0],n.uniforms.scatterAnisotropy=Math.min(Math.max(e.scatterAnisotropy??0,-.999),.999),e.multiscatterColorTexture&&ae(t,e.multiscatterColorTexture,"pbr_multiscatterColorSampler",n,{featureOptions:{define:"HAS_MULTISCATTERCOLORMAP",enabledUniformName:"multiscatterColorMapEnabled"},gltf:o,attributes:s,textureTransformSlot:"multiscatterColor"}))}function K_(t,e){t?.dispersion!==void 0&&(e.uniforms.dispersion=Math.max(t.dispersion,0))}function Y_(t,e,r,n,o={}){e&&(e.clearcoatFactor!==void 0&&(r.uniforms.clearcoatFactor=e.clearcoatFactor),e.clearcoatRoughnessFactor!==void 0&&(r.uniforms.clearcoatRoughnessFactor=e.clearcoatRoughnessFactor),e.clearcoatTexture&&ae(t,e.clearcoatTexture,"pbr_clearcoatSampler",r,{featureOptions:{define:"HAS_CLEARCOATMAP",enabledUniformName:"clearcoatMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoat"}),e.clearcoatRoughnessTexture&&ae(t,e.clearcoatRoughnessTexture,"pbr_clearcoatRoughnessSampler",r,{featureOptions:{define:"HAS_CLEARCOATROUGHNESSMAP",enabledUniformName:"clearcoatRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoatRoughness"}),e.clearcoatNormalTexture&&ae(t,e.clearcoatNormalTexture,"pbr_clearcoatNormalSampler",r,{featureOptions:{define:"HAS_CLEARCOATNORMALMAP"},gltf:n,attributes:o,textureTransformSlot:"clearcoatNormal"}))}function Q_(t,e,r,n,o={}){e&&(e.sheenColorFactor&&(r.uniforms.sheenColorFactor=e.sheenColorFactor),e.sheenRoughnessFactor!==void 0&&(r.uniforms.sheenRoughnessFactor=e.sheenRoughnessFactor),e.sheenColorTexture&&ae(t,e.sheenColorTexture,"pbr_sheenColorSampler",r,{featureOptions:{define:"HAS_SHEENCOLORMAP",enabledUniformName:"sheenColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenColor"}),e.sheenRoughnessTexture&&ae(t,e.sheenRoughnessTexture,"pbr_sheenRoughnessSampler",r,{featureOptions:{define:"HAS_SHEENROUGHNESSMAP",enabledUniformName:"sheenRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenRoughness"}))}function Z_(t,e,r,n,o={}){e&&(e.iridescenceFactor!==void 0&&(r.uniforms.iridescenceFactor=e.iridescenceFactor),e.iridescenceIor!==void 0&&(r.uniforms.iridescenceIor=e.iridescenceIor),(e.iridescenceThicknessMinimum!==void 0||e.iridescenceThicknessMaximum!==void 0)&&(r.uniforms.iridescenceThicknessRange=[e.iridescenceThicknessMinimum??100,e.iridescenceThicknessMaximum??400]),e.iridescenceTexture&&ae(t,e.iridescenceTexture,"pbr_iridescenceSampler",r,{featureOptions:{define:"HAS_IRIDESCENCEMAP",enabledUniformName:"iridescenceMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"iridescence"}),e.iridescenceThicknessTexture&&ae(t,e.iridescenceThicknessTexture,"pbr_iridescenceThicknessSampler",r,{featureOptions:{define:"HAS_IRIDESCENCETHICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"iridescenceThickness"}))}function $_(t,e,r,n,o={}){e&&(e.anisotropyStrength!==void 0&&(r.uniforms.anisotropyStrength=e.anisotropyStrength),e.anisotropyRotation!==void 0&&(r.uniforms.anisotropyRotation=e.anisotropyRotation),e.anisotropyTexture&&ae(t,e.anisotropyTexture,"pbr_anisotropySampler",r,{featureOptions:{define:"HAS_ANISOTROPYMAP",enabledUniformName:"anisotropyMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"anisotropy"}))}function eC(t,e){t?.emissiveStrength!==void 0&&(e.uniforms.emissiveStrength=t.emissiveStrength)}function ae(t,e,r,n,o={}){let{featureOptions:s={},gltf:i,attributes:a={},textureTransformSlot:c}=o,{define:l,enabledUniformName:f}=s,u=Vc(e);if(u>1){ee.log.warn(`Skipping ${String(r)} because ${u} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();return}if(u===1&&!Xe(a,"TEXCOORD_1")){ee.log.warn(`Skipping ${String(r)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();return}let h=tC(e,i),p=h.texture?.source?.image;if(!p){ee.log.warn(`Skipping unresolved glTF texture for ${String(r)}`)();return}let d={id:h.uniformName||h.id,sampler:{addressModeU:"repeat",addressModeV:"repeat",minFilter:"linear",magFilter:"linear",...nm(h.texture.sampler)}},m=im(t,p,d);if(n.bindings[r]=m,l&&(n.defines[l]=!0),f&&(n.uniforms[f]=!0),c){let b=$d(c);n.uniforms[b.uvSetUniform]=u,n.uniforms[b.uvTransformUniform]=tm(em(e))}n.generatedTextures.push(m)}function im(t,e,r){if("compressed"in e)return nC(t,e,{id:r.id,sampler:r.sampler});let n=r.width!==void 0&&r.height!==void 0?{width:r.width,height:r.height}:t.getExternalImageSize(e),o=r.sampler.mipmapFilter==="nearest"||r.sampler.mipmapFilter==="linear",s=o?t.getMipLevelCount(n.width,n.height):1,i=t.createTexture({id:r.id,sampler:r.sampler,width:n.width,height:n.height,mipLevels:s,...o?{usage:ee.Texture.SAMPLE|ee.Texture.RENDER|ee.Texture.COPY_DST|ee.Texture.COPY_SRC}:{},...r.colorSpace?{format:r.colorSpace==="srgb"?"rgba8unorm-srgb":"rgba8unorm"}:{},data:e});return s>1&&(t.type==="webgl"?i.generateMipmapsWebGL():t.type==="webgpu"&&t.generateMipmapsWebGPU(i)),i}function tC(t,e){if(t.texture||t.index===void 0||!e?.textures)return t;let r=e.textures[t.index];return r?"texture"in r&&r.texture?{...r,...t,texture:r.texture}:"source"in r?{...t,texture:r}:t:t}function qs(t,e){return t.createTexture({...e,format:"rgba8unorm",width:1,height:1,mipLevels:1})}function sm(t){return t.textureFormat}function rC(t,e,r){let{blockWidth:n=1,blockHeight:o=1}=ee.textureFormatDecoder.getInfo(r),s=1;for(let i=1;;i++){let a=Math.max(1,t>>i),c=Math.max(1,e>>i);if(a<n||c<o)break;s++}return s}function nC(t,e,r){let n;if(Array.isArray(e.data)&&e.data[0]?.data?n=e.data:"mipmaps"in e&&Array.isArray(e.mipmaps)?n=e.mipmaps:n=[],n.length===0||!n[0]?.data)return ee.log.warn("createCompressedTexture: compressed image has no valid mip levels, creating fallback")(),qs(t,r);let o=n[0],s=o.width??e.width??0,i=o.height??e.height??0;if(s<=0||i<=0)return ee.log.warn("createCompressedTexture: base level has invalid dimensions, creating fallback")(),qs(t,r);let a=sm(o);if(!a)return ee.log.warn("createCompressedTexture: compressed image has no textureFormat, creating fallback")(),qs(t,r);if(!t.isTextureFormatSupported(a))return ee.log.warn(`createCompressedTexture: ${t.type} device does not support '${a}', creating fallback`)(),qs(t,r);let c=rC(s,i,a),l=Math.min(n.length,c),f=1;for(let h=1;h<l;h++){let p=n[h];if(!p.data||p.width<=0||p.height<=0){ee.log.warn(`createCompressedTexture: mip level ${h} has invalid data/dimensions, truncating`)();break}let d=sm(p);if(d&&d!==a){ee.log.warn(`createCompressedTexture: mip level ${h} format '${d}' differs from base '${a}', truncating`)();break}let m=Math.max(1,s>>h),b=Math.max(1,i>>h);if(p.width!==m||p.height!==b){ee.log.warn(`createCompressedTexture: mip level ${h} dimensions ${p.width}x${p.height} don't match expected ${m}x${b}, truncating`)();break}f++}let u=t.createTexture({...r,format:a,usage:ee.Texture.TEXTURE|ee.Texture.COPY_DST,width:s,height:i,mipLevels:f,data:o.data});for(let h=1;h<f;h++)u.writeData(n[h].data,{width:n[h].width,height:n[h].height,mipLevel:h});return u}var pm=D(Uc(),1),dm=D(Hs(),1);var am=`layout(std140) uniform meshUniforms {
3615
+ `,Yd={name:"pbrProjection",bindingLayout:[{name:"pbrProjection",group:0}],source:v_,vs:Kd,fs:Kd,getUniforms:t=>t,uniformTypes:{modelViewProjectionMatrix:"mat4x4<f32>",modelMatrix:"mat4x4<f32>",normalMatrix:"mat4x4<f32>",camera:"vec3<f32>"}};var js={props:{},uniforms:{},defaultUniforms:{unlit:!1,baseColorMapEnabled:!1,baseColorFactor:[1,1,1,1],normalMapEnabled:!1,normalScale:1,emissiveMapEnabled:!1,emissiveFactor:[0,0,0],metallicRoughnessValues:[1,1],metallicRoughnessMapEnabled:!1,occlusionMapEnabled:!1,occlusionStrength:1,alphaCutoffEnabled:!1,alphaCutoff:.5,IBLenabled:!1,scaleIBLAmbient:[1,1],scaleDiffBaseMR:[0,0,0,0],scaleFGDSpec:[0,0,0,0],specularColorFactor:[1,1,1],specularIntensityFactor:1,specularColorMapEnabled:!1,specularIntensityMapEnabled:!1,ior:1.5,transmissionFactor:0,transmissionMapEnabled:!1,thicknessFactor:0,attenuationDistance:1e9,attenuationColor:[1,1,1],clearcoatFactor:0,clearcoatRoughnessFactor:0,clearcoatMapEnabled:!1,clearcoatRoughnessMapEnabled:!1,sheenColorFactor:[0,0,0],sheenRoughnessFactor:0,sheenColorMapEnabled:!1,sheenRoughnessMapEnabled:!1,iridescenceFactor:0,iridescenceIor:1.3,iridescenceThicknessRange:[100,400],iridescenceMapEnabled:!1,anisotropyStrength:0,anisotropyRotation:0,anisotropyDirection:[1,0],anisotropyMapEnabled:!1,emissiveStrength:1,dispersion:0,baseColorUVSet:0,baseColorUVTransform:[1,0,0,0,1,0,0,0,1],metallicRoughnessUVSet:0,metallicRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],normalUVSet:0,normalUVTransform:[1,0,0,0,1,0,0,0,1],occlusionUVSet:0,occlusionUVTransform:[1,0,0,0,1,0,0,0,1],emissiveUVSet:0,emissiveUVTransform:[1,0,0,0,1,0,0,0,1],specularColorUVSet:0,specularColorUVTransform:[1,0,0,0,1,0,0,0,1],specularIntensityUVSet:0,specularIntensityUVTransform:[1,0,0,0,1,0,0,0,1],transmissionUVSet:0,transmissionUVTransform:[1,0,0,0,1,0,0,0,1],thicknessUVSet:0,thicknessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatUVSet:0,clearcoatUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatRoughnessUVSet:0,clearcoatRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],clearcoatNormalUVSet:0,clearcoatNormalUVTransform:[1,0,0,0,1,0,0,0,1],sheenColorUVSet:0,sheenColorUVTransform:[1,0,0,0,1,0,0,0,1],sheenRoughnessUVSet:0,sheenRoughnessUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceUVSet:0,iridescenceUVTransform:[1,0,0,0,1,0,0,0,1],iridescenceThicknessUVSet:0,iridescenceThicknessUVTransform:[1,0,0,0,1,0,0,0,1],anisotropyUVSet:0,anisotropyUVTransform:[1,0,0,0,1,0,0,0,1],bumpFactor:1,bumpMapEnabled:!1,diffuseTransmissionFactor:0,diffuseTransmissionMapEnabled:!1,diffuseTransmissionColorFactor:[1,1,1],diffuseTransmissionColorMapEnabled:!1,multiscatterColorFactor:[0,0,0],multiscatterColorMapEnabled:!1,scatterAnisotropy:0,bumpUVSet:0,bumpUVTransform:[1,0,0,0,1,0,0,0,1],diffuseTransmissionUVSet:0,diffuseTransmissionUVTransform:[1,0,0,0,1,0,0,0,1],diffuseTransmissionColorUVSet:0,diffuseTransmissionColorUVTransform:[1,0,0,0,1,0,0,0,1],multiscatterColorUVSet:0,multiscatterColorUVTransform:[1,0,0,0,1,0,0,0,1]},name:"pbrMaterial",firstBindingSlot:0,bindingLayout:[{name:"pbrMaterial",group:3},{name:"pbr_baseColorSampler",group:3},{name:"pbr_normalSampler",group:3},{name:"pbr_emissiveSampler",group:3},{name:"pbr_metallicRoughnessSampler",group:3},{name:"pbr_occlusionSampler",group:3},{name:"pbr_specularColorSampler",group:3},{name:"pbr_specularIntensitySampler",group:3},{name:"pbr_transmissionSampler",group:3},{name:"pbr_thicknessSampler",group:3},{name:"pbr_clearcoatSampler",group:3},{name:"pbr_clearcoatRoughnessSampler",group:3},{name:"pbr_clearcoatNormalSampler",group:3},{name:"pbr_sheenColorSampler",group:3},{name:"pbr_sheenRoughnessSampler",group:3},{name:"pbr_iridescenceSampler",group:3},{name:"pbr_iridescenceThicknessSampler",group:3},{name:"pbr_anisotropySampler",group:3},{name:"pbr_bumpSampler",group:3},{name:"pbr_diffuseTransmissionSampler",group:3},{name:"pbr_diffuseTransmissionColorSampler",group:3},{name:"pbr_multiscatterColorSampler",group:3}],dependencies:[kd,qd,Yd],source:Xd,vs:Jd,fs:Wd,defines:{LIGHTING_FRAGMENT:!0,HAS_NORMALMAP:!1,HAS_EMISSIVEMAP:!1,HAS_OCCLUSIONMAP:!1,HAS_BASECOLORMAP:!1,HAS_METALROUGHNESSMAP:!1,HAS_SPECULARCOLORMAP:!1,HAS_SPECULARINTENSITYMAP:!1,HAS_TRANSMISSIONMAP:!1,HAS_THICKNESSMAP:!1,HAS_CLEARCOATMAP:!1,HAS_CLEARCOATROUGHNESSMAP:!1,HAS_CLEARCOATNORMALMAP:!1,HAS_SHEENCOLORMAP:!1,HAS_SHEENROUGHNESSMAP:!1,HAS_IRIDESCENCEMAP:!1,HAS_IRIDESCENCETHICKNESSMAP:!1,HAS_ANISOTROPYMAP:!1,HAS_BUMPMAP:!1,HAS_DIFFUSETRANSMISSIONMAP:!1,HAS_DIFFUSETRANSMISSIONCOLORMAP:!1,HAS_MULTISCATTERCOLORMAP:!1,USE_MATERIAL_EXTENSIONS:!1,ALPHA_CUTOFF:!1,USE_IBL:!1,PBR_DEBUG:!1},getUniforms:t=>t,uniformTypes:{unlit:"i32",baseColorMapEnabled:"i32",baseColorFactor:"vec4<f32>",normalMapEnabled:"i32",normalScale:"f32",emissiveMapEnabled:"i32",emissiveFactor:"vec3<f32>",metallicRoughnessValues:"vec2<f32>",metallicRoughnessMapEnabled:"i32",occlusionMapEnabled:"i32",occlusionStrength:"f32",alphaCutoffEnabled:"i32",alphaCutoff:"f32",specularColorFactor:"vec3<f32>",specularIntensityFactor:"f32",specularColorMapEnabled:"i32",specularIntensityMapEnabled:"i32",ior:"f32",transmissionFactor:"f32",transmissionMapEnabled:"i32",thicknessFactor:"f32",attenuationDistance:"f32",attenuationColor:"vec3<f32>",clearcoatFactor:"f32",clearcoatRoughnessFactor:"f32",clearcoatMapEnabled:"i32",clearcoatRoughnessMapEnabled:"i32",sheenColorFactor:"vec3<f32>",sheenRoughnessFactor:"f32",sheenColorMapEnabled:"i32",sheenRoughnessMapEnabled:"i32",iridescenceFactor:"f32",iridescenceIor:"f32",iridescenceThicknessRange:"vec2<f32>",iridescenceMapEnabled:"i32",anisotropyStrength:"f32",anisotropyRotation:"f32",anisotropyDirection:"vec2<f32>",anisotropyMapEnabled:"i32",emissiveStrength:"f32",dispersion:"f32",IBLenabled:"i32",scaleIBLAmbient:"vec2<f32>",scaleDiffBaseMR:"vec4<f32>",scaleFGDSpec:"vec4<f32>",baseColorUVSet:"i32",baseColorUVTransform:"mat3x3<f32>",metallicRoughnessUVSet:"i32",metallicRoughnessUVTransform:"mat3x3<f32>",normalUVSet:"i32",normalUVTransform:"mat3x3<f32>",occlusionUVSet:"i32",occlusionUVTransform:"mat3x3<f32>",emissiveUVSet:"i32",emissiveUVTransform:"mat3x3<f32>",specularColorUVSet:"i32",specularColorUVTransform:"mat3x3<f32>",specularIntensityUVSet:"i32",specularIntensityUVTransform:"mat3x3<f32>",transmissionUVSet:"i32",transmissionUVTransform:"mat3x3<f32>",thicknessUVSet:"i32",thicknessUVTransform:"mat3x3<f32>",clearcoatUVSet:"i32",clearcoatUVTransform:"mat3x3<f32>",clearcoatRoughnessUVSet:"i32",clearcoatRoughnessUVTransform:"mat3x3<f32>",clearcoatNormalUVSet:"i32",clearcoatNormalUVTransform:"mat3x3<f32>",sheenColorUVSet:"i32",sheenColorUVTransform:"mat3x3<f32>",sheenRoughnessUVSet:"i32",sheenRoughnessUVTransform:"mat3x3<f32>",iridescenceUVSet:"i32",iridescenceUVTransform:"mat3x3<f32>",iridescenceThicknessUVSet:"i32",iridescenceThicknessUVTransform:"mat3x3<f32>",anisotropyUVSet:"i32",anisotropyUVTransform:"mat3x3<f32>",bumpFactor:"f32",bumpMapEnabled:"i32",diffuseTransmissionFactor:"f32",diffuseTransmissionMapEnabled:"i32",diffuseTransmissionColorFactor:"vec3<f32>",diffuseTransmissionColorMapEnabled:"i32",multiscatterColorFactor:"vec3<f32>",multiscatterColorMapEnabled:"i32",scatterAnisotropy:"f32",bumpUVSet:"i32",bumpUVTransform:"mat3x3<f32>",diffuseTransmissionUVSet:"i32",diffuseTransmissionUVTransform:"mat3x3<f32>",diffuseTransmissionColorUVSet:"i32",diffuseTransmissionColorUVTransform:"mat3x3<f32>",multiscatterColorUVSet:"i32",multiscatterColorUVTransform:"mat3x3<f32>"}};var Y;(function(t){t[t.POINTS=0]="POINTS",t[t.LINES=1]="LINES",t[t.LINE_LOOP=2]="LINE_LOOP",t[t.LINE_STRIP=3]="LINE_STRIP",t[t.TRIANGLES=4]="TRIANGLES",t[t.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",t[t.TRIANGLE_FAN=6]="TRIANGLE_FAN",t[t.ONE=1]="ONE",t[t.SRC_ALPHA=770]="SRC_ALPHA",t[t.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",t[t.FUNC_ADD=32774]="FUNC_ADD",t[t.LINEAR=9729]="LINEAR",t[t.NEAREST=9728]="NEAREST",t[t.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",t[t.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",t[t.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",t[t.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",t[t.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",t[t.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",t[t.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",t[t.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",t[t.REPEAT=10497]="REPEAT",t[t.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",t[t.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",t[t.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"})(Y||(Y={}));var ee=D(Dc(),1);var Qd=[ie("baseColor","pbr_baseColorSampler","baseColorTexture",["pbrMetallicRoughness","baseColorTexture"]),ie("metallicRoughness","pbr_metallicRoughnessSampler","metallicRoughnessTexture",["pbrMetallicRoughness","metallicRoughnessTexture"]),ie("normal","pbr_normalSampler","normalTexture",["normalTexture"]),ie("occlusion","pbr_occlusionSampler","occlusionTexture",["occlusionTexture"]),ie("emissive","pbr_emissiveSampler","emissiveTexture",["emissiveTexture"]),ie("specularColor","pbr_specularColorSampler","KHR_materials_specular.specularColorTexture",["extensions","KHR_materials_specular","specularColorTexture"]),ie("specularIntensity","pbr_specularIntensitySampler","KHR_materials_specular.specularTexture",["extensions","KHR_materials_specular","specularTexture"]),ie("transmission","pbr_transmissionSampler","KHR_materials_transmission.transmissionTexture",["extensions","KHR_materials_transmission","transmissionTexture"]),ie("thickness","pbr_thicknessSampler","KHR_materials_volume.thicknessTexture",["extensions","KHR_materials_volume","thicknessTexture"]),ie("clearcoat","pbr_clearcoatSampler","KHR_materials_clearcoat.clearcoatTexture",["extensions","KHR_materials_clearcoat","clearcoatTexture"]),ie("clearcoatRoughness","pbr_clearcoatRoughnessSampler","KHR_materials_clearcoat.clearcoatRoughnessTexture",["extensions","KHR_materials_clearcoat","clearcoatRoughnessTexture"]),ie("clearcoatNormal","pbr_clearcoatNormalSampler","KHR_materials_clearcoat.clearcoatNormalTexture",["extensions","KHR_materials_clearcoat","clearcoatNormalTexture"]),ie("sheenColor","pbr_sheenColorSampler","KHR_materials_sheen.sheenColorTexture",["extensions","KHR_materials_sheen","sheenColorTexture"]),ie("sheenRoughness","pbr_sheenRoughnessSampler","KHR_materials_sheen.sheenRoughnessTexture",["extensions","KHR_materials_sheen","sheenRoughnessTexture"]),ie("iridescence","pbr_iridescenceSampler","KHR_materials_iridescence.iridescenceTexture",["extensions","KHR_materials_iridescence","iridescenceTexture"]),ie("iridescenceThickness","pbr_iridescenceThicknessSampler","KHR_materials_iridescence.iridescenceThicknessTexture",["extensions","KHR_materials_iridescence","iridescenceThicknessTexture"]),ie("anisotropy","pbr_anisotropySampler","KHR_materials_anisotropy.anisotropyTexture",["extensions","KHR_materials_anisotropy","anisotropyTexture"]),ie("bump","pbr_bumpSampler","EXT_materials_bump.bumpTexture",["extensions","EXT_materials_bump","bumpTexture"]),ie("diffuseTransmission","pbr_diffuseTransmissionSampler","KHR_materials_diffuse_transmission.diffuseTransmissionTexture",["extensions","KHR_materials_diffuse_transmission","diffuseTransmissionTexture"]),ie("diffuseTransmissionColor","pbr_diffuseTransmissionColorSampler","KHR_materials_diffuse_transmission.diffuseTransmissionColorTexture",["extensions","KHR_materials_diffuse_transmission","diffuseTransmissionColorTexture"]),ie("multiscatterColor","pbr_multiscatterColorSampler","KHR_materials_volume_scatter.multiscatterColorTexture",["extensions","KHR_materials_volume_scatter","multiscatterColorTexture"])],R_=new Map(Qd.map(t=>[t.slot,t]));function ie(t,e,r,n){return{slot:t,binding:e,displayName:r,pathSegments:n,colorSpace:t==="baseColor"||t==="emissive"||t==="specularColor"||t==="sheenColor"||t==="diffuseTransmissionColor"||t==="multiscatterColor"?"srgb":"linear",uvSetUniform:`${t}UVSet`,uvTransformUniform:`${t}UVTransform`}}function Zd(){return Qd}function $d(t){let e=R_.get(t);if(!e)throw new Error(`Unknown PBR texture transform slot ${t}`);return e}function em(t){let e=t?.extensions?.KHR_texture_transform;return{offset:e?.offset?[e.offset[0],e.offset[1]]:[0,0],rotation:e?.rotation??0,scale:e?.scale?[e.scale[0],e.scale[1]]:[1,1]}}function Vc(t){return t?.extensions?.KHR_texture_transform?.texCoord??t?.texCoord??0}function tm(t){let e=new z().set(1,0,0,0,1,0,t.offset[0],t.offset[1],1),r=new z().set(Math.cos(t.rotation),Math.sin(t.rotation),0,-Math.sin(t.rotation),Math.cos(t.rotation),0,0,0,1),n=new z().set(t.scale[0],0,0,0,t.scale[1],0,0,0,1);return Array.from(e.multiplyRight(r).multiplyRight(n))}function nm(t={}){let e=t.wrapS??t.parameters?.[Y.TEXTURE_WRAP_S],r=t.wrapT??t.parameters?.[Y.TEXTURE_WRAP_T],n=t.magFilter??t.parameters?.[Y.TEXTURE_MAG_FILTER],o=t.minFilter??t.parameters?.[Y.TEXTURE_MIN_FILTER],s=rm(e),i=rm(r),a=w_(n);return{...s?{addressModeU:s}:{},...i?{addressModeV:i}:{},...a?{magFilter:a}:{},...L_(o)}}function rm(t){switch(t){case Y.CLAMP_TO_EDGE:return"clamp-to-edge";case Y.REPEAT:return"repeat";case Y.MIRRORED_REPEAT:return"mirror-repeat";default:return}}function w_(t){switch(t){case Y.NEAREST:return"nearest";case Y.LINEAR:return"linear";default:return}}function L_(t){switch(t){case Y.NEAREST:return{minFilter:"nearest"};case Y.LINEAR:return{minFilter:"linear"};case Y.NEAREST_MIPMAP_NEAREST:return{minFilter:"nearest",mipmapFilter:"nearest"};case Y.LINEAR_MIPMAP_NEAREST:return{minFilter:"linear",mipmapFilter:"nearest"};case Y.NEAREST_MIPMAP_LINEAR:return{minFilter:"nearest",mipmapFilter:"linear"};case Y.LINEAR_MIPMAP_LINEAR:return{minFilter:"linear",mipmapFilter:"linear"};default:return{}}}var F_={NORMAL:["NORMAL","normals"],TANGENT:["TANGENT"],TEXCOORD_0:["TEXCOORD_0","texCoords"],TEXCOORD_1:["TEXCOORD_1","texCoords1"],JOINTS_0:["JOINTS_0"],WEIGHTS_0:["WEIGHTS_0"],COLOR_0:["COLOR_0","colors"]};function Hc(t,e,r,n){let o={defines:{MANUAL_SRGB:!0},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};o.defines.USE_TEX_LOD=!0;let{imageBasedLightingEnvironment:s}=n;return s&&(o.bindings.pbr_diffuseEnvSampler=s.diffuseEnvSampler.texture,o.bindings.pbr_specularEnvSampler=s.specularEnvSampler.texture,o.bindings.pbr_brdfLUT=s.brdfLutTexture.texture,o.uniforms.IBLenabled=!0,o.uniforms.scaleIBLAmbient=[1,1]),n?.pbrDebug&&(o.defines.PBR_DEBUG=!0,o.uniforms.scaleDiffBaseMR=[0,0,0,0],o.uniforms.scaleFGDSpec=[0,0,0,0]),Ke(r,"NORMAL")&&(o.defines.HAS_NORMALS=!0),Ke(r,"TANGENT")&&n?.useTangents&&(o.defines.HAS_TANGENTS=!0),Ke(r,"TEXCOORD_0")&&(o.defines.HAS_UV=!0),Ke(r,"TEXCOORD_1")&&(o.defines.HAS_UV_1=!0),Ke(r,"JOINTS_0")&&Ke(r,"WEIGHTS_0")&&(o.defines.HAS_SKIN=!0),Ke(r,"COLOR_0")&&(o.defines.HAS_COLORS=!0),n?.imageBasedLightingEnvironment&&(o.defines.USE_IBL=!0),n?.lights&&(o.defines.USE_LIGHTS=!0),e&&(n.validateAttributes!==!1&&P_(e,r),O_(t,e,o,r,n.gltf)),o}function P_(t,e){let r=om(t,0);r.length>0&&!Ke(e,"TEXCOORD_0")&&ee.log.warn(`glTF material uses ${r.join(", ")} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();let n=om(t,1);if(n.length>0&&!Ke(e,"TEXCOORD_1")&&ee.log.warn(`glTF material uses ${n.join(", ")} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)(),!!(t.unlit||t.extensions?.KHR_materials_unlit)||Ke(e,"NORMAL"))return;let s=t.normalTexture?"lit PBR shading with normalTexture":"lit PBR shading";ee.log.warn(`glTF primitive is missing NORMAL while using ${s}; shading will fall back to geometric normals`)()}function om(t,e){let r=[];for(let n of Zd()){let o=N_(t,n.pathSegments);o&&Vc(o)===e&&r.push(n.displayName)}return r}function Ke(t,e){return F_[e].some(r=>!!t[r])}function N_(t,e){let r=t;for(let n of e)if(r=r?.[n],!r)return null;return r}function O_(t,e,r,n,o){if(r.uniforms.unlit=!!(e.unlit||e.extensions?.KHR_materials_unlit),e.pbrMetallicRoughness&&G_(t,e.pbrMetallicRoughness,r,n,o),e.normalTexture){ae(t,e.normalTexture,"pbr_normalSampler",r,{featureOptions:{define:"HAS_NORMALMAP",enabledUniformName:"normalMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"normal"});let{scale:s=1}=e.normalTexture;r.uniforms.normalScale=s}if(e.occlusionTexture){ae(t,e.occlusionTexture,"pbr_occlusionSampler",r,{featureOptions:{define:"HAS_OCCLUSIONMAP",enabledUniformName:"occlusionMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"occlusion"});let{strength:s=1}=e.occlusionTexture;r.uniforms.occlusionStrength=s}switch(r.uniforms.emissiveFactor=e.emissiveFactor||[0,0,0],e.emissiveTexture&&ae(t,e.emissiveTexture,"pbr_emissiveSampler",r,{featureOptions:{define:"HAS_EMISSIVEMAP",enabledUniformName:"emissiveMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"emissive"}),V_(t,e.extensions,r,o,n),e.alphaMode||"OPAQUE"){case"OPAQUE":break;case"MASK":{let{alphaCutoff:s=.5}=e;r.defines.ALPHA_CUTOFF=!0,r.uniforms.alphaCutoffEnabled=!0,r.uniforms.alphaCutoff=s;break}case"BLEND":ee.log.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),U_(r);break}}function U_(t){t.parameters.blend=!0,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="src-alpha",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.blendEquation=Y.FUNC_ADD,t.glParameters.blendFunc=[Y.SRC_ALPHA,Y.ONE_MINUS_SRC_ALPHA,Y.ONE,Y.ONE_MINUS_SRC_ALPHA]}function D_(t){t.parameters.blend=!0,t.parameters.depthWriteEnabled=!1,t.parameters.blendColorOperation="add",t.parameters.blendColorSrcFactor="one",t.parameters.blendColorDstFactor="one-minus-src-alpha",t.parameters.blendAlphaOperation="add",t.parameters.blendAlphaSrcFactor="one",t.parameters.blendAlphaDstFactor="one-minus-src-alpha",t.glParameters.blend=!0,t.glParameters.depthMask=!1,t.glParameters.blendEquation=Y.FUNC_ADD,t.glParameters.blendFunc=[Y.ONE,Y.ONE_MINUS_SRC_ALPHA,Y.ONE,Y.ONE_MINUS_SRC_ALPHA]}function G_(t,e,r,n,o){e.baseColorTexture&&ae(t,e.baseColorTexture,"pbr_baseColorSampler",r,{featureOptions:{define:"HAS_BASECOLORMAP",enabledUniformName:"baseColorMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"baseColor"}),r.uniforms.baseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&ae(t,e.metallicRoughnessTexture,"pbr_metallicRoughnessSampler",r,{featureOptions:{define:"HAS_METALROUGHNESSMAP",enabledUniformName:"metallicRoughnessMapEnabled"},gltf:o,attributes:n,textureTransformSlot:"metallicRoughness"});let{metallicFactor:s=1,roughnessFactor:i=1}=e;r.uniforms.metallicRoughnessValues=[s,i]}function V_(t,e,r,n,o={}){e&&(H_(e)&&(r.defines.USE_MATERIAL_EXTENSIONS=!0),k_(t,e.KHR_materials_specular,r,n,o),z_(e.KHR_materials_ior,r),q_(t,e.EXT_materials_bump,r,n,o),j_(t,e.KHR_materials_transmission,r,n,o),J_(t,e.KHR_materials_diffuse_transmission,r,n,o),W_(t,e.KHR_materials_volume,r,n,o),X_(t,e.KHR_materials_volume_scatter,e.KHR_materials_volume,r,n,o),K_(e.KHR_materials_dispersion,r),Y_(t,e.KHR_materials_clearcoat,r,n,o),Q_(t,e.KHR_materials_sheen,r,n,o),Z_(t,e.KHR_materials_iridescence,r,n,o),$_(t,e.KHR_materials_anisotropy,r,n,o),eC(e.KHR_materials_emissive_strength,r))}function H_(t){return!!(t.KHR_materials_specular||t.KHR_materials_ior||t.EXT_materials_bump||t.KHR_materials_transmission||t.KHR_materials_diffuse_transmission||t.KHR_materials_volume||t.KHR_materials_volume_scatter||t.KHR_materials_dispersion||t.KHR_materials_clearcoat||t.KHR_materials_sheen||t.KHR_materials_iridescence||t.KHR_materials_anisotropy)}function k_(t,e,r,n,o={}){e&&(e.specularColorFactor&&(r.uniforms.specularColorFactor=e.specularColorFactor),e.specularFactor!==void 0&&(r.uniforms.specularIntensityFactor=e.specularFactor),e.specularColorTexture&&ae(t,e.specularColorTexture,"pbr_specularColorSampler",r,{featureOptions:{define:"HAS_SPECULARCOLORMAP",enabledUniformName:"specularColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularColor"}),e.specularTexture&&ae(t,e.specularTexture,"pbr_specularIntensitySampler",r,{featureOptions:{define:"HAS_SPECULARINTENSITYMAP",enabledUniformName:"specularIntensityMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"specularIntensity"}))}function z_(t,e){t?.ior!==void 0&&(e.uniforms.ior=t.ior)}function j_(t,e,r,n,o={}){e&&(e.transmissionFactor!==void 0&&(r.uniforms.transmissionFactor=e.transmissionFactor),e.transmissionTexture&&ae(t,e.transmissionTexture,"pbr_transmissionSampler",r,{featureOptions:{define:"HAS_TRANSMISSIONMAP",enabledUniformName:"transmissionMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"transmission"}),((e.transmissionFactor??0)>0||e.transmissionTexture)&&(ee.log.warn("KHR_materials_transmission uses a premultiplied-alpha blending approximation and may require mesh sorting")(),D_(r)))}function q_(t,e,r,n,o={}){e&&(r.uniforms.bumpFactor=Math.max(e.bumpFactor??1,0),e.bumpTexture&&ae(t,e.bumpTexture,"pbr_bumpSampler",r,{featureOptions:{define:"HAS_BUMPMAP",enabledUniformName:"bumpMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"bump"}))}function J_(t,e,r,n,o={}){e&&(r.uniforms.diffuseTransmissionFactor=Math.min(Math.max(e.diffuseTransmissionFactor??0,0),1),r.uniforms.diffuseTransmissionColorFactor=e.diffuseTransmissionColorFactor||[1,1,1],e.diffuseTransmissionTexture&&ae(t,e.diffuseTransmissionTexture,"pbr_diffuseTransmissionSampler",r,{featureOptions:{define:"HAS_DIFFUSETRANSMISSIONMAP",enabledUniformName:"diffuseTransmissionMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"diffuseTransmission"}),e.diffuseTransmissionColorTexture&&ae(t,e.diffuseTransmissionColorTexture,"pbr_diffuseTransmissionColorSampler",r,{featureOptions:{define:"HAS_DIFFUSETRANSMISSIONCOLORMAP",enabledUniformName:"diffuseTransmissionColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"diffuseTransmissionColor"}))}function W_(t,e,r,n,o={}){e&&(e.thicknessFactor!==void 0&&(r.uniforms.thicknessFactor=e.thicknessFactor),e.thicknessTexture&&ae(t,e.thicknessTexture,"pbr_thicknessSampler",r,{featureOptions:{define:"HAS_THICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"thickness"}),e.attenuationDistance!==void 0&&(r.uniforms.attenuationDistance=e.attenuationDistance),e.attenuationColor&&(r.uniforms.attenuationColor=e.attenuationColor))}function X_(t,e,r,n,o,s={}){!e||!r||(n.uniforms.multiscatterColorFactor=e.multiscatterColorFactor||e.multiscatterColor||[0,0,0],n.uniforms.scatterAnisotropy=Math.min(Math.max(e.scatterAnisotropy??0,-.999),.999),e.multiscatterColorTexture&&ae(t,e.multiscatterColorTexture,"pbr_multiscatterColorSampler",n,{featureOptions:{define:"HAS_MULTISCATTERCOLORMAP",enabledUniformName:"multiscatterColorMapEnabled"},gltf:o,attributes:s,textureTransformSlot:"multiscatterColor"}))}function K_(t,e){t?.dispersion!==void 0&&(e.uniforms.dispersion=Math.max(t.dispersion,0))}function Y_(t,e,r,n,o={}){e&&(e.clearcoatFactor!==void 0&&(r.uniforms.clearcoatFactor=e.clearcoatFactor),e.clearcoatRoughnessFactor!==void 0&&(r.uniforms.clearcoatRoughnessFactor=e.clearcoatRoughnessFactor),e.clearcoatTexture&&ae(t,e.clearcoatTexture,"pbr_clearcoatSampler",r,{featureOptions:{define:"HAS_CLEARCOATMAP",enabledUniformName:"clearcoatMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoat"}),e.clearcoatRoughnessTexture&&ae(t,e.clearcoatRoughnessTexture,"pbr_clearcoatRoughnessSampler",r,{featureOptions:{define:"HAS_CLEARCOATROUGHNESSMAP",enabledUniformName:"clearcoatRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"clearcoatRoughness"}),e.clearcoatNormalTexture&&ae(t,e.clearcoatNormalTexture,"pbr_clearcoatNormalSampler",r,{featureOptions:{define:"HAS_CLEARCOATNORMALMAP"},gltf:n,attributes:o,textureTransformSlot:"clearcoatNormal"}))}function Q_(t,e,r,n,o={}){e&&(e.sheenColorFactor&&(r.uniforms.sheenColorFactor=e.sheenColorFactor),e.sheenRoughnessFactor!==void 0&&(r.uniforms.sheenRoughnessFactor=e.sheenRoughnessFactor),e.sheenColorTexture&&ae(t,e.sheenColorTexture,"pbr_sheenColorSampler",r,{featureOptions:{define:"HAS_SHEENCOLORMAP",enabledUniformName:"sheenColorMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenColor"}),e.sheenRoughnessTexture&&ae(t,e.sheenRoughnessTexture,"pbr_sheenRoughnessSampler",r,{featureOptions:{define:"HAS_SHEENROUGHNESSMAP",enabledUniformName:"sheenRoughnessMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"sheenRoughness"}))}function Z_(t,e,r,n,o={}){e&&(e.iridescenceFactor!==void 0&&(r.uniforms.iridescenceFactor=e.iridescenceFactor),e.iridescenceIor!==void 0&&(r.uniforms.iridescenceIor=e.iridescenceIor),(e.iridescenceThicknessMinimum!==void 0||e.iridescenceThicknessMaximum!==void 0)&&(r.uniforms.iridescenceThicknessRange=[e.iridescenceThicknessMinimum??100,e.iridescenceThicknessMaximum??400]),e.iridescenceTexture&&ae(t,e.iridescenceTexture,"pbr_iridescenceSampler",r,{featureOptions:{define:"HAS_IRIDESCENCEMAP",enabledUniformName:"iridescenceMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"iridescence"}),e.iridescenceThicknessTexture&&ae(t,e.iridescenceThicknessTexture,"pbr_iridescenceThicknessSampler",r,{featureOptions:{define:"HAS_IRIDESCENCETHICKNESSMAP"},gltf:n,attributes:o,textureTransformSlot:"iridescenceThickness"}))}function $_(t,e,r,n,o={}){e&&(e.anisotropyStrength!==void 0&&(r.uniforms.anisotropyStrength=e.anisotropyStrength),e.anisotropyRotation!==void 0&&(r.uniforms.anisotropyRotation=e.anisotropyRotation),e.anisotropyTexture&&ae(t,e.anisotropyTexture,"pbr_anisotropySampler",r,{featureOptions:{define:"HAS_ANISOTROPYMAP",enabledUniformName:"anisotropyMapEnabled"},gltf:n,attributes:o,textureTransformSlot:"anisotropy"}))}function eC(t,e){t?.emissiveStrength!==void 0&&(e.uniforms.emissiveStrength=t.emissiveStrength)}function ae(t,e,r,n,o={}){let{featureOptions:s={},gltf:i,attributes:a={},textureTransformSlot:c}=o,{define:l,enabledUniformName:f}=s,u=Vc(e);if(u>1){ee.log.warn(`Skipping ${String(r)} because ${u} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();return}if(u===1&&!Ke(a,"TEXCOORD_1")){ee.log.warn(`Skipping ${String(r)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();return}let h=tC(e,i),p=h.texture?.source?.image;if(!p){ee.log.warn(`Skipping unresolved glTF texture for ${String(r)}`)();return}let d={id:h.uniformName||h.id,sampler:{addressModeU:"repeat",addressModeV:"repeat",minFilter:"linear",magFilter:"linear",...nm(h.texture.sampler)}},m=im(t,p,d);if(n.bindings[r]=m,l&&(n.defines[l]=!0),f&&(n.uniforms[f]=!0),c){let b=$d(c);n.uniforms[b.uvSetUniform]=u,n.uniforms[b.uvTransformUniform]=tm(em(e))}n.generatedTextures.push(m)}function im(t,e,r){if("compressed"in e)return nC(t,e,{id:r.id,sampler:r.sampler});let n=r.width!==void 0&&r.height!==void 0?{width:r.width,height:r.height}:t.getExternalImageSize(e),o=r.sampler.mipmapFilter==="nearest"||r.sampler.mipmapFilter==="linear",s=o?t.getMipLevelCount(n.width,n.height):1,i=t.createTexture({id:r.id,sampler:r.sampler,width:n.width,height:n.height,mipLevels:s,...o?{usage:ee.Texture.SAMPLE|ee.Texture.RENDER|ee.Texture.COPY_DST|ee.Texture.COPY_SRC}:{},...r.colorSpace?{format:r.colorSpace==="srgb"?"rgba8unorm-srgb":"rgba8unorm"}:{},data:e});return s>1&&(t.type==="webgl"?i.generateMipmapsWebGL():t.type==="webgpu"&&t.generateMipmapsWebGPU(i)),i}function tC(t,e){if(t.texture||t.index===void 0||!e?.textures)return t;let r=e.textures[t.index];return r?"texture"in r&&r.texture?{...r,...t,texture:r.texture}:"source"in r?{...t,texture:r}:t:t}function qs(t,e){return t.createTexture({...e,format:"rgba8unorm",width:1,height:1,mipLevels:1})}function sm(t){return t.textureFormat}function rC(t,e,r){let{blockWidth:n=1,blockHeight:o=1}=ee.textureFormatDecoder.getInfo(r),s=1;for(let i=1;;i++){let a=Math.max(1,t>>i),c=Math.max(1,e>>i);if(a<n||c<o)break;s++}return s}function nC(t,e,r){let n;if(Array.isArray(e.data)&&e.data[0]?.data?n=e.data:"mipmaps"in e&&Array.isArray(e.mipmaps)?n=e.mipmaps:n=[],n.length===0||!n[0]?.data)return ee.log.warn("createCompressedTexture: compressed image has no valid mip levels, creating fallback")(),qs(t,r);let o=n[0],s=o.width??e.width??0,i=o.height??e.height??0;if(s<=0||i<=0)return ee.log.warn("createCompressedTexture: base level has invalid dimensions, creating fallback")(),qs(t,r);let a=sm(o);if(!a)return ee.log.warn("createCompressedTexture: compressed image has no textureFormat, creating fallback")(),qs(t,r);if(!t.isTextureFormatSupported(a))return ee.log.warn(`createCompressedTexture: ${t.type} device does not support '${a}', creating fallback`)(),qs(t,r);let c=rC(s,i,a),l=Math.min(n.length,c),f=1;for(let h=1;h<l;h++){let p=n[h];if(!p.data||p.width<=0||p.height<=0){ee.log.warn(`createCompressedTexture: mip level ${h} has invalid data/dimensions, truncating`)();break}let d=sm(p);if(d&&d!==a){ee.log.warn(`createCompressedTexture: mip level ${h} format '${d}' differs from base '${a}', truncating`)();break}let m=Math.max(1,s>>h),b=Math.max(1,i>>h);if(p.width!==m||p.height!==b){ee.log.warn(`createCompressedTexture: mip level ${h} dimensions ${p.width}x${p.height} don't match expected ${m}x${b}, truncating`)();break}f++}let u=t.createTexture({...r,format:a,usage:ee.Texture.TEXTURE|ee.Texture.COPY_DST,width:s,height:i,mipLevels:f,data:o.data});for(let h=1;h<f;h++)u.writeData(n[h].data,{width:n[h].width,height:n[h].height,mipLevel:h});return u}var pm=D(Uc(),1),dm=D(Hs(),1);var am=`layout(std140) uniform meshUniforms {
3616
3616
  bool pickFeatureIds;
3617
3617
  } mesh;
3618
3618
  `,oC=`struct MeshUniforms {
@@ -3844,7 +3844,7 @@ fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4<f32> {
3844
3844
 
3845
3845
  return deckgl_premultiplied_alpha(color);
3846
3846
  }
3847
- `;function iC(t){let e=t.positions||t.POSITION,r=e.value.length/e.size;t.COLOR_0||t.colors||(t.colors={size:4,value:new Uint8Array(r*4).fill(255),normalized:!0})}var aC={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},oo=class extends dm.SimpleMeshLayer{getShaders(){let e=super.getShaders();return{...e,vs:fm,fs:um,source:hm,modules:[...e.modules,lm,cm]}}initializeState(){let{featureIds:e}=this.props;super.initializeState();let r=this.getAttributeManager();e&&r.add({rowIndexes:{type:"uint32",size:1,noAlloc:!0,update:this.calculateFeatureIdsPickingIndexes}})}updateState(e){super.updateState(e);let{props:r,oldProps:n}=e;r.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(r.pbrMaterial)}draw(e){let{featureIds:r}=this.props,{model:n}=this.state;if(!n)return;let o={pickFeatureIds:!!r},s={camera:this.context.viewport.cameraPosition};n.shaderInputs.setProps({pbrProjection:s,mesh:o}),super.draw(e)}getModel(e){let{id:r}=this.props,n=this.parseMaterial(this.props.pbrMaterial,e);this.setState({parsedPBRMaterial:n});let o=this.getShaders();return iC(e.attributes),new pm.Model(this.context.device,{...this.getShaders(),id:r,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...o.defines,...n?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0,HAS_FEATURE_IDS:this.props.featureIds?1:0},parameters:n?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){let{model:r}=this.state;if(r){let{mesh:n}=this.props,o=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:o});let{pbr_baseColorSampler:s}=o.bindings,{emptyTexture:i}=this.state,a=s||i,c={...this.context.device.type==="webgpu"?{simpleMeshTexture:a}:{sampler:a},hasTexture:!!s},{camera:l,...f}={...o.bindings,...o.uniforms};r.shaderInputs.setProps({simpleMesh:c,pbrMaterial:f})}}parseMaterial(e,r){let n=!!(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return Hc(this.context.device,{unlit:n,...e},{NORMAL:r.attributes.normals,TEXCOORD_0:r.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingIndexes(e){let r=this.props.featureIds;e.value=new Uint32Array(r)}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(r=>r.destroy()),this.setState({parsedPBRMaterial:null})}};oo.layerName="MeshLayer";oo.defaultProps=aC;var mm=oo;var N0=D(Xt(),1);var At=6356752314245179e-9,cC={radii:[6378137,6378137,At],radiiSquared:[6378137*6378137,6378137*6378137,At*At],oneOverRadii:[1/6378137,1/6378137,1/At],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(At*At)],maximumRadius:Math.max(6378137,6378137,At),centerToleranceSquared:.1};function Js(t){return t}var UD=new S;function lC(t,e=[],r=Js){return"longitude"in t?(e[0]=r(t.longitude),e[1]=r(t.latitude),e[2]=t.height):"x"in t?(e[0]=r(t.x),e[1]=r(t.y),e[2]=t.z):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function gm(t,e=[]){return lC(t,e,Q._cartographicRadians?Js:pa)}function fC(t,e,r=Js){return"longitude"in e?(e.longitude=r(t[0]),e.latitude=r(t[1]),e.height=t[2]):"x"in e?(e.x=r(t[0]),e.y=r(t[1]),e.z=t[2]):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function bm(t,e){return fC(t,e,Q._cartographicRadians?Js:da)}var Am=1e-14,uC=new S,xm={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"}},kc={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},so={east:new S,north:new S,up:new S,west:new S,south:new S,down:new S},hC=new S,pC=new S,dC=new S;function zc(t,e,r,n,o,s){let i=xm[e]&&xm[e][r];fe(i&&(!n||n===i));let a,c,l,f=uC.copy(o);if(xe(f.x,0,Am)&&xe(f.y,0,Am)){let h=Math.sign(f.z);a=hC.fromArray(kc[e]),e!=="east"&&e!=="west"&&a.scale(h),c=pC.fromArray(kc[r]),r!=="east"&&r!=="west"&&c.scale(h),l=dC.fromArray(kc[n]),n!=="east"&&n!=="west"&&l.scale(h)}else{let{up:h,east:p,north:d}=so;p.set(-f.y,f.x,0).normalize(),t.geodeticSurfaceNormal(f,h),d.copy(h).cross(p);let{down:m,west:b,south:x}=so;m.copy(h).scale(-1),b.copy(p).scale(-1),x.copy(d).scale(-1),a=so[e],c=so[r],l=so[n]}return s[0]=a.x,s[1]=a.y,s[2]=a.z,s[3]=0,s[4]=c.x,s[5]=c.y,s[6]=c.z,s[7]=0,s[8]=l.x,s[9]=l.y,s[10]=l.z,s[11]=0,s[12]=f.x,s[13]=f.y,s[14]=f.z,s[15]=1,s}var Jr=new S,mC=new S,gC=new S;function Tm(t,e,r=[]){let{oneOverRadii:n,oneOverRadiiSquared:o,centerToleranceSquared:s}=e;Jr.from(t);let i=Jr.x,a=Jr.y,c=Jr.z,l=n.x,f=n.y,u=n.z,h=i*i*l*l,p=a*a*f*f,d=c*c*u*u,m=h+p+d,b=Math.sqrt(1/m);if(!Number.isFinite(b))return;let x=mC;if(x.copy(t).scale(b),m<s)return x.to(r);let y=o.x,_=o.y,T=o.z,M=gC;M.set(x.x*y*2,x.y*_*2,x.z*T*2);let E=(1-b)*Jr.len()/(.5*M.len()),I=0,C,A,g,B;do{E-=I,C=1/(1+E*y),A=1/(1+E*_),g=1/(1+E*T);let w=C*C,L=A*A,R=g*g,O=w*C,H=L*A,U=R*g;B=h*w+p*L+d*R-1;let j=-2*(h*O*y+p*H*_+d*U*T);I=B/j}while(Math.abs(B)>qe.EPSILON12);return Jr.scale([C,A,g]).to(r)}var Ws=new S,ym=new S,xC=new S,Ke=new S,TC=new S,Xs=new S,G=class{constructor(e=0,r=0,n=0){this.centerToleranceSquared=qe.EPSILON1,fe(e>=0),fe(r>=0),fe(n>=0),this.radii=new S(e,r,n),this.radiiSquared=new S(e*e,r*r,n*n),this.radiiToTheFourth=new S(e*e*e*e,r*r*r*r,n*n*n*n),this.oneOverRadii=new S(e===0?0:1/e,r===0?0:1/r,n===0?0:1/n),this.oneOverRadiiSquared=new S(e===0?0:1/(e*e),r===0?0:1/(r*r),n===0?0:1/(n*n)),this.minimumRadius=Math.min(e,r,n),this.maximumRadius=Math.max(e,r,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||!!(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,r=[0,0,0]){let n=ym,o=xC,[,,s]=e;this.geodeticSurfaceNormalCartographic(e,n),o.copy(this.radiiSquared).scale(n);let i=Math.sqrt(n.dot(o));return o.scale(1/i),n.scale(s),o.add(n),o.to(r)}cartesianToCartographic(e,r=[0,0,0]){Xs.from(e);let n=this.scaleToGeodeticSurface(Xs,Ke);if(!n)return;let o=this.geodeticSurfaceNormal(n,ym),s=TC;s.copy(Xs).subtract(n);let i=Math.atan2(o.y,o.x),a=Math.asin(o.z),c=Math.sign(Br.dot(s,Xs))*Br.length(s);return bm([i,a,c],r)}eastNorthUpToFixedFrame(e,r=new P){return zc(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,n,o,s=new P){return zc(this,e,r,n,o,s)}geocentricSurfaceNormal(e,r=[0,0,0]){return Ws.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let n=gm(e),o=n[0],s=n[1],i=Math.cos(s);return Ws.set(i*Math.cos(o),i*Math.sin(o),Math.sin(s)).normalize(),Ws.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return Ws.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return Tm(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){Ke.from(e);let n=Ke.x,o=Ke.y,s=Ke.z,i=this.oneOverRadiiSquared,a=1/Math.sqrt(n*n*i.x+o*o*i.y+s*s*i.z);return Ke.multiplyScalar(a).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return Ke.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return Ke.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,n=[0,0,0]){fe(xe(this.radii.x,this.radii.y,qe.EPSILON15)),fe(this.radii.z>0),Ke.from(e);let o=Ke.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(o)>=this.radii.z-r))return Ke.set(0,0,o).to(n)}};G.WGS84=new G(6378137,6378137,At);var Ks=class{item;previous;next;constructor(e,r,n){this.item=e,this.previous=r,this.next=n}};var Ys=class{head=null;tail=null;_length=0;get length(){return this._length}add(e){let r=new Ks(e,this.tail,null);return this.tail?(this.tail.next=r,this.tail=r):(this.head=r,this.tail=r),++this._length,r}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,r){e!==r&&(this.remove(r),this._insert(e,r))}_insert(e,r){let n=e.next;e.next=r,this.tail===e?this.tail=r:n.previous=r,r.next=n,r.previous=e,++this._length}};var Qs=class{_list;_sentinel;_trimTiles;constructor(){this._list=new Ys,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){let r=e._cacheNode;r&&this._list.splice(this._sentinel,r)}add(e,r,n){r._cacheNode||(r._cacheNode=this._list.add(r),n&&n(e,r))}unloadTile(e,r,n){let o=r._cacheNode;o&&(this._list.remove(o),r._cacheNode=null,n&&n(e,r))}unloadTiles(e,r){let n=this._trimTiles;this._trimTiles=!1;let o=this._list,s=e.maximumMemoryUsage*1024*1024,i=this._sentinel,a=o.head;for(;a!==i&&(e.gpuMemoryUsageInBytes>s||n);){let c=a.item;a=a.next,this.unloadTile(e,c,r)}}trim(){this._trimTiles=!0}};function Sm(t,e){k(t),k(e);let{rtcCenter:r,gltfUpAxis:n}=e,{computedTransform:o,boundingVolume:{center:s}}=t,i=new P(o);switch(r&&i.translate(r),n){case"Z":break;case"Y":let h=new P().rotateX(Math.PI/2);i=i.multiplyRight(h);break;case"X":let p=new P().rotateY(-Math.PI/2);i=i.multiplyRight(p);break;default:break}e.isQuantized&&i.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let a=new S(s);e.cartesianModelMatrix=i,e.cartesianOrigin=a;let c=G.WGS84.cartesianToCartographic(a,new S),f=G.WGS84.eastNorthUpToFixedFrame(a).invert();e.cartographicModelMatrix=f.multiplyRight(i),e.cartographicOrigin=c;let u=SC(e);u&&(e.cartesianModelMatrix=new P(i).multiplyRight(u.matrix),e.cartographicModelMatrix.multiplyRight(u.matrix),u.matrix=P.IDENTITY),e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var yC=1e6**2;function SC(t){let e=t.gltf;if(!e)return null;let r=typeof e.scene=="number"?e.scene:0,o=e.scenes?.[r]?.nodes?.[0];if(!o?.matrix)return null;let s=o.matrix;return s[12]*s[12]+s[13]*s[13]+s[14]*s[14]<=yC?null:o}var _m=new S,jc=new S,qc=new ye([new de,new de,new de,new de,new de,new de]);function Em(t,e){let{cameraDirection:r,cameraUp:n,height:o}=t,{metersPerUnit:s}=t.distanceScales,i=Zs(t,t.center),a=G.WGS84.eastNorthUpToFixedFrame(i),c=t.unprojectPosition(t.cameraPosition),l=G.WGS84.cartographicToCartesian(c,new S),f=new S(a.transformAsVector(new S(r).scale(s))).normalize(),u=new S(a.transformAsVector(new S(n).scale(s))).normalize();_C(t);let h=t.constructor,{longitude:p,latitude:d,width:m,bearing:b,zoom:x}=t,y=new h({longitude:p,latitude:d,height:o,width:m,bearing:b,zoom:x,pitch:0});return{camera:{position:l,direction:f,up:u},viewport:t,topDownViewport:y,height:o,cullingVolume:qc,frameNumber:e,sseDenominator:1.15}}function Mm(t,e,r){if(r===0||t.length<=r)return[t,[]];let n=[],{longitude:o,latitude:s}=e.viewport;for(let[l,f]of t.entries()){let[u,h]=f.header.mbs,p=Math.abs(o-u),d=Math.abs(s-h),m=Math.sqrt(d*d+p*p);n.push([l,m])}let i=n.sort((l,f)=>l[1]-f[1]),a=[];for(let l=0;l<r;l++)a.push(t[i[l][0]]);let c=[];for(let l=r;l<i.length;l++)c.push(t[i[l][0]]);return[a,c]}function _C(t){let e=t.getFrustumPlanes(),r=Cm(e.near,t.cameraPosition),n=Zs(t,r),o=Zs(t,t.cameraPosition,jc),s=0;qc.planes[s++].fromPointNormal(n,_m.copy(n).subtract(o));for(let i in e){if(i==="near")continue;let a=e[i],c=Cm(a,r,jc),l=Zs(t,c,jc);qc.planes[s++].fromPointNormal(l,_m.copy(n).subtract(l))}}function Cm(t,e,r=new S){let n=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-n).add(e),r}function Zs(t,e,r=new S){let n=t.unprojectPosition(e);return G.WGS84.cartographicToCartesian(n,r)}var CC=6378137,EC=6378137,Jc=6356752314245179e-9,Wr=new S;function Im(t,e){if(t instanceof gt){let{halfAxes:r}=t,n=MC(r);return Math.log2(Jc/(n+e[2]))}else if(t instanceof ot){let{radius:r}=t;return Math.log2(Jc/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:n}=t,o=Math.log2(CC/r),s=Math.log2(EC/n);return(o+s)/2}return 1}function Wc(t,e,r){G.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],Wr);let n=Math.sqrt(Math.pow(Wr[0]-r[0],2)+Math.pow(Wr[1]-r[1],2)+Math.pow(Wr[2]-r[2],2));return Math.log2(Jc/(n+e[2]))}function Bm(t,e,r){let[n,o,s,i]=t;return Wc({xmin:n,xmax:s,ymin:o,ymax:i,zmin:0,zmax:0},e,r)}function MC(t){t.getColumn(0,Wr);let e=t.getColumn(1),r=t.getColumn(2);return Wr.add(e).add(r).len()}var qm=D(Xt(),1);var Se={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},me;(function(t){t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE"})(me||(me={}));var Ue;(function(t){t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh"})(Ue||(Ue={}));var ue;(function(t){t.I3S="I3S",t.TILES3D="TILES3D"})(ue||(ue={}));var xt;(function(t){t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold"})(xt||(xt={}));var vm={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Fm(t){return t!=null}var ge=new S,$s=new S,IC=new S,BC=new S,lr=new S,Rm=new S,wm=new S,Lm=new S;function ei(t,e,r){if(k(t,"3D Tile: boundingVolume must be defined"),t.box)return Nm(t.box,e,r);if(t.region)return RC(t.region);if(t.sphere)return vC(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function Pm(t,e){if(t.box)return wC(e);if(t.region){let[r,n,o,s,i,a]=t.region;return[[Re(r),Re(n),i],[Re(o),Re(s),a]]}if(t.sphere)return LC(e);throw new Error("Unkown boundingVolume type")}function Nm(t,e,r){let n=new S(t[0],t[1],t[2]);e.transform(n,n);let o=[];if(t.length===10){let l=t.slice(3,6),f=new et;f.fromArray(t,6);let u=new S([1,0,0]),h=new S([0,1,0]),p=new S([0,0,1]);u.transformByQuaternion(f),u.scale(l[0]),h.transformByQuaternion(f),h.scale(l[1]),p.transformByQuaternion(f),p.scale(l[2]),o=[...u.toArray(),...h.toArray(),...p.toArray()]}else o=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let s=e.transformAsVector(o.slice(0,3)),i=e.transformAsVector(o.slice(3,6)),a=e.transformAsVector(o.slice(6,9)),c=new z([s[0],s[1],s[2],i[0],i[1],i[2],a[0],a[1],a[2]]);return Fm(r)?(r.center=n,r.halfAxes=c,r):new gt(n,c)}function vC(t,e,r){let n=new S(t[0],t[1],t[2]);e.transform(n,n);let o=e.getScale($s),s=Math.max(Math.max(o[0],o[1]),o[2]),i=t[3]*s;return Fm(r)?(r.center=n,r.radius=i,r):new ot(n,i)}function RC(t){let[e,r,n,o,s,i]=t,a=G.WGS84.cartographicToCartesian([Re(e),Re(o),s],IC),c=G.WGS84.cartographicToCartesian([Re(n),Re(r),i],BC),l=new S().addVectors(a,c).multiplyByScalar(.5);return G.WGS84.cartesianToCartographic(l,lr),G.WGS84.cartographicToCartesian([Re(n),lr[1],lr[2]],Rm),G.WGS84.cartographicToCartesian([lr[0],Re(o),lr[2]],wm),G.WGS84.cartographicToCartesian([lr[0],lr[1],i],Lm),Nm([...l,...Rm.subtract(l),...wm.subtract(l),...Lm.subtract(l)],new P)}function wC(t){let e=Om(),{halfAxes:r}=t,n=new S(r.getColumn(0)),o=new S(r.getColumn(1)),s=new S(r.getColumn(2));for(let i=0;i<2;i++){for(let a=0;a<2;a++){for(let c=0;c<2;c++)ge.copy(t.center),ge.add(n),ge.add(o),ge.add(s),Um(e,ge),s.negate();o.negate()}n.negate()}return e}function LC(t){let e=Om(),{center:r,radius:n}=t,o=G.WGS84.scaleToGeodeticSurface(r,ge),s;o?s=G.WGS84.geodeticSurfaceNormal(o):s=new S(0,0,1);let i=new S(s[2],-s[1],0);i.len()>0?i.normalize():i=new S(0,1,0);let a=i.clone().cross(s);for(let c of[i,a,s]){$s.copy(c).scale(n);for(let l=0;l<2;l++)ge.copy(r),ge.add($s),Um(e,ge),$s.negate()}return e}function Om(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function Um(t,e){G.WGS84.cartesianToCartographic(e,ge),t[0][0]=Math.min(t[0][0],ge[0]),t[0][1]=Math.min(t[0][1],ge[1]),t[0][2]=Math.min(t[0][2],ge[2]),t[1][0]=Math.max(t[1][0],ge[0]),t[1][1]=Math.max(t[1][1],ge[1]),t[1][2]=Math.max(t[1][2],ge[2])}var _G=new S,CG=new S,EG=new P,MG=new S,IG=new S,BG=new S;function FC(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function PC(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,n=t.dynamicScreenSpaceErrorFactor;return FC(e,r)*n}return 0}function Dm(t,e,r){let n=t.tileset,o=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,s=r?o:t.lodMetricValue;if(s===0)return 0;let i=Math.max(t._distanceToCamera,1e-7),{height:a,sseDenominator:c}=e,{viewDistanceScale:l}=n.options,f=s*a*(l||1)/(i*c);return f-=PC(n,i),f}var Xc=new S,Gm=new S,Ot=new S,Vm=new S,NC=new S,Kc=new P,Hm=new P;function km(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return"DIG";let r=2*Yc(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function Yc(t,e){let{topDownViewport:r}=e,n=t.header.mbs[1],o=t.header.mbs[0],s=t.header.mbs[2],i=t.header.mbs[3],a=[...t.boundingVolume.center],c=r.unprojectPosition(r.cameraPosition);G.WGS84.cartographicToCartesian(c,Xc),Gm.copy(Xc).subtract(a).normalize(),G.WGS84.eastNorthUpToFixedFrame(a,Kc),Hm.copy(Kc).invert(),Ot.copy(Xc).transform(Hm);let l=Math.sqrt(Ot[0]*Ot[0]+Ot[1]*Ot[1]),f=l*l/Ot[2];Vm.copy([Ot[0],Ot[1],f]);let h=Vm.transform(Kc).subtract(a).normalize(),d=Gm.cross(h).normalize().scale(i).add(a),m=G.WGS84.cartesianToCartographic(d),b=r.project([o,n,s]),x=r.project(m);return NC.copy(b).subtract(x).magnitude()}function zm(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var io=class{_map=new Map;_array;_length;constructor(e=0){this._array=new Array(e),this._length=e}get length(){return this._length}set length(e){this._length=e,e>this._array.length&&(this._array.length=e)}get values(){return this._array}get(e){return k(e<this._array.length),this._array[e]}set(e,r){k(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=r,this._map.set(r,e)}delete(e){let r=this._map.get(e);r>=0&&(this._array.splice(r,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){let r=this.length++;this._array[r]=e,this._map.set(e,r)}}pop(){let e=this._array[--this.length];return this._map.delete(e),e}reserve(e){k(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){k(e>=0),this.length=e}trim(e){e==null&&(e=this.length),this._array.length=e}reset(){this._array=[],this._map=new Map,this._length=0}find(e){return this._map.has(e)}};var OC={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},at=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new io;_emptyTraversalStack=new io;_frameNumber=null;traversalFinished(e){return!0}constructor(e){this.options={...OC,...e}}traverse(e,r,n){this.root=e,this.options={...this.options,...n},this.reset(),this.updateTile(e,r),this._frameNumber=r.frameNumber,this.executeTraversal(e,r)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,r){let n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){let s=n.pop(),i=!1;this.canTraverse(s,r)&&(this.updateChildTiles(s,r),i=this.updateAndPushChildren(s,r,n,s.hasRenderContent?s._selectionDepth+1:s._selectionDepth));let a=s.parent,c=!!(!a||a._shouldRefine),l=!i;s.hasRenderContent?s.refine===me.ADD?(this.loadTile(s,r),this.selectTile(s,r)):s.refine===me.REPLACE&&(this.loadTile(s,r),l&&this.selectTile(s,r)):(this.emptyTiles[s.id]=s,this.loadTile(s,r),l&&this.selectTile(s,r)),this.touchTile(s,r),s._shouldRefine=i&&c}let o=new Date().getTime();(this.traversalFinished(r)||o-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=o,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let n=e.children;for(let o of n)this.updateTile(o,r)}updateAndPushChildren(e,r,n,o){let{loadSiblings:s,skipLevelOfDetail:i}=this.options,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));let c=e.refine===me.REPLACE&&e.hasRenderContent&&!i,l=!1,f=!0;for(let u of a)if(u._selectionDepth=o,u.isVisibleAndInRequestVolume?(n.find(u)&&n.delete(u),n.push(u),l=!0):(c||s)&&(this.loadTile(u,r),this.touchTile(u,r)),c){let h;if(u._inRequestVolume?u.hasRenderContent?h=u.contentAvailable:h=this.executeEmptyTraversal(u,r):h=!1,f=f&&h,!f)return!1}return l||(f=!1),f}updateTile(e,r){this.updateTileVisibility(e,r)}selectTile(e,r){this.shouldSelectTile(e)&&(e._selectedFrame=r.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,r){this.shouldLoadTile(e)&&(e._requestedFrame=r.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,r){e.tileset._cache.touch(e),e._touchedFrame=r.frameNumber}canTraverse(e,r){return e.hasChildren?e.hasTilesetContent?!e.contentExpired:this.shouldRefine(e,r):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r,n=!1){let o=e._screenSpaceError;return n&&(o=e.getScreenSpaceError(r,!0)),o>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let n=[];if(this.options.viewportTraversersMap)for(let o in this.options.viewportTraversersMap)this.options.viewportTraversersMap[o]===r.viewport.id&&n.push(o);else n.push(r.viewport.id);e.updateVisibility(r,n)}compareDistanceToCamera(e,r){return e._distanceToCamera-r._distanceToCamera}anyChildrenVisible(e,r){let n=!1;for(let o of e.children)o.updateVisibility(r),n=n||o.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,r){let n=!0,o=this._emptyTraversalStack;for(o.push(e);o.length>0;){let s=o.pop(),i=!s.hasRenderContent&&this.canTraverse(s,r),a=!s.hasRenderContent&&s.children.length===0;if(!i&&!s.contentAvailable&&!a&&(n=!1),this.updateTile(s,r),s.isVisibleAndInRequestVolume||(this.loadTile(s,r),this.touchTile(s,r)),i){let c=s.children;for(let l of c)o.push(l)}}return e.hasEmptyContent||n}};var jm=new S;function UC(t){return t!=null}var fr=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=Se.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new P;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new at({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new P;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;tileDrawn=!0;constructor(e,r,n,o=""){this.header=r,this.tileset=e,this.id=o||r.id,this.url=r.url,this.parent=n,this.refine=this._getRefine(r.refine),this.type=r.type,this.contentUrl=r.contentUrl,this._initializeLodMetric(r),this._initializeTransforms(r),this._initializeBoundingVolumes(r),this._initializeContent(r),this._initializeRenderingState(r),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===Se.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===Se.UNLOADED}get contentExpired(){return this.contentState===Se.EXPIRED}get contentFailed(){return this.contentState===Se.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=Pm(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case ue.I3S:return Yc(this,e);case ue.TILES3D:return Dm(this,e,r);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let e=this.tileset._traverser,{skipLevelOfDetail:r}=e.options,n=this.refine===me.ADD||r;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===Se.UNLOADED)return-1;let o=this.parent,i=o&&(!n||this._screenSpaceError===0||o.hasTilesetContent)?o._screenSpaceError:this._screenSpaceError,a=e.root?e.root._screenSpaceError:0;return Math.max(a-i,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=Se.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=Se.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),o=this.tileset.loader,s=this.tileset.loadOptions[o.id]||{},i={...this.tileset.loadOptions,[o.id]:{...s,isTileset:this.type==="json",...this._getLoaderSpecificOptions(o.id)}};return this.content=await(0,qm.load)(n,o,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=Se.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=Se.FAILED,n}finally{r.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=Se.UNLOADED,this.tileDrawn=!0,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let n=this.parent,o=n?n._visibilityPlaneMask:ye.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let s=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(s)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ye.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:n}=e,{boundingVolume:o}=this;return n.computeVisibilityWithPlaneMask(o,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth({camera:e}){let r=this.boundingVolume;return jm.subVectors(r.center,e.position),e.direction.dot(jm)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(UC(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=Se.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(e){"lodMetricType"in e?this.lodMetricType=e.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 e?this.lodMetricValue=e.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(e){this.transform=e.transform?new P(e.transform):new P;let r=this.parent,n=this.tileset,o=r&&r.computedTransform?r.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new P(o).multiplyRight(this.transform);let s=r&&r._initialTransform?r._initialTransform.clone():new P;this._initialTransform=new P(s).multiplyRight(this.transform)}_initializeBoundingVolumes(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}_initializeContent(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=Se.UNLOADED,this.hasTilesetContent=!1,e.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=ye.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(e){return e||this.parent&&this.parent.refine||me.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;default:}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(e){this.boundingVolume=ei(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=ei(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=ei(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(e=new P){let r=e.clone().multiplyRight(this.transform);r.equals(this.computedTransform)||(this.computedTransform=r,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){return e==="i3s"?{...this.tileset.options.i3s,_tileOptions:{attributeUrls:this.header.attributeUrls,textureUrl:this.header.textureUrl,textureFormat:this.header.textureFormat,textureLoaderOptions:this.header.textureLoaderOptions,materialDefinition:this.header.materialDefinition,isDracoGeometry:this.header.isDracoGeometry,mbs:this.header.mbs},_tilesetOptions:{store:this.tileset.tileset.store,attributeStorageInfo:this.tileset.tileset.attributeStorageInfo,fields:this.tileset.tileset.fields},isTileHeader:!1}:zm(this.tileset.tileset)}};var ti=class extends at{compareDistanceToCamera(e,r){return r._distanceToCamera===0&&e._distanceToCamera===0?r._centerZDepth-e._centerZDepth:r._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,r){if(super.updateTileVisibility(e,r),!e.isVisibleAndInRequestVolume)return;let n=e.children.length>0;if(e.hasTilesetContent&&n){let i=e.children[0];this.updateTileVisibility(i,r),e._visible=i._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let o=e.refine===me.REPLACE,s=e._optimChildrenWithinParent===vm.USE_OPTIMIZATION;if(o&&s&&n&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==me.ADD?!1:!this.shouldRefine(e,r,!0)}};var Jm=D(Xt(),1);var ri=class{frameNumberMap=new Map;register(e,r){let n=this.frameNumberMap.get(e)||new Map,o=n.get(r)||0;n.set(r,o+1),this.frameNumberMap.set(e,n)}deregister(e,r){let n=this.frameNumberMap.get(e);if(!n)return;let o=n.get(r)||1;n.set(r,o-1)}isZero(e,r){return(this.frameNumberMap.get(e)?.get(r)||0)===0}};var Qc={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},ni=class{_statusMap;pendingTilesRegister=new ri;constructor(){this._statusMap={}}add(e,r,n,o){if(!this._statusMap[r]){let{frameNumber:s,viewport:{id:i}}=o;this._statusMap[r]={request:e,callback:n,key:r,frameState:o,status:Qc.REQUESTED},this.pendingTilesRegister.register(i,s),e().then(a=>{this._statusMap[r].status=Qc.COMPLETED;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),this._statusMap[r].callback(a,o)}).catch(a=>{this._statusMap[r].status=Qc.ERROR;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),n(a)})}}update(e,r){if(this._statusMap[e]){let{frameNumber:n,viewport:{id:o}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(o,n);let{frameNumber:s,viewport:{id:i}}=r;this.pendingTilesRegister.register(i,s),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var oi=class extends at{_tileManager;constructor(e){super(e),this._tileManager=new ni}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=km(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let n=e.header.children||[],o=e.children,s=e.tileset;for(let i of n){let a=`${i.id}-${r.viewport.id}`,c=o&&o.find(l=>l.id===a);if(c)c&&this.updateTile(c,r);else{let l=()=>this._loadTile(i.id,s);this._tileManager.find(a)?this._tileManager.update(a,r):(s.tileset.nodePages&&(l=()=>s.tileset.nodePagesTile.formTileFromNodePages(i.id)),this._tileManager.add(l,a,u=>this._onTileLoad(u,e,a),r))}}return!1}async _loadTile(e,r){let{loader:n}=r,o=r.getTileUrl(`${r.url}/nodes/${e}`),s={...r.loadOptions,i3s:{...r.loadOptions.i3s,isTileHeader:!0}};return await(0,Jm.load)(o,n,s)}_onTileLoad(e,r,n){let o=new fr(r.tileset,e,r,n);r.children.push(o);let s=this._tileManager.find(o.id).frameState;this.updateTile(o,s),this._frameNumber===s.frameNumber&&(this.traversalFinished(s)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(o,s)}};var DC={description:"",ellipsoid:G.WGS84,modelMatrix:new P,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,onUpdate:()=>{},contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},si="Tiles In Tileset(s)",Zc="Tiles In Memory",Wm="Tiles In View",Xm="Tiles To Render",Km="Tiles Loaded",$c="Tiles Loading",Ym="Tiles Unloaded",Qm="Failed Tile Loads",Zm="Points/Vertices",el="Tile Memory Use",$m="Maximum Screen Space Error",ao=class{options;loadOptions;type;tileset;loader;url;basePath;modelMatrix;ellipsoid;lodMetricType;lodMetricValue;refine;root=null;roots={};asset={};description="";properties;extras=null;attributions={};credits={};stats;contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1};cartographicCenter=null;cartesianCenter=null;zoom=1;boundingVolume=null;dynamicScreenSpaceErrorComputedDensity=0;maximumMemoryUsage=32;gpuMemoryUsageInBytes=0;memoryAdjustedScreenSpaceError=0;_cacheBytes=0;_cacheOverflowBytes=0;_frameNumber=0;_queryParams={};_extensionsUsed=[];_tiles={};_pendingCount=0;selectedTiles=[];traverseCounter=0;geometricError=0;lastUpdatedVieports=null;_requestedTiles=[];_emptyTiles=[];frameStateData={};_traverser;_cache=new Qs;_requestScheduler;_heldTiles=new Set;updatePromise=null;tilesetInitializationPromise;constructor(e,r){this.options={...DC,...r},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Ft.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=e.lodMetricType,this.lodMetricValue=e.lodMetricValue,this.refine=e.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new wt({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.memoryAdjustedScreenSpaceError=this.options.maximumScreenSpaceError,this._cacheBytes=this.options.maximumMemoryUsage*1024*1024,this._cacheOverflowBytes=this.options.memoryCacheOverflow*1024*1024,this.stats=new Rt({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(e)}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 new URLSearchParams(this._queryParams).toString()}setProps(e){this.options={...this.options,...e}}getTileUrl(e){if(e.startsWith("data:"))return e;let n=e;return this.queryParams.length&&(n=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(e){return this._extensionsUsed.indexOf(e)>-1}update(e=null){this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(e=null){return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(r=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),r(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(e){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let r=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=r.length;let n=[];for(let o of r){let s=o.id;this._needTraverse(s)?n.push(s):this.traverseCounter--}for(let o of r){let s=o.id;if(this.roots[s]||(this.roots[s]=this._initializeTileHeaders(this.tileset,null)),!n.includes(s))continue;let i=Em(o,this._frameNumber);this._traverser.traverse(this.roots[s],i,this.options)}}_needTraverse(e){let r=e;return this.options.viewportTraversersMap&&(r=this.options.viewportTraversersMap[e]),r===e}_onTraversalEnd(e){let r=e.viewport.id;this.frameStateData[r]||(this.frameStateData[r]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[r],o=Object.values(this._traverser.selectedTiles),[s,i]=Mm(o,e,this.options.maximumTilesSelected);n.selectedTiles=s;for(let a of i)a.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){let e=this.selectedTiles;this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(let s in this.frameStateData){let i=this.frameStateData[s];this.selectedTiles=this.selectedTiles.concat(i.selectedTiles),this._requestedTiles=this._requestedTiles.concat(i._requestedTiles),this._emptyTiles=this._emptyTiles.concat(i._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);let r=new Set(this.selectedTiles.map(s=>s.id)),n=this.selectedTiles.some(s=>!s.tileDrawn),o=0;if(n){for(let s of r)this._heldTiles.add(s);for(let s of this._heldTiles){if(r.has(s))continue;let i=this._tiles[s];i&&i.contentAvailable?(i._selectedFrame=this._frameNumber,this.selectedTiles.push(i),o++):this._heldTiles.delete(s)}}else this._heldTiles=r;o>0&&setTimeout(()=>{this.selectTiles()},0);for(let s of this.selectedTiles)this._tiles[s.id]=s;this._loadTiles(),this._unloadTiles(),this._updateStats(),this._tilesChanged(e,this.selectedTiles)&&this.options.onUpdate()}_tilesChanged(e,r){if(e.length!==r.length)return!0;let n=new Set(e.map(i=>i.id)),o=new Set(r.map(i=>i.id)),s=e.filter(i=>!o.has(i.id)).length>0;return s=s||r.filter(i=>!n.has(i.id)).length>0,s}_loadTiles(){this._requestedTiles.sort((e,r)=>e._priority-r._priority);for(let e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,r)=>e._unloadTile(r))}_updateStats(){let e=0,r=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?r+=n.content.pointCount:r+=n.content.vertexCount);this.stats.get(Wm).count=this.selectedTiles.length,this.stats.get(Xm).count=e,this.stats.get(Zm).count=r,this.stats.get($m).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===ue.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===ue.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===ue.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){let e=this.tileset.fullExtent;if(e){let{xmin:n,xmax:o,ymin:s,ymax:i,zmin:a,zmax:c}=e;this.cartographicCenter=new S(n+(o-n)/2,s+(i-s)/2,a+(c-a)/2),this.cartesianCenter=new S,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=Wc(e,this.cartographicCenter,this.cartesianCenter);return}let r=this.tileset.store?.extent;if(r){let[n,o,s,i]=r;this.cartographicCenter=new S(n+(s-n)/2,o+(i-o)/2,0),this.cartesianCenter=new S,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=Bm(r,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new S,this.zoom=1}calculateViewPropsTiles3D(){let e=this.root,{center:r}=e.boundingVolume;if(!r){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new S,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new S,G.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new S(0,0,-G.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=Im(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(si),this.stats.get($c),this.stats.get(Zc),this.stats.get(Wm),this.stats.get(Xm),this.stats.get(Km),this.stats.get(Ym),this.stats.get(Qm),this.stats.get(Zm),this.stats.get(el,"memory"),this.stats.get($m)}_initializeTileHeaders(e,r){let n=new fr(this,e.root,r);if(r&&(r.children.push(n),n.depth=r.depth+1),this.type===ue.TILES3D){let o=[];for(o.push(n);o.length>0;){let s=o.pop();this.stats.get(si).incrementCount();let i=s.header.children||[];for(let a of i){let c=new fr(this,a,s);if(c.contentUrl?.includes("?session=")){let f=new URL(c.contentUrl).searchParams.get("session");f&&(this._queryParams.session=f)}s.children.push(c),c.depth=s.depth+1,o.push(c)}}}return n}_initializeTraverser(){let e;switch(this.type){case ue.TILES3D:e=ti;break;case ue.I3S:e=oi;break;default:e=at}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let r;try{this._onStartTileLoading(),r=await e.loadContent()}catch(n){this._onTileLoadError(e,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,r)}}_onTileLoadError(e,r){this.stats.get(Qm).incrementCount();let n=r.message||r.toString(),o=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,o)}_onTileLoad(e,r){if(r){if(this.type===ue.I3S){let n=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(si).reset(),this.stats.get(si).addCount(n)}e&&e.content&&Sm(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===ue.I3S)switch(e.header.isDracoGeometry&&(this.contentFormats.draco=!0),e.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break;default:}else if(this.type===ue.TILES3D){let{extensionsRemoved:r=[]}=e.content?.gltf||{};r.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),r.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),r.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get($c).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get($c).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(Km).incrementCount(),this.stats.get(Zc).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(el).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(Zc).decrementCount(),this.stats.get(Ym).incrementCount(),this.stats.get(el).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){let e=[];for(this.root&&e.push(this.root);e.length>0;){let r=e.pop();for(let n of r.children)e.push(n);this._destroyTile(r)}this.root=null}_destroySubtree(e){let r=e,n=[];for(n.push(r);n.length>0;){e=n.pop();for(let o of e.children)n.push(o);e!==r&&this._destroyTile(e)}r.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){let r=new URLSearchParams(e.queryString),n=Object.fromEntries(r.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=e.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0"&&this.asset.version!=="1.1")throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed||[],this.extras=e.extras}_initializeI3STileset(){let e=this.loadOptions.i3s;e&&typeof e=="object"&&"token"in e&&(this._queryParams.token=e.token)}};var ii="4.4.3";var ur={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},_V=Object.keys(ur);function tl(t,e,r){k(t instanceof ArrayBuffer);let n=new TextDecoder("utf8"),o=new Uint8Array(t,e,r);return n.decode(o)}function eg(t,e=0){let r=new DataView(t);return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}var GC="1.5.6",VC="1.4.1",rl=`https://www.gstatic.com/draco/versioned/decoders/${GC}`,he={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},co={[he.DECODER]:`${rl}/${he.DECODER}`,[he.DECODER_WASM]:`${rl}/${he.DECODER_WASM}`,[he.FALLBACK_DECODER]:`${rl}/${he.FALLBACK_DECODER}`,[he.ENCODER]:`https://raw.githubusercontent.com/google/draco/${VC}/javascript/${he.ENCODER}`},nl;async function rg(t={},e){let r=t.modules||{};return r.draco3d?nl||=r.draco3d.createDecoderModule({}).then(n=>({draco:n})):nl||=HC(t,e),await nl}function tg(t,e){if(t&&typeof t=="object"){if(t.default)return t.default;if(t[e])return t[e]}return t}async function HC(t,e){let r,n;switch(e){case"js":r=await Ne(co[he.FALLBACK_DECODER],"draco",t,he.FALLBACK_DECODER);break;default:try{[r,n]=await Promise.all([await Ne(co[he.DECODER],"draco",t,he.DECODER),await Ne(co[he.DECODER_WASM],"draco",t,he.DECODER_WASM)])}catch{r=null,n=null}}return r=tg(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule,!r&&!ht&&([r,n]=await Promise.all([await Ne(co[he.DECODER],"draco",{...t,useLocalLibraries:!0},he.DECODER),await Ne(co[he.DECODER_WASM],"draco",{...t,useLocalLibraries:!0},he.DECODER_WASM)]),r=tg(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule),await kC(r,n)}function kC(t,e){if(typeof t!="function")throw new Error("DracoDecoderModule could not be loaded");let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t({...r,onModuleLoaded:o=>n({draco:o})})})}var ng="4.4.3";function og(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function hr(t){let e=1/0,r=1/0,n=1/0,o=-1/0,s=-1/0,i=-1/0,a=t.POSITION?t.POSITION.value:[],c=a&&a.length;for(let l=0;l<c;l+=3){let f=a[l],u=a[l+1],h=a[l+2];e=f<e?f:e,r=u<r?u:r,n=h<n?h:n,o=f>o?f:o,s=u>s?u:s,i=h>i?h:i}return[[e,r,n],[o,s,i]]}function ol(t,e,r){let n=og(e.value),o=r||sg(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:o}}function sg(t){let e={};return"byteOffset"in t&&(e.byteOffset=t.byteOffset.toString(10)),"byteStride"in t&&(e.byteStride=t.byteStride.toString(10)),"normalized"in t&&(e.normalized=t.normalized.toString()),e}function ag(t,e,r){let n=cg(e.metadata),o=[],s=zC(e.attributes);for(let i in t){let a=t[i],c=ig(i,a,s[i]);o.push(c)}if(r){let i=ig("indices",r);o.push(i)}return{fields:o,metadata:n}}function zC(t){let e={};for(let r in t){let n=t[r];e[n.name||"undefined"]=n}return e}function ig(t,e,r){let n=r?cg(r.metadata):void 0;return ol(t,e,n)}function cg(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var lg={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},jC={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},qC=4,lo=class{draco;decoder;metadataQuerier;constructor(e){this.draco=e,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,r={}){let n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let o=this.decoder.GetEncodedGeometryType(n),s=o===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let i;switch(o){case this.draco.TRIANGULAR_MESH:i=this.decoder.DecodeBufferToMesh(n,s);break;case this.draco.POINT_CLOUD:i=this.decoder.DecodeBufferToPointCloud(n,s);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!i.ok()||!s.ptr){let h=`DRACO decompression failed: ${i.error_msg()}`;throw new Error(h)}let a=this._getDracoLoaderData(s,o,r),c=this._getMeshData(s,a,r),l=hr(c.attributes),f=ag(c.attributes,a,c.indices);return{loader:"draco",loaderData:a,header:{vertexCount:s.num_points(),boundingBox:l},...c,schema:f}}finally{this.draco.destroy(n),s&&this.draco.destroy(s)}}_getDracoLoaderData(e,r,n){let o=this._getTopLevelMetadata(e),s=this._getDracoAttributes(e,n);return{geometry_type:r,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:o,attributes:s}}_getDracoAttributes(e,r){let n={};for(let o=0;o<e.num_attributes();o++){let s=this.decoder.GetAttribute(e,o),i=this._getAttributeMetadata(e,o);n[s.unique_id()]={unique_id:s.unique_id(),attribute_type:s.attribute_type(),data_type:s.data_type(),num_components:s.num_components(),byte_offset:s.byte_offset(),byte_stride:s.byte_stride(),normalized:s.normalized(),attribute_index:o,metadata:i};let a=this._getQuantizationTransform(s,r);a&&(n[s.unique_id()].quantization_transform=a);let c=this._getOctahedronTransform(s,r);c&&(n[s.unique_id()].octahedron_transform=c)}return n}_getMeshData(e,r,n){let o=this._getMeshAttributes(r,e,n);if(!o.POSITION)throw new Error("DRACO: No position attribute found.");return e instanceof this.draco.Mesh?n.topology==="triangle-strip"?{topology:"triangle-strip",mode:4,attributes:o,indices:{value:this._getTriangleStripIndices(e),size:1}}:{topology:"triangle-list",mode:5,attributes:o,indices:{value:this._getTriangleListIndices(e),size:1}}:{topology:"point-list",mode:0,attributes:o}}_getMeshAttributes(e,r,n){let o={};for(let s of Object.values(e.attributes)){let i=this._deduceAttributeName(s,n);s.name=i;let a=this._getAttributeValues(r,s);if(a){let{value:c,size:l}=a;o[i]={value:c,size:l,byteOffset:s.byte_offset,byteStride:s.byte_stride,normalized:s.normalized}}}return o}_getTriangleListIndices(e){let n=e.num_faces()*3,o=n*qC,s=this.draco._malloc(o);try{return this.decoder.GetTrianglesUInt32Array(e,o,s),new Uint32Array(this.draco.HEAPF32.buffer,s,n).slice()}finally{this.draco._free(s)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),XC(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let n=jC[r.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${r.data_type}`),null;let o=r.num_components,i=e.num_points()*o,a=i*n.BYTES_PER_ELEMENT,c=JC(this.draco,n),l,f=this.draco._malloc(a);try{let u=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,u,c,a,f),l=new n(this.draco.HEAPF32.buffer,f,i).slice()}finally{this.draco._free(f)}return{value:l,size:o}}_deduceAttributeName(e,r){let n=e.unique_id;for(let[i,a]of Object.entries(r.extraAttributes||{}))if(a===n)return i;let o=e.attribute_type;for(let i in lg)if(this.draco[i]===o)return lg[i];let s=r.attributeNameEntry||"name";return e.metadata[s]?e.metadata[s].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){let r=this.decoder.GetMetadata(e);return this._getDracoMetadata(r)}_getAttributeMetadata(e,r){let n=this.decoder.GetAttributeMetadata(e,r);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};let r={},n=this.metadataQuerier.NumEntries(e);for(let o=0;o<n;o++){let s=this.metadataQuerier.GetEntryName(e,o);r[s]=this._getDracoMetadataField(e,s)}return r}_getDracoMetadataField(e,r){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,n);let o=WC(n);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:o}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:n=[]}=e,o=[...r,...n];for(let s of o)this.decoder.SkipAttributeTransform(this.draco[s])}_getQuantizationTransform(e,r){let{quantizedAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits(),range:i.range(),min_values:new Float32Array([1,2,3]).map(a=>i.min_value(a))}}finally{this.draco.destroy(i)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits()}}finally{this.draco.destroy(i)}}return null}};function JC(t,e){switch(e){case Float32Array:return t.DT_FLOAT32;case Int8Array:return t.DT_INT8;case Int16Array:return t.DT_INT16;case Int32Array:return t.DT_INT32;case Uint8Array:return t.DT_UINT8;case Uint16Array:return t.DT_UINT16;case Uint32Array:return t.DT_UINT32;default:return t.DT_INVALID}}function WC(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}function XC(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}var fg={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:ng,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",extraAttributes:{},attributeNameEntry:void 0}}},fo={...fg,parse:KC};async function KC(t,e){let{draco:r}=await rg(Pn(e),e?.draco?.decoderType||"wasm"),n=new lo(r);try{return n.parseSync(t,e?.draco)}finally{n.destroy()}}var YC={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},ce={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},N={...YC,...ce};var sl={[ce.DOUBLE]:Float64Array,[ce.FLOAT]:Float32Array,[ce.UNSIGNED_SHORT]:Uint16Array,[ce.UNSIGNED_INT]:Uint32Array,[ce.UNSIGNED_BYTE]:Uint8Array,[ce.BYTE]:Int8Array,[ce.SHORT]:Int16Array,[ce.INT]:Int32Array},QC={DOUBLE:ce.DOUBLE,FLOAT:ce.FLOAT,UNSIGNED_SHORT:ce.UNSIGNED_SHORT,UNSIGNED_INT:ce.UNSIGNED_INT,UNSIGNED_BYTE:ce.UNSIGNED_BYTE,BYTE:ce.BYTE,SHORT:ce.SHORT,INT:ce.INT},il="Failed to convert GL type",Me=class t{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in sl)if(sl[r]===e)return r;throw new Error(il)}static fromName(e){let r=QC[e];if(!r)throw new Error(il);return r}static getArrayType(e){switch(e){case ce.UNSIGNED_SHORT_5_6_5:case ce.UNSIGNED_SHORT_4_4_4_4:case ce.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=sl[e];if(!r)throw new Error(il);return r}}static getByteSize(e){return t.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return!!t.getArrayType(e)}static createTypedArray(e,r,n=0,o){o===void 0&&(o=(r.byteLength-n)/t.getByteSize(e));let s=ArrayBuffer.isView(r)?r.buffer:r,i=t.getArrayType(e);return new i(s,n,o)}};function ug(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function al(t,e=[0,0,0]){let r=t>>11&31,n=t>>5&63,o=t&31;return e[0]=r<<3,e[1]=n<<2,e[2]=o<<3,e}var o4=1/256;var s4=new qt,i4=new S,a4=new qt,c4=new qt,l4=new Uint8Array(1);function hg(t,e=255){return Qo(t,0,e)/e*2-1}function pg(t){return t<0?-1:1}function dg(t,e,r,n){if(ug(n),t<0||t>r||e<0||e>r)throw new Error(`x and y must be unsigned normalized integers between 0 and ${r}`);if(n.x=hg(t,r),n.y=hg(e,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let o=n.x;n.x=(1-Math.abs(n.y))*pg(o),n.y=(1-Math.abs(o))*pg(n.y)}return n.normalize()}function cl(t,e,r){return dg(t,e,255,r)}var Tt=class{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(e,r){this.json=e,this.buffer=r}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return!!this.json[e]}getGlobalProperty(e,r=N.UNSIGNED_INT,n=1){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?this._getTypedArrayFromBinary(e,r,n,1,o.byteOffset):o}getPropertyArray(e,r,n){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?("componentType"in o&&(r=Me.fromName(o.componentType)),this._getTypedArrayFromBinary(e,r,n,this.featuresLength,o.byteOffset)):this._getTypedArrayFromArray(e,r,o)}getProperty(e,r,n,o,s){let i=this.json[e];if(!i)return i;let a=this.getPropertyArray(e,r,n);if(n===1)return a[o];for(let c=0;c<n;++c)s[c]=a[n*o+c];return s}_getTypedArrayFromBinary(e,r,n,o,s){let i=this._cachedTypedArrays,a=i[e];return a||(a=Me.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+s,o*n),i[e]=a),a}_getTypedArrayFromArray(e,r,n){let o=this._cachedTypedArrays,s=o[e];if(!s){if(ArrayBuffer.isView(n)){let i=n.byteOffset,c=n.byteLength/Me.getByteSize(r);s=Me.createTypedArray(r,n.buffer,i,c)}else if(n instanceof ArrayBuffer)s=Me.createTypedArray(r,n);else{let i=Me.getArrayType(r);s=new i(n)}o[e]=s}return s}};var ZC={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},$C={SCALAR:(t,e)=>t[e],VEC2:(t,e)=>[t[2*e+0],t[2*e+1]],VEC3:(t,e)=>[t[3*e+0],t[3*e+1],t[3*e+2]],VEC4:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT2:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT3:(t,e)=>[t[9*e+0],t[9*e+1],t[9*e+2],t[9*e+3],t[9*e+4],t[9*e+5],t[9*e+6],t[9*e+7],t[9*e+8]],MAT4:(t,e)=>[t[16*e+0],t[16*e+1],t[16*e+2],t[16*e+3],t[16*e+4],t[16*e+5],t[16*e+6],t[16*e+7],t[16*e+8],t[16*e+9],t[16*e+10],t[16*e+11],t[16*e+12],t[16*e+13],t[16*e+14],t[16*e+15]]},eE={SCALAR:(t,e,r)=>{e[r]=t},VEC2:(t,e,r)=>{e[2*r+0]=t[0],e[2*r+1]=t[1]},VEC3:(t,e,r)=>{e[3*r+0]=t[0],e[3*r+1]=t[1],e[3*r+2]=t[2]},VEC4:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT2:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT3:(t,e,r)=>{e[9*r+0]=t[0],e[9*r+1]=t[1],e[9*r+2]=t[2],e[9*r+3]=t[3],e[9*r+4]=t[4],e[9*r+5]=t[5],e[9*r+6]=t[6],e[9*r+7]=t[7],e[9*r+8]=t[8],e[9*r+9]=t[9]},MAT4:(t,e,r)=>{e[16*r+0]=t[0],e[16*r+1]=t[1],e[16*r+2]=t[2],e[16*r+3]=t[3],e[16*r+4]=t[4],e[16*r+5]=t[5],e[16*r+6]=t[6],e[16*r+7]=t[7],e[16*r+8]=t[8],e[16*r+9]=t[9],e[16*r+10]=t[10],e[16*r+11]=t[11],e[16*r+12]=t[12],e[16*r+13]=t[13],e[16*r+14]=t[14],e[16*r+15]=t[15]}};function mg(t,e,r,n){let{componentType:o}=t;k(t.componentType);let s=typeof o=="string"?Me.fromName(o):o,i=ZC[t.type],a=$C[t.type],c=eE[t.type];return r+=t.byteOffset,{values:Me.createTypedArray(s,e,r,i*n),type:s,size:i,unpacker:a,packer:c}}var ct=t=>t!==void 0;function gg(t,e,r){if(!e)return null;let n=t.getExtension("3DTILES_batch_table_hierarchy"),o=e.HIERARCHY;return o&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=o,n=o),n?tE(n,r):null}function tE(t,e){let r,n,o,s=t.instancesLength,i=t.classes,a=t.classIds,c=t.parentCounts,l=t.parentIds,f=s;ct(a.byteOffset)&&(a.componentType=defaultValue(a.componentType,GL.UNSIGNED_SHORT),a.type=AttributeType.SCALAR,o=getBinaryAccessor(a),a=o.createArrayBufferView(e.buffer,e.byteOffset+a.byteOffset,s));let u;if(ct(c))for(ct(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,o=getBinaryAccessor(c),c=o.createArrayBufferView(e.buffer,e.byteOffset+c.byteOffset,s)),u=new Uint16Array(s),f=0,r=0;r<s;++r)u[r]=f,f+=c[r];ct(l)&&ct(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,o=getBinaryAccessor(l),l=o.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,f));let h=i.length;for(r=0;r<h;++r){let b=i[r].length,x=i[r].instances,y=getBinaryProperties(b,x,e);i[r].instances=combine(y,x)}let p=new Array(h).fill(0),d=new Uint16Array(s);for(r=0;r<s;++r)n=a[r],d[r]=p[n],++p[n];let m={classes:i,classIds:a,classIndexes:d,parentCounts:c,parentIndexes:u,parentIds:l};return oE(m),m}function Xr(t,e,r){if(!t)return;let n=t.parentCounts;return t.parentIds?r(t,e):n>0?rE(t,e,r):nE(t,e,r)}function rE(t,e,r){let n=t.classIds,o=t.parentCounts,s=t.parentIds,i=t.parentIndexes,a=n.length,c=scratchVisited;c.length=Math.max(c.length,a);let l=++marker,f=scratchStack;for(f.length=0,f.push(e);f.length>0;){if(e=f.pop(),c[e]===l)continue;c[e]=l;let u=r(t,e);if(ct(u))return u;let h=o[e],p=i[e];for(let d=0;d<h;++d){let m=s[p+d];m!==e&&f.push(m)}}return null}function nE(t,e,r){let n=!0;for(;n;){let o=r(t,e);if(ct(o))return o;let s=t.parentIds[e];n=s!==e,e=s}throw new Error("traverseHierarchySingleParent")}function oE(t){let e=[],n=t.classIds.length;for(let o=0;o<n;++o)bg(t,o,stack)}function bg(t,e,r){let n=t.parentCounts,o=t.parentIds,s=t.parentIndexes,a=t.classIds.length;if(!ct(o))return;assert(e<a,`Parent index ${e} exceeds the total number of instances: ${a}`),assert(r.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),r.push(e);let c=ct(n)?n[e]:1,l=ct(n)?s[e]:e;for(let f=0;f<c;++f){let u=o[l+f];u!==e&&bg(t,u,r)}r.pop(e)}function Ie(t){return t!=null}var ai=(t,e)=>t,sE={HIERARCHY:!0,extensions:!0,extras:!0},pr=class{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,r,n,o={}){k(n>=0),this.json=e||{},this.binary=r,this.featureCount=n,this._extensions=this.json?.extensions||{},this._properties={};for(let s in this.json)sE[s]||(this._properties[s]=this.json[s]);this._binaryProperties=this._initializeBinaryProperties(),o["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=gg(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,r){if(this._checkBatchId(e),k(typeof r=="string",r),this._hierarchy){let n=Xr(this._hierarchy,e,(o,s)=>{let i=o.classIds[s];return o.classes[i].name===r});return Ie(n)}return!1}isExactClass(e,r){return k(typeof r=="string",r),this.getExactClassName(e)===r}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){let r=this._hierarchy.classIds[e];return this._hierarchy.classes[r].name}}hasProperty(e,r){return this._checkBatchId(e),k(typeof r=="string",r),Ie(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=Ie(r)?r:[],r.length=0;let n=Object.keys(this._properties);return r.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,r),r}getProperty(e,r){if(this._checkBatchId(e),k(typeof r=="string",r),this._binaryProperties){let o=this._binaryProperties[r];if(Ie(o))return this._getBinaryProperty(o,e)}let n=this._properties[r];if(Ie(n))return ai(n[e],!0);if(this._hierarchy){let o=this._getHierarchyProperty(e,r);if(Ie(o))return o}}setProperty(e,r,n){let o=this.featureCount;if(this._checkBatchId(e),k(typeof r=="string",r),this._binaryProperties){let i=this._binaryProperties[r];if(i){this._setBinaryProperty(i,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,n))return;let s=this._properties[r];Ie(s)||(this._properties[r]=new Array(o),s=this._properties[r]),s[e]=ai(n,!0)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,r){return e.unpack(e.typedArray,r)}_setBinaryProperty(e,r,n){e.pack(n,e.typedArray,r)}_initializeBinaryProperties(){let e=null;for(let r in this._properties){let n=this._properties[r],o=this._initializeBinaryProperty(r,n);o&&(e=e||{},e[r]=o)}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let n=r;k(this.binary,`Property ${e} requires a batch table binary.`),k(n.type,`Property ${e} requires a type.`);let o=mg(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:o.values,componentCount:o.size,unpack:o.unpacker,pack:o.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return!1;let n=Xr(this._hierarchy,e,(o,s)=>{let i=o.classIds[s],a=o.classes[i].instances;return Ie(a[r])});return Ie(n)}_getPropertyNamesInHierarchy(e,r){Xr(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s].instances;for(let a in i)i.hasOwnProperty(a)&&r.indexOf(a)===-1&&r.push(a)})}_getHierarchyProperty(e,r){return Xr(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s],a=n.classIndexes[o],c=i.instances[r];return Ie(c)?Ie(c.typedArray)?this._getBinaryProperty(c,a):ai(c[a],!0):null})}_setHierarchyProperty(e,r,n,o){let s=Xr(this._hierarchy,r,(i,a)=>{let c=i.classIds[a],l=i.classes[c],f=i.classIndexes[a],u=l.instances[n];return Ie(u)?(k(a===r,`Inherited property "${n}" is read-only.`),Ie(u.typedArray)?this._setBinaryProperty(u,f,o):u[f]=ai(o,!0),!0):!1});return Ie(s)}};function Ut(t,e,r=0){let n=new DataView(e);if(t.magic=n.getUint32(r,!0),r+=4,t.version=n.getUint32(r,!0),r+=4,t.byteLength=n.getUint32(r,!0),r+=4,t.version!==1)throw new Error(`3D Tile Version ${t.version} not supported`);return r}var Kr=4,Ag="b3dm tile in legacy format.";function Yr(t,e,r){let n=new DataView(e),o;t.header=t.header||{};let s=n.getUint32(r,!0);r+=Kr;let i=n.getUint32(r,!0);r+=Kr;let a=n.getUint32(r,!0);r+=Kr;let c=n.getUint32(r,!0);return r+=Kr,a>=570425344?(r-=Kr*2,o=s,a=i,c=0,s=0,i=0,console.warn(Ag)):c>=570425344&&(r-=Kr,o=a,a=s,c=i,s=0,i=0,console.warn(Ag)),t.header.featureTableJsonByteLength=s,t.header.featureTableBinaryByteLength=i,t.header.batchTableJsonByteLength=a,t.header.batchTableBinaryByteLength=c,t.header.batchLength=o,r}function Qr(t,e,r,n){return r=iE(t,e,r,n),r=aE(t,e,r,n),r}function iE(t,e,r,n){let{featureTableJsonByteLength:o,featureTableBinaryByteLength:s,batchLength:i}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:i||0},o&&o>0){let a=tl(e,r,o);t.featureTableJson=JSON.parse(a)}return r+=o||0,t.featureTableBinary=new Uint8Array(e,r,s),r+=s||0,r}function aE(t,e,r,n){let{batchTableJsonByteLength:o,batchTableBinaryByteLength:s}=t.header||{};if(o&&o>0){let i=tl(e,r,o);t.batchTableJson=JSON.parse(i),r+=o,s&&s>0&&(t.batchTableBinary=new Uint8Array(e,r,s),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=s)}return r}function ll(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:n,isRGB565:o,pointCount:s=0}=t;if(n&&r){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=n[a],f=r.getProperty(c,"dimensions").map(u=>u*255);i[a*3]=f[0],i[a*3+1]=f[1],i[a*3+2]=f[2]}return{type:N.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}if(e&&o){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=al(e[a]);i[a*3]=c[0],i[a*3+1]=c[1],i[a*3+2]=c[2]}return{type:N.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}return e&&e.length===s*3?{type:N.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:N.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var xg=new S;function Tg(t,e){if(!e)return null;if(t.isOctEncoded16P){let r=new Float32Array((t.pointsLength||0)*3);for(let n=0;n<(t.pointsLength||0);n++)cl(e[n*2],e[n*2+1],xg),xg.toArray(r,n*3);return{type:N.FLOAT,size:2,value:r}}return{type:N.FLOAT,size:2,value:e}}function yg(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=!1,cE(t,e)):{type:N.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function cE(t,e){let r=new S,n=new Float32Array(t.pointCount*3);for(let o=0;o<t.pointCount;o++)r.set(e[o*3],e[o*3+1],e[o*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(n,o*3);return n}async function Sg(t,e,r,n,o){r=Ut(t,e,r),r=Yr(t,e,r),r=Qr(t,e,r,n),lE(t);let{featureTable:s,batchTable:i}=fE(t);return await mE(t,s,i,n,o),uE(t,s,n),hE(t,s,i),pE(t,s),r}function lE(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function fE(t){let e=new Tt(t.featureTableJson,t.featureTableBinary),r=e.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(r))throw new Error("POINTS_LENGTH must be defined");e.featuresLength=r,t.featuresLength=r,t.pointsLength=r,t.pointCount=r,t.rtcCenter=e.getGlobalProperty("RTC_CENTER",N.FLOAT,3);let n=dE(t,e);return{featureTable:e,batchTable:n}}function uE(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.positions){if(e.hasProperty("POSITION"))t.attributes.positions=e.getPropertyArray("POSITION",N.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",N.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=65535,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",N.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",N.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=yg(t,n,r)}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function hE(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.colors){let n=null;e.hasProperty("RGBA")?(n=e.getPropertyArray("RGBA",N.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",N.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",N.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=ll(t,n,r)}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",N.UNSIGNED_BYTE,4))}function pE(t,e){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.normals){let r=null;e.hasProperty("NORMAL")?r=e.getPropertyArray("NORMAL",N.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",N.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=Tg(t,r)}}function dE(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",N.UNSIGNED_SHORT,1),t.batchIds)){let n=e.getGlobalProperty("BATCH_LENGTH");if(!n)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");let{batchTableJson:o,batchTableBinary:s}=t;r=new pr(o,s,n)}return r}async function mE(t,e,r,n,o){let s,i,a,c=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions["3DTILES_draco_point_compression"];c&&(a=c.properties);let l=e.getExtension("3DTILES_draco_point_compression");if(l){i=l.properties;let u=l.byteOffset,h=l.byteLength;if(!i||!Number.isFinite(u)||!h)throw new Error("Draco properties, byteOffset, and byteLength must be defined");s=(t.featureTableBinary||[]).slice(u,u+h),t.hasPositions=Number.isFinite(i.POSITION),t.hasColors=Number.isFinite(i.RGB)||Number.isFinite(i.RGBA),t.hasNormals=Number.isFinite(i.NORMAL),t.hasBatchIds=Number.isFinite(i.BATCH_ID),t.isTranslucent=Number.isFinite(i.RGBA)}if(!s)return!0;let f={buffer:s,properties:{...i,...a},featureTableProperties:i,batchTableProperties:a,dequantizeInShader:!1};return await gE(t,f,n,o)}async function gE(t,e,r,n){if(!n)return;let o={...r,draco:{...r?.draco,extraAttributes:e.batchTableProperties||{}}};delete o["3d-tiles"];let s=await we(e.buffer,fo,o,n),i=s.attributes.POSITION&&s.attributes.POSITION.value,a=s.attributes.COLOR_0&&s.attributes.COLOR_0.value,c=s.attributes.NORMAL&&s.attributes.NORMAL.value,l=s.attributes.BATCH_ID&&s.attributes.BATCH_ID.value,f=i&&s.attributes.POSITION.value.quantization,u=c&&s.attributes.NORMAL.value.quantization;if(f){let p=s.POSITION.data.quantization,d=p.range;t.quantizedVolumeScale=new S(d,d,d),t.quantizedVolumeOffset=new S(p.minValues),t.quantizedRange=(1<<p.quantizationBits)-1,t.isQuantizedDraco=!0}u&&(t.octEncodedRange=(1<<s.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let h={};if(e.batchTableProperties)for(let p of Object.keys(e.batchTableProperties))s.attributes[p]&&s.attributes[p].value&&(h[p.toLowerCase()]=s.attributes[p].value);t.attributes={positions:i,colors:ll(t,a,void 0),normals:c,batchIds:l,...h}}var fl={};pe(fl,{createExtMeshFeatures:()=>FE,decode:()=>BE,encode:()=>vE,name:()=>IE});function le(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var ci={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},li={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var bE=1.33,_g=["SCALAR","VEC2","VEC3","VEC4"],AE=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],xE=new Map(AE),TE={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},yE={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},SE={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function fi(t){return _g[t-1]||_g[0]}function Dt(t){let e=xE.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function Zr(t,e){let r=SE[t.componentType],n=TE[t.type],o=yE[t.componentType],s=t.count*n,i=t.count*n*o;le(i>=0&&i<=e.byteLength);let a=li[t.componentType],c=ci[t.type];return{ArrayType:r,length:s,byteLength:i,componentByteSize:a,numberOfComponentsInElement:c}}function uo(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let n=e.map(i=>i.bufferView);r=r.filter(i=>!n.includes(i));let o=r.reduce((i,a)=>i+a.byteLength,0),s=e.reduce((i,a)=>{let{width:c,height:l}=a.image;return i+c*l},0);return o+Math.ceil(4*s*bE)}function Cg(t,e,r){let n=t.bufferViews[r];le(n);let o=n.buffer,s=e[o];le(s);let i=(n.byteOffset||0)+s.byteOffset;return new Uint8Array(s.arrayBuffer,i,n.byteLength)}function Eg(t,e,r){let n=typeof r=="number"?t.accessors?.[r]:r;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let o=t.bufferViews?.[n.bufferView||0];if(!o)throw new Error(`No gltf buffer view for accessor ${o}`);let{arrayBuffer:s,byteOffset:i}=e[o.buffer],a=(i||0)+(n.byteOffset||0)+(o.byteOffset||0),{ArrayType:c,length:l,componentByteSize:f,numberOfComponentsInElement:u}=Zr(n,o),h=f*u,p=o.byteStride||h;if(typeof o.byteStride>"u"||o.byteStride===h)return new c(s,a,l);let d=new c(l);for(let m=0;m<n.count;m++){let b=new c(s,a+m*p,u);d.set(b,m*u)}return d}function _E(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var q=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||_E(),buffers:e?.buffers||[],images:e?.images||[]},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(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){let r=this.getUsedExtensions().find(o=>o===e),n=this.getRequiredExtensions().find(o=>o===e);return typeof r=="string"||typeof n=="string"}getExtension(e){let r=this.getUsedExtensions().find(o=>o===e),n=this.json.extensions||{};return r?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,r){return(e.extensions||{})[r]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,r){if(typeof r=="object")return r;let n=this.json[e]&&this.json[e][r];if(!n)throw new Error(`glTF file error: Could not find ${e}[${r}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);let r=e.buffer,n=this.gltf.buffers[r];le(n);let o=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,o,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return Eg(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),o=this.getBuffer(r.buffer).data,s=r.byteOffset||0;return new Uint8Array(o,s,r.byteLength)}addApplicationData(e,r){return this.json[e]=r,this}addExtraData(e,r){return this.json.extras=this.json.extras||{},this.json.extras[e]=r,this}addObjectExtension(e,r,n){return e.extensions=e.extensions||{},e.extensions[r]=n,this.registerUsedExtension(r),this}setObjectExtension(e,r,n){let o=e.extensions||{};o[r]=n}removeObjectExtension(e,r){let n=e?.extensions||{};if(n[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let o=this.json.extensionsRemoved;o.includes(r)||o.push(r)}delete n[r]}addExtension(e,r={}){return le(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e,r={}){return le(r),this.addExtension(e,r),this.registerRequiredExtension(e),r}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(r=>r===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(r=>r===e)||this.json.extensionsRequired.push(e)}removeExtension(e){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let r=this.json.extensionsRemoved;r.includes(e)||r.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){let{nodeIndices:r}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:r}),this.json.scenes.length-1}addNode(e){let{meshIndex:r,matrix:n}=e;this.json.nodes=this.json.nodes||[];let o={mesh:r};return n&&(o.matrix=n),this.json.nodes.push(o),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:n,material:o,mode:s=4}=e,a={primitives:[{attributes:this._addAttributes(r),mode:s}]};if(n){let c=this._addIndices(n);a.primitives[0].indices=c}return Number.isFinite(o)&&(a.primitives[0].material=o),this.json.meshes=this.json.meshes||[],this.json.meshes.push(a),this.json.meshes.length-1}addPointCloud(e){let n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,r){let n=nr(e),o=r||n?.mimeType,i={bufferView:this.addBufferView(e),mimeType:o};return this.json.images=this.json.images||[],this.json.images.push(i),this.json.images.length-1}addBufferView(e,r=0,n=this.byteLength){let o=e.byteLength;le(Number.isFinite(o)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let s={buffer:r,byteOffset:n,byteLength:o};return this.byteLength+=vt(o,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(s),this.json.bufferViews.length-1}addAccessor(e,r){let n={bufferView:e,type:fi(r.size),componentType:r.componentType,count:r.count,max:r.max,min:r.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,r={size:3}){let n=this.addBufferView(e),o={min:r.min,max:r.max};(!o.min||!o.max)&&(o=this._getAccessorMinMax(e,r.size));let s={size:r.size,componentType:Dt(e),count:Math.round(e.length/r.size),min:o.min,max:o.max};return this.addAccessor(n,Object.assign(s,r))}addTexture(e){let{imageIndex:r}=e,n={source:r};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){let e=this.byteLength,r=new ArrayBuffer(e),n=new Uint8Array(r),o=0;for(let s of this.sourceBuffers||[])o=uc(s,n,o);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=r,this.sourceBuffers=[r],this.gltf.buffers=[{arrayBuffer:r,byteOffset:0,byteLength:r.byteLength}]}_removeStringFromArray(e,r){let n=!0;for(;n;){let o=e.indexOf(r);o>-1?e.splice(o,1):n=!1}}_addAttributes(e={}){let r={};for(let n in e){let o=e[n],s=this._getGltfAttributeName(n),i=this.addBinaryBuffer(o.value,o);r[s]=i}return r}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.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 e}}_getAccessorMinMax(e,r){let n={min:null,max:null};if(e.length<r)return n;n.min=[],n.max=[];let o=e.subarray(0,r);for(let s of o)n.min.push(s),n.max.push(s);for(let s=r;s<e.length;s+=r)for(let i=0;i<r;i++)n.min[0+i]=Math.min(n.min[0+i],e[s+i]),n.max[0+i]=Math.max(n.max[0+i],e[s+i]);return n}};function Mg(t){return(t%1+1)%1}var Ig={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},CE={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},Bg={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function ho(t,e){return Bg[e]*Ig[t]}function $r(t,e,r,n){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let o=t.getTypedArrayForBufferView(e),s=en(o,"SCALAR",r,n+1);return s instanceof BigInt64Array||s instanceof BigUint64Array?null:s}function en(t,e,r,n=1){let o=Ig[e],s=CE[r],i=Bg[r],a=n*o,c=a*i,l=t.buffer,f=t.byteOffset;return f%i!==0&&(l=new Uint8Array(l).slice(f,f+c).buffer,f=0),new s(Lt(l),f,a)}function tn(t,e,r){let n=`TEXCOORD_${e.texCoord||0}`,o=r.attributes[n],s=t.getTypedArrayForAccessor(o),i=t.gltf.json,a=e.index,c=i.textures?.[a]?.source;if(typeof c<"u"){let l=i.images?.[c]?.mimeType,f=t.gltf.images?.[c];if(f&&typeof f.width<"u"){let u=[];for(let h=0;h<s.length;h+=2){let p=EE(f,l,s,h,e.channels);u.push(p)}return u}}return[]}function ui(t,e,r,n,o){if(!r?.length)return;let s=[];for(let f of r){let u=n.findIndex(h=>h===f);u===-1&&(u=n.push(f)-1),s.push(u)}let i=new Uint32Array(s),a=t.gltf.buffers.push({arrayBuffer:i.buffer,byteOffset:i.byteOffset,byteLength:i.byteLength})-1,c=t.addBufferView(i,a,0),l=t.addAccessor(c,{size:1,componentType:Dt(i),count:i.length});o.attributes[e]=l}function EE(t,e,r,n,o=[0]){let s={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},i=r[n],a=r[n+1],c=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(c=4);let l=ME(i,a,t,c),f=0;for(let u of o){let h=typeof u=="number"?Object.values(s)[u]:s[u],p=l+h.offset,d=zn(t);if(d.data.length<=p)throw new Error(`${d.data.length} <= ${p}`);let m=d.data[p];f|=m<<h.shift}return f}function ME(t,e,r,n=1){let o=r.width,s=Mg(t)*(o-1),i=Math.round(s),a=r.height,c=Mg(e)*(a-1),l=Math.round(c),f=r.components?r.components:n;return(l*o+i)*f}function hi(t,e,r,n,o){let s=[];for(let i=0;i<e;i++){let a=r[i],c=r[i+1]-r[i];if(c+a>n)break;let l=a/o,f=c/o;s.push(t.slice(l,l+f))}return s}function pi(t,e,r){let n=[];for(let o=0;o<e;o++){let s=o*r;n.push(t.slice(s,s+r))}return n}function di(t,e,r,n){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let o=[],s=new TextDecoder("utf8"),i=0;for(let a=0;a<t;a++){let c=n[a+1]-n[a];if(c+i<=e.length){let l=e.subarray(i,c+i),f=s.decode(l);o.push(f),i+=c}}return o}return[]}var rn="EXT_mesh_features",IE=rn;async function BE(t,e){let r=new q(t);RE(r,e)}function vE(t,e){let r=new q(t);return LE(r,e),r.createBinaryChunk(),r.gltf}function RE(t,e){let r=t.gltf.json;if(r.meshes)for(let n of r.meshes)for(let o of n.primitives)wE(t,o,e)}function wE(t,e,r){if(!r?.gltf?.loadBuffers)return;let o=e.extensions?.[rn]?.featureIds;if(o)for(let s of o){let i;if(typeof s.attribute<"u"){let a=`_FEATURE_ID_${s.attribute}`,c=e.attributes[a];i=t.getTypedArrayForAccessor(c)}else typeof s.texture<"u"&&r?.gltf?.loadImages?i=tn(t,s.texture,e):i=[];s.data=i}}function LE(t,e){let r=t.gltf.json.meshes;if(r)for(let n of r)for(let o of n.primitives)PE(t,o)}function FE(t,e,r,n){e.extensions||(e.extensions={});let o=e.extensions[rn];o||(o={featureIds:[]},e.extensions[rn]=o);let{featureIds:s}=o,i={featureCount:r.length,propertyTable:n,data:r};s.push(i),t.addObjectExtension(e,rn,o)}function PE(t,e){let r=e.extensions?.[rn];if(!r)return;let n=r.featureIds;n.forEach((o,s)=>{if(o.data){let{accessorKey:i,index:a}=NE(e.attributes),c=new Uint32Array(o.data);n[s]={featureCount:c.length,propertyTable:o.propertyTable,attribute:a},t.gltf.buffers.push({arrayBuffer:c.buffer,byteOffset:c.byteOffset,byteLength:c.byteLength});let l=t.addBufferView(c),f=t.addAccessor(l,{size:1,componentType:Dt(c),count:c.length});e.attributes[i]=f}})}function NE(t){let e="_FEATURE_ID_",r=Object.keys(t).filter(s=>s.indexOf(e)===0),n=-1;for(let s of r){let i=Number(s.substring(e.length));i>n&&(n=i)}return n++,{accessorKey:`${e}${n}`,index:n}}var pl={};pe(pl,{createExtStructuralMetadata:()=>nM,decode:()=>UE,encode:()=>DE,name:()=>OE});var nn="EXT_structural_metadata",OE=nn;async function UE(t,e){let r=new q(t);GE(r,e)}function DE(t,e){let r=new q(t);return tM(r,e),r.createBinaryChunk(),r.gltf}function GE(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(nn);r&&(e.gltf?.loadImages&&VE(t,r),HE(t,r))}function VE(t,e){let r=e.propertyTextures,n=t.gltf.json;if(r&&n.meshes)for(let o of n.meshes)for(let s of o.primitives)zE(t,r,s,e)}function HE(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.propertyTables;if(n&&o)for(let s in n){let i=kE(o,s);i&&qE(t,r,i)}}function kE(t,e){for(let r of t)if(r.class===e)return r;return null}function zE(t,e,r,n){if(!e)return;let s=r.extensions?.[nn]?.propertyTextures;if(s)for(let i of s){let a=e[i];jE(t,a,r,n)}}function jE(t,e,r,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let o=e.class;for(let s in e.properties){let i=`${o}_${s}`,a=e.properties?.[s];if(!a)continue;a.data||(a.data=[]);let c=a.data,l=tn(t,a,r);l!==null&&(ui(t,i,l,c,r),a.data=c,n.dataAttributeNames.push(i))}}function qE(t,e,r){let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=JE(t,e,i,o,a);a.data=c}}}function JE(t,e,r,n,o){let s=[],i=o.values,a=t.getTypedArrayForBufferView(i),c=WE(t,r,o,n),l=XE(t,o,n);switch(r.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{s=KE(r,n,a,c);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case"STRING":{s=di(n,a,c,l);break}case"ENUM":{s=YE(e,r,n,a,c);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return s}function WE(t,e,r,n){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?$r(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",n):null}function XE(t,e,r){return typeof e.stringOffsets<"u"?$r(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function KE(t,e,r,n){let o=t.array,s=t.count,i=ho(t.type,t.componentType),a=r.byteLength/i,c;return t.componentType?c=en(r,t.type,t.componentType,a):c=r,o?n?hi(c,e,n,r.length,i):s?pi(c,e,s):[]:c}function YE(t,e,r,n,o){let s=e.enumType;if(!s)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let i=t.enums?.[s];if(!i)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${s}`);let a=i.valueType||"UINT16",c=ho(e.type,a),l=n.byteLength/c,f=en(n,e.type,a,l);if(f||(f=n),e.array){if(o)return QE({valuesData:f,numberOfElements:r,arrayOffsets:o,valuesDataBytesLength:n.length,elementSize:c,enumEntry:i});let u=e.count;return u?ZE(f,r,u,i):[]}return hl(f,0,r,i)}function QE(t){let{valuesData:e,numberOfElements:r,arrayOffsets:n,valuesDataBytesLength:o,elementSize:s,enumEntry:i}=t,a=[];for(let c=0;c<r;c++){let l=n[c],f=n[c+1]-n[c];if(f+l>o)break;let u=l/s,h=f/s,p=hl(e,u,h,i);a.push(p)}return a}function ZE(t,e,r,n){let o=[];for(let s=0;s<e;s++){let i=r*s,a=hl(t,i,r,n);o.push(a)}return o}function hl(t,e,r,n){let o=[];for(let s=0;s<r;s++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)o.push("");else{let i=t[e+s],a=$E(n,i);a?o.push(a.name):o.push("")}return o}function $E(t,e){for(let r of t.values)if(r.value===e)return r;return null}var eM="schemaClassId";function tM(t,e){let r=t.getExtension(nn);if(r&&r.propertyTables)for(let n of r.propertyTables){let o=n.class,s=r.schema?.classes?.[o];n.properties&&s&&rM(n,s,t)}}function rM(t,e,r){for(let n in t.properties){let o=t.properties[n].data;if(o){let s=e.properties[n];if(s){let i=iM(o,s,r);t.properties[n]=i}}}}function nM(t,e,r=eM){let n=t.getExtension(nn);n||(n=t.addExtension(nn)),n.schema=oM(e,r,n.schema);let o=sM(e,r,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(o)-1}function oM(t,e,r){let n=r??{id:"schema_id"},o={properties:{}};for(let s of t){let i={type:s.elementType,componentType:s.componentType};o.properties[s.name]=i}return n.classes={},n.classes[e]=o,n}function sM(t,e,r){let n={class:e,count:0},o=0,s=r.classes?.[e];for(let i of t){if(o===0&&(o=i.values.length),o!==i.values.length&&i.values.length)throw new Error("Illegal values in attributes");s?.properties[i.name]&&(n.properties||(n.properties={}),n.properties[i.name]={values:0,data:i.values})}return n.count=o,n}function iM(t,e,r){let n={values:0};if(e.type==="STRING"){let{stringData:o,stringOffsets:s}=lM(t);n.stringOffsets=ul(s,r),n.values=ul(o,r)}else if(e.type==="SCALAR"&&e.componentType){let o=cM(t,e.componentType);n.values=ul(o,r)}return n}var aM={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function cM(t,e){let r=[];for(let o of t)r.push(Number(o));let n=aM[e];if(!n)throw new Error("Illegal component type");return new n(r)}function lM(t){let e=new TextEncoder,r=[],n=0;for(let c of t){let l=e.encode(c);n+=l.length,r.push(l)}let o=new Uint8Array(n),s=[],i=0;for(let c of r)o.set(c,i),s.push(i),i+=c.length;s.push(i);let a=new Uint32Array(s);return{stringData:o,stringOffsets:a}}function ul(t,e){return e.gltf.buffers.push({arrayBuffer:Lt(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength}),e.addBufferView(t)}var dl={};pe(dl,{decode:()=>uM,name:()=>fM});var vg="EXT_feature_metadata",fM=vg;async function uM(t,e){let r=new q(t);hM(r,e)}function hM(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(vg);r&&(e.gltf?.loadImages&&pM(t,r),dM(t,r))}function pM(t,e){let r=e.schema;if(!r)return;let n=r.classes,{featureTextures:o}=e;if(n&&o)for(let s in n){let i=n[s],a=gM(o,s);a&&AM(t,a,i)}}function dM(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.featureTables;if(n&&o)for(let s in n){let i=mM(o,s);i&&bM(t,r,i)}}function mM(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function gM(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function bM(t,e,r){if(!r.class)return;let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=xM(t,e,i,o,a);a.data=c}}}function AM(t,e,r){let n=e.class;for(let o in r.properties){let s=e?.properties?.[o];if(s){let i=CM(t,s,n);s.data=i}}}function xM(t,e,r,n,o){let s=[],i=o.bufferView,a=t.getTypedArrayForBufferView(i),c=TM(t,r,o,n),l=yM(t,r,o,n);return r.type==="STRING"||r.componentType==="STRING"?s=di(n,a,c,l):SM(r)&&(s=_M(r,n,a,c)),s}function TM(t,e,r,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?$r(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",n):null}function yM(t,e,r,n){return typeof r.stringOffsetBufferView<"u"?$r(t,r.stringOffsetBufferView,r.offsetType||"UINT32",n):null}function SM(t){let e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(t.type)||typeof t.componentType<"u"&&e.includes(t.componentType)}function _M(t,e,r,n){let o=t.type==="ARRAY",s=t.componentCount,i="SCALAR",a=t.componentType||t.type,c=ho(i,a),l=r.byteLength/c,f=en(r,i,a,l);return o?n?hi(f,e,n,r.length,c):s?pi(f,e,s):[]:f}function CM(t,e,r){let n=t.gltf.json;if(!n.meshes)return[];let o=[];for(let s of n.meshes)for(let i of s.primitives)EM(t,r,e,o,i);return o}function EM(t,e,r,n,o){let s={channels:r.channels,...r.texture},i=tn(t,s,o);i&&ui(t,e,i,n,o)}var Rg="4.4.3";var wg="4.4.3";var mi={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},Lg;async function gl(t){ac(t.modules);let e=cc("basis");return e||(Lg||=MM(t),await Lg)}async function MM(t){let e=null,r=null;return[e,r]=await Promise.all([await Ne(mi.TRANSCODER,"textures",t),await Ne(mi.TRANSCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await IM(e,r)}function IM(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,initializeBasis:i}=o;i(),n({BasisFile:s})})})}var ml;async function bl(t){let e=t.modules||{};return e.basisEncoder?e.basisEncoder:(ml=ml||BM(t),await ml)}async function BM(t){let e=null,r=null;return[e,r]=await Promise.all([await Ne(mi.ENCODER,"textures",t),await Ne(mi.ENCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await vM(e,r)}function vM(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,KTX2File:i,initializeBasis:a,BasisEncoder:c}=o;a(),n({BasisFile:s,KTX2File:i,BasisEncoder:c})})})}var RM=["","WEBKIT_","MOZ_"],Fg={WEBGL_compressed_texture_s3tc:["bc1-rgb-unorm-webgl","bc1-rgba-unorm","bc2-rgba-unorm","bc3-rgba-unorm"],WEBGL_compressed_texture_s3tc_srgb:["bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm-srgb","bc2-rgba-unorm-srgb","bc3-rgba-unorm-srgb"],EXT_texture_compression_rgtc:["bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm"],EXT_texture_compression_bptc:["bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb"],WEBGL_compressed_texture_etc1:["etc1-rgb-unorm-webgl"],WEBGL_compressed_texture_etc:["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"],WEBGL_compressed_texture_pvrtc:["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"],WEBGL_compressed_texture_atc:["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"],WEBGL_compressed_texture_astc:["astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"]};var gi=null;function Pg(t){if(!gi){t=t||wM()||void 0,gi=new Set;for(let e of RM)for(let r in Fg)if(t&&t.getExtension(`${e}${r}`))for(let n of Fg[r])gi.add(n)}return gi}function wM(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var Le=[171,75,84,88,32,50,48,187,13,10,26,10];function Ng(t){let e=new Uint8Array(t);return!(e.byteLength<Le.length||e[0]!==Le[0]||e[1]!==Le[1]||e[2]!==Le[2]||e[3]!==Le[3]||e[4]!==Le[4]||e[5]!==Le[5]||e[6]!==Le[6]||e[7]!==Le[7]||e[8]!==Le[8]||e[9]!==Le[9]||e[10]!==Le[10]||e[11]!==Le[11])}var Og=Promise.resolve(),Gg={etc1:{basisFormat:0,compressed:!0,format:36196,textureFormat:"etc1-rgb-unorm-webgl"},etc2:{basisFormat:1,compressed:!0,format:37493,textureFormat:"etc2-rgba8unorm"},bc1:{basisFormat:2,compressed:!0,format:33776,textureFormat:"bc1-rgb-unorm-webgl"},bc3:{basisFormat:3,compressed:!0,format:33779,textureFormat:"bc3-rgba-unorm"},bc4:{basisFormat:4,compressed:!0,format:36283,textureFormat:"bc4-r-unorm"},bc5:{basisFormat:5,compressed:!0,format:36285,textureFormat:"bc5-rg-unorm"},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"bc7-m5":{basisFormat:7,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:35840,textureFormat:"pvrtc-rgb4unorm-webgl"},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:35842,textureFormat:"pvrtc-rgba4unorm-webgl"},"astc-4x4":{basisFormat:10,compressed:!0,format:37808,textureFormat:"astc-4x4-unorm"},"atc-rgb":{basisFormat:11,compressed:!0,format:35986,textureFormat:"atc-rgb-unorm-webgl"},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0,format:34798,textureFormat:"atc-rgbai-unorm-webgl"},rgba32:{basisFormat:13,compressed:!1,format:32856,textureFormat:"rgba8unorm"},rgb565:{basisFormat:14,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},bgr565:{basisFormat:15,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},rgba4444:{basisFormat:16,compressed:!1,format:32854,textureFormat:"rgba4unorm-webgl"}},o9=Object.freeze(Object.keys(Gg));async function PM(t){let e=Og,r;Og=new Promise(n=>{r=n}),await e;try{return await t()}finally{r()}}async function Vg(t,e={}){let r=Pn(e);return await PM(async()=>{if(!e.basis?.containerFormat||e.basis.containerFormat==="auto"){if(Ng(t)){let o=await bl(r);return Ug(o.KTX2File,t,e)}let{BasisFile:n}=await gl(r);return Al(n,t,e)}if(e.basis.module==="encoder"){let n=await bl(r);return e.basis.containerFormat==="ktx2"?Ug(n.KTX2File,t,e):Al(n.BasisFile,t,e)}else{let{BasisFile:o}=await gl(r);return Al(o,t,e)}})}function Al(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");let o=n.getNumImages(),s=[];for(let i=0;i<o;i++){let a=n.getNumLevels(i),c=[];for(let l=0;l<a;l++)c.push(NM(n,i,l,r));s.push(c)}return s}finally{n.close(),n.delete()}}function NM(t,e,r,n){let o=t.getImageWidth(e,r),s=t.getImageHeight(e,r),i=t.getHasAlpha(),{compressed:a,format:c,basisFormat:l,textureFormat:f}=Hg(n,i),u=t.getImageTranscodedSizeInBytes(e,r,l),h=new Uint8Array(u);if(!t.transcodeImage(h,e,r,l,0,0))throw new Error("failed to start Basis transcoding");return{shape:"texture-level",width:o,height:s,data:h,compressed:a,...c!==void 0?{format:c}:{},...f!==void 0?{textureFormat:f}:{},hasAlpha:i}}function Ug(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");let o=n.getLevels(),s=[];for(let i=0;i<o;i++)s.push(OM(n,i,r));return[s]}finally{n.close(),n.delete()}}function OM(t,e,r){let{alphaFlag:n,height:o,width:s}=t.getImageLevelInfo(e,0,0),{compressed:i,format:a,basisFormat:c,textureFormat:l}=Hg(r,n),f=t.getImageTranscodedSizeInBytes(e,0,0,c),u=new Uint8Array(f);if(!t.transcodeImage(u,e,0,0,c,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{shape:"texture-level",width:s,height:o,data:u,compressed:i,...a!==void 0?{format:a}:{},...l!==void 0?{textureFormat:l}:{},levelSize:f,hasAlpha:n}}function Hg(t,e){let r=t.basis?.format||"auto";r==="auto"&&(r=t.basis?.supportedTextureFormats?Dg(t.basis.supportedTextureFormats):Dg()),typeof r=="object"&&(r=e?r.alpha:r.noAlpha);let n=r.toLowerCase(),o=Gg[n];if(!o)throw new Error(`Unknown Basis format ${r}`);return o}function Dg(t=Pg()){let e=new Set(t);return on(e,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":on(e,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:on(e,["bc1-rgb-unorm-webgl","bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb"])?{alpha:"bc3",noAlpha:"bc1"}:on(e,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:on(e,["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"])?"etc2":e.has("etc1-rgb-unorm-webgl")?"etc1":on(e,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function on(t,e){return e.some(r=>t.has(r))}var kg={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:wg,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",containerFormat:"auto",module:"transcoder"}}},xl={...kg,parse:Vg};var sn=!0,zg=1735152710,Sl=12,bi=8,UM=1313821514,DM=5130562,GM=0,VM=0,HM=1;function kM(t,e=0){return`${String.fromCharCode(t.getUint8(e+0))}${String.fromCharCode(t.getUint8(e+1))}${String.fromCharCode(t.getUint8(e+2))}${String.fromCharCode(t.getUint8(e+3))}`}function jg(t,e=0,r={}){let n=new DataView(t),{magic:o=zg}=r,s=n.getUint32(e,!1);return s===o||s===zg}function qg(t,e,r=0,n={}){let o=new DataView(e),s=kM(o,r+0),i=o.getUint32(r+4,sn),a=o.getUint32(r+8,sn);switch(Object.assign(t,{header:{byteOffset:r,byteLength:a,hasBinChunk:!1},type:s,version:i,json:{},binChunks:[]}),r+=Sl,t.version){case 1:return zM(t,o,r);case 2:return jM(t,o,r,n={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function zM(t,e,r){k(t.header.byteLength>Sl+bi);let n=e.getUint32(r+0,sn),o=e.getUint32(r+4,sn);return r+=bi,k(o===GM),Tl(t,e,r,n),r+=n,r+=yl(t,e,r,t.header.byteLength),r}function jM(t,e,r,n){return k(t.header.byteLength>Sl+bi),qM(t,e,r,n),r+t.header.byteLength}function qM(t,e,r,n){for(;r+8<=t.header.byteLength;){let o=e.getUint32(r+0,sn),s=e.getUint32(r+4,sn);switch(r+=bi,s){case UM:Tl(t,e,r,o);break;case DM:yl(t,e,r,o);break;case VM:n.strict||Tl(t,e,r,o);break;case HM:n.strict||yl(t,e,r,o);break;default:break}r+=vt(o,4)}return r}function Tl(t,e,r,n){let o=new Uint8Array(e.buffer,r,n),i=new TextDecoder("utf8").decode(o);return t.json=JSON.parse(i),vt(n,4)}function yl(t,e,r,n){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:n,arrayBuffer:e.buffer}),vt(n,4)}function _l(t,e,r){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let o=r?.baseUrl||JM(e?.core?.baseUrl);if(!o)throw new Error(`'baseUrl' must be provided to resolve relative url ${t}`);return o.endsWith("/")?`${o}${t}`:`${o}/${t}`}function JM(t){if(!t)return;if(t.endsWith("/"))return t;let e=t.lastIndexOf("/");return e>=0?t.slice(0,e+1):""}var El={};pe(El,{decode:()=>oI,name:()=>nI});var WM="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",XM="B9h9z9tFBBBF8dL9gBB9gLaaaaaFa9gEaaaB9gGaaB9gFaFaEQSBBFBFFGEGEGIILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBNn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBcI9z9iqlBMc/j9JSIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMkRIbaG97FaK978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAnDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAnDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBRnCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBHiCFD9tAiAPD9OD9hD9RHiDQBTFtGmEYIPLdKeOnH8ZAIAQJDBIBHpCFD9tApAPD9OD9hD9RHpAIASJDBIBHyCFD9tAyAPD9OD9hD9RHyDQBTFtGmEYIPLdKeOnH8cDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAnD9uHnDyBjGBAEAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnA8ZA8cDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNiV8ZcpMyS8cQ8df8eb8fHdApAyDQNiV8ZcpMyS8cQ8df8eb8fHiDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/xLGEaK978jUUUUBCAlHE8kUUUUBGXGXAGCI9HQBGXAFC98ZHI9FQBABRGCBRLEXAGAGDBBBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMBBAGCTJRGALCIJHLAI9JQBMMAIAF9PQFAEAFCEZHLCGWHGqCBCTAGl/8MBAEABAICGWJHIAG/8cBBGXAL9FQBAEAEDBIBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMIBMAIAEAG/8cBBSFMABAFC98ZHGT+HUUUBAGAF9PQBAEAFCEZHICEWHLJCBCAALl/8MBAEABAGCEWJHGAL/8cBBAEAIT+HUUUBAGAEAL/8cBBMAECAJ8kUUUUBM+yEGGaO97GXAF9FQBCBRGEXABCTJHEAEDBBBHICBDtHLCUU98D8cFCUU98D8cEHKD9OABDBBBHOAIDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAOAIDQBFGENVcMTtmYi8ZpyHICTD+sFD/6FHND/gFAICTD+rFCTD+sFD/6FHVD/gFD/kFD/lFHI9DB/+g6DYAVAIALD+2FHLAVCUUUU94DtHcD9OD9RD/kFHVAVD/mFAIAID/mFANALANAcD9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHLD/kFCTD+rFAVAND/mFALD/kFCggEDtD9OD9QHVAIAND/mFALD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHIDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAOAKD9OAVAIDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM94FEa8jUUUUBCAlHE8kUUUUBABAFC98ZHIT+JUUUBGXAIAF9PQBAEAFCEZHLCEWHFJCBCAAFl/8MBAEABAICEWJHBAF/8cBBAEALT+JUUUBABAEAF/8cBBMAECAJ8kUUUUBM/hEIGaF97FaL978jUUUUBCTlRGGXAF9FQBCBREEXAGABDBBBHIABCTJHLDBBBHKDQILKOSQfbPden8c8d8e8fHOCTD+sFHNCID+rFDMIBAB9DBBU8/DY9D/zI818/DYANCEDtD9QD/6FD/nFHNAIAKDQBFGENVcMTtmYi8ZpyHICTD+rFCTD+sFD/6FD/mFHKAKD/mFANAICTD+sFD/6FD/mFHVAVD/mFANAOCTD+rFCTD+sFD/6FD/mFHOAOD/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHND/mF9DBBX9LDYHID/kFCggEDtHcD9OAVAND/mFAID/kFCTD+rFD9QHVAOAND/mFAID/kFCTD+rFAKAND/mFAID/kFAcD9OD9QHNDQBFTtGEmYILPdKOenHID8dBAGDBIBDyB+t+J83EBABCNJAID8dFAGDBIBDyF+t+J83EBALAVANDQNVi8ZcMpySQ8c8dfb8e8fHND8dBAGDBIBDyG+t+J83EBABCiJAND8dFAGDBIBDyE+t+J83EBABCAJRBAECIJHEAF9JQBMMM/3FGEaF978jUUUUBCoBlREGXAGCGrAF9sHIC98ZHL9FQBCBRGABRFEXAFAFDBBBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBAFCTJRFAGCIJHGAL9JQBMMGXALAI9PQBAEAICEZHGCGWHFqCBCoBAFl/8MBAEABALCGWJHLAF/8cBBGXAG9FQBAEAEDBIBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMIBMALAEAF/8cBBMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",KM=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]),YM=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]),QM={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},ZM={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function Jg(t,e,r,n,o,s="NONE"){let i=await $M();rI(i,i.exports[ZM[o]],t,e,r,n,i.exports[QM[s||"NONE"]])}var Cl;async function $M(){return Cl||(Cl=eI()),Cl}async function eI(){let t=WM;WebAssembly.validate(KM)&&(t=XM,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(tI(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function tI(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;++n){let o=t.charCodeAt(n);e[n]=o>96?o-71:o>64?o-65:o>47?o+4:o>46?63:62}let r=0;for(let n=0;n<t.length;++n)e[r++]=e[n]<60?YM[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,r)}function rI(t,e,r,n,o,s,i){let a=t.exports.sbrk,c=n+3&-4,l=a(c*o),f=a(s.length),u=new Uint8Array(t.exports.memory.buffer);u.set(s,f);let h=e(l,n,o,f,s.length);if(h===0&&i&&i(l,c,o),r.set(u.subarray(l,l+n*o)),a(l-a(0)),h!==0)throw new Error(`Malformed buffer data: ${h}`)}var Ai="EXT_meshopt_compression",nI=Ai;async function oI(t,e){let r=new q(t);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;let n=[];for(let o of t.json.bufferViews||[])n.push(sI(r,o));await Promise.all(n),r.removeExtension(Ai)}async function sI(t,e){let r=t.getObjectExtension(e,Ai);if(r){let{byteOffset:n=0,byteLength:o=0,byteStride:s,count:i,mode:a,filter:c="NONE",buffer:l}=r,f=t.gltf.buffers[l],u=new Uint8Array(f.arrayBuffer,f.byteOffset+n,o),h=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await Jg(h,i,s,u,a,c),t.removeObjectExtension(e,Ai)}}var Ml={};pe(Ml,{name:()=>iI,preprocess:()=>aI});var an="EXT_texture_webp",iI=an;function aI(t,e){let r=new q(t);if(!Sc("image/webp")){if(r.getRequiredExtensions().includes(an))throw new Error(`gltf: Required extension ${an} not supported by browser`);return}let{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,an);s&&(o.source=s.source),r.removeObjectExtension(o,an)}r.removeExtension(an)}var Il={};pe(Il,{name:()=>cI,preprocess:()=>lI});var xi="KHR_texture_basisu",cI=xi;function lI(t,e){let r=new q(t),{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,xi);s&&(o.source=s.source,r.removeObjectExtension(o,xi))}r.removeExtension(xi)}var vl={};pe(vl,{decode:()=>dI,encode:()=>mI,name:()=>hI,preprocess:()=>pI});function Wg(t){let e={};for(let r in t){let n=t[r];if(r!=="indices"){let o=Bl(n);e[r]=o}}return e}function Bl(t){let{buffer:e,size:r,count:n}=fI(t);return{value:e,size:r,byteOffset:0,count:n,type:fi(r),componentType:Dt(e)}}function fI(t){let e=t,r=1,n=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=uI(e,Float32Array)),n=e.length/r),{buffer:e,size:r,count:n}}function uI(t,e,r=!1){return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var Gt="KHR_draco_mesh_compression",hI=Gt;function pI(t,e,r){let n=new q(t);for(let o of Xg(n))n.getObjectExtension(o,Gt)}async function dI(t,e,r){if(!e?.gltf?.decompressMeshes)return;let n=new q(t),o=[];for(let s of Xg(n))n.getObjectExtension(s,Gt)&&o.push(gI(n,s,e,r));await Promise.all(o),n.removeExtension(Gt)}function mI(t,e={}){let r=new q(t);for(let n of r.json.meshes||[])bI(n,e),r.addRequiredExtension(Gt)}async function gI(t,e,r,n){let o=t.getObjectExtension(e,Gt);if(!o)return;let s=t.getTypedArrayForBufferView(o.bufferView),i=$t(s.buffer,s.byteOffset),a={...r};delete a["3d-tiles"];let c=await we(i,fo,a,n),l=Wg(c.attributes);for(let[f,u]of Object.entries(l))if(f in e.attributes){let h=e.attributes[f],p=t.getAccessor(h);p?.min&&p?.max&&(u.min=p.min,u.max=p.max)}e.attributes=l,c.indices&&(e.indices=Bl(c.indices)),t.removeObjectExtension(e,Gt),AI(e)}function bI(t,e,r=4,n,o){if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let s=n.DracoWriter.encodeSync({attributes:t}),i=o?.parseSync?.({attributes:t}),a=n._addFauxAttributes(i.attributes),c=n.addBufferView(s);return{primitives:[{attributes:a,mode:r,extensions:{[Gt]:{bufferView:c,attributes:a}}}]}}function AI(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*Xg(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Rl={};pe(Rl,{decode:()=>SI,name:()=>xI});var yi="KHR_texture_transform",xI=yi,Ti=new S,TI=new z,yI=new z;async function SI(t,e){if(!new q(t).hasExtension(yi)||!e.gltf?.loadBuffers)return;let o=t.json.materials||[];for(let s=0;s<o.length;s++)_I(s,t)}function _I(t,e){let r=e.json.materials?.[t],n=[r?.pbrMetallicRoughness?.baseColorTexture,r?.emissiveTexture,r?.normalTexture,r?.occlusionTexture,r?.pbrMetallicRoughness?.metallicRoughnessTexture],o=[];for(let s of n)s&&s?.extensions?.[yi]&&CI(e,t,s,o)}function CI(t,e,r,n){let o=EI(r,n);if(!o)return;let s=t.json.meshes||[];for(let i of s)for(let a of i.primitives){let c=a.material;Number.isFinite(c)&&e===c&&MI(t,a,o)}}function EI(t,e){let r=t.extensions?.[yi],{texCoord:n=0}=t,{texCoord:o=n}=r;if(!(e.findIndex(([i,a])=>i===n&&a===o)!==-1)){let i=vI(r);return n!==o&&(t.texCoord=o),e.push([n,o]),{originalTexCoord:n,texCoord:o,matrix:i}}return null}function MI(t,e,r){let{originalTexCoord:n,texCoord:o,matrix:s}=r,i=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(i)){let a=t.json.accessors?.[i];if(a&&a.bufferView!==void 0){let c=t.json.bufferViews?.[a.bufferView];if(c){let{arrayBuffer:l,byteOffset:f}=t.buffers[c.buffer],u=(f||0)+(a.byteOffset||0)+(c.byteOffset||0),{ArrayType:h,length:p}=Zr(a,c),d=li[a.componentType],m=ci[a.type],b=c.byteStride||d*m,x=new Float32Array(p);for(let y=0;y<a.count;y++){let _=new h(l,u+y*b,2);Ti.set(_[0],_[1],1),Ti.transformByMatrix3(s),x.set([Ti[0],Ti[1]],y*m)}n===o?II(a,t,x,a.bufferView):BI(o,a,e,t,x)}}}}function II(t,e,r,n){t.componentType=5126,t.byteOffset=0;let i=(e.json.accessors||[]).reduce((l,f)=>f.bufferView===n?l+1:l,0)>1;e.buffers.push({arrayBuffer:Lt(r.buffer),byteOffset:0,byteLength:r.buffer.byteLength});let a=e.buffers.length-1;if(e.json.bufferViews=e.json.bufferViews||[],i){e.json.bufferViews.push({buffer:a,byteLength:r.buffer.byteLength,byteOffset:0}),t.bufferView=e.json.bufferViews.length-1;return}let c=e.json.bufferViews[n];c&&(c.buffer=a,c.byteOffset=0,c.byteLength=r.buffer.byteLength,c.byteStride!==void 0&&delete c.byteStride)}function BI(t,e,r,n,o){n.buffers.push({arrayBuffer:Lt(o.buffer),byteOffset:0,byteLength:o.buffer.byteLength}),n.json.bufferViews=n.json.bufferViews||[];let s=n.json.bufferViews;s.push({buffer:n.buffers.length-1,byteLength:o.buffer.byteLength,byteOffset:0});let i=n.json.accessors;i&&(i.push({bufferView:s?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=i.length-1)}function vI(t){let{offset:e=[0,0],rotation:r=0,scale:n=[1,1]}=t,o=new z().set(1,0,0,0,1,0,e[0],e[1],1),s=TI.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),i=yI.set(n[0],0,0,0,n[1],0,0,0,1);return o.multiplyRight(s).multiplyRight(i)}var wl={};pe(wl,{decode:()=>wI,encode:()=>LI,name:()=>RI});var dr="KHR_lights_punctual",RI=dr;async function wI(t){let e=new q(t),{json:r}=e,n=e.getExtension(dr);n&&(e.json.lights=n.lights,e.removeExtension(dr));for(let o of r.nodes||[]){let s=e.getObjectExtension(o,dr);s&&(o.light=s.light),e.removeObjectExtension(o,dr)}}async function LI(t){let e=new q(t),{json:r}=e;if(r.lights){let n=e.addExtension(dr);le(!n.lights),n.lights=r.lights,delete r.lights}if(e.json.lights){for(let n of e.json.lights){let o=n.node;e.addObjectExtension(o,dr,n)}delete e.json.lights}}var Ll={};pe(Ll,{decode:()=>PI,encode:()=>NI,name:()=>FI});var po="KHR_materials_unlit",FI=po;async function PI(t){let e=new q(t),{json:r}=e;for(let n of r.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,po);e.removeExtension(po)}function NI(t){let e=new q(t),{json:r}=e;if(e.materials)for(let n of r.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,po,{}),e.addExtension(po))}var Fl={};pe(Fl,{decode:()=>UI,encode:()=>DI,name:()=>OI});var mo="KHR_techniques_webgl",OI=mo;async function UI(t){let e=new q(t),{json:r}=e,n=e.getExtension(mo);if(n){let o=GI(n,e);for(let s of r.materials||[]){let i=e.getObjectExtension(s,mo);i&&(s.technique=Object.assign({},i,o[i.technique]),s.technique.values=VI(s.technique,e)),e.removeObjectExtension(s,mo)}e.removeExtension(mo)}}async function DI(t,e){}function GI(t,e){let{programs:r=[],shaders:n=[],techniques:o=[]}=t,s=new TextDecoder;return n.forEach(i=>{if(Number.isFinite(i.bufferView))i.code=s.decode(e.getTypedArrayForBufferView(i.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(i=>{i.fragmentShader=n[i.fragmentShader],i.vertexShader=n[i.vertexShader]}),o.forEach(i=>{i.program=r[i.program]}),o}function VI(t,e){let r=Object.assign({},t.values);return Object.keys(t.uniforms||{}).forEach(n=>{t.uniforms[n].value&&!(n in r)&&(r[n]=t.uniforms[n].value)}),Object.keys(r).forEach(n=>{typeof r[n]=="object"&&r[n].index!==void 0&&(r[n].texture=e.getTexture(r[n].index))}),r}var Kg=[pl,fl,El,Ml,Il,vl,wl,Ll,Fl,Rl,dl];function Yg(t,e={},r){let n=Kg.filter(o=>Zg(o.name,e));for(let o of n)o.preprocess?.(t,e,r)}async function Qg(t,e={},r){let n=Kg.filter(o=>Zg(o.name,e));for(let o of n)await o.decode?.(t,e,r)}function Zg(t,e){let r=e?.gltf?.excludeExtensions||{};return!(t in r&&!r[t])}var Pl="KHR_binary_glTF";function $g(t){let e=new q(t),{json:r}=e;for(let n of r.images||[]){let o=e.getObjectExtension(n,Pl);o&&Object.assign(n,o),e.removeObjectExtension(n,Pl)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(Pl)}var e0={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},kI={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},Nl=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,r){this.json=e.json;let n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!r.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(n),this._convertTopLevelObjectsToArrays(n),$g(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(let r in e0)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let n=e[r];if(!(!n||Array.isArray(n))){e[r]=[];for(let o in n){let s=n[o];s.id=s.id||o;let i=e[r].length;e[r].push(s),this.idToIndexMap[r][o]=i}}}_convertObjectIdsToArrayIndices(e){for(let r in e0)this._convertIdsToIndices(e,r);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(let r of e.textures)this._convertTextureIds(r);for(let r of e.meshes)this._convertMeshIds(r);for(let r of e.nodes)this._convertNodeIds(r);for(let r of e.scenes)this._convertSceneIds(r)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(let r of e.primitives){let{attributes:n,indices:o,material:s}=r;for(let i in n)n[i]=this._convertIdToIndex(n[i],"accessor");o&&(r.indices=this._convertIdToIndex(o,"accessor")),s&&(r.material=this._convertIdToIndex(s,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(r=>this._convertIdToIndex(r,"node"))),e.meshes&&(e.meshes=e.meshes.map(r=>this._convertIdToIndex(r,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(r=>this._convertIdToIndex(r,"node")))}_convertIdsToIndices(e,r){e[r]||(console.warn(`gltf v1: json doesn't contain attribute ${r}`),e[r]=[]);for(let n of e[r])for(let o in n){let s=n[o],i=this._convertIdToIndex(s,o);n[o]=i}}_convertIdToIndex(e,r){let n=kI[r];if(n in this.idToIndexMap){let o=this.idToIndexMap[n][e];if(!Number.isFinite(o))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return o}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let r of e.materials){r.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let n=r.values?.tex||r.values?.texture2d_0||r.values?.diffuseTex,o=e.textures.findIndex(s=>s.id===n);o!==-1&&(r.pbrMetallicRoughness.baseColorTexture={index:o})}}};function t0(t,e={}){return new Nl().normalize(t,e)}async function r0(t,e,r=0,n,o){return zI(t,e,r,n),t0(t,{normalize:n?.gltf?.normalize}),Yg(t,n,o),n?.gltf?.loadBuffers&&t.json.buffers&&await jI(t,n,o),n?.gltf?.loadImages&&await qI(t,n,o),await Qg(t,n,o),t}function zI(t,e,r,n){if(n.core?.baseUrl&&(t.baseUri=n.core?.baseUrl),e instanceof ArrayBuffer&&!jg(e,r,n.glb)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=fc(e);else if(e instanceof ArrayBuffer){let i={};r=qg(i,e,r,n.glb),le(i.type==="glTF",`Invalid GLB magic string ${i.type}`),t._glb=i,t.json=i.json}else le(!1,"GLTF: must be ArrayBuffer or string");let o=t.json.buffers||[];if(t.buffers=new Array(o.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:i}=t._glb;t.buffers[0]={arrayBuffer:i[0].arrayBuffer,byteOffset:i[0].byteOffset,byteLength:i[0].byteLength}}let s=t.json.images||[];t.images=new Array(s.length).fill({})}async function jI(t,e,r){let n=t.json.buffers||[];for(let o=0;o<n.length;++o){let s=n[o];if(s.uri){let{fetch:i}=r;le(i);let a=_l(s.uri,e,r),l=await(await r?.fetch?.(a))?.arrayBuffer?.();t.buffers[o]={arrayBuffer:l,byteOffset:0,byteLength:l.byteLength},delete s.uri}else t.buffers[o]===null&&(t.buffers[o]={arrayBuffer:new ArrayBuffer(s.byteLength),byteOffset:0,byteLength:s.byteLength})}}async function qI(t,e,r){let n=JI(t),o=t.json.images||[],s=[];for(let i of n)s.push(WI(t,o[i],i,e,r));return await Promise.all(s)}function JI(t){let e=new Set,r=t.json.textures||[];for(let n of r)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function WI(t,e,r,n,o){let s;if(e.uri&&!e.hasOwnProperty("bufferView")){let l=_l(e.uri,n,o),{fetch:f}=o;s=await(await f(l)).arrayBuffer(),e.bufferView={data:s}}if(Number.isFinite(e.bufferView)){let l=Cg(t.json,t.buffers,e.bufferView);s=$t(l.buffer,l.byteOffset,l.byteLength)}le(s,"glTF image has no data");let i=n,a={...i,core:{...i?.core,mimeType:e.mimeType}},c=await we(s,[Vr,xl],a,o);c&&c[0]&&(c={compressed:!0,mipmaps:!1,width:c[0].width,height:c[0].height,data:c[0]}),t.images=t.images||[],t.images[r]=c}var mr={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Rg,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:XI,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0}}};async function XI(t,e={},r){let n={...mr.options,...e};n.gltf={...mr.options.gltf,...n.gltf};let o=e?.glb?.byteOffset||0;return await r0({},t,o,n,r)}var KI={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},YI={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},De={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},QI={magFilter:De.TEXTURE_MAG_FILTER,minFilter:De.TEXTURE_MIN_FILTER,wrapS:De.TEXTURE_WRAP_S,wrapT:De.TEXTURE_WRAP_T},ZI={[De.TEXTURE_MAG_FILTER]:De.LINEAR,[De.TEXTURE_MIN_FILTER]:De.NEAREST_MIPMAP_LINEAR,[De.TEXTURE_WRAP_S]:De.REPEAT,[De.TEXTURE_WRAP_T]:De.REPEAT};function $I(){return{id:"default-sampler",parameters:ZI}}function e2(t){return YI[t]}function t2(t){return KI[t]}var Ol=class{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,r={}){let{json:n,buffers:o=[],images:s=[]}=e,{baseUri:i=""}=e;return le(n),this.baseUri=i,this.buffers=o,this.images=s,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e,r={}){let n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((o,s)=>this._resolveBufferView(o,s))),e.images&&(n.images=e.images.map((o,s)=>this._resolveImage(o,s))),e.samplers&&(n.samplers=e.samplers.map((o,s)=>this._resolveSampler(o,s))),e.textures&&(n.textures=e.textures.map((o,s)=>this._resolveTexture(o,s))),e.accessors&&(n.accessors=e.accessors.map((o,s)=>this._resolveAccessor(o,s))),e.materials&&(n.materials=e.materials.map((o,s)=>this._resolveMaterial(o,s))),e.meshes&&(n.meshes=e.meshes.map((o,s)=>this._resolveMesh(o,s))),e.nodes&&(n.nodes=e.nodes.map((o,s)=>this._resolveNode(o,s)),n.nodes=n.nodes.map((o,s)=>this._resolveNodeChildren(o))),e.skins&&(n.skins=e.skins.map((o,s)=>this._resolveSkin(o,s))),e.scenes&&(n.scenes=e.scenes.map((o,s)=>this._resolveScene(o,s))),typeof this.json.scene=="number"&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,r){if(typeof r=="object")return r;let n=e&&e[r];return n||console.warn(`glTF file error: Could not find ${e}[${r}]`),n}_resolveScene(e,r){return{...e,id:e.id||`scene-${r}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))}}_resolveNode(e,r){let n={...e,id:e?.id||`node-${r}`};return e.mesh!==void 0&&(n.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(n.camera=this.getCamera(e.camera)),e.skin!==void 0&&(n.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(n.mesh=e.meshes.reduce((o,s)=>{let i=this.getMesh(s);return o.id=i.id,o.primitives=o.primitives.concat(i.primitives),o},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(r=>this.getNode(r))),e}_resolveSkin(e,r){let n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${r}`,inverseBindMatrices:n}}_resolveMesh(e,r){let n={...e,id:e.id||`mesh-${r}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(o=>{let s={...o,attributes:{},indices:void 0,material:void 0},i=o.attributes;for(let a in i)s.attributes[a]=this.getAccessor(i[a]);return o.indices!==void 0&&(s.indices=this.getAccessor(o.indices)),o.material!==void 0&&(s.material=this.getMaterial(o.material)),s})),n}_resolveMaterial(e,r){let n={...e,id:e.id||`material-${r}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};let o=n.pbrMetallicRoughness;o.baseColorTexture&&(o.baseColorTexture={...o.baseColorTexture},o.baseColorTexture.texture=this.getTexture(o.baseColorTexture.index)),o.metallicRoughnessTexture&&(o.metallicRoughnessTexture={...o.metallicRoughnessTexture},o.metallicRoughnessTexture.texture=this.getTexture(o.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,r){let n=e2(e.componentType),o=t2(e.type),s=n*o,i={...e,id:e.id||`accessor-${r}`,bytesPerComponent:n,components:o,bytesPerElement:s,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(i.bufferView=this.getBufferView(e.bufferView)),i.bufferView){let a=i.bufferView.buffer,{ArrayType:c,byteLength:l}=Zr(i,i.bufferView),f=(i.bufferView.byteOffset||0)+(i.byteOffset||0)+a.byteOffset,u=Un(a.arrayBuffer,f,l);i.bufferView.byteStride&&(u=this._getValueFromInterleavedBuffer(a,f,i.bufferView.byteStride,i.bytesPerElement,i.count)),i.value=new c(u)}return i}_getValueFromInterleavedBuffer(e,r,n,o,s){let i=new Uint8Array(s*o);for(let a=0;a<s;a++){let c=r+a*n;i.set(new Uint8Array(e.arrayBuffer.slice(c,c+o)),a*o)}return i.buffer}_resolveTexture(e,r){return{...e,id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):$I(),source:typeof e.source=="number"?this.getImage(e.source):void 0}}_resolveSampler(e,r){let n={id:e.id||`sampler-${r}`,...e,parameters:{}};for(let o in n){let s=this._enumSamplerParameter(o);s!==void 0&&(n.parameters[s]=n[o])}return n}_enumSamplerParameter(e){return QI[e]}_resolveImage(e,r){let n={...e,id:e.id||`image-${r}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0},o=this.images[r];return o&&(n.image=o),n}_resolveBufferView(e,r){let n=e.buffer,o=this.buffers[n].arrayBuffer,s=this.buffers[n].byteOffset||0;return e.byteOffset&&(s+=e.byteOffset),{id:`bufferView-${r}`,...e,buffer:this.buffers[n],data:new Uint8Array(o,s,e.byteLength)}}_resolveCamera(e,r){let n={...e,id:e.id||`camera-${r}`};return n.perspective,n.orthographic,n}};function go(t,e){return new Ol().postProcess(t,e)}var Si={URI:0,EMBEDDED:1};function _i(t,e,r,n){t.rotateYtoZ=!0;let o=(t.byteOffset||0)+(t.byteLength||0)-r;if(o===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=n?.["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=$t(e,r,o),t.gltfByteOffset=0,t.gltfByteLength=o,r%4===0||console.warn(`${t.type}: embedded glb is not aligned to a 4-byte boundary.`),(t.byteOffset||0)+(t.byteLength||0)}async function Ci(t,e,r,n){let o=r?.["3d-tiles"]||{};if(r2(t,e,r),o.loadGLTF){if(!n)return;if(t.gltfUrl){let{fetch:s}=n,i=await s(t.gltfUrl,r?.core);t.gltfArrayBuffer=await i.arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer){let s=await we(t.gltfArrayBuffer,mr,r,n);t.gltf=go(s),t.gpuMemoryUsageInBytes=uo(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}}function r2(t,e,r){switch(e){case Si.URI:if(t.gltfArrayBuffer){let n=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),s=new TextDecoder().decode(n);t.gltfUrl=s.replace(/[\s\0]+$/,"")}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case Si.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function n0(t,e,r,n,o){r=n2(t,e,r,n,o),await Ci(t,Si.EMBEDDED,n,o);let s=t?.gltf?.extensions;return s&&s.CESIUM_RTC&&(t.rtcCenter=s.CESIUM_RTC.center),r}function n2(t,e,r,n,o){r=Ut(t,e,r),r=Yr(t,e,r),r=Qr(t,e,r,n),r=_i(t,e,r,n);let s=new Tt(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=s.getGlobalProperty("RTC_CENTER",N.FLOAT,3),r}async function o0(t,e,r,n,o){return r=o2(t,e,r,n,o),await Ci(t,t.gltfFormat||0,n,o),r}function o2(t,e,r,n,o){if(r=Ut(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=Yr(t,e,r);let s=new DataView(e);if(t.gltfFormat=s.getUint32(r,!0),r+=4,r=Qr(t,e,r,n),r=_i(t,e,r,n),!t?.header?.featureTableJsonByteLength||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let i=new Tt(t.featureTableJson,t.featureTableBinary),a=i.getGlobalProperty("INSTANCES_LENGTH");if(i.featuresLength=a,!Number.isFinite(a))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=i.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=i.getGlobalProperty("RTC_CENTER",N.FLOAT,3);let c=new pr(t.batchTableJson,t.batchTableBinary,a);return s2(t,i,c,a),r}function s2(t,e,r,n){let o=new Array(n),s=new S,i=new S,a=new S,c=new S,l=new z,f=new et,u=new S,h={},p=new P,d=[],m=[],b=[],x=[];for(let y=0;y<n;y++){let _;if(e.hasProperty("POSITION"))_=e.getProperty("POSITION",N.FLOAT,3,y,s);else if(e.hasProperty("POSITION_QUANTIZED")){_=e.getProperty("POSITION_QUANTIZED",N.UNSIGNED_SHORT,3,y,s);let g=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",N.FLOAT,3);if(!g)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let B=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",N.FLOAT,3);if(!B)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let w=65535;for(let L=0;L<3;L++)_[L]=_[L]/w*B[L]+g[L]}if(!_)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");s.copy(_),h.translation=s,t.normalUp=e.getProperty("NORMAL_UP",N.FLOAT,3,y,d),t.normalRight=e.getProperty("NORMAL_RIGHT",N.FLOAT,3,y,m);let T=!1;if(t.normalUp){if(!t.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");t.hasCustomOrientation=!0}else{if(t.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",N.UNSIGNED_SHORT,2,y,d),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",N.UNSIGNED_SHORT,2,y,m),t.octNormalUp)throw t.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");t.eastNorthUp?(G.WGS84.eastNorthUpToFixedFrame(s,p),p.getRotationMatrix3(l)):l.identity()}T&&(c.copy(i).cross(a).normalize(),l.setColumn(0,i),l.setColumn(1,a),l.setColumn(2,c)),f.fromMatrix3(l),h.rotation=f,u.set(1,1,1);let M=e.getProperty("SCALE",N.FLOAT,1,y,b);Number.isFinite(M)&&u.multiplyByScalar(M);let E=e.getProperty("SCALE_NON_UNIFORM",N.FLOAT,3,y,d);E&&u.scale(E),h.scale=u;let I=e.getProperty("BATCH_ID",N.UNSIGNED_SHORT,1,y,x);I===void 0&&(I=y);let C=new P().fromQuaternion(h.rotation);p.identity(),p.translate(h.translation),p.multiplyRight(C),p.scale(h.scale);let A=p.clone();o[y]={modelMatrix:A,batchId:I}}t.instances=o}async function s0(t,e,r,n,o,s){r=Ut(t,e,r);let i=new DataView(e);for(t.tilesLength=i.getUint32(r,!0),r+=4,t.tiles=[];t.tiles.length<t.tilesLength&&(t.byteLength||0)-r>12;){let a={shape:"tile3d"};t.tiles.push(a),r=await s(e,r,n,o,a)}return r}async function i0(t,e,r,n){if(t.rotateYtoZ=!0,t.gltfUpAxis=r?.["3d-tiles"]?.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r?.["3d-tiles"]?.loadGLTF){if(!n)return e.byteLength;let o=await we(e,mr,r,n);t.gltf=go(o),t.gpuMemoryUsageInBytes=uo(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function Ul(t,e=0,r,n,o={shape:"tile3d"}){switch(o.byteOffset=e,o.type=eg(t,e),o.type){case ur.COMPOSITE:return await s0(o,t,e,r,n,Ul);case ur.BATCHED_3D_MODEL:return await n0(o,t,e,r,n);case ur.GLTF:return await i0(o,t,r,n);case ur.INSTANCED_3D_MODEL:return await o0(o,t,e,r,n);case ur.POINT_CLOUD:return await Sg(o,t,e,r,n);default:throw new Error(`3DTileLoader: unknown type ${o.type}`)}}async function Dl(t,e,r){if(new Uint32Array(t.slice(0,4))[0]!==1952609651)throw new Error("Wrong subtree file magic number");if(new Uint32Array(t.slice(4,8))[0]!==1)throw new Error("Wrong subtree file verson, must be 1");let s=a0(t.slice(8,16)),i=new Uint8Array(t,24,s),c=new TextDecoder("utf8").decode(i),l=JSON.parse(c),f=a0(t.slice(16,24)),u=new ArrayBuffer(0);if(f&&(u=t.slice(24+s)),await Ei(l,l.tileAvailability,u,r),Array.isArray(l.contentAvailability))for(let h of l.contentAvailability)await Ei(l,h,u,r);else await Ei(l,l.contentAvailability,u,r);return await Ei(l,l.childSubtreeAvailability,u,r),l}async function Ei(t,e,r,n){let o=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof o!="number")return;let s=t.bufferViews[o],i=t.buffers[s.buffer];if(!n?.baseUrl)throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(i.uri){let c=`${n?.baseUrl||""}/${i.uri}`,f=await(await n.fetch(c)).arrayBuffer();e.explicitBitstream=new Uint8Array(f,s.byteOffset,s.byteLength);return}let a=t.buffers.slice(0,s.buffer).reduce((c,l)=>c+l.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(a,a+i.byteLength),s.byteOffset,s.byteLength)}function a0(t){let e=new DataView(t),r=e.getUint32(0,!0),n=e.getUint32(4,!0);return r+2**32*n}var Mi={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:ii,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Dl,options:{}};var v0=D(Xt(),1);var E0=D(Xt(),1);var Ge=null;try{Ge=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function $(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}$.prototype.__isLong__;Object.defineProperty($.prototype,"__isLong__",{value:!0});function be(t){return(t&&t.__isLong__)===!0}function c0(t){var e=Math.clz32(t&-t);return t?31-e:e}$.isLong=be;var l0={},f0={};function gr(t,e){var r,n,o;return e?(t>>>=0,(o=0<=t&&t<256)&&(n=f0[t],n)?n:(r=J(t,0,!0),o&&(f0[t]=r),r)):(t|=0,(o=-128<=t&&t<128)&&(n=l0[t],n)?n:(r=J(t,t<0?-1:0,!1),o&&(l0[t]=r),r))}$.fromInt=gr;function Ve(t,e){if(isNaN(t))return e?yt:Ye;if(e){if(t<0)return yt;if(t>=d0)return b0}else{if(t<=-h0)return Be;if(t+1>=h0)return g0}return t<0?Ve(-t,e).neg():J(t%ln|0,t/ln|0,e)}$.fromNumber=Ve;function J(t,e,r){return new $(t,e,r)}$.fromBits=J;var Ii=Math.pow;function Vl(t,e,r){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(r=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?yt:Ye;if(r=r||10,r<2||36<r)throw RangeError("radix");var n;if((n=t.indexOf("-"))>0)throw Error("interior hyphen");if(n===0)return Vl(t.substring(1),e,r).neg();for(var o=Ve(Ii(r,8)),s=Ye,i=0;i<t.length;i+=8){var a=Math.min(8,t.length-i),c=parseInt(t.substring(i,i+a),r);if(a<8){var l=Ve(Ii(r,a));s=s.mul(l).add(Ve(c))}else s=s.mul(o),s=s.add(Ve(c))}return s.unsigned=e,s}$.fromString=Vl;function Qe(t,e){return typeof t=="number"?Ve(t,e):typeof t=="string"?Vl(t,e):J(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}$.fromValue=Qe;var u0=65536,i2=1<<24,ln=u0*u0,d0=ln*ln,h0=d0/2,p0=gr(i2),Ye=gr(0);$.ZERO=Ye;var yt=gr(0,!0);$.UZERO=yt;var cn=gr(1);$.ONE=cn;var m0=gr(1,!0);$.UONE=m0;var Gl=gr(-1);$.NEG_ONE=Gl;var g0=J(-1,2147483647,!1);$.MAX_VALUE=g0;var b0=J(-1,-1,!0);$.MAX_UNSIGNED_VALUE=b0;var Be=J(0,-2147483648,!1);$.MIN_VALUE=Be;var v=$.prototype;v.toInt=function(){return this.unsigned?this.low>>>0:this.low};v.toNumber=function(){return this.unsigned?(this.high>>>0)*ln+(this.low>>>0):this.high*ln+(this.low>>>0)};v.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Be)){var r=Ve(e),n=this.div(r),o=n.mul(r).sub(this);return n.toString(e)+o.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var s=Ve(Ii(e,6),this.unsigned),i=this,a="";;){var c=i.div(s),l=i.sub(c.mul(s)).toInt()>>>0,f=l.toString(e);if(i=c,i.isZero())return f+a;for(;f.length<6;)f="0"+f;a=""+f+a}};v.getHighBits=function(){return this.high};v.getHighBitsUnsigned=function(){return this.high>>>0};v.getLowBits=function(){return this.low};v.getLowBitsUnsigned=function(){return this.low>>>0};v.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Be)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&(e&1<<r)==0;r--);return this.high!=0?r+33:r+1};v.isZero=function(){return this.high===0&&this.low===0};v.eqz=v.isZero;v.isNegative=function(){return!this.unsigned&&this.high<0};v.isPositive=function(){return this.unsigned||this.high>=0};v.isOdd=function(){return(this.low&1)===1};v.isEven=function(){return(this.low&1)===0};v.equals=function(e){return be(e)||(e=Qe(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};v.eq=v.equals;v.notEquals=function(e){return!this.eq(e)};v.neq=v.notEquals;v.ne=v.notEquals;v.lessThan=function(e){return this.comp(e)<0};v.lt=v.lessThan;v.lessThanOrEqual=function(e){return this.comp(e)<=0};v.lte=v.lessThanOrEqual;v.le=v.lessThanOrEqual;v.greaterThan=function(e){return this.comp(e)>0};v.gt=v.greaterThan;v.greaterThanOrEqual=function(e){return this.comp(e)>=0};v.gte=v.greaterThanOrEqual;v.ge=v.greaterThanOrEqual;v.compare=function(e){if(be(e)||(e=Qe(e)),this.eq(e))return 0;var r=this.isNegative(),n=e.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};v.comp=v.compare;v.negate=function(){return!this.unsigned&&this.eq(Be)?Be:this.not().add(cn)};v.neg=v.negate;v.add=function(e){be(e)||(e=Qe(e));var r=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=e.high>>>16,a=e.high&65535,c=e.low>>>16,l=e.low&65535,f=0,u=0,h=0,p=0;return p+=s+l,h+=p>>>16,p&=65535,h+=o+c,u+=h>>>16,h&=65535,u+=n+a,f+=u>>>16,u&=65535,f+=r+i,f&=65535,J(h<<16|p,f<<16|u,this.unsigned)};v.subtract=function(e){return be(e)||(e=Qe(e)),this.add(e.neg())};v.sub=v.subtract;v.multiply=function(e){if(this.isZero())return this;if(be(e)||(e=Qe(e)),Ge){var r=Ge.mul(this.low,this.high,e.low,e.high);return J(r,Ge.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?yt:Ye;if(this.eq(Be))return e.isOdd()?Be:Ye;if(e.eq(Be))return this.isOdd()?Be:Ye;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(p0)&&e.lt(p0))return Ve(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=e.high>>>16,c=e.high&65535,l=e.low>>>16,f=e.low&65535,u=0,h=0,p=0,d=0;return d+=i*f,p+=d>>>16,d&=65535,p+=s*f,h+=p>>>16,p&=65535,p+=i*l,h+=p>>>16,p&=65535,h+=o*f,u+=h>>>16,h&=65535,h+=s*l,u+=h>>>16,h&=65535,h+=i*c,u+=h>>>16,h&=65535,u+=n*f+o*l+s*c+i*a,u&=65535,J(p<<16|d,u<<16|h,this.unsigned)};v.mul=v.multiply;v.divide=function(e){if(be(e)||(e=Qe(e)),e.isZero())throw Error("division by zero");if(Ge){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?Ge.div_u:Ge.div_s)(this.low,this.high,e.low,e.high);return J(r,Ge.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?yt:Ye;var n,o,s;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return yt;if(e.gt(this.shru(1)))return m0;s=yt}else{if(this.eq(Be)){if(e.eq(cn)||e.eq(Gl))return Be;if(e.eq(Be))return cn;var i=this.shr(1);return n=i.div(e).shl(1),n.eq(Ye)?e.isNegative()?cn:Gl:(o=this.sub(e.mul(n)),s=n.add(o.div(e)),s)}else if(e.eq(Be))return this.unsigned?yt:Ye;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();s=Ye}for(o=this;o.gte(e);){n=Math.max(1,Math.floor(o.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:Ii(2,a-48),l=Ve(n),f=l.mul(e);f.isNegative()||f.gt(o);)n-=c,l=Ve(n,this.unsigned),f=l.mul(e);l.isZero()&&(l=cn),s=s.add(l),o=o.sub(f)}return s};v.div=v.divide;v.modulo=function(e){if(be(e)||(e=Qe(e)),Ge){var r=(this.unsigned?Ge.rem_u:Ge.rem_s)(this.low,this.high,e.low,e.high);return J(r,Ge.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};v.mod=v.modulo;v.rem=v.modulo;v.not=function(){return J(~this.low,~this.high,this.unsigned)};v.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};v.clz=v.countLeadingZeros;v.countTrailingZeros=function(){return this.low?c0(this.low):c0(this.high)+32};v.ctz=v.countTrailingZeros;v.and=function(e){return be(e)||(e=Qe(e)),J(this.low&e.low,this.high&e.high,this.unsigned)};v.or=function(e){return be(e)||(e=Qe(e)),J(this.low|e.low,this.high|e.high,this.unsigned)};v.xor=function(e){return be(e)||(e=Qe(e)),J(this.low^e.low,this.high^e.high,this.unsigned)};v.shiftLeft=function(e){return be(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?J(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):J(0,this.low<<e-32,this.unsigned)};v.shl=v.shiftLeft;v.shiftRight=function(e){return be(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?J(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):J(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};v.shr=v.shiftRight;v.shiftRightUnsigned=function(e){return be(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?J(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?J(this.high,0,this.unsigned):J(this.high>>>e-32,0,this.unsigned)};v.shru=v.shiftRightUnsigned;v.shr_u=v.shiftRightUnsigned;v.rotateLeft=function(e){var r;return be(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?J(this.high,this.low,this.unsigned):e<32?(r=32-e,J(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,J(this.high<<e|this.low>>>r,this.low<<e|this.high>>>r,this.unsigned))};v.rotl=v.rotateLeft;v.rotateRight=function(e){var r;return be(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?J(this.high,this.low,this.unsigned):e<32?(r=32-e,J(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,J(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};v.rotr=v.rotateRight;v.toSigned=function(){return this.unsigned?J(this.low,this.high,!1):this};v.toUnsigned=function(){return this.unsigned?this:J(this.low,this.high,!0)};v.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};v.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};v.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};$.fromBytes=function(e,r,n){return n?$.fromBytesLE(e,r):$.fromBytesBE(e,r)};$.fromBytesLE=function(e,r){return new $(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};$.fromBytesBE=function(e,r){return new $(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)};var fn=$;var a2=16;function bo(t){t==="X"&&(t="");let e=t.padEnd(a2,"0");return fn.fromString(e,!0,16)}function Hl(t){if(t.isZero())return"X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let n=e;e*=4;let s=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-s.length).join("0")+s}function kl(t,e){let r=c2(t).shiftRightUnsigned(2);return t.add(fn.fromNumber(2*e+1-4).multiply(r))}function c2(t){return t.and(t.not().add(1))}var l2=3,f2=30,u2=2*f2+1,A0=180/Math.PI;function T0(t){if(t.length===0)throw new Error(`Invalid Hilbert quad key ${t}`);let e=t.split("/"),r=parseInt(e[0],10),n=e[1],o=n.length,s=0,i=[0,0];for(let a=o-1;a>=0;a--){s=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,s-1);h2(u,i,l,f),i[0]+=u*l,i[1]+=u*f}if(r%2===1){let a=i[0];i[0]=i[1],i[1]=a}return{face:r,ij:i,level:s}}function y0(t){if(t.isZero())return"";let e=t.toString(2);for(;e.length<l2+u2;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=fn.fromString(n,!0,2).toString(10),a="";if(s!==0)for(a=fn.fromString(o,!0,2).toString(4);a.length<s;)a="0"+a;return`${i}/${a}`}function zl(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function x0(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function jl(t){return[x0(t[0]),x0(t[1])]}function ql(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function Jl([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*A0,n*A0]}function h2(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function S0(t){let e=zl(t.ij,t.level,[.5,.5]),r=jl(e),n=ql(t.face,r);return Jl(n)}var p2=100;function Wl(t){let{face:e,ij:r,level:n}=t,o=[[0,0],[0,1],[1,1],[1,0],[0,0]],s=Math.max(1,Math.ceil(p2*Math.pow(2,-n))),i=new Float64Array(4*s*2+2),a=0,c=0;for(let l=0;l<4;l++){let f=o[l].slice(0),u=o[l+1],h=(u[0]-f[0])/s,p=(u[1]-f[1])/s;for(let d=0;d<s;d++){f[0]+=h,f[1]+=p;let m=zl(r,n,f),b=jl(m),x=ql(e,b),y=Jl(x);Math.abs(y[1])>89.999&&(y[0]=c);let _=y[0]-c;y[0]+=_>180?-360:_<-180?360:0,i[a++]=y[0],i[a++]=y[1],c=y[0]}}return i[a++]=i[0],i[a++]=i[1],i}function un(t){let e=d2(t);return T0(e)}function d2(t){if(t.indexOf("/")>0)return t;let e=bo(t);return y0(e)}function Xl(t){let e=un(t);return S0(e)}function C0(t){let e;if(t.face===2||t.face===5){let r=null,n=0;for(let o=0;o<4;o++){let s=`${t.face}/${o}`,i=un(s),a=Wl(i);(typeof r>"u"||r===null)&&(r=new Float64Array(4*a.length)),r.set(a,n),n+=a.length}e=_0(r)}else{let r=Wl(t);e=_0(r)}return e}function _0(t){if(t.length%2!==0)throw new Error("Invalid corners");let e=[],r=[];for(let n=0;n<t.length;n+=2)e.push(t[n]),r.push(t[n+1]);return e.sort((n,o)=>n-o),r.sort((n,o)=>n-o),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function Kl(t,e){let r=e?.minimumHeight||0,n=e?.maximumHeight||0,o=un(t),s=C0(o),i=s.west,a=s.south,c=s.east,l=s.north,f=[];return f.push(new S(i,l,r)),f.push(new S(c,l,r)),f.push(new S(c,a,r)),f.push(new S(i,a,r)),f.push(new S(i,l,n)),f.push(new S(c,l,n)),f.push(new S(c,a,n)),f.push(new S(i,a,n)),f}function Bi(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},n=Kl(e,r),o=Xl(e),s=o[0],i=o[1],a=G.WGS84.cartographicToCartesian([s,i,r.maximumHeight]),c=new S(a[0],a[1],a[2]);n.push(c);let l=Qn(n);return[...l.center,...l.halfAxes]}var m2=4,g2=8,b2={QUADTREE:m2,OCTREE:g2};function A2(t,e,r){if(t?.box){let n=bo(t.s2VolumeInfo.token),o=kl(n,e),s=Hl(o),i={...t.s2VolumeInfo};if(i.token=s,r==="OCTREE"){let l=t.s2VolumeInfo,f=l.maximumHeight-l.minimumHeight,u=f/2,h=l.minimumHeight+f/2;l.minimumHeight=h-u,l.maximumHeight=h+u}return{box:Bi(i),s2VolumeInfo:i}}}async function Ql(t){let{subtree:e,subtreeData:r={level:0,x:0,y:0,z:0},parentData:n={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:o=0,implicitOptions:s,loaderOptions:i,s2VolumeBox:a}=t,{subdivisionScheme:c,subtreeLevels:l,maximumLevel:f,contentUrlTemplate:u,subtreesUriTemplate:h,basePath:p}=s,d={children:[],lodMetricValue:0,contentUrl:""};if(!f)return oc.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),d;let m=n.localLevel+1,b=r.level+m;if(b>f)return d;let x=b2[c],y=Math.log2(x),_=o&1,T=o>>1&1,M=o>>2&1,E=br(n.localX,_,1),I=br(n.localY,T,1),C=br(n.localZ,M,1),A=br(r.x,E,m),g=br(r.y,I,m),B=br(r.z,C,m),w=br(n.mortonIndex,o,y),L=m===l&&Yl(e.childSubtreeAvailability,w),R,O,H,U;if(L){let K=`${p}/${h}`,te=vi(K,b,A,g,B);R=await(0,E0.load)(te,Mi,i),U=0,O={level:b,x:A,y:g,z:B},H={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0}}else R=e,U=(x**m-1)/(x-1)+w,O=r,H={mortonIndex:w,localLevel:m,localX:E,localY:I,localZ:C};if(!Yl(R.tileAvailability,U))return d;Yl(R.contentAvailability,U)&&(d.contentUrl=vi(u,b,A,g,B));for(let K=0;K<x;K++){let te=A2(a,K,c),_e=await Ql({subtree:R,subtreeData:O,parentData:H,childIndex:K,implicitOptions:s,loaderOptions:i,s2VolumeBox:te});(_e.contentUrl||_e.children.length)&&d.children.push(_e)}return d.contentUrl||d.children.length?x2(d,{level:b,x:A,y:g,z:B},s,a):d}function Yl(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&oc.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?!!r.constant:r.explicitBitstream?S2(e,r.explicitBitstream):!1}function x2(t,e,r,n){let{basePath:o,refine:s,getRefine:i,lodMetricType:a,getTileType:c,rootLodMetricValue:l,rootBoundingVolume:f}=r,u=t.contentUrl&&t.contentUrl.replace(`${o}/`,""),h=l/2**e.level,p=n?.box?{box:n.box}:f,d=T2(p,e,r.subdivisionScheme);return{children:t.children,contentUrl:t.contentUrl,content:{uri:u},id:t.contentUrl,refine:i(s),type:c(t),lodMetricType:a,lodMetricValue:h,geometricError:h,transform:t.transform,boundingVolume:d}}function T2(t,e,r){if(t.region){let{level:n,x:o,y:s,z:i}=e,[a,c,l,f,u,h]=t.region,p=2**n,d=(l-a)/p,[m,b]=[a+d*o,a+d*(o+1)],x=(f-c)/p,[y,_]=[c+x*s,c+x*(s+1)],T,M;if(r==="OCTREE"){let E=(h-u)/p;[T,M]=[u+E*i,u+E*(i+1)]}else[T,M]=[u,h];return{region:[m,y,b,_,T,M]}}if(t.box)return t;throw new Error(`Unsupported bounding volume type ${JSON.stringify(t)}`)}function br(t,e,r){return(t<<r)+e}function vi(t,e,r,n,o){let s=y2({level:e,x:r,y:n,z:o});return t.replace(/{level}|{x}|{y}|{z}/gi,i=>s[i])}function y2(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function S2(t,e){let r=Math.floor(t/8),n=t%8;return(e[r]>>n&1)===1}function $l(t,e=""){if(!e)return Ue.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return Ue.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return Ue.SCENEGRAPH;default:return n||Ue.EMPTY}}function ef(t){switch(t){case"REPLACE":case"replace":return me.REPLACE;case"ADD":case"add":return me.ADD;default:return t}}function Zl(t,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let n=new URL(t,`${e}/`);return decodeURI(n.toString())}else if(t.startsWith("/"))return t;return Ft.resolve(e,t)}function M0(t,e){if(!t)return null;let r;if(t.content){let o=t.content.uri||t.content?.url;typeof o<"u"&&(r=Zl(o,e))}return{...t,id:r,contentUrl:r,lodMetricType:xt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:$l(t,r),refine:ef(t.refine)}}async function R0(t,e,r){let n=null,o=B0(t.root);o&&t.root?n=await I0(t.root,t,e,o,r):n=M0(t.root,e);let s=[];for(s.push(n);s.length>0;){let i=s.pop()||{},a=i.children||[],c=[];for(let l of a){let f=B0(l),u;f?u=await I0(l,t,e,f,r):u=M0(l,e),u&&(c.push(u),s.push(u))}i.children=c}return n}async function I0(t,e,r,n,o){let{subdivisionScheme:s,maximumLevel:i,availableLevels:a,subtreeLevels:c,subtrees:{uri:l}}=n,f=vi(l,0,0,0,0),u=Zl(f,r),h=await(0,v0.load)(u,Mi,o),p=t.content?.uri,d=p?Zl(p,r):"",m=e?.root?.refine,b=t.geometricError,x=t.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(x){let M={box:Bi(x),s2VolumeInfo:x};t.boundingVolume=M}let y=t.boundingVolume,_={contentUrlTemplate:d,subtreesUriTemplate:l,subdivisionScheme:s,subtreeLevels:c,maximumLevel:Number.isFinite(a)?a-1:i,refine:m,basePath:r,lodMetricType:xt.GEOMETRIC_ERROR,rootLodMetricValue:b,rootBoundingVolume:y,getTileType:$l,getRefine:ef};return await _2(t,r,h,_,o)}async function _2(t,e,r,n,o){if(!t)return null;let{children:s,contentUrl:i}=await Ql({subtree:r,implicitOptions:n,loaderOptions:o}),a,c=null;return i&&(a=i,c={uri:i.replace(`${e}/`,"")}),{...t,id:a,contentUrl:a,lodMetricType:xt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:$l(t,a),refine:ef(t.refine),content:c||t.content,children:s}}function B0(t){return t?.extensions?.["3DTILES_implicit_tiling"]||t?.implicitTiling}var Ri={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:ii,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:C2,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function C2(t,e={},r){let n=e["3d-tiles"]||{},o;return n.isTileset==="auto"?o=r?.url&&r.url.indexOf(".json")!==-1:o=n.isTileset,o?E2(t,e,r):M2(t,e,r)}async function E2(t,e,r){let n=JSON.parse(new TextDecoder().decode(t)),o=r?.url||"",s=I2(o),i=await R0(n,s,e||{});return{...n,shape:"tileset3d",loader:Ri,url:o,queryString:r?.queryString||"",basePath:s,root:i||n.root,type:ue.TILES3D,lodMetricType:xt.GEOMETRIC_ERROR,lodMetricValue:n.root?.geometricError||0}}async function M2(t,e,r){let n={content:{shape:"tile3d",featureIds:null}};return await Ul(t,0,e,r,n.content),n.content}function I2(t){return Ft.dirname(t)}var w0=[0],B2={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Ri,onTilesetLoad:{type:"function",value:t=>{}},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:(t,e,r)=>{}},_getMeshColor:{type:"function",value:t=>[255,255,255]}},Ao=class extends Vt.CompositeLayer{initializeState(){"onTileLoadFail"in this.props&&Vt.log.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return!!(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:r,changeFlags:n}){if(e.data&&e.data!==r.data&&this._loadTileset(e.data),n.viewportChanged){let{activeViewports:o}=this.state;Object.keys(o).length&&(this._updateTileset(o),this.state.lastUpdatedViewports=o,this.state.activeViewports={})}if(n.propsChanged){let{layerMap:o}=this.state;for(let s in o)o[s].needsUpdate=!0}}finalizeState(e){this.state.tileset3d?.destroy(),this.state.tileset3d=null,this.state.layerMap={},this.state.activeViewports={},this.state.lastUpdatedViewports=null,super.finalizeState(e)}activateViewport(e){let{activeViewports:r,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,r[e.id]=e;let o=n?.[e.id];(!o||!e.equals(o))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:e,sourceLayer:r}){let n=r&&r.props.tile;return e.picked&&(e.object=n),e.sourceTile=n,e}filterSubLayer({layer:e,viewport:r,cullRect:n,isPicking:o}){let{tile:s}=e.props,{id:i}=r;if(!s.selected||!s.viewportIds.includes(i))return!1;if(o&&n&&s.content?.cartographicOrigin){let[a,c]=r.project(s.content.cartographicOrigin),l=n.x+n.width/2,f=n.y+n.height/2,u=Math.max(r.width,r.height)/4,h=a-l,p=c-f;if(h*h+p*p>u*u)return!1}return!0}_updateAutoHighlight(e){let r=e.sourceTile,n=this.state.layerMap[r?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){let r=this.props.loadOptions||{},n=this.props.loaders?.length?this.props.loaders:this.props.loader,o=Array.isArray(n)?n[0]:n,{tileset:s,...i}=r,a={loadOptions:{...i},...s},c=e;if("preload"in o&&typeof o.preload=="function"){let u=await o.preload(e,r);u.url&&(c=u.url),u.headers&&(a.loadOptions.core={...a.loadOptions.core,fetch:{...a.loadOptions.core?.fetch,headers:u.headers}}),Object.assign(a,u)}let l=await(0,N0.load)(c,o,a.loadOptions),f=new ao(l,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,onUpdate:()=>this.setNeedsUpdate(),...a});this.setState({tileset3d:f,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(f)}_onTileLoad(e){let{lastUpdatedViewports:r}=this.state;e.tileDrawn=!1,this.props.onTileLoad(e),this._updateTileset(r),this.setNeedsUpdate()}_onTileUnload(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}_updateTileset(e){if(!e)return;let{tileset3d:r}=this.state,{timeline:n}=this.context,o=Object.keys(e).length;!n||!o||!r||r.selectTiles(Object.values(e)).then(s=>{this.state.frameNumber!==s&&this.setState({frameNumber:s})})}_getSubLayer(e,r){if(!e.content)return null;switch(e.type){case Ue.POINTCLOUD:return this._makePointCloudLayer(e,r);case Ue.SCENEGRAPH:return this._make3DModelLayer(e);case Ue.MESH:return this._makeSimpleMeshLayer(e,r);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${e.content.type}`)}}_makePointCloudLayer(e,r){let{attributes:n,pointCount:o,constantRGBA:s,cartographicOrigin:i,modelMatrix:a}=e.content,{positions:c,normals:l,colors:f}=n;if(!c)return null;let u=r&&r.props.data||{header:{vertexCount:o},attributes:{POSITION:c,NORMAL:l,COLOR_0:f}},{pointSize:h,getPointColor:p}=this.props,d=this.getSubLayerClass("pointcloud",F0.PointCloudLayer);return new d({pointSize:h},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:u,coordinateSystem:Vt.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:i,modelMatrix:a,getColor:s||p,_offset:0})}_make3DModelLayer(e){let{gltf:r,instances:n,cartographicOrigin:o,modelMatrix:s}=e.content,i=this.getSubLayerClass("scenegraph",P0.ScenegraphLayer);return new i({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||w0,scenegraph:r,coordinateSystem:Vt.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:o,modelMatrix:s,getTransformMatrix:a=>a.modelMatrix,getPosition:[0,0,0],_offset:0,onFirstDraw:()=>{e.tileDrawn=!0}})}_makeSimpleMeshLayer(e,r){let n=e.content,{attributes:o,indices:s,modelMatrix:i,cartographicOrigin:a,coordinateSystem:c=Vt.COORDINATE_SYSTEM.METER_OFFSETS,material:l,featureIds:f}=n,{_getMeshColor:u}=this.props,h=r&&r.props.mesh||new L0.Geometry({topology:"triangle-list",attributes:v2(o),indices:s}),p=this.getSubLayerClass("mesh",mm);return new p(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:h,data:w0,getColor:u(e),pbrMaterial:l,modelMatrix:i,coordinateOrigin:a,coordinateSystem:c,featureIds:f,_offset:0})}renderLayers(){let{tileset3d:e,layerMap:r}=this.state;return e?e.tiles.map(n=>{let o=r[n.id]=r[n.id]||{tile:n},{layer:s}=o;return n.selected&&(s?o.needsUpdate&&(s=this._getSubLayer(n,s),o.needsUpdate=!1):s=this._getSubLayer(n)),o.layer=s,s}).filter(Boolean):null}};Ao.defaultProps=B2;Ao.layerName="Tile3DLayer";var O0=Ao;function v2(t){let e={};return e.positions={...t.positions,value:new Float32Array(t.positions.value)},t.normals&&(e.normals=t.normals),t.texCoords&&(e.texCoords=t.texCoords),t.colors&&(e.colors=t.colors),t.uvRegions&&(e.uvRegions=t.uvRegions),e}var lt=D(ze(),1),sf=D(Hs(),1);var R2=new Map([["centerX",Float64Array.BYTES_PER_ELEMENT],["centerY",Float64Array.BYTES_PER_ELEMENT],["centerZ",Float64Array.BYTES_PER_ELEMENT],["minHeight",Float32Array.BYTES_PER_ELEMENT],["maxHeight",Float32Array.BYTES_PER_ELEMENT],["boundingSphereCenterX",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterY",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterZ",Float64Array.BYTES_PER_ELEMENT],["boundingSphereRadius",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointX",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointY",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointZ",Float64Array.BYTES_PER_ELEMENT]]);function tf(t){return t>>1^-(t&1)}function w2(t){let e=0,r={};for(let[n,o]of R2){let s=o===8?t.getFloat64:t.getFloat32;r[n]=s.call(t,e,!0),e+=o}return{header:r,headerEndPosition:e}}function L2(t,e){let r=e,n=3,o=t.getUint32(r,!0),s=new Uint16Array(o*n);r+=Uint32Array.BYTES_PER_ELEMENT;let i=Uint16Array.BYTES_PER_ELEMENT,a=o*i,c=r,l=c+a,f=l+a,u=0,h=0,p=0;for(let d=0;d<o;d++)u+=tf(t.getUint16(c+i*d,!0)),h+=tf(t.getUint16(l+i*d,!0)),p+=tf(t.getUint16(f+i*d,!0)),s[d]=u,s[d+o]=h,s[d+o*2]=p;return r+=a*3,{vertexData:s,vertexDataEndPosition:r}}function xo(t,e,r,n,o=!0){let s;if(n===2?s=new Uint16Array(t,e,r):s=new Uint32Array(t,e,r),!o)return s;let i=0;for(let a=0;a<s.length;++a){let c=s[a];s[a]=i-c,c===0&&++i}return s}function F2(t,e,r){let n=r,i=e.length/3>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%i!==0&&(n+=i-n%i);let a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=a*3,l=xo(t.buffer,n,c,i);return n+=c*i,{triangleIndicesEndPosition:n,triangleIndices:l}}function P2(t,e,r){let n=r,i=e.length/3>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=xo(t.buffer,n,a,i,!1);n+=a*i;let l=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let f=xo(t.buffer,n,l,i,!1);n+=l*i;let u=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=xo(t.buffer,n,u,i,!1);n+=u*i;let p=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let d=xo(t.buffer,n,p,i,!1);return n+=p*i,{edgeIndicesEndPosition:n,westIndices:c,southIndices:f,eastIndices:h,northIndices:d}}function N2(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function O2(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function U2(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let n=e;for(;n<t.byteLength;){let o=t.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let s=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let i=new DataView(t.buffer,n,s);switch(o){case 1:{r.vertexNormals=N2(i);break}case 2:{r.waterMask=O2(i);break}default:}n+=s}return{extensions:r,extensionsEndPosition:n}}var Ar={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},D2={maxDecodingStep:Ar.extensions};function rf(t,e){let r=Object.assign({},D2,e),n=new DataView(t),{header:o,headerEndPosition:s}=w2(n);if(r.maxDecodingStep<Ar.vertices)return{header:o};let{vertexData:i,vertexDataEndPosition:a}=L2(n,s);if(r.maxDecodingStep<Ar.triangleIndices)return{header:o,vertexData:i};let{triangleIndices:c,triangleIndicesEndPosition:l}=F2(n,i,a);if(r.maxDecodingStep<Ar.edgeIndices)return{header:o,vertexData:i,triangleIndices:c};let{westIndices:f,southIndices:u,eastIndices:h,northIndices:p,edgeIndicesEndPosition:d}=P2(n,i,l);if(r.maxDecodingStep<Ar.extensions)return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u};let{extensions:m}=U2(n,d);return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u,extensions:m}}function wi(t,e,r,n){let o=n?V2(n,t.POSITION.value):G2(e),s=new t.POSITION.value.constructor(o.length*6),i=new t.TEXCOORD_0.value.constructor(o.length*4),a=new e.constructor(o.length*6);for(let l=0;l<o.length;l++){let f=o[l];H2({edge:f,edgeIndex:l,attributes:t,skirtHeight:r,newPosition:s,newTexcoord0:i,newTriangles:a})}t.POSITION.value=Nn(t.POSITION.value,s),t.TEXCOORD_0.value=Nn(t.TEXCOORD_0.value,i);let c=e instanceof Array?e.concat(a):Nn(e,a);return{attributes:t,triangles:c}}function G2(t){let e=[];for(let o=0;o<t.length;o+=3)e.push([t[o],t[o+1]]),e.push([t[o+1],t[o+2]]),e.push([t[o+2],t[o]]);e.sort((o,s)=>Math.min(...o)-Math.min(...s)||Math.max(...o)-Math.max(...s));let r=[],n=0;for(;n<e.length;)e[n][0]===e[n+1]?.[1]&&e[n][1]===e[n+1]?.[0]?n+=2:(r.push(e[n]),n++);return r}function V2(t,e){t.westIndices.sort((n,o)=>e[3*n+1]-e[3*o+1]),t.eastIndices.sort((n,o)=>e[3*o+1]-e[3*n+1]),t.southIndices.sort((n,o)=>e[3*o]-e[3*n]),t.northIndices.sort((n,o)=>e[3*n]-e[3*o]);let r=[];for(let n in t){let o=t[n];for(let s=0;s<o.length-1;s++)r.push([o[s],o[s+1]])}return r}function H2({edge:t,edgeIndex:e,attributes:r,skirtHeight:n,newPosition:o,newTexcoord0:s,newTriangles:i}){let a=r.POSITION.value.length,c=e*2,l=e*2+1;o.set(r.POSITION.value.subarray(t[0]*3,t[0]*3+3),c*3),o[c*3+2]=o[c*3+2]-n,o.set(r.POSITION.value.subarray(t[1]*3,t[1]*3+3),l*3),o[l*3+2]=o[l*3+2]-n,s.set(r.TEXCOORD_0.value.subarray(t[0]*2,t[0]*2+2),c*2),s.set(r.TEXCOORD_0.value.subarray(t[1]*2,t[1]*2+2),l*2);let f=e*2*3;i[f]=t[0],i[f+1]=a/3+l,i[f+2]=t[1],i[f+3]=a/3+l,i[f+4]=t[0],i[f+5]=a/3+c}function nf(t,e={}){let{bounds:r}=e,{header:n,vertexData:o,triangleIndices:s,westIndices:i,northIndices:a,eastIndices:c,southIndices:l}=rf(t,Ar.triangleIndices),f=s,u=k2(o,n,r),h=hr(u);if(e?.skirtHeight){let{attributes:p,triangles:d}=wi(u,f,e.skirtHeight,{westIndices:i,northIndices:a,eastIndices:c,southIndices:l});u=p,f=d}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:h},schema:void 0,topology:"triangle-list",mode:4,indices:{value:f,size:1},attributes:u}}function k2(t,e,r){let{minHeight:n,maxHeight:o}=e,[s,i,a,c]=r||[0,0,1,1],l=a-s,f=c-i,u=o-n,h=t.length/3,p=new Float32Array(h*3),d=new Float32Array(h*2);for(let m=0;m<h;m++){let b=t[m]/32767,x=t[m+h]/32767,y=t[m+h*2]/32767;p[3*m+0]=b*l+s,p[3*m+1]=x*f+i,p[3*m+2]=y*u+n,d[2*m+0]=b,d[2*m+1]=x}return{POSITION:{value:p,size:3},TEXCOORD_0:{value:d,size:2}}}var To=class{constructor(e=257){this.gridSize=e;let r=e-1;if(r&r-1)throw new Error(`Expected grid size to be 2^n+1, got ${e}.`);this.numTriangles=r*r*2-2,this.numParentTriangles=this.numTriangles-r*r,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(this.numTriangles*4);for(let n=0;n<this.numTriangles;n++){let o=n+2,s=0,i=0,a=0,c=0,l=0,f=0;for(o&1?a=c=l=r:s=i=f=r;(o>>=1)>1;){let h=s+a>>1,p=i+c>>1;o&1?(a=s,c=i,s=l,i=f):(s=a,i=c,a=l,c=f),l=h,f=p}let u=n*4;this.coords[u+0]=s,this.coords[u+1]=i,this.coords[u+2]=a,this.coords[u+3]=c}}createTile(e){return new of(e,this)}},of=class{constructor(e,r){let n=r.gridSize;if(e.length!==n*n)throw new Error(`Expected terrain data of length ${n*n} (${n} x ${n}), got ${e.length}.`);this.terrain=e,this.martini=r,this.errors=new Float32Array(e.length),this.update()}update(){let{numTriangles:e,numParentTriangles:r,coords:n,gridSize:o}=this.martini,{terrain:s,errors:i}=this;for(let a=e-1;a>=0;a--){let c=a*4,l=n[c+0],f=n[c+1],u=n[c+2],h=n[c+3],p=l+u>>1,d=f+h>>1,m=p+d-f,b=d+l-p,x=(s[f*o+l]+s[h*o+u])/2,y=d*o+p,_=Math.abs(x-s[y]);if(i[y]=Math.max(i[y],_),a<r){let T=(f+b>>1)*o+(l+m>>1),M=(h+b>>1)*o+(u+m>>1);i[y]=Math.max(i[y],i[T],i[M])}}}getMesh(e=0){let{gridSize:r,indices:n}=this.martini,{errors:o}=this,s=0,i=0,a=r-1;n.fill(0);function c(p,d,m,b,x,y){let _=p+m>>1,T=d+b>>1;Math.abs(p-x)+Math.abs(d-y)>1&&o[T*r+_]>e?(c(x,y,p,d,_,T),c(m,b,x,y,_,T)):(n[d*r+p]=n[d*r+p]||++s,n[b*r+m]=n[b*r+m]||++s,n[y*r+x]=n[y*r+x]||++s,i++)}c(0,0,a,a,a,0),c(a,a,0,0,0,a);let l=new Uint16Array(s*2),f=new Uint32Array(i*3),u=0;function h(p,d,m,b,x,y){let _=p+m>>1,T=d+b>>1;if(Math.abs(p-x)+Math.abs(d-y)>1&&o[T*r+_]>e)h(x,y,p,d,_,T),h(m,b,x,y,_,T);else{let M=n[d*r+p]-1,E=n[b*r+m]-1,I=n[y*r+x]-1;l[2*M]=p,l[2*M+1]=d,l[2*E]=m,l[2*E+1]=b,l[2*I]=x,l[2*I+1]=y,f[u++]=M,f[u++]=E,f[u++]=I}}return h(0,0,a,a,a,0),h(a,a,0,0,0,a),{vertices:l,triangles:f}}};var yo=class{constructor(e,r,n=r){this.data=e,this.width=r,this.height=n,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;let o=r-1,s=n-1,i=this._addPoint(0,0),a=this._addPoint(o,0),c=this._addPoint(0,s),l=this._addPoint(o,s),f=this._addTriangle(l,i,c,-1,-1,-1);this._addTriangle(i,l,a,f,-1,-1),this._flush()}run(e=1){for(;this.getMaxError()>e;)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,r){return this.data[this.width*r+e]}_flush(){let e=this.coords;for(let r=0;r<this._pendingLen;r++){let n=this._pending[r],o=2*this.triangles[n*3+0],s=2*this.triangles[n*3+1],i=2*this.triangles[n*3+2];this._findCandidate(e[o],e[o+1],e[s],e[s+1],e[i],e[i+1],n)}this._pendingLen=0}_findCandidate(e,r,n,o,s,i,a){let c=Math.min(e,n,s),l=Math.min(r,o,i),f=Math.max(e,n,s),u=Math.max(r,o,i),h=xr(n,o,s,i,c,l),p=xr(s,i,e,r,c,l),d=xr(e,r,n,o,c,l),m=o-r,b=e-n,x=i-o,y=n-s,_=r-i,T=s-e,M=xr(e,r,n,o,s,i),E=this.heightAt(e,r)/M,I=this.heightAt(n,o)/M,C=this.heightAt(s,i)/M,A=0,g=0,B=0,w=0;for(let L=l;L<=u;L++){let R=0;h<0&&x!==0&&(R=Math.max(R,Math.floor(-h/x))),p<0&&_!==0&&(R=Math.max(R,Math.floor(-p/_))),d<0&&m!==0&&(R=Math.max(R,Math.floor(-d/m)));let O=h+x*R,H=p+_*R,U=d+m*R,Z=!1;for(let j=c+R;j<=f;j++){if(O>=0&&H>=0&&U>=0){Z=!0;let K=E*O+I*H+C*U,te=Math.abs(K-this.heightAt(j,L));w+=te*te,te>A&&(A=te,g=j,B=L)}else if(Z)break;O+=x,H+=_,U+=m}h+=y,p+=T,d+=b}(g===e&&B===r||g===n&&B===o||g===s&&B===i)&&(A=0),this._candidates[2*a]=g,this._candidates[2*a+1]=B,this._rms[a]=w,this._queuePush(a,A,w)}_step(){let e=this._queuePop(),r=e*3+0,n=e*3+1,o=e*3+2,s=this.triangles[r],i=this.triangles[n],a=this.triangles[o],c=this.coords[2*s],l=this.coords[2*s+1],f=this.coords[2*i],u=this.coords[2*i+1],h=this.coords[2*a],p=this.coords[2*a+1],d=this._candidates[2*e],m=this._candidates[2*e+1],b=this._addPoint(d,m);if(xr(c,l,f,u,d,m)===0)this._handleCollinear(b,r);else if(xr(f,u,h,p,d,m)===0)this._handleCollinear(b,n);else if(xr(h,p,c,l,d,m)===0)this._handleCollinear(b,o);else{let x=this._halfedges[r],y=this._halfedges[n],_=this._halfedges[o],T=this._addTriangle(s,i,b,x,-1,-1,r),M=this._addTriangle(i,a,b,y,-1,T+1),E=this._addTriangle(a,s,b,_,T+2,M+1);this._legalize(T),this._legalize(M),this._legalize(E)}}_addPoint(e,r){let n=this.coords.length>>1;return this.coords.push(e,r),n}_addTriangle(e,r,n,o,s,i,a=this.triangles.length){let c=a/3;return this.triangles[a+0]=e,this.triangles[a+1]=r,this.triangles[a+2]=n,this._halfedges[a+0]=o,this._halfedges[a+1]=s,this._halfedges[a+2]=i,o>=0&&(this._halfedges[o]=a+0),s>=0&&(this._halfedges[s]=a+1),i>=0&&(this._halfedges[i]=a+2),this._candidates[2*c+0]=0,this._candidates[2*c+1]=0,this._queueIndices[c]=-1,this._rms[c]=0,this._pending[this._pendingLen++]=c,a}_legalize(e){let r=this._halfedges[e];if(r<0)return;let n=e-e%3,o=r-r%3,s=n+(e+1)%3,i=n+(e+2)%3,a=o+(r+2)%3,c=o+(r+1)%3,l=this.triangles[i],f=this.triangles[e],u=this.triangles[s],h=this.triangles[a],p=this.coords;if(!z2(p[2*l],p[2*l+1],p[2*f],p[2*f+1],p[2*u],p[2*u+1],p[2*h],p[2*h+1]))return;let d=this._halfedges[s],m=this._halfedges[i],b=this._halfedges[a],x=this._halfedges[c];this._queueRemove(n/3),this._queueRemove(o/3);let y=this._addTriangle(l,h,u,-1,b,d,n),_=this._addTriangle(h,l,f,y,m,x,o);this._legalize(y+1),this._legalize(_+2)}_handleCollinear(e,r){let n=r-r%3,o=n+(r+1)%3,s=n+(r+2)%3,i=this.triangles[s],a=this.triangles[r],c=this.triangles[o],l=this._halfedges[o],f=this._halfedges[s],u=this._halfedges[r];if(u<0){let E=this._addTriangle(e,i,a,-1,f,-1,n),I=this._addTriangle(i,e,c,E,-1,l);this._legalize(E+1),this._legalize(I+2);return}let h=u-u%3,p=h+(u+2)%3,d=h+(u+1)%3,m=this.triangles[p],b=this._halfedges[p],x=this._halfedges[d];this._queueRemove(h/3);let y=this._addTriangle(i,a,e,f,-1,-1,n),_=this._addTriangle(a,m,e,x,-1,y+1,h),T=this._addTriangle(m,c,e,b,-1,_+1),M=this._addTriangle(c,i,e,l,y+2,T+1);this._legalize(y),this._legalize(_),this._legalize(T),this._legalize(M)}_queuePush(e,r,n){let o=this._queue.length;this._queueIndices[e]=o,this._queue.push(e),this._errors.push(r),this._rmsSum+=n,this._queueUp(o)}_queuePop(){let e=this._queue.length-1;return this._queueSwap(0,e),this._queueDown(0,e),this._queuePopBack()}_queuePopBack(){let e=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[e],this._queueIndices[e]=-1,e}_queueRemove(e){let r=this._queueIndices[e];if(r<0){let o=this._pending.indexOf(e);if(o!==-1)this._pending[o]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}let n=this._queue.length-1;n!==r&&(this._queueSwap(r,n),this._queueDown(r,n)||this._queueUp(r)),this._queuePopBack()}_queueLess(e,r){return this._errors[e]>this._errors[r]}_queueSwap(e,r){let n=this._queue[e],o=this._queue[r];this._queue[e]=o,this._queue[r]=n,this._queueIndices[n]=r,this._queueIndices[o]=e;let s=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=s}_queueUp(e){let r=e;for(;;){let n=r-1>>1;if(n===r||!this._queueLess(r,n))break;this._queueSwap(n,r),r=n}}_queueDown(e,r){let n=e;for(;;){let o=2*n+1;if(o>=r||o<0)break;let s=o+1,i=o;if(s<r&&this._queueLess(s,o)&&(i=s),!this._queueLess(i,n))break;this._queueSwap(n,i),n=i}return n>e}};function xr(t,e,r,n,o,s){return(r-o)*(e-s)-(n-s)*(t-o)}function z2(t,e,r,n,o,s,i,a){let c=t-i,l=e-a,f=r-i,u=n-a,h=o-i,p=s-a,d=c*c+l*l,m=f*f+u*u,b=h*h+p*p;return c*(u*b-m*p)-l*(f*b-m*h)+d*(f*p-u*h)<0}function G0(t,e){let{meshMaxError:r,bounds:n,elevationDecoder:o}=e,{data:s,width:i,height:a}=t,c,l;switch(e.tesselator){case"martini":c=Li(s,i,a,o,e.tesselator),l=U0(r,i,c);break;case"delatin":c=Li(s,i,a,o,e.tesselator),l=D0(r,i,a,c);break;default:i===a&&!(a&i-1)?(c=Li(s,i,a,o,"martini"),l=U0(r,i,c)):(c=Li(s,i,a,o,"delatin"),l=D0(r,i,a,c));break}let{vertices:f}=l,{triangles:u}=l,h=j2(f,c,i,a,n),p=hr(h);if(e.skirtHeight){let{attributes:d,triangles:m}=wi(h,u,e.skirtHeight);h=d,u=m}return{loaderData:{header:{}},header:{vertexCount:u.length,boundingBox:p},mode:4,indices:{value:Uint32Array.from(u),size:1},attributes:h}}function U0(t,e,r){let n=e+1,s=new To(n).createTile(r),{vertices:i,triangles:a}=s.getMesh(t);return{vertices:i,triangles:a}}function D0(t,e,r,n){let o=new yo(n,e+1,r+1);o.run(t);let{coords:s,triangles:i}=o;return{vertices:s,triangles:i}}function Li(t,e,r,n,o){let{rScaler:s,bScaler:i,gScaler:a,offset:c}=n,l=new Float32Array((e+1)*(r+1));for(let f=0,u=0;u<r;u++)for(let h=0;h<e;h++,f++){let p=f*4,d=t[p+0],m=t[p+1],b=t[p+2];l[f+u]=d*s+m*a+b*i+c}if(o==="martini"){for(let f=(e+1)*e,u=0;u<e;u++,f++)l[f]=l[f-e-1];for(let f=r,u=0;u<r+1;u++,f+=r+1)l[f]=l[f-1]}return l}function j2(t,e,r,n,o){let s=r+1,i=t.length/2,a=new Float32Array(i*3),c=new Float32Array(i*2),[l,f,u,h]=o||[0,0,r,n],p=(u-l)/r,d=(h-f)/n;for(let m=0;m<i;m++){let b=t[m*2],x=t[m*2+1],y=x*s+b;a[3*m+0]=b*p+l,a[3*m+1]=-x*d+h,a[3*m+2]=e[y],c[2*m+0]=b/r,c[2*m+1]=x/n}return{POSITION:{value:a,size:3},TEXCOORD_0:{value:c,size:2}}}var Fi="4.4.3";var Pi={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:Fi,worker:!0,extensions:["png","pngraw","jpg","jpeg","gif","webp","bmp"],mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp"],options:{terrain:{tesselator:"auto",bounds:void 0,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:void 0}}};var V0={dataType:null,batchType:null,name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:Fi,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var q2={...Pi,parse:J2};async function J2(t,e,r){let n={...e,core:{...e?.core,mimeType:"application/x.image"},image:{...e?.image,type:"data"}},o=await we(t,[],n,r),s={...q2.options.terrain,...e?.terrain};return G0(o,s)}var f6={...V0,parseSync:(t,e)=>nf(t,e?.["quantized-mesh"]),parse:async(t,e)=>nf(t,e?.["quantized-mesh"])};var H0=[1],k0=1,z0=1,Ni=90,Oi=180,W2={...ar.defaultProps,elevationData:Nt,texture:{...Nt,optional:!0},meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0,loaders:[Pi]};function j0(t){return Array.isArray(t)?t.join(";"):t||""}function X2(t,e,r){let n=(t[2]-t[0])/e*k0,o=(t[3]-t[1])/e*k0,s=[t[0]-n,t[1]-o,t[2]+n,t[3]+o];return r?[Math.max(s[0],-Oi),Math.max(s[1],-Ni),Math.min(s[2],Oi),Math.min(s[3],Ni)]:s}function K2(t){return!Number.isFinite(t)||t<=0?z0:Math.max(t,z0)}var So=class extends lt.CompositeLayer{updateState({props:e,oldProps:r}){let n=e.elevationData!==r.elevationData;if(n){let{elevationData:s}=e,i=s&&(Array.isArray(s)||Y2(s));this.setState({isTiled:i})}let o=n||e.meshMaxError!==r.meshMaxError||e.elevationDecoder!==r.elevationDecoder||e.bounds!==r.bounds;if(!this.state.isTiled&&o){let s=this.loadTerrain(e);this.setState({terrain:s})}e.workerUrl&&lt.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:r,elevationDecoder:n,meshMaxError:o,signal:s}){if(!e)return null;let i=K2(o),a=this.getLoadOptions();a={...a,terrain:{skirtHeight:this.state.isTiled?i*2:0,...a?.terrain,bounds:r,meshMaxError:i,elevationDecoder:n}};let{fetch:c}=this.props;return c(e,{propName:"elevationData",layer:this,loadOptions:a,signal:s})}getTiledTerrainData(e){let{elevationData:r,fetch:n,texture:o,elevationDecoder:s,meshMaxError:i}=this.props,{viewport:a}=this.context,c=it(r,e),l=o&&it(o,e),{signal:f}=e,u=[0,0],h=[0,0];if(a.isGeospatial){let x=e.bbox;u=a.projectFlat([x.west,x.south]),h=a.projectFlat([x.east,x.north])}else{let x=e.bbox;u=[x.left,x.bottom],h=[x.right,x.top]}let p=[u[0],u[1],h[0],h[1]],d=X2(p,this.props.tileSize,a instanceof lt._GlobeViewport),m=this.loadTerrain({elevationData:c,bounds:d,elevationDecoder:s,meshMaxError:i,signal:f}),b=l?n(l,{propName:"texture",layer:this,loaders:[],signal:f}).catch(x=>null):Promise.resolve(null);return Promise.all([m,b])}renderSubLayers(e){let r=this.getSubLayerClass("mesh",sf.SimpleMeshLayer),{color:n,wireframe:o,material:s}=this.props,{data:i}=e;if(!i)return null;let[a,c]=i,{viewport:l}=this.context,f=l instanceof lt._GlobeViewport,u=a?.header?.boundingBox,h=u&&u.every(([d,m])=>d>=-Oi&&d<=Oi&&m>=-Ni&&m<=Ni),p=f&&h?lt.COORDINATE_SYSTEM.LNGLAT:lt.COORDINATE_SYSTEM.CARTESIAN;return new r(e,{data:H0,mesh:a,texture:c,_instanced:!1,coordinateSystem:p,getPosition:d=>[0,0,0],getColor:n,wireframe:o,material:s})}onViewportLoad(e){if(!e)return;let{zRange:r}=this.state,n=e.map(i=>i.content).filter(Boolean).map(i=>i[0].header.boundingBox.map(c=>c[2]));if(n.length===0)return;let o=Math.min(...n.map(i=>i[0])),s=Math.max(...n.map(i=>i[1]));(!r||o<r[0]||s>r[1])&&this.setState({zRange:[o,s]})}renderLayers(){let{color:e,material:r,elevationData:n,texture:o,wireframe:s,meshMaxError:i,elevationDecoder:a,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:m,maxCacheSize:b,maxCacheByteSize:x,refinementStrategy:y,zoomOffset:_}=this.props;if(this.state.isTiled)return new ar(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:j0(n),texture:j0(o),meshMaxError:i,elevationDecoder:a,projectionMode:this.context.viewport.projectionMode,zoomOffset:_}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:m,maxCacheSize:b,maxCacheByteSize:x,refinementStrategy:y,zoomOffset:_});if(!n)return null;let T=this.getSubLayerClass("mesh",sf.SimpleMeshLayer);return new T(this.getSubLayerProps({id:"mesh"}),{data:H0,mesh:this.state.terrain,texture:o,_instanced:!1,getPosition:M=>[0,0,0],getColor:e,material:r,wireframe:s})}};So.defaultProps=W2;So.layerName="TerrainLayer";var q0=So,Y2=t=>t.includes("{x}")&&(t.includes("{y}")||t.includes("{-y}"));var Wi=D(ze(),1),_f=D(ke(),1),E1=D(W0(),1);function X0(t,e,r){switch(t.type){case"Point":return Z2(t,e,r);case"LineString":return Q2(t,e,r);case"Polygon":return K0(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function K0(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.polygonIndices.value.filter(c=>c>=e&&c<=r),s=t.primitivePolygonIndices.value.filter(c=>c>=e&&c<=r);if(!(o.length>2)){let c=[];for(let l=0;l<s.length-1;l++){let f=s[l],u=s[l+1],h=Ui(n,f,u);c.push(h)}return{type:"Polygon",coordinates:c}}let a=[];for(let c=0;c<o.length-1;c++){let l=o[c],f=o[c+1],u=K0(t,l,f).coordinates;a.push(u)}return{type:"MultiPolygon",coordinates:a}}function Q2(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(o.length>2))return{type:"LineString",coordinates:Ui(n,o[0],o[1])};let i=[];for(let a=0;a<o.length-1;a++){let c=Ui(n,o[a],o[a+1]);i.push(c)}return{type:"MultiLineString",coordinates:i}}function Z2(t,e,r){let{positions:n}=t,o=Ui(n,e,r);return o.length>1?{type:"MultiPoint",coordinates:o}:{type:"Point",coordinates:o[0]}}function Ui(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let o=e;o<r;o++){let s=Array();for(let i=o*t.size;i<(o+1)*t.size;i++)s.push(Number(t.value[i]));n.push(s)}return n}var _o={x:0,y:1,z:2};function Tr(t,e={}){let{start:r=0,end:n=t.length,plane:o="xy"}=e,s=e.size||2,i=0,a=_o[o[0]],c=_o[o[1]];for(let l=r,f=n-s;l<n;l+=s)i+=(t[l+a]-t[f+a])*(t[l+c]+t[f+c]),f=l;return i/2}function cf(t,e,r=2,n,o="xy"){let s=e&&e.length,i=s?e[0]*r:t.length,a=Q0(t,0,i,r,!0,n&&n[0],o),c=[];if(!a||a.next===a.prev)return c;let l,f,u,h,p,d,m;if(s&&(a=sB(t,e,a,r,n,o)),t.length>80*r){h=f=t[0],p=u=t[1];for(let b=r;b<i;b+=r)d=t[b],m=t[b+1],d<h&&(h=d),m<p&&(p=m),d>f&&(f=d),m>u&&(u=m);l=Math.max(f-h,u-p),l=l!==0?32767/l:0}return Co(a,c,r,h,p,l,0),c}function Q0(t,e,r,n,o,s,i){let a,c;s===void 0&&(s=Tr(t,{start:e,end:r,size:n,plane:i}));let l=_o[i[0]],f=_o[i[1]];if(o===s<0)for(a=e;a<r;a+=n)c=Y0(a,t[a+l],t[a+f],c);else for(a=r-n;a>=e;a-=n)c=Y0(a,t[a+l],t[a+f],c);return c&&Vi(c,c.next)&&(Mo(c),c=c.next),c}function yr(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(Vi(r,r.next)||ne(r.prev,r,r.next)===0)){if(Mo(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function Co(t,e,r,n,o,s,i){if(!t)return;!i&&s&&fB(t,n,o,s);let a=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,s?rB(t,n,o,s):tB(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),Mo(t),t=l.next,a=l.next;continue}if(t=l,t===a){i?i===1?(t=nB(yr(t),e,r),Co(t,e,r,n,o,s,2)):i===2&&oB(t,e,r,n,o,s):Co(yr(t),e,r,n,o,s,1);break}}}function tB(t){let e=t.prev,r=t,n=t.next;if(ne(e,r,n)>=0)return!1;let o=e.x,s=r.x,i=n.x,a=e.y,c=r.y,l=n.y,f=o<s?o<i?o:i:s<i?s:i,u=a<c?a<l?a:l:c<l?c:l,h=o>s?o>i?o:i:s>i?s:i,p=a>c?a>l?a:l:c>l?c:l,d=n.next;for(;d!==e;){if(d.x>=f&&d.x<=h&&d.y>=u&&d.y<=p&&hn(o,a,s,c,i,l,d.x,d.y)&&ne(d.prev,d,d.next)>=0)return!1;d=d.next}return!0}function rB(t,e,r,n){let o=t.prev,s=t,i=t.next;if(ne(o,s,i)>=0)return!1;let a=o.x,c=s.x,l=i.x,f=o.y,u=s.y,h=i.y,p=a<c?a<l?a:l:c<l?c:l,d=f<u?f<h?f:h:u<h?u:h,m=a>c?a>l?a:l:c>l?c:l,b=f>u?f>h?f:h:u>h?u:h,x=af(p,d,e,r,n),y=af(m,b,e,r,n),_=t.prevZ,T=t.nextZ;for(;_&&_.z>=x&&T&&T.z<=y;){if(_.x>=p&&_.x<=m&&_.y>=d&&_.y<=b&&_!==o&&_!==i&&hn(a,f,c,u,l,h,_.x,_.y)&&ne(_.prev,_,_.next)>=0||(_=_.prevZ,T.x>=p&&T.x<=m&&T.y>=d&&T.y<=b&&T!==o&&T!==i&&hn(a,f,c,u,l,h,T.x,T.y)&&ne(T.prev,T,T.next)>=0))return!1;T=T.nextZ}for(;_&&_.z>=x;){if(_.x>=p&&_.x<=m&&_.y>=d&&_.y<=b&&_!==o&&_!==i&&hn(a,f,c,u,l,h,_.x,_.y)&&ne(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;T&&T.z<=y;){if(T.x>=p&&T.x<=m&&T.y>=d&&T.y<=b&&T!==o&&T!==i&&hn(a,f,c,u,l,h,T.x,T.y)&&ne(T.prev,T,T.next)>=0)return!1;T=T.nextZ}return!0}function nB(t,e,r){let n=t;do{let o=n.prev,s=n.next.next;!Vi(o,s)&&Z0(o,n,n.next,s)&&Eo(o,s)&&Eo(s,o)&&(e.push(o.i/r|0),e.push(n.i/r|0),e.push(s.i/r|0),Mo(n),Mo(n.next),n=t=s),n=n.next}while(n!==t);return yr(n)}function oB(t,e,r,n,o,s){let i=t;do{let a=i.next.next;for(;a!==i.prev;){if(i.i!==a.i&&pB(i,a)){let c=$0(i,a);i=yr(i,i.next),c=yr(c,c.next),Co(i,e,r,n,o,s,0),Co(c,e,r,n,o,s,0);return}a=a.next}i=i.next}while(i!==t)}function sB(t,e,r,n,o,s){let i=[],a,c,l,f,u;for(a=0,c=e.length;a<c;a++)l=e[a]*n,f=a<c-1?e[a+1]*n:t.length,u=Q0(t,l,f,n,!1,o&&o[a+1],s),u===u.next&&(u.steiner=!0),i.push(hB(u));for(i.sort(iB),a=0;a<i.length;a++)r=aB(i[a],r);return r}function iB(t,e){return t.x-e.x}function aB(t,e){let r=cB(t,e);if(!r)return e;let n=$0(r,t);return yr(n,n.next),yr(r,r.next)}function cB(t,e){let r=e,n=t.x,o=t.y,s=-1/0,i;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){let h=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(h<=n&&h>s&&(s=h,i=r.x<r.next.x?r:r.next,h===n))return i}r=r.next}while(r!==e);if(!i)return null;let a=i,c=i.x,l=i.y,f=1/0,u;r=i;do n>=r.x&&r.x>=c&&n!==r.x&&hn(o<l?n:s,o,c,l,o<l?s:n,o,r.x,r.y)&&(u=Math.abs(o-r.y)/(n-r.x),Eo(r,t)&&(u<f||u===f&&(r.x>i.x||r.x===i.x&&lB(i,r)))&&(i=r,f=u)),r=r.next;while(r!==a);return i}function lB(t,e){return ne(t.prev,t,e.prev)<0&&ne(e.next,t,t.next)<0}function fB(t,e,r,n){let o=t;do o.z===0&&(o.z=af(o.x,o.y,e,r,n)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==t);o.prevZ.nextZ=null,o.prevZ=null,uB(o)}function uB(t){let e,r,n=1,o,s,i,a,c,l;do{for(s=t,t=null,l=null,o=0;s;){for(o++,a=s,i=0,r=0;r<n&&(i++,a=a.nextZ,!!a);r++);for(c=n;i>0||c>0&&a;)i!==0&&(c===0||!a||s.z<=a.z)?(e=s,s=s.nextZ,i--):(e=a,a=a.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;s=a}l.nextZ=null,n*=2}while(o>1);return t}function af(t,e,r,n,o){return t=(t-r)*o|0,e=(e-n)*o|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function hB(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function hn(t,e,r,n,o,s,i,a){return(o-i)*(e-a)>=(t-i)*(s-a)&&(t-i)*(n-a)>=(r-i)*(e-a)&&(r-i)*(s-a)>=(o-i)*(n-a)}function pB(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!dB(t,e)&&(Eo(t,e)&&Eo(e,t)&&mB(t,e)&&(ne(t.prev,t,e.prev)||ne(t,e.prev,e))||Vi(t,e)&&ne(t.prev,t,t.next)>0&&ne(e.prev,e,e.next)>0)}function ne(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Vi(t,e){return t.x===e.x&&t.y===e.y}function Z0(t,e,r,n){let o=Gi(ne(t,e,r)),s=Gi(ne(t,e,n)),i=Gi(ne(r,n,t)),a=Gi(ne(r,n,e));return!!(o!==s&&i!==a||o===0&&Di(t,r,e)||s===0&&Di(t,n,e)||i===0&&Di(r,t,n)||a===0&&Di(r,e,n))}function Di(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function Gi(t){return t>0?1:t<0?-1:0}function dB(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&Z0(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Eo(t,e){return ne(t.prev,t,t.next)<0?ne(t,e,t.next)>=0&&ne(t,t.prev,e)>=0:ne(t,e,t.prev)<0||ne(t,t.next,e)<0}function mB(t,e){let r=t,n=!1,o=(t.x+e.x)/2,s=(t.y+e.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&o<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function $0(t,e){let r=new Io(t.i,t.x,t.y),n=new Io(e.i,e.x,e.y),o=t.next,s=e.prev;return t.next=e,e.prev=t,r.next=o,o.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function Y0(t,e,r,n){let o=new Io(t,e,r);return n?(o.next=n.next,o.prev=n,n.next.prev=o,n.next=o):(o.prev=o,o.next=o),o}function Mo(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var Io=class{constructor(e,r,n){this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1,this.i=e,this.x=r,this.y=n}};function Hi(t,e,r){let n=TB(t),o=Object.keys(n).filter(s=>n[s]!==Array);return yB(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||o,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function TB(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let o=r.properties[n];e[n]=IB(o,e[n])}return e}function yB(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:o,linePositionsCount:s,linePathsCount:i,lineFeaturesCount:a,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:f,polygonFeaturesCount:u,propArrayTypes:h,coordLength:p}=e,{numericPropKeys:d=[],PositionDataType:m=Float32Array,triangulate:b=!0}=r,x=t[0]&&"id"in t[0],y=t.length>65535?Uint32Array:Uint16Array,_={type:"Point",positions:new m(n*p),globalFeatureIds:new y(n),featureIds:o>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},T={type:"LineString",pathIndices:s>65535?new Uint32Array(i+1):new Uint16Array(i+1),positions:new m(s*p),globalFeatureIds:new y(s),featureIds:a>65535?new Uint32Array(s):new Uint16Array(s),numericProps:{},properties:[],fields:[]},M={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new m(c*p),globalFeatureIds:new y(c),featureIds:u>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};b&&(M.triangles=[]);for(let I of[_,T,M])for(let C of d){let A=h[C];I.numericProps[C]=new A(I.positions.length/p)}T.pathIndices[i]=s,M.polygonIndices[l]=c,M.primitivePolygonIndices[f]=c;let E={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let I of t){let C=I.geometry,A=I.properties||{};switch(C.type){case"Point":SB(C,_,E,p,A),_.properties.push(ff(A,d)),x&&_.fields.push({id:I.id}),E.pointFeature++;break;case"LineString":_B(C,T,E,p,A),T.properties.push(ff(A,d)),x&&T.fields.push({id:I.id}),E.lineFeature++;break;case"Polygon":CB(C,M,E,p,A),M.properties.push(ff(A,d)),x&&M.fields.push({id:I.id}),E.polygonFeature++;break;default:throw new Error("Invalid geometry type")}E.feature++}return MB(_,T,M,p)}function SB(t,e,r,n,o){e.positions.set(t.data,r.pointPosition*n);let s=t.data.length/n;uf(e,o,r.pointPosition,s),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+s),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+s),r.pointPosition+=s}function _B(t,e,r,n,o){e.positions.set(t.data,r.linePosition*n);let s=t.data.length/n;uf(e,o,r.linePosition,s),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+s),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=t.indices[i],l=i===a-1?t.data.length:t.indices[i+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/n}}function CB(t,e,r,n,o){e.positions.set(t.data,r.polygonPosition*n);let s=t.data.length/n;uf(e,o,r.polygonPosition,s),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+s),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[i],f=t.indices[i],u=t.indices[i+1];for(let p=0,d=f.length;p<d;++p){let m=f[p],b=p===d-1?u===void 0?t.data.length:u[0]:f[p+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(b-m)/n}let h=r.polygonPosition;EB(e,l,f,{startPosition:c,endPosition:h,coordLength:n})}}function EB(t,e,r,{startPosition:n,endPosition:o,coordLength:s}){if(!t.triangles)return;let i=n*s,a=o*s,c=t.positions.subarray(i,a),l=r[0],f=r.slice(1).map(h=>(h-l)/s),u=cf(c,f,s,e);for(let h=0,p=u.length;h<p;++h)t.triangles.push(n+u[h])}function lf(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function MB(t,e,r,n){let o={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:lf(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:n},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:lf(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:lf(r.numericProps,1)}};return o.polygons&&r.triangles&&(o.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),o}function uf(t,e,r,n){for(let o in t.numericProps)if(o in e){let s=e[o];t.numericProps[o].fill(s,r,r+n)}}function ff(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function IB(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function Bo(t,e){let r=e?.globalFeatureId;return r!==void 0?BB(t,r):vB(t,e?.type)}function BB(t,e){let r=r1(t);for(let n of r){let o=0,s=n.featureIds.value[0];for(let i=0;i<n.featureIds.value.length;i++){let a=n.featureIds.value[i];if(a!==s){if(e===n.globalFeatureIds.value[o])return ki(n,o,i);o=i,s=a}}if(e===n.globalFeatureIds.value[o])return ki(n,o,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function vB(t,e){let r=r1(t,e);return RB(r)}function r1(t,e){let r=[];return t.points&&(t.points.type="Point",r.push(t.points)),t.lines&&(t.lines.type="LineString",r.push(t.lines)),t.polygons&&(t.polygons.type="Polygon",r.push(t.polygons)),r}function RB(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,o=r.featureIds.value[0];for(let s=0;s<r.featureIds.value.length;s++){let i=r.featureIds.value[s];i!==o&&(e.push(ki(r,n,s)),n=s,o=i)}e.push(ki(r,n,r.featureIds.value.length))}return e}function ki(t,e,r){let n=X0(t,e,r),o=LB(t,e,r),s=wB(t,e,r);return{type:"Feature",geometry:n,properties:o,...s}}function wB(t,e=0,r){return t.fields&&t.fields[t.featureIds.value[e]]}function LB(t,e=0,r){let n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let o in t.numericProps)n[o]=t.numericProps[o].value[e];return n}var bf=D(l1(),1);function YB(t){let e=0;for(let r=0,n=t.length-1,o,s;r<t.length;n=r++)o=t[r],s=t[n],e+=(s[0]-o[0])*(o[1]+s[1]);return e}function df(t,e){if(Array.isArray(t[0])){for(let n of t)df(n,e);return}let r=t;r[0]/=e,r[1]/=e}function f1(t,e){for(let r=0;r<t.length;++r)t[r]/=e}function mf(t,e,r){if(typeof t[0][0]!="number"){for(let i of t)mf(i,e,r);return}let n=r*Math.pow(2,e.z),o=r*e.x,s=r*e.y;for(let i=0;i<t.length;i++){let a=t[i];a[0]=(a[0]+o)*360/n-180;let c=180-(a[1]+s)*360/n;a[1]=360/Math.PI*Math.atan(Math.exp(c*Math.PI/180))-90}}function u1(t,e,r){let{x:n,y:o,z:s}=e,i=r*Math.pow(2,s),a=r*n,c=r*o;for(let l=0,f=t.length;l<f;l+=2){t[l]=(t[l]+a)*360/i-180;let u=180-(t[l+1]+c)*360/i;t[l+1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}function h1(t){let e=t.length;if(e<=1)return[t];let r=[],n,o;for(let s=0;s<e;s++){let i=YB(t[s]);i!==0&&(o===void 0&&(o=i<0),o===i<0?(n&&r.push(n),n=[t[s]]):n&&n.push(t[s]))}return n&&r.push(n),r}function p1(t){let e=t.indices.length,r="Polygon";if(e<=1)return{type:r,data:t.data,areas:[[Tr(t.data)]],indices:[t.indices]};let n=[],o=[],s=[],i=[],a,c=0;for(let l,f=0,u;f<e;f++){u=t.indices[f]-c,l=t.indices[f+1]-c||t.data.length;let h=t.data.slice(u,l),p=Tr(h);if(p===0){let d=t.data.slice(0,u),m=t.data.slice(l);t.data=d.concat(m),c+=l-u;continue}a===void 0&&(a=p<0),a===p<0?(i.length&&(n.push(s),o.push(i)),i=[u],s=[p]):(s.push(p),i.push(u))}return s&&n.push(s),i.length&&o.push(i),{type:r,areas:n,indices:o,data:t.data}}var mn=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;static types=["Unknown","Point","LineString","Polygon"];constructor(e,r,n,o,s,i){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=o,this._values=s,this._geometryInfo=i,e.readFields(QB,this,r)}toGeoJSONFeature(e,r){let n=this.loadGeometry();return e==="wgs84"?d1(this,n,o=>mf(o,r,this.extent)):d1(this,n,df)}toBinaryFeature(e,r){let n=this.loadFlatGeometry();return e==="wgs84"?this._toBinaryCoordinates(n,o=>u1(o,r,this.extent)):this._toBinaryCoordinates(n,f1)}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=1/0,c=-1/0,l=1/0,f=-1/0;for(;e.pos<r;){if(o<=0){let u=e.readVarint();n=u&7,o=u>>3}if(o--,n===1||n===2)s+=e.readSVarint(),i+=e.readSVarint(),s<a&&(a=s),s>c&&(c=s),i<l&&(l=i),i>f&&(f=i);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,l,c,f]}_toBinaryCoordinates(e,r){let n;r(e.data,this.extent);let o=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=e.indices.length,n={type:"Point",...e};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=e.indices.length,this._geometryInfo.linePositionsCount+=e.data.length/o,n={type:"LineString",...e};break;case 3:n=p1(e),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let i of n.indices)this._geometryInfo.polygonRingsCount+=i.length;this._geometryInfo.polygonPositionsCount+=n.data.length/o;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let s={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(s.id=this.id),s}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=[],c;for(;e.pos<r;){if(o<=0){let l=e.readVarint();n=l&7,o=l>>3}switch(o--,n){case 1:case 2:s+=e.readSVarint(),i+=e.readSVarint(),n===1&&(c&&a.push(c),c=[]),c&&c.push([s,i]);break;case 7:c&&c.push(c[0].slice());break;default:throw new Error(`unknown command ${n}`)}}return c&&a.push(c),a}loadFlatGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o,s=0,i=0,a=0,c=0,l=[],f=[];for(;e.pos<r;)if(s<=0&&(o=e.readVarint(),n=o&7,s=o>>3),s--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),n===1&&l.push(c),f.push(i,a),c+=2;else if(n===7){if(c>0){let u=l[l.length-1];f.push(f[u],f[u+1]),c+=2}}else throw new Error(`unknown command ${n}`);return{data:f,indices:l}}};function d1(t,e,r){let n=mn.types[t.type],o,s,i;switch(t.type){case 1:let c=[];for(o=0;o<e.length;o++)c[o]=e[o][0];i=c,r(i,t.extent);break;case 2:for(i=e,o=0;o<i.length;o++)r(i[o],t.extent);break;case 3:for(i=h1(e),o=0;o<i.length;o++)for(s=0;s<i[o].length;s++)r(i[o][s],t.extent);break;default:throw new Error("illegal vector tile type")}i.length===1?i=i[0]:n=`Multi${n}`;let a={type:"Feature",geometry:{type:n,coordinates:i},properties:t.properties};return t.id!==null&&(a.properties||={},a.properties.id=t.id),a}function QB(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?ZB(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function ZB(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],o=e._values[t.readVarint()];e.properties[n]=o}}var qi=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields($B,this,r),this.length=this._features.length}getGeoJSONFeature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new mn(this._pbf,r,this.extent,this._keys,this._values)}getBinaryFeature(e,r){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let n=this._pbf.readVarint()+this._pbf.pos;return new mn(this._pbf,n,this.extent,this._keys,this._values,r)}};function $B(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(ev(r)))}function ev(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var vo=class{layers;constructor(e,r){this.layers=e.readFields(tv,{},r)}};function tv(t,e,r){if(t===3&&r){let n=new qi(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function Af(t,e){let r=nv(e),n=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(n){case"columnar-table":return{shape:"columnar-table",data:gf(t,r)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:m1(t,r)};case"geojson":return m1(t,r);case"binary-geometry":return gf(t,r);case"binary":return gf(t,r);default:throw new Error(n||"undefined shape")}}function gf(t,e){let[r,n]=rv(t,e),o=Hi(r,n);return o.byteLength=t.byteLength,o}function rv(t,e){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,n];let o=new vo(new bf.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(o.layers)).forEach(i=>{let a=o.layers[i];if(a)for(let c=0;c<a.length;c++){let l=a.getBinaryFeature(c,n),f=sv(l,e,i);r.push(f)}}),[r,n]}function m1(t,e){if(t.byteLength<=0)return[];let r=[],n=new vo(new bf.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(s=>{let i=n.layers[s];if(i)for(let a=0;a<i.length;a++){let c=i.getGeoJSONFeature(a),l=ov(c,e,s);r.push(l)}}),r}function nv(t){if(!t?.mvt)throw new Error("mvt options required");if(t.mvt?.coordinates==="wgs84"&&!t.mvt.tileIndex)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.gis&&ic.warn('MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead')(),t.mvt}function ov(t,e,r){let n=t.toGeoJSONFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&(n.properties||={},n.properties[e.layerProperty]=r),n}function sv(t,e,r){let n=t.toBinaryFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}var g1={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],category:"geometry"};var iv="4.4.3",Ji={...g1,dataType:null,batchType:null,version:iv,worker:!0,options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}},av={...Ji,parse:async(t,e)=>Af(t,e),parseSync:Af,binary:!0};var cv={Point:b1,MultiPoint:lv,LineString:A1,MultiLineString:fv,Polygon:x1,MultiPolygon:uv};function b1([t,e],[r,n],o){let s=Et(r[0],n[0],t),i=Et(r[1],n[1],e);return o.unprojectFlat([s,i])}function xf(t,e,r){return t.map(n=>b1(n,e,r))}function lv(t,e,r){return xf(t,e,r)}function A1(t,e,r){return xf(t,e,r)}function fv(t,e,r){return t.map(n=>A1(n,e,r))}function x1(t,e,r){return t.map(n=>xf(n,e,r))}function uv(t,e,r){return t.map(n=>x1(n,e,r))}function T1(t,e,r){let n=r.projectFlat([e.west,e.north]),o=r.projectFlat([e.east,e.south]),s=[n,o];return{...t,coordinates:cv[t.type](t.coordinates,s,r)}}var hv=["points","lines","polygons"];function Tf(t,e,r,n){for(let o of hv){let s=t[o]&&pv(t[o],e,r,n);if(s>=0)return s}return-1}function pv(t,e,r,n){let o=t.featureIds.value;if(!o.length)return-1;let s=0,i=o[o.length-1]+1;if(n){let c=dv(t,n);if(c)s=c[0],i=c[1]+1;else return-1}let a=-1;if(e in t.numericProps){let c=t.numericProps[e].value.findIndex((l,f)=>l===r&&o[f]>=s&&o[f]<i);return c>=0?t.globalFeatureIds.value[c]:-1}else e?a=y1(t.properties,c=>c[e]===r,s,i):t.fields&&(a=y1(t.fields,c=>c.id===r,s,i));return a>=0?mv(t,a):-1}function dv(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let o=0;o<n.length;o++){let{layerName:s}=n[o];s&&(r[s]?r[s][1]=o:r[s]=[o,o])}t.__layers=r}return t.__layers[e]}function mv(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,o=t.globalFeatureIds.value;for(let s=0;s<n.length;s++)r[n[s]]=o[s];t.__ids=r}return t.__ids[e]}function y1(t,e,r,n){for(let o=r;o<n;o++)if(e(t[o],o))return o;return-1}var yf=512,gv={..._f.GeoJsonLayer.defaultProps,data:Nt,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[Ji],binary:!0},Ro=class extends ar{initializeState(){super.initializeState();let e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return!!(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:r,context:n,changeFlags:o}){o.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:o}),this._setWGS84PropertyForTiles());let{highlightColor:s}=e;s!==r.highlightColor&&Array.isArray(s)&&this.setState({highlightColor:s})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!Pc(e)){let{onDataLoad:n,fetch:o}=this.props;this.setState({data:null,tileJSON:null});try{r=await o(e,{propName:"data",layer:this,loaders:[]})}catch(s){this.raiseError(s,"loading TileJSON"),e=null}n&&n(r,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(r=e);r&&(e=r.tiles),this.setState({data:e,tileJSON:r})}_getTilesetOptions(){let e=super._getTilesetOptions(),r=this.state.tileJSON,{minZoom:n,maxZoom:o}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(o)||r.maxzoom<o)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:o,signal:s}=e,i=it(r,e);if(!i)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:c}=this.props;return a={...a,core:{...a?.core,mimeType:"application/x-protobuf"},mvt:{...a?.mvt,shape:n?"binary":"geojson",coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:o}},c(i,{propName:"data",layer:this,loadOptions:a,signal:s})}renderSubLayers(e){let{x:r,y:n,z:o}=e.tile.index,s=Math.pow(2,o),i=yf/s,a=-i,c=yf*r/s,l=yf*(1-n/s),f=new P().scale([i,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=f,e.coordinateOrigin=[c,l,0],e.coordinateSystem=Wi.COORDINATE_SYSTEM.CARTESIAN,e.extensions=[...e.extensions||[],new E1.ClipExtension]);let u=super.renderSubLayers(e);return this.state.binary&&!(u instanceof _f.GeoJsonLayer)&&Wi.log.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),u}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:o}=this.state,s=e.object,i=null,a=null;s&&(i=Sf(s,r),a=S1(s));let{highlightColor:c}=this.props;typeof c=="function"&&(c=c(e)),(n!==i||o!==a)&&this.setState({highlightColor:c,hoveredFeatureId:i,hoveredFeatureLayerName:a})}_isWGS84(){return!!this.context.viewport.resolution}getPickingInfo(e){let r=super.getPickingInfo(e);if(this.state.binary&&r.index!==-1){let{data:n}=e.sourceLayer.props;r.object=Bo(n,{globalFeatureId:r.index})}return r.object&&!this._isWGS84()&&(r.object=C1(r.object,r.tile.bbox,this.context.viewport)),r}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:r,hoveredFeatureLayerName:n,binary:o}=this.state,{uniqueIdProperty:s,highlightedFeatureId:i}=this.props,a=e.content,c=_1(i);if(!(_1(r)||c))return-1;let f=c?i:r;return Array.isArray(a)?a.findIndex(u=>{let h=Sf(u,s)===f,p=c||S1(u)===n;return h&&p}):a&&o?Tf(a,s,f,c?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,o=n.width,s=n.height,i=n.x,a=n.y,c=[this.id];return r.pickObjects({x:i,y:a,width:o,height:s,layerIds:c,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,o=[];for(let s of r){let i=Sf(s.object,this.props.uniqueIdProperty);i===void 0?o.push(s.object):n.has(i)||(n.add(i),o.push(s.object))}return o}_setWGS84PropertyForTiles(){let e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];let{bbox:o}=n;if(n._contentWGS84===void 0&&Nc(o)){let s=this.state.binary?Bo(n.content):n.content;n._contentWGS84=s.map(i=>C1(i,o,this.context.viewport))}return n._contentWGS84}})})}};Ro.layerName="MVTLayer";Ro.defaultProps=gv;var M1=Ro;function Sf(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function S1(t){return t.properties?.layerName||null}function _1(t){return t!=null&&t!==""}function C1(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>T1(t.geometry,e,r).coordinates}),n}var I1="0123456789bcdefghjkmnpqrstuvwxyz",B1={};for(let t=0;t<I1.length;t++)B1[I1.charAt(t)]=t;var bv=-90,Av=90,xv=-180,Tv=180;function yv(t){let e=!0,r=Av,n=bv,o=Tv,s=xv,i,a=0;for(let c=0,l=t.length;c<l;c++){let f=t[c].toLowerCase();a=B1[f];for(let u=4;u>=0;u--){let h=a>>u&1;e?(i=(o+s)/2,h===1?s=i:o=i):(i=(r+n)/2,h===1?n=i:r=i),e=!e}}return[n,s,r,o]}function v1(t){let[e,r,n,o]=yv(t);return[o,n,o,e,r,e,r,n,o,n]}var Sv={getGeohash:{type:"accessor",value:t=>t.geohash}},wo=class extends Fe{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>v1(r(n,o))}}};wo.layerName="GeohashLayer";wo.defaultProps=Sv;var R1=wo;return O1(Lo);})();
3847
+ `;function iC(t){let e=t.positions||t.POSITION,r=e.value.length/e.size;t.COLOR_0||t.colors||(t.colors={size:4,value:new Uint8Array(r*4).fill(255),normalized:!0})}var aC={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},oo=class extends dm.SimpleMeshLayer{getShaders(){let e=super.getShaders();return{...e,vs:fm,fs:um,source:hm,modules:[...e.modules,lm,cm]}}initializeState(){let{featureIds:e}=this.props;super.initializeState();let r=this.getAttributeManager();e&&r.add({rowIndexes:{type:"uint32",size:1,noAlloc:!0,update:this.calculateFeatureIdsPickingIndexes}})}updateState(e){super.updateState(e);let{props:r,oldProps:n}=e;r.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(r.pbrMaterial)}draw(e){let{featureIds:r}=this.props,{model:n}=this.state;if(!n)return;let o={pickFeatureIds:!!r},s={camera:this.context.viewport.cameraPosition};n.shaderInputs.setProps({pbrProjection:s,mesh:o}),super.draw(e)}getModel(e){let{id:r}=this.props,n=this.parseMaterial(this.props.pbrMaterial,e);this.setState({parsedPBRMaterial:n});let o=this.getShaders();return iC(e.attributes),new pm.Model(this.context.device,{...this.getShaders(),id:r,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...o.defines,...n?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0,HAS_FEATURE_IDS:this.props.featureIds?1:0},parameters:n?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){let{model:r}=this.state;if(r){let{mesh:n}=this.props,o=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:o});let{pbr_baseColorSampler:s}=o.bindings,{emptyTexture:i}=this.state,a=s||i,c={...this.context.device.type==="webgpu"?{simpleMeshTexture:a}:{sampler:a},hasTexture:!!s},{camera:l,...f}={...o.bindings,...o.uniforms};r.shaderInputs.setProps({simpleMesh:c,pbrMaterial:f})}}parseMaterial(e,r){let n=!!(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return Hc(this.context.device,{unlit:n,...e},{NORMAL:r.attributes.normals,TEXCOORD_0:r.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingIndexes(e){let r=this.props.featureIds;e.value=new Uint32Array(r)}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(r=>r.destroy()),this.setState({parsedPBRMaterial:null})}};oo.layerName="MeshLayer";oo.defaultProps=aC;var mm=oo;var N0=D(Xt(),1);var xt=6356752314245179e-9,cC={radii:[6378137,6378137,xt],radiiSquared:[6378137*6378137,6378137*6378137,xt*xt],oneOverRadii:[1/6378137,1/6378137,1/xt],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(xt*xt)],maximumRadius:Math.max(6378137,6378137,xt),centerToleranceSquared:.1};function Js(t){return t}var GD=new S;function lC(t,e=[],r=Js){return"longitude"in t?(e[0]=r(t.longitude),e[1]=r(t.latitude),e[2]=t.height):"x"in t?(e[0]=r(t.x),e[1]=r(t.y),e[2]=t.z):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function gm(t,e=[]){return lC(t,e,Q._cartographicRadians?Js:pa)}function fC(t,e,r=Js){return"longitude"in e?(e.longitude=r(t[0]),e.latitude=r(t[1]),e.height=t[2]):"x"in e?(e.x=r(t[0]),e.y=r(t[1]),e.z=t[2]):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function bm(t,e){return fC(t,e,Q._cartographicRadians?Js:da)}var Am=1e-14,uC=new S,xm={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"}},kc={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},so={east:new S,north:new S,up:new S,west:new S,south:new S,down:new S},hC=new S,pC=new S,dC=new S;function zc(t,e,r,n,o,s){let i=xm[e]&&xm[e][r];fe(i&&(!n||n===i));let a,c,l,f=uC.copy(o);if(xe(f.x,0,Am)&&xe(f.y,0,Am)){let h=Math.sign(f.z);a=hC.fromArray(kc[e]),e!=="east"&&e!=="west"&&a.scale(h),c=pC.fromArray(kc[r]),r!=="east"&&r!=="west"&&c.scale(h),l=dC.fromArray(kc[n]),n!=="east"&&n!=="west"&&l.scale(h)}else{let{up:h,east:p,north:d}=so;p.set(-f.y,f.x,0).normalize(),t.geodeticSurfaceNormal(f,h),d.copy(h).cross(p);let{down:m,west:b,south:x}=so;m.copy(h).scale(-1),b.copy(p).scale(-1),x.copy(d).scale(-1),a=so[e],c=so[r],l=so[n]}return s[0]=a.x,s[1]=a.y,s[2]=a.z,s[3]=0,s[4]=c.x,s[5]=c.y,s[6]=c.z,s[7]=0,s[8]=l.x,s[9]=l.y,s[10]=l.z,s[11]=0,s[12]=f.x,s[13]=f.y,s[14]=f.z,s[15]=1,s}var Jr=new S,mC=new S,gC=new S;function Tm(t,e,r=[]){let{oneOverRadii:n,oneOverRadiiSquared:o,centerToleranceSquared:s}=e;Jr.from(t);let i=Jr.x,a=Jr.y,c=Jr.z,l=n.x,f=n.y,u=n.z,h=i*i*l*l,p=a*a*f*f,d=c*c*u*u,m=h+p+d,b=Math.sqrt(1/m);if(!Number.isFinite(b))return;let x=mC;if(x.copy(t).scale(b),m<s)return x.to(r);let y=o.x,_=o.y,T=o.z,M=gC;M.set(x.x*y*2,x.y*_*2,x.z*T*2);let E=(1-b)*Jr.len()/(.5*M.len()),I=0,C,A,g,B;do{E-=I,C=1/(1+E*y),A=1/(1+E*_),g=1/(1+E*T);let w=C*C,L=A*A,R=g*g,O=w*C,H=L*A,U=R*g;B=h*w+p*L+d*R-1;let j=-2*(h*O*y+p*H*_+d*U*T);I=B/j}while(Math.abs(B)>Je.EPSILON12);return Jr.scale([C,A,g]).to(r)}var Ws=new S,ym=new S,xC=new S,Ye=new S,TC=new S,Xs=new S,G=class{constructor(e=0,r=0,n=0){this.centerToleranceSquared=Je.EPSILON1,fe(e>=0),fe(r>=0),fe(n>=0),this.radii=new S(e,r,n),this.radiiSquared=new S(e*e,r*r,n*n),this.radiiToTheFourth=new S(e*e*e*e,r*r*r*r,n*n*n*n),this.oneOverRadii=new S(e===0?0:1/e,r===0?0:1/r,n===0?0:1/n),this.oneOverRadiiSquared=new S(e===0?0:1/(e*e),r===0?0:1/(r*r),n===0?0:1/(n*n)),this.minimumRadius=Math.min(e,r,n),this.maximumRadius=Math.max(e,r,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||!!(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,r=[0,0,0]){let n=ym,o=xC,[,,s]=e;this.geodeticSurfaceNormalCartographic(e,n),o.copy(this.radiiSquared).scale(n);let i=Math.sqrt(n.dot(o));return o.scale(1/i),n.scale(s),o.add(n),o.to(r)}cartesianToCartographic(e,r=[0,0,0]){Xs.from(e);let n=this.scaleToGeodeticSurface(Xs,Ye);if(!n)return;let o=this.geodeticSurfaceNormal(n,ym),s=TC;s.copy(Xs).subtract(n);let i=Math.atan2(o.y,o.x),a=Math.asin(o.z),c=Math.sign(Br.dot(s,Xs))*Br.length(s);return bm([i,a,c],r)}eastNorthUpToFixedFrame(e,r=new P){return zc(this,"east","north","up",e,r)}localFrameToFixedFrame(e,r,n,o,s=new P){return zc(this,e,r,n,o,s)}geocentricSurfaceNormal(e,r=[0,0,0]){return Ws.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let n=gm(e),o=n[0],s=n[1],i=Math.cos(s);return Ws.set(i*Math.cos(o),i*Math.sin(o),Math.sin(s)).normalize(),Ws.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return Ws.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return Tm(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){Ye.from(e);let n=Ye.x,o=Ye.y,s=Ye.z,i=this.oneOverRadiiSquared,a=1/Math.sqrt(n*n*i.x+o*o*i.y+s*s*i.z);return Ye.multiplyScalar(a).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return Ye.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return Ye.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,n=[0,0,0]){fe(xe(this.radii.x,this.radii.y,Je.EPSILON15)),fe(this.radii.z>0),Ye.from(e);let o=Ye.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(o)>=this.radii.z-r))return Ye.set(0,0,o).to(n)}};G.WGS84=new G(6378137,6378137,xt);var Ks=class{item;previous;next;constructor(e,r,n){this.item=e,this.previous=r,this.next=n}};var Ys=class{head=null;tail=null;_length=0;get length(){return this._length}add(e){let r=new Ks(e,this.tail,null);return this.tail?(this.tail.next=r,this.tail=r):(this.head=r,this.tail=r),++this._length,r}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,r){e!==r&&(this.remove(r),this._insert(e,r))}_insert(e,r){let n=e.next;e.next=r,this.tail===e?this.tail=r:n.previous=r,r.next=n,r.previous=e,++this._length}};var Qs=class{_list;_sentinel;_trimTiles;constructor(){this._list=new Ys,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){let r=e._cacheNode;r&&this._list.splice(this._sentinel,r)}add(e,r,n){r._cacheNode||(r._cacheNode=this._list.add(r),n&&n(e,r))}unloadTile(e,r,n){let o=r._cacheNode;o&&(this._list.remove(o),r._cacheNode=null,n&&n(e,r))}unloadTiles(e,r){let n=this._trimTiles;this._trimTiles=!1;let o=this._list,s=e.maximumMemoryUsage*1024*1024,i=this._sentinel,a=o.head;for(;a!==i&&(e.gpuMemoryUsageInBytes>s||n);){let c=a.item;a=a.next,this.unloadTile(e,c,r)}}trim(){this._trimTiles=!0}};function Sm(t,e){k(t),k(e);let{rtcCenter:r,gltfUpAxis:n}=e,{computedTransform:o,boundingVolume:{center:s}}=t,i=new P(o);switch(r&&i.translate(r),n){case"Z":break;case"Y":let h=new P().rotateX(Math.PI/2);i=i.multiplyRight(h);break;case"X":let p=new P().rotateY(-Math.PI/2);i=i.multiplyRight(p);break;default:break}e.isQuantized&&i.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let a=new S(s);e.cartesianModelMatrix=i,e.cartesianOrigin=a;let c=G.WGS84.cartesianToCartographic(a,new S),f=G.WGS84.eastNorthUpToFixedFrame(a).invert();e.cartographicModelMatrix=f.multiplyRight(i),e.cartographicOrigin=c;let u=SC(e);u&&(e.cartesianModelMatrix=new P(i).multiplyRight(u.matrix),e.cartographicModelMatrix.multiplyRight(u.matrix),u.matrix=P.IDENTITY),e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var yC=1e6**2;function SC(t){let e=t.gltf;if(!e)return null;let r=typeof e.scene=="number"?e.scene:0,o=e.scenes?.[r]?.nodes?.[0];if(!o?.matrix)return null;let s=o.matrix;return s[12]*s[12]+s[13]*s[13]+s[14]*s[14]<=yC?null:o}var _m=new S,jc=new S,qc=new ye([new de,new de,new de,new de,new de,new de]);function Em(t,e){let{cameraDirection:r,cameraUp:n,height:o}=t,{metersPerUnit:s}=t.distanceScales,i=Zs(t,t.center),a=G.WGS84.eastNorthUpToFixedFrame(i),c=t.unprojectPosition(t.cameraPosition),l=G.WGS84.cartographicToCartesian(c,new S),f=new S(a.transformAsVector(new S(r).scale(s))).normalize(),u=new S(a.transformAsVector(new S(n).scale(s))).normalize();_C(t);let h=t.constructor,{longitude:p,latitude:d,width:m,bearing:b,zoom:x}=t,y=new h({longitude:p,latitude:d,height:o,width:m,bearing:b,zoom:x,pitch:0});return{camera:{position:l,direction:f,up:u},viewport:t,topDownViewport:y,height:o,cullingVolume:qc,frameNumber:e,sseDenominator:1.15}}function Mm(t,e,r){if(r===0||t.length<=r)return[t,[]];let n=[],{longitude:o,latitude:s}=e.viewport;for(let[l,f]of t.entries()){let[u,h]=f.header.mbs,p=Math.abs(o-u),d=Math.abs(s-h),m=Math.sqrt(d*d+p*p);n.push([l,m])}let i=n.sort((l,f)=>l[1]-f[1]),a=[];for(let l=0;l<r;l++)a.push(t[i[l][0]]);let c=[];for(let l=r;l<i.length;l++)c.push(t[i[l][0]]);return[a,c]}function _C(t){let e=t.getFrustumPlanes(),r=Cm(e.near,t.cameraPosition),n=Zs(t,r),o=Zs(t,t.cameraPosition,jc),s=0;qc.planes[s++].fromPointNormal(n,_m.copy(n).subtract(o));for(let i in e){if(i==="near")continue;let a=e[i],c=Cm(a,r,jc),l=Zs(t,c,jc);qc.planes[s++].fromPointNormal(l,_m.copy(n).subtract(l))}}function Cm(t,e,r=new S){let n=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-n).add(e),r}function Zs(t,e,r=new S){let n=t.unprojectPosition(e);return G.WGS84.cartographicToCartesian(n,r)}var CC=6378137,EC=6378137,Jc=6356752314245179e-9,Wr=new S;function Im(t,e){if(t instanceof bt){let{halfAxes:r}=t,n=MC(r);return Math.log2(Jc/(n+e[2]))}else if(t instanceof st){let{radius:r}=t;return Math.log2(Jc/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:n}=t,o=Math.log2(CC/r),s=Math.log2(EC/n);return(o+s)/2}return 1}function Wc(t,e,r){G.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],Wr);let n=Math.sqrt(Math.pow(Wr[0]-r[0],2)+Math.pow(Wr[1]-r[1],2)+Math.pow(Wr[2]-r[2],2));return Math.log2(Jc/(n+e[2]))}function Bm(t,e,r){let[n,o,s,i]=t;return Wc({xmin:n,xmax:s,ymin:o,ymax:i,zmin:0,zmax:0},e,r)}function MC(t){t.getColumn(0,Wr);let e=t.getColumn(1),r=t.getColumn(2);return Wr.add(e).add(r).len()}var qm=D(Xt(),1);var Se={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},me;(function(t){t[t.ADD=1]="ADD",t[t.REPLACE=2]="REPLACE"})(me||(me={}));var De;(function(t){t.EMPTY="empty",t.SCENEGRAPH="scenegraph",t.POINTCLOUD="pointcloud",t.MESH="mesh"})(De||(De={}));var ue;(function(t){t.I3S="I3S",t.TILES3D="TILES3D"})(ue||(ue={}));var Tt;(function(t){t.GEOMETRIC_ERROR="geometricError",t.MAX_SCREEN_THRESHOLD="maxScreenThreshold"})(Tt||(Tt={}));var vm={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function Fm(t){return t!=null}var ge=new S,$s=new S,IC=new S,BC=new S,lr=new S,Rm=new S,wm=new S,Lm=new S;function ei(t,e,r){if(k(t,"3D Tile: boundingVolume must be defined"),t.box)return Nm(t.box,e,r);if(t.region)return RC(t.region);if(t.sphere)return vC(t.sphere,e,r);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function Pm(t,e){if(t.box)return wC(e);if(t.region){let[r,n,o,s,i,a]=t.region;return[[Re(r),Re(n),i],[Re(o),Re(s),a]]}if(t.sphere)return LC(e);throw new Error("Unkown boundingVolume type")}function Nm(t,e,r){let n=new S(t[0],t[1],t[2]);e.transform(n,n);let o=[];if(t.length===10){let l=t.slice(3,6),f=new tt;f.fromArray(t,6);let u=new S([1,0,0]),h=new S([0,1,0]),p=new S([0,0,1]);u.transformByQuaternion(f),u.scale(l[0]),h.transformByQuaternion(f),h.scale(l[1]),p.transformByQuaternion(f),p.scale(l[2]),o=[...u.toArray(),...h.toArray(),...p.toArray()]}else o=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let s=e.transformAsVector(o.slice(0,3)),i=e.transformAsVector(o.slice(3,6)),a=e.transformAsVector(o.slice(6,9)),c=new z([s[0],s[1],s[2],i[0],i[1],i[2],a[0],a[1],a[2]]);return Fm(r)?(r.center=n,r.halfAxes=c,r):new bt(n,c)}function vC(t,e,r){let n=new S(t[0],t[1],t[2]);e.transform(n,n);let o=e.getScale($s),s=Math.max(Math.max(o[0],o[1]),o[2]),i=t[3]*s;return Fm(r)?(r.center=n,r.radius=i,r):new st(n,i)}function RC(t){let[e,r,n,o,s,i]=t,a=G.WGS84.cartographicToCartesian([Re(e),Re(o),s],IC),c=G.WGS84.cartographicToCartesian([Re(n),Re(r),i],BC),l=new S().addVectors(a,c).multiplyByScalar(.5);return G.WGS84.cartesianToCartographic(l,lr),G.WGS84.cartographicToCartesian([Re(n),lr[1],lr[2]],Rm),G.WGS84.cartographicToCartesian([lr[0],Re(o),lr[2]],wm),G.WGS84.cartographicToCartesian([lr[0],lr[1],i],Lm),Nm([...l,...Rm.subtract(l),...wm.subtract(l),...Lm.subtract(l)],new P)}function wC(t){let e=Om(),{halfAxes:r}=t,n=new S(r.getColumn(0)),o=new S(r.getColumn(1)),s=new S(r.getColumn(2));for(let i=0;i<2;i++){for(let a=0;a<2;a++){for(let c=0;c<2;c++)ge.copy(t.center),ge.add(n),ge.add(o),ge.add(s),Um(e,ge),s.negate();o.negate()}n.negate()}return e}function LC(t){let e=Om(),{center:r,radius:n}=t,o=G.WGS84.scaleToGeodeticSurface(r,ge),s;o?s=G.WGS84.geodeticSurfaceNormal(o):s=new S(0,0,1);let i=new S(s[2],-s[1],0);i.len()>0?i.normalize():i=new S(0,1,0);let a=i.clone().cross(s);for(let c of[i,a,s]){$s.copy(c).scale(n);for(let l=0;l<2;l++)ge.copy(r),ge.add($s),Um(e,ge),$s.negate()}return e}function Om(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function Um(t,e){G.WGS84.cartesianToCartographic(e,ge),t[0][0]=Math.min(t[0][0],ge[0]),t[0][1]=Math.min(t[0][1],ge[1]),t[0][2]=Math.min(t[0][2],ge[2]),t[1][0]=Math.max(t[1][0],ge[0]),t[1][1]=Math.max(t[1][1],ge[1]),t[1][2]=Math.max(t[1][2],ge[2])}var EG=new S,MG=new S,IG=new P,BG=new S,vG=new S,RG=new S;function FC(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function PC(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,n=t.dynamicScreenSpaceErrorFactor;return FC(e,r)*n}return 0}function Dm(t,e,r){let n=t.tileset,o=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,s=r?o:t.lodMetricValue;if(s===0)return 0;let i=Math.max(t._distanceToCamera,1e-7),{height:a,sseDenominator:c}=e,{viewDistanceScale:l}=n.options,f=s*a*(l||1)/(i*c);return f-=PC(n,i),f}var Xc=new S,Gm=new S,Ut=new S,Vm=new S,NC=new S,Kc=new P,Hm=new P;function km(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return"DIG";let r=2*Yc(t,e);return r<2?"OUT":!t.header.children||r<=t.lodMetricValue?"DRAW":t.header.children?"DIG":"OUT"}function Yc(t,e){let{topDownViewport:r}=e,n=t.header.mbs[1],o=t.header.mbs[0],s=t.header.mbs[2],i=t.header.mbs[3],a=[...t.boundingVolume.center],c=r.unprojectPosition(r.cameraPosition);G.WGS84.cartographicToCartesian(c,Xc),Gm.copy(Xc).subtract(a).normalize(),G.WGS84.eastNorthUpToFixedFrame(a,Kc),Hm.copy(Kc).invert(),Ut.copy(Xc).transform(Hm);let l=Math.sqrt(Ut[0]*Ut[0]+Ut[1]*Ut[1]),f=l*l/Ut[2];Vm.copy([Ut[0],Ut[1],f]);let h=Vm.transform(Kc).subtract(a).normalize(),d=Gm.cross(h).normalize().scale(i).add(a),m=G.WGS84.cartesianToCartographic(d),b=r.project([o,n,s]),x=r.project(m);return NC.copy(b).subtract(x).magnitude()}function zm(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||"Y"}}var io=class{_map=new Map;_array;_length;constructor(e=0){this._array=new Array(e),this._length=e}get length(){return this._length}set length(e){this._length=e,e>this._array.length&&(this._array.length=e)}get values(){return this._array}get(e){return k(e<this._array.length),this._array[e]}set(e,r){k(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=r,this._map.set(r,e)}delete(e){let r=this._map.get(e);r>=0&&(this._array.splice(r,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){let r=this.length++;this._array[r]=e,this._map.set(e,r)}}pop(){let e=this._array[--this.length];return this._map.delete(e),e}reserve(e){k(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){k(e>=0),this.length=e}trim(e){e==null&&(e=this.length),this._array.length=e}reset(){this._array=[],this._map=new Map,this._length=0}find(e){return this._map.has(e)}};var OC={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},ct=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new io;_emptyTraversalStack=new io;_frameNumber=null;traversalFinished(e){return!0}constructor(e){this.options={...OC,...e}}traverse(e,r,n){this.root=e,this.options={...this.options,...n},this.reset(),this.updateTile(e,r),this._frameNumber=r.frameNumber,this.executeTraversal(e,r)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,r){let n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){let s=n.pop(),i=!1;this.canTraverse(s,r)&&(this.updateChildTiles(s,r),i=this.updateAndPushChildren(s,r,n,s.hasRenderContent?s._selectionDepth+1:s._selectionDepth));let a=s.parent,c=!!(!a||a._shouldRefine),l=!i;s.hasRenderContent?s.refine===me.ADD?(this.loadTile(s,r),this.selectTile(s,r)):s.refine===me.REPLACE&&(this.loadTile(s,r),l&&this.selectTile(s,r)):(this.emptyTiles[s.id]=s,this.loadTile(s,r),l&&this.selectTile(s,r)),this.touchTile(s,r),s._shouldRefine=i&&c}let o=new Date().getTime();(this.traversalFinished(r)||o-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=o,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let n=e.children;for(let o of n)this.updateTile(o,r)}updateAndPushChildren(e,r,n,o){let{loadSiblings:s,skipLevelOfDetail:i}=this.options,a=e.children;a.sort(this.compareDistanceToCamera.bind(this));let c=e.refine===me.REPLACE&&e.hasRenderContent&&!i,l=!1,f=!0;for(let u of a)if(u._selectionDepth=o,u.isVisibleAndInRequestVolume?(n.find(u)&&n.delete(u),n.push(u),l=!0):(c||s)&&(this.loadTile(u,r),this.touchTile(u,r)),c){let h;if(u._inRequestVolume?u.hasRenderContent?h=u.contentAvailable:h=this.executeEmptyTraversal(u,r):h=!1,f=f&&h,!f)return!1}return l||(f=!1),f}updateTile(e,r){this.updateTileVisibility(e,r)}selectTile(e,r){this.shouldSelectTile(e)&&(e._selectedFrame=r.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,r){this.shouldLoadTile(e)&&(e._requestedFrame=r.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,r){e.tileset._cache.touch(e),e._touchedFrame=r.frameNumber}canTraverse(e,r){return e.hasChildren?e.hasTilesetContent?!e.contentExpired:this.shouldRefine(e,r):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r,n=!1){let o=e._screenSpaceError;return n&&(o=e.getScreenSpaceError(r,!0)),o>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let n=[];if(this.options.viewportTraversersMap)for(let o in this.options.viewportTraversersMap)this.options.viewportTraversersMap[o]===r.viewport.id&&n.push(o);else n.push(r.viewport.id);e.updateVisibility(r,n)}compareDistanceToCamera(e,r){return e._distanceToCamera-r._distanceToCamera}anyChildrenVisible(e,r){let n=!1;for(let o of e.children)o.updateVisibility(r),n=n||o.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,r){let n=!0,o=this._emptyTraversalStack;for(o.push(e);o.length>0;){let s=o.pop(),i=!s.hasRenderContent&&this.canTraverse(s,r),a=!s.hasRenderContent&&s.children.length===0;if(!i&&!s.contentAvailable&&!a&&(n=!1),this.updateTile(s,r),s.isVisibleAndInRequestVolume||(this.loadTile(s,r),this.touchTile(s,r)),i){let c=s.children;for(let l of c)o.push(l)}}return e.hasEmptyContent||n}};var jm=new S;function UC(t){return t!=null}var fr=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=Se.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new P;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new ct({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new P;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;tileDrawn=!0;constructor(e,r,n,o=""){this.header=r,this.tileset=e,this.id=o||r.id,this.url=r.url,this.parent=n,this.refine=this._getRefine(r.refine),this.type=r.type,this.contentUrl=r.contentUrl,this._initializeLodMetric(r),this._initializeTransforms(r),this._initializeBoundingVolumes(r),this._initializeContent(r),this._initializeRenderingState(r),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===Se.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===Se.UNLOADED}get contentExpired(){return this.contentState===Se.EXPIRED}get contentFailed(){return this.contentState===Se.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=Pm(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case ue.I3S:return Yc(this,e);case ue.TILES3D:return Dm(this,e,r);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let e=this.tileset._traverser,{skipLevelOfDetail:r}=e.options,n=this.refine===me.ADD||r;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===Se.UNLOADED)return-1;let o=this.parent,i=o&&(!n||this._screenSpaceError===0||o.hasTilesetContent)?o._screenSpaceError:this._screenSpaceError,a=e.root?e.root._screenSpaceError:0;return Math.max(a-i,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=Se.LOADING;let r=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r)return this.contentState=Se.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),o=this.tileset.loader,s=this.tileset.loadOptions[o.id]||{},i={...this.tileset.loadOptions,[o.id]:{...s,isTileset:this.type==="json",...this._getLoaderSpecificOptions(o.id)}};return this.content=await(0,qm.load)(n,o,i),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=Se.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=Se.FAILED,n}finally{r.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=Se.UNLOADED,this.tileDrawn=!0,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let n=this.parent,o=n?n._visibilityPlaneMask:ye.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let s=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(s)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ye.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:n}=e,{boundingVolume:o}=this;return n.computeVisibilityWithPlaneMask(o,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth({camera:e}){let r=this.boundingVolume;return jm.subVectors(r.center,e.position),e.direction.dot(jm)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(UC(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=Se.EXPIRED,this._expiredContent=this.content)}}get extras(){return this.header.extras}_initializeLodMetric(e){"lodMetricType"in e?this.lodMetricType=e.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 e?this.lodMetricValue=e.lodMetricValue:(this.lodMetricValue=this.parent&&this.parent.lodMetricValue||this.tileset.lodMetricValue,console.warn("3D Tile: Required prop lodMetricValue is undefined. Using parent lodMetricValue"))}_initializeTransforms(e){this.transform=e.transform?new P(e.transform):new P;let r=this.parent,n=this.tileset,o=r&&r.computedTransform?r.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new P(o).multiplyRight(this.transform);let s=r&&r._initialTransform?r._initialTransform.clone():new P;this._initialTransform=new P(s).multiplyRight(this.transform)}_initializeBoundingVolumes(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}_initializeContent(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=Se.UNLOADED,this.hasTilesetContent=!1,e.contentUrl&&(this.content=null,this.hasEmptyContent=!1)}_initializeRenderingState(e){this.depth=e.level||(this.parent?this.parent.depth+1:0),this._shouldRefine=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._visibilityPlaneMask=ye.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(e){return e||this.parent&&this.parent.refine||me.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;default:}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(e){this.boundingVolume=ei(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=ei(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=ei(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(e=new P){let r=e.clone().multiplyRight(this.transform);r.equals(this.computedTransform)||(this.computedTransform=r,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){return e==="i3s"?{...this.tileset.options.i3s,_tileOptions:{attributeUrls:this.header.attributeUrls,textureUrl:this.header.textureUrl,textureFormat:this.header.textureFormat,textureLoaderOptions:this.header.textureLoaderOptions,materialDefinition:this.header.materialDefinition,isDracoGeometry:this.header.isDracoGeometry,mbs:this.header.mbs},_tilesetOptions:{store:this.tileset.tileset.store,attributeStorageInfo:this.tileset.tileset.attributeStorageInfo,fields:this.tileset.tileset.fields},isTileHeader:!1}:zm(this.tileset.tileset)}};var ti=class extends ct{compareDistanceToCamera(e,r){return r._distanceToCamera===0&&e._distanceToCamera===0?r._centerZDepth-e._centerZDepth:r._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,r){if(super.updateTileVisibility(e,r),!e.isVisibleAndInRequestVolume)return;let n=e.children.length>0;if(e.hasTilesetContent&&n){let i=e.children[0];this.updateTileVisibility(i,r),e._visible=i._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let o=e.refine===me.REPLACE,s=e._optimChildrenWithinParent===vm.USE_OPTIMIZATION;if(o&&s&&n&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==me.ADD?!1:!this.shouldRefine(e,r,!0)}};var Jm=D(Xt(),1);var ri=class{frameNumberMap=new Map;register(e,r){let n=this.frameNumberMap.get(e)||new Map,o=n.get(r)||0;n.set(r,o+1),this.frameNumberMap.set(e,n)}deregister(e,r){let n=this.frameNumberMap.get(e);if(!n)return;let o=n.get(r)||1;n.set(r,o-1)}isZero(e,r){return(this.frameNumberMap.get(e)?.get(r)||0)===0}};var Qc={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},ni=class{_statusMap;pendingTilesRegister=new ri;constructor(){this._statusMap={}}add(e,r,n,o){if(!this._statusMap[r]){let{frameNumber:s,viewport:{id:i}}=o;this._statusMap[r]={request:e,callback:n,key:r,frameState:o,status:Qc.REQUESTED},this.pendingTilesRegister.register(i,s),e().then(a=>{this._statusMap[r].status=Qc.COMPLETED;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),this._statusMap[r].callback(a,o)}).catch(a=>{this._statusMap[r].status=Qc.ERROR;let{frameNumber:c,viewport:{id:l}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(l,c),n(a)})}}update(e,r){if(this._statusMap[e]){let{frameNumber:n,viewport:{id:o}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(o,n);let{frameNumber:s,viewport:{id:i}}=r;this.pendingTilesRegister.register(i,s),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var oi=class extends ct{_tileManager;constructor(e){super(e),this._tileManager=new ni}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=km(e,r),e._lodJudge==="DIG"}updateChildTiles(e,r){let n=e.header.children||[],o=e.children,s=e.tileset;for(let i of n){let a=`${i.id}-${r.viewport.id}`,c=o&&o.find(l=>l.id===a);if(c)c&&this.updateTile(c,r);else{let l=()=>this._loadTile(i.id,s);this._tileManager.find(a)?this._tileManager.update(a,r):(s.tileset.nodePages&&(l=()=>s.tileset.nodePagesTile.formTileFromNodePages(i.id)),this._tileManager.add(l,a,u=>this._onTileLoad(u,e,a),r))}}return!1}async _loadTile(e,r){let{loader:n}=r,o=r.getTileUrl(`${r.url}/nodes/${e}`),s={...r.loadOptions,i3s:{...r.loadOptions.i3s,isTileHeader:!0}};return await(0,Jm.load)(o,n,s)}_onTileLoad(e,r,n){let o=new fr(r.tileset,e,r,n);r.children.push(o);let s=this._tileManager.find(o.id).frameState;this.updateTile(o,s),this._frameNumber===s.frameNumber&&(this.traversalFinished(s)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(o,s)}};var DC={description:"",ellipsoid:G.WGS84,modelMatrix:new P,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,onUpdate:()=>{},contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},si="Tiles In Tileset(s)",Zc="Tiles In Memory",Wm="Tiles In View",Xm="Tiles To Render",Km="Tiles Loaded",$c="Tiles Loading",Ym="Tiles Unloaded",Qm="Failed Tile Loads",Zm="Points/Vertices",el="Tile Memory Use",$m="Maximum Screen Space Error",ao=class{options;loadOptions;type;tileset;loader;url;basePath;modelMatrix;ellipsoid;lodMetricType;lodMetricValue;refine;root=null;roots={};asset={};description="";properties;extras=null;attributions={};credits={};stats;contentFormats={draco:!1,meshopt:!1,dds:!1,ktx2:!1};cartographicCenter=null;cartesianCenter=null;zoom=1;boundingVolume=null;dynamicScreenSpaceErrorComputedDensity=0;maximumMemoryUsage=32;gpuMemoryUsageInBytes=0;memoryAdjustedScreenSpaceError=0;_cacheBytes=0;_cacheOverflowBytes=0;_frameNumber=0;_queryParams={};_extensionsUsed=[];_tiles={};_pendingCount=0;selectedTiles=[];traverseCounter=0;geometricError=0;lastUpdatedVieports=null;_requestedTiles=[];_emptyTiles=[];frameStateData={};_traverser;_cache=new Qs;_requestScheduler;_heldTiles=new Set;updatePromise=null;tilesetInitializationPromise;constructor(e,r){this.options={...DC,...r},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Pt.dirname(this.url),this.modelMatrix=this.options.modelMatrix,this.ellipsoid=this.options.ellipsoid,this.lodMetricType=e.lodMetricType,this.lodMetricValue=e.lodMetricValue,this.refine=e.root.refine,this.loadOptions=this.options.loadOptions||{},this._traverser=this._initializeTraverser(),this._requestScheduler=new Lt({throttleRequests:this.options.throttleRequests,maxRequests:this.options.maxRequests}),this.memoryAdjustedScreenSpaceError=this.options.maximumScreenSpaceError,this._cacheBytes=this.options.maximumMemoryUsage*1024*1024,this._cacheOverflowBytes=this.options.memoryCacheOverflow*1024*1024,this.stats=new wt({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(e)}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 new URLSearchParams(this._queryParams).toString()}setProps(e){this.options={...this.options,...e}}getTileUrl(e){if(e.startsWith("data:"))return e;let n=e;return this.queryParams.length&&(n=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(e){return this._extensionsUsed.indexOf(e)>-1}update(e=null){this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(e=null){return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(r=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),r(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(e){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let r=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=r.length;let n=[];for(let o of r){let s=o.id;this._needTraverse(s)?n.push(s):this.traverseCounter--}for(let o of r){let s=o.id;if(this.roots[s]||(this.roots[s]=this._initializeTileHeaders(this.tileset,null)),!n.includes(s))continue;let i=Em(o,this._frameNumber);this._traverser.traverse(this.roots[s],i,this.options)}}_needTraverse(e){let r=e;return this.options.viewportTraversersMap&&(r=this.options.viewportTraversersMap[e]),r===e}_onTraversalEnd(e){let r=e.viewport.id;this.frameStateData[r]||(this.frameStateData[r]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[r],o=Object.values(this._traverser.selectedTiles),[s,i]=Mm(o,e,this.options.maximumTilesSelected);n.selectedTiles=s;for(let a of i)a.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){let e=this.selectedTiles;this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(let s in this.frameStateData){let i=this.frameStateData[s];this.selectedTiles=this.selectedTiles.concat(i.selectedTiles),this._requestedTiles=this._requestedTiles.concat(i._requestedTiles),this._emptyTiles=this._emptyTiles.concat(i._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);let r=new Set(this.selectedTiles.map(s=>s.id)),n=this.selectedTiles.some(s=>!s.tileDrawn),o=0;if(n){for(let s of r)this._heldTiles.add(s);for(let s of this._heldTiles){if(r.has(s))continue;let i=this._tiles[s];i&&i.contentAvailable?(i._selectedFrame=this._frameNumber,this.selectedTiles.push(i),o++):this._heldTiles.delete(s)}}else this._heldTiles=r;o>0&&setTimeout(()=>{this.selectTiles()},0);for(let s of this.selectedTiles)this._tiles[s.id]=s;this._loadTiles(),this._unloadTiles(),this._updateStats(),this._tilesChanged(e,this.selectedTiles)&&this.options.onUpdate()}_tilesChanged(e,r){if(e.length!==r.length)return!0;let n=new Set(e.map(i=>i.id)),o=new Set(r.map(i=>i.id)),s=e.filter(i=>!o.has(i.id)).length>0;return s=s||r.filter(i=>!n.has(i.id)).length>0,s}_loadTiles(){this._requestedTiles.sort((e,r)=>e._priority-r._priority);for(let e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,r)=>e._unloadTile(r))}_updateStats(){let e=0,r=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?r+=n.content.pointCount:r+=n.content.vertexCount);this.stats.get(Wm).count=this.selectedTiles.length,this.stats.get(Xm).count=e,this.stats.get(Zm).count=r,this.stats.get($m).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===ue.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===ue.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===ue.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){let e=this.tileset.fullExtent;if(e){let{xmin:n,xmax:o,ymin:s,ymax:i,zmin:a,zmax:c}=e;this.cartographicCenter=new S(n+(o-n)/2,s+(i-s)/2,a+(c-a)/2),this.cartesianCenter=new S,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=Wc(e,this.cartographicCenter,this.cartesianCenter);return}let r=this.tileset.store?.extent;if(r){let[n,o,s,i]=r;this.cartographicCenter=new S(n+(s-n)/2,o+(i-o)/2,0),this.cartesianCenter=new S,G.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=Bm(r,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new S,this.zoom=1}calculateViewPropsTiles3D(){let e=this.root,{center:r}=e.boundingVolume;if(!r){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new S,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new S,G.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new S(0,0,-G.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=Im(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(si),this.stats.get($c),this.stats.get(Zc),this.stats.get(Wm),this.stats.get(Xm),this.stats.get(Km),this.stats.get(Ym),this.stats.get(Qm),this.stats.get(Zm),this.stats.get(el,"memory"),this.stats.get($m)}_initializeTileHeaders(e,r){let n=new fr(this,e.root,r);if(r&&(r.children.push(n),n.depth=r.depth+1),this.type===ue.TILES3D){let o=[];for(o.push(n);o.length>0;){let s=o.pop();this.stats.get(si).incrementCount();let i=s.header.children||[];for(let a of i){let c=new fr(this,a,s);if(c.contentUrl?.includes("?session=")){let f=new URL(c.contentUrl).searchParams.get("session");f&&(this._queryParams.session=f)}s.children.push(c),c.depth=s.depth+1,o.push(c)}}}return n}_initializeTraverser(){let e;switch(this.type){case ue.TILES3D:e=ti;break;case ue.I3S:e=oi;break;default:e=ct}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let r;try{this._onStartTileLoading(),r=await e.loadContent()}catch(n){this._onTileLoadError(e,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,r)}}_onTileLoadError(e,r){this.stats.get(Qm).incrementCount();let n=r.message||r.toString(),o=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,o)}_onTileLoad(e,r){if(r){if(this.type===ue.I3S){let n=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(si).reset(),this.stats.get(si).addCount(n)}e&&e.content&&Sm(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===ue.I3S)switch(e.header.isDracoGeometry&&(this.contentFormats.draco=!0),e.header.textureFormat){case"dds":this.contentFormats.dds=!0;break;case"ktx2":this.contentFormats.ktx2=!0;break;default:}else if(this.type===ue.TILES3D){let{extensionsRemoved:r=[]}=e.content?.gltf||{};r.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),r.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),r.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get($c).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get($c).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(Km).incrementCount(),this.stats.get(Zc).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(el).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(Zc).decrementCount(),this.stats.get(Ym).incrementCount(),this.stats.get(el).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){let e=[];for(this.root&&e.push(this.root);e.length>0;){let r=e.pop();for(let n of r.children)e.push(n);this._destroyTile(r)}this.root=null}_destroySubtree(e){let r=e,n=[];for(n.push(r);n.length>0;){e=n.pop();for(let o of e.children)n.push(o);e!==r&&this._destroyTile(e)}r.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){let r=new URLSearchParams(e.queryString),n=Object.fromEntries(r.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=e.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0"&&this.asset.version!=="1.1")throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed||[],this.extras=e.extras}_initializeI3STileset(){let e=this.loadOptions.i3s;e&&typeof e=="object"&&"token"in e&&(this._queryParams.token=e.token)}};var ii="4.4.3";var ur={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},EV=Object.keys(ur);function tl(t,e,r){k(t instanceof ArrayBuffer);let n=new TextDecoder("utf8"),o=new Uint8Array(t,e,r);return n.decode(o)}function eg(t,e=0){let r=new DataView(t);return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}var GC="1.5.6",VC="1.4.1",rl=`https://www.gstatic.com/draco/versioned/decoders/${GC}`,he={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},co={[he.DECODER]:`${rl}/${he.DECODER}`,[he.DECODER_WASM]:`${rl}/${he.DECODER_WASM}`,[he.FALLBACK_DECODER]:`${rl}/${he.FALLBACK_DECODER}`,[he.ENCODER]:`https://raw.githubusercontent.com/google/draco/${VC}/javascript/${he.ENCODER}`},nl;async function rg(t={},e){let r=t.modules||{};return r.draco3d?nl||=r.draco3d.createDecoderModule({}).then(n=>({draco:n})):nl||=HC(t,e),await nl}function tg(t,e){if(t&&typeof t=="object"){if(t.default)return t.default;if(t[e])return t[e]}return t}async function HC(t,e){let r,n;switch(e){case"js":r=await Oe(co[he.FALLBACK_DECODER],"draco",t,he.FALLBACK_DECODER);break;default:try{[r,n]=await Promise.all([await Oe(co[he.DECODER],"draco",t,he.DECODER),await Oe(co[he.DECODER_WASM],"draco",t,he.DECODER_WASM)])}catch{r=null,n=null}}return r=tg(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule,!r&&!pt&&([r,n]=await Promise.all([await Oe(co[he.DECODER],"draco",{...t,useLocalLibraries:!0},he.DECODER),await Oe(co[he.DECODER_WASM],"draco",{...t,useLocalLibraries:!0},he.DECODER_WASM)]),r=tg(r,"DracoDecoderModule"),r=r||globalThis.DracoDecoderModule),await kC(r,n)}function kC(t,e){if(typeof t!="function")throw new Error("DracoDecoderModule could not be loaded");let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t({...r,onModuleLoaded:o=>n({draco:o})})})}var ng="4.4.3";function og(t){switch(t.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function hr(t){let e=1/0,r=1/0,n=1/0,o=-1/0,s=-1/0,i=-1/0,a=t.POSITION?t.POSITION.value:[],c=a&&a.length;for(let l=0;l<c;l+=3){let f=a[l],u=a[l+1],h=a[l+2];e=f<e?f:e,r=u<r?u:r,n=h<n?h:n,o=f>o?f:o,s=u>s?u:s,i=h>i?h:i}return[[e,r,n],[o,s,i]]}function ol(t,e,r){let n=og(e.value),o=r||sg(e);return{name:t,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:o}}function sg(t){let e={};return"byteOffset"in t&&(e.byteOffset=t.byteOffset.toString(10)),"byteStride"in t&&(e.byteStride=t.byteStride.toString(10)),"normalized"in t&&(e.normalized=t.normalized.toString()),e}function ag(t,e,r){let n=cg(e.metadata),o=[],s=zC(e.attributes);for(let i in t){let a=t[i],c=ig(i,a,s[i]);o.push(c)}if(r){let i=ig("indices",r);o.push(i)}return{fields:o,metadata:n}}function zC(t){let e={};for(let r in t){let n=t[r];e[n.name||"undefined"]=n}return e}function ig(t,e,r){let n=r?cg(r.metadata):void 0;return ol(t,e,n)}function cg(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var lg={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},jC={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},qC=4,lo=class{draco;decoder;metadataQuerier;constructor(e){this.draco=e,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,r={}){let n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r);let o=this.decoder.GetEncodedGeometryType(n),s=o===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let i;switch(o){case this.draco.TRIANGULAR_MESH:i=this.decoder.DecodeBufferToMesh(n,s);break;case this.draco.POINT_CLOUD:i=this.decoder.DecodeBufferToPointCloud(n,s);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!i.ok()||!s.ptr){let h=`DRACO decompression failed: ${i.error_msg()}`;throw new Error(h)}let a=this._getDracoLoaderData(s,o,r),c=this._getMeshData(s,a,r),l=hr(c.attributes),f=ag(c.attributes,a,c.indices);return{loader:"draco",loaderData:a,header:{vertexCount:s.num_points(),boundingBox:l},...c,schema:f}}finally{this.draco.destroy(n),s&&this.draco.destroy(s)}}_getDracoLoaderData(e,r,n){let o=this._getTopLevelMetadata(e),s=this._getDracoAttributes(e,n);return{geometry_type:r,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:o,attributes:s}}_getDracoAttributes(e,r){let n={};for(let o=0;o<e.num_attributes();o++){let s=this.decoder.GetAttribute(e,o),i=this._getAttributeMetadata(e,o);n[s.unique_id()]={unique_id:s.unique_id(),attribute_type:s.attribute_type(),data_type:s.data_type(),num_components:s.num_components(),byte_offset:s.byte_offset(),byte_stride:s.byte_stride(),normalized:s.normalized(),attribute_index:o,metadata:i};let a=this._getQuantizationTransform(s,r);a&&(n[s.unique_id()].quantization_transform=a);let c=this._getOctahedronTransform(s,r);c&&(n[s.unique_id()].octahedron_transform=c)}return n}_getMeshData(e,r,n){let o=this._getMeshAttributes(r,e,n);if(!o.POSITION)throw new Error("DRACO: No position attribute found.");return e instanceof this.draco.Mesh?n.topology==="triangle-strip"?{topology:"triangle-strip",mode:4,attributes:o,indices:{value:this._getTriangleStripIndices(e),size:1}}:{topology:"triangle-list",mode:5,attributes:o,indices:{value:this._getTriangleListIndices(e),size:1}}:{topology:"point-list",mode:0,attributes:o}}_getMeshAttributes(e,r,n){let o={};for(let s of Object.values(e.attributes)){let i=this._deduceAttributeName(s,n);s.name=i;let a=this._getAttributeValues(r,s);if(a){let{value:c,size:l}=a;o[i]={value:c,size:l,byteOffset:s.byte_offset,byteStride:s.byte_stride,normalized:s.normalized}}}return o}_getTriangleListIndices(e){let n=e.num_faces()*3,o=n*qC,s=this.draco._malloc(o);try{return this.decoder.GetTrianglesUInt32Array(e,o,s),new Uint32Array(this.draco.HEAPF32.buffer,s,n).slice()}finally{this.draco._free(s)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),XC(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let n=jC[r.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${r.data_type}`),null;let o=r.num_components,i=e.num_points()*o,a=i*n.BYTES_PER_ELEMENT,c=JC(this.draco,n),l,f=this.draco._malloc(a);try{let u=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,u,c,a,f),l=new n(this.draco.HEAPF32.buffer,f,i).slice()}finally{this.draco._free(f)}return{value:l,size:o}}_deduceAttributeName(e,r){let n=e.unique_id;for(let[i,a]of Object.entries(r.extraAttributes||{}))if(a===n)return i;let o=e.attribute_type;for(let i in lg)if(this.draco[i]===o)return lg[i];let s=r.attributeNameEntry||"name";return e.metadata[s]?e.metadata[s].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){let r=this.decoder.GetMetadata(e);return this._getDracoMetadata(r)}_getAttributeMetadata(e,r){let n=this.decoder.GetAttributeMetadata(e,r);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};let r={},n=this.metadataQuerier.NumEntries(e);for(let o=0;o<n;o++){let s=this.metadataQuerier.GetEntryName(e,o);r[s]=this._getDracoMetadataField(e,s)}return r}_getDracoMetadataField(e,r){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,n);let o=WC(n);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:o}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:n=[]}=e,o=[...r,...n];for(let s of o)this.decoder.SkipAttributeTransform(this.draco[s])}_getQuantizationTransform(e,r){let{quantizedAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits(),range:i.range(),min_values:new Float32Array([1,2,3]).map(a=>i.min_value(a))}}finally{this.draco.destroy(i)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:n=[]}=r,o=e.attribute_type();if(n.map(i=>this.decoder[i]).includes(o)){let i=new this.draco.AttributeQuantizationTransform;try{if(i.InitFromAttribute(e))return{quantization_bits:i.quantization_bits()}}finally{this.draco.destroy(i)}}return null}};function JC(t,e){switch(e){case Float32Array:return t.DT_FLOAT32;case Int8Array:return t.DT_INT8;case Int16Array:return t.DT_INT16;case Int32Array:return t.DT_INT32;case Uint8Array:return t.DT_UINT8;case Uint16Array:return t.DT_UINT16;case Uint32Array:return t.DT_UINT32;default:return t.DT_INVALID}}function WC(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}function XC(t){let e=t.size(),r=new Int32Array(e);for(let n=0;n<e;n++)r[n]=t.GetValue(n);return r}var fg={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:ng,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",extraAttributes:{},attributeNameEntry:void 0}}},fo={...fg,parse:KC};async function KC(t,e){let{draco:r}=await rg(Pn(e),e?.draco?.decoderType||"wasm"),n=new lo(r);try{return n.parseSync(t,e?.draco)}finally{n.destroy()}}var YC={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},ce={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},N={...YC,...ce};var sl={[ce.DOUBLE]:Float64Array,[ce.FLOAT]:Float32Array,[ce.UNSIGNED_SHORT]:Uint16Array,[ce.UNSIGNED_INT]:Uint32Array,[ce.UNSIGNED_BYTE]:Uint8Array,[ce.BYTE]:Int8Array,[ce.SHORT]:Int16Array,[ce.INT]:Int32Array},QC={DOUBLE:ce.DOUBLE,FLOAT:ce.FLOAT,UNSIGNED_SHORT:ce.UNSIGNED_SHORT,UNSIGNED_INT:ce.UNSIGNED_INT,UNSIGNED_BYTE:ce.UNSIGNED_BYTE,BYTE:ce.BYTE,SHORT:ce.SHORT,INT:ce.INT},il="Failed to convert GL type",Me=class t{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in sl)if(sl[r]===e)return r;throw new Error(il)}static fromName(e){let r=QC[e];if(!r)throw new Error(il);return r}static getArrayType(e){switch(e){case ce.UNSIGNED_SHORT_5_6_5:case ce.UNSIGNED_SHORT_4_4_4_4:case ce.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=sl[e];if(!r)throw new Error(il);return r}}static getByteSize(e){return t.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return!!t.getArrayType(e)}static createTypedArray(e,r,n=0,o){o===void 0&&(o=(r.byteLength-n)/t.getByteSize(e));let s=ArrayBuffer.isView(r)?r.buffer:r,i=t.getArrayType(e);return new i(s,n,o)}};function ug(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function al(t,e=[0,0,0]){let r=t>>11&31,n=t>>5&63,o=t&31;return e[0]=r<<3,e[1]=n<<2,e[2]=o<<3,e}var i4=1/256;var a4=new qt,c4=new S,l4=new qt,f4=new qt,u4=new Uint8Array(1);function hg(t,e=255){return Qo(t,0,e)/e*2-1}function pg(t){return t<0?-1:1}function dg(t,e,r,n){if(ug(n),t<0||t>r||e<0||e>r)throw new Error(`x and y must be unsigned normalized integers between 0 and ${r}`);if(n.x=hg(t,r),n.y=hg(e,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let o=n.x;n.x=(1-Math.abs(n.y))*pg(o),n.y=(1-Math.abs(o))*pg(n.y)}return n.normalize()}function cl(t,e,r){return dg(t,e,255,r)}var yt=class{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(e,r){this.json=e,this.buffer=r}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return!!this.json[e]}getGlobalProperty(e,r=N.UNSIGNED_INT,n=1){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?this._getTypedArrayFromBinary(e,r,n,1,o.byteOffset):o}getPropertyArray(e,r,n){let o=this.json[e];return o&&Number.isFinite(o.byteOffset)?("componentType"in o&&(r=Me.fromName(o.componentType)),this._getTypedArrayFromBinary(e,r,n,this.featuresLength,o.byteOffset)):this._getTypedArrayFromArray(e,r,o)}getProperty(e,r,n,o,s){let i=this.json[e];if(!i)return i;let a=this.getPropertyArray(e,r,n);if(n===1)return a[o];for(let c=0;c<n;++c)s[c]=a[n*o+c];return s}_getTypedArrayFromBinary(e,r,n,o,s){let i=this._cachedTypedArrays,a=i[e];return a||(a=Me.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+s,o*n),i[e]=a),a}_getTypedArrayFromArray(e,r,n){let o=this._cachedTypedArrays,s=o[e];if(!s){if(ArrayBuffer.isView(n)){let i=n.byteOffset,c=n.byteLength/Me.getByteSize(r);s=Me.createTypedArray(r,n.buffer,i,c)}else if(n instanceof ArrayBuffer)s=Me.createTypedArray(r,n);else{let i=Me.getArrayType(r);s=new i(n)}o[e]=s}return s}};var ZC={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},$C={SCALAR:(t,e)=>t[e],VEC2:(t,e)=>[t[2*e+0],t[2*e+1]],VEC3:(t,e)=>[t[3*e+0],t[3*e+1],t[3*e+2]],VEC4:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT2:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT3:(t,e)=>[t[9*e+0],t[9*e+1],t[9*e+2],t[9*e+3],t[9*e+4],t[9*e+5],t[9*e+6],t[9*e+7],t[9*e+8]],MAT4:(t,e)=>[t[16*e+0],t[16*e+1],t[16*e+2],t[16*e+3],t[16*e+4],t[16*e+5],t[16*e+6],t[16*e+7],t[16*e+8],t[16*e+9],t[16*e+10],t[16*e+11],t[16*e+12],t[16*e+13],t[16*e+14],t[16*e+15]]},eE={SCALAR:(t,e,r)=>{e[r]=t},VEC2:(t,e,r)=>{e[2*r+0]=t[0],e[2*r+1]=t[1]},VEC3:(t,e,r)=>{e[3*r+0]=t[0],e[3*r+1]=t[1],e[3*r+2]=t[2]},VEC4:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT2:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT3:(t,e,r)=>{e[9*r+0]=t[0],e[9*r+1]=t[1],e[9*r+2]=t[2],e[9*r+3]=t[3],e[9*r+4]=t[4],e[9*r+5]=t[5],e[9*r+6]=t[6],e[9*r+7]=t[7],e[9*r+8]=t[8],e[9*r+9]=t[9]},MAT4:(t,e,r)=>{e[16*r+0]=t[0],e[16*r+1]=t[1],e[16*r+2]=t[2],e[16*r+3]=t[3],e[16*r+4]=t[4],e[16*r+5]=t[5],e[16*r+6]=t[6],e[16*r+7]=t[7],e[16*r+8]=t[8],e[16*r+9]=t[9],e[16*r+10]=t[10],e[16*r+11]=t[11],e[16*r+12]=t[12],e[16*r+13]=t[13],e[16*r+14]=t[14],e[16*r+15]=t[15]}};function mg(t,e,r,n){let{componentType:o}=t;k(t.componentType);let s=typeof o=="string"?Me.fromName(o):o,i=ZC[t.type],a=$C[t.type],c=eE[t.type];return r+=t.byteOffset,{values:Me.createTypedArray(s,e,r,i*n),type:s,size:i,unpacker:a,packer:c}}var lt=t=>t!==void 0;function gg(t,e,r){if(!e)return null;let n=t.getExtension("3DTILES_batch_table_hierarchy"),o=e.HIERARCHY;return o&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=o,n=o),n?tE(n,r):null}function tE(t,e){let r,n,o,s=t.instancesLength,i=t.classes,a=t.classIds,c=t.parentCounts,l=t.parentIds,f=s;lt(a.byteOffset)&&(a.componentType=defaultValue(a.componentType,GL.UNSIGNED_SHORT),a.type=AttributeType.SCALAR,o=getBinaryAccessor(a),a=o.createArrayBufferView(e.buffer,e.byteOffset+a.byteOffset,s));let u;if(lt(c))for(lt(c.byteOffset)&&(c.componentType=defaultValue(c.componentType,GL.UNSIGNED_SHORT),c.type=AttributeType.SCALAR,o=getBinaryAccessor(c),c=o.createArrayBufferView(e.buffer,e.byteOffset+c.byteOffset,s)),u=new Uint16Array(s),f=0,r=0;r<s;++r)u[r]=f,f+=c[r];lt(l)&&lt(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,o=getBinaryAccessor(l),l=o.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,f));let h=i.length;for(r=0;r<h;++r){let b=i[r].length,x=i[r].instances,y=getBinaryProperties(b,x,e);i[r].instances=combine(y,x)}let p=new Array(h).fill(0),d=new Uint16Array(s);for(r=0;r<s;++r)n=a[r],d[r]=p[n],++p[n];let m={classes:i,classIds:a,classIndexes:d,parentCounts:c,parentIndexes:u,parentIds:l};return oE(m),m}function Xr(t,e,r){if(!t)return;let n=t.parentCounts;return t.parentIds?r(t,e):n>0?rE(t,e,r):nE(t,e,r)}function rE(t,e,r){let n=t.classIds,o=t.parentCounts,s=t.parentIds,i=t.parentIndexes,a=n.length,c=scratchVisited;c.length=Math.max(c.length,a);let l=++marker,f=scratchStack;for(f.length=0,f.push(e);f.length>0;){if(e=f.pop(),c[e]===l)continue;c[e]=l;let u=r(t,e);if(lt(u))return u;let h=o[e],p=i[e];for(let d=0;d<h;++d){let m=s[p+d];m!==e&&f.push(m)}}return null}function nE(t,e,r){let n=!0;for(;n;){let o=r(t,e);if(lt(o))return o;let s=t.parentIds[e];n=s!==e,e=s}throw new Error("traverseHierarchySingleParent")}function oE(t){let e=[],n=t.classIds.length;for(let o=0;o<n;++o)bg(t,o,stack)}function bg(t,e,r){let n=t.parentCounts,o=t.parentIds,s=t.parentIndexes,a=t.classIds.length;if(!lt(o))return;assert(e<a,`Parent index ${e} exceeds the total number of instances: ${a}`),assert(r.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),r.push(e);let c=lt(n)?n[e]:1,l=lt(n)?s[e]:e;for(let f=0;f<c;++f){let u=o[l+f];u!==e&&bg(t,u,r)}r.pop(e)}function Ie(t){return t!=null}var ai=(t,e)=>t,sE={HIERARCHY:!0,extensions:!0,extras:!0},pr=class{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,r,n,o={}){k(n>=0),this.json=e||{},this.binary=r,this.featureCount=n,this._extensions=this.json?.extensions||{},this._properties={};for(let s in this.json)sE[s]||(this._properties[s]=this.json[s]);this._binaryProperties=this._initializeBinaryProperties(),o["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=gg(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,r){if(this._checkBatchId(e),k(typeof r=="string",r),this._hierarchy){let n=Xr(this._hierarchy,e,(o,s)=>{let i=o.classIds[s];return o.classes[i].name===r});return Ie(n)}return!1}isExactClass(e,r){return k(typeof r=="string",r),this.getExactClassName(e)===r}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){let r=this._hierarchy.classIds[e];return this._hierarchy.classes[r].name}}hasProperty(e,r){return this._checkBatchId(e),k(typeof r=="string",r),Ie(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=Ie(r)?r:[],r.length=0;let n=Object.keys(this._properties);return r.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,r),r}getProperty(e,r){if(this._checkBatchId(e),k(typeof r=="string",r),this._binaryProperties){let o=this._binaryProperties[r];if(Ie(o))return this._getBinaryProperty(o,e)}let n=this._properties[r];if(Ie(n))return ai(n[e],!0);if(this._hierarchy){let o=this._getHierarchyProperty(e,r);if(Ie(o))return o}}setProperty(e,r,n){let o=this.featureCount;if(this._checkBatchId(e),k(typeof r=="string",r),this._binaryProperties){let i=this._binaryProperties[r];if(i){this._setBinaryProperty(i,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,n))return;let s=this._properties[r];Ie(s)||(this._properties[r]=new Array(o),s=this._properties[r]),s[e]=ai(n,!0)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,r){return e.unpack(e.typedArray,r)}_setBinaryProperty(e,r,n){e.pack(n,e.typedArray,r)}_initializeBinaryProperties(){let e=null;for(let r in this._properties){let n=this._properties[r],o=this._initializeBinaryProperty(r,n);o&&(e=e||{},e[r]=o)}return e}_initializeBinaryProperty(e,r){if("byteOffset"in r){let n=r;k(this.binary,`Property ${e} requires a batch table binary.`),k(n.type,`Property ${e} requires a type.`);let o=mg(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:o.values,componentCount:o.size,unpack:o.unpacker,pack:o.packer}}return null}_hasPropertyInHierarchy(e,r){if(!this._hierarchy)return!1;let n=Xr(this._hierarchy,e,(o,s)=>{let i=o.classIds[s],a=o.classes[i].instances;return Ie(a[r])});return Ie(n)}_getPropertyNamesInHierarchy(e,r){Xr(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s].instances;for(let a in i)i.hasOwnProperty(a)&&r.indexOf(a)===-1&&r.push(a)})}_getHierarchyProperty(e,r){return Xr(this._hierarchy,e,(n,o)=>{let s=n.classIds[o],i=n.classes[s],a=n.classIndexes[o],c=i.instances[r];return Ie(c)?Ie(c.typedArray)?this._getBinaryProperty(c,a):ai(c[a],!0):null})}_setHierarchyProperty(e,r,n,o){let s=Xr(this._hierarchy,r,(i,a)=>{let c=i.classIds[a],l=i.classes[c],f=i.classIndexes[a],u=l.instances[n];return Ie(u)?(k(a===r,`Inherited property "${n}" is read-only.`),Ie(u.typedArray)?this._setBinaryProperty(u,f,o):u[f]=ai(o,!0),!0):!1});return Ie(s)}};function Dt(t,e,r=0){let n=new DataView(e);if(t.magic=n.getUint32(r,!0),r+=4,t.version=n.getUint32(r,!0),r+=4,t.byteLength=n.getUint32(r,!0),r+=4,t.version!==1)throw new Error(`3D Tile Version ${t.version} not supported`);return r}var Kr=4,Ag="b3dm tile in legacy format.";function Yr(t,e,r){let n=new DataView(e),o;t.header=t.header||{};let s=n.getUint32(r,!0);r+=Kr;let i=n.getUint32(r,!0);r+=Kr;let a=n.getUint32(r,!0);r+=Kr;let c=n.getUint32(r,!0);return r+=Kr,a>=570425344?(r-=Kr*2,o=s,a=i,c=0,s=0,i=0,console.warn(Ag)):c>=570425344&&(r-=Kr,o=a,a=s,c=i,s=0,i=0,console.warn(Ag)),t.header.featureTableJsonByteLength=s,t.header.featureTableBinaryByteLength=i,t.header.batchTableJsonByteLength=a,t.header.batchTableBinaryByteLength=c,t.header.batchLength=o,r}function Qr(t,e,r,n){return r=iE(t,e,r,n),r=aE(t,e,r,n),r}function iE(t,e,r,n){let{featureTableJsonByteLength:o,featureTableBinaryByteLength:s,batchLength:i}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:i||0},o&&o>0){let a=tl(e,r,o);t.featureTableJson=JSON.parse(a)}return r+=o||0,t.featureTableBinary=new Uint8Array(e,r,s),r+=s||0,r}function aE(t,e,r,n){let{batchTableJsonByteLength:o,batchTableBinaryByteLength:s}=t.header||{};if(o&&o>0){let i=tl(e,r,o);t.batchTableJson=JSON.parse(i),r+=o,s&&s>0&&(t.batchTableBinary=new Uint8Array(e,r,s),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=s)}return r}function ll(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:n,isRGB565:o,pointCount:s=0}=t;if(n&&r){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=n[a],f=r.getProperty(c,"dimensions").map(u=>u*255);i[a*3]=f[0],i[a*3+1]=f[1],i[a*3+2]=f[2]}return{type:N.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}if(e&&o){let i=new Uint8ClampedArray(s*3);for(let a=0;a<s;a++){let c=al(e[a]);i[a*3]=c[0],i[a*3+1]=c[1],i[a*3+2]=c[2]}return{type:N.UNSIGNED_BYTE,value:i,size:3,normalized:!0}}return e&&e.length===s*3?{type:N.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:N.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var xg=new S;function Tg(t,e){if(!e)return null;if(t.isOctEncoded16P){let r=new Float32Array((t.pointsLength||0)*3);for(let n=0;n<(t.pointsLength||0);n++)cl(e[n*2],e[n*2+1],xg),xg.toArray(r,n*3);return{type:N.FLOAT,size:2,value:r}}return{type:N.FLOAT,size:2,value:e}}function yg(t,e,r){return t.isQuantized?r["3d-tiles"]&&r["3d-tiles"].decodeQuantizedPositions?(t.isQuantized=!1,cE(t,e)):{type:N.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function cE(t,e){let r=new S,n=new Float32Array(t.pointCount*3);for(let o=0;o<t.pointCount;o++)r.set(e[o*3],e[o*3+1],e[o*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(n,o*3);return n}async function Sg(t,e,r,n,o){r=Dt(t,e,r),r=Yr(t,e,r),r=Qr(t,e,r,n),lE(t);let{featureTable:s,batchTable:i}=fE(t);return await mE(t,s,i,n,o),uE(t,s,n),hE(t,s,i),pE(t,s),r}function lE(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function fE(t){let e=new yt(t.featureTableJson,t.featureTableBinary),r=e.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(r))throw new Error("POINTS_LENGTH must be defined");e.featuresLength=r,t.featuresLength=r,t.pointsLength=r,t.pointCount=r,t.rtcCenter=e.getGlobalProperty("RTC_CENTER",N.FLOAT,3);let n=dE(t,e);return{featureTable:e,batchTable:n}}function uE(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.positions){if(e.hasProperty("POSITION"))t.attributes.positions=e.getPropertyArray("POSITION",N.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",N.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=65535,t.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",N.FLOAT,3),!t.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(t.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",N.FLOAT,3),!t.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t.attributes.positions=yg(t,n,r)}}if(!t.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function hE(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.colors){let n=null;e.hasProperty("RGBA")?(n=e.getPropertyArray("RGBA",N.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",N.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",N.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=ll(t,n,r)}e.hasProperty("CONSTANT_RGBA")&&(t.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",N.UNSIGNED_BYTE,4))}function pE(t,e){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.normals){let r=null;e.hasProperty("NORMAL")?r=e.getPropertyArray("NORMAL",N.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(r=e.getPropertyArray("NORMAL_OCT16P",N.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=Tg(t,r)}}function dE(t,e){let r=null;if(!t.batchIds&&e.hasProperty("BATCH_ID")&&(t.batchIds=e.getPropertyArray("BATCH_ID",N.UNSIGNED_SHORT,1),t.batchIds)){let n=e.getGlobalProperty("BATCH_LENGTH");if(!n)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");let{batchTableJson:o,batchTableBinary:s}=t;r=new pr(o,s,n)}return r}async function mE(t,e,r,n,o){let s,i,a,c=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions["3DTILES_draco_point_compression"];c&&(a=c.properties);let l=e.getExtension("3DTILES_draco_point_compression");if(l){i=l.properties;let u=l.byteOffset,h=l.byteLength;if(!i||!Number.isFinite(u)||!h)throw new Error("Draco properties, byteOffset, and byteLength must be defined");s=(t.featureTableBinary||[]).slice(u,u+h),t.hasPositions=Number.isFinite(i.POSITION),t.hasColors=Number.isFinite(i.RGB)||Number.isFinite(i.RGBA),t.hasNormals=Number.isFinite(i.NORMAL),t.hasBatchIds=Number.isFinite(i.BATCH_ID),t.isTranslucent=Number.isFinite(i.RGBA)}if(!s)return!0;let f={buffer:s,properties:{...i,...a},featureTableProperties:i,batchTableProperties:a,dequantizeInShader:!1};return await gE(t,f,n,o)}async function gE(t,e,r,n){if(!n)return;let o={...r,draco:{...r?.draco,extraAttributes:e.batchTableProperties||{}}};delete o["3d-tiles"];let s=await we(e.buffer,fo,o,n),i=s.attributes.POSITION&&s.attributes.POSITION.value,a=s.attributes.COLOR_0&&s.attributes.COLOR_0.value,c=s.attributes.NORMAL&&s.attributes.NORMAL.value,l=s.attributes.BATCH_ID&&s.attributes.BATCH_ID.value,f=i&&s.attributes.POSITION.value.quantization,u=c&&s.attributes.NORMAL.value.quantization;if(f){let p=s.POSITION.data.quantization,d=p.range;t.quantizedVolumeScale=new S(d,d,d),t.quantizedVolumeOffset=new S(p.minValues),t.quantizedRange=(1<<p.quantizationBits)-1,t.isQuantizedDraco=!0}u&&(t.octEncodedRange=(1<<s.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let h={};if(e.batchTableProperties)for(let p of Object.keys(e.batchTableProperties))s.attributes[p]&&s.attributes[p].value&&(h[p.toLowerCase()]=s.attributes[p].value);t.attributes={positions:i,colors:ll(t,a,void 0),normals:c,batchIds:l,...h}}var fl={};pe(fl,{createExtMeshFeatures:()=>FE,decode:()=>BE,encode:()=>vE,name:()=>IE});function le(t,e){if(!t)throw new Error(e||"assert failed: gltf")}var ci={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},li={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var bE=1.33,_g=["SCALAR","VEC2","VEC3","VEC4"],AE=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],xE=new Map(AE),TE={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},yE={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},SE={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function fi(t){return _g[t-1]||_g[0]}function Gt(t){let e=xE.get(t.constructor);if(!e)throw new Error("Illegal typed array");return e}function Zr(t,e){let r=SE[t.componentType],n=TE[t.type],o=yE[t.componentType],s=t.count*n,i=t.count*n*o;le(i>=0&&i<=e.byteLength);let a=li[t.componentType],c=ci[t.type];return{ArrayType:r,length:s,byteLength:i,componentByteSize:a,numberOfComponentsInElement:c}}function uo(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let n=e.map(i=>i.bufferView);r=r.filter(i=>!n.includes(i));let o=r.reduce((i,a)=>i+a.byteLength,0),s=e.reduce((i,a)=>{let{width:c,height:l}=a.image;return i+c*l},0);return o+Math.ceil(4*s*bE)}function Cg(t,e,r){let n=t.bufferViews[r];le(n);let o=n.buffer,s=e[o];le(s);let i=(n.byteOffset||0)+s.byteOffset;return new Uint8Array(s.arrayBuffer,i,n.byteLength)}function Eg(t,e,r){let n=typeof r=="number"?t.accessors?.[r]:r;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let o=t.bufferViews?.[n.bufferView||0];if(!o)throw new Error(`No gltf buffer view for accessor ${o}`);let{arrayBuffer:s,byteOffset:i}=e[o.buffer],a=(i||0)+(n.byteOffset||0)+(o.byteOffset||0),{ArrayType:c,length:l,componentByteSize:f,numberOfComponentsInElement:u}=Zr(n,o),h=f*u,p=o.byteStride||h;if(typeof o.byteStride>"u"||o.byteStride===h)return new c(s,a,l);let d=new c(l);for(let m=0;m<n.count;m++){let b=new c(s,a+m*p,u);d.set(b,m*u)}return d}function _E(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var q=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||_E(),buffers:e?.buffers||[],images:e?.images||[]},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(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){let r=this.getUsedExtensions().find(o=>o===e),n=this.getRequiredExtensions().find(o=>o===e);return typeof r=="string"||typeof n=="string"}getExtension(e){let r=this.getUsedExtensions().find(o=>o===e),n=this.json.extensions||{};return r?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,r){return(e.extensions||{})[r]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,r){if(typeof r=="object")return r;let n=this.json[e]&&this.json[e][r];if(!n)throw new Error(`glTF file error: Could not find ${e}[${r}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);let r=e.buffer,n=this.gltf.buffers[r];le(n);let o=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,o,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return Eg(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),o=this.getBuffer(r.buffer).data,s=r.byteOffset||0;return new Uint8Array(o,s,r.byteLength)}addApplicationData(e,r){return this.json[e]=r,this}addExtraData(e,r){return this.json.extras=this.json.extras||{},this.json.extras[e]=r,this}addObjectExtension(e,r,n){return e.extensions=e.extensions||{},e.extensions[r]=n,this.registerUsedExtension(r),this}setObjectExtension(e,r,n){let o=e.extensions||{};o[r]=n}removeObjectExtension(e,r){let n=e?.extensions||{};if(n[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let o=this.json.extensionsRemoved;o.includes(r)||o.push(r)}delete n[r]}addExtension(e,r={}){return le(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e,r={}){return le(r),this.addExtension(e,r),this.registerRequiredExtension(e),r}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(r=>r===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(r=>r===e)||this.json.extensionsRequired.push(e)}removeExtension(e){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let r=this.json.extensionsRemoved;r.includes(e)||r.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){let{nodeIndices:r}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:r}),this.json.scenes.length-1}addNode(e){let{meshIndex:r,matrix:n}=e;this.json.nodes=this.json.nodes||[];let o={mesh:r};return n&&(o.matrix=n),this.json.nodes.push(o),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:n,material:o,mode:s=4}=e,a={primitives:[{attributes:this._addAttributes(r),mode:s}]};if(n){let c=this._addIndices(n);a.primitives[0].indices=c}return Number.isFinite(o)&&(a.primitives[0].material=o),this.json.meshes=this.json.meshes||[],this.json.meshes.push(a),this.json.meshes.length-1}addPointCloud(e){let n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,r){let n=nr(e),o=r||n?.mimeType,i={bufferView:this.addBufferView(e),mimeType:o};return this.json.images=this.json.images||[],this.json.images.push(i),this.json.images.length-1}addBufferView(e,r=0,n=this.byteLength){let o=e.byteLength;le(Number.isFinite(o)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let s={buffer:r,byteOffset:n,byteLength:o};return this.byteLength+=Rt(o,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(s),this.json.bufferViews.length-1}addAccessor(e,r){let n={bufferView:e,type:fi(r.size),componentType:r.componentType,count:r.count,max:r.max,min:r.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,r={size:3}){let n=this.addBufferView(e),o={min:r.min,max:r.max};(!o.min||!o.max)&&(o=this._getAccessorMinMax(e,r.size));let s={size:r.size,componentType:Gt(e),count:Math.round(e.length/r.size),min:o.min,max:o.max};return this.addAccessor(n,Object.assign(s,r))}addTexture(e){let{imageIndex:r}=e,n={source:r};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){let e=this.byteLength,r=new ArrayBuffer(e),n=new Uint8Array(r),o=0;for(let s of this.sourceBuffers||[])o=uc(s,n,o);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=r,this.sourceBuffers=[r],this.gltf.buffers=[{arrayBuffer:r,byteOffset:0,byteLength:r.byteLength}]}_removeStringFromArray(e,r){let n=!0;for(;n;){let o=e.indexOf(r);o>-1?e.splice(o,1):n=!1}}_addAttributes(e={}){let r={};for(let n in e){let o=e[n],s=this._getGltfAttributeName(n),i=this.addBinaryBuffer(o.value,o);r[s]=i}return r}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.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 e}}_getAccessorMinMax(e,r){let n={min:null,max:null};if(e.length<r)return n;n.min=[],n.max=[];let o=e.subarray(0,r);for(let s of o)n.min.push(s),n.max.push(s);for(let s=r;s<e.length;s+=r)for(let i=0;i<r;i++)n.min[0+i]=Math.min(n.min[0+i],e[s+i]),n.max[0+i]=Math.max(n.max[0+i],e[s+i]);return n}};function Mg(t){return(t%1+1)%1}var Ig={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},CE={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},Bg={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function ho(t,e){return Bg[e]*Ig[t]}function $r(t,e,r,n){if(r!=="UINT8"&&r!=="UINT16"&&r!=="UINT32"&&r!=="UINT64")return null;let o=t.getTypedArrayForBufferView(e),s=en(o,"SCALAR",r,n+1);return s instanceof BigInt64Array||s instanceof BigUint64Array?null:s}function en(t,e,r,n=1){let o=Ig[e],s=CE[r],i=Bg[r],a=n*o,c=a*i,l=t.buffer,f=t.byteOffset;return f%i!==0&&(l=new Uint8Array(l).slice(f,f+c).buffer,f=0),new s(Ft(l),f,a)}function tn(t,e,r){let n=`TEXCOORD_${e.texCoord||0}`,o=r.attributes[n],s=t.getTypedArrayForAccessor(o),i=t.gltf.json,a=e.index,c=i.textures?.[a]?.source;if(typeof c<"u"){let l=i.images?.[c]?.mimeType,f=t.gltf.images?.[c];if(f&&typeof f.width<"u"){let u=[];for(let h=0;h<s.length;h+=2){let p=EE(f,l,s,h,e.channels);u.push(p)}return u}}return[]}function ui(t,e,r,n,o){if(!r?.length)return;let s=[];for(let f of r){let u=n.findIndex(h=>h===f);u===-1&&(u=n.push(f)-1),s.push(u)}let i=new Uint32Array(s),a=t.gltf.buffers.push({arrayBuffer:i.buffer,byteOffset:i.byteOffset,byteLength:i.byteLength})-1,c=t.addBufferView(i,a,0),l=t.addAccessor(c,{size:1,componentType:Gt(i),count:i.length});o.attributes[e]=l}function EE(t,e,r,n,o=[0]){let s={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},i=r[n],a=r[n+1],c=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(c=4);let l=ME(i,a,t,c),f=0;for(let u of o){let h=typeof u=="number"?Object.values(s)[u]:s[u],p=l+h.offset,d=zn(t);if(d.data.length<=p)throw new Error(`${d.data.length} <= ${p}`);let m=d.data[p];f|=m<<h.shift}return f}function ME(t,e,r,n=1){let o=r.width,s=Mg(t)*(o-1),i=Math.round(s),a=r.height,c=Mg(e)*(a-1),l=Math.round(c),f=r.components?r.components:n;return(l*o+i)*f}function hi(t,e,r,n,o){let s=[];for(let i=0;i<e;i++){let a=r[i],c=r[i+1]-r[i];if(c+a>n)break;let l=a/o,f=c/o;s.push(t.slice(l,l+f))}return s}function pi(t,e,r){let n=[];for(let o=0;o<e;o++){let s=o*r;n.push(t.slice(s,s+r))}return n}function di(t,e,r,n){if(r)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let o=[],s=new TextDecoder("utf8"),i=0;for(let a=0;a<t;a++){let c=n[a+1]-n[a];if(c+i<=e.length){let l=e.subarray(i,c+i),f=s.decode(l);o.push(f),i+=c}}return o}return[]}var rn="EXT_mesh_features",IE=rn;async function BE(t,e){let r=new q(t);RE(r,e)}function vE(t,e){let r=new q(t);return LE(r,e),r.createBinaryChunk(),r.gltf}function RE(t,e){let r=t.gltf.json;if(r.meshes)for(let n of r.meshes)for(let o of n.primitives)wE(t,o,e)}function wE(t,e,r){if(!r?.gltf?.loadBuffers)return;let o=e.extensions?.[rn]?.featureIds;if(o)for(let s of o){let i;if(typeof s.attribute<"u"){let a=`_FEATURE_ID_${s.attribute}`,c=e.attributes[a];i=t.getTypedArrayForAccessor(c)}else typeof s.texture<"u"&&r?.gltf?.loadImages?i=tn(t,s.texture,e):i=[];s.data=i}}function LE(t,e){let r=t.gltf.json.meshes;if(r)for(let n of r)for(let o of n.primitives)PE(t,o)}function FE(t,e,r,n){e.extensions||(e.extensions={});let o=e.extensions[rn];o||(o={featureIds:[]},e.extensions[rn]=o);let{featureIds:s}=o,i={featureCount:r.length,propertyTable:n,data:r};s.push(i),t.addObjectExtension(e,rn,o)}function PE(t,e){let r=e.extensions?.[rn];if(!r)return;let n=r.featureIds;n.forEach((o,s)=>{if(o.data){let{accessorKey:i,index:a}=NE(e.attributes),c=new Uint32Array(o.data);n[s]={featureCount:c.length,propertyTable:o.propertyTable,attribute:a},t.gltf.buffers.push({arrayBuffer:c.buffer,byteOffset:c.byteOffset,byteLength:c.byteLength});let l=t.addBufferView(c),f=t.addAccessor(l,{size:1,componentType:Gt(c),count:c.length});e.attributes[i]=f}})}function NE(t){let e="_FEATURE_ID_",r=Object.keys(t).filter(s=>s.indexOf(e)===0),n=-1;for(let s of r){let i=Number(s.substring(e.length));i>n&&(n=i)}return n++,{accessorKey:`${e}${n}`,index:n}}var pl={};pe(pl,{createExtStructuralMetadata:()=>nM,decode:()=>UE,encode:()=>DE,name:()=>OE});var nn="EXT_structural_metadata",OE=nn;async function UE(t,e){let r=new q(t);GE(r,e)}function DE(t,e){let r=new q(t);return tM(r,e),r.createBinaryChunk(),r.gltf}function GE(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(nn);r&&(e.gltf?.loadImages&&VE(t,r),HE(t,r))}function VE(t,e){let r=e.propertyTextures,n=t.gltf.json;if(r&&n.meshes)for(let o of n.meshes)for(let s of o.primitives)zE(t,r,s,e)}function HE(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.propertyTables;if(n&&o)for(let s in n){let i=kE(o,s);i&&qE(t,r,i)}}function kE(t,e){for(let r of t)if(r.class===e)return r;return null}function zE(t,e,r,n){if(!e)return;let s=r.extensions?.[nn]?.propertyTextures;if(s)for(let i of s){let a=e[i];jE(t,a,r,n)}}function jE(t,e,r,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let o=e.class;for(let s in e.properties){let i=`${o}_${s}`,a=e.properties?.[s];if(!a)continue;a.data||(a.data=[]);let c=a.data,l=tn(t,a,r);l!==null&&(ui(t,i,l,c,r),a.data=c,n.dataAttributeNames.push(i))}}function qE(t,e,r){let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=JE(t,e,i,o,a);a.data=c}}}function JE(t,e,r,n,o){let s=[],i=o.values,a=t.getTypedArrayForBufferView(i),c=WE(t,r,o,n),l=XE(t,o,n);switch(r.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{s=KE(r,n,a,c);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${r.type}`);case"STRING":{s=di(n,a,c,l);break}case"ENUM":{s=YE(e,r,n,a,c);break}default:throw new Error(`Unknown classProperty type ${r.type}`)}return s}function WE(t,e,r,n){return e.array&&typeof e.count>"u"&&typeof r.arrayOffsets<"u"?$r(t,r.arrayOffsets,r.arrayOffsetType||"UINT32",n):null}function XE(t,e,r){return typeof e.stringOffsets<"u"?$r(t,e.stringOffsets,e.stringOffsetType||"UINT32",r):null}function KE(t,e,r,n){let o=t.array,s=t.count,i=ho(t.type,t.componentType),a=r.byteLength/i,c;return t.componentType?c=en(r,t.type,t.componentType,a):c=r,o?n?hi(c,e,n,r.length,i):s?pi(c,e,s):[]:c}function YE(t,e,r,n,o){let s=e.enumType;if(!s)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let i=t.enums?.[s];if(!i)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${s}`);let a=i.valueType||"UINT16",c=ho(e.type,a),l=n.byteLength/c,f=en(n,e.type,a,l);if(f||(f=n),e.array){if(o)return QE({valuesData:f,numberOfElements:r,arrayOffsets:o,valuesDataBytesLength:n.length,elementSize:c,enumEntry:i});let u=e.count;return u?ZE(f,r,u,i):[]}return hl(f,0,r,i)}function QE(t){let{valuesData:e,numberOfElements:r,arrayOffsets:n,valuesDataBytesLength:o,elementSize:s,enumEntry:i}=t,a=[];for(let c=0;c<r;c++){let l=n[c],f=n[c+1]-n[c];if(f+l>o)break;let u=l/s,h=f/s,p=hl(e,u,h,i);a.push(p)}return a}function ZE(t,e,r,n){let o=[];for(let s=0;s<e;s++){let i=r*s,a=hl(t,i,r,n);o.push(a)}return o}function hl(t,e,r,n){let o=[];for(let s=0;s<r;s++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)o.push("");else{let i=t[e+s],a=$E(n,i);a?o.push(a.name):o.push("")}return o}function $E(t,e){for(let r of t.values)if(r.value===e)return r;return null}var eM="schemaClassId";function tM(t,e){let r=t.getExtension(nn);if(r&&r.propertyTables)for(let n of r.propertyTables){let o=n.class,s=r.schema?.classes?.[o];n.properties&&s&&rM(n,s,t)}}function rM(t,e,r){for(let n in t.properties){let o=t.properties[n].data;if(o){let s=e.properties[n];if(s){let i=iM(o,s,r);t.properties[n]=i}}}}function nM(t,e,r=eM){let n=t.getExtension(nn);n||(n=t.addExtension(nn)),n.schema=oM(e,r,n.schema);let o=sM(e,r,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(o)-1}function oM(t,e,r){let n=r??{id:"schema_id"},o={properties:{}};for(let s of t){let i={type:s.elementType,componentType:s.componentType};o.properties[s.name]=i}return n.classes={},n.classes[e]=o,n}function sM(t,e,r){let n={class:e,count:0},o=0,s=r.classes?.[e];for(let i of t){if(o===0&&(o=i.values.length),o!==i.values.length&&i.values.length)throw new Error("Illegal values in attributes");s?.properties[i.name]&&(n.properties||(n.properties={}),n.properties[i.name]={values:0,data:i.values})}return n.count=o,n}function iM(t,e,r){let n={values:0};if(e.type==="STRING"){let{stringData:o,stringOffsets:s}=lM(t);n.stringOffsets=ul(s,r),n.values=ul(o,r)}else if(e.type==="SCALAR"&&e.componentType){let o=cM(t,e.componentType);n.values=ul(o,r)}return n}var aM={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function cM(t,e){let r=[];for(let o of t)r.push(Number(o));let n=aM[e];if(!n)throw new Error("Illegal component type");return new n(r)}function lM(t){let e=new TextEncoder,r=[],n=0;for(let c of t){let l=e.encode(c);n+=l.length,r.push(l)}let o=new Uint8Array(n),s=[],i=0;for(let c of r)o.set(c,i),s.push(i),i+=c.length;s.push(i);let a=new Uint32Array(s);return{stringData:o,stringOffsets:a}}function ul(t,e){return e.gltf.buffers.push({arrayBuffer:Ft(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength}),e.addBufferView(t)}var dl={};pe(dl,{decode:()=>uM,name:()=>fM});var vg="EXT_feature_metadata",fM=vg;async function uM(t,e){let r=new q(t);hM(r,e)}function hM(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(vg);r&&(e.gltf?.loadImages&&pM(t,r),dM(t,r))}function pM(t,e){let r=e.schema;if(!r)return;let n=r.classes,{featureTextures:o}=e;if(n&&o)for(let s in n){let i=n[s],a=gM(o,s);a&&AM(t,a,i)}}function dM(t,e){let r=e.schema;if(!r)return;let n=r.classes,o=e.featureTables;if(n&&o)for(let s in n){let i=mM(o,s);i&&bM(t,r,i)}}function mM(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function gM(t,e){for(let r in t){let n=t[r];if(n.class===e)return n}return null}function bM(t,e,r){if(!r.class)return;let n=e.classes?.[r.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let o=r.count;for(let s in n.properties){let i=n.properties[s],a=r.properties?.[s];if(a){let c=xM(t,e,i,o,a);a.data=c}}}function AM(t,e,r){let n=e.class;for(let o in r.properties){let s=e?.properties?.[o];if(s){let i=CM(t,s,n);s.data=i}}}function xM(t,e,r,n,o){let s=[],i=o.bufferView,a=t.getTypedArrayForBufferView(i),c=TM(t,r,o,n),l=yM(t,r,o,n);return r.type==="STRING"||r.componentType==="STRING"?s=di(n,a,c,l):SM(r)&&(s=_M(r,n,a,c)),s}function TM(t,e,r,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof r.arrayOffsetBufferView<"u"?$r(t,r.arrayOffsetBufferView,r.offsetType||"UINT32",n):null}function yM(t,e,r,n){return typeof r.stringOffsetBufferView<"u"?$r(t,r.stringOffsetBufferView,r.offsetType||"UINT32",n):null}function SM(t){let e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(t.type)||typeof t.componentType<"u"&&e.includes(t.componentType)}function _M(t,e,r,n){let o=t.type==="ARRAY",s=t.componentCount,i="SCALAR",a=t.componentType||t.type,c=ho(i,a),l=r.byteLength/c,f=en(r,i,a,l);return o?n?hi(f,e,n,r.length,c):s?pi(f,e,s):[]:f}function CM(t,e,r){let n=t.gltf.json;if(!n.meshes)return[];let o=[];for(let s of n.meshes)for(let i of s.primitives)EM(t,r,e,o,i);return o}function EM(t,e,r,n,o){let s={channels:r.channels,...r.texture},i=tn(t,s,o);i&&ui(t,e,i,n,o)}var Rg="4.4.3";var wg="4.4.3";var mi={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},Lg;async function gl(t){ac(t.modules);let e=cc("basis");return e||(Lg||=MM(t),await Lg)}async function MM(t){let e=null,r=null;return[e,r]=await Promise.all([await Oe(mi.TRANSCODER,"textures",t),await Oe(mi.TRANSCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await IM(e,r)}function IM(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,initializeBasis:i}=o;i(),n({BasisFile:s})})})}var ml;async function bl(t){let e=t.modules||{};return e.basisEncoder?e.basisEncoder:(ml=ml||BM(t),await ml)}async function BM(t){let e=null,r=null;return[e,r]=await Promise.all([await Oe(mi.ENCODER,"textures",t),await Oe(mi.ENCODER_WASM,"textures",t)]),e=e||globalThis.BASIS,await vM(e,r)}function vM(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(n=>{t(r).then(o=>{let{BasisFile:s,KTX2File:i,initializeBasis:a,BasisEncoder:c}=o;a(),n({BasisFile:s,KTX2File:i,BasisEncoder:c})})})}var RM=["","WEBKIT_","MOZ_"],Fg={WEBGL_compressed_texture_s3tc:["bc1-rgb-unorm-webgl","bc1-rgba-unorm","bc2-rgba-unorm","bc3-rgba-unorm"],WEBGL_compressed_texture_s3tc_srgb:["bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm-srgb","bc2-rgba-unorm-srgb","bc3-rgba-unorm-srgb"],EXT_texture_compression_rgtc:["bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm"],EXT_texture_compression_bptc:["bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb"],WEBGL_compressed_texture_etc1:["etc1-rgb-unorm-webgl"],WEBGL_compressed_texture_etc:["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"],WEBGL_compressed_texture_pvrtc:["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"],WEBGL_compressed_texture_atc:["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"],WEBGL_compressed_texture_astc:["astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"]};var gi=null;function Pg(t){if(!gi){t=t||wM()||void 0,gi=new Set;for(let e of RM)for(let r in Fg)if(t&&t.getExtension(`${e}${r}`))for(let n of Fg[r])gi.add(n)}return gi}function wM(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var Le=[171,75,84,88,32,50,48,187,13,10,26,10];function Ng(t){let e=new Uint8Array(t);return!(e.byteLength<Le.length||e[0]!==Le[0]||e[1]!==Le[1]||e[2]!==Le[2]||e[3]!==Le[3]||e[4]!==Le[4]||e[5]!==Le[5]||e[6]!==Le[6]||e[7]!==Le[7]||e[8]!==Le[8]||e[9]!==Le[9]||e[10]!==Le[10]||e[11]!==Le[11])}var Og=Promise.resolve(),Gg={etc1:{basisFormat:0,compressed:!0,format:36196,textureFormat:"etc1-rgb-unorm-webgl"},etc2:{basisFormat:1,compressed:!0,format:37493,textureFormat:"etc2-rgba8unorm"},bc1:{basisFormat:2,compressed:!0,format:33776,textureFormat:"bc1-rgb-unorm-webgl"},bc3:{basisFormat:3,compressed:!0,format:33779,textureFormat:"bc3-rgba-unorm"},bc4:{basisFormat:4,compressed:!0,format:36283,textureFormat:"bc4-r-unorm"},bc5:{basisFormat:5,compressed:!0,format:36285,textureFormat:"bc5-rg-unorm"},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"bc7-m5":{basisFormat:7,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:35840,textureFormat:"pvrtc-rgb4unorm-webgl"},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:35842,textureFormat:"pvrtc-rgba4unorm-webgl"},"astc-4x4":{basisFormat:10,compressed:!0,format:37808,textureFormat:"astc-4x4-unorm"},"atc-rgb":{basisFormat:11,compressed:!0,format:35986,textureFormat:"atc-rgb-unorm-webgl"},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0,format:34798,textureFormat:"atc-rgbai-unorm-webgl"},rgba32:{basisFormat:13,compressed:!1,format:32856,textureFormat:"rgba8unorm"},rgb565:{basisFormat:14,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},bgr565:{basisFormat:15,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},rgba4444:{basisFormat:16,compressed:!1,format:32854,textureFormat:"rgba4unorm-webgl"}},i9=Object.freeze(Object.keys(Gg));async function PM(t){let e=Og,r;Og=new Promise(n=>{r=n}),await e;try{return await t()}finally{r()}}async function Vg(t,e={}){let r=Pn(e);return await PM(async()=>{if(!e.basis?.containerFormat||e.basis.containerFormat==="auto"){if(Ng(t)){let o=await bl(r);return Ug(o.KTX2File,t,e)}let{BasisFile:n}=await gl(r);return Al(n,t,e)}if(e.basis.module==="encoder"){let n=await bl(r);return e.basis.containerFormat==="ktx2"?Ug(n.KTX2File,t,e):Al(n.BasisFile,t,e)}else{let{BasisFile:o}=await gl(r);return Al(o,t,e)}})}function Al(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");let o=n.getNumImages(),s=[];for(let i=0;i<o;i++){let a=n.getNumLevels(i),c=[];for(let l=0;l<a;l++)c.push(NM(n,i,l,r));s.push(c)}return s}finally{n.close(),n.delete()}}function NM(t,e,r,n){let o=t.getImageWidth(e,r),s=t.getImageHeight(e,r),i=t.getHasAlpha(),{compressed:a,format:c,basisFormat:l,textureFormat:f}=Hg(n,i),u=t.getImageTranscodedSizeInBytes(e,r,l),h=new Uint8Array(u);if(!t.transcodeImage(h,e,r,l,0,0))throw new Error("failed to start Basis transcoding");return{shape:"texture-level",width:o,height:s,data:h,compressed:a,...c!==void 0?{format:c}:{},...f!==void 0?{textureFormat:f}:{},hasAlpha:i}}function Ug(t,e,r){let n=new t(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");let o=n.getLevels(),s=[];for(let i=0;i<o;i++)s.push(OM(n,i,r));return[s]}finally{n.close(),n.delete()}}function OM(t,e,r){let{alphaFlag:n,height:o,width:s}=t.getImageLevelInfo(e,0,0),{compressed:i,format:a,basisFormat:c,textureFormat:l}=Hg(r,n),f=t.getImageTranscodedSizeInBytes(e,0,0,c),u=new Uint8Array(f);if(!t.transcodeImage(u,e,0,0,c,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{shape:"texture-level",width:s,height:o,data:u,compressed:i,...a!==void 0?{format:a}:{},...l!==void 0?{textureFormat:l}:{},levelSize:f,hasAlpha:n}}function Hg(t,e){let r=t.basis?.format||"auto";r==="auto"&&(r=t.basis?.supportedTextureFormats?Dg(t.basis.supportedTextureFormats):Dg()),typeof r=="object"&&(r=e?r.alpha:r.noAlpha);let n=r.toLowerCase(),o=Gg[n];if(!o)throw new Error(`Unknown Basis format ${r}`);return o}function Dg(t=Pg()){let e=new Set(t);return on(e,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":on(e,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:on(e,["bc1-rgb-unorm-webgl","bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb"])?{alpha:"bc3",noAlpha:"bc1"}:on(e,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:on(e,["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"])?"etc2":e.has("etc1-rgb-unorm-webgl")?"etc1":on(e,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function on(t,e){return e.some(r=>t.has(r))}var kg={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:wg,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",containerFormat:"auto",module:"transcoder"}}},xl={...kg,parse:Vg};var sn=!0,zg=1735152710,Sl=12,bi=8,UM=1313821514,DM=5130562,GM=0,VM=0,HM=1;function kM(t,e=0){return`${String.fromCharCode(t.getUint8(e+0))}${String.fromCharCode(t.getUint8(e+1))}${String.fromCharCode(t.getUint8(e+2))}${String.fromCharCode(t.getUint8(e+3))}`}function jg(t,e=0,r={}){let n=new DataView(t),{magic:o=zg}=r,s=n.getUint32(e,!1);return s===o||s===zg}function qg(t,e,r=0,n={}){let o=new DataView(e),s=kM(o,r+0),i=o.getUint32(r+4,sn),a=o.getUint32(r+8,sn);switch(Object.assign(t,{header:{byteOffset:r,byteLength:a,hasBinChunk:!1},type:s,version:i,json:{},binChunks:[]}),r+=Sl,t.version){case 1:return zM(t,o,r);case 2:return jM(t,o,r,n={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function zM(t,e,r){k(t.header.byteLength>Sl+bi);let n=e.getUint32(r+0,sn),o=e.getUint32(r+4,sn);return r+=bi,k(o===GM),Tl(t,e,r,n),r+=n,r+=yl(t,e,r,t.header.byteLength),r}function jM(t,e,r,n){return k(t.header.byteLength>Sl+bi),qM(t,e,r,n),r+t.header.byteLength}function qM(t,e,r,n){for(;r+8<=t.header.byteLength;){let o=e.getUint32(r+0,sn),s=e.getUint32(r+4,sn);switch(r+=bi,s){case UM:Tl(t,e,r,o);break;case DM:yl(t,e,r,o);break;case VM:n.strict||Tl(t,e,r,o);break;case HM:n.strict||yl(t,e,r,o);break;default:break}r+=Rt(o,4)}return r}function Tl(t,e,r,n){let o=new Uint8Array(e.buffer,r,n),i=new TextDecoder("utf8").decode(o);return t.json=JSON.parse(i),Rt(n,4)}function yl(t,e,r,n){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:n,arrayBuffer:e.buffer}),Rt(n,4)}function _l(t,e,r){if(t.startsWith("data:")||t.startsWith("http:")||t.startsWith("https:"))return t;let o=r?.baseUrl||JM(e?.core?.baseUrl);if(!o)throw new Error(`'baseUrl' must be provided to resolve relative url ${t}`);return o.endsWith("/")?`${o}${t}`:`${o}/${t}`}function JM(t){if(!t)return;if(t.endsWith("/"))return t;let e=t.lastIndexOf("/");return e>=0?t.slice(0,e+1):""}var El={};pe(El,{decode:()=>oI,name:()=>nI});var WM="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",XM="B9h9z9tFBBBF8dL9gBB9gLaaaaaFa9gEaaaB9gGaaB9gFaFaEQSBBFBFFGEGEGIILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBNn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBcI9z9iqlBMc/j9JSIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMkRIbaG97FaK978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAnDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAnDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBRnCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBHiCFD9tAiAPD9OD9hD9RHiDQBTFtGmEYIPLdKeOnH8ZAIAQJDBIBHpCFD9tApAPD9OD9hD9RHpAIASJDBIBHyCFD9tAyAPD9OD9hD9RHyDQBTFtGmEYIPLdKeOnH8cDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAnD9uHnDyBjGBAEAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnA8ZA8cDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNiV8ZcpMyS8cQ8df8eb8fHdApAyDQNiV8ZcpMyS8cQ8df8eb8fHiDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/xLGEaK978jUUUUBCAlHE8kUUUUBGXGXAGCI9HQBGXAFC98ZHI9FQBABRGCBRLEXAGAGDBBBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMBBAGCTJRGALCIJHLAI9JQBMMAIAF9PQFAEAFCEZHLCGWHGqCBCTAGl/8MBAEABAICGWJHIAG/8cBBGXAL9FQBAEAEDBIBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMIBMAIAEAG/8cBBSFMABAFC98ZHGT+HUUUBAGAF9PQBAEAFCEZHICEWHLJCBCAALl/8MBAEABAGCEWJHGAL/8cBBAEAIT+HUUUBAGAEAL/8cBBMAECAJ8kUUUUBM+yEGGaO97GXAF9FQBCBRGEXABCTJHEAEDBBBHICBDtHLCUU98D8cFCUU98D8cEHKD9OABDBBBHOAIDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAOAIDQBFGENVcMTtmYi8ZpyHICTD+sFD/6FHND/gFAICTD+rFCTD+sFD/6FHVD/gFD/kFD/lFHI9DB/+g6DYAVAIALD+2FHLAVCUUUU94DtHcD9OD9RD/kFHVAVD/mFAIAID/mFANALANAcD9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHLD/kFCTD+rFAVAND/mFALD/kFCggEDtD9OD9QHVAIAND/mFALD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHIDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAOAKD9OAVAIDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM94FEa8jUUUUBCAlHE8kUUUUBABAFC98ZHIT+JUUUBGXAIAF9PQBAEAFCEZHLCEWHFJCBCAAFl/8MBAEABAICEWJHBAF/8cBBAEALT+JUUUBABAEAF/8cBBMAECAJ8kUUUUBM/hEIGaF97FaL978jUUUUBCTlRGGXAF9FQBCBREEXAGABDBBBHIABCTJHLDBBBHKDQILKOSQfbPden8c8d8e8fHOCTD+sFHNCID+rFDMIBAB9DBBU8/DY9D/zI818/DYANCEDtD9QD/6FD/nFHNAIAKDQBFGENVcMTtmYi8ZpyHICTD+rFCTD+sFD/6FD/mFHKAKD/mFANAICTD+sFD/6FD/mFHVAVD/mFANAOCTD+rFCTD+sFD/6FD/mFHOAOD/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHND/mF9DBBX9LDYHID/kFCggEDtHcD9OAVAND/mFAID/kFCTD+rFD9QHVAOAND/mFAID/kFCTD+rFAKAND/mFAID/kFAcD9OD9QHNDQBFTtGEmYILPdKOenHID8dBAGDBIBDyB+t+J83EBABCNJAID8dFAGDBIBDyF+t+J83EBALAVANDQNVi8ZcMpySQ8c8dfb8e8fHND8dBAGDBIBDyG+t+J83EBABCiJAND8dFAGDBIBDyE+t+J83EBABCAJRBAECIJHEAF9JQBMMM/3FGEaF978jUUUUBCoBlREGXAGCGrAF9sHIC98ZHL9FQBCBRGABRFEXAFAFDBBBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBAFCTJRFAGCIJHGAL9JQBMMGXALAI9PQBAEAICEZHGCGWHFqCBCoBAFl/8MBAEABALCGWJHLAF/8cBBGXAG9FQBAEAEDBIBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMIBMALAEAF/8cBBMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",KM=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]),YM=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]),QM={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},ZM={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function Jg(t,e,r,n,o,s="NONE"){let i=await $M();rI(i,i.exports[ZM[o]],t,e,r,n,i.exports[QM[s||"NONE"]])}var Cl;async function $M(){return Cl||(Cl=eI()),Cl}async function eI(){let t=WM;WebAssembly.validate(KM)&&(t=XM,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=await WebAssembly.instantiate(tI(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function tI(t){let e=new Uint8Array(t.length);for(let n=0;n<t.length;++n){let o=t.charCodeAt(n);e[n]=o>96?o-71:o>64?o-65:o>47?o+4:o>46?63:62}let r=0;for(let n=0;n<t.length;++n)e[r++]=e[n]<60?YM[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,r)}function rI(t,e,r,n,o,s,i){let a=t.exports.sbrk,c=n+3&-4,l=a(c*o),f=a(s.length),u=new Uint8Array(t.exports.memory.buffer);u.set(s,f);let h=e(l,n,o,f,s.length);if(h===0&&i&&i(l,c,o),r.set(u.subarray(l,l+n*o)),a(l-a(0)),h!==0)throw new Error(`Malformed buffer data: ${h}`)}var Ai="EXT_meshopt_compression",nI=Ai;async function oI(t,e){let r=new q(t);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;let n=[];for(let o of t.json.bufferViews||[])n.push(sI(r,o));await Promise.all(n),r.removeExtension(Ai)}async function sI(t,e){let r=t.getObjectExtension(e,Ai);if(r){let{byteOffset:n=0,byteLength:o=0,byteStride:s,count:i,mode:a,filter:c="NONE",buffer:l}=r,f=t.gltf.buffers[l],u=new Uint8Array(f.arrayBuffer,f.byteOffset+n,o),h=new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await Jg(h,i,s,u,a,c),t.removeObjectExtension(e,Ai)}}var Ml={};pe(Ml,{name:()=>iI,preprocess:()=>aI});var an="EXT_texture_webp",iI=an;function aI(t,e){let r=new q(t);if(!Sc("image/webp")){if(r.getRequiredExtensions().includes(an))throw new Error(`gltf: Required extension ${an} not supported by browser`);return}let{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,an);s&&(o.source=s.source),r.removeObjectExtension(o,an)}r.removeExtension(an)}var Il={};pe(Il,{name:()=>cI,preprocess:()=>lI});var xi="KHR_texture_basisu",cI=xi;function lI(t,e){let r=new q(t),{json:n}=r;for(let o of n.textures||[]){let s=r.getObjectExtension(o,xi);s&&(o.source=s.source,r.removeObjectExtension(o,xi))}r.removeExtension(xi)}var vl={};pe(vl,{decode:()=>dI,encode:()=>mI,name:()=>hI,preprocess:()=>pI});function Wg(t){let e={};for(let r in t){let n=t[r];if(r!=="indices"){let o=Bl(n);e[r]=o}}return e}function Bl(t){let{buffer:e,size:r,count:n}=fI(t);return{value:e,size:r,byteOffset:0,count:n,type:fi(r),componentType:Gt(e)}}function fI(t){let e=t,r=1,n=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=uI(e,Float32Array)),n=e.length/r),{buffer:e,size:r,count:n}}function uI(t,e,r=!1){return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var Vt="KHR_draco_mesh_compression",hI=Vt;function pI(t,e,r){let n=new q(t);for(let o of Xg(n))n.getObjectExtension(o,Vt)}async function dI(t,e,r){if(!e?.gltf?.decompressMeshes)return;let n=new q(t),o=[];for(let s of Xg(n))n.getObjectExtension(s,Vt)&&o.push(gI(n,s,e,r));await Promise.all(o),n.removeExtension(Vt)}function mI(t,e={}){let r=new q(t);for(let n of r.json.meshes||[])bI(n,e),r.addRequiredExtension(Vt)}async function gI(t,e,r,n){let o=t.getObjectExtension(e,Vt);if(!o)return;let s=t.getTypedArrayForBufferView(o.bufferView),i=$t(s.buffer,s.byteOffset),a={...r};delete a["3d-tiles"];let c=await we(i,fo,a,n),l=Wg(c.attributes);for(let[f,u]of Object.entries(l))if(f in e.attributes){let h=e.attributes[f],p=t.getAccessor(h);p?.min&&p?.max&&(u.min=p.min,u.max=p.max)}e.attributes=l,c.indices&&(e.indices=Bl(c.indices)),t.removeObjectExtension(e,Vt),AI(e)}function bI(t,e,r=4,n,o){if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let s=n.DracoWriter.encodeSync({attributes:t}),i=o?.parseSync?.({attributes:t}),a=n._addFauxAttributes(i.attributes),c=n.addBufferView(s);return{primitives:[{attributes:a,mode:r,extensions:{[Vt]:{bufferView:c,attributes:a}}}]}}function AI(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*Xg(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Rl={};pe(Rl,{decode:()=>SI,name:()=>xI});var yi="KHR_texture_transform",xI=yi,Ti=new S,TI=new z,yI=new z;async function SI(t,e){if(!new q(t).hasExtension(yi)||!e.gltf?.loadBuffers)return;let o=t.json.materials||[];for(let s=0;s<o.length;s++)_I(s,t)}function _I(t,e){let r=e.json.materials?.[t],n=[r?.pbrMetallicRoughness?.baseColorTexture,r?.emissiveTexture,r?.normalTexture,r?.occlusionTexture,r?.pbrMetallicRoughness?.metallicRoughnessTexture],o=[];for(let s of n)s&&s?.extensions?.[yi]&&CI(e,t,s,o)}function CI(t,e,r,n){let o=EI(r,n);if(!o)return;let s=t.json.meshes||[];for(let i of s)for(let a of i.primitives){let c=a.material;Number.isFinite(c)&&e===c&&MI(t,a,o)}}function EI(t,e){let r=t.extensions?.[yi],{texCoord:n=0}=t,{texCoord:o=n}=r;if(!(e.findIndex(([i,a])=>i===n&&a===o)!==-1)){let i=vI(r);return n!==o&&(t.texCoord=o),e.push([n,o]),{originalTexCoord:n,texCoord:o,matrix:i}}return null}function MI(t,e,r){let{originalTexCoord:n,texCoord:o,matrix:s}=r,i=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(i)){let a=t.json.accessors?.[i];if(a&&a.bufferView!==void 0){let c=t.json.bufferViews?.[a.bufferView];if(c){let{arrayBuffer:l,byteOffset:f}=t.buffers[c.buffer],u=(f||0)+(a.byteOffset||0)+(c.byteOffset||0),{ArrayType:h,length:p}=Zr(a,c),d=li[a.componentType],m=ci[a.type],b=c.byteStride||d*m,x=new Float32Array(p);for(let y=0;y<a.count;y++){let _=new h(l,u+y*b,2);Ti.set(_[0],_[1],1),Ti.transformByMatrix3(s),x.set([Ti[0],Ti[1]],y*m)}n===o?II(a,t,x,a.bufferView):BI(o,a,e,t,x)}}}}function II(t,e,r,n){t.componentType=5126,t.byteOffset=0;let i=(e.json.accessors||[]).reduce((l,f)=>f.bufferView===n?l+1:l,0)>1;e.buffers.push({arrayBuffer:Ft(r.buffer),byteOffset:0,byteLength:r.buffer.byteLength});let a=e.buffers.length-1;if(e.json.bufferViews=e.json.bufferViews||[],i){e.json.bufferViews.push({buffer:a,byteLength:r.buffer.byteLength,byteOffset:0}),t.bufferView=e.json.bufferViews.length-1;return}let c=e.json.bufferViews[n];c&&(c.buffer=a,c.byteOffset=0,c.byteLength=r.buffer.byteLength,c.byteStride!==void 0&&delete c.byteStride)}function BI(t,e,r,n,o){n.buffers.push({arrayBuffer:Ft(o.buffer),byteOffset:0,byteLength:o.buffer.byteLength}),n.json.bufferViews=n.json.bufferViews||[];let s=n.json.bufferViews;s.push({buffer:n.buffers.length-1,byteLength:o.buffer.byteLength,byteOffset:0});let i=n.json.accessors;i&&(i.push({bufferView:s?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),r.attributes[`TEXCOORD_${t}`]=i.length-1)}function vI(t){let{offset:e=[0,0],rotation:r=0,scale:n=[1,1]}=t,o=new z().set(1,0,0,0,1,0,e[0],e[1],1),s=TI.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),i=yI.set(n[0],0,0,0,n[1],0,0,0,1);return o.multiplyRight(s).multiplyRight(i)}var wl={};pe(wl,{decode:()=>wI,encode:()=>LI,name:()=>RI});var dr="KHR_lights_punctual",RI=dr;async function wI(t){let e=new q(t),{json:r}=e,n=e.getExtension(dr);n&&(e.json.lights=n.lights,e.removeExtension(dr));for(let o of r.nodes||[]){let s=e.getObjectExtension(o,dr);s&&(o.light=s.light),e.removeObjectExtension(o,dr)}}async function LI(t){let e=new q(t),{json:r}=e;if(r.lights){let n=e.addExtension(dr);le(!n.lights),n.lights=r.lights,delete r.lights}if(e.json.lights){for(let n of e.json.lights){let o=n.node;e.addObjectExtension(o,dr,n)}delete e.json.lights}}var Ll={};pe(Ll,{decode:()=>PI,encode:()=>NI,name:()=>FI});var po="KHR_materials_unlit",FI=po;async function PI(t){let e=new q(t),{json:r}=e;for(let n of r.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,po);e.removeExtension(po)}function NI(t){let e=new q(t),{json:r}=e;if(e.materials)for(let n of r.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,po,{}),e.addExtension(po))}var Fl={};pe(Fl,{decode:()=>UI,encode:()=>DI,name:()=>OI});var mo="KHR_techniques_webgl",OI=mo;async function UI(t){let e=new q(t),{json:r}=e,n=e.getExtension(mo);if(n){let o=GI(n,e);for(let s of r.materials||[]){let i=e.getObjectExtension(s,mo);i&&(s.technique=Object.assign({},i,o[i.technique]),s.technique.values=VI(s.technique,e)),e.removeObjectExtension(s,mo)}e.removeExtension(mo)}}async function DI(t,e){}function GI(t,e){let{programs:r=[],shaders:n=[],techniques:o=[]}=t,s=new TextDecoder;return n.forEach(i=>{if(Number.isFinite(i.bufferView))i.code=s.decode(e.getTypedArrayForBufferView(i.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),r.forEach(i=>{i.fragmentShader=n[i.fragmentShader],i.vertexShader=n[i.vertexShader]}),o.forEach(i=>{i.program=r[i.program]}),o}function VI(t,e){let r=Object.assign({},t.values);return Object.keys(t.uniforms||{}).forEach(n=>{t.uniforms[n].value&&!(n in r)&&(r[n]=t.uniforms[n].value)}),Object.keys(r).forEach(n=>{typeof r[n]=="object"&&r[n].index!==void 0&&(r[n].texture=e.getTexture(r[n].index))}),r}var Kg=[pl,fl,El,Ml,Il,vl,wl,Ll,Fl,Rl,dl];function Yg(t,e={},r){let n=Kg.filter(o=>Zg(o.name,e));for(let o of n)o.preprocess?.(t,e,r)}async function Qg(t,e={},r){let n=Kg.filter(o=>Zg(o.name,e));for(let o of n)await o.decode?.(t,e,r)}function Zg(t,e){let r=e?.gltf?.excludeExtensions||{};return!(t in r&&!r[t])}var Pl="KHR_binary_glTF";function $g(t){let e=new q(t),{json:r}=e;for(let n of r.images||[]){let o=e.getObjectExtension(n,Pl);o&&Object.assign(n,o),e.removeObjectExtension(n,Pl)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension(Pl)}var e0={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},kI={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},Nl=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,r){this.json=e.json;let n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!r.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(n),this._convertTopLevelObjectsToArrays(n),$g(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(let r in e0)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let n=e[r];if(!(!n||Array.isArray(n))){e[r]=[];for(let o in n){let s=n[o];s.id=s.id||o;let i=e[r].length;e[r].push(s),this.idToIndexMap[r][o]=i}}}_convertObjectIdsToArrayIndices(e){for(let r in e0)this._convertIdsToIndices(e,r);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(let r of e.textures)this._convertTextureIds(r);for(let r of e.meshes)this._convertMeshIds(r);for(let r of e.nodes)this._convertNodeIds(r);for(let r of e.scenes)this._convertSceneIds(r)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(let r of e.primitives){let{attributes:n,indices:o,material:s}=r;for(let i in n)n[i]=this._convertIdToIndex(n[i],"accessor");o&&(r.indices=this._convertIdToIndex(o,"accessor")),s&&(r.material=this._convertIdToIndex(s,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(r=>this._convertIdToIndex(r,"node"))),e.meshes&&(e.meshes=e.meshes.map(r=>this._convertIdToIndex(r,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(r=>this._convertIdToIndex(r,"node")))}_convertIdsToIndices(e,r){e[r]||(console.warn(`gltf v1: json doesn't contain attribute ${r}`),e[r]=[]);for(let n of e[r])for(let o in n){let s=n[o],i=this._convertIdToIndex(s,o);n[o]=i}}_convertIdToIndex(e,r){let n=kI[r];if(n in this.idToIndexMap){let o=this.idToIndexMap[n][e];if(!Number.isFinite(o))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return o}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let r of e.materials){r.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let n=r.values?.tex||r.values?.texture2d_0||r.values?.diffuseTex,o=e.textures.findIndex(s=>s.id===n);o!==-1&&(r.pbrMetallicRoughness.baseColorTexture={index:o})}}};function t0(t,e={}){return new Nl().normalize(t,e)}async function r0(t,e,r=0,n,o){return zI(t,e,r,n),t0(t,{normalize:n?.gltf?.normalize}),Yg(t,n,o),n?.gltf?.loadBuffers&&t.json.buffers&&await jI(t,n,o),n?.gltf?.loadImages&&await qI(t,n,o),await Qg(t,n,o),t}function zI(t,e,r,n){if(n.core?.baseUrl&&(t.baseUri=n.core?.baseUrl),e instanceof ArrayBuffer&&!jg(e,r,n.glb)&&(e=new TextDecoder().decode(e)),typeof e=="string")t.json=fc(e);else if(e instanceof ArrayBuffer){let i={};r=qg(i,e,r,n.glb),le(i.type==="glTF",`Invalid GLB magic string ${i.type}`),t._glb=i,t.json=i.json}else le(!1,"GLTF: must be ArrayBuffer or string");let o=t.json.buffers||[];if(t.buffers=new Array(o.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:i}=t._glb;t.buffers[0]={arrayBuffer:i[0].arrayBuffer,byteOffset:i[0].byteOffset,byteLength:i[0].byteLength}}let s=t.json.images||[];t.images=new Array(s.length).fill({})}async function jI(t,e,r){let n=t.json.buffers||[];for(let o=0;o<n.length;++o){let s=n[o];if(s.uri){let{fetch:i}=r;le(i);let a=_l(s.uri,e,r),l=await(await r?.fetch?.(a))?.arrayBuffer?.();t.buffers[o]={arrayBuffer:l,byteOffset:0,byteLength:l.byteLength},delete s.uri}else t.buffers[o]===null&&(t.buffers[o]={arrayBuffer:new ArrayBuffer(s.byteLength),byteOffset:0,byteLength:s.byteLength})}}async function qI(t,e,r){let n=JI(t),o=t.json.images||[],s=[];for(let i of n)s.push(WI(t,o[i],i,e,r));return await Promise.all(s)}function JI(t){let e=new Set,r=t.json.textures||[];for(let n of r)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function WI(t,e,r,n,o){let s;if(e.uri&&!e.hasOwnProperty("bufferView")){let l=_l(e.uri,n,o),{fetch:f}=o;s=await(await f(l)).arrayBuffer(),e.bufferView={data:s}}if(Number.isFinite(e.bufferView)){let l=Cg(t.json,t.buffers,e.bufferView);s=$t(l.buffer,l.byteOffset,l.byteLength)}le(s,"glTF image has no data");let i=n,a={...i,core:{...i?.core,mimeType:e.mimeType}},c=await we(s,[Vr,xl],a,o);c&&c[0]&&(c={compressed:!0,mipmaps:!1,width:c[0].width,height:c[0].height,data:c[0]}),t.images=t.images||[],t.images[r]=c}var mr={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Rg,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:XI,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0}}};async function XI(t,e={},r){let n={...mr.options,...e};n.gltf={...mr.options.gltf,...n.gltf};let o=e?.glb?.byteOffset||0;return await r0({},t,o,n,r)}var KI={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},YI={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Ge={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},QI={magFilter:Ge.TEXTURE_MAG_FILTER,minFilter:Ge.TEXTURE_MIN_FILTER,wrapS:Ge.TEXTURE_WRAP_S,wrapT:Ge.TEXTURE_WRAP_T},ZI={[Ge.TEXTURE_MAG_FILTER]:Ge.LINEAR,[Ge.TEXTURE_MIN_FILTER]:Ge.NEAREST_MIPMAP_LINEAR,[Ge.TEXTURE_WRAP_S]:Ge.REPEAT,[Ge.TEXTURE_WRAP_T]:Ge.REPEAT};function $I(){return{id:"default-sampler",parameters:ZI}}function e2(t){return YI[t]}function t2(t){return KI[t]}var Ol=class{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,r={}){let{json:n,buffers:o=[],images:s=[]}=e,{baseUri:i=""}=e;return le(n),this.baseUri=i,this.buffers=o,this.images=s,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e,r={}){let n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((o,s)=>this._resolveBufferView(o,s))),e.images&&(n.images=e.images.map((o,s)=>this._resolveImage(o,s))),e.samplers&&(n.samplers=e.samplers.map((o,s)=>this._resolveSampler(o,s))),e.textures&&(n.textures=e.textures.map((o,s)=>this._resolveTexture(o,s))),e.accessors&&(n.accessors=e.accessors.map((o,s)=>this._resolveAccessor(o,s))),e.materials&&(n.materials=e.materials.map((o,s)=>this._resolveMaterial(o,s))),e.meshes&&(n.meshes=e.meshes.map((o,s)=>this._resolveMesh(o,s))),e.nodes&&(n.nodes=e.nodes.map((o,s)=>this._resolveNode(o,s)),n.nodes=n.nodes.map((o,s)=>this._resolveNodeChildren(o))),e.skins&&(n.skins=e.skins.map((o,s)=>this._resolveSkin(o,s))),e.scenes&&(n.scenes=e.scenes.map((o,s)=>this._resolveScene(o,s))),typeof this.json.scene=="number"&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,r){if(typeof r=="object")return r;let n=e&&e[r];return n||console.warn(`glTF file error: Could not find ${e}[${r}]`),n}_resolveScene(e,r){return{...e,id:e.id||`scene-${r}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))}}_resolveNode(e,r){let n={...e,id:e?.id||`node-${r}`};return e.mesh!==void 0&&(n.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(n.camera=this.getCamera(e.camera)),e.skin!==void 0&&(n.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(n.mesh=e.meshes.reduce((o,s)=>{let i=this.getMesh(s);return o.id=i.id,o.primitives=o.primitives.concat(i.primitives),o},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(r=>this.getNode(r))),e}_resolveSkin(e,r){let n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${r}`,inverseBindMatrices:n}}_resolveMesh(e,r){let n={...e,id:e.id||`mesh-${r}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(o=>{let s={...o,attributes:{},indices:void 0,material:void 0},i=o.attributes;for(let a in i)s.attributes[a]=this.getAccessor(i[a]);return o.indices!==void 0&&(s.indices=this.getAccessor(o.indices)),o.material!==void 0&&(s.material=this.getMaterial(o.material)),s})),n}_resolveMaterial(e,r){let n={...e,id:e.id||`material-${r}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};let o=n.pbrMetallicRoughness;o.baseColorTexture&&(o.baseColorTexture={...o.baseColorTexture},o.baseColorTexture.texture=this.getTexture(o.baseColorTexture.index)),o.metallicRoughnessTexture&&(o.metallicRoughnessTexture={...o.metallicRoughnessTexture},o.metallicRoughnessTexture.texture=this.getTexture(o.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,r){let n=e2(e.componentType),o=t2(e.type),s=n*o,i={...e,id:e.id||`accessor-${r}`,bytesPerComponent:n,components:o,bytesPerElement:s,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(i.bufferView=this.getBufferView(e.bufferView)),i.bufferView){let a=i.bufferView.buffer,{ArrayType:c,byteLength:l}=Zr(i,i.bufferView),f=(i.bufferView.byteOffset||0)+(i.byteOffset||0)+a.byteOffset,u=Un(a.arrayBuffer,f,l);i.bufferView.byteStride&&(u=this._getValueFromInterleavedBuffer(a,f,i.bufferView.byteStride,i.bytesPerElement,i.count)),i.value=new c(u)}return i}_getValueFromInterleavedBuffer(e,r,n,o,s){let i=new Uint8Array(s*o);for(let a=0;a<s;a++){let c=r+a*n;i.set(new Uint8Array(e.arrayBuffer.slice(c,c+o)),a*o)}return i.buffer}_resolveTexture(e,r){return{...e,id:e.id||`texture-${r}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):$I(),source:typeof e.source=="number"?this.getImage(e.source):void 0}}_resolveSampler(e,r){let n={id:e.id||`sampler-${r}`,...e,parameters:{}};for(let o in n){let s=this._enumSamplerParameter(o);s!==void 0&&(n.parameters[s]=n[o])}return n}_enumSamplerParameter(e){return QI[e]}_resolveImage(e,r){let n={...e,id:e.id||`image-${r}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0},o=this.images[r];return o&&(n.image=o),n}_resolveBufferView(e,r){let n=e.buffer,o=this.buffers[n].arrayBuffer,s=this.buffers[n].byteOffset||0;return e.byteOffset&&(s+=e.byteOffset),{id:`bufferView-${r}`,...e,buffer:this.buffers[n],data:new Uint8Array(o,s,e.byteLength)}}_resolveCamera(e,r){let n={...e,id:e.id||`camera-${r}`};return n.perspective,n.orthographic,n}};function go(t,e){return new Ol().postProcess(t,e)}var Si={URI:0,EMBEDDED:1};function _i(t,e,r,n){t.rotateYtoZ=!0;let o=(t.byteOffset||0)+(t.byteLength||0)-r;if(o===0)throw new Error("glTF byte length must be greater than 0.");return t.gltfUpAxis=n?.["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",t.gltfArrayBuffer=$t(e,r,o),t.gltfByteOffset=0,t.gltfByteLength=o,r%4===0||console.warn(`${t.type}: embedded glb is not aligned to a 4-byte boundary.`),(t.byteOffset||0)+(t.byteLength||0)}async function Ci(t,e,r,n){let o=r?.["3d-tiles"]||{};if(r2(t,e,r),o.loadGLTF){if(!n)return;if(t.gltfUrl){let{fetch:s}=n,i=await s(t.gltfUrl,r?.core);t.gltfArrayBuffer=await i.arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer){let s=await we(t.gltfArrayBuffer,mr,r,n);t.gltf=go(s),t.gpuMemoryUsageInBytes=uo(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}}function r2(t,e,r){switch(e){case Si.URI:if(t.gltfArrayBuffer){let n=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset),s=new TextDecoder().decode(n);t.gltfUrl=s.replace(/[\s\0]+$/,"")}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case Si.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function n0(t,e,r,n,o){r=n2(t,e,r,n,o),await Ci(t,Si.EMBEDDED,n,o);let s=t?.gltf?.extensions;return s&&s.CESIUM_RTC&&(t.rtcCenter=s.CESIUM_RTC.center),r}function n2(t,e,r,n,o){r=Dt(t,e,r),r=Yr(t,e,r),r=Qr(t,e,r,n),r=_i(t,e,r,n);let s=new yt(t.featureTableJson,t.featureTableBinary);return t.rtcCenter=s.getGlobalProperty("RTC_CENTER",N.FLOAT,3),r}async function o0(t,e,r,n,o){return r=o2(t,e,r,n,o),await Ci(t,t.gltfFormat||0,n,o),r}function o2(t,e,r,n,o){if(r=Dt(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=Yr(t,e,r);let s=new DataView(e);if(t.gltfFormat=s.getUint32(r,!0),r+=4,r=Qr(t,e,r,n),r=_i(t,e,r,n),!t?.header?.featureTableJsonByteLength||t.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let i=new yt(t.featureTableJson,t.featureTableBinary),a=i.getGlobalProperty("INSTANCES_LENGTH");if(i.featuresLength=a,!Number.isFinite(a))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");t.eastNorthUp=i.getGlobalProperty("EAST_NORTH_UP"),t.rtcCenter=i.getGlobalProperty("RTC_CENTER",N.FLOAT,3);let c=new pr(t.batchTableJson,t.batchTableBinary,a);return s2(t,i,c,a),r}function s2(t,e,r,n){let o=new Array(n),s=new S,i=new S,a=new S,c=new S,l=new z,f=new tt,u=new S,h={},p=new P,d=[],m=[],b=[],x=[];for(let y=0;y<n;y++){let _;if(e.hasProperty("POSITION"))_=e.getProperty("POSITION",N.FLOAT,3,y,s);else if(e.hasProperty("POSITION_QUANTIZED")){_=e.getProperty("POSITION_QUANTIZED",N.UNSIGNED_SHORT,3,y,s);let g=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",N.FLOAT,3);if(!g)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let B=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",N.FLOAT,3);if(!B)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let w=65535;for(let L=0;L<3;L++)_[L]=_[L]/w*B[L]+g[L]}if(!_)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");s.copy(_),h.translation=s,t.normalUp=e.getProperty("NORMAL_UP",N.FLOAT,3,y,d),t.normalRight=e.getProperty("NORMAL_RIGHT",N.FLOAT,3,y,m);let T=!1;if(t.normalUp){if(!t.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");t.hasCustomOrientation=!0}else{if(t.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",N.UNSIGNED_SHORT,2,y,d),t.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",N.UNSIGNED_SHORT,2,y,m),t.octNormalUp)throw t.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");t.eastNorthUp?(G.WGS84.eastNorthUpToFixedFrame(s,p),p.getRotationMatrix3(l)):l.identity()}T&&(c.copy(i).cross(a).normalize(),l.setColumn(0,i),l.setColumn(1,a),l.setColumn(2,c)),f.fromMatrix3(l),h.rotation=f,u.set(1,1,1);let M=e.getProperty("SCALE",N.FLOAT,1,y,b);Number.isFinite(M)&&u.multiplyByScalar(M);let E=e.getProperty("SCALE_NON_UNIFORM",N.FLOAT,3,y,d);E&&u.scale(E),h.scale=u;let I=e.getProperty("BATCH_ID",N.UNSIGNED_SHORT,1,y,x);I===void 0&&(I=y);let C=new P().fromQuaternion(h.rotation);p.identity(),p.translate(h.translation),p.multiplyRight(C),p.scale(h.scale);let A=p.clone();o[y]={modelMatrix:A,batchId:I}}t.instances=o}async function s0(t,e,r,n,o,s){r=Dt(t,e,r);let i=new DataView(e);for(t.tilesLength=i.getUint32(r,!0),r+=4,t.tiles=[];t.tiles.length<t.tilesLength&&(t.byteLength||0)-r>12;){let a={shape:"tile3d"};t.tiles.push(a),r=await s(e,r,n,o,a)}return r}async function i0(t,e,r,n){if(t.rotateYtoZ=!0,t.gltfUpAxis=r?.["3d-tiles"]?.assetGltfUpAxis?r["3d-tiles"].assetGltfUpAxis:"Y",r?.["3d-tiles"]?.loadGLTF){if(!n)return e.byteLength;let o=await we(e,mr,r,n);t.gltf=go(o),t.gpuMemoryUsageInBytes=uo(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function Ul(t,e=0,r,n,o={shape:"tile3d"}){switch(o.byteOffset=e,o.type=eg(t,e),o.type){case ur.COMPOSITE:return await s0(o,t,e,r,n,Ul);case ur.BATCHED_3D_MODEL:return await n0(o,t,e,r,n);case ur.GLTF:return await i0(o,t,r,n);case ur.INSTANCED_3D_MODEL:return await o0(o,t,e,r,n);case ur.POINT_CLOUD:return await Sg(o,t,e,r,n);default:throw new Error(`3DTileLoader: unknown type ${o.type}`)}}async function Dl(t,e,r){if(new Uint32Array(t.slice(0,4))[0]!==1952609651)throw new Error("Wrong subtree file magic number");if(new Uint32Array(t.slice(4,8))[0]!==1)throw new Error("Wrong subtree file verson, must be 1");let s=a0(t.slice(8,16)),i=new Uint8Array(t,24,s),c=new TextDecoder("utf8").decode(i),l=JSON.parse(c),f=a0(t.slice(16,24)),u=new ArrayBuffer(0);if(f&&(u=t.slice(24+s)),await Ei(l,l.tileAvailability,u,r),Array.isArray(l.contentAvailability))for(let h of l.contentAvailability)await Ei(l,h,u,r);else await Ei(l,l.contentAvailability,u,r);return await Ei(l,l.childSubtreeAvailability,u,r),l}async function Ei(t,e,r,n){let o=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof o!="number")return;let s=t.bufferViews[o],i=t.buffers[s.buffer];if(!n?.baseUrl)throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(i.uri){let c=`${n?.baseUrl||""}/${i.uri}`,f=await(await n.fetch(c)).arrayBuffer();e.explicitBitstream=new Uint8Array(f,s.byteOffset,s.byteLength);return}let a=t.buffers.slice(0,s.buffer).reduce((c,l)=>c+l.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(a,a+i.byteLength),s.byteOffset,s.byteLength)}function a0(t){let e=new DataView(t),r=e.getUint32(0,!0),n=e.getUint32(4,!0);return r+2**32*n}var Mi={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:ii,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:Dl,options:{}};var v0=D(Xt(),1);var E0=D(Xt(),1);var Ve=null;try{Ve=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function $(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}$.prototype.__isLong__;Object.defineProperty($.prototype,"__isLong__",{value:!0});function be(t){return(t&&t.__isLong__)===!0}function c0(t){var e=Math.clz32(t&-t);return t?31-e:e}$.isLong=be;var l0={},f0={};function gr(t,e){var r,n,o;return e?(t>>>=0,(o=0<=t&&t<256)&&(n=f0[t],n)?n:(r=J(t,0,!0),o&&(f0[t]=r),r)):(t|=0,(o=-128<=t&&t<128)&&(n=l0[t],n)?n:(r=J(t,t<0?-1:0,!1),o&&(l0[t]=r),r))}$.fromInt=gr;function He(t,e){if(isNaN(t))return e?St:Qe;if(e){if(t<0)return St;if(t>=d0)return b0}else{if(t<=-h0)return Be;if(t+1>=h0)return g0}return t<0?He(-t,e).neg():J(t%ln|0,t/ln|0,e)}$.fromNumber=He;function J(t,e,r){return new $(t,e,r)}$.fromBits=J;var Ii=Math.pow;function Vl(t,e,r){if(t.length===0)throw Error("empty string");if(typeof e=="number"?(r=e,e=!1):e=!!e,t==="NaN"||t==="Infinity"||t==="+Infinity"||t==="-Infinity")return e?St:Qe;if(r=r||10,r<2||36<r)throw RangeError("radix");var n;if((n=t.indexOf("-"))>0)throw Error("interior hyphen");if(n===0)return Vl(t.substring(1),e,r).neg();for(var o=He(Ii(r,8)),s=Qe,i=0;i<t.length;i+=8){var a=Math.min(8,t.length-i),c=parseInt(t.substring(i,i+a),r);if(a<8){var l=He(Ii(r,a));s=s.mul(l).add(He(c))}else s=s.mul(o),s=s.add(He(c))}return s.unsigned=e,s}$.fromString=Vl;function Ze(t,e){return typeof t=="number"?He(t,e):typeof t=="string"?Vl(t,e):J(t.low,t.high,typeof e=="boolean"?e:t.unsigned)}$.fromValue=Ze;var u0=65536,i2=1<<24,ln=u0*u0,d0=ln*ln,h0=d0/2,p0=gr(i2),Qe=gr(0);$.ZERO=Qe;var St=gr(0,!0);$.UZERO=St;var cn=gr(1);$.ONE=cn;var m0=gr(1,!0);$.UONE=m0;var Gl=gr(-1);$.NEG_ONE=Gl;var g0=J(-1,2147483647,!1);$.MAX_VALUE=g0;var b0=J(-1,-1,!0);$.MAX_UNSIGNED_VALUE=b0;var Be=J(0,-2147483648,!1);$.MIN_VALUE=Be;var v=$.prototype;v.toInt=function(){return this.unsigned?this.low>>>0:this.low};v.toNumber=function(){return this.unsigned?(this.high>>>0)*ln+(this.low>>>0):this.high*ln+(this.low>>>0)};v.toString=function(e){if(e=e||10,e<2||36<e)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Be)){var r=He(e),n=this.div(r),o=n.mul(r).sub(this);return n.toString(e)+o.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var s=He(Ii(e,6),this.unsigned),i=this,a="";;){var c=i.div(s),l=i.sub(c.mul(s)).toInt()>>>0,f=l.toString(e);if(i=c,i.isZero())return f+a;for(;f.length<6;)f="0"+f;a=""+f+a}};v.getHighBits=function(){return this.high};v.getHighBitsUnsigned=function(){return this.high>>>0};v.getLowBits=function(){return this.low};v.getLowBitsUnsigned=function(){return this.low>>>0};v.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Be)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&(e&1<<r)==0;r--);return this.high!=0?r+33:r+1};v.isZero=function(){return this.high===0&&this.low===0};v.eqz=v.isZero;v.isNegative=function(){return!this.unsigned&&this.high<0};v.isPositive=function(){return this.unsigned||this.high>=0};v.isOdd=function(){return(this.low&1)===1};v.isEven=function(){return(this.low&1)===0};v.equals=function(e){return be(e)||(e=Ze(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};v.eq=v.equals;v.notEquals=function(e){return!this.eq(e)};v.neq=v.notEquals;v.ne=v.notEquals;v.lessThan=function(e){return this.comp(e)<0};v.lt=v.lessThan;v.lessThanOrEqual=function(e){return this.comp(e)<=0};v.lte=v.lessThanOrEqual;v.le=v.lessThanOrEqual;v.greaterThan=function(e){return this.comp(e)>0};v.gt=v.greaterThan;v.greaterThanOrEqual=function(e){return this.comp(e)>=0};v.gte=v.greaterThanOrEqual;v.ge=v.greaterThanOrEqual;v.compare=function(e){if(be(e)||(e=Ze(e)),this.eq(e))return 0;var r=this.isNegative(),n=e.isNegative();return r&&!n?-1:!r&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};v.comp=v.compare;v.negate=function(){return!this.unsigned&&this.eq(Be)?Be:this.not().add(cn)};v.neg=v.negate;v.add=function(e){be(e)||(e=Ze(e));var r=this.high>>>16,n=this.high&65535,o=this.low>>>16,s=this.low&65535,i=e.high>>>16,a=e.high&65535,c=e.low>>>16,l=e.low&65535,f=0,u=0,h=0,p=0;return p+=s+l,h+=p>>>16,p&=65535,h+=o+c,u+=h>>>16,h&=65535,u+=n+a,f+=u>>>16,u&=65535,f+=r+i,f&=65535,J(h<<16|p,f<<16|u,this.unsigned)};v.subtract=function(e){return be(e)||(e=Ze(e)),this.add(e.neg())};v.sub=v.subtract;v.multiply=function(e){if(this.isZero())return this;if(be(e)||(e=Ze(e)),Ve){var r=Ve.mul(this.low,this.high,e.low,e.high);return J(r,Ve.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?St:Qe;if(this.eq(Be))return e.isOdd()?Be:Qe;if(e.eq(Be))return this.isOdd()?Be:Qe;if(this.isNegative())return e.isNegative()?this.neg().mul(e.neg()):this.neg().mul(e).neg();if(e.isNegative())return this.mul(e.neg()).neg();if(this.lt(p0)&&e.lt(p0))return He(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,o=this.high&65535,s=this.low>>>16,i=this.low&65535,a=e.high>>>16,c=e.high&65535,l=e.low>>>16,f=e.low&65535,u=0,h=0,p=0,d=0;return d+=i*f,p+=d>>>16,d&=65535,p+=s*f,h+=p>>>16,p&=65535,p+=i*l,h+=p>>>16,p&=65535,h+=o*f,u+=h>>>16,h&=65535,h+=s*l,u+=h>>>16,h&=65535,h+=i*c,u+=h>>>16,h&=65535,u+=n*f+o*l+s*c+i*a,u&=65535,J(p<<16|d,u<<16|h,this.unsigned)};v.mul=v.multiply;v.divide=function(e){if(be(e)||(e=Ze(e)),e.isZero())throw Error("division by zero");if(Ve){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var r=(this.unsigned?Ve.div_u:Ve.div_s)(this.low,this.high,e.low,e.high);return J(r,Ve.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?St:Qe;var n,o,s;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return St;if(e.gt(this.shru(1)))return m0;s=St}else{if(this.eq(Be)){if(e.eq(cn)||e.eq(Gl))return Be;if(e.eq(Be))return cn;var i=this.shr(1);return n=i.div(e).shl(1),n.eq(Qe)?e.isNegative()?cn:Gl:(o=this.sub(e.mul(n)),s=n.add(o.div(e)),s)}else if(e.eq(Be))return this.unsigned?St:Qe;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();s=Qe}for(o=this;o.gte(e);){n=Math.max(1,Math.floor(o.toNumber()/e.toNumber()));for(var a=Math.ceil(Math.log(n)/Math.LN2),c=a<=48?1:Ii(2,a-48),l=He(n),f=l.mul(e);f.isNegative()||f.gt(o);)n-=c,l=He(n,this.unsigned),f=l.mul(e);l.isZero()&&(l=cn),s=s.add(l),o=o.sub(f)}return s};v.div=v.divide;v.modulo=function(e){if(be(e)||(e=Ze(e)),Ve){var r=(this.unsigned?Ve.rem_u:Ve.rem_s)(this.low,this.high,e.low,e.high);return J(r,Ve.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};v.mod=v.modulo;v.rem=v.modulo;v.not=function(){return J(~this.low,~this.high,this.unsigned)};v.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};v.clz=v.countLeadingZeros;v.countTrailingZeros=function(){return this.low?c0(this.low):c0(this.high)+32};v.ctz=v.countTrailingZeros;v.and=function(e){return be(e)||(e=Ze(e)),J(this.low&e.low,this.high&e.high,this.unsigned)};v.or=function(e){return be(e)||(e=Ze(e)),J(this.low|e.low,this.high|e.high,this.unsigned)};v.xor=function(e){return be(e)||(e=Ze(e)),J(this.low^e.low,this.high^e.high,this.unsigned)};v.shiftLeft=function(e){return be(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?J(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):J(0,this.low<<e-32,this.unsigned)};v.shl=v.shiftLeft;v.shiftRight=function(e){return be(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?J(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):J(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};v.shr=v.shiftRight;v.shiftRightUnsigned=function(e){return be(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?J(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?J(this.high,0,this.unsigned):J(this.high>>>e-32,0,this.unsigned)};v.shru=v.shiftRightUnsigned;v.shr_u=v.shiftRightUnsigned;v.rotateLeft=function(e){var r;return be(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?J(this.high,this.low,this.unsigned):e<32?(r=32-e,J(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,J(this.high<<e|this.low>>>r,this.low<<e|this.high>>>r,this.unsigned))};v.rotl=v.rotateLeft;v.rotateRight=function(e){var r;return be(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?J(this.high,this.low,this.unsigned):e<32?(r=32-e,J(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,J(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};v.rotr=v.rotateRight;v.toSigned=function(){return this.unsigned?J(this.low,this.high,!1):this};v.toUnsigned=function(){return this.unsigned?this:J(this.low,this.high,!0)};v.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};v.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};v.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};$.fromBytes=function(e,r,n){return n?$.fromBytesLE(e,r):$.fromBytesBE(e,r)};$.fromBytesLE=function(e,r){return new $(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};$.fromBytesBE=function(e,r){return new $(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)};var fn=$;var a2=16;function bo(t){t==="X"&&(t="");let e=t.padEnd(a2,"0");return fn.fromString(e,!0,16)}function Hl(t){if(t.isZero())return"X";let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let n=e;e*=4;let s=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-s.length).join("0")+s}function kl(t,e){let r=c2(t).shiftRightUnsigned(2);return t.add(fn.fromNumber(2*e+1-4).multiply(r))}function c2(t){return t.and(t.not().add(1))}var l2=3,f2=30,u2=2*f2+1,A0=180/Math.PI;function T0(t){if(t.length===0)throw new Error(`Invalid Hilbert quad key ${t}`);let e=t.split("/"),r=parseInt(e[0],10),n=e[1],o=n.length,s=0,i=[0,0];for(let a=o-1;a>=0;a--){s=o-a;let c=n[a],l=0,f=0;c==="1"?f=1:c==="2"?(l=1,f=1):c==="3"&&(l=1);let u=Math.pow(2,s-1);h2(u,i,l,f),i[0]+=u*l,i[1]+=u*f}if(r%2===1){let a=i[0];i[0]=i[1],i[1]=a}return{face:r,ij:i,level:s}}function y0(t){if(t.isZero())return"";let e=t.toString(2);for(;e.length<l2+u2;)e="0"+e;let r=e.lastIndexOf("1"),n=e.substring(0,3),o=e.substring(3,r),s=o.length/2,i=fn.fromString(n,!0,2).toString(10),a="";if(s!==0)for(a=fn.fromString(o,!0,2).toString(4);a.length<s;)a="0"+a;return`${i}/${a}`}function zl(t,e,r){let n=1<<e;return[(t[0]+r[0])/n,(t[1]+r[1])/n]}function x0(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function jl(t){return[x0(t[0]),x0(t[1])]}function ql(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error("Invalid face")}}function Jl([t,e,r]){let n=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*A0,n*A0]}function h2(t,e,r,n){if(n===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let o=e[0];e[0]=e[1],e[1]=o}}function S0(t){let e=zl(t.ij,t.level,[.5,.5]),r=jl(e),n=ql(t.face,r);return Jl(n)}var p2=100;function Wl(t){let{face:e,ij:r,level:n}=t,o=[[0,0],[0,1],[1,1],[1,0],[0,0]],s=Math.max(1,Math.ceil(p2*Math.pow(2,-n))),i=new Float64Array(4*s*2+2),a=0,c=0;for(let l=0;l<4;l++){let f=o[l].slice(0),u=o[l+1],h=(u[0]-f[0])/s,p=(u[1]-f[1])/s;for(let d=0;d<s;d++){f[0]+=h,f[1]+=p;let m=zl(r,n,f),b=jl(m),x=ql(e,b),y=Jl(x);Math.abs(y[1])>89.999&&(y[0]=c);let _=y[0]-c;y[0]+=_>180?-360:_<-180?360:0,i[a++]=y[0],i[a++]=y[1],c=y[0]}}return i[a++]=i[0],i[a++]=i[1],i}function un(t){let e=d2(t);return T0(e)}function d2(t){if(t.indexOf("/")>0)return t;let e=bo(t);return y0(e)}function Xl(t){let e=un(t);return S0(e)}function C0(t){let e;if(t.face===2||t.face===5){let r=null,n=0;for(let o=0;o<4;o++){let s=`${t.face}/${o}`,i=un(s),a=Wl(i);(typeof r>"u"||r===null)&&(r=new Float64Array(4*a.length)),r.set(a,n),n+=a.length}e=_0(r)}else{let r=Wl(t);e=_0(r)}return e}function _0(t){if(t.length%2!==0)throw new Error("Invalid corners");let e=[],r=[];for(let n=0;n<t.length;n+=2)e.push(t[n]),r.push(t[n+1]);return e.sort((n,o)=>n-o),r.sort((n,o)=>n-o),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function Kl(t,e){let r=e?.minimumHeight||0,n=e?.maximumHeight||0,o=un(t),s=C0(o),i=s.west,a=s.south,c=s.east,l=s.north,f=[];return f.push(new S(i,l,r)),f.push(new S(c,l,r)),f.push(new S(c,a,r)),f.push(new S(i,a,r)),f.push(new S(i,l,n)),f.push(new S(c,l,n)),f.push(new S(c,a,n)),f.push(new S(i,a,n)),f}function Bi(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},n=Kl(e,r),o=Xl(e),s=o[0],i=o[1],a=G.WGS84.cartographicToCartesian([s,i,r.maximumHeight]),c=new S(a[0],a[1],a[2]);n.push(c);let l=Qn(n);return[...l.center,...l.halfAxes]}var m2=4,g2=8,b2={QUADTREE:m2,OCTREE:g2};function A2(t,e,r){if(t?.box){let n=bo(t.s2VolumeInfo.token),o=kl(n,e),s=Hl(o),i={...t.s2VolumeInfo};if(i.token=s,r==="OCTREE"){let l=t.s2VolumeInfo,f=l.maximumHeight-l.minimumHeight,u=f/2,h=l.minimumHeight+f/2;l.minimumHeight=h-u,l.maximumHeight=h+u}return{box:Bi(i),s2VolumeInfo:i}}}async function Ql(t){let{subtree:e,subtreeData:r={level:0,x:0,y:0,z:0},parentData:n={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:o=0,implicitOptions:s,loaderOptions:i,s2VolumeBox:a}=t,{subdivisionScheme:c,subtreeLevels:l,maximumLevel:f,contentUrlTemplate:u,subtreesUriTemplate:h,basePath:p}=s,d={children:[],lodMetricValue:0,contentUrl:""};if(!f)return oc.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${u} won't be loaded...`),d;let m=n.localLevel+1,b=r.level+m;if(b>f)return d;let x=b2[c],y=Math.log2(x),_=o&1,T=o>>1&1,M=o>>2&1,E=br(n.localX,_,1),I=br(n.localY,T,1),C=br(n.localZ,M,1),A=br(r.x,E,m),g=br(r.y,I,m),B=br(r.z,C,m),w=br(n.mortonIndex,o,y),L=m===l&&Yl(e.childSubtreeAvailability,w),R,O,H,U;if(L){let K=`${p}/${h}`,te=vi(K,b,A,g,B);R=await(0,E0.load)(te,Mi,i),U=0,O={level:b,x:A,y:g,z:B},H={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0}}else R=e,U=(x**m-1)/(x-1)+w,O=r,H={mortonIndex:w,localLevel:m,localX:E,localY:I,localZ:C};if(!Yl(R.tileAvailability,U))return d;Yl(R.contentAvailability,U)&&(d.contentUrl=vi(u,b,A,g,B));for(let K=0;K<x;K++){let te=A2(a,K,c),_e=await Ql({subtree:R,subtreeData:O,parentData:H,childIndex:K,implicitOptions:s,loaderOptions:i,s2VolumeBox:te});(_e.contentUrl||_e.children.length)&&d.children.push(_e)}return d.contentUrl||d.children.length?x2(d,{level:b,x:A,y:g,z:B},s,a):d}function Yl(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&oc.once('Not supported extension "3DTILES_multiple_contents" has been detected')):r=t,"constant"in r?!!r.constant:r.explicitBitstream?S2(e,r.explicitBitstream):!1}function x2(t,e,r,n){let{basePath:o,refine:s,getRefine:i,lodMetricType:a,getTileType:c,rootLodMetricValue:l,rootBoundingVolume:f}=r,u=t.contentUrl&&t.contentUrl.replace(`${o}/`,""),h=l/2**e.level,p=n?.box?{box:n.box}:f,d=T2(p,e,r.subdivisionScheme);return{children:t.children,contentUrl:t.contentUrl,content:{uri:u},id:t.contentUrl,refine:i(s),type:c(t),lodMetricType:a,lodMetricValue:h,geometricError:h,transform:t.transform,boundingVolume:d}}function T2(t,e,r){if(t.region){let{level:n,x:o,y:s,z:i}=e,[a,c,l,f,u,h]=t.region,p=2**n,d=(l-a)/p,[m,b]=[a+d*o,a+d*(o+1)],x=(f-c)/p,[y,_]=[c+x*s,c+x*(s+1)],T,M;if(r==="OCTREE"){let E=(h-u)/p;[T,M]=[u+E*i,u+E*(i+1)]}else[T,M]=[u,h];return{region:[m,y,b,_,T,M]}}if(t.box)return t;throw new Error(`Unsupported bounding volume type ${JSON.stringify(t)}`)}function br(t,e,r){return(t<<r)+e}function vi(t,e,r,n,o){let s=y2({level:e,x:r,y:n,z:o});return t.replace(/{level}|{x}|{y}|{z}/gi,i=>s[i])}function y2(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function S2(t,e){let r=Math.floor(t/8),n=t%8;return(e[r]>>n&1)===1}function $l(t,e=""){if(!e)return De.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return De.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return De.SCENEGRAPH;default:return n||De.EMPTY}}function ef(t){switch(t){case"REPLACE":case"replace":return me.REPLACE;case"ADD":case"add":return me.ADD;default:return t}}function Zl(t,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let n=new URL(t,`${e}/`);return decodeURI(n.toString())}else if(t.startsWith("/"))return t;return Pt.resolve(e,t)}function M0(t,e){if(!t)return null;let r;if(t.content){let o=t.content.uri||t.content?.url;typeof o<"u"&&(r=Zl(o,e))}return{...t,id:r,contentUrl:r,lodMetricType:Tt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:$l(t,r),refine:ef(t.refine)}}async function R0(t,e,r){let n=null,o=B0(t.root);o&&t.root?n=await I0(t.root,t,e,o,r):n=M0(t.root,e);let s=[];for(s.push(n);s.length>0;){let i=s.pop()||{},a=i.children||[],c=[];for(let l of a){let f=B0(l),u;f?u=await I0(l,t,e,f,r):u=M0(l,e),u&&(c.push(u),s.push(u))}i.children=c}return n}async function I0(t,e,r,n,o){let{subdivisionScheme:s,maximumLevel:i,availableLevels:a,subtreeLevels:c,subtrees:{uri:l}}=n,f=vi(l,0,0,0,0),u=Zl(f,r),h=await(0,v0.load)(u,Mi,o),p=t.content?.uri,d=p?Zl(p,r):"",m=e?.root?.refine,b=t.geometricError,x=t.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(x){let M={box:Bi(x),s2VolumeInfo:x};t.boundingVolume=M}let y=t.boundingVolume,_={contentUrlTemplate:d,subtreesUriTemplate:l,subdivisionScheme:s,subtreeLevels:c,maximumLevel:Number.isFinite(a)?a-1:i,refine:m,basePath:r,lodMetricType:Tt.GEOMETRIC_ERROR,rootLodMetricValue:b,rootBoundingVolume:y,getTileType:$l,getRefine:ef};return await _2(t,r,h,_,o)}async function _2(t,e,r,n,o){if(!t)return null;let{children:s,contentUrl:i}=await Ql({subtree:r,implicitOptions:n,loaderOptions:o}),a,c=null;return i&&(a=i,c={uri:i.replace(`${e}/`,"")}),{...t,id:a,contentUrl:a,lodMetricType:Tt.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:$l(t,a),refine:ef(t.refine),content:c||t.content,children:s}}function B0(t){return t?.extensions?.["3DTILES_implicit_tiling"]||t?.implicitTiling}var Ri={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:ii,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:C2,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function C2(t,e={},r){let n=e["3d-tiles"]||{},o;return n.isTileset==="auto"?o=r?.url&&r.url.indexOf(".json")!==-1:o=n.isTileset,o?E2(t,e,r):M2(t,e,r)}async function E2(t,e,r){let n=JSON.parse(new TextDecoder().decode(t)),o=r?.url||"",s=I2(o),i=await R0(n,s,e||{});return{...n,shape:"tileset3d",loader:Ri,url:o,queryString:r?.queryString||"",basePath:s,root:i||n.root,type:ue.TILES3D,lodMetricType:Tt.GEOMETRIC_ERROR,lodMetricValue:n.root?.geometricError||0}}async function M2(t,e,r){let n={content:{shape:"tile3d",featureIds:null}};return await Ul(t,0,e,r,n.content),n.content}function I2(t){return Pt.dirname(t)}var w0=[0],B2={[-1]:Fe.COORDINATE_SYSTEM.DEFAULT,0:Fe.COORDINATE_SYSTEM.CARTESIAN,1:Fe.COORDINATE_SYSTEM.LNGLAT,2:Fe.COORDINATE_SYSTEM.METER_OFFSETS,3:Fe.COORDINATE_SYSTEM.LNGLAT_OFFSETS};function v2(t){return typeof t=="number"?B2[t]??t:t}var R2={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Ri,onTilesetLoad:{type:"function",value:t=>{}},onTileLoad:{type:"function",value:t=>{}},onTileUnload:{type:"function",value:t=>{}},onTileError:{type:"function",value:(t,e,r)=>{}},_getMeshColor:{type:"function",value:t=>[255,255,255]}},Ao=class extends Fe.CompositeLayer{initializeState(){"onTileLoadFail"in this.props&&Fe.log.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return!!(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:r,changeFlags:n}){if(e.data&&e.data!==r.data&&this._loadTileset(e.data),n.viewportChanged){let{activeViewports:o}=this.state;Object.keys(o).length&&(this._updateTileset(o),this.state.lastUpdatedViewports=o,this.state.activeViewports={})}if(n.propsChanged){let{layerMap:o}=this.state;for(let s in o)o[s].needsUpdate=!0}}finalizeState(e){this.state.tileset3d?.destroy(),this.state.tileset3d=null,this.state.layerMap={},this.state.activeViewports={},this.state.lastUpdatedViewports=null,super.finalizeState(e)}activateViewport(e){let{activeViewports:r,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,r[e.id]=e;let o=n?.[e.id];(!o||!e.equals(o))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:e,sourceLayer:r}){let n=r&&r.props.tile;return e.picked&&(e.object=n),e.sourceTile=n,e}filterSubLayer({layer:e,viewport:r,cullRect:n,isPicking:o}){let{tile:s}=e.props,{id:i}=r;if(!s.selected||!s.viewportIds.includes(i))return!1;if(o&&n&&s.content?.cartographicOrigin){let[a,c]=r.project(s.content.cartographicOrigin),l=n.x+n.width/2,f=n.y+n.height/2,u=Math.max(r.width,r.height)/4,h=a-l,p=c-f;if(h*h+p*p>u*u)return!1}return!0}_updateAutoHighlight(e){let r=e.sourceTile,n=this.state.layerMap[r?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){let r=this.props.loadOptions||{},n=this.props.loaders?.length?this.props.loaders:this.props.loader,o=Array.isArray(n)?n[0]:n,{tileset:s,...i}=r,a={loadOptions:{...i},...s},c=e;if("preload"in o&&typeof o.preload=="function"){let u=await o.preload(e,r);u.url&&(c=u.url),u.headers&&(a.loadOptions.core={...a.loadOptions.core,fetch:{...a.loadOptions.core?.fetch,headers:u.headers}}),Object.assign(a,u)}let l=await(0,N0.load)(c,o,a.loadOptions),f=new ao(l,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,onUpdate:()=>this.setNeedsUpdate(),...a});this.setState({tileset3d:f,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(f)}_onTileLoad(e){let{lastUpdatedViewports:r}=this.state;e.tileDrawn=!1,this.props.onTileLoad(e),this._updateTileset(r),this.setNeedsUpdate()}_onTileUnload(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}_updateTileset(e){if(!e)return;let{tileset3d:r}=this.state,{timeline:n}=this.context,o=Object.keys(e).length;!n||!o||!r||r.selectTiles(Object.values(e)).then(s=>{this.state.frameNumber!==s&&this.setState({frameNumber:s})})}_getSubLayer(e,r){if(!e.content)return null;switch(e.type){case De.POINTCLOUD:return this._makePointCloudLayer(e,r);case De.SCENEGRAPH:return this._make3DModelLayer(e);case De.MESH:return this._makeSimpleMeshLayer(e,r);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${e.content.type}`)}}_makePointCloudLayer(e,r){let{attributes:n,pointCount:o,constantRGBA:s,cartographicOrigin:i,modelMatrix:a}=e.content,{positions:c,normals:l,colors:f}=n;if(!c)return null;let u=r&&r.props.data||{header:{vertexCount:o},attributes:{POSITION:c,NORMAL:l,COLOR_0:f}},{pointSize:h,getPointColor:p}=this.props,d=this.getSubLayerClass("pointcloud",F0.PointCloudLayer);return new d({pointSize:h},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:u,coordinateSystem:Fe.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:i,modelMatrix:a,getColor:s||p,_offset:0})}_make3DModelLayer(e){let{gltf:r,instances:n,cartographicOrigin:o,modelMatrix:s}=e.content,i=this.getSubLayerClass("scenegraph",P0.ScenegraphLayer);return new i({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||w0,scenegraph:r,coordinateSystem:Fe.COORDINATE_SYSTEM.METER_OFFSETS,coordinateOrigin:o,modelMatrix:s,getTransformMatrix:a=>a.modelMatrix,getPosition:[0,0,0],_offset:0,onFirstDraw:()=>{e.tileDrawn=!0}})}_makeSimpleMeshLayer(e,r){let n=e.content,{attributes:o,indices:s,modelMatrix:i,cartographicOrigin:a,coordinateSystem:c=Fe.COORDINATE_SYSTEM.METER_OFFSETS,material:l,featureIds:f}=n,{_getMeshColor:u}=this.props,h=r&&r.props.mesh||new L0.Geometry({topology:"triangle-list",attributes:w2(o),indices:s}),p=this.getSubLayerClass("mesh",mm);return new p(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:h,data:w0,getColor:u(e),pbrMaterial:l,modelMatrix:i,coordinateOrigin:a,coordinateSystem:v2(c),featureIds:f,_offset:0})}renderLayers(){let{tileset3d:e,layerMap:r}=this.state;return e?e.tiles.map(n=>{let o=r[n.id]=r[n.id]||{tile:n},{layer:s}=o;return n.selected&&(s?o.needsUpdate&&(s=this._getSubLayer(n,s),o.needsUpdate=!1):s=this._getSubLayer(n)),o.layer=s,s}).filter(Boolean):null}};Ao.defaultProps=R2;Ao.layerName="Tile3DLayer";var O0=Ao;function w2(t){let e={};return e.positions={...t.positions,value:new Float32Array(t.positions.value)},t.normals&&(e.normals=t.normals),t.texCoords&&(e.texCoords=t.texCoords),t.colors&&(e.colors=t.colors),t.uvRegions&&(e.uvRegions=t.uvRegions),e}var ft=D(je(),1),sf=D(Hs(),1);var L2=new Map([["centerX",Float64Array.BYTES_PER_ELEMENT],["centerY",Float64Array.BYTES_PER_ELEMENT],["centerZ",Float64Array.BYTES_PER_ELEMENT],["minHeight",Float32Array.BYTES_PER_ELEMENT],["maxHeight",Float32Array.BYTES_PER_ELEMENT],["boundingSphereCenterX",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterY",Float64Array.BYTES_PER_ELEMENT],["boundingSphereCenterZ",Float64Array.BYTES_PER_ELEMENT],["boundingSphereRadius",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointX",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointY",Float64Array.BYTES_PER_ELEMENT],["horizonOcclusionPointZ",Float64Array.BYTES_PER_ELEMENT]]);function tf(t){return t>>1^-(t&1)}function F2(t){let e=0,r={};for(let[n,o]of L2){let s=o===8?t.getFloat64:t.getFloat32;r[n]=s.call(t,e,!0),e+=o}return{header:r,headerEndPosition:e}}function P2(t,e){let r=e,n=3,o=t.getUint32(r,!0),s=new Uint16Array(o*n);r+=Uint32Array.BYTES_PER_ELEMENT;let i=Uint16Array.BYTES_PER_ELEMENT,a=o*i,c=r,l=c+a,f=l+a,u=0,h=0,p=0;for(let d=0;d<o;d++)u+=tf(t.getUint16(c+i*d,!0)),h+=tf(t.getUint16(l+i*d,!0)),p+=tf(t.getUint16(f+i*d,!0)),s[d]=u,s[d+o]=h,s[d+o*2]=p;return r+=a*3,{vertexData:s,vertexDataEndPosition:r}}function xo(t,e,r,n,o=!0){let s;if(n===2?s=new Uint16Array(t,e,r):s=new Uint32Array(t,e,r),!o)return s;let i=0;for(let a=0;a<s.length;++a){let c=s[a];s[a]=i-c,c===0&&++i}return s}function N2(t,e,r){let n=r,i=e.length/3>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%i!==0&&(n+=i-n%i);let a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=a*3,l=xo(t.buffer,n,c,i);return n+=c*i,{triangleIndicesEndPosition:n,triangleIndices:l}}function O2(t,e,r){let n=r,i=e.length/3>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,a=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let c=xo(t.buffer,n,a,i,!1);n+=a*i;let l=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let f=xo(t.buffer,n,l,i,!1);n+=l*i;let u=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=xo(t.buffer,n,u,i,!1);n+=u*i;let p=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let d=xo(t.buffer,n,p,i,!1);return n+=p*i,{edgeIndicesEndPosition:n,westIndices:c,southIndices:f,eastIndices:h,northIndices:d}}function U2(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function D2(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function G2(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let n=e;for(;n<t.byteLength;){let o=t.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let s=t.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let i=new DataView(t.buffer,n,s);switch(o){case 1:{r.vertexNormals=U2(i);break}case 2:{r.waterMask=D2(i);break}default:}n+=s}return{extensions:r,extensionsEndPosition:n}}var Ar={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},V2={maxDecodingStep:Ar.extensions};function rf(t,e){let r=Object.assign({},V2,e),n=new DataView(t),{header:o,headerEndPosition:s}=F2(n);if(r.maxDecodingStep<Ar.vertices)return{header:o};let{vertexData:i,vertexDataEndPosition:a}=P2(n,s);if(r.maxDecodingStep<Ar.triangleIndices)return{header:o,vertexData:i};let{triangleIndices:c,triangleIndicesEndPosition:l}=N2(n,i,a);if(r.maxDecodingStep<Ar.edgeIndices)return{header:o,vertexData:i,triangleIndices:c};let{westIndices:f,southIndices:u,eastIndices:h,northIndices:p,edgeIndicesEndPosition:d}=O2(n,i,l);if(r.maxDecodingStep<Ar.extensions)return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u};let{extensions:m}=G2(n,d);return{header:o,vertexData:i,triangleIndices:c,westIndices:f,northIndices:p,eastIndices:h,southIndices:u,extensions:m}}function wi(t,e,r,n){let o=n?k2(n,t.POSITION.value):H2(e),s=new t.POSITION.value.constructor(o.length*6),i=new t.TEXCOORD_0.value.constructor(o.length*4),a=new e.constructor(o.length*6);for(let l=0;l<o.length;l++){let f=o[l];z2({edge:f,edgeIndex:l,attributes:t,skirtHeight:r,newPosition:s,newTexcoord0:i,newTriangles:a})}t.POSITION.value=Nn(t.POSITION.value,s),t.TEXCOORD_0.value=Nn(t.TEXCOORD_0.value,i);let c=e instanceof Array?e.concat(a):Nn(e,a);return{attributes:t,triangles:c}}function H2(t){let e=[];for(let o=0;o<t.length;o+=3)e.push([t[o],t[o+1]]),e.push([t[o+1],t[o+2]]),e.push([t[o+2],t[o]]);e.sort((o,s)=>Math.min(...o)-Math.min(...s)||Math.max(...o)-Math.max(...s));let r=[],n=0;for(;n<e.length;)e[n][0]===e[n+1]?.[1]&&e[n][1]===e[n+1]?.[0]?n+=2:(r.push(e[n]),n++);return r}function k2(t,e){t.westIndices.sort((n,o)=>e[3*n+1]-e[3*o+1]),t.eastIndices.sort((n,o)=>e[3*o+1]-e[3*n+1]),t.southIndices.sort((n,o)=>e[3*o]-e[3*n]),t.northIndices.sort((n,o)=>e[3*n]-e[3*o]);let r=[];for(let n in t){let o=t[n];for(let s=0;s<o.length-1;s++)r.push([o[s],o[s+1]])}return r}function z2({edge:t,edgeIndex:e,attributes:r,skirtHeight:n,newPosition:o,newTexcoord0:s,newTriangles:i}){let a=r.POSITION.value.length,c=e*2,l=e*2+1;o.set(r.POSITION.value.subarray(t[0]*3,t[0]*3+3),c*3),o[c*3+2]=o[c*3+2]-n,o.set(r.POSITION.value.subarray(t[1]*3,t[1]*3+3),l*3),o[l*3+2]=o[l*3+2]-n,s.set(r.TEXCOORD_0.value.subarray(t[0]*2,t[0]*2+2),c*2),s.set(r.TEXCOORD_0.value.subarray(t[1]*2,t[1]*2+2),l*2);let f=e*2*3;i[f]=t[0],i[f+1]=a/3+l,i[f+2]=t[1],i[f+3]=a/3+l,i[f+4]=t[0],i[f+5]=a/3+c}function nf(t,e={}){let{bounds:r}=e,{header:n,vertexData:o,triangleIndices:s,westIndices:i,northIndices:a,eastIndices:c,southIndices:l}=rf(t,Ar.triangleIndices),f=s,u=j2(o,n,r),h=hr(u);if(e?.skirtHeight){let{attributes:p,triangles:d}=wi(u,f,e.skirtHeight,{westIndices:i,northIndices:a,eastIndices:c,southIndices:l});u=p,f=d}return{loaderData:{header:{}},header:{vertexCount:f.length,boundingBox:h},schema:void 0,topology:"triangle-list",mode:4,indices:{value:f,size:1},attributes:u}}function j2(t,e,r){let{minHeight:n,maxHeight:o}=e,[s,i,a,c]=r||[0,0,1,1],l=a-s,f=c-i,u=o-n,h=t.length/3,p=new Float32Array(h*3),d=new Float32Array(h*2);for(let m=0;m<h;m++){let b=t[m]/32767,x=t[m+h]/32767,y=t[m+h*2]/32767;p[3*m+0]=b*l+s,p[3*m+1]=x*f+i,p[3*m+2]=y*u+n,d[2*m+0]=b,d[2*m+1]=x}return{POSITION:{value:p,size:3},TEXCOORD_0:{value:d,size:2}}}var To=class{constructor(e=257){this.gridSize=e;let r=e-1;if(r&r-1)throw new Error(`Expected grid size to be 2^n+1, got ${e}.`);this.numTriangles=r*r*2-2,this.numParentTriangles=this.numTriangles-r*r,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(this.numTriangles*4);for(let n=0;n<this.numTriangles;n++){let o=n+2,s=0,i=0,a=0,c=0,l=0,f=0;for(o&1?a=c=l=r:s=i=f=r;(o>>=1)>1;){let h=s+a>>1,p=i+c>>1;o&1?(a=s,c=i,s=l,i=f):(s=a,i=c,a=l,c=f),l=h,f=p}let u=n*4;this.coords[u+0]=s,this.coords[u+1]=i,this.coords[u+2]=a,this.coords[u+3]=c}}createTile(e){return new of(e,this)}},of=class{constructor(e,r){let n=r.gridSize;if(e.length!==n*n)throw new Error(`Expected terrain data of length ${n*n} (${n} x ${n}), got ${e.length}.`);this.terrain=e,this.martini=r,this.errors=new Float32Array(e.length),this.update()}update(){let{numTriangles:e,numParentTriangles:r,coords:n,gridSize:o}=this.martini,{terrain:s,errors:i}=this;for(let a=e-1;a>=0;a--){let c=a*4,l=n[c+0],f=n[c+1],u=n[c+2],h=n[c+3],p=l+u>>1,d=f+h>>1,m=p+d-f,b=d+l-p,x=(s[f*o+l]+s[h*o+u])/2,y=d*o+p,_=Math.abs(x-s[y]);if(i[y]=Math.max(i[y],_),a<r){let T=(f+b>>1)*o+(l+m>>1),M=(h+b>>1)*o+(u+m>>1);i[y]=Math.max(i[y],i[T],i[M])}}}getMesh(e=0){let{gridSize:r,indices:n}=this.martini,{errors:o}=this,s=0,i=0,a=r-1;n.fill(0);function c(p,d,m,b,x,y){let _=p+m>>1,T=d+b>>1;Math.abs(p-x)+Math.abs(d-y)>1&&o[T*r+_]>e?(c(x,y,p,d,_,T),c(m,b,x,y,_,T)):(n[d*r+p]=n[d*r+p]||++s,n[b*r+m]=n[b*r+m]||++s,n[y*r+x]=n[y*r+x]||++s,i++)}c(0,0,a,a,a,0),c(a,a,0,0,0,a);let l=new Uint16Array(s*2),f=new Uint32Array(i*3),u=0;function h(p,d,m,b,x,y){let _=p+m>>1,T=d+b>>1;if(Math.abs(p-x)+Math.abs(d-y)>1&&o[T*r+_]>e)h(x,y,p,d,_,T),h(m,b,x,y,_,T);else{let M=n[d*r+p]-1,E=n[b*r+m]-1,I=n[y*r+x]-1;l[2*M]=p,l[2*M+1]=d,l[2*E]=m,l[2*E+1]=b,l[2*I]=x,l[2*I+1]=y,f[u++]=M,f[u++]=E,f[u++]=I}}return h(0,0,a,a,a,0),h(a,a,0,0,0,a),{vertices:l,triangles:f}}};var yo=class{constructor(e,r,n=r){this.data=e,this.width=r,this.height=n,this.coords=[],this.triangles=[],this._halfedges=[],this._candidates=[],this._queueIndices=[],this._queue=[],this._errors=[],this._rms=[],this._pending=[],this._pendingLen=0,this._rmsSum=0;let o=r-1,s=n-1,i=this._addPoint(0,0),a=this._addPoint(o,0),c=this._addPoint(0,s),l=this._addPoint(o,s),f=this._addTriangle(l,i,c,-1,-1,-1);this._addTriangle(i,l,a,f,-1,-1),this._flush()}run(e=1){for(;this.getMaxError()>e;)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,r){return this.data[this.width*r+e]}_flush(){let e=this.coords;for(let r=0;r<this._pendingLen;r++){let n=this._pending[r],o=2*this.triangles[n*3+0],s=2*this.triangles[n*3+1],i=2*this.triangles[n*3+2];this._findCandidate(e[o],e[o+1],e[s],e[s+1],e[i],e[i+1],n)}this._pendingLen=0}_findCandidate(e,r,n,o,s,i,a){let c=Math.min(e,n,s),l=Math.min(r,o,i),f=Math.max(e,n,s),u=Math.max(r,o,i),h=xr(n,o,s,i,c,l),p=xr(s,i,e,r,c,l),d=xr(e,r,n,o,c,l),m=o-r,b=e-n,x=i-o,y=n-s,_=r-i,T=s-e,M=xr(e,r,n,o,s,i),E=this.heightAt(e,r)/M,I=this.heightAt(n,o)/M,C=this.heightAt(s,i)/M,A=0,g=0,B=0,w=0;for(let L=l;L<=u;L++){let R=0;h<0&&x!==0&&(R=Math.max(R,Math.floor(-h/x))),p<0&&_!==0&&(R=Math.max(R,Math.floor(-p/_))),d<0&&m!==0&&(R=Math.max(R,Math.floor(-d/m)));let O=h+x*R,H=p+_*R,U=d+m*R,Z=!1;for(let j=c+R;j<=f;j++){if(O>=0&&H>=0&&U>=0){Z=!0;let K=E*O+I*H+C*U,te=Math.abs(K-this.heightAt(j,L));w+=te*te,te>A&&(A=te,g=j,B=L)}else if(Z)break;O+=x,H+=_,U+=m}h+=y,p+=T,d+=b}(g===e&&B===r||g===n&&B===o||g===s&&B===i)&&(A=0),this._candidates[2*a]=g,this._candidates[2*a+1]=B,this._rms[a]=w,this._queuePush(a,A,w)}_step(){let e=this._queuePop(),r=e*3+0,n=e*3+1,o=e*3+2,s=this.triangles[r],i=this.triangles[n],a=this.triangles[o],c=this.coords[2*s],l=this.coords[2*s+1],f=this.coords[2*i],u=this.coords[2*i+1],h=this.coords[2*a],p=this.coords[2*a+1],d=this._candidates[2*e],m=this._candidates[2*e+1],b=this._addPoint(d,m);if(xr(c,l,f,u,d,m)===0)this._handleCollinear(b,r);else if(xr(f,u,h,p,d,m)===0)this._handleCollinear(b,n);else if(xr(h,p,c,l,d,m)===0)this._handleCollinear(b,o);else{let x=this._halfedges[r],y=this._halfedges[n],_=this._halfedges[o],T=this._addTriangle(s,i,b,x,-1,-1,r),M=this._addTriangle(i,a,b,y,-1,T+1),E=this._addTriangle(a,s,b,_,T+2,M+1);this._legalize(T),this._legalize(M),this._legalize(E)}}_addPoint(e,r){let n=this.coords.length>>1;return this.coords.push(e,r),n}_addTriangle(e,r,n,o,s,i,a=this.triangles.length){let c=a/3;return this.triangles[a+0]=e,this.triangles[a+1]=r,this.triangles[a+2]=n,this._halfedges[a+0]=o,this._halfedges[a+1]=s,this._halfedges[a+2]=i,o>=0&&(this._halfedges[o]=a+0),s>=0&&(this._halfedges[s]=a+1),i>=0&&(this._halfedges[i]=a+2),this._candidates[2*c+0]=0,this._candidates[2*c+1]=0,this._queueIndices[c]=-1,this._rms[c]=0,this._pending[this._pendingLen++]=c,a}_legalize(e){let r=this._halfedges[e];if(r<0)return;let n=e-e%3,o=r-r%3,s=n+(e+1)%3,i=n+(e+2)%3,a=o+(r+2)%3,c=o+(r+1)%3,l=this.triangles[i],f=this.triangles[e],u=this.triangles[s],h=this.triangles[a],p=this.coords;if(!q2(p[2*l],p[2*l+1],p[2*f],p[2*f+1],p[2*u],p[2*u+1],p[2*h],p[2*h+1]))return;let d=this._halfedges[s],m=this._halfedges[i],b=this._halfedges[a],x=this._halfedges[c];this._queueRemove(n/3),this._queueRemove(o/3);let y=this._addTriangle(l,h,u,-1,b,d,n),_=this._addTriangle(h,l,f,y,m,x,o);this._legalize(y+1),this._legalize(_+2)}_handleCollinear(e,r){let n=r-r%3,o=n+(r+1)%3,s=n+(r+2)%3,i=this.triangles[s],a=this.triangles[r],c=this.triangles[o],l=this._halfedges[o],f=this._halfedges[s],u=this._halfedges[r];if(u<0){let E=this._addTriangle(e,i,a,-1,f,-1,n),I=this._addTriangle(i,e,c,E,-1,l);this._legalize(E+1),this._legalize(I+2);return}let h=u-u%3,p=h+(u+2)%3,d=h+(u+1)%3,m=this.triangles[p],b=this._halfedges[p],x=this._halfedges[d];this._queueRemove(h/3);let y=this._addTriangle(i,a,e,f,-1,-1,n),_=this._addTriangle(a,m,e,x,-1,y+1,h),T=this._addTriangle(m,c,e,b,-1,_+1),M=this._addTriangle(c,i,e,l,y+2,T+1);this._legalize(y),this._legalize(_),this._legalize(T),this._legalize(M)}_queuePush(e,r,n){let o=this._queue.length;this._queueIndices[e]=o,this._queue.push(e),this._errors.push(r),this._rmsSum+=n,this._queueUp(o)}_queuePop(){let e=this._queue.length-1;return this._queueSwap(0,e),this._queueDown(0,e),this._queuePopBack()}_queuePopBack(){let e=this._queue.pop();return this._errors.pop(),this._rmsSum-=this._rms[e],this._queueIndices[e]=-1,e}_queueRemove(e){let r=this._queueIndices[e];if(r<0){let o=this._pending.indexOf(e);if(o!==-1)this._pending[o]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}let n=this._queue.length-1;n!==r&&(this._queueSwap(r,n),this._queueDown(r,n)||this._queueUp(r)),this._queuePopBack()}_queueLess(e,r){return this._errors[e]>this._errors[r]}_queueSwap(e,r){let n=this._queue[e],o=this._queue[r];this._queue[e]=o,this._queue[r]=n,this._queueIndices[n]=r,this._queueIndices[o]=e;let s=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=s}_queueUp(e){let r=e;for(;;){let n=r-1>>1;if(n===r||!this._queueLess(r,n))break;this._queueSwap(n,r),r=n}}_queueDown(e,r){let n=e;for(;;){let o=2*n+1;if(o>=r||o<0)break;let s=o+1,i=o;if(s<r&&this._queueLess(s,o)&&(i=s),!this._queueLess(i,n))break;this._queueSwap(n,i),n=i}return n>e}};function xr(t,e,r,n,o,s){return(r-o)*(e-s)-(n-s)*(t-o)}function q2(t,e,r,n,o,s,i,a){let c=t-i,l=e-a,f=r-i,u=n-a,h=o-i,p=s-a,d=c*c+l*l,m=f*f+u*u,b=h*h+p*p;return c*(u*b-m*p)-l*(f*b-m*h)+d*(f*p-u*h)<0}function G0(t,e){let{meshMaxError:r,bounds:n,elevationDecoder:o}=e,{data:s,width:i,height:a}=t,c,l;switch(e.tesselator){case"martini":c=Li(s,i,a,o,e.tesselator),l=U0(r,i,c);break;case"delatin":c=Li(s,i,a,o,e.tesselator),l=D0(r,i,a,c);break;default:i===a&&!(a&i-1)?(c=Li(s,i,a,o,"martini"),l=U0(r,i,c)):(c=Li(s,i,a,o,"delatin"),l=D0(r,i,a,c));break}let{vertices:f}=l,{triangles:u}=l,h=J2(f,c,i,a,n),p=hr(h);if(e.skirtHeight){let{attributes:d,triangles:m}=wi(h,u,e.skirtHeight);h=d,u=m}return{loaderData:{header:{}},header:{vertexCount:u.length,boundingBox:p},mode:4,indices:{value:Uint32Array.from(u),size:1},attributes:h}}function U0(t,e,r){let n=e+1,s=new To(n).createTile(r),{vertices:i,triangles:a}=s.getMesh(t);return{vertices:i,triangles:a}}function D0(t,e,r,n){let o=new yo(n,e+1,r+1);o.run(t);let{coords:s,triangles:i}=o;return{vertices:s,triangles:i}}function Li(t,e,r,n,o){let{rScaler:s,bScaler:i,gScaler:a,offset:c}=n,l=new Float32Array((e+1)*(r+1));for(let f=0,u=0;u<r;u++)for(let h=0;h<e;h++,f++){let p=f*4,d=t[p+0],m=t[p+1],b=t[p+2];l[f+u]=d*s+m*a+b*i+c}if(o==="martini"){for(let f=(e+1)*e,u=0;u<e;u++,f++)l[f]=l[f-e-1];for(let f=r,u=0;u<r+1;u++,f+=r+1)l[f]=l[f-1]}return l}function J2(t,e,r,n,o){let s=r+1,i=t.length/2,a=new Float32Array(i*3),c=new Float32Array(i*2),[l,f,u,h]=o||[0,0,r,n],p=(u-l)/r,d=(h-f)/n;for(let m=0;m<i;m++){let b=t[m*2],x=t[m*2+1],y=x*s+b;a[3*m+0]=b*p+l,a[3*m+1]=-x*d+h,a[3*m+2]=e[y],c[2*m+0]=b/r,c[2*m+1]=x/n}return{POSITION:{value:a,size:3},TEXCOORD_0:{value:c,size:2}}}var Fi="4.4.3";var Pi={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:Fi,worker:!0,extensions:["png","pngraw","jpg","jpeg","gif","webp","bmp"],mimeTypes:["image/png","image/jpeg","image/gif","image/webp","image/bmp"],options:{terrain:{tesselator:"auto",bounds:void 0,meshMaxError:10,elevationDecoder:{rScaler:1,gScaler:0,bScaler:0,offset:0},skirtHeight:void 0}}};var V0={dataType:null,batchType:null,name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:Fi,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var W2={...Pi,parse:X2};async function X2(t,e,r){let n={...e,core:{...e?.core,mimeType:"application/x.image"},image:{...e?.image,type:"data"}},o=await we(t,[],n,r),s={...W2.options.terrain,...e?.terrain};return G0(o,s)}var h6={...V0,parseSync:(t,e)=>nf(t,e?.["quantized-mesh"]),parse:async(t,e)=>nf(t,e?.["quantized-mesh"])};var H0=[1],k0=1,z0=1,Ni=90,Oi=180,K2={...ar.defaultProps,elevationData:Ot,texture:{...Ot,optional:!0},meshMaxError:{type:"number",value:4},bounds:{type:"array",value:null,optional:!0,compare:!0},color:{type:"color",value:[255,255,255]},elevationDecoder:{type:"object",value:{rScaler:1,gScaler:0,bScaler:0,offset:0}},workerUrl:"",wireframe:!1,material:!0,loaders:[Pi]};function j0(t){return Array.isArray(t)?t.join(";"):t||""}function Y2(t,e,r){let n=(t[2]-t[0])/e*k0,o=(t[3]-t[1])/e*k0,s=[t[0]-n,t[1]-o,t[2]+n,t[3]+o];return r?[Math.max(s[0],-Oi),Math.max(s[1],-Ni),Math.min(s[2],Oi),Math.min(s[3],Ni)]:s}function Q2(t){return!Number.isFinite(t)||t<=0?z0:Math.max(t,z0)}var So=class extends ft.CompositeLayer{updateState({props:e,oldProps:r}){let n=e.elevationData!==r.elevationData;if(n){let{elevationData:s}=e,i=s&&(Array.isArray(s)||Z2(s));this.setState({isTiled:i})}let o=n||e.meshMaxError!==r.meshMaxError||e.elevationDecoder!==r.elevationDecoder||e.bounds!==r.bounds;if(!this.state.isTiled&&o){let s=this.loadTerrain(e);this.setState({terrain:s})}e.workerUrl&&ft.log.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:r,elevationDecoder:n,meshMaxError:o,signal:s}){if(!e)return null;let i=Q2(o),a=this.getLoadOptions();a={...a,terrain:{skirtHeight:this.state.isTiled?i*2:0,...a?.terrain,bounds:r,meshMaxError:i,elevationDecoder:n}};let{fetch:c}=this.props;return c(e,{propName:"elevationData",layer:this,loadOptions:a,signal:s})}getTiledTerrainData(e){let{elevationData:r,fetch:n,texture:o,elevationDecoder:s,meshMaxError:i}=this.props,{viewport:a}=this.context,c=at(r,e),l=o&&at(o,e),{signal:f}=e,u=[0,0],h=[0,0];if(a.isGeospatial){let x=e.bbox;u=a.projectFlat([x.west,x.south]),h=a.projectFlat([x.east,x.north])}else{let x=e.bbox;u=[x.left,x.bottom],h=[x.right,x.top]}let p=[u[0],u[1],h[0],h[1]],d=Y2(p,this.props.tileSize,a instanceof ft._GlobeViewport),m=this.loadTerrain({elevationData:c,bounds:d,elevationDecoder:s,meshMaxError:i,signal:f}),b=l?n(l,{propName:"texture",layer:this,loaders:[],signal:f}).catch(x=>null):Promise.resolve(null);return Promise.all([m,b])}renderSubLayers(e){let r=this.getSubLayerClass("mesh",sf.SimpleMeshLayer),{color:n,wireframe:o,material:s}=this.props,{data:i}=e;if(!i)return null;let[a,c]=i,{viewport:l}=this.context,f=l instanceof ft._GlobeViewport,u=a?.header?.boundingBox,h=u&&u.every(([d,m])=>d>=-Oi&&d<=Oi&&m>=-Ni&&m<=Ni),p=f&&h?ft.COORDINATE_SYSTEM.LNGLAT:ft.COORDINATE_SYSTEM.CARTESIAN;return new r(e,{data:H0,mesh:a,texture:c,_instanced:!1,coordinateSystem:p,getPosition:d=>[0,0,0],getColor:n,wireframe:o,material:s})}onViewportLoad(e){if(!e)return;let{zRange:r}=this.state,n=e.map(i=>i.content).filter(Boolean).map(i=>i[0].header.boundingBox.map(c=>c[2]));if(n.length===0)return;let o=Math.min(...n.map(i=>i[0])),s=Math.max(...n.map(i=>i[1]));(!r||o<r[0]||s>r[1])&&this.setState({zRange:[o,s]})}renderLayers(){let{color:e,material:r,elevationData:n,texture:o,wireframe:s,meshMaxError:i,elevationDecoder:a,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:m,maxCacheSize:b,maxCacheByteSize:x,refinementStrategy:y,zoomOffset:_}=this.props;if(this.state.isTiled)return new ar(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:j0(n),texture:j0(o),meshMaxError:i,elevationDecoder:a,projectionMode:this.context.viewport.projectionMode,zoomOffset:_}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:c,maxZoom:l,minZoom:f,extent:u,maxRequests:h,onTileLoad:p,onTileUnload:d,onTileError:m,maxCacheSize:b,maxCacheByteSize:x,refinementStrategy:y,zoomOffset:_});if(!n)return null;let T=this.getSubLayerClass("mesh",sf.SimpleMeshLayer);return new T(this.getSubLayerProps({id:"mesh"}),{data:H0,mesh:this.state.terrain,texture:o,_instanced:!1,getPosition:M=>[0,0,0],getColor:e,material:r,wireframe:s})}};So.defaultProps=K2;So.layerName="TerrainLayer";var q0=So,Z2=t=>t.includes("{x}")&&(t.includes("{y}")||t.includes("{-y}"));var Wi=D(je(),1),_f=D(ze(),1),E1=D(W0(),1);function X0(t,e,r){switch(t.type){case"Point":return eB(t,e,r);case"LineString":return $2(t,e,r);case"Polygon":return K0(t,e,r);default:let n=t;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function K0(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.polygonIndices.value.filter(c=>c>=e&&c<=r),s=t.primitivePolygonIndices.value.filter(c=>c>=e&&c<=r);if(!(o.length>2)){let c=[];for(let l=0;l<s.length-1;l++){let f=s[l],u=s[l+1],h=Ui(n,f,u);c.push(h)}return{type:"Polygon",coordinates:c}}let a=[];for(let c=0;c<o.length-1;c++){let l=o[c],f=o[c+1],u=K0(t,l,f).coordinates;a.push(u)}return{type:"MultiPolygon",coordinates:a}}function $2(t,e=-1/0,r=1/0){let{positions:n}=t,o=t.pathIndices.value.filter(a=>a>=e&&a<=r);if(!(o.length>2))return{type:"LineString",coordinates:Ui(n,o[0],o[1])};let i=[];for(let a=0;a<o.length-1;a++){let c=Ui(n,o[a],o[a+1]);i.push(c)}return{type:"MultiLineString",coordinates:i}}function eB(t,e,r){let{positions:n}=t,o=Ui(n,e,r);return o.length>1?{type:"MultiPoint",coordinates:o}:{type:"Point",coordinates:o[0]}}function Ui(t,e,r){e=e||0,r=r||t.value.length/t.size;let n=[];for(let o=e;o<r;o++){let s=Array();for(let i=o*t.size;i<(o+1)*t.size;i++)s.push(Number(t.value[i]));n.push(s)}return n}var _o={x:0,y:1,z:2};function Tr(t,e={}){let{start:r=0,end:n=t.length,plane:o="xy"}=e,s=e.size||2,i=0,a=_o[o[0]],c=_o[o[1]];for(let l=r,f=n-s;l<n;l+=s)i+=(t[l+a]-t[f+a])*(t[l+c]+t[f+c]),f=l;return i/2}function cf(t,e,r=2,n,o="xy"){let s=e&&e.length,i=s?e[0]*r:t.length,a=Q0(t,0,i,r,!0,n&&n[0],o),c=[];if(!a||a.next===a.prev)return c;let l,f,u,h,p,d,m;if(s&&(a=aB(t,e,a,r,n,o)),t.length>80*r){h=f=t[0],p=u=t[1];for(let b=r;b<i;b+=r)d=t[b],m=t[b+1],d<h&&(h=d),m<p&&(p=m),d>f&&(f=d),m>u&&(u=m);l=Math.max(f-h,u-p),l=l!==0?32767/l:0}return Co(a,c,r,h,p,l,0),c}function Q0(t,e,r,n,o,s,i){let a,c;s===void 0&&(s=Tr(t,{start:e,end:r,size:n,plane:i}));let l=_o[i[0]],f=_o[i[1]];if(o===s<0)for(a=e;a<r;a+=n)c=Y0(a,t[a+l],t[a+f],c);else for(a=r-n;a>=e;a-=n)c=Y0(a,t[a+l],t[a+f],c);return c&&Vi(c,c.next)&&(Mo(c),c=c.next),c}function yr(t,e){if(!t)return t;e||(e=t);let r=t,n;do if(n=!1,!r.steiner&&(Vi(r,r.next)||ne(r.prev,r,r.next)===0)){if(Mo(r),r=e=r.prev,r===r.next)break;n=!0}else r=r.next;while(n||r!==e);return e}function Co(t,e,r,n,o,s,i){if(!t)return;!i&&s&&hB(t,n,o,s);let a=t,c,l;for(;t.prev!==t.next;){if(c=t.prev,l=t.next,s?oB(t,n,o,s):nB(t)){e.push(c.i/r|0),e.push(t.i/r|0),e.push(l.i/r|0),Mo(t),t=l.next,a=l.next;continue}if(t=l,t===a){i?i===1?(t=sB(yr(t),e,r),Co(t,e,r,n,o,s,2)):i===2&&iB(t,e,r,n,o,s):Co(yr(t),e,r,n,o,s,1);break}}}function nB(t){let e=t.prev,r=t,n=t.next;if(ne(e,r,n)>=0)return!1;let o=e.x,s=r.x,i=n.x,a=e.y,c=r.y,l=n.y,f=o<s?o<i?o:i:s<i?s:i,u=a<c?a<l?a:l:c<l?c:l,h=o>s?o>i?o:i:s>i?s:i,p=a>c?a>l?a:l:c>l?c:l,d=n.next;for(;d!==e;){if(d.x>=f&&d.x<=h&&d.y>=u&&d.y<=p&&hn(o,a,s,c,i,l,d.x,d.y)&&ne(d.prev,d,d.next)>=0)return!1;d=d.next}return!0}function oB(t,e,r,n){let o=t.prev,s=t,i=t.next;if(ne(o,s,i)>=0)return!1;let a=o.x,c=s.x,l=i.x,f=o.y,u=s.y,h=i.y,p=a<c?a<l?a:l:c<l?c:l,d=f<u?f<h?f:h:u<h?u:h,m=a>c?a>l?a:l:c>l?c:l,b=f>u?f>h?f:h:u>h?u:h,x=af(p,d,e,r,n),y=af(m,b,e,r,n),_=t.prevZ,T=t.nextZ;for(;_&&_.z>=x&&T&&T.z<=y;){if(_.x>=p&&_.x<=m&&_.y>=d&&_.y<=b&&_!==o&&_!==i&&hn(a,f,c,u,l,h,_.x,_.y)&&ne(_.prev,_,_.next)>=0||(_=_.prevZ,T.x>=p&&T.x<=m&&T.y>=d&&T.y<=b&&T!==o&&T!==i&&hn(a,f,c,u,l,h,T.x,T.y)&&ne(T.prev,T,T.next)>=0))return!1;T=T.nextZ}for(;_&&_.z>=x;){if(_.x>=p&&_.x<=m&&_.y>=d&&_.y<=b&&_!==o&&_!==i&&hn(a,f,c,u,l,h,_.x,_.y)&&ne(_.prev,_,_.next)>=0)return!1;_=_.prevZ}for(;T&&T.z<=y;){if(T.x>=p&&T.x<=m&&T.y>=d&&T.y<=b&&T!==o&&T!==i&&hn(a,f,c,u,l,h,T.x,T.y)&&ne(T.prev,T,T.next)>=0)return!1;T=T.nextZ}return!0}function sB(t,e,r){let n=t;do{let o=n.prev,s=n.next.next;!Vi(o,s)&&Z0(o,n,n.next,s)&&Eo(o,s)&&Eo(s,o)&&(e.push(o.i/r|0),e.push(n.i/r|0),e.push(s.i/r|0),Mo(n),Mo(n.next),n=t=s),n=n.next}while(n!==t);return yr(n)}function iB(t,e,r,n,o,s){let i=t;do{let a=i.next.next;for(;a!==i.prev;){if(i.i!==a.i&&mB(i,a)){let c=$0(i,a);i=yr(i,i.next),c=yr(c,c.next),Co(i,e,r,n,o,s,0),Co(c,e,r,n,o,s,0);return}a=a.next}i=i.next}while(i!==t)}function aB(t,e,r,n,o,s){let i=[],a,c,l,f,u;for(a=0,c=e.length;a<c;a++)l=e[a]*n,f=a<c-1?e[a+1]*n:t.length,u=Q0(t,l,f,n,!1,o&&o[a+1],s),u===u.next&&(u.steiner=!0),i.push(dB(u));for(i.sort(cB),a=0;a<i.length;a++)r=lB(i[a],r);return r}function cB(t,e){return t.x-e.x}function lB(t,e){let r=fB(t,e);if(!r)return e;let n=$0(r,t);return yr(n,n.next),yr(r,r.next)}function fB(t,e){let r=e,n=t.x,o=t.y,s=-1/0,i;do{if(o<=r.y&&o>=r.next.y&&r.next.y!==r.y){let h=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(h<=n&&h>s&&(s=h,i=r.x<r.next.x?r:r.next,h===n))return i}r=r.next}while(r!==e);if(!i)return null;let a=i,c=i.x,l=i.y,f=1/0,u;r=i;do n>=r.x&&r.x>=c&&n!==r.x&&hn(o<l?n:s,o,c,l,o<l?s:n,o,r.x,r.y)&&(u=Math.abs(o-r.y)/(n-r.x),Eo(r,t)&&(u<f||u===f&&(r.x>i.x||r.x===i.x&&uB(i,r)))&&(i=r,f=u)),r=r.next;while(r!==a);return i}function uB(t,e){return ne(t.prev,t,e.prev)<0&&ne(e.next,t,t.next)<0}function hB(t,e,r,n){let o=t;do o.z===0&&(o.z=af(o.x,o.y,e,r,n)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==t);o.prevZ.nextZ=null,o.prevZ=null,pB(o)}function pB(t){let e,r,n=1,o,s,i,a,c,l;do{for(s=t,t=null,l=null,o=0;s;){for(o++,a=s,i=0,r=0;r<n&&(i++,a=a.nextZ,!!a);r++);for(c=n;i>0||c>0&&a;)i!==0&&(c===0||!a||s.z<=a.z)?(e=s,s=s.nextZ,i--):(e=a,a=a.nextZ,c--),l?l.nextZ=e:t=e,e.prevZ=l,l=e;s=a}l.nextZ=null,n*=2}while(o>1);return t}function af(t,e,r,n,o){return t=(t-r)*o|0,e=(e-n)*o|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t|e<<1}function dB(t){let e=t,r=t;do(e.x<r.x||e.x===r.x&&e.y<r.y)&&(r=e),e=e.next;while(e!==t);return r}function hn(t,e,r,n,o,s,i,a){return(o-i)*(e-a)>=(t-i)*(s-a)&&(t-i)*(n-a)>=(r-i)*(e-a)&&(r-i)*(s-a)>=(o-i)*(n-a)}function mB(t,e){return t.next.i!==e.i&&t.prev.i!==e.i&&!gB(t,e)&&(Eo(t,e)&&Eo(e,t)&&bB(t,e)&&(ne(t.prev,t,e.prev)||ne(t,e.prev,e))||Vi(t,e)&&ne(t.prev,t,t.next)>0&&ne(e.prev,e,e.next)>0)}function ne(t,e,r){return(e.y-t.y)*(r.x-e.x)-(e.x-t.x)*(r.y-e.y)}function Vi(t,e){return t.x===e.x&&t.y===e.y}function Z0(t,e,r,n){let o=Gi(ne(t,e,r)),s=Gi(ne(t,e,n)),i=Gi(ne(r,n,t)),a=Gi(ne(r,n,e));return!!(o!==s&&i!==a||o===0&&Di(t,r,e)||s===0&&Di(t,n,e)||i===0&&Di(r,t,n)||a===0&&Di(r,e,n))}function Di(t,e,r){return e.x<=Math.max(t.x,r.x)&&e.x>=Math.min(t.x,r.x)&&e.y<=Math.max(t.y,r.y)&&e.y>=Math.min(t.y,r.y)}function Gi(t){return t>0?1:t<0?-1:0}function gB(t,e){let r=t;do{if(r.i!==t.i&&r.next.i!==t.i&&r.i!==e.i&&r.next.i!==e.i&&Z0(r,r.next,t,e))return!0;r=r.next}while(r!==t);return!1}function Eo(t,e){return ne(t.prev,t,t.next)<0?ne(t,e,t.next)>=0&&ne(t,t.prev,e)>=0:ne(t,e,t.prev)<0||ne(t,t.next,e)<0}function bB(t,e){let r=t,n=!1,o=(t.x+e.x)/2,s=(t.y+e.y)/2;do r.y>s!=r.next.y>s&&r.next.y!==r.y&&o<(r.next.x-r.x)*(s-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next;while(r!==t);return n}function $0(t,e){let r=new Io(t.i,t.x,t.y),n=new Io(e.i,e.x,e.y),o=t.next,s=e.prev;return t.next=e,e.prev=t,r.next=o,o.prev=r,n.next=r,r.prev=n,s.next=n,n.prev=s,n}function Y0(t,e,r,n){let o=new Io(t,e,r);return n?(o.next=n.next,o.prev=n,n.next.prev=o,n.next=o):(o.prev=o,o.next=o),o}function Mo(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}var Io=class{constructor(e,r,n){this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1,this.i=e,this.x=r,this.y=n}};function Hi(t,e,r){let n=SB(t),o=Object.keys(n).filter(s=>n[s]!==Array);return _B(t,{propArrayTypes:n,...e},{numericPropKeys:r&&r.numericPropKeys||o,PositionDataType:r?r.PositionDataType:Float32Array,triangulate:r?r.triangulate:!0})}function SB(t){let e={};for(let r of t)if(r.properties)for(let n in r.properties){let o=r.properties[n];e[n]=vB(o,e[n])}return e}function _B(t,e,r){let{pointPositionsCount:n,pointFeaturesCount:o,linePositionsCount:s,linePathsCount:i,lineFeaturesCount:a,polygonPositionsCount:c,polygonObjectsCount:l,polygonRingsCount:f,polygonFeaturesCount:u,propArrayTypes:h,coordLength:p}=e,{numericPropKeys:d=[],PositionDataType:m=Float32Array,triangulate:b=!0}=r,x=t[0]&&"id"in t[0],y=t.length>65535?Uint32Array:Uint16Array,_={type:"Point",positions:new m(n*p),globalFeatureIds:new y(n),featureIds:o>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},T={type:"LineString",pathIndices:s>65535?new Uint32Array(i+1):new Uint16Array(i+1),positions:new m(s*p),globalFeatureIds:new y(s),featureIds:a>65535?new Uint32Array(s):new Uint16Array(s),numericProps:{},properties:[],fields:[]},M={type:"Polygon",polygonIndices:c>65535?new Uint32Array(l+1):new Uint16Array(l+1),primitivePolygonIndices:c>65535?new Uint32Array(f+1):new Uint16Array(f+1),positions:new m(c*p),globalFeatureIds:new y(c),featureIds:u>65535?new Uint32Array(c):new Uint16Array(c),numericProps:{},properties:[],fields:[]};b&&(M.triangles=[]);for(let I of[_,T,M])for(let C of d){let A=h[C];I.numericProps[C]=new A(I.positions.length/p)}T.pathIndices[i]=s,M.polygonIndices[l]=c,M.primitivePolygonIndices[f]=c;let E={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let I of t){let C=I.geometry,A=I.properties||{};switch(C.type){case"Point":CB(C,_,E,p,A),_.properties.push(ff(A,d)),x&&_.fields.push({id:I.id}),E.pointFeature++;break;case"LineString":EB(C,T,E,p,A),T.properties.push(ff(A,d)),x&&T.fields.push({id:I.id}),E.lineFeature++;break;case"Polygon":MB(C,M,E,p,A),M.properties.push(ff(A,d)),x&&M.fields.push({id:I.id}),E.polygonFeature++;break;default:throw new Error("Invalid geometry type")}E.feature++}return BB(_,T,M,p)}function CB(t,e,r,n,o){e.positions.set(t.data,r.pointPosition*n);let s=t.data.length/n;uf(e,o,r.pointPosition,s),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+s),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+s),r.pointPosition+=s}function EB(t,e,r,n,o){e.positions.set(t.data,r.linePosition*n);let s=t.data.length/n;uf(e,o,r.linePosition,s),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+s),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=t.indices[i],l=i===a-1?t.data.length:t.indices[i+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(l-c)/n}}function MB(t,e,r,n,o){e.positions.set(t.data,r.polygonPosition*n);let s=t.data.length/n;uf(e,o,r.polygonPosition,s),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+s),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+s);for(let i=0,a=t.indices.length;i<a;++i){let c=r.polygonPosition;e.polygonIndices[r.polygonObject++]=c;let l=t.areas[i],f=t.indices[i],u=t.indices[i+1];for(let p=0,d=f.length;p<d;++p){let m=f[p],b=p===d-1?u===void 0?t.data.length:u[0]:f[p+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(b-m)/n}let h=r.polygonPosition;IB(e,l,f,{startPosition:c,endPosition:h,coordLength:n})}}function IB(t,e,r,{startPosition:n,endPosition:o,coordLength:s}){if(!t.triangles)return;let i=n*s,a=o*s,c=t.positions.subarray(i,a),l=r[0],f=r.slice(1).map(h=>(h-l)/s),u=cf(c,f,s,e);for(let h=0,p=u.length;h<p;++h)t.triangles.push(n+u[h])}function lf(t,e){let r={};for(let n in t)r[n]={value:t[n],size:e};return r}function BB(t,e,r,n){let o={shape:"binary-feature-collection",points:{...t,positions:{value:t.positions,size:n},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:lf(t.numericProps,1)},lines:{...e,positions:{value:e.positions,size:n},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:lf(e.numericProps,1)},polygons:{...r,positions:{value:r.positions,size:n},polygonIndices:{value:r.polygonIndices,size:1},primitivePolygonIndices:{value:r.primitivePolygonIndices,size:1},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:lf(r.numericProps,1)}};return o.polygons&&r.triangles&&(o.polygons.triangles={value:new Uint32Array(r.triangles),size:1}),o}function uf(t,e,r,n){for(let o in t.numericProps)if(o in e){let s=e[o];t.numericProps[o].fill(s,r,r+n)}}function ff(t,e){let r={};for(let n in t)e.includes(n)||(r[n]=t[n]);return r}function vB(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function Bo(t,e){let r=e?.globalFeatureId;return r!==void 0?RB(t,r):wB(t,e?.type)}function RB(t,e){let r=r1(t);for(let n of r){let o=0,s=n.featureIds.value[0];for(let i=0;i<n.featureIds.value.length;i++){let a=n.featureIds.value[i];if(a!==s){if(e===n.globalFeatureIds.value[o])return ki(n,o,i);o=i,s=a}}if(e===n.globalFeatureIds.value[o])return ki(n,o,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function wB(t,e){let r=r1(t,e);return LB(r)}function r1(t,e){let r=[];return t.points&&(t.points.type="Point",r.push(t.points)),t.lines&&(t.lines.type="LineString",r.push(t.lines)),t.polygons&&(t.polygons.type="Polygon",r.push(t.polygons)),r}function LB(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let n=0,o=r.featureIds.value[0];for(let s=0;s<r.featureIds.value.length;s++){let i=r.featureIds.value[s];i!==o&&(e.push(ki(r,n,s)),n=s,o=i)}e.push(ki(r,n,r.featureIds.value.length))}return e}function ki(t,e,r){let n=X0(t,e,r),o=PB(t,e,r),s=FB(t,e,r);return{type:"Feature",geometry:n,properties:o,...s}}function FB(t,e=0,r){return t.fields&&t.fields[t.featureIds.value[e]]}function PB(t,e=0,r){let n=Object.assign({},t.properties[t.featureIds.value[e]]);for(let o in t.numericProps)n[o]=t.numericProps[o].value[e];return n}var bf=D(l1(),1);function ZB(t){let e=0;for(let r=0,n=t.length-1,o,s;r<t.length;n=r++)o=t[r],s=t[n],e+=(s[0]-o[0])*(o[1]+s[1]);return e}function df(t,e){if(Array.isArray(t[0])){for(let n of t)df(n,e);return}let r=t;r[0]/=e,r[1]/=e}function f1(t,e){for(let r=0;r<t.length;++r)t[r]/=e}function mf(t,e,r){if(typeof t[0][0]!="number"){for(let i of t)mf(i,e,r);return}let n=r*Math.pow(2,e.z),o=r*e.x,s=r*e.y;for(let i=0;i<t.length;i++){let a=t[i];a[0]=(a[0]+o)*360/n-180;let c=180-(a[1]+s)*360/n;a[1]=360/Math.PI*Math.atan(Math.exp(c*Math.PI/180))-90}}function u1(t,e,r){let{x:n,y:o,z:s}=e,i=r*Math.pow(2,s),a=r*n,c=r*o;for(let l=0,f=t.length;l<f;l+=2){t[l]=(t[l]+a)*360/i-180;let u=180-(t[l+1]+c)*360/i;t[l+1]=360/Math.PI*Math.atan(Math.exp(u*Math.PI/180))-90}}function h1(t){let e=t.length;if(e<=1)return[t];let r=[],n,o;for(let s=0;s<e;s++){let i=ZB(t[s]);i!==0&&(o===void 0&&(o=i<0),o===i<0?(n&&r.push(n),n=[t[s]]):n&&n.push(t[s]))}return n&&r.push(n),r}function p1(t){let e=t.indices.length,r="Polygon";if(e<=1)return{type:r,data:t.data,areas:[[Tr(t.data)]],indices:[t.indices]};let n=[],o=[],s=[],i=[],a,c=0;for(let l,f=0,u;f<e;f++){u=t.indices[f]-c,l=t.indices[f+1]-c||t.data.length;let h=t.data.slice(u,l),p=Tr(h);if(p===0){let d=t.data.slice(0,u),m=t.data.slice(l);t.data=d.concat(m),c+=l-u;continue}a===void 0&&(a=p<0),a===p<0?(i.length&&(n.push(s),o.push(i)),i=[u],s=[p]):(s.push(p),i.push(u))}return s&&n.push(s),i.length&&o.push(i),{type:r,areas:n,indices:o,data:t.data}}var mn=class{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;static types=["Unknown","Point","LineString","Polygon"];constructor(e,r,n,o,s,i){this.properties={},this.extent=n,this.type=0,this.id=null,this._pbf=e,this._geometry=-1,this._keys=o,this._values=s,this._geometryInfo=i,e.readFields($B,this,r)}toGeoJSONFeature(e,r){let n=this.loadGeometry();return e==="wgs84"?d1(this,n,o=>mf(o,r,this.extent)):d1(this,n,df)}toBinaryFeature(e,r){let n=this.loadFlatGeometry();return e==="wgs84"?this._toBinaryCoordinates(n,o=>u1(o,r,this.extent)):this._toBinaryCoordinates(n,f1)}bbox(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=1/0,c=-1/0,l=1/0,f=-1/0;for(;e.pos<r;){if(o<=0){let u=e.readVarint();n=u&7,o=u>>3}if(o--,n===1||n===2)s+=e.readSVarint(),i+=e.readSVarint(),s<a&&(a=s),s>c&&(c=s),i<l&&(l=i),i>f&&(f=i);else if(n!==7)throw new Error(`unknown command ${n}`)}return[a,l,c,f]}_toBinaryCoordinates(e,r){let n;r(e.data,this.extent);let o=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=e.indices.length,n={type:"Point",...e};break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=e.indices.length,this._geometryInfo.linePositionsCount+=e.data.length/o,n={type:"LineString",...e};break;case 3:n=p1(e),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=n.indices.length;for(let i of n.indices)this._geometryInfo.polygonRingsCount+=i.length;this._geometryInfo.polygonPositionsCount+=n.data.length/o;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let s={type:"Feature",geometry:n,properties:this.properties};return this.id!==null&&(s.id=this.id),s}loadGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o=0,s=0,i=0,a=[],c;for(;e.pos<r;){if(o<=0){let l=e.readVarint();n=l&7,o=l>>3}switch(o--,n){case 1:case 2:s+=e.readSVarint(),i+=e.readSVarint(),n===1&&(c&&a.push(c),c=[]),c&&c.push([s,i]);break;case 7:c&&c.push(c[0].slice());break;default:throw new Error(`unknown command ${n}`)}}return c&&a.push(c),a}loadFlatGeometry(){let e=this._pbf;e.pos=this._geometry;let r=e.readVarint()+e.pos,n=1,o,s=0,i=0,a=0,c=0,l=[],f=[];for(;e.pos<r;)if(s<=0&&(o=e.readVarint(),n=o&7,s=o>>3),s--,n===1||n===2)i+=e.readSVarint(),a+=e.readSVarint(),n===1&&l.push(c),f.push(i,a),c+=2;else if(n===7){if(c>0){let u=l[l.length-1];f.push(f[u],f[u+1]),c+=2}}else throw new Error(`unknown command ${n}`);return{data:f,indices:l}}};function d1(t,e,r){let n=mn.types[t.type],o,s,i;switch(t.type){case 1:let c=[];for(o=0;o<e.length;o++)c[o]=e[o][0];i=c,r(i,t.extent);break;case 2:for(i=e,o=0;o<i.length;o++)r(i[o],t.extent);break;case 3:for(i=h1(e),o=0;o<i.length;o++)for(s=0;s<i[o].length;s++)r(i[o][s],t.extent);break;default:throw new Error("illegal vector tile type")}i.length===1?i=i[0]:n=`Multi${n}`;let a={type:"Feature",geometry:{type:n,coordinates:i},properties:t.properties};return t.id!==null&&(a.properties||={},a.properties.id=t.id),a}function $B(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?ev(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function ev(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let n=e._keys[t.readVarint()],o=e._values[t.readVarint()];e.properties[n]=o}}var qi=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(tv,this,r),this.length=this._features.length}getGeoJSONFeature(e){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new mn(this._pbf,r,this.extent,this._keys,this._values)}getBinaryFeature(e,r){if(e<0||e>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[e];let n=this._pbf.readVarint()+this._pbf.pos;return new mn(this._pbf,n,this.extent,this._keys,this._values,r)}};function tv(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(rv(r)))}function rv(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let n=t.readVarint()>>3;e=n===1?t.readString():n===2?t.readFloat():n===3?t.readDouble():n===4?t.readVarint64():n===5?t.readVarint():n===6?t.readSVarint():n===7?t.readBoolean():null}return e}var vo=class{layers;constructor(e,r){this.layers=e.readFields(nv,{},r)}};function nv(t,e,r){if(t===3&&r){let n=new qi(r,r.readVarint()+r.pos);n.length&&e&&(e[n.name]=n)}}function Af(t,e){let r=sv(e),n=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(n){case"columnar-table":return{shape:"columnar-table",data:gf(t,r)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:m1(t,r)};case"geojson":return m1(t,r);case"binary-geometry":return gf(t,r);case"binary":return gf(t,r);default:throw new Error(n||"undefined shape")}}function gf(t,e){let[r,n]=ov(t,e),o=Hi(r,n);return o.byteLength=t.byteLength,o}function ov(t,e){let r=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,n];let o=new vo(new bf.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(o.layers)).forEach(i=>{let a=o.layers[i];if(a)for(let c=0;c<a.length;c++){let l=a.getBinaryFeature(c,n),f=av(l,e,i);r.push(f)}}),[r,n]}function m1(t,e){if(t.byteLength<=0)return[];let r=[],n=new vo(new bf.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(s=>{let i=n.layers[s];if(i)for(let a=0;a<i.length;a++){let c=i.getGeoJSONFeature(a),l=iv(c,e,s);r.push(l)}}),r}function sv(t){if(!t?.mvt)throw new Error("mvt options required");if(t.mvt?.coordinates==="wgs84"&&!t.mvt.tileIndex)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return t.gis&&ic.warn('MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead')(),t.mvt}function iv(t,e,r){let n=t.toGeoJSONFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&(n.properties||={},n.properties[e.layerProperty]=r),n}function av(t,e,r){let n=t.toBinaryFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=r),n}var g1={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],category:"geometry"};var cv="4.4.3",Ji={...g1,dataType:null,batchType:null,version:cv,worker:!0,options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}},lv={...Ji,parse:async(t,e)=>Af(t,e),parseSync:Af,binary:!0};var fv={Point:b1,MultiPoint:uv,LineString:A1,MultiLineString:hv,Polygon:x1,MultiPolygon:pv};function b1([t,e],[r,n],o){let s=Mt(r[0],n[0],t),i=Mt(r[1],n[1],e);return o.unprojectFlat([s,i])}function xf(t,e,r){return t.map(n=>b1(n,e,r))}function uv(t,e,r){return xf(t,e,r)}function A1(t,e,r){return xf(t,e,r)}function hv(t,e,r){return t.map(n=>A1(n,e,r))}function x1(t,e,r){return t.map(n=>xf(n,e,r))}function pv(t,e,r){return t.map(n=>x1(n,e,r))}function T1(t,e,r){let n=r.projectFlat([e.west,e.north]),o=r.projectFlat([e.east,e.south]),s=[n,o];return{...t,coordinates:fv[t.type](t.coordinates,s,r)}}var dv=["points","lines","polygons"];function Tf(t,e,r,n){for(let o of dv){let s=t[o]&&mv(t[o],e,r,n);if(s>=0)return s}return-1}function mv(t,e,r,n){let o=t.featureIds.value;if(!o.length)return-1;let s=0,i=o[o.length-1]+1;if(n){let c=gv(t,n);if(c)s=c[0],i=c[1]+1;else return-1}let a=-1;if(e in t.numericProps){let c=t.numericProps[e].value.findIndex((l,f)=>l===r&&o[f]>=s&&o[f]<i);return c>=0?t.globalFeatureIds.value[c]:-1}else e?a=y1(t.properties,c=>c[e]===r,s,i):t.fields&&(a=y1(t.fields,c=>c.id===r,s,i));return a>=0?bv(t,a):-1}function gv(t,e){if(!t.__layers){let r={},{properties:n}=t;for(let o=0;o<n.length;o++){let{layerName:s}=n[o];s&&(r[s]?r[s][1]=o:r[s]=[o,o])}t.__layers=r}return t.__layers[e]}function bv(t,e){if(!t.__ids){let r=[],n=t.featureIds.value,o=t.globalFeatureIds.value;for(let s=0;s<n.length;s++)r[n[s]]=o[s];t.__ids=r}return t.__ids[e]}function y1(t,e,r,n){for(let o=r;o<n;o++)if(e(t[o],o))return o;return-1}var yf=512,Av={..._f.GeoJsonLayer.defaultProps,data:Ot,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[Ji],binary:!0},Ro=class extends ar{initializeState(){super.initializeState();let e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return!!(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:r,context:n,changeFlags:o}){o.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:r,context:n,changeFlags:o}),this._setWGS84PropertyForTiles());let{highlightColor:s}=e;s!==r.highlightColor&&Array.isArray(s)&&this.setState({highlightColor:s})}async _updateTileData(){let e=this.props.data,r=null;if(typeof e=="string"&&!Pc(e)){let{onDataLoad:n,fetch:o}=this.props;this.setState({data:null,tileJSON:null});try{r=await o(e,{propName:"data",layer:this,loaders:[]})}catch(s){this.raiseError(s,"loading TileJSON"),e=null}n&&n(r,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(r=e);r&&(e=r.tiles),this.setState({data:e,tileJSON:r})}_getTilesetOptions(){let e=super._getTilesetOptions(),r=this.state.tileJSON,{minZoom:n,maxZoom:o}=this.props;return r&&(Number.isFinite(r.minzoom)&&r.minzoom>n&&(e.minZoom=r.minzoom),Number.isFinite(r.maxzoom)&&(!Number.isFinite(o)||r.maxzoom<o)&&(e.maxZoom=r.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){let{data:r,binary:n}=this.state,{index:o,signal:s}=e,i=at(r,e);if(!i)return Promise.reject("Invalid URL");let a=this.getLoadOptions(),{fetch:c}=this.props;return a={...a,core:{...a?.core,mimeType:"application/x-protobuf"},mvt:{...a?.mvt,shape:n?"binary":"geojson",coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:o}},c(i,{propName:"data",layer:this,loadOptions:a,signal:s})}renderSubLayers(e){let{x:r,y:n,z:o}=e.tile.index,s=Math.pow(2,o),i=yf/s,a=-i,c=yf*r/s,l=yf*(1-n/s),f=new P().scale([i,a,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=f,e.coordinateOrigin=[c,l,0],e.coordinateSystem=Wi.COORDINATE_SYSTEM.CARTESIAN,e.extensions=[...e.extensions||[],new E1.ClipExtension]);let u=super.renderSubLayers(e);return this.state.binary&&!(u instanceof _f.GeoJsonLayer)&&Wi.log.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),u}_updateAutoHighlight(e){let{uniqueIdProperty:r}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:o}=this.state,s=e.object,i=null,a=null;s&&(i=Sf(s,r),a=S1(s));let{highlightColor:c}=this.props;typeof c=="function"&&(c=c(e)),(n!==i||o!==a)&&this.setState({highlightColor:c,hoveredFeatureId:i,hoveredFeatureLayerName:a})}_isWGS84(){return!!this.context.viewport.resolution}getPickingInfo(e){let r=super.getPickingInfo(e);if(this.state.binary&&r.index!==-1){let{data:n}=e.sourceLayer.props;r.object=Bo(n,{globalFeatureId:r.index})}return r.object&&!this._isWGS84()&&(r.object=C1(r.object,r.tile.bbox,this.context.viewport)),r}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){let{hoveredFeatureId:r,hoveredFeatureLayerName:n,binary:o}=this.state,{uniqueIdProperty:s,highlightedFeatureId:i}=this.props,a=e.content,c=_1(i);if(!(_1(r)||c))return-1;let f=c?i:r;return Array.isArray(a)?a.findIndex(u=>{let h=Sf(u,s)===f,p=c||S1(u)===n;return h&&p}):a&&o?Tf(a,s,f,c?"":n):-1}_pickObjects(e){let{deck:r,viewport:n}=this.context,o=n.width,s=n.height,i=n.x,a=n.y,c=[this.id];return r.pickObjects({x:i,y:a,width:o,height:s,layerIds:c,maxObjects:e})}getRenderedFeatures(e=null){let r=this._pickObjects(e),n=new Set,o=[];for(let s of r){let i=Sf(s.object,this.props.uniqueIdProperty);i===void 0?o.push(s.object):n.has(i)||(n.add(i),o.push(s.object))}return o}_setWGS84PropertyForTiles(){let e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];let{bbox:o}=n;if(n._contentWGS84===void 0&&Nc(o)){let s=this.state.binary?Bo(n.content):n.content;n._contentWGS84=s.map(i=>C1(i,o,this.context.viewport))}return n._contentWGS84}})})}};Ro.layerName="MVTLayer";Ro.defaultProps=Av;var M1=Ro;function Sf(t,e){if(t.properties&&e)return t.properties[e];if("id"in t)return t.id}function S1(t){return t.properties?.layerName||null}function _1(t){return t!=null&&t!==""}function C1(t,e,r){let n={...t,geometry:{type:t.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>T1(t.geometry,e,r).coordinates}),n}var I1="0123456789bcdefghjkmnpqrstuvwxyz",B1={};for(let t=0;t<I1.length;t++)B1[I1.charAt(t)]=t;var xv=-90,Tv=90,yv=-180,Sv=180;function _v(t){let e=!0,r=Tv,n=xv,o=Sv,s=yv,i,a=0;for(let c=0,l=t.length;c<l;c++){let f=t[c].toLowerCase();a=B1[f];for(let u=4;u>=0;u--){let h=a>>u&1;e?(i=(o+s)/2,h===1?s=i:o=i):(i=(r+n)/2,h===1?n=i:r=i),e=!e}}return[n,s,r,o]}function v1(t){let[e,r,n,o]=_v(t);return[o,n,o,e,r,e,r,n,o,n]}var Cv={getGeohash:{type:"accessor",value:t=>t.geohash}},wo=class extends Pe{indexToBounds(){let{data:e,getGeohash:r}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,o)=>v1(r(n,o))}}};wo.layerName="GeohashLayer";wo.defaultProps=Cv;var R1=wo;return O1(Lo);})();
3848
3848
  /*! Bundled license information:
3849
3849
 
3850
3850
  long/dist/long.js: