vendor: 42,918 bytes, lines 1-3
1 2!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},n=(new e.Error).stack;n&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[n]="589535c3-655f-5c7d-ab1c-c2413e2978bc")}catch(e){}}(); 3import{a as td,b as rd,c as nd,d as sd,g as id,i as ic,j as od,k as Ad,m as ad,o as Is,s as Ui}from"./chunk-OQPFF6N4.js";import{A as Yo,B as xr,E as Wo,F as Ni,G as tc,I as qo,J as rc,K as Zh,L as $h,P as xn,Q as eA,R as wr,S as Gi,U as ed,a as Jt,b as qe,c as wh,d as Mh,e as Sh,f as vh,g as Fh,h as Uo,i as Pr,j as ko,k as Ho,l as Xr,m as Er,n as Vo,o as Jo,p as ir,q as jo,r as Es,s as Lh,t as q0,u as En,v as Qo,w as Ko,x as Qn,y as zo,z as _r}from"./chunk-BOO4PER3.js";import"./chunk-73Q4UM7E.js";import{A as Vh,B as Jh,D as jh,E as hr,F as Qh,G as Kh,H as Zo,I as zh,J as nc,K as _n,M as sc,N as Xh,O as Yh,S as xs,T as $o,V as Wh,W as qh,X as Ir,Y as dr,d as Z0,e as Nh,f as Gh,g as Or,h as $0,i as _s,j as Nr,k as or,m as Xo,n as ec,o as X,p as He,q as Uh,s as Se,t as Kn,u as on,v as kh,z as Hh}from"./chunk-SZZENJPS.js";import"./chunk-G3YBY4JK.js";import{A as Oh,c as W0,d as Rh,e as ht,h as Yr,n as Dh,y as Ph,z as Wt}from"./chunk-5BKCFFZY.js";import{a as P,b as ee,c as Ih,d as bn,e as X0,f as pt,g as Y0,i as Z}from"./chunk-ETF4AQIE.js";var $c=X0((gm,to)=>{"use strict";(function(r,e){typeof define=="function"&&define.amd?define([],e):typeof Ih=="function"&&typeof to=="object"&&to&&to.exports?to.exports=e():(r.dcodeIO=r.dcodeIO||{}).Long=e()})(gm,function(){"use strict";function r(H,U,fe){this.low=H|0,this.high=U|0,this.unsigned=!!fe}r.prototype.__isLong__,Object.defineProperty(r.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(H){return(H&&H.__isLong__)===!0}r.isLong=e;var t={},n={};function i(H,U){var fe,_e,xe;return U?(H>>>=0,(xe=0<=H&&H<256)&&(_e=n[H],_e)?_e:(fe=h(H,(H|0)<0?-1:0,!0),xe&&(n[H]=fe),fe)):(H|=0,(xe=-128<=H&&H<128)&&(_e=t[H],_e)?_e:(fe=h(H,H<0?-1:0,!1),xe&&(t[H]=fe),fe))}r.fromInt=i;function A(H,U){if(isNaN(H)||!isFinite(H))return U?z:Q;if(U){if(H<0)return z;if(H>=S)return Ae}else{if(H<=-O)return he;if(H+1>=O)return ce}return H<0?A(-H,U).neg():h(H%I|0,H/I|0,U)}r.fromNumber=A;function h(H,U,fe){return new r(H,U,fe)}r.fromBits=h;var p=Math.pow;function B(H,U,fe){if(H.length===0)throw Error("empty string");if(H==="NaN"||H==="Infinity"||H==="+Infinity"||H==="-Infinity")return Q;if(typeof U=="number"?(fe=U,U=!1):U=!!U,fe=fe||10,fe<2||36<fe)throw RangeError("radix");var _e;if((_e=H.indexOf("-"))>0)throw Error("interior hyphen");if(_e===0)return B(H.substring(1),U,fe).neg();for(var xe=A(p(fe,8)),Ee=Q,De=0;De<H.length;De+=8){var Pe=Math.min(8,H.length-De),Ne=parseInt(H.substring(De,De+Pe),fe);if(Pe<8){var Ve=A(p(fe,Pe));Ee=Ee.mul(Ve).add(A(Ne))}else Ee=Ee.mul(xe),Ee=Ee.add(A(Ne))}return Ee.unsigned=U,Ee}r.fromString=B;function T(H){return H instanceof r?H:typeof H=="number"?A(H):typeof H=="string"?B(H):h(H.low,H.high,H.unsigned)}r.fromValue=T;var y=65536,E=1<<24,I=y*y,S=I*I,O=S/2,N=i(E),Q=i(0);r.ZERO=Q;var z=i(0,!0);r.UZERO=z;var j=i(1);r.ONE=j;var re=i(1,!0);r.UONE=re;var ie=i(-1);r.NEG_ONE=ie;var ce=h(-1,2147483647,!1);r.MAX_VALUE=ce;var Ae=h(-1,-1,!0);r.MAX_UNSIGNED_VALUE=Ae;var he=h(0,-2147483648,!1);r.MIN_VALUE=he;var W=r.prototype;return W.toInt=function(){return this.unsigned?this.low>>>0:this.low},W.toNumber=function(){return this.unsigned?(this.high>>>0)*I+(this.low>>>0):this.high*I+(this.low>>>0)},W.toString=function(U){if(U=U||10,U<2||36<U)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(he)){var fe=A(U),_e=this.div(fe),xe=_e.mul(fe).sub(this);return _e.toString(U)+xe.toInt().toString(U)}else return"-"+this.neg().toString(U);for(var Ee=A(p(U,6),this.unsigned),De=this,Pe="";;){var Ne=De.div(Ee),Ve=De.sub(Ne.mul(Ee)).toInt()>>>0,Ke=Ve.toString(U);if(De=Ne,De.isZero())return Ke+Pe;for(;Ke.length<6;)Ke="0"+Ke;Pe=""+Ke+Pe}},W.getHighBits=function(){return this.high},W.getHighBitsUnsigned=function(){return this.high>>>0},W.getLowBits=function(){return this.low},W.getLowBitsUnsigned=function(){return this.low>>>0},W.getNumBitsAbs=function(){if(this.isNegative())return this.eq(he)?64:this.neg().getNumBitsAbs();for(var U=this.high!=0?this.high:this.low,fe=31;fe>0&&(U&1<<fe)==0;fe--);return this.high!=0?fe+33:fe+1},W.isZero=function(){return this.high===0&&this.low===0},W.isNegative=function(){return!this.unsigned&&this.high<0},W.isPositive=function(){return this.unsigned||this.high>=0},W.isOdd=function(){return(this.low&1)===1},W.isEven=function(){return(this.low&1)===0},W.equals=function(U){return e(U)||(U=T(U)),this.unsigned!==U.unsigned&&this.high>>>31===1&&U.high>>>31===1?!1:this.high===U.high&&this.low===U.low},W.eq=W.equals,W.notEquals=function(U){return!this.eq(U)},W.neq=W.notEquals,W.lessThan=function(U){return this.comp(U)<0},W.lt=W.lessThan,W.lessThanOrEqual=function(U){return this.comp(U)<=0},W.lte=W.lessThanOrEqual,W.greaterThan=function(U){return this.comp(U)>0},W.gt=W.greaterThan,W.greaterThanOrEqual=function(U){return this.comp(U)>=0},W.gte=W.greaterThanOrEqual,W.compare=function(U){if(e(U)||(U=T(U)),this.eq(U))return 0;var fe=this.isNegative(),_e=U.isNegative();return fe&&!_e?-1:!fe&&_e?1:this.unsigned?U.high>>>0>this.high>>>0||U.high===this.high&&U.low>>>0>this.low>>>0?-1:1:this.sub(U).isNegative()?-1:1},W.comp=W.compare,W.negate=function(){return!this.unsigned&&this.eq(he)?he:this.not().add(j)},W.neg=W.negate,W.add=function(U){e(U)||(U=T(U));var fe=this.high>>>16,_e=this.high&65535,xe=this.low>>>16,Ee=this.low&65535,De=U.high>>>16,Pe=U.high&65535,Ne=U.low>>>16,Ve=U.low&65535,Ke=0,Je=0,ze=0,wt=0;return wt+=Ee+Ve,ze+=wt>>>16,wt&=65535,ze+=xe+Ne,Je+=ze>>>16,ze&=65535,Je+=_e+Pe,Ke+=Je>>>16,Je&=65535,Ke+=fe+De,Ke&=65535,h(ze<<16|wt,Ke<<16|Je,this.unsigned)},W.subtract=function(U){return e(U)||(U=T(U)),this.add(U.neg())},W.sub=W.subtract,W.multiply=function(U){if(this.isZero()||(e(U)||(U=T(U)),U.isZero()))return Q;if(this.eq(he))return U.isOdd()?he:Q;if(U.eq(he))return this.isOdd()?he:Q;if(this.isNegative())return U.isNegative()?this.neg().mul(U.neg()):this.neg().mul(U).neg();if(U.isNegative())return this.mul(U.neg()).neg();if(this.lt(N)&&U.lt(N))return A(this.toNumber()*U.toNumber(),this.unsigned);var fe=this.high>>>16,_e=this.high&65535,xe=this.low>>>16,Ee=this.low&65535,De=U.high>>>16,Pe=U.high&65535,Ne=U.low>>>16,Ve=U.low&65535,Ke=0,Je=0,ze=0,wt=0;return wt+=Ee*Ve,ze+=wt>>>16,wt&=65535,ze+=xe*Ve,Je+=ze>>>16,ze&=65535,ze+=Ee*Ne,Je+=ze>>>16,ze&=65535,Je+=_e*Ve,Ke+=Je>>>16,Je&=65535,Je+=xe*Ne,Ke+=Je>>>16,Je&=65535,Je+=Ee*Pe,Ke+=Je>>>16,Je&=65535,Ke+=fe*Ve+_e*Ne+xe*Pe+Ee*De,Ke&=65535,h(ze<<16|wt,Ke<<16|Je,this.unsigned)},W.mul=W.multiply,W.divide=function(U){if(e(U)||(U=T(U)),U.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?z:Q;var fe,_e,xe;if(this.unsigned){if(U.unsigned||(U=U.toUnsigned()),U.gt(this))return z;if(U.gt(this.shru(1)))return re;xe=z}else{if(this.eq(he)){if(U.eq(j)||U.eq(ie))return he;if(U.eq(he))return j;var Ee=this.shr(1);return fe=Ee.div(U).shl(1),fe.eq(Q)?U.isNegative()?j:ie:(_e=this.sub(U.mul(fe)),xe=fe.add(_e.div(U)),xe)}else if(U.eq(he))return this.unsigned?z:Q;if(this.isNegative())return U.isNegative()?this.neg().div(U.neg()):this.neg().div(U).neg();if(U.isNegative())return this.div(U.neg()).neg();xe=Q}for(_e=this;_e.gte(U);){fe=Math.max(1,Math.floor(_e.toNumber()/U.toNumber()));for(var De=Math.ceil(Math.log(fe)/Math.LN2),Pe=De<=48?1:p(2,De-48),Ne=A(fe),Ve=Ne.mul(U);Ve.isNegative()||Ve.gt(_e);)fe-=Pe,Ne=A(fe,this.unsigned),Ve=Ne.mul(U);Ne.isZero()&&(Ne=j),xe=xe.add(Ne),_e=_e.sub(Ve)}return xe},W.div=W.divide,W.modulo=function(U){return e(U)||(U=T(U)),this.sub(this.div(U).mul(U))},W.mod=W.modulo,W.not=function(){return h(~this.low,~this.high,this.unsigned)},W.and=function(U){return e(U)||(U=T(U)),h(this.low&U.low,this.high&U.high,this.unsigned)},W.or=function(U){return e(U)||(U=T(U)),h(this.low|U.low,this.high|U.high,this.unsigned)},W.xor=function(U){return e(U)||(U=T(U)),h(this.low^U.low,this.high^U.high,this.unsigned)},W.shiftLeft=function(U){return e(U)&&(U=U.toInt()),(U&=63)===0?this:U<32?h(this.low<<U,this.high<<U|this.low>>>32-U,this.unsigned):h(0,this.low<<U-32,this.unsigned)},W.shl=W.shiftLeft,W.shiftRight=function(U){return e(U)&&(U=U.toInt()),(U&=63)===0?this:U<32?h(this.low>>>U|this.high<<32-U,this.high>>U,this.unsigned):h(this.high>>U-32,this.high>=0?0:-1,this.unsigned)},W.shr=W.shiftRight,W.shiftRightUnsigned=function(U){if(e(U)&&(U=U.toInt()),U&=63,U===0)return this;var fe=this.high;if(U<32){var _e=this.low;return h(_e>>>U|fe<<32-U,fe>>>U,this.unsigned)}else return U===32?h(fe,0,this.unsigned):h(fe>>>U-32,0,this.unsigned)},W.shru=W.shiftRightUnsigned,W.toSigned=function(){return this.unsigned?h(this.low,this.high,!1):this},W.toUnsigned=function(){return this.unsigned?this:h(this.low,this.high,!0)},W.toBytes=function(H){return H?this.toBytesLE():this.toBytesBE()},W.toBytesLE=function(){var H=this.high,U=this.low;return[U&255,U>>>8&255,U>>>16&255,U>>>24&255,H&255,H>>>8&255,H>>>16&255,H>>>24&255]},W.toBytesBE=function(){var H=this.high,U=this.low;return[H>>>24&255,H>>>16&255,H>>>8&255,H&255,U>>>24&255,U>>>16&255,U>>>8&255,U&255]},r})});var RB=X0(Cf=>{"use strict";Cf.read=function(r,e,t,n,i){var A,h,p=i*8-n-1,B=(1<<p)-1,T=B>>1,y=-7,E=t?i-1:0,I=t?-1:1,S=r[e+E];for(E+=I,A=S&(1<<-y)-1,S>>=-y,y+=p;y>0;A=A*256+r[e+E],E+=I,y-=8);for(h=A&(1<<-y)-1,A>>=-y,y+=n;y>0;h=h*256+r[e+E],E+=I,y-=8);if(A===0)A=1-T;else{if(A===B)return h?NaN:(S?-1:1)*(1/0);h=h+Math.pow(2,n),A=A-T}return(S?-1:1)*h*Math.pow(2,A-n)};Cf.write=function(r,e,t,n,i,A){var h,p,B,T=A*8-i-1,y=(1<<T)-1,E=y>>1,I=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,S=n?0:A-1,O=n?1:-1,N=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(p=isNaN(e)?1:0,h=y):(h=Math.floor(Math.log(e)/Math.LN2),e*(B=Math.pow(2,-h))<1&&(h--,B*=2),h+E>=1?e+=I/B:e+=I*Math.pow(2,1-E),e*B>=2&&(h++,B/=2),h+E>=y?(p=0,h=y):h+E>=1?(p=(e*B-1)*Math.pow(2,i),h=h+E):(p=e*Math.pow(2,E-1)*Math.pow(2,i),h=0));i>=8;r[t+S]=p&255,S+=O,p/=256,i-=8);for(h=h<<i|p,T+=i;T>0;r[t+S]=h&255,S+=O,h/=256,T-=8);r[t+S-O]|=N*128}});var GB=X0((lW,NB)=>{"use strict";NB.exports=nt;var l0=RB();function nt(r){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(r)?r:new Uint8Array(r||0),this.pos=0,this.type=0,this.length=this.buf.length}nt.Varint=0;nt.Fixed64=1;nt.Bytes=2;nt.Fixed32=5;var Tf=65536*65536,LB=1/Tf,OL=12,OB=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");nt.prototype={destroy:function(){this.buf=null},readFields:function(r,e,t){for(t=t||this.length;this.pos<t;){var n=this.readVarint(),i=n>>3,A=this.pos;this.type=n&7,r(i,e,this),this.pos===A&&this.skip(n)}return e},readMessage:function(r,e){return this.readFields(r,e,this.readVarint()+this.pos)},readFixed32:function(){var r=u0(this.buf,this.pos);return this.pos+=4,r},readSFixed32:function(){var r=PB(this.buf,this.pos);return this.pos+=4,r},readFixed64:function(){var r=u0(this.buf,this.pos)+u0(this.buf,this.pos+4)*Tf;return this.pos+=8,r},readSFixed64:function(){var r=u0(this.buf,this.pos)+PB(this.buf,this.pos+4)*Tf;return this.pos+=8,r},readFloat:function(){var r=l0.read(this.buf,this.pos,!0,23,4);return this.pos+=4,r},readDouble:function(){var r=l0.read(this.buf,this.pos,!0,52,8);return this.pos+=8,r},readVarint:function(r){var e=this.buf,t,n;return n=e[this.pos++],t=n&127,n<128||(n=e[this.pos++],t|=(n&127)<<7,n<128)||(n=e[this.pos++],t|=(n&127)<<14,n<128)||(n=e[this.pos++],t|=(n&127)<<21,n<128)?t:(n=e[this.pos],t|=(n&15)<<28,NL(t,r,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var r=this.readVarint();return r%2===1?(r+1)/-2:r/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var r=this.readVarint()+this.pos,e=this.pos;return this.pos=r,r-e>=OL&&OB?ZL(this.buf,e,r):qL(this.buf,e,r)},readBytes:function(){var r=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,r);return this.pos=r,e},readPackedVarint:function(r,e){if(this.type!==nt.Bytes)return r.push(this.readVarint(e));var t=dn(this);for(r=r||[];this.pos<t;)r.push(this.readVarint(e));return r},readPackedSVarint:function(r){if(this.type!==nt.Bytes)return r.push(this.readSVarint());var e=dn(this);for(r=r||[];this.pos<e;)r.push(this.readSVarint());return r},readPackedBoolean:function(r){if(this.type!==nt.Bytes)return r.push(this.readBoolean());var e=dn(this);for(r=r||[];this.pos<e;)r.push(this.readBoolean());return r},readPackedFloat:function(r){if(this.type!==nt.Bytes)return r.push(this.readFloat());var e=dn(this);for(r=r||[];this.pos<e;)r.push(this.readFloat());return r},readPackedDouble:function(r){if(this.type!==nt.Bytes)return r.push(this.readDouble());var e=dn(this);for(r=r||[];this.pos<e;)r.push(this.readDouble());return r},readPackedFixed32:function(r){if(this.type!==nt.Bytes)return r.push(this.readFixed32());var e=dn(this);for(r=r||[];this.pos<e;)r.push(this.readFixed32());return r},readPackedSFixed32:function(r){if(this.type!==nt.Bytes)return r.push(this.readSFixed32());var e=dn(this);for(r=r||[];this.pos<e;)r.push(this.readSFixed32());return r},readPackedFixed64:function(r){if(this.type!==nt.Bytes)return r.push(this.readFixed64());var e=dn(this);for(r=r||[];this.pos<e;)r.push(this.readFixed64());return r},readPackedSFixed64:function(r){if(this.type!==nt.Bytes)return r.push(this.readSFixed64());var e=dn(this);for(r=r||[];this.pos<e;)r.push(this.readSFixed64());return r},skip:function(r){var e=r&7;if(e===nt.Varint)for(;this.buf[this.pos++]>127;);else if(e===nt.Bytes)this.pos=this.readVarint()+this.pos;else if(e===nt.Fixed32)this.pos+=4;else if(e===nt.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+e)},writeTag:function(r,e){this.writeVarint(r<<3|e)},realloc:function(r){for(var e=this.length||16;e<this.pos+r;)e*=2;if(e!==this.length){var t=new Uint8Array(e);t.set(this.buf),this.buf=t,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(r){this.realloc(4),bi(this.buf,r,this.pos),this.pos+=4},writeSFixed32:function(r){this.realloc(4),bi(this.buf,r,this.pos),this.pos+=4},writeFixed64:function(r){this.realloc(8),bi(this.buf,r&-1,this.pos),bi(this.buf,Math.floor(r*LB),this.pos+4),this.pos+=8},writeSFixed64:function(r){this.realloc(8),bi(this.buf,r&-1,this.pos),bi(this.buf,Math.floor(r*LB),this.pos+4),this.pos+=8},writeVarint:function(r){if(r=+r||0,r>268435455||r<0){UL(r,this);return}this.realloc(4),this.buf[this.pos++]=r&127|(r>127?128:0),!(r<=127)&&(this.buf[this.pos++]=(r>>>=7)&127|(r>127?128:0),!(r<=127)&&(this.buf[this.pos++]=(r>>>=7)&127|(r>127?128:0),!(r<=127)&&(this.buf[this.pos++]=r>>>7&127)))},writeSVarint:function(r){this.writeVarint(r<0?-r*2-1:r*2)},writeBoolean:function(r){this.writeVarint(!!r)},writeString:function(r){r=String(r),this.realloc(r.length*4),this.pos++;var e=this.pos;this.pos=$L(this.buf,r,this.pos);var t=this.pos-e;t>=128&&DB(e,t,this),this.pos=e-1,this.writeVarint(t),this.pos+=t},writeFloat:function(r){this.realloc(4),l0.write(this.buf,r,this.pos,!0,23,4),this.pos+=4},writeDouble:function(r){this.realloc(8),l0.write(this.buf,r,this.pos,!0,52,8),this.pos+=8},writeBytes:function(r){var e=r.length;this.writeVarint(e),this.realloc(e);for(var t=0;t<e;t++)this.buf[this.pos++]=r[t]},writeRawMessage:function(r,e){this.pos++;var t=this.pos;r(e,this);var n=this.pos-t;n>=128&&DB(t,n,this),this.pos=t-1,this.writeVarint(n),this.pos+=n},writeMessage:function(r,e,t){this.writeTag(r,nt.Bytes),this.writeRawMessage(e,t)},writePackedVarint:function(r,e){e.length&&this.writeMessage(r,VL,e)},writePackedSVarint:function(r,e){e.length&&this.writeMessage(r,JL,e)},writePackedBoolean:function(r,e){e.length&&this.writeMessage(r,KL,e)},writePackedFloat:function(r,e){e.length&&this.writeMessage(r,jL,e)},writePackedDouble:function(r,e){e.length&&this.writeMessage(r,QL,e)},writePackedFixed32:function(r,e){e.length&&this.writeMessage(r,zL,e)},writePackedSFixed32:function(r,e){e.length&&this.writeMessage(r,XL,e)},writePackedFixed64:function(r,e){e.length&&this.writeMessage(r,YL,e)},writePackedSFixed64:function(r,e){e.length&&this.writeMessage(r,WL,e)},writeBytesField:function(r,e){this.writeTag(r,nt.Bytes),this.writeBytes(e)},writeFixed32Field:function(r,e){this.writeTag(r,nt.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(r,e){this.writeTag(r,nt.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(r,e){this.writeTag(r,nt.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(r,e){this.writeTag(r,nt.Fixed64),this.writeSFixed64(e)},writeVarintField:function(r,e){this.writeTag(r,nt.Varint),this.writeVarint(e)},writeSVarintField:function(r,e){this.writeTag(r,nt.Varint),this.writeSVarint(e)},writeStringField:function(r,e){this.writeTag(r,nt.Bytes),this.writeString(e)},writeFloatField:function(r,e){this.writeTag(r,nt.Fixed32),this.writeFloat(e)},writeDoubleField:function(r,e){this.writeTag(r,nt.Fixed64),this.writeDouble(e)},writeBooleanField:function(r,e){this.writeVarintField(r,!!e)}};function NL(r,e,t){var n=t.buf,i,A;if(A=n[t.pos++],i=(A&112)>>4,A<128||(A=n[t.pos++],i|=(A&127)<<3,A<128)||(A=n[t.pos++],i|=(A&127)<<10,A<128)||(A=n[t.pos++],i|=(A&127)<<17,A<128)||(A=n[t.pos++],i|=(A&127)<<24,A<128)||(A=n[t.pos++],i|=(A&1)<<31,A<128))return yi(r,i,e);throw new Error("Expected varint not more than 10 bytes")}function dn(r){return r.type===nt.Bytes?r.readVarint()+r.pos:r.pos+1}function yi(r,e,t){return t?e*4294967296+(r>>>0):(e>>>0)*4294967296+(r>>>0)}function UL(r,e){var t,n;if(r>=0?(t=r%4294967296|0,n=r/4294967296|0):(t=~(-r%4294967296),n=~(-r/4294967296),t^4294967295?t=t+1|0:(t=0,n=n+1|0)),r>=18446744073709552e3||r<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");e.realloc(10),kL(t,n,e),HL(n,e)}function kL(r,e,t){t.buf[t.pos++]=r&127|128,r>>>=7,t.buf[t.pos++]=r&127|128,r>>>=7,t.buf[t.pos++]=r&127|128,r>>>=7,t.buf[t.pos++]=r&127|128,r>>>=7,t.buf[t.pos]=r&127}function HL(r,e){var t=(r&7)<<4;e.buf[e.pos++]|=t|((r>>>=3)?128:0),r&&(e.buf[e.pos++]=r&127|((r>>>=7)?128:0),r&&(e.buf[e.pos++]=r&127|((r>>>=7)?128:0),r&&(e.buf[e.pos++]=r&127|((r>>>=7)?128:0),r&&(e.buf[e.pos++]=r&127|((r>>>=7)?128:0),r&&(e.buf[e.pos++]=r&127)))))}function DB(r,e,t){var n=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));t.realloc(n);for(var i=t.pos-1;i>=r;i--)t.buf[i+n]=t.buf[i]}function VL(r,e){for(var t=0;t<r.length;t++)e.writeVarint(r[t])}function JL(r,e){for(var t=0;t<r.length;t++)e.writeSVarint(r[t])}function jL(r,e){for(var t=0;t<r.length;t++)e.writeFloat(r[t])}function QL(r,e){for(var t=0;t<r.length;t++)e.writeDouble(r[t])}function KL(r,e){for(var t=0;t<r.length;t++)e.writeBoolean(r[t])}function zL(r,e){for(var t=0;t<r.length;t++)e.writeFixed32(r[t])}function XL(r,e){for(var t=0;t<r.length;t++)e.writeSFixed32(r[t])}function YL(r,e){for(var t=0;t<r.length;t++)e.writeFixed64(r[t])}function WL(r,e){for(var t=0;t<r.length;t++)e.writeSFixed64(r[t])}function u0(r,e){return(r[e]|r[e+1]<<8|r[e+2]<<16)+r[e+3]*16777216}function bi(r,e,t){r[t]=e,r[t+1]=e>>>8,r[t+2]=e>>>16,r[t+3]=e>>>24}function PB(r,e){return(r[e]|r[e+1]<<8|r[e+2]<<16)+(r[e+3]<<24)}function qL(r,e,t){for(var n="",i=e;i<t;){var A=r[i],h=null,p=A>239?4:A>223?3:A>191?2:1;if(i+p>t)break;var B,T,y;p===1?A<128&&(h=A):p===2?(B=r[i+1],(B&192)===128&&(h=(A&31)<<6|B&63,h<=127&&(h=null))):p===3?(B=r[i+1],T=r[i+2],(B&192)===128&&(T&192)===128&&(h=(A&15)<<12|(B&63)<<6|T&63,(h<=2047||h>=55296&&h<=57343)&&(h=null))):p===4&&(B=r[i+1],T=r[i+2],y=r[i+3],(B&192)===128&&(T&192)===128&&(y&192)===128&&(h=(A&15)<<18|(B&63)<<12|(T&63)<<6|y&63,(h<=65535||h>=1114112)&&(h=null))),h===null?(h=65533,p=1):h>65535&&(h-=65536,n+=String.fromCharCode(h>>>10&1023|55296),h=56320|h&1023),n+=String.fromCharCode(h),i+=p}return n}function ZL(r,e,t){return OB.decode(r.subarray(e,t))}function $L(r,e,t){for(var n=0,i,A;n<e.length;n++){if(i=e.charCodeAt(n),i>55295&&i<57344)if(A)if(i<56320){r[t++]=239,r[t++]=191,r[t++]=189,A=i;continue}else i=A-55296<<10|i-56320|65536,A=null;else{i>56319||n+1===e.length?(r[t++]=239,r[t++]=191,r[t++]=189):A=i;continue}else A&&(r[t++]=239,r[t++]=191,r[t++]=189,A=null);i<128?r[t++]=i:(i<2048?r[t++]=i>>6|192:(i<65536?r[t++]=i>>12|224:(r[t++]=i>>18|240,r[t++]=i>>12&63|128),r[t++]=i>>6&63|128),r[t++]=i&63|128)}return t}});function cd(r){switch(r.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 zn(r){let e=1/0,t=1/0,n=1/0,i=-1/0,A=-1/0,h=-1/0,p=r.POSITION?r.POSITION.value:[],B=p&&p.length;for(let T=0;T<B;T+=3){let y=p[T],E=p[T+1],I=p[T+2];e=y<e?y:e,t=E<t?E:t,n=I<n?I:n,i=y>i?y:i,A=E>A?E:A,h=I>h?I:h}return[[e,t,n],[i,A,h]]}function oc(r,e,t){let n=cd(e.value),i=t||ld(e);return{name:r,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:i}}function ld(r){let e={};return"byteOffset"in r&&(e.byteOffset=r.byteOffset.toString(10)),"byteStride"in r&&(e.byteStride=r.byteStride.toString(10)),"normalized"in r&&(e.normalized=r.normalized.toString()),e}var ly=P({},Is.defaultProps),uy=(()=>{class r extends wr{indexToBounds(){return null}renderLayers(){let{elevationScale:t,extruded:n,wireframe:i,filled:A,stroked:h,lineWidthUnits:p,lineWidthScale:B,lineWidthMinPixels:T,lineWidthMaxPixels:y,lineAntialiasing:E,lineJointRounded:I,lineMiterLimit:S,lineDashJustified:O,getElevation:N,getFillColor:Q,getLineColor:z,getLineWidth:j}=this.props,{updateTriggers:re,material:ie,transitions:ce}=this.props,Ae=this.getSubLayerClass("cell",Is),H=this.indexToBounds()||{},{updateTriggers:he}=H,W=bn(H,["updateTriggers"]);return new Ae({filled:A,wireframe:i,extruded:n,elevationScale:t,stroked:h,lineWidthUnits:p,lineWidthScale:B,lineWidthMinPixels:T,lineWidthMaxPixels:y,lineAntialiasing:E,lineJointRounded:I,lineMiterLimit:S,lineDashJustified:O,material:ie,transitions:ce,getElevation:N,getFillColor:Q,getLineColor:z,getLineWidth:j},this.getSubLayerProps({id:"cell",updateTriggers:re&&ee(P({},he),{getElevation:re.getElevation,getFillColor:re.getFillColor,getLineColor:re.getLineColor,getLineWidth:re.getLineWidth})}),W)}}return r.layerName="GeoCellLayer",r.defaultProps=ly,r})(),Gr=uy;function Nd(){let r=new Float64Array(4);return r[0]=1,r[3]=1,r}function fy(r,e){let t=Math.sin(e),n=Math.cos(e);return r[0]=n,r[1]=t,r[2]=-t,r[3]=n,r}function qn(){return new Float64Array(2)}function uc(r){let e=new Float64Array(2);return e[0]=r[0],e[1]=r[1],e}function hy(r,e,t){return r[0]=e,r[1]=t,r}function dy(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r}function Gd(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r}function py(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r}function Ud(r,e){return r[0]=-e[0],r[1]=-e[1],r}function kd(r){return Math.hypot(r[0],r[1])}function Hd(r,e,t,n){let i=e[0],A=e[1];return r[0]=i+n*(t[0]-i),r[1]=A+n*(t[1]-A),r}function my(r,e,t,n){let i=e[0]-t[0],A=e[1]-t[1],h=Math.sin(n),p=Math.cos(n);return r[0]=i*p-A*h+t[0],r[1]=i*h+A*p+t[1],r}function Tc(r,e,t){let n=e[0],i=e[1];return r[0]=t[0]*n+t[2]*i,r[1]=t[1]*n+t[3]*i,r}function Vd(r,e,t){let n=e[0],i=e[1];return r[0]=t[0]*n+t[2]*i+t[4],r[1]=t[1]*n+t[3]*i+t[5],r}function Mr(){return new Float64Array(3)}function vs(r,e,t){let n=new Float64Array(3);return n[0]=r,n[1]=e,n[2]=t,n}function gy(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r}function tA(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r}function Ac(r,e,t,n){return r[0]=e[0]+t[0]*n,r[1]=e[1]+t[1]*n,r[2]=e[2]+t[2]*n,r}function By(r){return Math.hypot(r[0],r[1],r[2])}function ud(r,e){return Math.hypot(e[0]-r[0],e[1]-r[1],e[2]-r[2])}function yc(r,e){let t=e[0],n=e[1],i=e[2],A=t*t+n*n+i*i;return A>0&&(A=1/Math.sqrt(A)),r[0]=e[0]*A,r[1]=e[1]*A,r[2]=e[2]*A,r}function An(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]}function fd(r,e,t){let n=e[0],i=e[1],A=e[2],h=t[0],p=t[1],B=t[2];return r[0]=i*B-A*p,r[1]=A*h-n*B,r[2]=n*p-i*h,r}function AA(r,e,t){let n=t[0],i=t[1],A=t[2],h=t[3],p=e[0],B=e[1],T=e[2],y=i*T-A*B,E=A*p-n*T,I=n*B-i*p,S=i*I-A*E,O=A*y-n*I,N=n*E-i*y,Q=h*2;return y*=Q,E*=Q,I*=Q,S*=2,O*=2,N*=2,r[0]=p+y+S,r[1]=B+E+O,r[2]=T+I+N,r}var fA=(1+Math.sqrt(5))/2,OP=2*Math.PI,aA=2*Math.PI/5,Wr=Math.PI/5,hd=Math.PI/10,Cy=2*Math.atan(fA),fc=Math.PI-Cy,NP=-.5*Math.PI+Math.acos(-1/Math.sqrt(3-fA)),hA=(Math.sqrt(5)-1)/2,Ty=3-Math.sqrt(5),yy=Math.sqrt(3-fA),GP=Math.sqrt(3)*yy/fA,cA=63710072e-1,UP=4*Math.PI*cA*cA;function by(r,e,t,n){let i=e[0]-r[0],A=e[1]-r[1],h=n[0]-t[0],p=n[1]-t[1],B=i*p-A*h;if(Math.abs(B)<1e-12)return!1;let T=t[0]-r[0],y=t[1]-r[1],E=(T*p-y*h)/B,I=(T*A-y*i)/B;return E>=0&&E<=1&&I>=0&&I<=1}var bc=class hc{constructor(e){this.vertices=e,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let e=0,t=this.vertices.length;for(let n=0;n<t;n++){let i=(n+1)%t;e+=(this.vertices[i][0]-this.vertices[n][0])*(this.vertices[i][1]+this.vertices[n][1])}return e}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(e){for(let t of this.vertices)Gd(t,t,e);return this}rotate180(){for(let e of this.vertices)Ud(e,e);return this}reflectY(){for(let e of this.vertices)e[1]=-e[1];return this.vertices.reverse(),this}translate(e){for(let t of this.vertices)dy(t,t,e);return this}transform(e){for(let t of this.vertices)Tc(t,t,e);return this}transform2d(e){for(let t of this.vertices)Vd(t,t,e);return this}clone(){return new hc(this.vertices.map(t=>uc(t)))}getCenter(){let e=this.vertices.length;return this.vertices.reduce((n,i)=>[n[0]+i[0]/e,n[1]+i[1]/e],[0,0])}containsPoint(e){if(!this.isWindingCorrect())throw new Error("Pentagon is not counter-clockwise");let t=this.vertices.length,n=1;for(let i=0;i<t;i++){let A=this.vertices[i],h=this.vertices[(i+1)%t],p=A[0]-h[0],B=A[1]-h[1],T=e[0]-A[0],y=e[1]-A[1],E=p*y-B*T;if(E<0){let I=Math.sqrt(T*T+y*y);n=Math.min(n,E/I)}}return n}intersectsSegment(e,t){if(this.containsPoint(e)>0||this.containsPoint(t)>0)return!0;let n=this.vertices.length;for(let i=0;i<n;i++){let A=this.vertices[i],h=this.vertices[(i+1)%n];if(by(e,t,A,h))return!0}return!1}splitEdges(e){if(e<=1)return this;let t=[],n=this.vertices.length;for(let i=0;i<n;i++){let A=this.vertices[i],h=this.vertices[(i+1)%n];t.push(uc(A));for(let p=1;p<e;p++){let B=p/e,T=qn();Hd(T,A,h,B),t.push(T)}}return new hc(t)}},Jd=[0,0],jd=[0,1],Yn=[.7885966681787006,1.6149108024237764],Qd=[1.6171013659387945,1.054928690397459],Kd=[Math.cos(hd),Math.sin(hd)],Ey=2*kd(Yn)*Math.cos(Wr),_y=Wr-Math.atan2(Yn[1],Yn[0]),xy=2*hA/Ey;[Jd,jd,Yn,Qd,Kd].forEach(r=>{Gd(r,r,xy),my(r,r,[0,0],_y)});var zd=new bc([Jd,jd,Yn,Qd,Kd]),Xd=Math.atan2(Yn[1],Yn[0])-Wr,Iy=[0,0],lA=hA/Math.cos(Wr),dd=Xd+Wr,In=[lA*Math.cos(dd),lA*Math.sin(dd)],pd=Xd-Wr,Wn=[lA*Math.cos(pd),lA*Math.sin(pd)],Yd=new bc([Iy,In,Wn]),wy=[In[0],In[1],Wn[0],Wn[1]],rA=1/(In[0]*Wn[1]-Wn[0]*In[1]),kP=[Wn[1]*rA,-In[1]*rA,-Wn[0]*rA,In[0]*rA],My=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2559257686421274e-24,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]),Sy=new Float64Array([.0022392089963541657,28831978048607556e-22,508622073997266e-23,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]),vy=class{applyCoefficients(r,e){let t=Math.sin(r),n=Math.cos(r),i=2*(n-t)*(n+t),A,h;return A=i*e[5]+e[4],h=i*A+e[3],A=i*h-A+e[2],h=i*A-h+e[1],A=i*h-A+e[0],r+2*t*n*A}forward(r){return this.applyCoefficients(r,My)}inverse(r){return this.applyCoefficients(r,Sy)}},Wd=new vy;function md(r){return r*(Math.PI/180)}function gd(r){return r*(180/Math.PI)}function Bd(r){let e=kd(r),t=Math.atan2(r[1],r[0]);return[e,t]}function Fy([r,e]){let t=r*Math.cos(e),n=r*Math.sin(e);return[t,n]}function Ry(r,[e,t,n]){let i=[e[0]-n[0],e[1]-n[1]],A=[n[0]-t[0],n[1]-t[1]],h=[r[0]-n[0],r[1]-n[1]],p=A[0]*i[1]-A[1]*i[0],B=(A[0]*h[1]-A[1]*h[0])/p,T=(i[0]*h[1]-i[1]*h[0])/p,y=1-(B+T);return[B,T,y]}function Ly(r,[e,t,n]){return[r[0]*e[0]+r[1]*t[0]+r[2]*n[0],r[0]*e[1]+r[1]*t[1]+r[2]*n[1]]}function dc(r){let e=Math.atan2(r[1],r[0]),t=Math.sqrt(r[0]*r[0]+r[1]*r[1]),n=Math.atan2(t,r[2]);return[e,n]}function Xn([r,e]){let t=Math.sin(e),n=t*Math.cos(r),i=t*Math.sin(r),A=Math.cos(e);return[n,i,A]}var qd=93;function Dy([r,e]){let t=md(r+qd),n=md(e),i=Wd.forward(n),A=Math.PI/2-i;return[t,A]}function Zd(r){return((r+180)%360+360)%360-180}function $d([r,e]){let t=Zd(gd(r)-qd),n=Math.PI/2-e,i=Wd.inverse(n),A=gd(i);return[t,A]}function Py(r){let e=Mr();for(let A=0;A<r.length;A++)gy(e,e,Xn(Dy(r[A])));yc(e,e);let[t,n]=$d(dc(e));(n>89.99||n<-89.99)&&(t=r[0][0]),t=Zd(t);let i=new Array(r.length);for(let A=0;A<r.length;A++){let h=r[A][0],p=r[A][1];for(;h-t>180;)h=h-360;for(;h-t<-180;)h=h+360;i[A]=[h,p]}return i}function Oy(){let r=new Float64Array(4);return r[3]=1,r}function Ny(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r[3]=e[3],r}var HP=Mr(),VP=vs(1,0,0),JP=vs(0,1,0);var dA=Math.sqrt(5),pA=Math.sqrt(.2),ep=Math.sqrt((1-pA)/2),tp=Math.sqrt((1+pA)/2),nA=.5,Cd=Math.sqrt((2.5-dA)/10),Td=Math.sqrt((2.5+dA)/10),yd=Math.sqrt((1+pA)/8),bd=Math.sqrt((1-pA)/8),Ed=Math.sqrt((3-dA)/8),_d=Math.sqrt((3+dA)/8),Gy=[[0,0],[ep,0],[Cd,nA],[-yd,Ed],[-yd,-Ed],[Cd,-nA],[-tp,0],[-bd,-_d],[Td,-nA],[Td,nA],[-bd,_d],[0,0]],Uy=Gy.map(([r,e])=>[-e,r]),sA=Uy.map((r,e)=>e===0?[0,0,0,1]:e===11?[0,-1,0,0]:[...r,0,e<6?tp:ep]),rp=["vu","uw","vw","vw","vw"],ki=["wu","uw","vw","vu","uw"],ac=["wu","uv","wv","wu","uw"],iA=["vu","uv","wv","wu","uw"],ky=[rp,iA,ac,ki,ac,iA,ac,ki,ki,ki,iA,iA],Hy=[4,2,3,2,0,4,3,2,2,0,3,0],xd=[0,1,2,4,3,5,7,8,6,11,10,9],Ur=[];function Vy(){oA([0,0],0,sA[0]);for(let r=0;r<5;r++){let e=r*aA,t=e+Wr;oA([e,fc],Wr,sA[r+1]),oA([t,Math.PI-fc],Wr,sA[(r+3)%5+6])}oA([0,Math.PI],0,sA[11])}var ws=0;function oA(r,e,t){if(ws>11)throw new Error(`Too many origins: ${ws}`);let n=Oy();Ny(n,t);let i={id:ws,axis:r,axisCartesian:Xn(r),quat:t,inverseQuat:n,angle:e,orientation:ky[ws],firstQuintant:Hy[ws]};Ur.push(i),ws++}Vy();Ur.sort((r,e)=>xd.indexOf(r.id)-xd.indexOf(e.id));Ur.forEach((r,e)=>r.id=e);function Jy(r,e){let t=e.orientation,n=t===rp||t===ki?-1:1,i=(r-e.firstQuintant+5)%5,A=t[i];return{quintant:(e.firstQuintant+n*i+5)%5,orientation:A}}var jy=class{forward([r,e]){return[Math.tan(e),r]}inverse([r,e]){return[e,Math.atan(r)]}};function Qy(r,e,t,n,i,A){let h=new Float64Array(6);return h[0]=r,h[1]=e,h[2]=t,h[3]=n,h[4]=i,h[5]=A,h}function Ky(r,e,t){return r[0]*(e[1]*t[2]-e[2]*t[1])+r[1]*(e[2]*t[0]-e[0]*t[2])+r[2]*(e[0]*t[1]-e[1]*t[0])}var jP=Mr(),QP=Mr();function Id(r,e,t){let n=1+(r[0]*e[0]+r[1]*e[1]+r[2]*e[2])+(e[0]*t[0]+e[1]*t[1]+e[2]*t[2])+(t[0]*r[0]+t[1]*r[1]+t[2]*r[2]);return 2*Math.atan2(Ky(r,e,t),n)}var wd=Mr(),qt=Mr(),cc=qn(),lc=qn(),zy=class np{constructor(e){this.constants=np.computeConstants(e)}static computeConstants(e){let[t,n,i]=e,A=Mr();fd(A,n,i);let h=An(t,n),p=An(t,i),B=An(n,i),T=An(t,A),y=p+B,E=h+1,I=h*B-p,S=y*y-E*E,O=2*E*I,N=Qy(T*T-S,-O,-2*T*y,2*T*E,T*T+S,O);return{volumeABC:T,areaABC:Id(t,n,i),AdotB:h,AdotC:p,alphaTransform:N}}forward(e,t,n){let[i,A,h]=t,{areaABC:p,volumeABC:B}=this.constants;fd(wd,A,h);let T=An(e,wd);tA(qt,e,B),Ac(qt,qt,i,-T);let y=By(qt),E=y>0?1/y:1;tA(qt,qt,E);let S=Math.max(0,Id(i,A,qt))/p,O=y/B*Math.sqrt((1+An(i,qt))/(1+An(i,e))),N=[1-O,O*(1-S),O*S];return Ly(N,n)}inverse(e,t,n){let[i,A,h]=n,p=Ry(e,t),B=1-1e-14;if(p[0]>B)return i;if(p[1]>B)return A;if(p[2]>B)return h;let{AdotB:T,AdotC:y,alphaTransform:E,areaABC:I}=this.constants,S=An(i,A),O=Math.abs(S-T)>Math.abs(S-y),N=O?h:A,Q=O?A:h,z=O?p[1]:p[2],j=1-p[0],re=z/j*I;cc[0]=Math.cos(re),cc[1]=Math.sin(re),Vd(lc,cc,E),tA(qt,N,lc[0]),Ac(qt,qt,Q,lc[1]),yc(qt,qt);let ie=An(i,qt),ce=1+j*j*(ie-1),Ae=j*Math.sqrt((1+ce)/(1+ie)),he=ce-ie*Ae,W=Mr();return tA(W,i,he),Ac(W,W,qt,Ae),W}},Xy=!1,Ec=[0,1,2,3,4].map(r=>{let e=Nd();return fy(e,aA*r),e}),Md=qn(),Sd=qn(),KP=[0,1,2,3].map(r=>{let e=zd.clone();return r&1&&e.rotate180(),r&2&&e.reflectY(),e.getCenter()});function Yy(r,e,t,n,i=Xy){let A=(i?Yd:zd).clone();return n&1&&A.rotate180(),n&2&&A.reflectY(),hy(Sd,t.x+t.y,-t.x+(n&1)),Tc(Md,Sd,wy),A.translate(Md),A.scale(1/2**r),A.transform(Ec[e]),A}function sp(r){let e=Yd.clone();return e.transform(Ec[r]),e}function Wy(){let r=[];for(let e of Ec)r.push(Tc(qn(),In,e));return r.reverse(),new bc(r)}var qy=class{constructor(){if(this.vertices=[],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(r){for(let e of this.vertices)if(ud(r,e)<1e-5)return e;throw new Error("Failed to find vertex in CRS")}addFaceCenters(){Ur.forEach(r=>this.add(Xn(r.axis)))}addVertices(){let r=Math.atan(Ty);for(let e of Ur)for(let t=0;t<5;t++){let n=(2*t+1)*Math.PI/5,i=Xn([n+e.angle,r]);AA(i,i,e.quat),this.add(i)}}addMidpoints(){let r=Math.atan(hA);for(let e of Ur)for(let t=0;t<5;t++){let n=2*t*Math.PI/5,i=Xn([n+e.angle,r]);AA(i,i,e.quat),this.add(i)}}add(r){let e=yc(Mr(),r);return this.vertices.find(n=>ud(e,n)<1e-5)?!1:(this.vertices.push(e),!0)}},vd=new qy,Zy=class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.equalArea=new zy(vd.getCanonicalTriangle()),this.gnomonic=new jy}forward(r,e){return this.forwardCartesian(Xn(r),e)}forwardCartesian(r,e){let t=Ur[e],n=Mr();AA(n,r,t.inverseQuat);let i=dc(n),A=this.gnomonic.forward(i);A[1]=A[1]-t.angle;let h=this.getFaceTriangleIndex(A),p=this.shouldReflect(A),B=this.getFaceTriangle(h,p,!1),T=this.getSphericalTriangle(h,e,p);return this.equalArea.forward(r,T,B)}inverse(r,e){let t=Bd(r),n=this.getFaceTriangleIndex(t),i=this.shouldReflect(t),A=this.getFaceTriangle(n,i,!1),h=this.getSphericalTriangle(n,e,i),p=this.equalArea.inverse(r,A,h);return dc(p)}shouldReflect(r){let[e,t]=r;return Fy([e,this.normalizeGamma(t)])[0]>hA}getFaceTriangleIndex([r,e]){return(Math.floor(e/Wr)+10)%10}getFaceTriangle(r,e=!1,t=!1){let n=r;return e&&(n+=t?20:10),this.faceTriangles[n]?this.faceTriangles[n]:(this.faceTriangles[n]=e?this._getReflectedFaceTriangle(r,t):this._getFaceTriangle(r),Object.freeze(this.faceTriangles[n]),this.faceTriangles[n])}_getFaceTriangle(r){let e=Math.floor((r+1)/2)%5,[t,n,i]=sp(e).getVertices(),A=qn();return Hd(A,n,i,.5),r%2===0?[t,A,n]:[t,i,A]}_getReflectedFaceTriangle(r,e=!1){let[t,n,i]=this._getFaceTriangle(r).map(p=>uc(p)),A=r%2===0;return Ud(t,t),py(t,t,A?n:i,e?1+1/Math.cos(fc):2),[t,i,n]}getSphericalTriangle(r,e,t=!1){let n=10*e+r;return t&&(n+=120),this.sphericalTriangles[n]?this.sphericalTriangles[n]:(this.sphericalTriangles[n]=this._getSphericalTriangle(r,e,t),Object.freeze(this.sphericalTriangles[n]),this.sphericalTriangles[n])}_getSphericalTriangle(r,e,t=!1){let n=Ur[e];return this.getFaceTriangle(r,t,!0).map(h=>{let[p,B]=Bd(h),T=[p,B+n.angle],y=Xn(this.gnomonic.inverse(T));return AA(y,y,n.quat),vd.getVertex(y)})}normalizeGamma(r){let e=r/aA,t=Math.round(e);return(e-t)*aA}},ip={A:"PQAB",B:"B+++PQ---A",C:"P---RMb+++",M:"qQ+++C---b",P:"PpB---B+++",Q:"PQ---Cb+++",R:"b+++a---qQ"},$y={A:"E",B:"+e-",C:"-e+",M:"T",P:"S",Q:"D",R:"+++D---"},Fd=Object.keys(ip),zP=[...Fd,...Fd.map(r=>r.toLowerCase())],eb=r=>r>="a"&&r<="z"?r.toUpperCase():r.toLowerCase(),op=r=>[...r].reverse().map(e=>e==="+"?"-":e==="-"?"+":eb(e)).join("");function Rd(r,e){let t="";for(let n of r){let i=n.toUpperCase();e[n]!==void 0?t+=e[n]:n!==i&&e[i]!==void 0?t+=op(e[i]):t+=n}return t}var Ap=(r,e)=>({a:r.a+e.a,b:r.b+e.b}),tb=r=>({a:-r.b,b:r.a+r.b}),ap=(r,e)=>{let t=r,n=(e%6+6)%6;for(let i=0;i<n;i++)t=tb(t);return t},cp={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}},rb=new Set(Object.keys(cp)),nb={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 pc(r,e,t){return nb[r].map(n=>Ap(e,ap(n,t)))}function sb(r,e,t){let[n,i,A]=pc(r,e,t);return{a:n.a+i.a+A.a,b:n.b+i.b+A.b}}function mc(r,e,t,n){let i=P({},e),A=(t%6+6)%6;for(let h of r){if(h==="+"){A=(A+1)%6;continue}if(h==="-"){A=(A+5)%6;continue}rb.has(h)&&(n?.(h,i,A),i=Ap(i,ap(cp[h],A)))}return{pos:i,heading:A}}function ib(r){let e=mc(r,{a:0,b:0},0);return{disp:e.pos,dHeading:e.heading}}var Ld=1e-6;function ob(r,e,t){let n=t?-1:1,i=[];for(let A=0;A<4;A++){let h=e*4+A,p=r.childToken[h],B=r.childFlip[h],T=r.childOffA[h],y=r.childOffB[h],E=r.fpEdges[p*2+(t^B)],I=[];for(let S=0;S<E.length;S+=4)I.push([3*T*n+E[S],3*y*n+E[S+1]]);i.push([A,I])}return i}function gc(r){if(r.length===1)return{leaf:r[0][0]};for(let[,e]of r){let t=e.length;for(let n=0;n<t;n++){let[i,A]=e[n],[h,p]=e[(n+1)%t],B=p-A,T=-(h-i),y=-(B*i+T*A),E=[],I=[],S=!0;for(let[O,N]of r){let Q=1/0,z=-1/0;for(let[j,re]of N){let ie=B*j+T*re+y;ie<Q&&(Q=ie),ie>z&&(z=ie)}if(Q>=-Ld)E.push([O,N]);else if(z<=Ld)I.push([O,N]);else{S=!1;break}}if(S&&E.length&&I.length)return{nx:B,ny:T,c:y,pos:gc(E),neg:gc(I)}}}throw new Error("lsystem: no clean BSP split for child set")}function Bc(r,e){if("leaf"in r)return;let t=[r.nx,r.ny,r.c];e.some(n=>n[0]===t[0]&&n[1]===t[1]&&n[2]===t[2])||e.push(t),Bc(r.pos,e),Bc(r.neg,e)}function lp(r,e,t){if("leaf"in r)return r.leaf;let n=t.findIndex(i=>i[0]===r.nx&&i[1]===r.ny&&i[2]===r.c);return lp(e>>n&1?r.pos:r.neg,e,t)}var Dd={S:0,D:1,E:2,T:3};function up(r,e){let t=Object.keys(r),n=[...t,...t.map(ie=>ie.toLowerCase())],i=n.length,A={};n.forEach((ie,ce)=>A[ie]=ce);function h(ie,ce){let Ae=ie;for(let he=0;he<ce;he++)Ae=Rd(Ae,r);return Rd(Ae,e)}let p=ie=>ib(h(ie,1)).disp;function B(ie){let ce={a:0,b:0},Ae=0,he=[];for(let W of ie){if(W==="+"){Ae=(Ae+1)%6;continue}if(W==="-"){Ae=(Ae+5)%6;continue}if(r[W.toUpperCase()]===void 0)continue;if(Ae!==0&&Ae!==3)throw new Error(`lsystem: non-180\xB0 turn (${60*Ae}\xB0) before a child in rule "${ie}"`);let H=Ae===3;he.push({token:W,offUnit:P({},ce),flip:H});let U=p(W);ce=H?{a:ce.a-U.a,b:ce.b-U.b}:{a:ce.a+U.a,b:ce.b+U.b}}if(he.length!==4)throw new Error(`lsystem: rule "${ie}" must have 4 children`);return he}let T={};for(let ie of t)T[ie]=B(r[ie]);for(let ie of t)T[ie.toLowerCase()]=B(op(r[ie]));let y=new Int32Array(i*4),E=new Uint8Array(i*4),I=new Float64Array(i*4),S=new Float64Array(i*4);for(let ie of n){let ce=T[ie];for(let Ae=0;Ae<4;Ae++){let he=A[ie]*4+Ae;y[he]=A[ce[Ae].token],E[he]=ce[Ae].flip?1:0,I[he]=ce[Ae].offUnit.a,S[he]=ce[Ae].offUnit.b}}function O(ie){let ce=[...new Map(ie.map(H=>[`${H.a},${H.b}`,H])).values()].sort((H,U)=>H.a-U.a||H.b-U.b);if(ce.length<3)return ce;let Ae=(H,U,fe)=>(U.a-H.a)*(fe.b-H.b)-(U.b-H.b)*(fe.a-H.a),he=[];for(let H of ce){for(;he.length>=2&&Ae(he[he.length-2],he[he.length-1],H)<=0;)he.pop();he.push(H)}let W=[];for(let H=ce.length-1;H>=0;H--){let U=ce[H];for(;W.length>=2&&Ae(W[W.length-2],W[W.length-1],U)<=0;)W.pop();W.push(U)}return he.slice(0,-1).concat(W.slice(0,-1))}let N=new Array(i*2);for(let ie of n){let ce=[];mc(h(ie,1),{a:0,b:0},0,(he,W,H)=>ce.push(...pc(he,W,H)));let Ae=O(ce);for(let he=0;he<2;he++){let W=he?-1:1,H=new Float64Array(Ae.length*4);for(let U=0;U<Ae.length;U++){let fe=Ae[U],_e=Ae[(U+1)%Ae.length];H[U*4]=3*W*fe.a,H[U*4+1]=3*W*fe.b,H[U*4+2]=W*(_e.a-fe.a),H[U*4+3]=W*(_e.b-fe.b)}N[A[ie]*2+he]=H}}let Q=new Float64Array(i*2*8),z=new Float64Array(i*2*48),j=new Uint8Array(i*2*4);for(let ie of n){let ce=h(ie,1);for(let Ae=0;Ae<2;Ae++){let he=A[ie]*2+Ae,W=0;mc(ce,{a:0,b:0},Ae?3:0,(H,U,fe)=>{let _e=sb(H,U,fe);Q[he*8+W*2]=_e.a,Q[he*8+W*2+1]=_e.b;let xe=H.toUpperCase();if(Dd[xe]===void 0)throw new Error(`lsystem: no pentagon flavor for draw symbol ${H}`);j[he*4+W]=Dd[xe]^(H===xe?0:1)^fe&1;let Ee=pc(H,U,fe);(Ee[1].a-Ee[0].a)*(Ee[2].b-Ee[0].b)-(Ee[1].b-Ee[0].b)*(Ee[2].a-Ee[0].a)<0&&(Ee=[Ee[0],Ee[2],Ee[1]]);for(let Pe=0;Pe<3;Pe++){let Ne=Ee[Pe],Ve=Ee[(Pe+1)%3],Ke=he*48+W*12+Pe*4;z[Ke]=3*Ne.a,z[Ke+1]=3*Ne.b,z[Ke+2]=Ve.a-Ne.a,z[Ke+3]=Ve.b-Ne.b}W++})}}let re={motifIdx:A,childToken:y,childFlip:E,childOffA:I,childOffB:S,fpEdges:N,leafSum:Q,leafTri:z,leafFlavor:j,classSep:new Float64Array(i*2*9),classLut:new Uint8Array(i*2*8)};for(let ie=0;ie<i;ie++)for(let ce=0;ce<2;ce++){let Ae=ie*2+ce,he=gc(ob(re,ie,ce)),W=[];Bc(he,W);for(let H=0;H<W.length;H++)re.classSep[Ae*9+H*3]=W[H][0],re.classSep[Ae*9+H*3+1]=W[H][1],re.classSep[Ae*9+H*3+2]=W[H][2];for(let H=0;H<8;H++)re.classLut[Ae*8+H]=lp(he,H,W)}return re}var uA=new Float64Array(32);for(let r=0;r<32;r++)uA[r]=2**r;var fp=new Float64Array(20);for(let r=0;r<20;r++)fp[r]=4**r;var Ms=up(ip,$y);var Pd=13,Ab=26n,ab=0x3ffffffn;function cb(r,e){if((2*r+e)%12!==0||e%4!==0)throw new Error(`abToTriple: off-lattice corner sum (${r},${e})`);let t=(2*r+e-12)/12,n=(e+4)/4;for(let i of[0,1]){if((n+i)%3!==0)continue;let A=(n+i)/3,h=i-A;if((h+t)%2===0)return{x:A,y:(h+t)/2,z:(h-t)/2}}throw new Error(`abToTriple: no integer triple for (${r},${e})`)}function lb(r,e,t,n){let{childToken:i,childFlip:A,childOffA:h,childOffB:p,leafSum:B,leafFlavor:T}=r,y=Number(e&ab),E=Number(e>>Ab),I=n,S=0,O=0,N=0;for(let j=t;j>=2;j--){let re=j-1,ie=re<Pd?y>>>(re<<1)&3:Math.floor(E/fp[re-Pd])%4,ce=I*4+ie,Ae=S?-uA[j-2]:uA[j-2];O+=h[ce]*Ae,N+=p[ce]*Ae,S^=A[ce],I=i[ce]}let Q=t>=1?y&3:0,z=I*2+S;return{a:3*O+B[z*8+Q*2],b:3*N+B[z*8+Q*2+1],flavor:T[z*4+Q]}}var XP={uv:{axiom:Ms.motifIdx.A,reverse:!1,isB:!1},vu:{axiom:Ms.motifIdx.A,reverse:!0,isB:!1},uw:{axiom:Ms.motifIdx.C,reverse:!1,isB:!1},wu:{axiom:Ms.motifIdx.C,reverse:!0,isB:!1},vw:{axiom:Ms.motifIdx.B,reverse:!0,isB:!0},wv:{axiom:Ms.motifIdx.B,reverse:!1,isB:!0}},hp=up({W:"W+++Z---WZ",Z:"Z+++W---ZW"},{W:"E",Z:"+e-"}),ub=hp.motifIdx.W;function dp(r){return Array.from({length:r.length},(e,t)=>r.indexOf(t))}var pp=[0,1,3,4,5,6,7,2],mp=[0,1,2,7,3,4,5,6],YP=dp(pp),WP=dp(mp);function fb(r,e,t,n,i){if(e<=0)return;let A=r[e]||0,h=r[e-1],p=t[0]+t[1],B=!0,T=!0;if(n!==(p===0)?(B=A===1||A===2,T=A===1):(B=A<2,T=A===0),!B)return;let y=T?h:h+4,E=i[y];r[e-1]=E%4,r[e]=(A+4+Math.floor(E/4)-Math.floor(y/4))%4}function hb(r,e){e===1?r[1]=-r[1]:e===3&&(r[0]=-r[0])}function db(r,e,t){let n=t?mp:pp,i=[1,1];for(let A=r.length-1;A>=0;A--)fb(r,A,i,e,n),hb(i,r[A]);return i}function pb(r,e){let t=[],n=r;for(;n>0n||t.length<e;)t.push(Number(n&3n)),n>>=2n;return t}function mb(r){let e=0n;for(let t=r.length-1;t>=0;t--)e=e<<2n|BigInt(r[t]);return e}var gb={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 Bb(r,e){let t=r[1]===-1?1:0,i=(r[0]+r[1]===0?e===0||e===3:e===2||e===3)?1:0;return t|i<<1}function Cb(r,e,t){let n=1n<<BigInt(2*e),i=t.reverse?n-1n-r:r,A=pb(i,e),h=db(A,t.invertJ,t.flipIJ),p=lb(hp,mb(A),e,ub),B=cb(p.a,p.b);if(t.flipIJ&&(B={x:B.z,y:B.y,z:B.x}
3),t.invertJ){let T=uA[e]-1;B={x:B.y-T,y:B.x+T,z:B.z}}return{triple:B,flips:h,q:A.length>0?A[0]:0}}function Tb(r,e,t="uv"){let n=gb[t],{triple:i,flips:A,q:h}=Cb(r,e,n);return n.invertJ&&(A[0]=-A[0]),{triple:i,flavor:Bb(A,h)}}var Ss=2,Cc=30,Od=58n,yb=0n;function bb(r){if(r===0n)return-1;if(r&1n||(r&0b111n)===0b100n||(r&0b11111n)===0b10000n)return Cc;let e=Cc-1,t=r>>1n;if(t===0n)return-1;let n=Number(t&0xffffffffn),i;for(n===0?(t>>=32n,e-=16,i=Number(t)):i=n,(i&65535)===0&&(i>>=16,e-=8),e>=6&&(i&255)===0&&(i>>=8,e-=4),e>=4&&(i&15)===0&&(i>>=4,e-=2);e>-1&&(i&1)===0;)e-=1,i=i>>(e<Ss?1:2);return e}function Eb(r){let e=bb(r);if(e===-1)return{origin:Ur[0],segment:0,S:0n,resolution:e};let t=Od,n=0;if(e===Cc){let E=r&1n?1n:r&0b100n?3n:5n;t=Od+E,n=E===1n?0:E===3n?32:40}let i=Number(r>>t)+n,A,h;if(e===0)A=Ur[i],h=0;else{let E=Math.floor(i/5);A=Ur[E],h=(i+A.firstQuintant)%5}if(!A)throw new Error(`Could not parse origin: ${i}`);if(e<Ss)return{origin:A,segment:h,S:0n,resolution:e};let p=e-Ss+1,B=BigInt(2*p),T=(1n<<t)-1n,y=(r&T)>>t-B;return{origin:A,segment:h,S:y,resolution:e}}var Ie=(r,e,t)=>({x:r,y:e,z:t}),qP=[{edge:[Ie(0,0,1),Ie(0,1,-1),Ie(0,1,0),Ie(1,-1,0),Ie(1,0,0)],vertex:[Ie(1,-1,1),Ie(1,1,-1)],all:[Ie(0,0,1),Ie(0,1,-1),Ie(0,1,0),Ie(1,-1,0),Ie(1,0,0),Ie(1,-1,1),Ie(1,1,-1)]},{edge:[Ie(0,0,-1),Ie(0,-1,1),Ie(0,-1,0),Ie(-1,1,0),Ie(-1,0,0)],vertex:[Ie(-1,1,-1),Ie(-1,-1,1)],all:[Ie(0,0,-1),Ie(0,-1,1),Ie(0,-1,0),Ie(-1,1,0),Ie(-1,0,0),Ie(-1,1,-1),Ie(-1,-1,1)]},{edge:[Ie(-1,1,0),Ie(0,-1,1),Ie(0,0,1),Ie(0,1,0),Ie(1,0,0)],vertex:[Ie(-1,1,1),Ie(1,-1,1)],all:[Ie(-1,1,0),Ie(0,-1,1),Ie(0,0,1),Ie(0,1,0),Ie(1,0,0),Ie(-1,1,1),Ie(1,-1,1)]},{edge:[Ie(1,-1,0),Ie(0,1,-1),Ie(0,0,-1),Ie(0,-1,0),Ie(-1,0,0)],vertex:[Ie(1,-1,-1),Ie(-1,1,-1)],all:[Ie(1,-1,0),Ie(0,1,-1),Ie(0,0,-1),Ie(0,-1,0),Ie(-1,0,0),Ie(1,-1,-1),Ie(-1,1,-1)]}];var _b=24,xb=1.4,ZP=vs(0,0,1),$P=(()=>{let r=[];for(let e=0;e<_b;e++){let t=(e+1)*xb;r.push(vs(Math.cos(t),Math.sin(t),0))}return r})();var eO=Nd(),Ib=new Zy;var tO=70*Math.PI/180,rO=Mr();function wb({S:r,segment:e,origin:t,resolution:n}){let{quintant:i,orientation:A}=Jy(e,t);if(n===Ss-1)return sp(i);if(n===Ss-2)return Wy();let h=n-Ss+1,{triple:p,flavor:B}=Tb(r,h,A);return Yy(h,i,p,B)}function gp(r,{closedRing:e=!0,segments:t="auto"}={closedRing:!0,segments:"auto"}){if(r===yb)return[];let{S:n,segment:i,origin:A,resolution:h}=Eb(r);t==="auto"&&(t=Math.max(1,Math.pow(2,6-h)));let T=wb({S:n,segment:i,origin:A,resolution:h}).splitEdges(t).getVertices(),y=new Array(T.length);for(let I=0;I<T.length;I++)y[I]=$d(Ib.inverse(T[I],A.id));let E=Py(y);return e&&E.push(E[0]),E.reverse(),E}function Bp(r){return BigInt(`0x${r}`)}var Cp=2;var Mb=Cp*cA/Math.sqrt(15),Tp=new Array(31);Tp[0]=Cp*cA/Math.sqrt(3);for(let r=1;r<=30;r++)Tp[r]=Mb/(1<<r-1);var nO=(()=>{let r=[];for(let e=-1;e<=1;e++)for(let t=-1;t<=1;t++)for(let n=-1;n<=1;n++)e===0&&t===0&&n===0||r.push([e,t,n]);return r})();var sO=vs(0,0,1),iO=vs(1,0,0),oO=Mr();var Ze=(function(r){r=r||{};var e=typeof r<"u"?r:{},t={},n;for(n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);var i=[],A="";function h(q){return e.locateFile?e.locateFile(q,A):A+q}var p;typeof document<"u"&&document.currentScript&&(A=document.currentScript.src),A.indexOf("blob:")!==0?A=A.substr(0,A.lastIndexOf("/")+1):A="",p=function(ae,Te,te){var s=new XMLHttpRequest;s.open("GET",ae,!0),s.responseType="arraybuffer",s.onload=function(){if(s.status==200||s.status==0&&s.response){Te(s.response);return}var tt=C0(ae);if(tt){Te(tt.buffer);return}te()},s.onerror=te,s.send(null)};var B=e.print||console.log.bind(console),T=e.printErr||console.warn.bind(console);for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);t=null,e.arguments&&(i=e.arguments);var y=0,E=function(q){y=q},I=function(){return y},S=8;function O(q,ae,Te,te){switch(Te=Te||"i8",Te.charAt(Te.length-1)==="*"&&(Te="i32"),Te){case"i1":Ee[q>>0]=ae;break;case"i8":Ee[q>>0]=ae;break;case"i16":Pe[q>>1]=ae;break;case"i32":Ve[q>>2]=ae;break;case"i64":B0=[ae>>>0,(Bs=ae,+iC(Bs)>=1?Bs>0?(aC(+AC(Bs/4294967296),4294967295)|0)>>>0:~~+oC((Bs-+(~~Bs>>>0))/4294967296)>>>0:0)],Ve[q>>2]=B0[0],Ve[q+4>>2]=B0[1];break;case"float":Je[q>>2]=ae;break;case"double":ze[q>>3]=ae;break;default:Hn("invalid type for setValue: "+Te)}}function N(q,ae,Te){switch(ae=ae||"i8",ae.charAt(ae.length-1)==="*"&&(ae="i32"),ae){case"i1":return Ee[q>>0];case"i8":return Ee[q>>0];case"i16":return Pe[q>>1];case"i32":return Ve[q>>2];case"i64":return Ve[q>>2];case"float":return Je[q>>2];case"double":return ze[q>>3];default:Hn("invalid type for getValue: "+ae)}return null}var Q=!1;function z(q,ae){q||Hn("Assertion failed: "+ae)}function j(q){var ae=e["_"+q];return z(ae,"Cannot call unknown function "+q+", make sure it is exported"),ae}function re(q,ae,Te,te,s){var at={string:function(Ge){var st=0;if(Ge!=null&&Ge!==0){var Io=(Ge.length<<2)+1;st=Pf(Io),H(Ge,st,Io)}return st},array:function(Ge){var st=Pf(Ge.length);return fe(Ge,st),st}};function tt(Ge){return ae==="string"?he(Ge):ae==="boolean"?!!Ge:Ge}var R=j(q),ct=[],tr=0;if(te)for(var Dt=0;Dt<te.length;Dt++){var St=at[Te[Dt]];St?(tr===0&&(tr=xC()),ct[Dt]=St(te[Dt])):ct[Dt]=te[Dt]}var mt=R.apply(null,ct);
3return mt=tt(mt),tr!==0&&_C(tr),mt}function ie(q,ae,Te,te){Te=Te||[];var s=Te.every(function(tt){return tt==="number"}),at=ae!=="string";return at&&s&&!te?j(q):function(){return re(q,ae,Te,arguments,te)}}var ce=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function Ae(q,ae,Te){for(var te=ae+Te,s=ae;q[s]&&!(s>=te);)++s;if(s-ae>16&&q.subarray&&ce)return ce.decode(q.subarray(ae,s));for(var at="";ae<s;){var tt=q[ae++];if(!(tt&128)){at+=String.fromCharCode(tt);continue}var R=q[ae++]&63;if((tt&224)==192){at+=String.fromCharCode((tt&31)<<6|R);continue}var ct=q[ae++]&63;if((tt&240)==224?tt=(tt&15)<<12|R<<6|ct:tt=(tt&7)<<18|R<<12|ct<<6|q[ae++]&63,tt<65536)at+=String.fromCharCode(tt);else{var tr=tt-65536;at+=String.fromCharCode(55296|tr>>10,56320|tr&1023)}}return at}function he(q,ae){return q?Ae(De,q,ae):""}function W(q,ae,Te,te){if(!(te>0))return 0;for(var s=Te,at=Te+te-1,tt=0;tt<q.length;++tt){var R=q.charCodeAt(tt);if(R>=55296&&R<=57343){var ct=q.charCodeAt(++tt);R=65536+((R&1023)<<10)|ct&1023}if(R<=127){if(Te>=at)break;ae[Te++]=R}else if(R<=2047){if(Te+1>=at)break;ae[Te++]=192|R>>6,ae[Te++]=128|R&63}else if(R<=65535){if(Te+2>=at)break;ae[Te++]=224|R>>12,ae[Te++]=128|R>>6&63,ae[Te++]=128|R&63}else{if(Te+3>=at)break;ae[Te++]=240|R>>18,ae[Te++]=128|R>>12&63,ae[Te++]=128|R>>6&63,ae[Te++]=128|R&63}}return ae[Te]=0,Te-s}function H(q,ae,Te){return W(q,De,ae,Te)}var U=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function fe(q,ae){Ee.set(q,ae)}function _e(q,ae){return q%ae>0&&(q+=ae-q%ae),q}var xe,Ee,De,Pe,Ne,Ve,Ke,Je,ze;function wt(q){xe=q,e.HEAP8=Ee=new Int8Array(q),e.HEAP16=Pe=new Int16Array(q),e.HEAP32=Ve=new Int32Array(q),e.HEAPU8=De=new Uint8Array(q),e.HEAPU16=Ne=new Uint16Array(q),e.HEAPU32=Ke=new Uint32Array(q),e.HEAPF32=Je=new Float32Array(q),e.HEAPF64=ze=new Float64Array(q)}var p0=5271296,Ei=28384,Mt=e.TOTAL_MEMORY||33554432;e.buffer?xe=e.buffer:xe=new ArrayBuffer(Mt),Mt=xe.byteLength,wt(xe),Ve[Ei>>2]=p0;function Ut(q){for(;q.length>0;){var ae=q.shift();if(typeof ae=="function"){ae();continue}var Te=ae.func;typeof Te=="number"?ae.arg===void 0?e.dynCall_v(Te):e.dynCall_vi(Te,ae.arg):Te(ae.arg===void 0?null:ae.arg)}}var ur=[],Un=[],ms=[],Qr=[];function pn(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)nC(e.preRun.shift());
3Ut(ur)}function gs(){Ut(Un)}function _i(){Ut(ms)}function xi(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)sC(e.postRun.shift());Ut(Qr)}function nC(q){ur.unshift(q)}function sC(q){Qr.unshift(q)}var iC=Math.abs,oC=Math.ceil,AC=Math.floor,aC=Math.min,kn=0,m0=null,Ii=null;function cC(q){kn++,e.monitorRunDependencies&&e.monitorRunDependencies(kn)}function lC(q){if(kn--,e.monitorRunDependencies&&e.monitorRunDependencies(kn),kn==0&&(m0!==null&&(clearInterval(m0),m0=null),Ii)){var ae=Ii;Ii=null,ae()}}e.preloadedImages={},e.preloadedAudios={};var rn=null,g0="data:application/octet-stream;base64,";function vf(q){return String.prototype.startsWith?q.startsWith(g0):q.indexOf(g0)===0}var Bs,B0;rn
vendor: 19,853 bytes, line 3
3="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAA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AAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAA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PwAAAAEAAAA7AAAAAwAAADkAAAADAAAAbQAAAAAAAABsAAAAAAAAAGQAAAAFAAAAXQAAAAEAAABfAAAAAAAAAFwAAAAAAAAATQAAAAEAAABPAAAAAAAAAE4AAAAAAAAAdQAAAAQAAAB2AAAABQAAAHIAAAAFAAAAagAAAAEAAABtAAAAAAAAAGwAAAAAAAAAWgAAAAEAAABdAAAAAQAAAF8AAAAAAAAAWgAAAAAAAABNAAAAAAAAAD8AAAAAAAAAUAAAAAAAAABEAAAAAAAAADgAAAADAAAASAAAAAEAAAA8AAAAAwAAAC4AAAADAAAAagAAAAAAAABdAAAAAAAAAE8AAAAFAAAAYwAAAAEAAABaAAAAAAAAAE0AAAAAAAAAWAAAAAEAAABQAAAAAAAAAEQAAAAAAAAAdQAAAAMAAABtAAAABQAAAF8AAAAFAAAAcQAAAAEAAABqAAAAAAAAAF0AAAAAAAAAaQAAAAEAAABjAAAAAQAAAFoAAAAAAAAAaQAAAAAAAABYAAAAAAAAAEgAAAAAAAAAZwAAAAAAAABbAAAAAAAAAEkAAAADAAAAYQAAAAEAAABZAAAAAwAAAEcAAAADAAAAcQAAAA
vendor: 17,076 bytes, line 3
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s6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////wIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAgAAAAAAAAACAAAAAQAAAAEAAAACAAAAAgAAAAAAAAAFAAAABQAAAAAAAAACAAAAAgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAIAAAABAAAAAgAAAAIAAAACAAAAAAAAAAUAAAAGAAAAAAAAAAIAAAACAAAAAwAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAAAAAAAgAAAAEAAAADAAAAAgAAAAIAAAAAAAAABQAAAAcAAAAAAAAAAgAAAAIAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAgAAAAAAAAACAAAAAQAAAAQAAAACAAAAAgAAAAAAAAAFAAAACAAAAAAAAAACAAAAAgAAAAMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAACAAAAAAAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAUAAAAJAAAAAAAAAAIAAAACAAAAAwAAAAUAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAIAAAACAAAAAAAAAAMAAAAOAAAAAgAAAAAAAAACAAAAAwAAAAAAAAAAAAAAAgAAAAIAAAADAAAABgAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAgAAAAIAAAAAAAAAAwAAAAoAAAACAAAAAAAAAAIAAAADAAAAAQAAAAAAAAACAAAAAgAAAAMAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAgAAAAAAAAADAAAACwAAAAIAAAAAAAAAAgAAAAMAAAACAAAAAAAAAAIAAAACAAAAAwAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAACAAAAAAAAAAMAAAAMAAAAAgAAAAAAAAACAAAAAwAAAAMAAAAAAAAAAgAAAAIAAAADAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAgAAAAIAAAAAAAAAAwAAAA0AAAACAAAAAAAAAAIAAAADAAAABAAAAAAAAAACAAAAAgAAAAMAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAgAAAAAAAAADAAAABgAAAAIAAAAAAAAAAgAAAAMAAAAPAAAAAAAAAAIAAAACAAAAAwAAAAsAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAIAAAACAAAAAAAAAAMAAAAHAAAAAgAAAAAAAAACAAAAAwAAABAAAAAAAAAAAgAAAAIAAAADAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAIAAAAAAAAAAwAAAAgAAAACAAAAAAAAAAIAAAADAAAAEQAAAAAAAAACAAAAAgAAAAMAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAACAAAAAgAAAAAAAAADAAAACQAAAAIAAAAAAAAAAgAAAAMAAAASAAAAAAAAAAIAAAACAAAAAwAAAA4AAAAAAAAAAAAAAAAAAAAAAAAACQAAAAIAAAACAAAAAAAAAAMAAAAFAAAAAgAAAAAAAAACAAAAAwAAABMAAAAAAAAAAgAAAAIAAAADAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAgAAAAAAAAACAAAAAQAAABMAAAACAAAAAgAAAAAAAAAFAAAACgAAAAAAAAACAAAAAgAAAAMAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABEAAAACAAAAAAAAAAIAAAABAAAADwAAAAIAAAACAAAAAAAAAAUAAAALAAAAAAAAAAIAAAACAAAAAwAAABEAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAIAAAAAAAAAAgAAAAEAAAAQAAAAAgAAAAIAAAAAAAAABQAAAAwAAAAAAAAAAgAAAAIAAAADAAAAEgAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAACAAAAAQAAABEAAAACAAAAAgAAAAAAAAAFAAAADQAAAAAAAAACAAAAAgAAAAMAAAATAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAACAAAAAAAAAAIAAAABAAAAEgAAAAIAAAACAAAAAAAAAAUAAAAOAAAAAAAAAAIAAAACAAAAAwAAAAIAAAABAAAAAAAAAAEAAAACAAAAAAAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAAEAAAAAAAAAAgAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAUAAAAEAAAAAAAAAAUAAAAAAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAEAAAACAAAAAQAAAAAAAAACAAAAAgAAAAAAAAABAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAAAAAAAAAAABQAAAAQAAAAAAAAAAQAAAAUAAAAEAAAAAAAAAAUAAAAFAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAABAAAAAAAAAAABAAAAAAEAAAAAAAAAAAEAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAQAAAAAAAAAAAAEAAAAAAAAAAAAAOgehWlKfUEEz1zLi+JsiQa2og3wcMfVAWCbHorc0yEDi+Yn/Y6mbQJ11/mfsnG9At6bnG4UQQkBvMCQWKqUUQJVmwwswmOc/3hVgVBL3uj//qqOEOdGOPw/WDN4gnGE/H3ANkCUgND+AA8btKgAHPwTXBqJVSdo+XfRQAqsKrj4fc+zLYbSPQklEmCZHv2FCUP+uDso1NEKYtPhwphUHQptxnyFXYdpB7CddZAMmrkGAt1AxSTqBQUibBVdTsFNBSuX3MV+AJkFocv82SLf5QAqmgj7AY81A23VDSEnLoEDGEJVSeDFzQDYrqvBk70VA8U157pcRGUBWfEF+ZKbsP6phvycGBZRAJbod0OgwfkCp+L8jatBmQCjl3pGrPlFAfMWm114SOkButwtqS7UjQHQwbcjXyw1A8jnLuuyA9j9KwjL0VwHhPyotk0lcs8k/Q5PvEs9rsz+SfsOQEVqdPzUAKDojLoY/WJz/kcjCcD8YFu070FRZPyoLC2BdJEM/YOXQAuiMM0HIBz1bw3sdQdV46aaHRwZByatzjDPX8EDb3Jie8HXZQCJxj6ULP8NAUaG6uRAZrUCWdmou5/mVQLb9huRPm4BAhvoCHygZaUCuX/I3SPdSQC9/bC/1qTxAfKxsYQ6pJUCuslH+N14QQMS/cv7SvPg/Ol8maYKx4j8AAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA/////wAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAP////8AAAAABQAAAAAAAAAAAAAAAAAAAAAAAAD/////BQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAEAAQAAAQEAAAAAAAEAAAABAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAA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AgAAAACAAAAMQAAAAkAAAAOAAAAAAAAAAUAAAAEAAAAOgAAAAgAAAANAAAABAAAAAkAAAADAAAAPwAAAAsAAAAGAAAADwAAAAoAAAAQAAAASAAAAAwAAAAHAAAAEAAAAAsAAAARAAAAUwAAAAoAAAAFAAAAEwAAAA4AAAAPAAAAYQAAAA0AAAAIAAAAEQAAAAwAAAASAAAAawAAAA4AAAAJAAAAEgAAAA0AAAATAAAAdQAAAA8AAAATAAAAEQAAABIAAAAQAAAABgAAAAIAAAADAAAABQAAAAQAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAMAAAABAAAABQAAAAQAAAAAAAAAAAAAAAcAAAAFAAAAAwAAAAQAAAABAAAAAAAAAAIAAAAAAAAAAgAAAAMAAAABAAAABQAAAAQAAAAGAAAAAAAAAAAAAAAYLURU+yH5PxgtRFT7Ifm/GC1EVPshCUAYLURU+yEJwGFsZ29zLmMAaDNOZWlnaGJvclJvdGF0aW9ucwBjZWxsc1RvTXVsdGlQb2x5LmMAY2VsbFRvRWRnZUFyY3MAAAEDAgQABAMFAQJjYW5jZWxBcmNQYWlycwBjcmVhdGVTb3J0YWJsZUxvb3AAZGlyZWN0ZWRFZGdlLmMAZGlyZWN0ZWRFZGdlVG9Cb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0NlbGxCb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbY2VudGVySUpLLmZhY2VdW2ZhY2UyXSA9PSBLSQBfZmFjZUlqa1RvQ2VsbEJvdW5kYXJ5AGgzSW5kZXguYwBjb21wYWN0Q2VsbHMAdmVjM1RvQ2VsbABjZWxsVG9DaGlsZFBvcwB2YWxpZGF0ZUNoaWxkUG9zAHJldkRpciAhPSBJTlZBTElEX0RJR0lUAGxvY2FsaWouYwBjZWxsVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAYmFzZUNlbGwgPT0gb3JpZ2luQmFzZUNlbGwALi4vaW5jbHVkZS9jb29yZGlqay5oAF91cEFwN0NoZWNrZWQAX3VwQXA3ckNoZWNrZWQAYmFzZUNlbGwgIT0gSU5WQUxJRF9CQVNFX0NFTEwAbG9jYWxJamtUb0NlbGwAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAZ3JpZFBhdGhDZWxsc0ludGVycG9sYXRlAHBvbHlmaWxsLmMAaXRlclN0ZXBQb2x5Z29uQ29tcGFjdAAwAHZlcnRleC5jAHZlcnRleFJvdGF0aW9ucwBjZWxsVG9WZXJ0ZXg=";
3var uC=28400;function fC(q){return q}function Ff(q){var ae=/\b__Z[\w\d_]+/g;return q.replace(ae,function(Te){var te=Te;return Te===te?Te:te+" ["+Te+"]"})}function Rf(){var q=new Error;if(!q.stack){try{throw new Error(0)}catch(ae){q=ae}if(!q.stack)return"(no stack trace available)"}return q.stack.toString()}function hC(){var q=Rf();return e.extraStackTrace&&(q+=` 4`+e.extraStackTrace()),Ff(q)}function dC(q,ae,Te,te){Hn("Assertion failed: "+he(q)+", at: "+[ae?he(ae):"unknown filename",Te,te?he(te):"unknown function"])}function Lf(){return Ee.length}function pC(q,ae,Te){De.set(De.subarray(ae,ae+Te),q)}function mC(q){return e.___errno_location&&(Ve[e.___errno_location()>>2]=q),q}function gC(q){Hn("OOM")}function Df(q){try{var ae=new ArrayBuffer(q);return ae.byteLength!=q?void 0:(new Int8Array(ae).set(Ee),EC(ae),wt(ae),1)}catch(Te){}}function BC(q){var ae=Lf(),Te=16777216,te=2147483648-Te;if(q>te)return!1;for(var s=16777216,at=Math.max(ae,s);at<q;)at<=536870912?at=_e(2*at,Te):at=Math.min(_e((3*at+2147483648)/4,Te),te);var tt=Df(at);return!!tt}var CC=typeof atob=="function"?atob:function(q){var ae="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
4+/=",Te="",te,s,at,tt,R,ct,tr,Dt=0;q=q.replace(/[^A-Za-z0-9\+\/\=]/g,"");do tt=ae.indexOf(q.charAt(Dt++)),R=ae.indexOf(q.charAt(Dt++)),ct=ae.indexOf(q.charAt(Dt++)),tr=ae.indexOf(q.charAt(Dt++)),te=tt<<2|R>>4,s=(R&15)<<4|ct>>2,at=(ct&3)<<6|tr,Te=Te+String.fromCharCode(te),ct!==64&&(Te=Te+String.fromCharCode(s)),tr!==64&&(Te=Te+String.fromCharCode(at));while(Dt<q.length);return Te};function TC(q){try{for(var ae=CC(q),Te=new Uint8Array(ae.length),te=0;te<ae.length;++te)Te[te]=ae.charCodeAt(te);return Te}catch(s){throw new Error("Converting base64 string to bytes failed.")}}function C0(q){if(vf(q))return TC(q.slice(g0.length))}var yC={Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},bC={a:Hn,b:E,c:I,d:dC,e:mC,f:Lf,g:pC,h:BC,i:gC,j:fC,k:Ff,l:Df,m:Rf,n:hC,o:uC,p:Ei},ue=(function(q,ae,Te){"almost asm";var te=new q.Int8Array(Te),s=new q.Int32Array(Te),at=new q.Uint8Array(Te),tt=new q.Float32Array(Te),R=new q.Float64Array(Te),ct=ae.o|0,tr=ae.p|0,Dt=q.Math.floor,St=q.Math.abs,mt=q.Math.sqrt,Ge=q.Math.cos,st=q.Math.sin,Io=q.Math.tan,IC=q.Math.acos,wi=q.Math.asin,Uf=q.Math.atan,zt=q.Math.atan2,Cs=q.Math.ceil,rr=q.Math.imul,b0=q.Math.min,wC=q.Math.max,nn=q.Math.clz32,MC=ae.a,Re=ae.b,F=ae.c,je=ae.d,kf=ae.e,SC=ae.f,vC=ae.g,FC=ae.h,RC=ae.i,v=28416;function LC(o){return te=new Int8Array(o),at=new Uint8Array(o),s=new Int32Array(o),tt=new Float32Array(o),R=new Float64Array(o),Te=o,!0}function DC(o){o=o|0;var a=0;return a=v,v=v+o|0,v=v+15&-16,a|0}function PC(){return v|0}function OC(o){o=o|0,v=o}function NC(o,a){o=o|0,a=a|0,v=o}function GC(o,a){o=o|0,a=a|0;var c=0,u=0,l=0;return(o|0)<0?(a=2,a|0):(o|0)>13780509?(a=vo(15,a)|0,a|0):(c=((o|0)<0)<<31>>31,l=ft(o|0,c|0,3,0)|0,u=F()|0,c=me(o|0,c|0,1,0)|0,c=ft(l|0,u|0,c|0,F()|0)|0,c=me(c|0,F()|0,1,0)|0,o=F()|0,s[a>>2]=c,s[a+4>>2]=o,a=0,a|0)}function Hf(o,a,c,u){return o=o|0,a=a|0,c=c|0,u=u|0,Vf(o,a,c,u,0)|0}function Vf(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0;if(g=v,v=v+16|0,d=g,!(Jf(o,a,c,u,l)|0))return u=0,v=g,u|0;do if((c|0)>=0){if((c|0)>13780509){if(f=vo(15,d)|0,f|0)break;m=d,d=s[m>>2]|0,m=s[m+4>>2]|0}else f=((c|0)<0)<<31>>31,C=ft(c|0,f|0,3,0)|0,m=F()|0,f=me(c|0,f|0,1,0)|0,f=ft(C|0,m|0,f|0,F()|0)|0,f=me(f|0,F()|0,1,0)|0,m=F()|0,s[d>>2]=f,s[d+4>>2]=m,d=f;if(Cn(u|0,0,d<<3|0)|0,l|0){Cn(l|0,0,d<<2|0)|0,f=Kr(o,a,c,u,l,d,m,0)|0;break}f=Xt(d,4)|0,f?(C=Kr(o,a,c,u,f,d,m,0)|0,Ce(f),f=C):f=13}else f=2;while(!1);return C=f,v=g,C|0}function Jf(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0;if(D=v,v=v+16|0,w=D,M=D+8|0,x=w,s[x>>2]=o,s[x+4>>2]=a,(c|0)<0)return M=2,v=D,M|0;if(f=u,s[f>>2]=o,s[f+4>>2]=a,f=(l|0)!=0,f&&(s[l>>2]=0),ot(o,a)|0)return M=9,v=D,M|0;s[M>>2]=0;e:do if((c|0)>=1)if(f)for(b=1,C=0,_=0,x=1,f=o;;){if(!(C|_)){if(f=vt(f,a,4,M,w)|0,f|0)break e;if(a=w,f=s[a>>2]|0,a=s[a+4>>2]|0,ot(f,a)|0){f=9;break e}}if(f=vt(f,a,s[26864+(_<<2)>>2]|0,M,w)|0,f|0)break e;if(a=w,f=s[a>>2]|0,a=s[a+4>>2]|0,o=u+(b<<3)|0,s[o>>2]=f,s[o+4>>2]=a,s[l+(b<<2)>>2]=x,o=C+1|0,d=(o|0)==(x|0),m=_+1|0,g=(m|0)==6,ot(f,a)|0){f=9;break e}if(x=x+(g&d&1)|0,(x|0)>(c|0)){f=0;break}else b=b+1|0,C=d?0:o,_=d?g?0:m:_}else for(b=1,C=0,_=0,x=1,f=o;;){if(!(C|_)){if(f=vt(f,a,4,M,w)|0,f|0)break e;if(a=w,f=s[a>>2]|0,a=s[a+4>>2]|0,ot(f,a)|0){f=9;break e}}if(f=vt(f,a,s[26864+(_<<2)>>2]|0,M,w)|0,f|0)break e;if(a=w,f=s[a>>2]|0,a=s[a+4>>2]|0,o=u+(b<<3)|0,s[o>>2]=f,s[o+4>>2]=a,o=C+1|0,d=(o|0)==(x|0),m=_+1|0,g=(m|0)==6,ot(f,a)|0){f=9;break e}if(x=x+(g&d&1)|0,(x|0)>(c|0)){f=0;break}else b=b+1|0,C=d?0:o,_=d?g?0:m:_}else f=0;while(!1);return M=f,v=D,M|0}function Kr(o,a,c,u,l,f,d,m){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0,f=f|0,d=d|0,m=m|0;var g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0;if(D=v,v=v+16|0,w=D+8|0,M=D,g=sn(o|0,a|0,f|0,d|0)|0,b=F()|0,_=u+(g<<3)|0,G=_,V=s[G>>2]|0,G=s[G+4>>2]|0,C=(V|0)==(o|0)&(G|0)==(a|0),!((V|0)==0&(G|0)==0|C))do g=me(g|0,b|0,1,0)|0,g=Bn(g|0,F()|0,f|0,d|0)|0,b=F()|0,_=u+(g<<3)|0,V=_,G=s[V>>2]|0,V=s[V+4>>2]|0,C=(G|0)==(o|0)&(V|0)==(a|0);while(!((G|0)==0&(V|0)==0|C));if(g=l+(g<<2)|0,C&&(s[g>>2]|0)<=(m|0)||(V=_,s[V>>2]=o,s[V+4>>2]=a,s[g>>2]=m,(m|0)>=(c|0)))return V=0,v=D,V|0;switch(C=m+1|0,s[w>>2]=0,g=vt(o,a,2,w,M)|0,g|0){case 9:{x=9;break}case 0:{g=M,g=Kr(s[g>>2]|0,s[g+4>>2]|0,c,u,l,f,d,C)|0,g||(x=9);break}default:}e:do if((x|0)==9){switch(s[w>>2]=0,g=vt(o,a,3,w,M)|0,g|0){case 9:break;case 0:{if(g=M,g=Kr(s[g>>2]|0,s[g+4>>2]|0,c,u,l,f,d,C)|0,g|0)break e;break}default:break e}switch(s[w>>2]=0,g=vt(o,a,1,w,M)|0,g|0){case 9:break;case 0:{if(g=M,g=Kr(s[g>>2]|0,s[g+4>>2]|0,c,u,l,f,d,C)|0,g|0)break e;break}default:break e}switch(s[w>>2]=0,g=vt(o,a,5,w,M)|0,g|0){case 9:break;case 0:{if(g=M,g=Kr(s[g>>2]|0,s[g+4>>2]|0,c,u,l,f,d,C)|0,g|0)break e;break}default:break e}switch(s[w>>2]=0,g=vt(o,a,4,w,M)|0,g|0){case 9:break;case 0:{if(g=M,g=Kr(s[g>>2]|0,s[g+4>>2]|0,c,u,l,f,d,C)|0,g|0)break e;break}default:break e}switch(s[w>>2]=0,g=vt(o,a,6,w,M)|0,g|0){case 9:break;case 0:{if(g=M,g=Kr(s[g>>2]|0,s[g+4>>2]|0,c,u,l,f,d,C)|0,g|0)break e;break}default:break e}return V=0,v=D,V|0}while(!1);return V=g,v=D,V|0}function vt(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0;if(c>>>0>6)return l=1,l|0;d=(s[u>>2]|0)%6|0,s[u>>2]=d;e:do if((d|0)>0)for(f=0;;){switch(c|0){case 1:{c=5;break}case 5:{c=4;break}case 4:{c=6;break}case 6:{c=2;break}case 2:{c=3;break}case 3:{c=1;break}default:}if(f=f+1|0,(f|0)==(d|0))break e}while(!1);if(_=oe(o|0,a|0,45)|0,F()|0,b=_&127,b>>>0>121)return l=5,l|0;
4g=nr(o,a)|0,f=oe(o|0,a|0,52)|0,F()|0,f=f&15;e:do if(!f)C=15;else{for(;;){if(d=(15-f|0)*3|0,m=oe(o|0,a|0,d|0)|0,F()|0,m=m&7,(m|0)==7){a=5;break}if(M=(Tr(f)|0)==0,f=f+-1|0,x=de(7,0,d|0)|0,a=a&~(F()|0),w=de(s[(M?432:16)+(m*28|0)+(c<<2)>>2]|0,0,d|0)|0,d=F()|0,c=s[(M?640:224)+(m*28|0)+(c<<2)>>2]|0,o=w|o&~x,a=d|a,!c){c=0;break e}if(!f){C=15;break e}}return a|0}while(!1);(C|0)==15&&(M=s[848+(b*28|0)+(c<<2)>>2]|0,w=de(M|0,0,45)|0,o=w|o,a=F()|0|a&-1040385,c=s[4272+(b*28|0)+(c<<2)>>2]|0,(M&127|0)==127&&(M=de(s[848+(b*28|0)+20>>2]|0,0,45)|0,a=F()|0|a&-1040385,c=s[4272+(b*28|0)+20>>2]|0,o=Vn(M|o,a)|0,a=F()|0,s[u>>2]=(s[u>>2]|0)+1)),m=oe(o|0,a|0,45)|0,F()|0,m=m&127;e:do if(lt(m)|0){t:do if((nr(o,a)|0)==1){if((b|0)!=(m|0))if(zf(m,s[7696+(b*28|0)>>2]|0)|0){o=D0(o,a)|0,d=1,a=F()|0;break}else je(27634,26928,533,26936);switch(g|0){case 3:{o=Vn(o,a)|0,a=F()|0,s[u>>2]=(s[u>>2]|0)+1,d=0;break t}case 5:{o=D0(o,a)|0,a=F()|0,s[u>>2]=(s[u>>2]|0)+5,d=0;break t}case 0:return M=9,M|0;default:return M=1,M|0}}else d=0;while(!1);if((c|0)>0){f=0;do o=L0(o,a)|0,a=F()|0,f=f+1|0;while((f|0)!=(c|0))}if((b|0)!=(m|0)){if(!(E0(m)|0)){if((d|0)!=0|(nr(o,a)|0)!=5)break;s[u>>2]=(s[u>>2]|0)+1;break}switch(_&127){case 8:case 118:break e;default:}(nr(o,a)|0)!=3&&(s[u>>2]=(s[u>>2]|0)+1)}}else if((c|0)>0){f=0;do o=Vn(o,a)|0,a=F()|0,f=f+1|0;while((f|0)!=(c|0))}while(!1);return s[u>>2]=((s[u>>2]|0)+c|0)%6|0,M=l,s[M>>2]=o,s[M+4>>2]=a,M=0,M|0}function UC(o,a,c,u){return o=o|0,a=a|0,c=c|0,u=u|0,jf(o,a,c,u)|0?(Cn(u|0,0,c*48|0)|0,u=kC(o,a,c,u)|0,u|0):(u=0,u|0)}function jf(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0;if(M=v,v=v+16|0,x=M,w=M+8|0,_=x,s[_>>2]=o,s[_+4>>2]=a,(c|0)<0)return w=2,v=M,w|0;if(!c)return w=u,s[w>>2]=o,s[w+4>>2]=a,w=0,v=M,w|0;s[w>>2]=0;e:do if(ot(o,a)|0)o=9;else{l=0,_=o;do{if(o=vt(_,a,4,w,x)|0,o|0)break e;if(a=x,_=s[a>>2]|0,a=s[a+4>>2]|0,l=l+1|0,ot(_,a)|0){o=9;break e}}while((l|0)<(c|0));b=u,s[b>>2]=_,s[b+4>>2]=a,b=c+-1|0,C=0,o=1;do{if(l=26864+(C<<2)|0,(C|0)==5)for(d=s[l>>2]|0,f=0,l=o;;){if(o=x,o=vt(s[o>>2]|0,s[o+4>>2]|0,d,w,x)|0,o|0)break e;if((f|0)!=(b|0))if(g=x,m=s[g>>2]|0,g=s[g+4>>2]|0,o=u+(l<<3)|0,s[o>>2]=m,s[o+4>>2]=g,!(ot(m,g)|0))o=l+1|0;else{o=9;break e}else o=l;if(f=f+1|0,(f|0)>=(c|0))break;l=o}else for(d=x,g=s[l>>2]|0,m=0,l=o,f=s[d>>2]|0,d=s[d+4>>2]|0;;){if(o=vt(f,d,g,w,x)|0,o|0)break e;if(d=x,f=s[d>>2]|0,d=s[d+4>>2]|0,o=u+(l<<3)|0,s[o>>2]=f,s[o+4>>2]=d,o=l+1|0,ot(f,d)|0){o=9;break e}if(m=m+1|0,(m|0)>=(c|0))break;l=o}C=C+1|0}while(C>>>0<6);o=x,o=(_|0)==(s[o>>2]|0)&&(a|0)==(s[o+4>>2]|0)?0:9}while(!1);return w=o,v=M,w|0}function kC(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0;if(_=v,v=v+16|0,d=_,!c)return s[u>>2]=o,s[u+4>>2]=a,u=0,v=_,u|0;do if((c|0)>=0){if((c|0)>13780509){if(l=vo(15,d)|0,l|0)break;f=d,l=s[f>>2]|0,f=s[f+4>>2]|0}else l=((c|0)<0)<<31>>31,b=ft(c|0,l|0,3,0)|0,f=F()|0,l=me(c|0,l|0,1,0)|0,l=ft(b|0,f|0,l|0,F()|0)|0,l=me(l|0,F()|0,1,0)|0,f=F()|0,b=d,s[b>>2]=l,s[b+4>>2]=f;if(C=Xt(l,8)|0,!C)l=13;else{if(b=Xt(l,4)|0,!b){Ce(C),l=13;break}if(l=Kr(o,a,c,C,b,l,f,0)|0,l|0){Ce(C),Ce(b);break}if(a=s[d>>2]|0,d=s[d+4>>2]|0,(d|0)>0|(d|0)==0&a>>>0>0){l=0,m=0,g=0;do o=C+(m<<3)|0,f=s[o>>2]|0,o=s[o+4>>2]|0,!((f|0)==0&(o|0)==0)&&(s[b+(m<<2)>>2]|0)==(c|0)&&(x=u+(l<<3)|0,s[x>>2]=f,s[x+4>>2]=o,l=l+1|0),m=me(m|0,g|0,1,0)|0,g=F()|0;while((g|0)<(d|0)|(g|0)==(d|0)&m>>>0<a>>>0)}Ce(C),Ce(b),l=0}}else l=2;while(!1);return x=l,v=_,x|0}function wo(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0;for(m=v,v=v+16|0,f=m,d=m+8|0,l=(ot(o,a)|0)==0,l=l?1:2;;){if(s[d>>2]=0,C=(vt(o,a,l,d,f)|0)==0,g=f,C&((s[g>>2]|0)==(c|0)?(s[g+4>>2]|0)==(u|0):0)){o=4;break}if(l=l+1|0,l>>>0>=7){l=7,o=4;break}}return(o|0)==4?(v=m,l|0):0}function HC(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0;if(m=v,v=v+48|0,l=m+16|0,f=m+8|0,d=m,c=Pi(c)|0,c|0)return d=c,v=m,d|0;if(C=o,g=s[C+4>>2]|0,c=f,s[c>>2]=s[C>>2],s[c+4>>2]=g,uh(f,l),c=qf(l,a,d)|0,!c){if(a=s[f>>2]|0,f=s[o+8>>2]|0,(f|0)>0){l=s[o+12>>2]|0,c=0;do a=(s[l+(c<<3)>>2]|0)+a|0,c=c+1|0;while((c|0)<(f|0))}c=d,l=s[c>>2]|0,c=s[c+4>>2]|0,f=((a|0)<0)<<31>>31,(c|0)<(f|0)|(c|0)==(f|0)&l>>>0<a>>>0?(c=d,s[c>>2]=a,s[c+4>>
42]=f,c=f):a=l,g=me(a|0,c|0,12,0)|0,C=F()|0,c=d,s[c>>2]=g,s[c+4>>2]=C,c=u,s[c>>2]=g,s[c+4>>2]=C,c=0}return C=c,v=m,C|0}function Qf(o,a,c,u,l,f,d){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0,f=f|0,d=d|0;var m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0,J=0,ge=0,ne=0,ye=0,le=0,pe=0,Qe=0,Xe=0,kt=0,Le=0,Ye=0,Yt=0;if(Xe=v,v=v+64|0,ye=Xe+48|0,le=Xe+32|0,pe=Xe+24|0,$=Xe+8|0,se=Xe,g=s[o>>2]|0,(g|0)<=0)return Qe=0,v=Xe,Qe|0;for(Y=o+4|0,J=ye+8|0,ge=le+8|0,ne=$+8|0,m=0,K=0;;){C=s[Y>>2]|0,L=C+(K<<4)|0,s[ye>>2]=s[L>>2],s[ye+4>>2]=s[L+4>>2],s[ye+8>>2]=s[L+8>>2],s[ye+12>>2]=s[L+12>>2],(K|0)==(g+-1|0)?(s[le>>2]=s[C>>2],s[le+4>>2]=s[C+4>>2],s[le+8>>2]=s[C+8>>2],s[le+12>>2]=s[C+12>>2]):(L=C+(K+1<<4)|0,s[le>>2]=s[L>>2],s[le+4>>2]=s[L+4>>2],s[le+8>>2]=s[L+8>>2],s[le+12>>2]=s[L+12>>2]),g=rT(ye,le,u,pe)|0;e:do if(g)C=0,m=g;else if(g=pe,C=s[g>>2]|0,g=s[g+4>>2]|0,(g|0)>0|(g|0)==0&C>>>0>0){V=0,L=0;t:for(;;){if(Le=1/(+(C>>>0)+4294967296*+(g|0)),Yt=+R[ye>>3],g=Ft(C|0,g|0,V|0,L|0)|0,Ye=+(g>>>0)+4294967296*+(F()|0),kt=+(V>>>0)+4294967296*+(L|0),R[$>>3]=Le*(Yt*Ye)+Le*(+R[le>>3]*kt),R[ne>>3]=Le*(+R[J>>3]*Ye)+Le*(+R[ge>>3]*kt),g=P0($,u,se)|0,g|0){m=g;break}G=se,D=s[G>>2]|0,G=s[G+4>>2]|0,x=sn(D|0,G|0,a|0,c|0)|0,b=F()|0,g=d+(x<<3)|0,_=g,C=s[_>>2]|0,_=s[_+4>>2]|0;r:do if((C|0)==0&(_|0)==0)k=g,Qe=16;else for(w=0,M=0;;){if((w|0)>(c|0)|(w|0)==(c|0)&M>>>0>a>>>0){m=1;break t}if((C|0)==(D|0)&(_|0)==(G|0))break r;if(g=me(x|0,b|0,1,0)|0,x=Bn(g|0,F()|0,a|0,c|0)|0,b=F()|0,M=me(M|0,w|0,1,0)|0,w=F()|0,g=d+(x<<3)|0,_=g,C=s[_>>2]|0,_=s[_+4>>2]|0,(C|0)==0&(_|0)==0){k=g,Qe=16;break}}while(!1);if((Qe|0)==16&&(Qe=0,!((D|0)==0&(G|0)==0))&&(M=k,s[M>>2]=D,s[M+4>>2]=G,M=f+(s[l>>2]<<3)|0,s[M>>2]=D,s[M+4>>2]=G,M=l,M=me(s[M>>2]|0,s[M+4>>2]|0,1,0)|0,D=F()|0,G=l,s[G>>2]=M,s[G+4>>2]=D),V=me(V|0,L|0,1,0)|0,L=F()|0,g=pe,C=s[g>>2]|0,g=s[g+4>>2]|0,!((g|0)>(L|0)|(g|0)==(L|0)&C>>>0>V>>>0)){C=1;break e}}C=0}else C=1;while(!1);if(K=K+1|0,!C){Qe=21;break}if(g=s[o>>2]|0,(K|0)>=(g|0)){m=0,Qe=21;break}}return(Qe|0)==21?(v=Xe,m|0):0}function VC(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0,J=0,ge=0,ne=0,ye=0,le=0,pe=0,Qe=0,Xe=0,kt=0,Le=0,Ye=0;if(Ye=v,v=v+112|0,Qe=Ye+80|0,g=Ye+72|0,Xe=Ye,kt=Ye+56|0,l=Pi(c)|0,l|0)return Le=l,v=Ye,Le|0;
4if(C=o+8|0,Le=ut((s[C>>2]<<5)+32|0)|0,!Le)return Le=13,v=Ye,Le|0;if(V0(o,Le),l=Pi(c)|0,!l){if(le=o,pe=s[le+4>>2]|0,l=g,s[l>>2]=s[le>>2],s[l+4>>2]=pe,uh(g,Qe),l=qf(Qe,a,Xe)|0,l)le=0,pe=0;else{if(l=s[g>>2]|0,f=s[C>>2]|0,(f|0)>0){d=s[o+12>>2]|0,c=0;do l=(s[d+(c<<3)>>2]|0)+l|0,c=c+1|0;while((c|0)!=(f|0));c=l}else c=l;l=Xe,f=s[l>>2]|0,l=s[l+4>>2]|0,d=((c|0)<0)<<31>>31,(l|0)<(d|0)|(l|0)==(d|0)&f>>>0<c>>>0?(l=Xe,s[l>>2]=c,s[l+4>>2]=d,l=d):c=f,le=me(c|0,l|0,12,0)|0,pe=F()|0,l=Xe,s[l>>2]=le,s[l+4>>2]=pe,l=0}if(!l){if(c=Xt(le,8)|0,!c)return Ce(Le),Le=13,v=Ye,Le|0;if(m=Xt(le,8)|0,!m)return Ce(Le),Ce(c),Le=13,v=Ye,Le|0;ne=Qe,s[ne>>2]=0,s[ne+4>>2]=0,ne=o,ye=s[ne+4>>2]|0,l=g,s[l>>2]=s[ne>>2],s[l+4>>2]=ye,l=Qf(g,le,pe,a,Qe,c,m)|0;e:do if(l)Ce(c),Ce(m),Ce(Le);else{t:do if((s[C>>2]|0)>0){for(d=o+12|0,f=0;l=Qf((s[d>>2]|0)+(f<<3)|0,le,pe,a,Qe,c,m)|0,f=f+1|0,!(l|0);)if((f|0)>=(s[C>>2]|0))break t;Ce(c),Ce(m),Ce(Le);break e}while(!1);(pe|0)>0|(pe|0)==0&le>>>0>0&&Cn(m|0,0,le<<3|0)|0,ye=Qe,ne=s[ye+4>>2]|0;t:do if((ne|0)>0|(ne|0)==0&(s[ye>>2]|0)>>>0>0){Y=c,J=m,ge=c,ne=m,ye=c,l=c,k=c,$=m,se=m,c=m;r:for(;;){for(G=0,V=0,L=0,K=0,f=0,d=0;;){m=Xe,g=m+56|0;do s[m>>2]=0,m=m+4|0;while((m|0)<(g|0));if(a=Y+(G<<3)|0,C=s[a>>2]|0,a=s[a+4>>2]|0,Jf(C,a,1,Xe,0)|0){m=Xe,g=m+56|0;do s[m>>2]=0,m=m+4|0;while((m|0)<(g|0));m=Xt(7,4)|0,m|0&&(Kr(C,a,1,Xe,m,7,0,0)|0,Ce(m))}for(D=0;;){M=Xe+(D<<3)|0,w=s[M>>2]|0,M=s[M+4>>2]|0;n:do if((w|0)==0&(M|0)==0)m=f,g=d;else{if(b=sn(w|0,M|0,le|0,pe|0)|0,C=F()|0,m=u+(b<<3)|0,a=m,g=s[a>>2]|0,a=s[a+4>>2]|0,!((g|0)==0&(a|0)==0)){_=0,x=0;do{if((_|0)>(pe|0)|(_|0)==(pe|0)&x>>>0>le>>>0)break r;if((g|0)==(w|0)&(a|0)==(M|0)){m=f,g=d;break n}m=me(b|0,C|0,1,0)|0,b=Bn(m|0,F()|0,le|0,pe|0)|0,C=F()|0,x=me(x|0,_|0,1,0)|0,_=F()|0,m=u+(b<<3)|0,a=m,g=s[a>>2]|0,a=s[a+4>>2]|0}while(!((g|0)==0&(a|0)==0))}if((w|0)==0&(M|0)==0){m=f,g=d;break}bs(w,M,kt)|0,J0(o,Le,kt)|0&&(x=me(f|0,d|0,1,0)|0,d=F()|0,_=m,s[_>>2]=w,s[_+4>>2]=M,f=J+(f<<3)|0,s[f>>2]=w,s[f+4>>2]=M,f=x),m=f,g=d}while(!1);if(D=D+1|0,D>>>0>=7)break;f=m,d=g}if(G=me(G|0,V|0,1,0)|0,V=F()|0,L=me(L|0,K|0,1,0)|0,K=F()|0,d=Qe,f=s[d>>2]|0,d=s[d+4>>2]|0,(K|0)<(d|0)|(K|0)==(d|0)&L>>>0<f>>>0)f=m,d=g;else break}if((d|0)>0|(d|0)==0&f>>>0>0){f=0,d=0;do K=Y+(f<<3)|0,s[K>>2]=0,s[K+4>>2]=0,f=me(f|0,d|0,1,0)|0,d=F()|0,K=Qe,L=s[K+4>>2]|0;while((d|0)<(L|0)|((d|0)==(L|0)?f>>>0<(s[K>>2]|0)>>>0:0))}if(K=Qe,s[K>>2]=m,s[K+4>>2]=g,(g|0)>0|(g|0)==0&m>>>0>0)D=c,G=se,V=ye,L=$,K=J,c=k,se=l,$=ge,k=D,l=G,ye=ne,ne=V,ge=L,J=Y,Y=K;else break t}Ce(ge),Ce(ne),Ce(Le),l=1;break e}else l=m;while(!1);Ce(Le),Ce(c),Ce(l),l=0}while(!1);return Le=l,v=Ye,Le|0}}return Ce(Le),Le=l,v=Ye,Le|0}function JC(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0;if(m=v,v=v+16|0,d=m,o=sT(o,a,((a|0)<0)<<31>>31,d)|0,o|0)return d=o,v=m,d|0;if(f=UT(d,c)|0,c=d+4|0,(s[d>>2]|0)>0){a=0;do{if(l=s[c>>2]|0,u=l+(a<<4)+4|0,Ce(s[u>>2]|0),s[u>>2]=0,s[l+(a<<4)>>2]=0,u=l+(a<<4)+8|0,l=l+(a<<4)+12|0,(s[u>>2]|0)>0){o=0;do g=s[l>>2]|0,C=g+(o<<3)+4|0,Ce(s[C>>2]|0),s[C>>2]=0,s[g+(o<<3)>>2]=0,o=o+1|0;while((o|0)<(s[u>>2]|0))}Ce(s[l>>2]|0),s[l>>2]=0,s[u>>2]=0,a=a+1|0}while((a|0)<(s[d>>2]|0))}return Ce(s[c>>2]|0),s[c>>2]=0,s[d>>2]=0,C=f,v=m,C|0}function Cr(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0;if(d=s[o>>2]|0,(d|0)<=0)return l=0,u=0,d=l<0,u=12.566370614359172-u,u=l+u,l=d?u:l,R[a>>3]=l,0;if(f=s[o+4>>2]|0,o=(d|0)!=1&1,m=+R[f>>3]*.5+.7853981633974483,l=+R[f+(o<<4)>>3]*.5+.7853981633974483,c=+st(+m)*+st(+l),u=+R[f+(o<<4)+8>>3]-+R[f+8>>3],c=+zt(+(+st(+u)*c),+(+Ge(+m)*+Ge(+l)+ +Ge(+u)*c))*-2,u=c+0,c=u-c,(d|0)==1)return m=u,l=c,d=m<0,l=12.566370614359172-l,l=m+l,m=d?l:m,R[a>>3]=m,0;for(o=1,l=u;b=o,o=o+1|0,_=(o|0)%(d|0)|0,C=+R[f+(b<<4)>>3]*.5+.7853981633974483,g=+R[f+(_<<4)>>3]*.5+.7853981633974483,u=+st(+C)*+st(+g),m=+R[f+(_<<4)+8>>3]-+R[f+(b<<4)+8>>3],c=+zt(+(+st(+m)*u),+(+Ge(+C)*+Ge(+g)+ +Ge(+m)*u))*-2-c,u=l+c,c=u-l-c,!((o|0)>=(d|0));)l=u;return _=u<0,C=12.566370614359172-c,C=u+C,C=_?C:u,R[a>>3]=C,0}function jC(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0;return d=v,v=v+192|0,u=d+176|0,l=d,f=d+168|0,o=Jn(o,a,l)|0,o|0?(f=o,v=d,f|0):(s[f>>2]=s[l>>2],s[f+4>>2]=l+8,s[u>>2]=s[f>>2],s[u+4>>2]=s[f+4>>2],Cr(u,c)|0,f=0,v=d,f|0)}function QC(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0;return d=v,v=v+192|0,u=d+176|0,l=d,f=d+168|0,o=Jn(o,a,l)|0,o?(f=o,v=d,f|0):(s[f>>2]=s[l>>2],s[f+4>>2]=l+8,s[u>>2]=s[f>>2],s[u+4>>2]=s[f+4>>2],Cr(u,c)|0,R[c>>3]=+R[c>>
43]*4058973249931477e-8,f=0,v=d,f|0)}function KC(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0;return d=v,v=v+192|0,u=d+176|0,l=d,f=d+168|0,o=Jn(o,a,l)|0,o?(f=o,v=d,f|0):(s[f>>2]=s[l>>2],s[f+4>>2]=l+8,s[u>>2]=s[f>>2],s[u+4>>2]=s[f+4>>2],Cr(u,c)|0,R[c>>3]=+R[c>>3]*4058973249931477e-8*1e6,f=0,v=d,f|0)}function lt(o){return o=o|0,o>>>0>121?(o=0,o|0):(o=s[7696+(o*28|0)+16>>2]|0,o|0)}function E0(o){return o=o|0,(o|0)==4|(o|0)==117|0}function Kf(o){return o=o|0,s[11120+((s[o>>2]|0)*216|0)+((s[o+4>>2]|0)*72|0)+((s[o+8>>2]|0)*24|0)+(s[o+12>>2]<<3)>>2]|0}function zC(o){return o=o|0,s[11120+((s[o>>2]|0)*216|0)+((s[o+4>>2]|0)*72|0)+((s[o+8>>2]|0)*24|0)+(s[o+12>>2]<<3)+4>>2]|0}function XC(o,a){o=o|0,a=a|0,o=7696+(o*28|0)|0,s[a>>2]=s[o>>2],s[a+4>>2]=s[o+4>>2],s[a+8>>2]=s[o+8>>2],s[a+12>>2]=s[o+12>>2]}function YC(o,a){o=o|0,a=a|0;var c=0,u=0;if(a>>>0>20)return a=-1,a|0;do if((s[11120+(a*216|0)>>2]|0)!=(o|0))if((s[11120+(a*216|0)+8>>2]|0)!=(o|0))if((s[11120+(a*216|0)+16>>2]|0)!=(o|0))if((s[11120+(a*216|0)+24>>2]|0)!=(o|0))if((s[11120+(a*216|0)+32>>
42]|0)!=(o|0))if((s[11120+(a*216|0)+40>>2]|0)!=(o|0))if((s[11120+(a*216|0)+48>>2]|0)!=(o|0))if((s[11120+(a*216|0)+56>>2]|0)!=(o|0))if((s[11120+(a*216|0)+64>>2]|0)!=(o|0))if((s[11120+(a*216|0)+72>>2]|0)!=(o|0))if((s[11120+(a*216|0)+80>>2]|0)!=(o|0))if((s[11120+(a*216|0)+88>>2]|0)!=(o|0))if((s[11120+(a*216|0)+96>>2]|0)!=(o|0))if((s[11120+(a*216|0)+104>>2]|0)!=(o|0))if((s[11120+(a*216|0)+112>>2]|0)!=(o|0))if((s[11120+(a*216|0)+120>>2]|0)!=(o|0))if((s[11120+(a*216|0)+128>>2]|0)!=(o|0))if((s[11120+(a*216|0)+136>>2]|0)==(o|0))o=2,c=1,u=2;else{if((s[11120+(a*216|0)+144>>2]|0)==(o|0)){o=0,c=2,u=0;break}if((s[11120+(a*216|0)+152>>2]|0)==(o|0)){o=0,c=2,u=1;break}if((s[11120+(a*216|0)+160>>2]|0)==(o|0)){o=0,c=2,u=2;break}if((s[11120+(a*216|0)+168>>2]|0)==(o|0)){o=1,c=2,u=0;break}if((s[11120+(a*216|0)+176>>2]|0)==(o|0)){o=1,c=2,u=1;break}if((s[11120+(a*216|0)+184>>2]|0)==(o|0)){o=1,c=2,u=2;break}if((s[11120+(a*216|0)+192>>2]|0)==(o|0)){o=2,c=2,u=0;break}if((s[11120+(a*216|0)+200>>2]|0)==(o|0)){o=2,c=2,u=1;break}if((s[11120+(a*216|0)+208>>2]|0)==(o|0)){o=2,c=2,u=2;break}else o=-1;return o|0}else o=2,c=1,u=1;else o=2,c=1,u=0;else o=1,c=1,u=2;else o=1,c=1,u=1;else o=1,c=1,u=0;else o=0,c=1,u=2;else o=0,c=1,u=1;else o=0,c=1,u=0;else o=2,c=0,u=2;else o=2,c=0,u=1;else o=2,c=0,u=0;else o=1,c=0,u=2;else o=1,c=0,u=1;else o=1,c=0,u=0;else o=0,c=0,u=2;else o=0,c=0,u=1;else o=0,c=0,u=0;while(!1);return a=s[11120+(a*216|0)+(c*72|0)+(o*24|0)+(u<<3)+4>>2]|0,a|0}function zf(o,a){return o=o|0,a=a|0,(s[7696+(o*28|0)+20>>2]|0)==(a|0)?(a=1,a|0):(a=(s[7696+(o*28|0)+24>>2]|0)==(a|0),a|0)}function _0(o,a){return o=o|0,a=a|0,s[848+(o*28|0)+(a<<2)>>2]|0}function x0(o,a){return o=o|0,a=a|0,(s[848+(o*28|0)>>2]|0)==(a|0)?(a=0,a|0):(s[848+(o*28|0)+4>>2]|0)==(a|0)?(a=1,a|0):(s[848+(o*28|0)+8>>2]|0)==(a|0)?(a=2,a|0):(s[848+(o*28|0)+12>>2]|0)==(a|0)?(a=3,a|0):(s[848+(o*28|0)+16>>2]|0)==(a|0)?(a=4,a|0):(s[848+(o*28|0)+20>>2]|0)==(a|0)?(a=5,a|0):((s[848+(o*28|0)+24>>2]|0)==(a|0)?6:7)|0}function WC(){return 122}function qC(o){o=o|0;var a=0,c=0,u=0;a=0;do de(a|0,0,45)|0,u=F()|0|134225919,c=o+(a<<3)|0,s[c>>2]=-1,s[c+4>>2]=u,a=a+1|0;while((a|0)!=122);return 0}function ZC(o){o=o|0;var a=0,c=0,u=0;return u=+R[o+16>>3],c=+R[o+24>>3],a=u-c,+(u<c?a+6.283185307179586:a)}function $C(o){return o=o|0,+R[o+16>>3]<+R[o+24>>3]|0}function eT(o){return o=o|0,+(+R[o>>3]-+R[o+8>>3])}function Xf(o,a){o=o|0,a=a|0;var c=0,u=0,l=0;return c=+R[a>>3],!(c>=+R[o+8>>3])||!(c<=+R[o>>3])?(a=0,a|0):(u=+R[o+16>>3],c=+R[o+24>>3],l=+R[a+8>>3],a=l>=c,o=l<=u&1,u<c?a&&(o=1):a||(o=0),a=(o|0)!=0,a|0)}function I0(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0;return+R[o>>3]<+R[a+8>>3]||+R[o+8>>3]>+R[a>>3]?(u=0,u|0):(f=+R[o+16>>3],c=o+24|0,b=+R[c>>3],d=f<b,u=a+16|0,C=+R[u>>3],l=a+24|0,g=+R[l>>3],m=C<g,a=b-C<g-f,o=d?m|a?1:2:0,a=m?d?1:a?2:1:0,f=+fr(f,o),f<+fr(+R[l>>3],a)||(b=+fr(+R[c>>3],o),b>+fr(+R[u>>3],a))?(m=0,m|0):(m=1,m|0))}function tT(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0;f=+R[o+16>>3],g=+R[o+24>>3],o=f<g,m=+R[a+16>>3],d=+R[a+24>>3],l=m<d,a=g-m<d-f,s[c>>2]=o?l|a?1:2:0,s[u>>2]=l?o?1:a?2:1:0}function Yf(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0;return+R[o>>3]<+R[a>>3]||+R[o+8>>3]>+R[a+8>>3]?(u=0,u|0):(u=o+16|0,g=+R[u>>3],f=+R[o+24>>3],d=g<f,c=a+16|0,b=+R[c>>3],l=a+24|0,C=+R[l>>3],m=b<C,a=f-b<C-g,o=d?m|a?1:2:0,a=m?d?1:a?2:1:0,f=+fr(f,o),f<=+fr(+R[l>>3],a)?(b=+fr(+R[u>>3],o),m=b>=+fr(+R[c>>3],a),m|0):(m=0,m|0))}function Wf(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0;l=v,v=v+176|0,u=l,s[u>>2]=4,m=+R[a>>3],R[u+8>>3]=m,f=+R[a+16>>3],R[u+16>>3]=f,R[u+24>>3]=m,m=+R[a+24>>3],R[u+32>>3]=m,d=+R[a+8>>3],R[u+40>>3]=d,R[u+48>>3]=m,R[u+56>>3]=d,R[u+64>>3]=f,a=u+72|0,c=a+96|0;do s[a>>2]=0,a=a+4|0;while((a|0)<(c|0));Dr(o|0,u|0,168)|0,v=l}function qf(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0;M=v,v=v+288|0,b=M+264|0,_=M+96|0,C=M,m=C,g=m+96|0;do s[m>>2]=0,m=m+4|0;while((m|0)<(g|0));return a=N0(a,C)|0,a|0?(w=a,v=M,w|0):(g=C,C=s[g>>2]|0,g=s[g+4>>2]|0,bs(C,g,b)|0,Jn(C,g,_)|0,d=+Ri(b,_+8|0),R[b>>3]=+R[o>>3],g=b+8|0,R[g>>3]=+R[o+16>>3],R[_>>3]=+R[o+8>>3],C=_+8|0,R[C>>3]=+R[o+24>>3],l=+Ri(b,_),G=+R[g>>3]-+R[C>>3],f=+St(+G),D=+R[b>>3]-+R[_>>3],u=+St(+D),!(G==0|D==0)&&(G=+_h(+f,+u),G=+Cs(+(l*l/+No(+(G/+No(+f,+u)),3)/(d*(d*2.59807621135)*.8))),R[ct>>3]=G,x=~~G>>>0,w=+St(G)>=1?G>0?~~+b0(+Dt(G/4294967296),4294967295)>>>0:~~+Cs((G-+(~~G>>>0))/4294967296)>>>0:0,(s[ct+4>>2]&2146435072|0)!=2146435072)?(_=(x|0)==0&(w|0)==0,a=c,s[a>>2]=_?1:x,s[a+4>>2]=_?0:w,a=0):a=1,w=a,v=M,w|0)}function rT(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0;C=v,v=v+288|0,d=C+264|0,m=C+96|0,g=C,l=g,f=l+96|0;do s[l>>2]=0,l=l+4|0;while((l|0)<(f|0));return c=N0(c,g)|0,c|0?(u=c,v=C,u|0):(c=g,l=s[c>>2]|0,c=s[c+4>>2]|0,bs(l,c,d)|0,Jn(l,c,m)|0,b=+Ri(d,m+8|0),b=+Cs(+(+Ri(o,a)/(b*2))),R[ct>>3]=b,c=~~b>>>0,l=+St(b)>=1?b>0?~~+b0(+Dt(b/4294967296),4294967295)>>>0:~~+Cs((b-+(~~b>>>0))/4294967296)>>>0:0,(s[ct+4>>2]&2146435072|0)==2146435072?(u=1,v=C,u|0):(g=(c|0)==0&(l|0)==0,s[u>>2]=g?1:c,s[u+4>>2]=g?0:l,u=0,v=C,u|0))}function nT(o,a){o=o|0,a=+a;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0;f=o+16|0,d=+R[f>>3],c=o+24|0,l=+R[c>>3],u=d-l,u=d<l?u+6.283185307179586:u,C=+R[o>>3],m=o+8|0,g=+R[m>>3],b=C-g,u=(u*a-u)*.5,a=(b*a-b)*.5,C=C+a,R[o>>3]=C>1.5707963267948966?1.5707963267948966:C,a=g-a,R[m>>
43]=a<-1.5707963267948966?-1.5707963267948966:a,a=d+u,a=a>3.141592653589793?a+-6.283185307179586:a,R[f>>3]=a<-3.141592653589793?a+6.283185307179586:a,a=l-u,a=a>3.141592653589793?a+-6.283185307179586:a,R[c>>3]=a<-3.141592653589793?a+6.283185307179586:a}function sT(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0,J=0,ge=0,ne=0,ye=0,le=0,pe=0;if(pe=v,v=v+224|0,ge=pe,$=pe+48|0,g=(c|0)>0|(c|0)==0&a>>>0>0,g&(c>>>0>0|(c|0)==0&a>>>0>17895697))return le=14,v=pe,le|0;if((c|0)<0)return le=2,v=pe,le|0;if((a|0)==0&(c|0)==0)return s[u>>2]=0,s[u+4>>2]=0,le=0,v=pe,le|0;for(l=o,l=v0(s[l>>2]|0,s[l+4>>2]|0)|0,d=0,m=0;;){if(f=o+(d<<3)|0,le=f,!(So(s[le>>2]|0,s[le+4>>2]|0)|0)){l=5,ne=159;break}if(le=f,le=(v0(s[le>>2]|0,s[le+4>>2]|0)|0)==(l|0),d=me(d|0,m|0,1,0)|0,m=F()|0,!le){l=12,ne=159;break}if(!((m|0)<(c|0)|(m|0)==(c|0)&d>>>0<a>>>0)){ne=8;break}}if((ne|0)==8){do if((c|0)>0|(c|0)==0&a>>>0>1){if(l=a<<3,d=ut(l)|0,!d)return le=13,v=pe,le|0;for(Dr(d|0,o|0,l|0)|0,Lo(d,a,8,1),l=1,f=0;ye=d+(l<<3)|0,le=d+(l+-1<<3)|0,le=(s[ye>>2]|0)==(s[le>>2]|0)?(s[ye+4>>2]|0)==(s[le+4>>2]|0):0,l=me(l|0,f|0,1,0)|0,f=F()|0,!le;)if(!((f|0)<(c|0)|(f|0)==(c|0)&l>>>0<a>>>0)){ne=14;break}if((ne|0)==14){Ce(d);break}return Ce(d),le=10,v=pe,le|0}while(!1);if(l=ft(a|0,c|0,6,0)|0,f=F()|0,g){d=0,m=0;do le=o+(m<<3)|0,le=((ot(s[le>>2]|0,s[le+4>>2]|0)|0)!=0)<<31>>31,l=me(l|0,f|0,le|0,((le|0)<0)<<31>>31|0)|0,f=F()|0,m=me(m|0,d|0,1,0)|0,d=F()|0;while((d|0)<(c|0)|(d|0)==(c|0)&m>>>0<a>>>0);k=l,K=f}else k=l,K=f;if(V=ft(k|0,K|0,10,0)|0,L=F()|0,ye=ut(k<<5)|0,!ye)return le=13,v=pe,le|0;if(le=Xt(V,4)|0,!le)return Ce(ye),le=13,v=pe,le|0;e:do if(g){for(J=o,w0(s[J>>2]|0,s[J+4>>2]|0,ge)|0,w=ye,M=0,D=0,l=0,G=0;;){g=ge,g=(s[g>>2]|0)==0&(s[g+4>>2]|0)==0,f=g?26990:26995,d=g?5:6,m=0,g=ge+((g&1)<<3)|0,C=me(d|0,m|0,-1,-1)|0,b=F()|0,_=0,x=0;do Y=g+(_<<3)|0,se=s[Y+4>>2]|0,J=w+(_<<5)|0,s[J>>2]=s[Y>>2],s[J+4>>
42]=se,te[w+(_<<5)+9>>0]=0,te[w+(_<<5)+8>>0]=0,s[w+(_<<5)+20>>2]=w,J=w+(_<<5)+24|0,s[J>>2]=1,s[J+4>>2]=0,J=te[f+_>>0]|0,se=me(C|0,b|0,_|0,x|0)|0,se=sn(se|0,F()|0,d|0,m|0)|0,F()|0,se=te[f+se>>0]|0,_=me(_|0,x|0,1,0)|0,x=F()|0,Y=te[f+((_|0)==(d|0)&(x|0)==(m|0)?0:_)>>0]|0,J=J&255,s[w+(J<<5)+16>>2]=w+((se&255)<<5),s[w+(J<<5)+12>>2]=w+((Y&255)<<5);while(x>>>0<m>>>0|(x|0)==(m|0)&_>>>0<d>>>0);if(M=me(M|0,D|0,1,0)|0,D=F()|0,l=me(d|0,m|0,l|0,G|0)|0,G=F()|0,!((D|0)<(c|0)|(D|0)==(c|0)&M>>>0<a>>>0))break e;J=o+(M<<3)|0,w0(s[J>>2]|0,s[J+4>>2]|0,ge)|0||(w=ye+(l<<5)|0)}je(27634,26956,108,26975)}while(!1);if((K|0)>0|(K|0)==0&k>>>0>0){m=0,g=0;do{if(f=ye+(m<<5)|0,d=s[f>>2]|0,f=s[f+4>>2]|0,l=oe(d|0,f|0,30)|0,f=ft(l^d|0,(F()|0)^f|0,484763065,-1084733587)|0,d=F()|0,l=oe(f|0,d|0,27)|0,d=ft(l^f|0,(F()|0)^d|0,321982955,-1798288965)|0,f=F()|0,l=oe(d|0,f|0,31)|0,f=sn(l^d|0,(F()|0)^f|0,V|0,L|0)|0,d=F()|0,l=le+(f<<2)|0,s[l>>2]|0)do l=me(f|0,d|0,1,0)|0,f=Bn(l|0,F()|0,V|0,L|0)|0,d=F()|0,l=le+(f<<2)|0;while((s[l>>2]|0)!=0);s[l>>2]=ye+(m<<5),m=me(m|0,g|0,1,0)|0,g=F()|0}while((g|0)<(K|0)|(g|0)==(K|0)&m>>>0<k>>>0);_=0,x=0;do{if(m=ye+(_<<5)|0,g=ye+(_<<5)+9|0,!(te[g>>0]|0)){if(J=m,$f(s[J>>2]|0,s[J+4>>2]|0,ge)|0){ne=39;break}b=ge,C=s[b>>2]|0,b=s[b+4>>2]|0,f=oe(C|0,b|0,30)|0,f=ft(f^C|0,(F()|0)^b|0,484763065,-1084733587)|0,d=F()|0,l=oe(f|0,d|0,27)|0,d=ft(l^f|0,(F()|0)^d|0,321982955,-1798288965)|0,f=F()|0,l=oe(d|0,f|0,31)|0,f=sn(l^d|0,(F()|0)^f|0,V|0,L|0)|0,d=F()|0,l=s[le+(f<<2)>>2]|0;e:do if(l|0){for(;J=l,!((s[J>>2]|0)==(C|0)&&(s[J+4>>2]|0)==(b|0));)if(l=me(f|0,d|0,1,0)|0,f=Bn(l|0,F()|0,V|0,L|0)|0,d=F()|0,l=s[le+(f<<2)>>2]|0,!l)break e;te[g>>0]=1,te[l+9>>0]=1,f=l+16|0,J=ye+(_<<5)+12|0,s[(s[J>>2]|0)+16>>2]=s[f>>2],c=l+12|0,Y=s[ye+(_<<5)+16>>2]|0,s[Y+12>>2]=s[c>>2],s[(s[c>>2]|0)+16>>2]=Y,s[(s[f>>2]|0)+12>>2]=s[J>>2],f=Mo(m)|0,J=Mo(l)|0,l=f+24|0,c=s[l+4>>2]|0,Y=J+24|0,se=s[Y+4>>2]|0,Y=(c|0)<(se|0)|((c|0)==(se|0)?(s[l>>2]|0)>>>0<(s[Y>>2]|0)>>>0:0),l=Y?f:J,f=Y?J:f,(f|0)!=(l|0)&&(se=l+24|0,J=f+24|0,Y=J,se=me(s[Y>>2]|0,s[Y+4>>2]|0,s[se>>2]|0,s[se+4>>2]|0)|0,Y=F()|0,s[J>>2]=se,s[J+4>>2]=Y,s[l+20>>2]=f)}while(!1)}_=me(_|0,x|0,1,0)|0,x=F()|0}while((x|0)<(K|0)|(x|0)==(K|0)&_>>>0<k>>>0);(ne|0)==39&&je(27634,26956,258,27001),l=0,f=0;do te[ye+(l<<5)+8>>0]=0,l=me(l|0,f|0,1,0)|0,f=F()|0;while((f|0)<(K|0)|(f|0)==(K|0)&l>>>0<k>>>0);for(C=0,d=0,g=0,b=0;;){if(l=ye+(C<<5)|0,(te[ye+(C<<5)+8>>0]|0)==0&&(te[ye+(C<<5)+9>>0]|0)==0){m=l,f=s[m>>2]|0,m=s[m+4>>2]|0;do te[l+8>>0]=1,l=s[l+12>>2]|0,J=l;while(!((s[J>>2]|0)==(f|0)&&(s[J+4>>2]|0)==(m|0)));d=me(d|0,g|0,1,0)|0,m=F()|0}else m=g;if(C=me(C|0,b|0,1,0)|0,b=F()|0,(b|0)<(K|0)|(b|0)==(K|0)&C>>>0<k>>>0)g=m;else break}l=0,f=0;do te[ye+(l<<5)+8>>0]=0,l=me(l|0,f|0,1,0)|0,f=F()|0;while((f|0)<(K|0)|(f|0)==(K|0)&l>>>0<k>>>0);Y=d,se=m,l=1}else Y=0,se=0,l=0;J=ut(Y*24|0)|0;e:do if(J|0){t:do if(l){o=0,V=0,c=0,a=0;r:for(;;){if(l=ye+(o<<5)|0,(te[ye+(o<<5)+8>>0]|0)==0&&(te[ye+(o<<5)+9>>0]|0)==0){G=l,D=s[G>>2]|0,G=s[G+4>>2]|0,f=0,d=0;do f=me(f|0,d|0,2,0)|0,d=F()|0,l=s[l+12>>2]|0,L=l;while(!((s[L>>2]|0)==(D|0)&&(s[L+4>>2]|0)==(G|0)));if(M=ut(f<<4)|0,!M)break;f=D,d=G,w=0,x=0,m=0,g=0;do{if(Mi(f,d,$)|0){ne=69;break r}if(L=s[$>>2]|0,b=L+-1|0,_=((b|0)<0)<<31>>31,(L|0)>1){d=m,C=0,f=g,m=0;do L=M+(d<<4)|0,g=$+8+(C<<4)|0,s[L>>2]=s[g>>2],s[L+4>>2]=s[g+4>>2],s[L+8>>2]=s[g+8>>2],s[L+12>>2]=s[g+12>>2],d=me(d|0,f|0,1,0)|0,f=F()|0,C=me(C|0,m|0,1,0)|0,m=F()|0;while((m|0)<(_|0)|(m|0)==(_|0)&C>>>0<b>>>0);m=d,g=f}w=me(w|0,x|0,b|0,_|0)|0,x=F()|0,te[l+8>>0]=1,l=s[l+12>>2]|0,d=l,f=s[d>>2]|0,d=s[d+4>>2]|0}while(!((f|0)==(D|0)&(d|0)==(G|0)));if(f=iy(M,w<<4)|0,!f){ne=75;break}G=Mo(l)|0,L=s[G+4>>2]|0,l=J+(c*24|0)|0,s[l>>2]=s[G>>2],s[l+4>>2]=L,l=J+(c*24|0)+16|0,s[l>>2]=w,s[J+(c*24|0)+20>>2]=f,s[ge>>2]=s[l>>2],s[ge+4>>2]=s[l+4>>2],Cr(ge,J+(c*24|0)+8|0)|0,f=me(c|0,V|0,1,0)|0,l=F()|0}else f=c,l=V;if(o=me(o|0,a|0,1,0)|0,a=F()|0,(a|0)<(K|0)|(a|0)==(K|0)&o>>>0<k>>>0)V=l,c=f;else break t}if((ne|0)==69?je(27634,26956,351,27016):(ne|0)==75&&Ce(M),(V|0)>0|(V|0)==0&c>>>0>0)for(m=0,g=0,l=c,d=V;f=s[J+(m*24|0)+20>>2]|0,f?(Ce(f),f=V,l=c):f=d,m=me(m|0,g|0,1,0)|0,g=F()|0,(g|0)<(f|0)|(g|0)==(f|0)&m>>>0<l>>>0;)d=f;Ce(J);break e}while(!1);Lo(J,Y,24,2);
4t:do if((Y|0)==0&(se|0)==0){if(L=ut(192)|0,L|0){if(s[L+16>>2]=0,s[L+20>>2]=0,x=L+8|0,s[x>>2]=3,l=ut(48)|0,w=L+12|0,s[w>>2]=l,l|0){s[l>>2]=s[3860],s[l+4>>2]=s[3861],s[l+8>>2]=s[3862],s[l+12>>2]=s[3863],_=l+16|0,s[_>>2]=s[3864],s[_+4>>2]=s[3865],s[_+8>>2]=s[3866],s[_+12>>2]=s[3867],_=l+32|0,s[_>>2]=s[3868],s[_+4>>2]=s[3869],s[_+8>>2]=s[3870],s[_+12>>2]=s[3871],s[ge>>2]=s[x>>2],s[ge+4>>2]=s[x+4>>2],Cr(ge,L)|0,s[L+40>>2]=0,s[L+44>>2]=0,_=L+32|0,s[_>>2]=3,l=ut(48)|0,M=L+36|0,s[M>>2]=l;do if(!l)m=0,g=1;else{if(s[l>>2]=s[3872],s[l+4>>2]=s[3873],s[l+8>>2]=s[3874],s[l+12>>2]=s[3875],b=l+16|0,s[b>>2]=s[3876],s[b+4>>2]=s[3877],s[b+8>>2]=s[3878],s[b+12>>2]=s[3879],b=l+32|0,s[b>>2]=s[3880],s[b+4>>2]=s[3881],s[b+8>>2]=s[3882],s[b+12>>2]=s[3883],s[ge>>2]=s[_>>2],s[ge+4>>2]=s[_+4>>2],Cr(ge,L+24|0)|0,s[L+64>>2]=0,s[L+68>>2]=0,b=L+56|0,s[b>>2]=3,l=ut(48)|0,D=L+60|0,s[D>>2]=l,!l){m=0,g=2;break}if(s[l>>2]=s[3884],s[l+4>>2]=s[3885],s[l+8>>2]=s[3886],s[l+12>>2]=s[3887],C=l+16|0,s[C>>2]=s[3888],s[C+4>>2]=s[3889],s[C+8>>2]=s[3890],s[C+12>>2]=s[3891],C=l+32|0,s[C>>2]=s[3892],s[C+4>>2]=s[3893],s[C+8>>2]=s[3894],s[C+12>>2]=s[3895],s[ge>>2]=s[b>>2],s[ge+4>>2]=s[b+4>>2],Cr(ge,L+48|0)|0,s[L+88>>2]=0,s[L+92>>2]=0,C=L+80|0,s[C>>2]=3,l=ut(48)|0,G=L+84|0,s[G>>2]=l,!l){m=0,g=3;break}if(s[l>>2]=s[3896],s[l+4>>2]=s[3897],s[l+8>>2]=s[3898],s[l+12>>2]=s[3899],g=l+16|0,s[g>>2]=s[3900],s[g+4>>2]=s[3901],s[g+8>>2]=s[3902],s[g+12>>2]=s[3903],g=l+32|0,s[g>>2]=s[3904],s[g+4>>2]=s[3905],s[g+8>>2]=s[3906],s[g+12>>2]=s[3907],s[ge>>2]=s[C>>2],s[ge+4>>2]=s[C+4>>2],Cr(ge,L+72|0)|0,s[L+112>>2]=0,s[L+116>>2]=0,g=L+104|0,s[g>>2]=3,l=ut(48)|0,o=L+108|0,s[o>>2]=l,!l){m=0,g=4;break}if(s[l>>2]=s[3908],s[l+4>>2]=s[3909],s[l+8>>2]=s[3910],s[l+12>>2]=s[3911],m=l+16|0,s[m>>2]=s[3912],s[m+4>>2]=s[3913],s[m+8>>2]=s[3914],s[m+12>>2]=s[3915],m=l+32|0,s[m>>2]=s[3916],s[m+4>>2]=s[3917],s[m+8>>2]=s[3918],s[m+12>>2]=s[3919],s[ge>>2]=s[g>>2],s[ge+4>>2]=s[g+4>>2],Cr(ge,L+96|0)|0,s[L+136>>2]=0,s[L+140>>2]=0,m=L+128|0,s[m>>2]=3,l=ut(48)|0,a=L+132|0,s[a>>2]=l,!l){m=0,g=5;break}if(s[l>>2]=s[3920],s[l+4>>2]=s[3921],s[l+8>>2]=s[3922],s[l+12>>2]=s[3923],d=l+16|0,s[d>>2]=s[3924],s[d+4>>2]=s[3925],s[d+8>>2]=s[3926],s[d+12>>2]=s[3927],d=l+32|0,s[d>>2]=s[3928],s[d+4>>2]=s[3929],s[d+8>>2]=s[3930],s[d+12>>2]=s[3931],s[ge>>2]=s[m>>2],s[ge+4>>2]=s[m+4>>2],Cr(ge,L+120|0)|0,s[L+160>>2]=0,s[L+164>>2]=0,d=L+152|0,s[d>>2]=3,l=ut(48)|0,c=L+156|0,s[c>>2]=l,!l){m=0,g=6;break}if(s[l>>2]=s[3932],s[l+4>>2]=s[3933],s[l+8>>2]=s[3934],s[l+12>>2]=s[3935],f=l+16|0,s[f>>2]=s[3936],s[f+4>>2]=s[3937],s[f+8>>2]=s[3938],s[f+12>>2]=s[3939],f=l+32|0,s[f>>2]=s[3940],s[f+4>>2]=s[3941],s[f+8>>2]=s[3942],s[f+12>>2]=s[3943],s[ge>>2]=s[d>>2],s[ge+4>>2]=s[d+4>>2],Cr(ge,L+144|0)|0,s[L+184>>2]=0,s[L+188>>2]=0,f=L+176|0,s[f>>2]=3,l=ut(48)|0,V=L+180|0,s[V>>2]=l,!l){m=0,g=7;break}if(s[l>>2]=s[3944],s[l+4>>2]=s[3945],s[l+8>>2]=s[3946],s[l+12>>2]=s[3947],$=l+16|0,s[$>>2]=s[3948],s[$+4>>2]=s[3949],s[$+8>>2]=s[3950],s[$+12>>2]=s[3951],l=l+32|0,s[l>>2]=s[3952],s[l+4>>2]=s[3953],s[l+8>>2]=s[3954],s[l+12>>2]=s[3955],s[ge>>2]=s[f>>2],s[ge+4>>2]=s[f+4>>2],Cr(ge,L+168|0)|0,Lo(L,8,24,3),l=ut(128)|0,s[u+4>>2]=l,l|0){s[u>>2]=8,s[l>>2]=s[x>>2],s[l+4>>2]=s[x+4>>2],s[l+8>>2]=s[x+8>>2],s[l+12>>2]=s[x+12>>2],ne=l+16|0,s[ne>>2]=s[_>>2],s[ne+4>>2]=s[_+4>>2],s[ne+8>>2]=s[_+8>>2],s[ne+12>>2]=s[_+12>>2],ne=l+32|0,s[ne>>2]=s[b>>2],s[ne+4>>2]=s[b+4>>2],s[ne+8>>2]=s[b+8>>2],s[ne+12>>2]=s[b+12>>2],ne=l+48|0,s[ne>>2]=s[C>>2],s[ne+4>>2]=s[C+4>>2],s[ne+8>>2]=s[C+8>>2],s[ne+12>>2]=s[C+12>>2],ne=l+64|0,s[ne>>2]=s[g>>2],s[ne+4>>2]=s[g+4>>2],s[ne+8>>2]=s[g+8>>2],s[ne+12>>2]=s[g+12>>2],ne=l+80|0,s[ne>>2]=s[m>>2],s[ne+4>>2]=s[m+4>>2],s[ne+8>>2]=s[m+8>>2],s[ne+12>>2]=s[m+12>>2],ne=l+96|0,s[ne>>2]=s[d>>2],s[ne+4>>2]=s[d+4>>2],s[ne+8>>2]=s[d+8>>2],s[ne+12>>2]=s[d+12>>2],ne=l+112|0,s[ne>>2]=s[f>>2],s[ne+4>>2]=s[f+4>>2],s[ne+8>>2]=s[f+8>>2],s[ne+12>>2]=s[f+12>>2],Ce(L),ne=158;break t}l=s[w>>2]|0,l|0&&Ce(l),l=s[M>>2]|0,l|0&&Ce(l),l=s[D>>2]|0,l|0&&Ce(l),l=s[G>>2]|0,l|0&&Ce(l),l=s[o>>2]|0,l|0&&Ce(l),l=s[a>>2]|0,l|0&&Ce(l),l=s[c>>2]|0,l|0&&Ce(l),l=s[V>>2]|0,l|0&&Ce(l),Ce(L);break t}while(!1);l=0,d=0;do f=s[L+(l*24|0)+12>>2]|0,f|0&&Ce(f),l=me(l|0,d|0,1,0)|0,d=F()|0;while(d>>>0<m>>>0|(d|0)==(m|0)&l>>>0<g>>>0)}Ce(L),ne=152}}else{if((se|0)>0|(se|0)==0&Y>>>0>0){d=0,m=0,g=0,f=0,l=0,C=0;do $=J+(d*24|0)|0,ge=m,m=s[$>>2]|0,ne=g,g=s[$+4>>2]|0,f=me(f|0,l|0,((m|0)!=(ge|0)|(g|0)!=(ne|0))&1|0,0)|0,l=F()|0,d=me(d|0,C|0,1,0)|0,C=F()|0;while((C|0)<(se|0)|(C|0)==(se|0)&d>>>0<Y>>>0);G=f,D=l}else G=0,D=0;if(o=ut(G*24|0)|0,o){r:do if((se|0)>=0){for(x=0,w=0,f=0,d=0,M=0,m=0;;){if(!((x|0)==(Y|0)&(w|0)==(se|0))&&(ge=J+(f*24|0)|0,ne=J+(x*24|0)|0,(s[ge>>2]|0)==(s[ne>>2]|0)?(s[ge+4>>2]|0)==(s[ne+4>>2]|0):0))l=M;else{if(b=J+(f*24|0)|0,ne=Ft(x|0,w|0,f|0,d|0)|0,ge=F()|0,_=me(ne|0,ge|0,-1,-1)|0,d=F()|0,(ge|0)>
40|(ge|0)==0&ne>>>0>1){if(l=ut(_<<3)|0,!l)break;g=0,C=0;do ne=g,g=me(g|0,C|0,1,0)|0,C=F()|0,$=b+(g*24|0)+16|0,ge=s[$+4>>2]|0,ne=l+(ne<<3)|0,s[ne>>2]=s[$>>2],s[ne+4>>2]=ge;while((C|0)<(d|0)|(C|0)==(d|0)&g>>>0<_>>>0)}else l=0;ge=J+(f*24|0)+16|0,ne=s[ge+4>>2]|0,d=o+(m*24|0)+8|0,s[d>>2]=s[ge>>2],s[d+4>>2]=ne,s[o+(m*24|0)+16>>2]=_,s[o+(m*24|0)+20>>2]=l,R[o+(m*24|0)>>3]=+R[J+(f*24|0)+8>>3],m=me(m|0,M|0,1,0)|0,f=x,d=w,l=F()|0}if(ne=x,x=me(x|0,w|0,1,0)|0,ge=w,w=F()|0,(ge|0)<(se|0)|(ge|0)==(se|0)&ne>>>0<Y>>>0)M=l;else break r}if((M|0)>0|(M|0)==0&m>>>0>0){l=0,d=0;do f=s[o+(l*24|0)+20>>2]|0,f|0&&Ce(f),l=me(l|0,d|0,1,0)|0,d=F()|0;while((d|0)<(M|0)|(d|0)==(M|0)&l>>>0<m>>>0)}Ce(o),ne=152;break t}while(!1);if(Lo(o,G,24,3),l=ut(G<<4)|0,d=u+4|0,s[d>>2]=l,l){s[u>>2]=G;do if((D|0)>0|(D|0)==0&G>>>0>0){if(u=o+8|0,s[l>>2]=s[u>>2],s[l+4>>2]=s[u+4>>2],s[l+8>>2]=s[u+8>>2],s[l+12>>2]=s[u+12>>2],(G|0)==1&(D|0)==0||(u=l+16|0,ne=o+32|0,s[u>>2]=s[ne>>2],s[u+4>>2]=s[ne+4>>2],s[u+8>>2]=s[ne+8>>2],s[u+12>>2]=s[ne+12>>2],!((D|0)>0|(D|0)==0&G>>>0>2)))break;l=2,f=0;do u=(s[d>>2]|0)+(l<<4)|0,ne=o+(l*24|0)+8|0,s[u>>2]=s[ne>>2],s[u+4>>2]=s[ne+4>>2],s[u+8>>2]=s[ne+8>>2],s[u+12>>2]=s[ne+12>>2],l=me(l|0,f|0,1,0)|0,f=F()|0;while((f|0)<(D|0)|(f|0)==(D|0)&l>>>0<G>>>0)}while(!1);Ce(o),ne=158;break}else{if((D|0)>0|(D|0)==0&G>>>0>0){l=0,d=0;do f=s[o+(l*24|0)+20>>2]|0,f|0&&Ce(f),l=me(l|0,d|0,1,0)|0,d=F()|0;while((d|0)<(D|0)|(d|0)==(D|0)&l>>>0<G>>>0)}Ce(o),ne=152;break}}else ne=152}while(!1);if((ne|0)==158)return Ce(ye),Ce(le),Ce(J),le=0,v=pe,le|0;if((ne|0)==152&&(se|0)>0|(se|0)==0&Y>>>0>0)for(m=0,g=0,l=Y,d=se;f=s[J+(m*24|0)+20>>2]|0,f?(Ce(f),f=se,l=Y):f=d,m=me(m|0,g|0,1,0)|0,g=F()|0,(g|0)<(f|0)|(g|0)==(f|0)&m>>>0<l>>>0;)d=f;return Ce(J),Ce(ye),Ce(le),le=13,v=pe,le|0}while(!1);return Ce(ye),Ce(le),le=13,v=pe,le|0}else if((ne|0)==159)return v=pe,l|0;return 0}function iT(o,a){o=o|0,a=a|0;var c=0,u=0;return u=o,o=s[u>>2]|0,u=s[u+4>>2]|0,c=a,a=s[c>>2]|0,c=s[c+4>>2]|0,(u>>>0<c>>>0|(u|0)==(c|0)&o>>>0<a>>>0?-1:(u>>>0>c>>>0|(u|0)==(c|0)&o>>>0>a>>>0)&1)|0}function Mo(o){o=o|0;var a=0,c=0;return a=o+20|0,c=s[a>>2]|0,(c|0)==(o|0)?o|0:(c=Mo(c)|0,s[a>>2]=c,c|0)}function oT(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0;return m=o,d=s[m>>2]|0,m=s[m+4>>2]|0,f=a,l=s[f>>2]|0,f=s[f+4>>2]|0,m>>>0<f>>>0|(m|0)==(f|0)&d>>>0<l>>>0?(a=-1,a|0):m>>>0>f>>>0|(m|0)==(f|0)&d>>>0>l>>>0?(a=1,a|0):(u=+R[o+8>>3],c=+R[a+8>>3],u<c?(a=-1,a|0):(a=u>c&1,a|0))}function AT(o,a){o=o|0,a=a|0;var c=0,u=0;return u=+R[o>>3],c=+R[a>>3],(u>c?-1:u<c&1)|0}function aT(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0;if(_=v,v=v+64|0,b=_,m=_+56|0,!(!0&(a&2013265920|0)==134217728&(!0&(u&2013265920|0)==134217728)))return l=5,v=_,l|0;if((o|0)==(c|0)&(a|0)==(u|0))return s[l>>2]=0,l=0,v=_,l|0;if(d=oe(o|0,a|0,52)|0,F()|0,d=d&15,C=oe(c|0,u|0,52)|0,F()|0,(d|0)!=(C&15|0))return l=12,v=_,l|0;if(f=d+-1|0,d>>>0>1){R0(o,a,f,b)|0,R0(c,u,f,m)|0,C=b,g=s[C>>2]|0,C=s[C+4>>2]|0;e:do if((g|0)==(s[m>>2]|0)&&(C|0)==(s[m+4>>2]|0)){d=(d^15)*3|0,f=oe(o|0,a|0,d|0)|0,F()|0,f=f&7,d=oe(c|0,u|0,d|0)|0,F()|0,d=d&7;do if((f|0)==0|(d|0)==0)s[l>>2]=1,f=0;else if((f|0)==7)f=5;else{if((f|0)==1|(d|0)==1&&ot(g,C)|0){f=5;break}if((s[15824+(f<<2)>>2]|0)!=(d|0)&&(s[15856+(f<<2)>>2]|0)!=(d|0))break e;s[l>>2]=1,f=0}while(!1);return l=f,v=_,l|0}while(!1)}f=b,d=f+56|0;do s[f>>2]=0,f=f+4|0;while((f|0)<(d|0));return Hf(o,a,1,b)|0,a=b,!((s[a>>2]|0)==(c|0)&&(s[a+4>>2]|0)==(u|0))&&(a=b+8|0,!((s[a>>2]|0)==(c|0)&&(s[a+4>>2]|0)==(u|0)))&&(a=b+16|0,!((s[a>>2]|0)==(c|0)&&(s[a+4>>2]|0)==(u|0)))&&(a=b+24|0,!((s[a>>2]|0)==(c|0)&&(s[a+4>>2]|0)==(u|0)))&&(a=b+32|0,!((s[a>>2]|0)==(c|0)&&(s[a+4>>2]|0)==(u|0)))&&(a=b+40|0,!((s[a>>2]|0)==(c|0)&&(s[a+4>>2]|0)==(u|0)))?(f=b+48|0,f=((s[f>>2]|0)==(c|0)?(s[f+4>>2]|0)==(u|0):0)&1):f=1,s[l>>2]=f,l=0,v=_,l|0}function cT(o,a,c,u,l){return o=o|0,a=a|0,c=c|0,u=u|0,l=l|0,c=wo(o,a,c,u)|0,(c|0)==7?(l=11,l|0):(u=de(c|0,0,56)|0,a=a&-2130706433|(F()|0)|268435456,s[l>>2]=o|u,s[l+4>>2]=a,l=0,l|0)}function lT(o,a,c){return o=o|0,a=a|0,c=c|0,!0&(a&2013265920|0)==268435456?(s[c>>2]=o,s[c+4>>2]=a&-2130706433|134217728,c=0,c|0):(c=6,c|0)}
4function uT(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0;return l=v,v=v+16|0,u=l,s[u>>2]=0,!0&(a&2013265920|0)==268435456?(f=oe(o|0,a|0,56)|0,F()|0,u=vt(o,a&-2130706433|134217728,f&7,u,c)|0,v=l,u|0):(u=6,v=l,u|0)}function Zf(o,a){o=o|0,a=a|0;var c=0;switch(c=oe(o|0,a|0,56)|0,F()|0,c&7){case 0:case 7:return c=0,c|0;default:}return c=a&-2130706433|134217728,!(!0&(a&2013265920|0)==268435456)||!0&(a&117440512|0)==16777216&(ot(o,c)|0)!=0?(c=0,c|0):(c=So(o,c)|0,c|0)}function fT(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0;return l=v,v=v+16|0,u=l,!0&(a&2013265920|0)==268435456?(f=a&-2130706433|134217728,d=c,s[d>>2]=o,s[d+4>>2]=f,s[u>>2]=0,a=oe(o|0,a|0,56)|0,F()|0,u=vt(o,f,a&7,u,c+8|0)|0,v=l,u|0):(u=6,v=l,u|0)}function w0(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0;return l=(ot(o,a)|0)==0,a=a&-2130706433,u=c,s[u>>2]=l?o:0,s[u+4>>2]=l?a|285212672:0,u=c+8|0,s[u>>2]=o,s[u+4>>2]=a|301989888,u=c+16|0,s[u>>2]=o,s[u+4>>2]=a|318767104,u=c+24|0,s[u>>2]=o,s[u+4>>2]=a|335544320,u=c+32|0,s[u>>2]=o,s[u+4>>2]=a|352321536,c=c+40|0,s[c>>2]=o,s[c+4>>2]=a|369098752,0}function Mi(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0;return d=v,v=v+16|0,l=d,f=a&-2130706433|134217728,!0&(a&2013265920|0)==268435456?(u=oe(o|0,a|0,56)|0,F()|0,u=ry(o,f,u&7)|0,(u|0)==-1?(s[c>>2]=0,f=6,v=d,f|0):(ys(o,f,l)|0&&je(27634,27035,282,27050),a=oe(o|0,a|0,52)|0,F()|0,a=a&15,ot(o,f)|0?M0(l,a,u,2,c):S0(l,a,u,2,c),f=0,v=d,f|0)):(f=6,v=d,f|0)}function $f(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0;return d=v,v=v+16|0,u=d+8|0,l=d,f=a&-2130706433|134217728,!0&(a&2013265920|0)==268435456?(s[u>>2]=0,a=oe(o|0,a|0,56)|0,F()|0,a=vt(o,f,a&7,u,l)|0,a|0?(c=a,v=d,c|0):(u=s[l>>2]|0,l=s[l+4>>2]|0,a=wo(u,l,o,f)|0,(a|0)==7?(c=11,v=d,c|0):(o=de(a|0,0,56)|0,f=l&-2130706433|(F()|0)|268435456,s[c>>2]=u|o,s[c+4>>2]=f,c=0,v=d,c|0))):(c=6,v=d,c|0)}function hT(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0;s[c>>2]=0,C=+R[o>>3],b=+R[o+8>>3],g=+R[o+16>>3],l=0,f=5,u=5,o=0;do D=+R[15888+(l*24|0)>>3]-C,M=+R[15888+(l*24|0)+8>>3]-b,d=+R[15888+(l*24|0)+16>>3]-g,d=D*D+M*M+d*d,d<u&&(s[c>>2]=l,f=d,o=l,u=d),l=l+1|0;while((l|0)!=20);if(f=+IC(+(1-f*.5)),f<1e-16)g=0,d=0;else{if(k=+R[16368+(o*24|0)>>3],L=+R[15888+(o*24|0)>>3],K=+R[15888+(o*24|0)+8>>3],V=+R[15888+(o*24|0)+16>>3],$=-(V+(L*0+K*0)),d=L*$+0,D=K*$+0,$=V*$+1,G=+mt(+($*$+(d*d+D*D))),G=G>0?1/G:0,d=d*G,D=D*G,G=$*G,$=-(C*L+b*K+g*V),M=C+L*$,u=b+K*$,C=g+V*$,b=+mt(+(C*C+(M*M+u*u))),b=b>0?1/b:0,M=M*b,u=u*b,b=C*b,u=+Fi(k-+Fi(+zt(+(b*(K*d-L*D)+(M*(V*D-K*G)+u*(L*G-V*d))),+(G*b+(d*M+D*u))))),Tr(a)|0?d=+Fi(u+-.3334731722518321):d=u,u=+Io(+f)*2.618033988749896,(a|0)>0){o=0;do u=u*2.6457513110645907,o=o+1|0;while((o|0)!=(a|0))}g=+Ge(+d)*u,d=+st(+d)*u}a=c+4|0,w=c+12|0,s[w>>2]=0,f=+St(+d)*1.1547005383792515,u=+St(+g)+f*.5,o=~~u,l=~~f,u=u-+(o|0),f=f-+(l|0);do if(u<.5)if(u<.3333333333333333)if(s[a>>2]=o,f<(u+1)*.5){s[c+8>>2]=l;break}else{l=l+1|0,s[c+8>>2]=l;break}else if($=1-u,l=(!(f<$)&1)+l|0,s[c+8>>2]=l,$<=f&f<u*2){o=o+1|0,s[a>>2]=o;break}else{s[a>>2]=o;break}else{if(!(u<.6666666666666666))if(o=o+1|0,s[a>>2]=o,f<u*.5){s[c+8>>2]=l;break}else{l=l+1|0,s[c+8>>2]=l;break}if(f<1-u){if(s[c+8>>2]=l,u*2+-1<f){s[a>>2]=o;break}}else l=l+1|0,s[c+8>>2]=l;o=o+1|0,s[a>>2]=o}while(!1);do if(g<0)if(l&1){x=(l+1|0)/2|0,x=Ft(o|0,((o|0)<0)<<31>>31|0,x|0,((x|0)<0)<<31>>31|0)|0,o=~~(+(o|0)-((+(x>>>0)+4294967296*+(F()|0))*2+1)),s[a>>2]=o,x=a;break}else{x=(l|0)/2|0,x=Ft(o|0,((o|0)<0)<<31>>31|0,x|0,((x|0)<0)<<31>>31|0)|0,o=~~(+(o|0)-(+(x>>>0)+4294967296*+(F()|0))*2),s[a>>2]=o,x=a;break}else x=a;while(!1);_=c+8|0,a=0-l|0,d<0?(c=o-((l<<1|1|0)/2|0)|0,s[x>>2]=c,s[_>>2]=a,l=a):c=o,o=l-c|0,a=0-c|0,(c|0)<0?(s[_>>2]=o,s[w>>2]=a,s[x>>2]=0,m=0):(o=l,m=c,a=0),c=m-o|0,l=a-o|0,(o|0)<0?(s[x>>2]=c,s[w>>2]=l,s[_>>2]=0,m=c,o=0):l=a,c=m-l|0,a=o-l|0,(l|0)<0?(s[x>>2]=c,s[_>>2]=a,s[w>>2]=0,l=0):(a=o,c=m),o=(a|0)<(c|0)?a:c,o=(l|0)<(o|0)?l:o,!((o|0)<=0)&&(s[x>>2]=c-o,s[_>>2]=a-o,s[w>>2]=l-o)}function dT(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0;u=v,v=v+16|0,l=u,d=s[o+12>>2]|0,f=+((s[o+8>>2]|0)-d|0),R[l>>3]=+((s[o+4>>2]|0)-d|0)-f*.5,R[l+8>>3]=f*.8660254037844386,Si(l,s[o>>2]|0,a,0,c),v=u}function Si(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0;
4if(f=+ty(o),f<1e-16){a=15888+(a*24|0)|0,s[l>>2]=s[a>>2],s[l+4>>2]=s[a+4>>2],s[l+8>>2]=s[a+8>>2],s[l+12>>2]=s[a+12>>2],s[l+16>>2]=s[a+16>>2],s[l+20>>2]=s[a+20>>2];return}if(d=+zt(+ +R[o+8>>3],+ +R[o>>3]),(c|0)>0){o=0;do f=f*.37796447300922725,o=o+1|0;while((o|0)!=(c|0))}m=f*.3333333333333333,u?(c=(Tr(c)|0)==0,f=+Uf(+((c?m:m*.37796447300922725)*.381966011250105))):(f=+Uf(+(f*.381966011250105)),Tr(c)|0&&(d=+Fi(d+.3334731722518321))),_=+Fi(+R[16368+(a*24|0)>>3]-d),m=+R[15888+(a*24|0)>>3],b=+R[15888+(a*24|0)+8>>3],D=+R[15888+(a*24|0)+16>>3],w=-(D+(m*0+b*0)),C=m*w+0,d=b*w+0,w=D*w+1,x=+mt(+(w*w+(C*C+d*d))),x=x>0?1/x:0,C=C*x,d=d*x,x=w*x,w=+Ge(+_),_=+st(+_),G=+Ge(+f),M=+st(+f),g=G*m+M*(w*C+_*(D*d-b*x)),f=G*b+M*(w*d+_*(m*x-D*C)),d=G*D+M*(w*x+_*(b*C-m*d)),m=+mt(+(d*d+(g*g+f*f))),m=m>0?1/m:0,R[l>>3]=g*m,R[l+8>>3]=f*m,R[l+16>>3]=d*m}function M0(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0,J=0,ge=0,ne=0,ye=0,le=0,pe=0,Qe=0,Xe=0,kt=0,Le=0,Ye=0,Yt=0,_t=0,dt=0,xt=0,gt=0,sr=0,Pt=0,Ot=0,br=0,Ht=0,rt=0,jn=0;if(sr=v,v=v+256|0,f=sr+240|0,Qe=sr+224|0,dt=sr,xt=sr+208|0,gt=sr+192|0,Xe=sr+168|0,kt=sr+152|0,Le=sr+136|0,Ye=sr+120|0,Yt=sr+104|0,_t=sr+80|0,s[f>>2]=a,s[Qe>>2]=s[o>>2],s[Qe+4>>2]=s[o+4>>2],s[Qe+8>>2]=s[o+8>>2],s[Qe+12>>2]=s[o+12>>2],eh(Qe,f,dt),s[l>>2]=0,Qe=u+c+((u|0)==5&1)|0,(Qe|0)<=(c|0)){v=sr;return}k=s[f>>2]|0,K=xt+4|0,V=xt+8|0,L=xt+12|0,$=gt+8|0,se=c+5|0,Y=16848+(k<<2)|0,J=Xe+8|0,ge=16928+(k<<2)|0,ne=kt+8|0,ye=Le+8|0,le=Ye+8|0,pe=gt+8|0,w=Xe+8|0,D=Xe+16|0,M=_t+8|0,G=_t+16|0,x=c,u=0,d=0,m=0,g=0;e:for(;;){_=dt+(((x|0)%5|0)<<4)|0,s[xt>>2]=s[_>>2],s[xt+4>>2]=s[_+4>>2],s[xt+8>>2]=s[_+8>>2],s[xt+12>>2]=s[_+12>>2];do;while((Ts(xt,k,0,1)|0)==2);if((x|0)>(c|0)&(Tr(a)|0)!=0){if(_=s[xt>>2]|0,o=s[K>>2]|0,C=s[V>>2]|0,f=s[L>>2]|0,Pt=+(m-g|0),R[gt>>3]=+(d-g|0)-Pt*.5,R[$>>3]=Pt*.8660254037844386,g=s[17008+(_*80|0)+(u<<2)>>2]|0,b=s[18608+(_*80|0)+(g*20|0)>>2]|0,m=s[18608+(_*80|0)+(g*20|0)+16>>2]|0,(m|0)>0){d=0,u=C;do Ht=f+o|0,rt=(Ht|0)<0,C=u+o-(rt?Ht:0)|0,br=(C|0)<0,Ot=f+u-(rt?Ht:0)-(br?C:0)|0,f=(Ot|0)<0,o=(rt?0:Ht)-(br?C:0)-(f?Ot:0)|0,u=(br?0:C)-(f?Ot:0)|0,Ot=f?0:Ot,f=(u|0)<(o|0)?u:o,f=(Ot|0)<(f|0)?Ot:f,C=(f|0)>0,o=o-(C?f:0)|0,u=u-(C?f:0)|0,f=Ot-(C?f:0)|0,d=d+1|0;while((d|0)<(m|0))}else u=C;switch(rt=(s[Y>>2]|0)*3|0,Ot=(rr(rt,s[18608+(_*80|0)+(g*20|0)+4>>2]|0)|0)+o|0,C=(rr(rt,s[18608+(_*80|0)+(g*20|0)+8>>2]|0)|0)+u|0,rt=(rr(rt,s[18608+(_*80|0)+(g*20|0)+12>>2]|0)|0)+f|0,g=(Ot|0)<0,C=C-(g?Ot:0)|0,br=(C|0)<0,rt=rt+(g?0-Ot|0:0)+(br?0-C|0:0)|0,Ht=(rt|0)<0,Ot=(g?0:Ot)-(br?C:0)-(Ht?rt:0)|0,C=(br?0:C)-(Ht?rt:0)|0,rt=Ht?0:rt,Ht=(C|0)<(Ot|0)?C:Ot,Ht=(rt|0)<(Ht|0)?rt:Ht,br=(Ht|0)>0,rt=rt-(br?Ht:0)|0,Pt=+(C-(br?Ht:0)-rt|0),R[Xe>>3]=+(Ot-(br?Ht:0)-rt|0)-Pt*.5,R[J>>3]=Pt*.8660254037844386,Pt=+(s[ge>>2]|0),R[kt>>3]=Pt*3,R[ne>>3]=0,jn=Pt*-1.5,R[Le>>3]=jn,R[ye>>3]=Pt*2.598076211353316,R[Ye>>3]=jn,R[le>>3]=Pt*-2.598076211353316,s[17008+(b*80|0)+(_<<2)>>2]|0){case 1:{o=Le,u=kt;break}case 3:{o=Ye,u=Le;break}case 2:{o=kt,u=Ye;break}default:{o=12;break e}}dh(gt,Xe,u,o,Yt),Si(Yt,b,k,1,_t),rt=s[l>>2]|0,Pt=+wi(+ +R[G>>3]),jn=+zt(+ +R[M>>3],+ +R[_t>>3]),R[l+8+(rt<<4)>>3]=Pt,R[l+8+(rt<<4)+8>>3]=jn,s[l>>2]=(s[l>>2]|0)+1}if((x|0)<(se|0)&&(rt=s[L>>2]|0,Pt=+((s[V>>2]|0)-rt|0),R[gt>>3]=+((s[K>>2]|0)-rt|0)-Pt*.5,R[pe>>3]=Pt*.8660254037844386,Si(gt,s[xt>>2]|0,k,1,Xe),rt=s[l>>2]|0,Pt=+wi(+ +R[D>>3]),jn=+zt(+ +R[w>>3],+ +R[Xe>>3]),R[l+8+(rt<<4)>>3]=Pt,R[l+8+(rt<<4)+8>>3]=jn,s[l>>2]=(s[l>>2]|0)+1),x=x+1|0,(x|0)>=(Qe|0)){o=3;break}else u=s[xt>>2]|0,d=s[K>>2]|0,m=s[V>>2]|0,g=s[L>>2]|0}if((o|0)==3){v=sr;return}else(o|0)==12&&je(27073,27120,599,27130)}function eh(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0;M=v,v=v+128|0,u=M+64|0,l=M,f=u,d=20208,m=f+60|0;do s[f>>2]=s[d>>2],f=f+4|0,d=d+4|0;while((f|0)<(m|0));f=l,d=20272,m=f+60|0;do s[f>>2]=s[d>>2],f=f+4|0,d=d+4|0;while((f|0)<(m|0));if(b=(Tr(s[a>>2]|0)|0)==0,b=b?u:l,w=o+4|0,f=s[w>>2]|0,_=o+8|0,u=s[_>>2]|0,x=o+12|0,l=s[x>>2]|0,d=u+(f<<1)|0,s[w>>2]=d,u=l+(u<<1)|0,s[_>>2]=u,f=(l<<1)+f|0,s[x>>2]=f,l=u-d|0,m=f-d|0,(d|0)<0&&(s[_>>2]=l,s[x>>2]=m,s[w>>2]=0,u=l,d=0,f=m),m=d-u|0,l=f-u|0,(u|0)<0?(s[w>>2]=m,s[x>>2]=l,s[_>>2]=0,u=0):(l=f,m=d),d=m-l|0,f=u-l|0,(l|0)<0?(s[w>>2]=d,s[_>>2]=f,s[x>>2]=0,l=0):(f=u,d=m),u=(f|0)<(d|0)?f:d,u=(l|0)<(u|0)?l:u,(u|0)>0&&(l=l-u|0,f=f-u|0,d=d-u|0,s[w>>2]=d,s[_>>2]=f,s[x>>2]=l),g=(f<<1)+d|0,m=l+(d<<1)|0,s[w>>2]=m,s[_>>2]=g,f=(l<<1)+f|0,s[x>>2]=f,u=g-m|0,l=f-m|0,(m|0)<0?(s[_>>2]=u,s[x>>2]=l,s[w>>2]=0,m=0,f=l):u=g,d=m-u|0,l=f-u|0,(u|0)<0?(s[w>>2]=d,s[x>>2]=l,s[_>>2]=0,m=d,u=0):l=f,d=m-l|0,f=u-l|0,(l|0)<0?(s[w>>2]=d,s[_>>2]=f,s[x>>2]=0,l=0):(f=u,d=m),u=(f|0)<(d|0)?f:d,u=(l|0)<(u|0)?l:u,(u|0)>0&&(s[w>>2]=d-u,s[_>>2]=f-u,s[x>>2]=l-u),Tr(s[a>>2]|0)|0&&(f=s[w>>2]|0,d=s[_>>2]|0,l=s[x>>2]|0,u=(d*3|0)+f|0,f=l+(f*3|0)|0,s[w>>2]=f,s[_>>2]=u,d=(l*3|0)+d|0,s[x>>2]=d,l=u-f|0,m=d-f|0,(f|0)<0?(s[_>>2]=l,s[x>>2]=m,s[w>>2]=0,u=l,g=0):(g=f,m=d),f=g-u|0,l=m-u|0,(u|0)<0?(s[w>>2]=f,s[x>>2]=l,s[_>>2]=0,g=f,d=0):(d=u,l=m),f=g-l|0,u=d-l|0,(l|0)<0?(s[w>>2]=f,s[_>>2]=u,s[x>>2]=0,d=u,l=0):f=g,u=(d|0)<(f|0)?d:f,u=(l|0)<(u|0)?l:u,(u|0)>0&&(s[w>>2]=f-u,s[_>>2]=d-u,s[x>>2]=l-u),s[a>>2]=(s[a>>2]|0)+1),s[c>>2]=s[o>>2],l=s[_>>2]|0,u=s[x>>2]|0,a=s[b+4>>2]|0,C=s[b+8>>2]|0,d=(s[b>>2]|0)+(s[w>>2]|0)|0,g=c+4|0,s[g>>2]=d,l=a+l|0,a=c+8|0,s[a>>2]=l,u=C+u|0,C=c+12|0,s[C>>2]=u,f=l-d|0,(d|0)<0&&(u=u-d|0,s[a>>2]=f,s[C>>2]=u,s[g>>2]=0,l=f,d=0),(l|0)<0&&(d=d-l|0,s[g>>2]=d,u=u-l|0,s[C>>2]=u,s[a>>2]=0,l=0),m=d-u|0,f=l-u|0,(u|0)<0?(s[g>>2]=m,s[a>>2]=f,s[C>>2]=0,d=m,u=0):f=l,l=(f|0)<(d|0)?f:d,l=(u|0)<(l|0)?u:l,(l|0)>0&&(s[g>>2]=d-l,s[a>>2]=f-l,s[C>>2]=u-l),s[c+16>>2]=s[o>>2],l=s[_>>2]|0,u=s[x>>2]|0,a=s[b+16>>2]|0,C=s[b+20>>2]|0,d=(s[b+12>>2]|0)+(s[w>>2]|0)|0,g=c+20|0,s[g>>
42]=d,l=a+l|0,a=c+24|0,s[a>>2]=l,u=C+u|0,C=c+28|0,s[C>>2]=u,f=l-d|0,(d|0)<0&&(u=u-d|0,s[a>>2]=f,s[C>>2]=u,s[g>>2]=0,l=f,d=0),(l|0)<0&&(d=d-l|0,s[g>>2]=d,u=u-l|0,s[C>>2]=u,s[a>>2]=0,l=0),m=d-u|0,f=l-u|0,(u|0)<0?(s[g>>2]=m,s[a>>2]=f,s[C>>2]=0,d=m,u=0):f=l,l=(f|0)<(d|0)?f:d,l=(u|0)<(l|0)?u:l,(l|0)>0&&(s[g>>2]=d-l,s[a>>2]=f-l,s[C>>2]=u-l),s[c+32>>2]=s[o>>2],l=s[_>>2]|0,u=s[x>>2]|0,a=s[b+28>>2]|0,C=s[b+32>>2]|0,d=(s[b+24>>2]|0)+(s[w>>2]|0)|0,g=c+36|0,s[g>>2]=d,l=a+l|0,a=c+40|0,s[a>>2]=l,u=C+u|0,C=c+44|0,s[C>>2]=u,f=l-d|0,(d|0)<0&&(u=u-d|0,s[a>>2]=f,s[C>>2]=u,s[g>>2]=0,l=f,d=0),(l|0)<0&&(d=d-l|0,s[g>>2]=d,u=u-l|0,s[C>>2]=u,s[a>>2]=0,l=0),m=d-u|0,f=l-u|0,(u|0)<0?(s[g>>2]=m,s[a>>2]=f,s[C>>2]=0,d=m,u=0):f=l,l=(f|0)<(d|0)?f:d,l=(u|0)<(l|0)?u:l,(l|0)>0&&(s[g>>2]=d-l,s[a>>2]=f-l,s[C>>2]=u-l),s[c+48>>2]=s[o>>2],l=s[_>>2]|0,u=s[x>>2]|0,a=s[b+40>>2]|0,C=s[b+44>>2]|0,d=(s[b+36>>2]|0)+(s[w>>2]|0)|0,g=c+52|0,s[g>>2]=d,l=a+l|0,a=c+56|0,s[a>>2]=l,u=C+u|0,C=c+60|0,s[C>>2]=u,f=l-d|0,(d|0)<0&&(u=u-d|0,s[a>>2]=f,s[C>>2]=u,s[g>>2]=0,l=f,d=0),(l|0)<0&&(d=d-l|0,s[g>>2]=d,u=u-l|0,s[C>>2]=u,s[a>>2]=0,l=0),m=d-u|0,f=l-u|0,(u|0)<0?(s[g>>2]=m,s[a>>2]=f,s[C>>2]=0,d=m,u=0):f=l,l=(f|0)<(d|0)?f:d,l=(u|0)<(l|0)?u:l,(l|0)>0&&(s[g>>2]=d-l,s[a>>2]=f-l,s[C>>2]=u-l),s[c+64>>2]=s[o>>2],f=s[_>>2]|0,u=s[x>>2]|0,C=s[b+52>>2]|0,g=s[b+56>>2]|0,d=(s[b+48>>2]|0)+(s[w>>2]|0)|0,a=c+68|0,s[a>>2]=d,f=C+f|0,C=c+72|0,s[C>>2]=f,u=g+u|0,g=c+76|0,s[g>>2]=u,l=f-d|0,(d|0)<0?(u=u-d|0,s[C>>2]=l,s[g>>2]=u,s[a>>2]=0,f=0):(l=f,f=d),(l|0)<0&&(f=f-l|0,s[a>>2]=f,u=u-l|0,s[g>>2]=u,s[C>>2]=0,l=0),m=f-u|0,d=l-u|0,(u|0)<0?(s[a>>2]=m,s[C>>2]=d,s[g>>2]=0,f=m,u=0):d=l,l=(d|0)<(f|0)?d:f,l=(u|0)<(l|0)?u:l,(l|0)<=0){v=M;return}s[a>>2]=f-l,s[C>>2]=d-l,s[g>>2]=u-l,v=M}function Ts(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0;if(x=s[16928+(a<<2)>>2]|0,_=(u|0)!=0,x=_?x*3|0:x,b=o+4|0,m=s[b>>2]|0,C=o+8|0,f=s[C>>2]|0,_){if(d=o+12|0,u=s[d>>2]|0,l=f+m+u|0,(l|0)==(x|0))return x=1,x|0;g=d}else g=o+12|0,l=s[g>>2]|0,u=l,l=f+m+l|0;if((l|0)<=(x|0))return x=0,x|0;do if((u|0)>0){if(l=s[o>>2]|0,(f|0)>0){l=18608+(l*80|0)+60|0,d=m;break}l=18608+(l*80|0)+40|0,c?(d=m-x|0,c=f+d|0,w=(c|0)<0,f=u+f-(w?c:0)|0,m=(f|0)<0,u=u+d-(w?c:0)-(m?f:0)|0,d=(u|0)<0,c=(w?0:c)-(m?f:0)-(d?u:0)|0,f=(m?0:f)-(d?u:0)|0,u=d?0:u,d=(f|0)<(c|0)?f:c,d=(u|0)<(d|0)?u:d,m=(d|0)>0,f=f-(m?d:0)|0,u=u-(m?d:0)|0,d=c-(m?d:0)+x|0,s[b>>2]=d,s[C>>2]=f,s[g>>2]=u):d=m}else l=18608+((s[o>>2]|0)*80|0)+20|0,d=m;while(!1);if(s[o>>2]=s[l>>2],m=s[l+16>>2]|0,(m|0)>0){c=0;do w=u+d|0,M=(w|0)<0,V=M?w:0,D=f+d-V|0,G=(D|0)<0,o=G?D:0,d=u+f-V-o|0,f=(d|0)<0,u=f?0:d,d=f?d:0,f=(G?0:D)-d|0,d=(M?0:w)-o-d|0,o=(f|0)<(d|0)?f:d,o=(u|0)<(o|0)?u:o,(o|0)>0&&(d=d-o|0,f=f-o|0,u=u-o|0),c=c+1|0;while((c|0)<(m|0));s[b>>2]=d,s[C>>2]=f,s[g>>2]=u}return D=s[16848+(a<<2)>>2]|0,D=_?D*3|0:D,G=rr(D,s[l+8>>2]|0)|0,V=rr(D,s[l+12>>2]|0)|0,d=(rr(D,s[l+4>>2]|0)|0)+d|0,s[b>>2]=d,f=G+f|0,s[C>>2]=f,u=V+u|0,s[g>>2]=u,l=f-d|0,(d|0)<0?(u=u-d|0,s[C>>2]=l,s[g>>2]=u,s[b>>2]=0,f=0):(l=f,f=d),(l|0)<0?(o=f-l|0,s[b>>2]=o,u=u-l|0,s[g>>2]=u,s[C>>2]=0,d=0):(o=f,d=l),f=o-u|0,l=d-u|0,(u|0)<0?(s[b>>2]=f,s[C>>2]=l,s[g>>2]=0,u=0):(l=d,f=o),d=(l|0)<(f|0)?l:f,d=(u|0)<(d|0)?u:d,(d|0)>0&&(f=f-d|0,l=l-d|0,u=u-d|0,s[b>>2]=f,s[C>>2]=l,s[g>>2]=u),_?(V=(l+f+u|0)==(x|0)?1:2,V|0):(V=2,V|0)}function pT(o,a){o=o|0,a=a|0;var c=0;do c=Ts(o,a,0,1)|0;while((c|0)==2);return c|0}function S0(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0,J=0,ge=0,ne=0,ye=0,le=0,pe=0,Qe=0,Xe=0,kt=0,Le=0,Ye=0,Yt=0,_t=0,dt=0,xt=0,gt=0;if(_t=v,v=v+272|0,f=_t+256|0,d=_t+240|0,Le=_t,Ye=_t+224|0,Yt=_t+208|0,ne=_t+184|0,ye=_t+168|0,le=_t+152|0,pe=_t+136|0,Qe=_t+120|0,Xe=_t+96|0,s[f>>2]=a,s[d>>2]=s[o>>2],s[d+4>>2]=s[o+4>>2],s[d+8>>2]=s[o+8>>2],s[d+12>>2]=s[o+12>>2],th(d,f,Le),s[l>>2]=0,ge=u+c+((u|0)==6&1)|0,(ge|0)<=(c|0)){v=_t;return}V=s[f>>2]|0,L=c+6|0,K=Yt+8|0,k=ne+8|0,$=16928+(V<<2)|0,se=ye+8|0,Y=le+8|0,J=pe+8|0,D=s[d>>2]|0,x=Ye+4|0,w=Ye+8|0,M=Ye+12|0,G=Yt+8|0,g=ne+8|0,b=ne+16|0,C=Xe+8|0,_=Xe+16|0,d=0,m=c,u=-1;e:for(;;){if(f=(m|0)%6|0,o=Le+(f<<4)|0,s[Ye>>2]=s[o>>2],s[Ye+4>>2]=s[o+4>>2],s[Ye+8>>2]=s[o+8>>2],s[Ye+12>>2]=s[o+12>>2],o=d,d=Ts(Ye,V,0,1)|0,(m|0)>(c|0)&(Tr(a)|0)!=0&&(kt=s[Ye>>
42]|0,(o|0)!=1&(kt|0)!=(u|0))){switch(gt=(f+5|0)%6|0,o=s[Le+(gt<<4)+12>>2]|0,dt=+((s[Le+(gt<<4)+8>>2]|0)-o|0),R[Yt>>3]=+((s[Le+(gt<<4)+4>>2]|0)-o|0)-dt*.5,R[K>>3]=dt*.8660254037844386,o=s[Le+(f<<4)+12>>2]|0,dt=+((s[Le+(f<<4)+8>>2]|0)-o|0),R[ne>>3]=+((s[Le+(f<<4)+4>>2]|0)-o|0)-dt*.5,R[k>>3]=dt*.8660254037844386,dt=+(s[$>>2]|0),R[ye>>3]=dt*3,R[se>>3]=0,xt=dt*-1.5,R[le>>3]=xt,R[Y>>3]=dt*2.598076211353316,R[pe>>3]=xt,R[J>>3]=dt*-2.598076211353316,s[17008+(D*80|0)+(((u|0)==(D|0)?kt:u)<<2)>>2]|0){case 1:{o=le,u=ye;break}case 3:{o=pe,u=le;break}case 2:{o=ye,u=pe;break}default:{o=8;break e}}dh(Yt,ne,u,o,Qe),!(ph(Yt,Qe)|0)&&!(ph(ne,Qe)|0)&&(Si(Qe,D,V,1,Xe),gt=s[l>>2]|0,dt=+wi(+ +R[_>>3]),xt=+zt(+ +R[C>>3],+ +R[Xe>>3]),R[l+8+(gt<<4)>>3]=dt,R[l+8+(gt<<4)+8>>3]=xt,s[l>>2]=(s[l>>2]|0)+1)}if((m|0)<(L|0)&&(gt=s[M>>2]|0,dt=+((s[w>>2]|0)-gt|0),R[Yt>>3]=+((s[x>>2]|0)-gt|0)-dt*.5,R[G>>3]=dt*.8660254037844386,Si(Yt,s[Ye>>2]|0,V,1,ne),gt=s[l>>2]|0,dt=+wi(+ +R[b>>3]),xt=+zt(+ +R[g>>3],+ +R[ne>>3]),R[l+8+(gt<<4)>>3]=dt,R[l+8+(gt<<4)+8>>3]=xt,s[l>>2]=(s[l>>2]|0)+1),m=m+1|0,(m|0)>=(ge|0)){o=3;break}else u=s[Ye>>2]|0}if((o|0)==3){v=_t;return}else(o|0)==8&&je(27157,27120,766,27202)}function th(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0;D=v,v=v+160|0,u=D+80|0,l=D,f=u,d=20336,m=f+72|0;do s[f>>2]=s[d>>2],f=f+4|0,d=d+4|0;while((f|0)<(m|0));f=l,d=20416,m=f+72|0;do s[f>>2]=s[d>>2],f=f+4|0,d=d+4|0;while((f|0)<(m|0));_=(Tr(s[a>>2]|0)|0)==0,_=_?u:l,M=o+4|0,f=s[M>>2]|0,x=o+8|0,u=s[x>>2]|0,w=o+12|0,l=s[w>>2]|0,d=u+(f<<1)|0,s[M>>2]=d,u=l+(u<<1)|0,s[x>>2]=u,f=(l<<1)+f|0,s[w>>2]=f,l=u-d|0,m=f-d|0,(d|0)<0&&(s[x>>2]=l,s[w>>2]=m,s[M>>2]=0,u=l,d=0,f=m),m=d-u|0,l=f-u|0,(u|0)<0?(s[M>>2]=m,s[w>>2]=l,s[x>>2]=0,u=0):(l=f,m=d),d=m-l|0,f=u-l|0,(l|0)<0?(s[M>>2]=d,s[x>>2]=f,s[w>>2]=0,l=0):(f=u,d=m),u=(f|0)<(d|0)?f:d,u=(l|0)<(u|0)?l:u,(u|0)>0&&(l=l-u|0,f=f-u|0,d=d-u|0,s[M>>2]=d,s[x>>2]=f,s[w>>2]=l),g=(f<<1)+d|0,m=l+(d<<1)|0,s[M>>2]=m,s[x>>2]=g,f=(l<<1)+f|0,s[w>>2]=f,u=g-m|0,l=f-m|0,(m|0)<0?(s[x>>2]=u,s[w>>2]=l,s[M>>2]=0,m=0,f=l):u=g,d=m-u|0,l=f-u|0,(u|0)<0?(s[M>>2]=d,s[w>>2]=l,s[x>>2]=0,m=d,u=0):l=f,d=m-l|0,f=u-l|0,(l|0)<0?(s[M>>2]=d,s[x>>2]=f,s[w>>2]=0,l=0):(f=u,d=m),u=(f|0)<(d|0)?f:d,u=(l|0)<(u|0)?l:u,(u|0)>0&&(s[M>>2]=d-u,s[x>>2]=f-u,s[w>>2]=l-u),Tr(s[a>>2]|0)|0&&(f=s[M>>2]|0,d=s[x>>2]|0,l=s[w>>2]|0,u=(d*3|0)+f|0,f=l+(f*3|0)|0,s[M>>2]=f,s[x>>2]=u,d=(l*3|0)+d|0,s[w>>2]=d,l=u-f|0,m=d-f|0,(f|0)<0?(s[x>>2]=l,s[w>>2]=m,s[M>>2]=0,u=l,g=0):(g=f,m=d),f=g-u|0,l=m-u|0,(u|0)<0?(s[M>>2]=f,s[w>>2]=l,s[x>>2]=0,g=f,d=0):(d=u,l=m),f=g-l|0,u=d-l|0,(l|0)<0?(s[M>>2]=f,s[x>>2]=u,s[w>>2]=0,d=u,l=0):f=g,u=(d|0)<(f|0)?d:f,u=(l|0)<(u|0)?l:u,(u|0)>0&&(s[M>>2]=f-u,s[x>>2]=d-u,s[w>>2]=l-u),s[a>>2]=(s[a>>2]|0)+1),g=0;do s[c+(g<<4)>>2]=s[o>>2],l=s[x>>2]|0,u=s[w>>2]|0,C=s[_+(g*12|0)+4>>2]|0,b=s[_+(g*12|0)+8>>2]|0,d=(s[_+(g*12|0)>>2]|0)+(s[M>>2]|0)|0,a=c+(g<<4)+4|0,s[a>>2]=d,l=C+l|0,C=c+(g<<4)+8|0,s[C>>2]=l,u=b+u|0,b=c+(g<<4)+12|0,s[b>>2]=u,f=l-d|0,(d|0)<0&&(u=u-d|0,s[C>>2]=f,s[b>>2]=u,s[a>>2]=0,l=f,d=0),(l|0)<0&&(d=d-l|0,s[a>>2]=d,u=u-l|0,s[b>>2]=u,s[C>>2]=0,l=0),m=d-u|0,f=l-u|0,(u|0)<0?(s[a>>2]=m,s[C>>2]=f,s[b>>2]=0,d=m,u=0):f=l,l=(f|0)<(d|0)?f:d,l=(u|0)<(l|0)?u:l,(l|0)>0&&(s[a>>2]=d-l,s[C>>2]=f-l,s[b>>2]=u-l),g=g+1|0;while((g|0)!=6);v=D}function v0(o,a){return o=o|0,a=a|0,a=oe(o|0,a|0,52)|0,F()|0,a&15|0}function rh(o,a){return o=o|0,a=a|0,a=oe(o|0,a|0,45)|0,F()|0,a&127|0}function mT(o,a,c,u){return o=o|0,a=a|0,c=c|0,u=u|0,(c+-1|0)>>>0>14?(u=4,u|0):(c=oe(o|0,a|0,(15-c|0)*3|0)|0,F()|0,s[u>>2]=c&7,u=0,u|0)}function gT(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0;if(o>>>0>15)return u=4,u|0;if(a>>>0>121)return u=17,u|0;d=de(o|0,0,52)|0,l=F()|0,m=de(a|0,0,45)|0,l=l|(F()|0)|134225919;e:do if((o|0)>=1){for(m=1,d=(te[20496+a>>0]|0)!=0,f=-1;;){if(a=s[c+(m+-1<<2)>>2]|0,a>>>0>6){l=18,a=10;break}if(!((a|0)==0|d^1))if((a|0)==1){l=19,a=10;break}else d=0;if(C=(15-m|0)*3|0,g=de(7,0,C|0)|0,l=l&~(F()|0),a=de(a|0,((a|0)<0)<<31>>31|0,C|0)|0,f=a|f&~g,l=F()|0|l,(m|0)<(o|0))m=m+1|0;else break e}if((a|0)==10)return l|0}else f=-1;while(!1);return C=u,s[C>>2]=f,s[C+4>>2]=l,C=0,C|0}function So(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0;return!(!0&(a&-16777216|0)==134217728)||(u=oe(o|0,a|0,52)|0,F()|0,u=u&15,c=oe(o|0,a|0,45)|0,F()|0,c=c&127,c>>>0>121)?(o=0,o|0):(d=(u^15)*3|0,l=oe(o|0,a|0,d|0)|0,d=de(l|0,F()|0,d|0)|0,l=F()|0,f=Ft(-1227133514,-1171,d|0,l|0)|0,!((d&613566756&f|0)==0&(l&4681&(F()|0)|0)==0)||(d=(u*3|0)+19|0,f=de(~o|0,~a|0,d|0)|0,d=oe(f|0,F()|0,d|0)|0,!((u|0)==15|(d|0)==0&(F()|0)==0))?(d=0,d|0):!(te[20496+c>>0]|0)||(a=a&8191,(o|0)==0&(a|0)==0)?(d=1,d|0):(d=K0(o|0,a|0,0)|0,F()|0,((63-d|0)%3|0|0)!=0|0))}function BT(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0;return!0&(a&-16777216|0)==134217728&&(u=oe(o|0,a|0,52)|0,F()|0,u=u&15,c=oe(o|0,a|0,45)|0,F()|0,c=c&127,c>>>0<=121)&&(d=(u^15)*3|0,l=oe(o|0,a|0,d|0)|0,d=de(l|0,F()|0,d|0)|0,l=F()|0,f=Ft(-1227133514,-1171,d|0,l|0)|0,(d&613566756&f|0)==0&(l&4681&(F()|0)|0)==0)&&(d=(u*3|0)+19|0,f=de(~o|0,~a|0,d|0)|0,d=oe(f|0,F()|0,d|0)|0,(u|0)==15|(d|0)==0&(F()|0)==0)&&(!(te[20496+c>>0]|0)||(c=a&8191,(o|0)==0&(c|0)==0)||(d=K0(o|0,c|0,0)|0,F()|0,(63-d|0)%3|0|0))||Zf(o,a)|0?(d=1,d|0):(d=(mh(o,a)|0)!=0&1,d|0)}function F0(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0;if(l=de(a|0,0,52)|0,f=F()|0,c=de(c|0,0,45)|0,c=f|(F()|0)|134225919,(a|0)<1){f=-1,u=c,a=o,s[a>>2]=f,o=o+4|0,s[o>>2]=u;return}for(f=1,l=-1;d=(15-f|0)*3|0,m=de(7,0,d|0)|0,c=c&~(F()|0),d=de(u|0,0,d|0)|0,l=l&~m|d,c=c|(F()|0),(f|0)!=(a|0);)f=f+1|0;m=o,d=m,s[d>>2]=l,m=m+4|0,s[m>>2]=c}function R0(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0;if(f=oe(o|0,a|0,52)|0,F()|0,f=f&15,c>>>0>15)return u=4,u|0;if((f|0)<(c|0))return u=12,u|0;if((f|0)==(c|0))return s[u>>2]=o,s[u+4>>2]=a,u=0,u|0;if(l=de(c|0,0,52)|0,l=l|o,o=F()|0|a&-15728641,(f|0)>(c|0))do a=de(7,0,(14-c|0)*3|0)|0,c=c+1|0,l=a|l,o=F()|0|o;while((c|0)<(f|0));return s[u>>2]=l,s[u+4>>2]=o,u=0,u|0}function vi(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0;if(f=oe(o|0,a|0,52)|0,F()|0,f=f&15,!((c|0)<16&(f|0)<=(c|0)))return u=4,u|0;l=c-f|0,c=oe(o|0,a|0,45)|0,F()|0;e:do if(!(lt(c&127)|0))c=mn(7,0,l,((l|0)<0)<<31>>31)|0,l=F()|0;else{t:do if(f|0){for(c=1;d=de(7,0,(15-c|0)*3|0)|0,!!((d&o|0)==0&((F()|0)&a|0)==0);)if(c>>>0<f>>>0)c=c+1|0;else break t;c=mn(7,0,l,((l|0)<0)<<31>>31)|0,l=F()|0;break e}while(!1);c=mn(7,0,l,((l|0)<0)<<31>>31)|0,c=ft(c|0,F()|0,5,0)|0,c=me(c|0,F()|0,-5,-1)|0,c=gn(c|0,F()|0,6,0)|0,c=me(c|0,F()|0,1,0)|0,l=F()|0}while(!1);return d=u,s[d>>2]=c,s[d+4>>2]=l,d=0,d|0}function ot(o,a){o=o|0,a=a|0;var c=0,u=0,l=0;if(l=oe(o|0,a|0,45)|0,F()|0,!(lt(l&127)|0))return l=0,l|0;l=oe(o|0,a|0,52)|0,F()|0,l=l&15;e:do if(!l)c=0;else for(u=1;;){if(c=oe(o|0,a|0,(15-u|0)*3|0)|0,F()|0,c=c&7,c|0)break e;if(u>>>0<l>>>0)u=u+1|0;else{c=0;break}}while(!1);return l=(c|0)==0&1,l|0}function CT(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0;if(d=v,v=v+16|0,f=d,G0(f,o,a,c),a=f,o=s[a>>2]|0,a=s[a+4>>2]|0,(o|0)==0&(a|0)==0)return v=d,0;l=0,c=0;do m=u+(l<<3)|0,s[m>>2]=o,s[m+4>>2]=a,l=me(l|0,c|0,1,0)|0,c=F()|0,U0(f),m=f,o=s[m>>2]|0,a=s[m+4>>2]|0;while(!((o|0)==0&(a|0)==0));return v=d,0}function nh(o,a,c,u){return o=o|0,a=a|0,c=c|0,u=u|0,(u|0)<(c|0)?(c=a,u=o,Re(c|0),u|0):(c=de(-1,-1,((u-c|0)*3|0)+3|0)|0,u=de(~c|0,~(F()|0)|0,(15-u|0)*3|0)|0,c=~(F()|0)&a,u=~u&o,Re(c|0),u|0)}function sh(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0;return l=oe(o|0,a|0,52)|0,F()|0,l=l&15,(c|0)<16&(l|0)<=(c|0)?((l|0)<(c|0)&&(l=de(-1,-1,((c+-1-l|0)*3|0)+3|0)|0,l=de(~l|0,~(F()|0)|0,(15-c|0)*3|0)|0,a=~(F()|0)&a,o=~l&o),l=de(c|0,0,52)|0,c=a&-15728641|(F()|0),s[u>>
42]=o|l,s[u+4>>2]=c,u=0,u|0):(u=4,u|0)}function TT(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0,J=0,ge=0,ne=0,ye=0,le=0,pe=0;if((c|0)==0&(u|0)==0)return pe=0,pe|0;if(l=o,f=s[l>>2]|0,l=s[l+4>>2]|0,!0&(l&15728640|0)==0){if(!((u|0)>0|(u|0)==0&c>>>0>0)||(pe=a,s[pe>>2]=f,s[pe+4>>2]=l,(c|0)==1&(u|0)==0))return pe=0,pe|0;l=1,f=0;do ye=o+(l<<3)|0,le=s[ye+4>>2]|0,pe=a+(l<<3)|0,s[pe>>2]=s[ye>>2],s[pe+4>>2]=le,l=me(l|0,f|0,1,0)|0,f=F()|0;while((f|0)<(u|0)|(f|0)==(u|0)&l>>>0<c>>>0);return l=0,l|0}if(ne=c<<3,le=ut(ne)|0,!le)return pe=13,pe|0;if(Dr(le|0,o|0,ne|0)|0,ye=Xt(c,8)|0,!ye)return Ce(le),pe=13,pe|0;e:for(;;){l=le,C=s[l>>2]|0,l=s[l+4>>2]|0,J=oe(C|0,l|0,52)|0,F()|0,J=J&15,ge=J+-1|0,Y=(J|0)!=0,se=(u|0)>0|(u|0)==0&c>>>0>0;t:do if(Y&se){if(L=de(ge|0,0,52)|0,K=F()|0,ge>>>0>15){if(!((C|0)==0&(l|0)==0)){pe=16;break e}for(f=0,o=0;;){if(f=me(f|0,o|0,1,0)|0,o=F()|0,!((o|0)<(u|0)|(o|0)==(u|0)&f>>>0<c>>>0))break t;if(d=le+(f<<3)|0,$=s[d>>2]|0,d=s[d+4>>2]|0,!(($|0)==0&(d|0)==0)){l=d,pe=16;break e}}}for(m=C,o=l,f=0,d=0;;){if(!((m|0)==0&(o|0)==0)){if(!(!0&(o&117440512|0)==0)){pe=21;break e}if(b=oe(m|0,o|0,52)|0,F()|0,b=b&15,(b|0)<(ge|0)){l=12,pe=27;break e}if((b|0)!=(ge|0)&&(m=m|L,o=o&-15728641|K,b>>>0>=J>>>0)){g=ge;do $=de(7,0,(14-g|0)*3|0)|0,g=g+1|0,m=$|m,o=F()|0|o;while(g>>>0<b>>>0)}if(x=sn(m|0,o|0,c|0,u|0)|0,w=F()|0,g=ye+(x<<3)|0,b=g,_=s[b>>2]|0,b=s[b+4>>2]|0,!((_|0)==0&(b|0)==0)){G=0,V=0;do{if((G|0)>(u|0)|(G|0)==(u|0)&V>>>0>c>>>0){pe=31;break e}if((_|0)==(m|0)&(b&-117440513|0)==(o|0)){M=oe(_|0,b|0,56)|0,F()|0,M=M&7,D=M+1|0,$=oe(_|0,b|0,45)|0,F()|0;r:do if(!(lt($&127)|0))b=7;else{if(_=oe(_|0,b|0,52)|0,F()|0,_=_&15,!_){b=6;break}for(b=1;;){if($=de(7,0,(15-b|0)*3|0)|0,!(($&m|0)==0&((F()|0)&o|0)==0)){b=7;break r}if(b>>>0<_>>>0)b=b+1|0;else{b=6;break}}}while(!1);if((M+2|0)>>>0>b>>>0){pe=41;break e}$=de(D|0,0,56)|0,o=F()|0|o&-117440513,k=g,s[k>>2]=0,s[k+4>>2]=0,m=$|m}else x=me(x|0,w|0,1,0)|0,x=Bn(x|0,F()|0,c|0,u|0)|0,w=F()|0;V=me(V|0,G|0,1,0)|0,G=F()|0,g=ye+(x<<3)|0,b=g,_=s[b>>2]|0,b=s[b+4>>2]|0}while(!((_|0)==0&(b|0)==0))}$=g,s[$>>2]=m,s[$+4>>2]=o}if(f=me(f|0,d|0,1,0)|0,d=F()|0,!((d|0)<(u|0)|(d|0)==(u|0)&f>>>0<c>>>0))break t;o=le+(f<<3)|0,m=s[o>>2]|0,o=s[o+4>>2]|0}}while(!1);if($=me(c|0,u|0,5,0)|0,k=F()|0,k>>>0<0|(k|0)==0&$>>>0<11){pe=85;break}if($=gn(c|0,u|0,6,0)|0,F()|0,$=Xt($,8)|0,!$){pe=48;break}do if(se){for(D=0,o=0,M=0,G=0;;){if(b=ye+(D<<3)|0,d=b,f=s[d>>2]|0,d=s[d+4>>2]|0,(f|0)==0&(d|0)==0)k=M;else{_=oe(f|0,d|0,56)|0,F()|0,_=_&7,m=_+1|0,x=d&-117440513,k=oe(f|0,d|0,45)|0,F()|0;t:do if(lt(k&127)|0){if(w=oe(f|0,d|0,52)|0,F()|0,w=w&15,w|0)for(g=1;;){if(k=de(7,0,(15-g|0)*3|0)|0,!((f&k|0)==0&(x&(F()|0)|0)==0))break t;if(g>>>0<w>>>0)g=g+1|0;else break}d=de(m|0,0,56)|0,f=d|f,d=F()|0|x,m=b,s[m>>2]=f,s[m+4>>2]=d,m=_+2|0}while(!1);(m|0)==7?(k=$+(o<<3)|0,s[k>>2]=f,s[k+4>>2]=d&-117440513,o=me(o|0,M|0,1,0)|0,k=F()|0):k=M}if(D=me(D|0,G|0,1,0)|0,G=F()|0,(G|0)<(u|0)|(G|0)==(u|0)&D>>>0<c>>>0)M=k;else break}if(se){if(V=ge>>>0>15,L=de(ge|0,0,52)|0,K=F()|0,!Y){for(f=0,g=0,m=0,d=0;(C|0)==0&(l|0)==0||(ge=a+(f<<3)|0,s[ge>>2]=C,s[ge+4>>2]=l,f=me(f|0,g|0,1,0)|0,g=F()|0),m=me(m|0,d|0,1,0)|0,d=F()|0,!!((d|0)<(u|0)|(d|0)==(u|0)&m>>>0<c>>>0);)l=le+(m<<3)|0,C=s[l>>2]|0,l=s[l+4>>2]|0;l=k;break}for(f=0,g=0,d=0,m=0;;){do if(!((C|0)==0&(l|0)==0)){if(w=oe(C|0,l|0,52)|0,F()|0,w=w&15,V|(w|0)<(ge|0)){pe=80;break e}if((w|0)!=(ge|0)){if(b=C|L,_=l&-15728641|K,w>>>0>=J>>>0){x=ge;do Y=de(7,0,(14-x|0)*3|0)|0,x=x+1|0,b=Y|b,_=F()|0|_;while(x>>>0<w>>>0)}}else b=C,_=l;M=sn(b|0,_|0,c|0,u|0)|0,x=0,w=0,G=F()|0;do{if((x|0)>(u|0)|(x|0)==(u|0)&w>>>0>c>>>0){pe=81;break e}if(Y=ye+(M<<3)|0,D=s[Y+4>>2]|0,(D&-117440513|0)==(_|0)&&(s[Y>>2]|0)==(b|0)){pe=65;break}Y=me(M|0,G|0,1,0)|0,M=Bn(Y|0,F()|0,c|0,u|0)|0,G=F()|0,w=me(w|0,x|0,1,0)|0,x=F()|0,Y=ye+(M<<3)|0}while(!((s[Y>>2]|0)==(b|0)&&(s[Y+4>>2]|0)==(_|0)));if((pe|0)==65&&(pe=0,!0&(D&117440512|0)==100663296))break;Y=a+(f<<3)|0,s[Y>>2]=C,s[Y+4>>2]=l,f=me(f|0,g|0,1,0)|0,g=F()|0}while(!1);if(d=me(d|0,m|0,1,0)|0,m=F()|0,!((m|0)<(u|0)|(m|0)==(u|0)&d>>>0<c>>>0))break;l=le+(d<<3)|0,C=s[l>>
42]|0,l=s[l+4>>2]|0}l=k}else f=0,l=k}else f=0,o=0,l=0;while(!1);if(Cn(ye|0,0,ne|0)|0,Dr(le|0,$|0,o<<3|0)|0,Ce($),(o|0)==0&(l|0)==0){pe=89;break}else a=a+(f<<3)|0,u=l,c=o}if((pe|0)==16)!0&(l&117440512|0)==0?(l=4,pe=27):pe=21;else if((pe|0)==31)je(27634,27225,620,27235);else{if((pe|0)==41)return Ce(le),Ce(ye),pe=10,pe|0;if((pe|0)==48)return Ce(le),Ce(ye),pe=13,pe|0;(pe|0)==80?je(27634,27225,711,27235):(pe|0)==81?je(27634,27225,723,27235):(pe|0)==85&&(Dr(a|0,le|0,c<<3|0)|0,pe=89)}return(pe|0)==21?(Ce(le),Ce(ye),pe=5,pe|0):(pe|0)==27?(Ce(le),Ce(ye),pe=l,pe|0):(pe|0)==89?(Ce(le),Ce(ye),pe=0,pe|0):0}function yT(o,a,c,u,l,f,d){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0,f=f|0,d=d|0;var m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0;if(D=v,v=v+16|0,M=D,!((c|0)>0|(c|0)==0&a>>>0>0))return M=0,v=D,M|0;if((d|0)>=16)return M=12,v=D,M|0;x=0,w=0,_=0,m=0;e:for(;;){if(C=o+(x<<3)|0,g=s[C>>2]|0,C=s[C+4>>2]|0,b=oe(g|0,C|0,52)|0,F()|0,(b&15|0)>(d|0)){m=12,g=11;break}if(G0(M,g,C,d),b=M,C=s[b>>2]|0,b=s[b+4>>2]|0,(C|0)==0&(b|0)==0)g=_;else{g=_;do{if(!((m|0)<(f|0)|(m|0)==(f|0)&g>>>0<l>>>0)){g=10;break e}_=u+(g<<3)|0,s[_>>2]=C,s[_+4>>2]=b,g=me(g|0,m|0,1,0)|0,m=F()|0,U0(M),_=M,C=s[_>>2]|0,b=s[_+4>>2]|0}while(!((C|0)==0&(b|0)==0))}if(x=me(x|0,w|0,1,0)|0,w=F()|0,(w|0)<(c|0)|(w|0)==(c|0)&x>>>0<a>>>0)_=g;else{m=0,g=11;break}}return(g|0)==10?(M=14,v=D,M|0):(g|0)==11?(v=D,m|0):0}function bT(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0;x=v,v=v+16|0,_=x;e:do if((c|0)>0|(c|0)==0&a>>>0>0){for(C=0,d=0,f=0,b=0;;){if(g=o+(C<<3)|0,m=s[g>>2]|0,g=s[g+4>>2]|0,!((m|0)==0&(g|0)==0)&&(g=(vi(m,g,u,_)|0)==0,m=_,d=me(s[m>>2]|0,s[m+4>>2]|0,d|0,f|0)|0,f=F()|0,!g)){f=12;break}if(C=me(C|0,b|0,1,0)|0,b=F()|0,!((b|0)<(c|0)|(b|0)==(c|0)&C>>>0<a>>>0))break e}return v=x,f|0}else d=0,f=0;while(!1);return s[l>>2]=d,s[l+4>>2]=f,l=0,v=x,l|0}function ET(o,a){return o=o|0,a=a|0,a=oe(o|0,a|0,52)|0,F()|0,a&1|0}function nr(o,a){o=o|0,a=a|0;var c=0,u=0,l=0;if(l=oe(o|0,a|0,52)|0,F()|0,l=l&15,!l)return l=0,l|0;for(u=1;;){if(c=oe(o|0,a|0,(15-u|0)*3|0)|0,F()|0,c=c&7,c|0){u=5;break}if(u>>>0<l>>>0)u=u+1|0;else{c=0,u=5;break}}return(u|0)==5?c|0:0}function L0(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0;if(b=oe(o|0,a|0,52)|0,F()|0,b=b&15,!b)return C=a,b=o,Re(C|0),b|0;for(C=1,c=0;;){switch(u=(15-C|0)*3|0,m=de(7,0,u|0)|0,g=F()|0,f=o&~m,d=a&~g,o=oe(o|0,a|0,u|0)|0,F()|0,o&7){case 1:{o=5;break}case 5:{o=4;break}case 4:{o=6;break}case 6:{o=2;break}case 2:{o=3;break}case 3:{o=1;break}default:o=o&7}u=de(o|0,0,u|0)|0,l=F()|0,o=u|f,a=l|d;e:do if(!c)if((u&m|0)==0&(l&g|0)==0)c=0;else if(d=oe(o|0,a|0,52)|0,F()|0,d=d&15,!d)c=1;else{c=1;t:for(;;){switch(g=oe(o|0,a|0,(15-c|0)*3|0)|0,F()|0,g&7){case 1:break t;case 0:break;default:{c=1;break e}}if(c>>>0<d>>>0)c=c+1|0;else{c=1;break e}}for(f=1;;){switch(l=(15-f|0)*3|0,c=oe(o|0,a|0,l|0)|0,F()|0,u=de(7,0,l|0)|0,u=o&~u,a=a&~(F()|0),c&7){case 1:{o=5;break}case 5:{o=4;break}case 4:{o=6;break}case 6:{o=2;break}case 2:{o=3;break}case 3:{o=1;break}default:o=c&7}if(o=de(o|0,0,l|0)|0,o=o|u,a=F()|0|a,f>>>0<d>>>0)f=f+1|0;else{c=1;break e}}}while(!1);if(C>>>0<b>>>0)C=C+1|0;else break}return Re(a|0),o|0}function Vn(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0;if(d=oe(o|0,a|0,52)|0,F()|0,d=d&15,!d)return f=a,d=o,Re(f|0),d|0;for(f=1;;){switch(l=(15-f|0)*3|0,c=oe(o|0,a|0,l|0)|0,F()|0,u=de(7,0,l|0)|0,u=o&~u,a=a&~(F()|0),c&7){case 1:{o=5;break}case 5:{o=4;break}case 4:{o=6;break}case 6:{o=2;break}case 2:{o=3;break}case 3:{o=1;break}default:o=c&7}if(o=de(o|0,0,l|0)|0,o=o|u,a=F()|0|a,f>>>0<d>>>0)f=f+1|0;else break}return Re(a|0),o|0}function _T(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0;if(b=oe(o|0,a|0,52)|0,F()|0,b=b&15,!b)return C=a,b=o,Re(C|0),b|0;for(C=1,c=0;;){switch(u=(15-C|0)*3|0,m=de(7,0,u|0)|0,g=F()|0,f=o&~m,d=a&~g,o=oe(o|0,a|0,u|0)|0,F()|0,o&7){case 1:{o=3;break}case 3:{o=2;break}case 2:{o=6;break}case 6:{o=4;break}case 4:{o=5;break}case 5:{o=1;break}default:o=o&7}u=de(o|0,0,u|0)|0,l=F()|0,o=u|f,a=l|d;e:do if(!c)if((u&m|0)==0&(l&g|0)==0)c=0;else if(d=oe(o|0,a|0,52)|0,F()|0,d=d&15,!d)c=1;else{c=1;t:for(;;){switch(g=oe(o|0,a|0,(15-c|0)*3|0)|0,F()|0,g&7){case 1:break t;case 0:break;default:{c=1;break e}}if(c>>>0<d>>>0)c=c+1|0;else{c=1;break e}}for(f=1;;){switch(c=(15-f|0)*3|0,u=de(7,0,c|0)|0,u=o&~u,l=a&~(F()|0),o=oe(o|0,a|0,c|0)|0,F()|0,o&7){case 1:{o=3;break}case 3:{o=2;break}case 2:{o=6;break}case 6:{o=4;break}case 4:{o=5;break}case 5:{o=1;break}default:o=o&7}if(o=de(o|0,0,c|0)|0,o=o|u,a=F()|0|l,f>>>0<d>>>0)f=f+1|0;else{c=1;break e}}}while(!1);if(C>>>0<b>>>0)C=C+1|0;else break}return Re(a|0),o|0}function D0(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0;if(d=oe(o|0,a|0,52)|0,F()|0,d=d&15,!d)return f=a,d=o,Re(f|0),d|0;for(f=1;;){switch(u=(15-f|0)*3|0,c=de(7,0,u|0)|0,c=o&~c,l=a&~(F()|0),o=oe(o|0,a|0,u|0)|0,F()|0,o&7){case 1:{o=3;break}case 3:{o=2;break}case 2:{o=6;break}case 6:{o=4;break}case 4:{o=5;break}case 5:{o=1;break}default:o=o&7}if(o=de(o|0,0,u|0)|0,o=o|c,a=F()|0|l,f>>>0<d>>>0)f=f+1|0;else break}return Re(a|0),o|0}function xT(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0;
4if(k=v,v=v+16|0,K=k,de(a|0,0,52)|0,c=F()|0|134225919,!a)return(s[o+4>>2]|0)>2||(s[o+8>>2]|0)>2||(s[o+12>>2]|0)>2?(L=0,K=0,Re(L|0),v=k,K|0):(de(Kf(o)|0,0,45)|0,L=F()|0|c,K=-1,Re(L|0),v=k,K|0);s[K>>2]=s[o>>2],s[K+4>>2]=s[o+4>>2],s[K+8>>2]=s[o+8>>2],s[K+12>>2]=s[o+12>>2],L=K+4|0;e:do if((a|0)>0)for(D=K+8|0,G=K+12|0,M=a,_=s[D>>2]|0,x=s[G>>2]|0,a=-1,b=s[K+4>>2]|0;;){w=M,M=M+-1|0,o=b-x|0,u=_-x|0,w&1?(f=zr(+((o*3|0)-u|0)*.14285714285714285)|0,s[L>>2]=f,o=zr(+((u<<1)+o|0)*.14285714285714285)|0,s[D>>2]=o,s[G>>2]=0,u=o-f|0,l=0-f|0,(f|0)<0?(s[D>>2]=u,s[G>>2]=l,s[L>>2]=0,o=u,d=0):(d=f,l=0),f=d-o|0,u=l-o|0,(o|0)<0?(s[L>>2]=f,s[G>>2]=u,s[D>>2]=0,d=f,f=0):(u=l,f=o),o=d-u|0,l=f-u|0,(u|0)<0?(s[L>>2]=o,s[D>>2]=l,s[G>>2]=0,f=0):(l=f,o=d,f=u),u=(l|0)<(o|0)?l:o,u=(f|0)<(u|0)?f:u,(u|0)>0&&(f=f-u|0,l=l-u|0,o=o-u|0,s[L>>2]=o,s[D>>2]=l,s[G>>2]=f),se=l+(o*3|0)|0,$=(se|0)<0,C=f+(l*3|0)-($?se:0)|0,g=(C|0)<0,u=(f*3|0)+o-($?se:0)-(g?C:0)|0,m=(u|0)<0,Y=m?0:u,d=(g?0:C)-(m?u:0)|0,u=($?0:se)-(g?C:0)-(m?u:0)|0,m=(d|0)<(u|0)?d:u,m=(Y|0)<(m|0)?Y:m,C=(m|0)>0,g=C?m:0,d=d-(C?m:0)|0,m=Y-(C?m:0)|0,C=f):(m=zr(+((o<<1)+u|0)*.14285714285714285)|0,s[L>>2]=m,l=zr(+((u*3|0)-o|0)*.14285714285714285)|0,s[D>>2]=l,s[G>>2]=0,u=l-m|0,o=0-m|0,(m|0)<0?(s[D>>2]=u,s[G>>2]=o,s[L>>2]=0,l=u,m=0):o=0,d=m-l|0,u=o-l|0,(l|0)<0?(s[L>>2]=d,s[G>>2]=u,s[D>>2]=0,f=u,l=0):(f=o,d=m),o=d-f|0,u=l-f|0,(f|0)<0?(s[L>>2]=o,s[D>>2]=u,s[G>>2]=0,l=u,f=0):o=d,u=(l|0)<(o|0)?l:o,u=(f|0)<(u|0)?f:u,(u|0)>0&&(f=f-u|0,l=l-u|0,o=o-u|0,s[L>>2]=o,s[D>>2]=l,s[G>>2]=f),se=f+(o*3|0)|0,Y=(se|0)<0,C=(l*3|0)+o-(Y?se:0)|0,g=(C|0)<0,u=(f*3|0)+l-(Y?se:0)-(g?C:0)|0,m=(u|0)<0,$=m?0:u,d=(g?0:C)-(m?u:0)|0,u=(Y?0:se)-(g?C:0)-(m?u:0)|0,m=(d|0)<(u|0)?d:u,m=($|0)<(m|0)?$:m,C=(m|0)>0,g=C?m:0,d=d-(C?m:0)|0,m=$-(C?m:0)|0,C=f),u=b+(g-u)|0,f=(u|0)<0,g=_-d-(f?u:0)|0,d=(g|0)<0,x=x-m+(f?0-u|0:0)+(d?0-g|0:0)|0,b=(x|0)<0,m=b?0:x,Y=(d?0:g)-(b?x:0)|0,x=(f?0:u)-(d?g:0)-(b?x:0)|0,b=(Y|0)<(x|0)?Y:x,b=(m|0)<(b|0)?m:b,g=(b|0)>0,x=x-(g?b:0)|0,d=(15-w|0)*3|0,u=de(7,0,d|0)|0,u=a&~u,f=c&~(F()|0),_=(x|0)<0,se=_?x:0,Y=Y-(g?b:0)-se|0,$=(Y|0)<0,se=($?0-Y|0:0)+(m-(g?b:0)-se)|0,c=(se|0)<0,a=c?0:se,se=c?se:0,c=($?0:Y)-se|0,se=(_?0:x)-($?Y:0)-se|0,Y=(c|0)<(se|0)?c:se,Y=(a|0)<(Y|0)?a:Y,Y=(Y|0)>0?Y:0,a=a-Y|0,c=c-Y|0;t:do switch(se-Y|0){case 0:switch(c|0){case 0:{a=(a|0)==0?0:(a|0)==1?1:7;break t}case 1:{a=(a|0)==0?2:(a|0)==1?3:7;break t}default:{V=36;break t}}case 1:switch(c|0){case 0:{a=(a|0)==0?4:(a|0)==1?5:7;break t}case 1:if(a){V=36;break t}else{a=6;break t}default:{V=36;break t}}default:V=36}while(!1);if((V|0)==36&&(V=0,a=7),a=de(a|0,0,d|0)|0,a=a|u,c=F()|0|f,(w|0)<=1)break e;_=l,x=C,b=o}else a=-1,o=s[L>>2]|0;while(!1);e:do if((o|0)<=2&&(s[K+8>>2]|0)<=2&&(s[K+12>>2]|0)<=2){if(u=Kf(K)|0,o=de(u|0,0,45)|0,a=o|a,o=F()|0|c&-1040385,g=zC(K)|0,!(lt(u)|0)){if((g|0)<=0)break;for(m=0;;){d=oe(a|0,o|0,52)|0,F()|0,d=d&15;t:do if(d)for(f=1;;){switch(l=(15-f|0)*3|0,c=oe(a|0,o|0,l|0)|0,F()|0,u=de(7,0,l|0)|0,a=a&~u,u=o&~(F()|0),c&7){case 1:{o=5;break}case 5:{o=4;break}case 4:{o=6;break}case 6:{o=2;break}case 2:{o=3;break}case 3:{o=1;break}default:o=c&7}if(o=de(o|0,0,l|0)|0,a=o|a,o=F()|0|u,f>>>0<d>>>0)f=f+1|0;else break t}while(!1);if(m=m+1|0,(m|0)==(g|0))break e}}d=oe(a|0,o|0,52)|0,F()|0,d=d&15;t:do if(d){c=1;r:for(;;){switch(Y=oe(a|0,o|0,(15-c|0)*3|0)|0,F()|0,Y&7){case 1:break r;case 0:break;default:break t}if(c>>>0<d>>>0)c=c+1|0;else break t}if(zf(u,s[K>>2]|0)|0)for(f=1;;){switch(c=(15-f|0)*3|0,u=de(7,0,c|0)|0,u=a&~u,l=o&~(F()|0),o=oe(a|0,o|0,c|0)|0,F()|0,o&7){case 1:{o=3;break}case 3:{o=2;break}case 2:{o=6;break}case 6:{o=4;break}case 4:{o=5;break}case 5:{o=1;break}default:o=o&7}if(a=de(o|0,0,c|0)|0,a=a|u,o=F()|0|l,f>>>0<d>>>0)f=f+1|0;else break t}else for(f=1;;){switch(l=(15-f|0)*3|0,c=oe(a|0,o|0,l|0)|0,F()|0,u=de(7,0,l|0)|0,a=a&~u,u=o&~(F()|0),c&7){case 1:{o=5;break}case 5:{o=4;break}case 4:{o=6;break}case 6:{o=2;break}case 2:{o=3;break}case 3:{o=1;break}default:o=c&7}if(o=de(o|0,0,l|0)|0,a=o|a,o=F()|0|u,f>>>0<d>>>0)f=f+1|0;else break t}}while(!1);if((g|0)>0){c=0;do a=L0(a,o)|0,o=F()|0,c=c+1|0;while((c|0)!=(g|0))}}else a=0,o=0;while(!1);return se=o,Y=a,Re(se|0),v=k,Y|0}function Tr(o){return o=o|0,(o|0)%2|0|0}function P0(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0;if(b=v,v=v+64|0,m=b+24|0,g=b+48|0,C=b,a>>>0>15)return C=4,v=b,C|0;if(f=+R[o>>3],R[ct>>3]=f,(s[ct+4>>2]&2146435072|0)==2146435072||(u=+R[o+8>>3],R[ct>>3]=u,(s[ct+4>>2]&2146435072|0)==2146435072))return C=3,v=b,C|0;l=+Ge(+f),_=l*+Ge(+u),l=l*+st(+u),u=+st(+f),R[C>>3]=_,R[C+8>>3]=l,R[C+16>>3]=u,R[ct>>3]=_;do if((s[ct+4>>2]&2146435072|0)!=2146435072&&(R[ct>>3]=u,o=s[ct+4>>2]|0,R[ct>>3]=l,!((s[ct+4>>2]&2146435072|0)==2146435072|!0&(o&2146435072|0)==2146435072)))if(s[m>>2]=s[C>>2],s[m+4>>
42]=s[C+4>>2],s[m+8>>2]=s[C+8>>2],s[m+12>>2]=s[C+12>>2],s[m+16>>2]=s[C+16>>2],s[m+20>>2]=s[C+20>>2],hT(m,a,g),g=xT(g,a)|0,C=F()|0,s[c>>2]=g,s[c+4>>2]=C,(g|0)==0&(C|0)==0)je(27634,27225,1073,27248);else{d=0;break}else d=2;while(!1);return C=d,v=b,C|0}function O0(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0;if(w=c+4|0,M=oe(o|0,a|0,52)|0,F()|0,M=M&15,x=oe(o|0,a|0,45)|0,F()|0,u=(M|0)==0,lt(x&127)|0){if(u)return M=1,M|0;u=1}else{if(u)return M=0,M|0;(s[w>>2]|0)==0&&(s[c+8>>2]|0)==0?u=(s[c+12>>2]|0)!=0&1:u=1}for(x=c+8|0,_=c+12|0,b=1,c=s[w>>2]|0,d=s[x>>2]|0,f=s[_>>2]|0;l=c*3|0,m=d*3|0,C=f*3|0,b&1?(g=d+l|0,s[w>>2]=g,f=f+m|0,s[x>>2]=f,l=C+c|0,s[_>>2]=l,c=f-g|0,d=l-g|0,(g|0)<0?(s[x>>2]=c,s[_>>2]=d,s[w>>2]=0,m=0,l=d):(c=f,m=g),d=m-c|0,f=l-c|0,(c|0)<0?(s[w>>2]=d,s[_>>2]=f,s[x>>2]=0,m=d,l=0):(f=l,l=c),c=m-f|0,d=l-f|0,(f|0)<0?(s[w>>2]=c,s[x>>2]=d,s[_>>2]=0,f=0):(d=l,c=m),l=(d|0)<(c|0)?d:c,l=(f|0)<(l|0)?f:l,(l|0)>0&&(f=f-l|0,d=d-l|0,c=c-l|0,s[w>>2]=c,s[x>>2]=d,s[_>>2]=f)):(g=m+c|0,m=f+l|0,s[w>>2]=m,s[x>>2]=g,l=C+d|0,s[_>>2]=l,c=g-m|0,f=l-m|0,(m|0)<0?(s[x>>2]=c,s[_>>2]=f,s[w>>2]=0,m=0,l=f):c=g,d=m-c|0,f=l-c|0,(c|0)<0?(s[w>>2]=d,s[_>>2]=f,s[x>>2]=0,m=d,l=0):(f=l,l=c),c=m-f|0,d=l-f|0,(f|0)<0?(s[w>>2]=c,s[x>>2]=d,s[_>>2]=0,f=0):(d=l,c=m),l=(d|0)<(c|0)?d:c,l=(f|0)<(l|0)?f:l,(l|0)>0&&(f=f-l|0,d=d-l|0,c=c-l|0,s[w>>2]=c,s[x>>2]=d,s[_>>2]=f)),l=oe(o|0,a|0,(15-b|0)*3|0)|0,F()|0,l=l&7,(l+-1|0)>>>0<6&&(g=s[22032+(l*12|0)+4>>2]|0,C=s[22032+(l*12|0)+8>>2]|0,m=(s[22032+(l*12|0)>>2]|0)+c|0,s[w>>2]=m,d=g+d|0,s[x>>2]=d,c=C+f|0,s[_>>2]=c,f=d-m|0,l=c-m|0,(m|0)<0&&(s[x>>2]=f,s[_>>2]=l,s[w>>2]=0,m=0,c=l,d=f),l=m-d|0,f=c-d|0,(d|0)<0?(s[w>>2]=l,s[_>>2]=f,s[x>>2]=0,m=l,d=0):f=c,c=m-f|0,l=d-f|0,(f|0)<0?(s[w>>2]=c,s[x>>2]=l,s[_>>2]=0,d=l,f=0):c=m,l=(d|0)<(c|0)?d:c,l=(f|0)<(l|0)?f:l,(l|0)>0&&(f=f-l|0,d=d-l|0,c=c-l|0,s[w>>2]=c,s[x>>2]=d,s[_>>2]=f)),b>>>0<M>>>0;)b=b+1|0;return u|0}function ys(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0;if(M=v,v=v+16|0,_=M,x=oe(o|0,a|0,45)|0,F()|0,x=x&127,x>>>0>121)return s[c>>2]=0,s[c+4>>2]=0,s[c+8>>2]=0,s[c+12>>2]=0,w=5,v=M,w|0;e:do if((lt(x)|0)!=0&&(m=oe(o|0,a|0,52)|0,F()|0,m=m&15,(m|0)!=0)){u=1;t:for(;;){switch(w=oe(o|0,a|0,(15-u|0)*3|0)|0,F()|0,w&7){case 5:break t;case 0:break;default:{C=a;break e}}if(u>>>0<m>>>0)u=u+1|0;else{C=a;break e}}for(d=1,u=a;;){switch(a=(15-d|0)*3|0,l=de(7,0,a|0)|0,l=o&~l,f=u&~(F()|0),u=oe(o|0,u|0,a|0)|0,F()|0,u&7){case 1:{u=3;break}case 3:{u=2;break}case 2:{u=6;break}case 6:{u=4;break}case 4:{u=5;break}case 5:{u=1;break}default:u=u&7}if(o=de(u|0,0,a|0)|0,o=o|l,u=F()|0|f,d>>>0<m>>>0)d=d+1|0;else{C=u;break e}}}else C=a;while(!1);if(w=7696+(x*28|0)|0,s[c>>2]=s[w>>2],s[c+4>>2]=s[w+4>>2],s[c+8>>2]=s[w+8>>2],s[c+12>>2]=s[w+12>>2],!(O0(o,C,c)|0))return w=0,v=M,w|0;if(w=c+4|0,s[_>>2]=s[w>>2],s[_+4>>2]=s[w+4>>2],s[_+8>>2]=s[w+8>>2],g=oe(o|0,C|0,52)|0,F()|0,b=g&15,g&1?(f=s[w>>2]|0,m=c+8|0,l=s[m>>2]|0,g=c+12|0,a=s[g>>2]|0,u=(l*3|0)+f|0,f=a+(f*3|0)|0,s[w>>2]=f,s[m>>2]=u,l=(a*3|0)+l|0,s[g>>2]=l,a=u-f|0,d=l-f|0,(f|0)<0&&(s[m>>2]=a,s[g>>2]=d,s[w>>2]=0,u=a,f=0,l=d),d=f-u|0,a=l-u|0,(u|0)<0?(s[w>>2]=d,s[g>>2]=a,s[m>>2]=0,u=0):(a=l,d=f),f=d-a|0,l=u-a|0,(a|0)<0?(s[w>>2]=f,s[m>>2]=l,s[g>>2]=0,a=0):(l=u,f=d),u=(l|0)<(f|0)?l:f,u=(a|0)<(u|0)?a:u,(u|0)>0&&(s[w>>2]=f-u,s[m>>2]=l-u,s[g>>2]=a-u),l=b+1|0):l=b,!(lt(x)|0))u=0;else{e:do if(!b)u=0;else for(a=1;;){if(u=oe(o|0,C|0,(15-a|0)*3|0)|0,F()|0,u=u&7,u|0)break e;if(a>>>0<b>>>0)a=a+1|0;else{u=0;break}}while(!1);u=(u|0)==4&1}if(!(Ts(c,l,u,0)|0))(l|0)!=(b|0)&&(s[w>>2]=s[_>>2],s[w+4>>2]=s[_+4>>2],s[w+8>>2]=s[_+8>>2]);else{if(lt(x)|0)do;while((Ts(c,l,0,0)|0)!=0);(l|0)!=(b|0)&&(m=c+12|0,o=s[m>>2]|0,u=(s[w>>2]|0)-o|0,d=c+8|0,o=(s[d>>2]|0)-o|0,a=zr(+((u<<1)+o|0)*.14285714285714285)|0,s[w>>2]=a,u=zr(+((o*3|0)-u|0)*.14285714285714285)|0,s[d>>2]=u,s[m>>2]=0,o=u-a|0,l=0-a|0,(a|0)<0?(s[d>>2]=o,s[m>>2]=l,s[w>>2]=0,u=o,a=0):l=0,f=a-u|0,o=l-u|0,(u|0)<0?(s[w>>2]=f,s[m>>2]=o,s[d>>2]=0,a=f,u=0):o=l,f=a-o|0,l=u-o|0,(o|0)<0?(s[w>>2]=f,s[d>>2]=l,s[m>>2]=0,a=f,o=0):l=u,u=(l|0)<(a|0)?l:a,u=(o|0)<(u|0)?o:u,(u|0)>0&&(s[w>>2]=a-u,s[d>>2]=l-u,s[m>>2]=o-u))}return w=0,v=M,w|0}function bs(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0;return d=v,v=v+48|0,u=d+24|0,l=d,f=ys(o,a,u)|0,f?(v=d,f|0):(f=oe(o|0,a|0,52)|0,F()|0,dT(u,f&15,l),g=+wi(+ +R[l+16>>3]),m=+zt(+ +R[l+8>>3],+ +R[l>>3]),R[c>>3]=g,R[c+8>>3]=m,f=0,v=d,f|0)}function Jn(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0;if(d=v,v=v+16|0,f=d,u=ys(o,a,f)|0,u|0)return f=u,v=d,f|0;u=oe(o|0,a|0,45)|0,F()|0,u=(lt(u&127)|0)==0,l=oe(o|0,a|0,52)|0,F()|0,l=l&15;e:do if(!u){if(l|0)for(u=1;;){if(m=de(7,0,(15-u|0)*3|0)|0,!((m&o|0)==0&((F()|0)&a|0)==0))break e;if(u>>>0<l>>>0)u=u+1|0;else break}return M0(f,l,0,5,c),m=0,v=d,m|0}while(!1);return S0(f,l,0,6,c),m=0,v=d,m|0}function IT(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0;if(l=oe(o|0,a|0,45)|0,F()|0,!(lt(l&127)|0))return l=2,s[c>>2]=l,0;if(l=oe(o|0,a|0,52)|0,F()|0,l=l&15,!l)return l=5,s[c>>2]=l,0;for(u=1;;){if(f=de(7,0,(15-u|0)*3|0)|0,!((f&o|0)==0&((F()|0)&a|0)==0)){u=2,o=6;break}if(u>>>0<l>>>0)u=u+1|0;else{u=5,o=6;break}}return(o|0)==6&&(s[c>>2]=u),0}function ih(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0;_=v,v=v+128|0,C=_+112|0,f=_+96|0,b=_,l=oe(o|0,a|0,52)|0,F()|0,m=l&15,s[C>>2]=m,d=oe(o|0,a|0,45)|0,F()|0,d=d&127;e:do if(lt(d)|0){if(m|0)for(u=1;;){if(g=de(7,0,(15-u|0)*3|0)|0,!((g&o|0)==0&((F()|0)&a|0)==0)){l=0;break e}if(u>>>0<m>>>0)u=u+1|0;else break}if(l&1)l=1;else return g=de(m+1|0,0,52)|0,b=F()|0|a&-15728641,C=de(7,0,(14-m|0)*3|0)|0,b=ih((g|o)&~C,b&~(F()|0),c)|0,v=_,b|0}else l=0;while(!1);if(u=ys(o,a,f)|0,!u){l?(eh(f,C,b),g=5):(th(f,C,b),g=6);e:do if(lt(d)|0)if(!m)o=5;else for(u=1;;){if(d=de(7,0,(15-u|0)*3|0)|0,!((d&o|0)==0&((F()|0)&a|0)==0)){o=2;break e}if(u>>>0<m>>>0)u=u+1|0;else{o=5;break}}else o=2;while(!1);Cn(c|0,-1,o<<2|0)|0;e:do if(l)for(f=0;;){if(d=b+(f<<4)|0,pT(d,s[C>>2]|0)|0,d=s[d>>2]|0,m=s[c>>2]|0,(m|0)==-1|(m|0)==(d|0))u=c;else{l=0;do{if(l=l+1|0,l>>>0>=o>>>0){u=1;break e}u=c+(l<<2)|0,m=s[u>>2]|0}while(!((m|0)==-1|(m|0)==(d|0)))}if(s[u>>2]=d,f=f+1|0,f>>>0>=g>>>0){u=0;break}}else for(f=0;;){if(d=b+(f<<4)|0,Ts(d,s[C>>2]|0,0,1)|0,d=s[d>>2]|0,m=s[c>>2]|0,(m|0)==-1|(m|0)==(d|0))u=c;else{l=0;do{if(l=l+1|0,l>>>0>=o>>>0){u=1;break e}u=c+(l<<2)|0,m=s[u>>2]|0}while(!((m|0)==-1|(m|0)==(d|0)))}if(s[u>>2]=d,f=f+1|0,f>>>0>=g>>>0){u=0;break}}while(!1)}return b=u,v=_,b|0}function wT(){return 12}function N0(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0;if(o>>>0>15)return m=4,m|0;if(de(o|0,0,52)|0,m=F()|0|134225919,!o){c=0,u=0;do lt(u)|0&&(de(u|0,0,45)|0,d=m|(F()|0),o=a+(c<<3)|0,s[o>>2]=-1,s[o+4>>2]=d,c=c+1|0),u=u+1|0;while((u|0)!=122);return c=0,c|0}c=0,d=0;do{if(lt(d)|0){for(de(d|0,0,45)|0,u=1,l=-1,f=m|(F()|0);
4g=de(7,0,(15-u|0)*3|0)|0,l=l&~g,f=f&~(F()|0),(u|0)!=(o|0);)u=u+1|0;g=a+(c<<3)|0,s[g>>2]=l,s[g+4>>2]=f,c=c+1|0}d=d+1|0}while((d|0)!=122);return c=0,c|0}function MT(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0;if(L=v,v=v+16|0,G=L,V=oe(o|0,a|0,52)|0,F()|0,V=V&15,c>>>0>15)return V=4,v=L,V|0;if((V|0)<(c|0))return V=12,v=L,V|0;if((V|0)!=(c|0))if(f=de(c|0,0,52)|0,f=f|o,m=F()|0|a&-15728641,(V|0)>(c|0)){g=c;do D=de(7,0,(14-g|0)*3|0)|0,g=g+1|0,f=D|f,m=F()|0|m;while((g|0)<(V|0));D=f}else D=f;else D=o,m=a;M=oe(D|0,m|0,45)|0,F()|0;e:do if(lt(M&127)|0){if(g=oe(D|0,m|0,52)|0,F()|0,g=g&15,g|0)for(f=1;;){if(M=de(7,0,(15-f|0)*3|0)|0,!((M&D|0)==0&((F()|0)&m|0)==0)){C=33;break e}if(f>>>0<g>>>0)f=f+1|0;else break}if(M=u,s[M>>2]=0,s[M+4>>2]=0,(V|0)>(c|0)){for(M=a&-15728641,w=V;;){if(x=w,w=w+-1|0,w>>>0>15|(V|0)<(w|0)){C=19;break}if((V|0)!=(w|0))if(f=de(w|0,0,52)|0,f=f|o,g=F()|0|M,(V|0)<(x|0))_=f;else{C=w;do _=de(7,0,(14-C|0)*3|0)|0,C=C+1|0,f=_|f,g=F()|0|g;while((C|0)<(V|0));_=f}else _=o,g=a;if(b=oe(_|0,g|0,45)|0,F()|0,!(lt(b&127)|0))f=0;else{b=oe(_|0,g|0,52)|0,F()|0,b=b&15;t:do if(!b)f=0;else for(C=1;;){if(f=oe(_|0,g|0,(15-C|0)*3|0)|0,F()|0,f=f&7,f|0)break t;if(C>>>0<b>>>0)C=C+1|0;else{f=0;break}}while(!1);f=(f|0)==0&1}if(g=oe(o|0,a|0,(15-x|0)*3|0)|0,F()|0,g=g&7,(g|0)==7){l=5,C=42;break}if(f=(f|0)!=0,(g|0)==1&f){l=5,C=42;break}if(_=g+(((g|0)!=0&f)<<31>>31)|0,_|0&&(C=V-x|0,C=mn(7,0,C,((C|0)<0)<<31>>31)|0,b=F()|0,f?(f=ft(C|0,b|0,5,0)|0,f=me(f|0,F()|0,-5,-1)|0,f=gn(f|0,F()|0,6,0)|0,f=me(f|0,F()|0,1,0)|0,g=F()|0):(f=C,g=b),x=_+-1|0,x=ft(C|0,b|0,x|0,((x|0)<0)<<31>>31|0)|0,x=me(f|0,g|0,x|0,F()|0)|0,_=F()|0,b=u,b=me(x|0,_|0,s[b>>2]|0,s[b+4>>2]|0)|0,_=F()|0,x=u,s[x>>2]=b,s[x+4>>2]=_),(w|0)<=(c|0)){C=37;break}}if((C|0)==19)je(27634,27225,1407,27259);else if((C|0)==37){d=u,l=s[d+4>>2]|0,d=s[d>>2]|0;break}else if((C|0)==42)return v=L,l|0}else l=0,d=0}else C=33;while(!1);e:do if((C|0)==33)if(M=u,s[M>>2]=0,s[M+4>>2]=0,(V|0)>(c|0)){for(f=V;;){if(l=oe(o|0,a|0,(15-f|0)*3|0)|0,F()|0,l=l&7,(l|0)==7){l=5;break}if(d=V-f|0,d=mn(7,0,d,((d|0)<0)<<31>>31)|0,l=ft(d|0,F()|0,l|0,0)|0,d=F()|0,M=u,d=me(s[M>>2]|0,s[M+4>>2]|0,l|0,d|0)|0,l=F()|0,M=u,s[M>>2]=d,s[M+4>>2]=l,f=f+-1|0,(f|0)<=(c|0))break e}return v=L,l|0}else l=0,d=0;while(!1);return vi(D,m,V,G)|0&&je(27634,27225,1367,27274),V=G,G=s[V+4>>2]|0,((l|0)>-1|(l|0)==-1&d>>>0>4294967295)&((G|0)>(l|0)|((G|0)==(l|0)?(s[V>>2]|0)>>>0>
4d>>>0:0))?(V=0,v=L,V|0):(je(27634,27225,1447,27259),0)}function ST(o,a,c,u,l,f){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0,f=f|0;var d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0;if(_=v,v=v+16|0,d=_,l>>>0>15)return f=4,v=_,f|0;if(m=oe(c|0,u|0,52)|0,F()|0,m=m&15,(m|0)>(l|0))return f=12,v=_,f|0;if(vi(c,u,l,d)|0&&je(27634,27225,1367,27274),b=d,C=s[b+4>>2]|0,!(((a|0)>-1|(a|0)==-1&o>>>0>4294967295)&((C|0)>(a|0)|((C|0)==(a|0)?(s[b>>2]|0)>>>0>o>>>0:0))))return f=2,v=_,f|0;b=l-m|0,l=de(l|0,0,52)|0,g=F()|0|u&-15728641,C=f,s[C>>2]=l|c,s[C+4>>2]=g,C=oe(c|0,u|0,45)|0,F()|0;e:do if(lt(C&127)|0){if(m|0)for(d=1;;){if(C=de(7,0,(15-d|0)*3|0)|0,!((C&c|0)==0&((F()|0)&u|0)==0))break e;if(d>>>0<m>>>0)d=d+1|0;else break}if((b|0)<1)return f=0,v=_,f|0;for(C=m^15,u=-1,g=1,d=1;;){m=b-g|0,m=mn(7,0,m,((m|0)<0)<<31>>31)|0,c=F()|0;do if(d)if(d=ft(m|0,c|0,5,0)|0,d=me(d|0,F()|0,-5,-1)|0,d=gn(d|0,F()|0,6,0)|0,l=F()|0,(a|0)>(l|0)|(a|0)==(l|0)&o>>>0>d>>>0){a=me(o|0,a|0,-1,-1)|0,a=Ft(a|0,F()|0,d|0,l|0)|0,d=F()|0,x=f,M=s[x>>2]|0,x=s[x+4>>2]|0,D=(C+u|0)*3|0,w=de(7,0,D|0)|0,x=x&~(F()|0),u=gn(a|0,d|0,m|0,c|0)|0,o=F()|0,l=me(u|0,o|0,2,0)|0,D=de(l|0,F()|0,D|0)|0,x=F()|0|x,l=f,s[l>>2]=D|M&~w,s[l+4>>2]=x,o=ft(u|0,o|0,m|0,c|0)|0,o=Ft(a|0,d|0,o|0,F()|0)|0,d=0,a=F()|0;break}else{D=f,w=s[D>>2]|0,D=s[D+4>>2]|0,M=de(7,0,(C+u|0)*3|0)|0,D=D&~(F()|0),d=f,s[d>>2]=w&~M,s[d+4>>2]=D,d=1;break}else w=f,l=s[w>>2]|0,w=s[w+4>>2]|0,u=(C+u|0)*3|0,x=de(7,0,u|0)|0,w=w&~(F()|0),D=gn(o|0,a|0,m|0,c|0)|0,d=F()|0,u=de(D|0,d|0,u|0)|0,w=F()|0|w,M=f,s[M>>2]=u|l&~x,s[M+4>>2]=w,d=ft(D|0,d|0,m|0,c|0)|0,o=Ft(o|0,a|0,d|0,F()|0)|0,d=0,a=F()|0;while(!1);if((b|0)>(g|0))u=~g,g=g+1|0;else{a=0;break}}return v=_,a|0}while(!1);if((b|0)<1)return D=0,v=_,D|0;for(l=m^15,d=1;;)if(M=b-d|0,M=mn(7,0,M,((M|0)<0)<<31>>31)|0,D=F()|0,g=f,c=s[g>>2]|0,g=s[g+4>>2]|0,m=(l-d|0)*3|0,u=de(7,0,m|0)|0,g=g&~(F()|0),x=gn(o|0,a|0,M|0,D|0)|0,w=F()|0,m=de(x|0,w|0,m|0)|0,g=F()|0|g,C=f,s[C>>2]=m|c&~u,s[C+4>>2]=g,D=ft(x|0,w|0,M|0,D|0)|0,o=Ft(o|0,a|0,D|0,F()|0)|0,a=F()|0,(b|0)<=(d|0)){a=0;break}else d=d+1|0;return v=_,a|0}function G0(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0;l=oe(a|0,c|0,52)|0,F()|0,l=l&15,(a|0)==0&(c|0)==0|((u|0)>15|(l|0)>(u|0))?(f=-1,a=-1,c=0,l=0):(a=nh(a,c,l+1|0,u)|0,d=(F()|0)&-15728641,c=de(u|0,0,52)|0,c=a|c,d=d|(F()|0),a=(ot(c,d)|0)==0,f=l,a=a?-1:u,l=d),d=o,s[d>>2]=c,s[d+4>>2]=l,s[o+8>>2]=f,s[o+12>>2]=a}function oh(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0;if(l=oe(o|0,a|0,52)|0,F()|0,l=l&15,f=u+8|0,s[f>>2]=l,(o|0)==0&(a|0)==0|((c|0)>15|(l|0)>(c|0))){c=u,s[c>>2]=0,s[c+4>>2]=0,s[f>>2]=-1,s[u+12>>2]=-1;return}if(o=nh(o,a,l+1|0,c)|0,f=(F()|0)&-15728641,l=de(c|0,0,52)|0,l=o|l,f=f|(F()|0),o=u,s[o>>2]=l,s[o+4>>2]=f,o=u+12|0,ot(l,f)|0){s[o>>2]=c;return}else{s[o>>2]=-1;return}}function U0(o){o=o|0;var a=0,c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0;if(c=o,a=s[c>>2]|0,c=s[c+4>>2]|0,!((a|0)==0&(c|0)==0)&&(u=oe(a|0,c|0,52)|0,F()|0,u=u&15,m=de(1,0,(u^15)*3|0)|0,a=me(m|0,F()|0,a|0,c|0)|0,c=F()|0,m=o,s[m>>2]=a,s[m+4>>2]=c,m=o+8|0,d=s[m>>2]|0,!((u|0)<(d|0)))){for(g=o+12|0,f=u;;){if((f|0)==(d|0)){u=5;break}if(C=(f|0)==(s[g>>2]|0),l=(15-f|0)*3|0,u=oe(a|0,c|0,l|0)|0,F()|0,u=u&7,C&((u|0)==1&!0)){u=7;break}if(!((u|0)==7&!0)){u=10;break}if(C=de(1,0,l|0)|0,a=me(a|0,c|0,C|0,F()|0)|0,c=F()|0,C=o,s[C>>2]=a,s[C+4>>2]=c,(f|0)>(d|0))f=f+-1|0;else{u=10;break}}if((u|0)==5){C=o,s[C>>2]=0,s[C+4>>2]=0,s[m>>2]=-1,s[g>>2]=-1;return}else if((u|0)==7){d=de(1,0,l|0)|0,d=me(a|0,c|0,d|0,F()|0)|0,m=F()|0,C=o,s[C>>2]=d,s[C+4>>2]=m,s[g>>2]=f+-1;return}else if((u|0)==10)return}}function Fi(o){o=+o;var a=0;return a=o<0?o+6.283185307179586:o,+(o>=6.283185307179586?a+-6.283185307179586:a)}function fr(o,a){switch(o=+o,a=a|0,a|0){case 1:{o=o<0?o+6.283185307179586:o;break}case 2:{o=o>0?o+-6.283185307179586:o;break}default:}return+o}function vT(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0;return l=+R[a>>3],u=+R[o>>3],f=+st(+((l-u)*.5)),c=+st(+((+R[a+8>>3]-+R[o+8>>3])*.5)),c=f*f+c*(+Ge(+l)*+Ge(+u)*c),+(+zt(+ +mt(+c),+ +mt(+(1-c)))*2)}function Ri(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0;return l=+R[a>>3],u=+R[o>>3],f=+st(+((l-u)*.5)),c=+st(+((+R[a+8>>3]-+R[o+8>>3])*.5)),c=f*f+c*(+Ge(+l)*+Ge(+u)*c),+(+zt(+ +mt(+c),+ +mt(+(1-c)))*2*6371.007180918475)}function FT(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0;return l=+R[a>>3],u=+R[o>>3],f=+st(+((l-u)*.5)),c=+st(+((+R[a+8>>3]-+R[o+8>>3])*.5)),c=f*f+c*(+Ge(+l)*+Ge(+u)*c),+(+zt(+ +mt(+c),+ +mt(+(1-c)))*2*6371.007180918475*1e3)}function Ah(o,a){return o=o|0,a=a|0,o>>>0>15?(a=4,a|0):(R[a>>3]=+R[20624+(o<<3)>
4>3],a=0,a|0)}function RT(o,a){return o=o|0,a=a|0,o>>>0>15?(a=4,a|0):(R[a>>3]=+R[20752+(o<<3)>>3],a=0,a|0)}function LT(o,a){return o=o|0,a=a|0,o>>>0>15?(a=4,a|0):(R[a>>3]=+R[20880+(o<<3)>>3],a=0,a|0)}function DT(o,a){return o=o|0,a=a|0,o>>>0>15?(a=4,a|0):(R[a>>3]=+R[21008+(o<<3)>>3],a=0,a|0)}function vo(o,a){o=o|0,a=a|0;var c=0;return o>>>0>15?(a=4,a|0):(c=mn(7,0,o,((o|0)<0)<<31>>31)|0,c=ft(c|0,F()|0,120,0)|0,o=F()|0,s[a>>2]=c|2,s[a+4>>2]=o,a=0,a|0)}function PT(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0;if(m=v,v=v+176|0,d=m,o=Mi(o,a,d)|0,o|0)return d=o,v=m,d|0;if(R[c>>3]=0,o=s[d>>2]|0,(o|0)<=1)return d=0,v=m,d|0;a=o+-1|0,o=0,u=+R[d+8>>3],l=+R[d+16>>3],f=0;do o=o+1|0,C=u,u=+R[d+8+(o<<4)>>3],b=+st(+((u-C)*.5)),g=l,l=+R[d+8+(o<<4)+8>>3],g=+st(+((l-g)*.5)),g=b*b+g*(+Ge(+u)*+Ge(+C)*g),f=f+ +zt(+ +mt(+g),+ +mt(+(1-g)))*2;while((o|0)<(a|0));return R[c>>3]=f,d=0,v=m,d|0}function OT(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0;if(m=v,v=v+176|0,d=m,o=Mi(o,a,d)|0,o|0)return d=o,f=+R[c>>3],f=f*6371.007180918475,R[c>>3]=f,v=m,d|0;if(R[c>>3]=0,o=s[d>>2]|0,(o|0)<=1)return d=0,f=0,f=f*6371.007180918475,R[c>>3]=f,v=m,d|0;a=o+-1|0,o=0,u=+R[d+8>>3],l=+R[d+16>>3],f=0;do o=o+1|0,C=u,u=+R[d+8+(o<<4)>>3],b=+st(+((u-C)*.5)),g=l,l=+R[d+8+(o<<4)+8>>3],g=+st(+((l-g)*.5)),g=b*b+g*(+Ge(+C)*+Ge(+u)*g),f=f+ +zt(+ +mt(+g),+ +mt(+(1-g)))*2;while((o|0)!=(a|0));return R[c>>3]=f,d=0,b=f,b=b*6371.007180918475,R[c>>3]=b,v=m,d|0}function NT(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0;if(m=v,v=v+176|0,d=m,o=Mi(o,a,d)|0,o|0)return d=o,f=+R[c>>3],f=f*6371.007180918475,f=f*1e3,R[c>>3]=f,v=m,d|0;if(R[c>>3]=0,o=s[d>>2]|0,(o|0)<=1)return d=0,f=0,f=f*6371.007180918475,f=f*1e3,R[c>>3]=f,v=m,d|0;a=o+-1|0,o=0,u=+R[d+8>>3],l=+R[d+16>>3],f=0;do o=o+1|0,C=u,u=+R[d+8+(o<<4)>>3],b=+st(+((u-C)*.5)),g=l,l=+R[d+8+(o<<4)+8>>3],g=+st(+((l-g)*.5)),g=b*b+g*(+Ge(+C)*+Ge(+u)*g),f=f+ +zt(+ +mt(+g),+ +mt(+(1-g)))*2;while((o|0)!=(a|0));return R[c>>3]=f,d=0,b=f,b=b*6371.007180918475,b=b*1e3,R[c>>3]=b,v=m,d|0}function GT(o){o=o|0;var a=0,c=0,u=0,l=0,f=0,d=0,m=0;if(o)for(f=o+4|0,d=o+8|0,u=1,l=o;;){if(a=s[l>>2]|0,a|0)do{if(c=s[a>>2]|0,c|0)do m=c,c=s[c+16>>2]|0,Ce(m);while((c|0)!=0);m=a,a=s[a+8>>2]|0,Ce(m)}while((a|0)!=0);if(a=l,l=s[l+8>>2]|0,u?(s[o>>2]=0,s[f>>2]=0,s[d>>2]=0):Ce(a),l)u=0;else break}}function UT(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0;if(s[a>>2]=0,G=a+4|0,s[G>>2]=0,V=a+8|0,s[V>>2]=0,D=s[o>>2]|0,(D|0)<=0)return a=0,a|0;M=o+4|0,o=a,w=0;e:for(;;){if(w){if(c=Xt(1,12)|0,!c){c=5;break}s[o+8>>2]=c,o=c}if(g=s[M>>2]|0,C=Xt(1,12)|0,!C){o=13,c=37;break}if(x=o+4|0,u=s[x>>2]|0,s[((u|0)==0?o:u+8|0)>>2]=C,s[x>>2]=C,u=s[g+(w<<4)>>2]|0,(u|0)<3){o=1,c=37;break}l=g+(w<<4)+4|0,f=C+4|0,c=0,d=0;do{if(m=d,d=ut(24)|0,!d){o=13,c=37;break e}z0(d|0,(s[l>>2]|0)+(c<<4)|0,16)|0,s[d+16>>2]=0,m?s[m+16>>2]=d:s[C>>2]=d,s[f>>2]=d,c=c+1|0}while((c|0)<(u|0));if(_=s[g+(w<<4)+8>>2]|0,(_|0)>0){b=g+(w<<4)+12|0,g=0;do{if(u=s[b>>2]|0,c=C,C=Xt(1,12)|0,!C){o=13,c=37;break e}if(s[c+8>>2]=C,s[x>>2]=C,m=s[u+(g<<3)>>2]|0,(m|0)<3){o=1,c=37;break e}u=u+(g<<3)+4|0,l=C+4|0,c=0,f=0;do{if(d=f,f=ut(24)|0,!f){o=13,c=37;break e}z0(f|0,(s[u>>2]|0)+(c<<4)|0,16)|0,s[f+16>>2]=0,d?s[d+16>>2]=f:s[C>>2]=f,s[l>>2]=f,c=c+1|0}while((c|0)<(m|0));g=g+1|0}while((g|0)<(_|0))}if(w=w+1|0,(w|0)>=(D|0)){o=0,c=50;break}}if((c|0)==5){if(!a)return a=13,a|0;for(u=1,l=a;;){if(o=s[l>>2]|0,o|0)do{if(c=s[o>>2]|0,c|0)do D=c,c=s[c+16>>2]|0,Ce(D);while((c|0)!=0);D=o,o=s[o+8>>2]|0,Ce(D)}while((o|0)!=0);if(o=l,l=s[l+8>>2]|0,u?(s[a>>2]=0,s[G>>2]=0,s[V>>2]=0):Ce(o),l)u=0;else{o=13;break}}return o|0}else if((c|0)==37){if(!a)return a=o,a|0;for(l=1,f=a;;){if(c=s[f>>2]|0,c|0)do{if(u=s[c>>2]|0,u|0)do D=u,u=s[u+16>>2]|0,Ce(D);while((u|0)!=0);D=c,c=s[c+8>>2]|0,Ce(D)}while((c|0)!=0);if(c=f,f=s[f+8>>2]|0,l?(s[a>>2]=0,s[G>>2]=0,s[V>>2]=0):Ce(c),f)l=0;else break}return o|0}else if((c|0)==50)return o|0;return 0}function Li(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0;if(V=v,v=v+16|0,G=V,b=oe(o|0,a|0,52)|0,F()|0,b=b&15,w=oe(c|0,u|0,52)|0,F()|0,(b|0)!=(w&15|0))return G=12,v=V,G|0;if(g=oe(o|0,a|0,45)|0,F()|0,g=g&127,C=oe(c|0,u|0,45)|0,F()|0,C=C&127,g>>>0>121|C>>>0>121)return G=5,v=V,G|0;if(w=(g|0)!=(C|0),w){if(d=x0(g,C)|0,(d|0)==7)return G=1,v=V,G|0;m=x0(C,g)|0,(m|0)==7?je(27291,27315,164,27325):(D=d,f=m)}else D=0,f=0;_=lt(g)|0,x=lt(C)|0,s[G>>2]=0,s[G+4>>2]=0,s[G+8>>2]=0,s[G+12>>2]=0;do if(D){C=s[4272+(g*28|0)+(D<<2)>>2]|0,d=(C|0)>0;e:do if(x)if(d)for(g=0,m=c,d=u;;){switch(m=_T(m,d)|0,d=F()|0,f|0){case 5:case 1:{f=3;break}case 3:{f=2;break}case 2:{f=6;break}case 6:{f=4;break}case 4:{f=5;break}default:}if(g=g+1|0,(g|0)==(C|0)){C=f,g=m,m=d;break e}}else C=f,g=c,m=u;else if(d)for(g=0,m=c,d=u;;){switch(m=D0(m,d)|0,d=F()|0,f|0){case 1:{f=3;break}case 3:{f=2;break}case 2:{f=6;break}case 6:{f=4;break}case 4:{f=5;break}case 5:{f=1;break}default:}if(g=g+1|0,(g|0)==(C|0)){C=f,g=m,m=d;break e}}else C=f,g=c,m=u;while(!1);if(O0(g,m,G)|0,w||je(27340,27315,194,27325),d=(_|0)!=0,f=(x|0)!=0,d&f&&je(27367,27315,195,27325),d){if(f=nr(o,a)|0,(f|0)==7){f=5;break}if(te[21968+(f*7|0)+D>>0]|0){f=1;break}x=s[21136+(f*28|0)+(D<<2)>>2]|0,w=x}else if(f){if(f=nr(g,m)|0,(f|0)==7){f=5;break}if(te[21968+(f*7|0)+C>>0]|0){f=1;break}w=0,x=s[21136+(C*28|0)+(f<<2)>>2]|0}else w=0,x=0;if((w|x|0)>=0){if((x|0)>0){c=G+4|0,u=G+8|0,_=G+12|0,C=0,m=s[c>>2]|0,d=s[u>>2]|0,f=s[_>>2]|0;do M=d+m|0,a=(M|0)<0,L=a?M:0,d=f+d-L|0,o=(d|0)<0,g=o?d:0,m=f+m-L-g|0,L=(m|0)<0,f=L?0:m,m=L?m:0,d=(o?0:d)-m|0,m=(a?0:M)-g-m|0,g=(d|0)<(m|0)?d:m,g=(f|0)<(g|0)?f:g,(g|0)>0&&(m=m-g|0,d=d-g|0,f=f-g|0),C=C+1|0;while((C|0)!=(x|0));s[c>>2]=m,s[u>>2]=d,s[_>>2]=f}if((D+-1|0)>>>0<6?(f=s[22032+(D*12|0)>>2]|0,m=s[22032+(D*12|0)+4>>2]|0,L=s[22032+(D*12|0)+8>>2]|0,d=(m|0)<(f|0)?m:f,d=(L|0)<(d|0)?L:d,d=(d|0)>0?d:0,f=f-d|0,m=m-d|0,d=L-d|0):(f=0,m=0,d=0),b)for(;;)if(g=f*3|0,C=m*3|0,c=d*3|0,Tr(b)|0?(a=g+m|0,o=(a|0)<0,L=C+d-(o?a:0)|0,M=(L|0)<0,m=f+c-(o?a:0)-(M?L:0)|0,d=(m|0)<0,D=d?0:m,g=(M?0:L)-(d?m:0)|0,m=(o?0:a)-(M?L:0)-(d?m:0)|0,d=(g|0)<(m|0)?g:m,d=(D|0)<(d|0)?D:d,L=(d|0)>0,f=L?d:0,g=g-(L?d:0)|0,d=D-(L?d:0)|0):(M=g+d|0,a=(M|0)<0,L=C+f-(a?M:0)|0,f=(L|0)<0,m=c+m-(a?M:0)-(f?L:0)|0,d=(m|0)<0,D=d?0:m,g=(f?0:L)-(d?m:0)|0,m=(a?0:M)-(f?L:0)-(d?m:0)|0,d=(g|0)<(m|0)?g:m,d=(D|0)<(d|0)?D:d,L=(d|0)>0,f=L?d:0,g=g-(L?d:0)|0,d=D-(L?d:0)|0),f=m-f|0,(b|0)>1)b=b+-1|0,m=g;else{m=g;break}if((w|0)>0){g=0;do a=f+m|0,o=(a|0)<0,L=m+d-(o?a:0)|0,M=(L|0)<0,D=f+d-(o?a:0)-(M?L:0)|0,f=(D|0)<0,d=f?0:D,m=(M?0:L)-(f?D:0)|0,D=(o?0:a)-(M?L:0)-(f?D:0)|0,f=(m|0)<(D|0)?m:D,f=(d|0)<(f|0)?d:f,L=(f|0)>0,d=d-(L?f:0)|0,m=m-(L?f:0)|0,f=D-(L?f:0)|0,g=g+1|0;while((g|0)!=(w|0))}c=G+4|0,b=G+8|0,D=s[b>>2]|0,u=G+12|0,L=s[u>>2]|0,g=(s[c>>2]|0)+f|0,s[c>>2]=g,m=D+m|0,s[b>>2]=m,f=L+d|0,s[u>>2]=f,d=m-g|0,(g|0)<0?(f=f-g|0,s[b>>2]=d,s[u>>2]=f,s[c>>2]=0,m=0):(d=m,m=g),(d|0)<0&&(m=m-d|0,s[c>>2]=m,f=f-d|0,s[u>>2]=f,s[b>>2]=0,d=0),C=m-f|0,g=d-f|0,(f|0)<0?(s[c>>2]=C,s[b>>2]=g,s[u>>2]=0,m=C,f=0):g=d,d=(g|0)<(m|0)?g:m,d=(f|0)<(d|0)?f:d,(d|0)>0&&(s[c>>2]=m-d,s[b>>2]=g-d,s[u>>2]=f-d),M=77}else f=5}else if(O0(c,u,G)|0,(_|0)!=0&(x|0)!=0)if((C|0)!=(g|0)&&je(27398,27315,264,27325),d=nr(o,a)|0,f=nr(c,u)|0,(d|0)==7|(f|0)==7)f=5;else if(te[21968+(d*7|0)+f>>0]|0)f=1;else if(c=s[21136+(d*28|0)+(f<<2)>>2]|0,(c|0)>0){b=G+4|0,u=G+8|0,_=G+12|0,C=0,m=s[b>>2]|0,d=s[u>>2]|0,f=s[_>>2]|0;do D=d+m|0,M=(D|0)<0,o=M?D:0,d=f+d-o|0,a=(d|0)<0,g=a?d:0,m=f+m-o-g|0,o=(m|0)<0,f=o?0:m,m=o?m:0,d=(a?0:d)-m|0,m=(M?0:D)-g-m|0,g=(d|0)<(m|0)?d:m,g=(f|0)<(g|0)?f:g,(g|0)>0&&(m=m-g|0,d=d-g|0,f=f-g|0),C=C+1|0;while((C|0)!=(c|0));s[b>>2]=m,s[u>>2]=d,s[_>>2]=f,M=77}else M=77;else M=77;while(!1);return(M|0)==77&&(f=G+4|0,s[l>>2]=s[f>>2],s[l+4>>2]=s[f+4>>2],s[l+8>>2]=s[f+8>>2],f=0),L=f,v=V,L|0}function ah(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0,J=0;if(f=oe(o|0,a|0,52)|0,F()|0,f=f&15,k=oe(o|0,a|0,45)|0,F()|0,k=k&127,k>>>0>121)return u=5,u|0;if(G=lt(k)|0,de(f|0,0,52)|0,m=F()|0|134225919,d=u,s[d>>2]=-1,s[d+4>>2]=m,d=s[c>>2]|0,m=s[c+4>>2]|0,c=s[c+8>>2]|0,!f){a=(d|0)<0,V=a?d:0,K=m-V|0,G=(K|0)<0,V=(G?0-K|0:0)+(c-V)|0,c=(V|0)<0,l=c?0:V,V=c?V:0,c=(G?0:K)-V|0,V=(a?0:d)-(G?K:0)-V|0,K=(c|0)<(V|0)?c:V,K=(l|0)<(K|0)?l:K,K=(K|0)>0?K:0,l=l-K|0,c=c-K|0;e:do switch(V-K|0){case 0:switch(c|0){case 0:if(l){l=(l|0)==1?1:7,L=11;break e}else{l=0;break e}case 1:if(l){l=(l|0)==1?3:7,L=11;break e}else{l=2;break e}default:return u=1,u|0}case 1:switch(c|0){case 0:if(l){l=(l|0)==1?5:7,L=11;break e}else{l=4;break e}case 1:{if(l)l=1;else{l=6;break e}return l|0}default:return u=1,u|0}default:return u=1,u|0}while(!1);return(L|0)==11&&(l|0)==7||(l=_0(k,l)|0,(l|0)==127)?(u=1,u|0):(K=de(l|0,0,45)|0,k=F()|0,L=u,k=s[L+4>>2]&-1040385|k,s[u>>2]=s[L>>2]|K,s[u+4>>2]=k,u=0,u|0)}for(;;){if(D=f,f=f+-1|0,M=d-c|0,w=m-c|0,g=M>>>0>715827881|w>>>0>715827881,Tr(D)|0){if(g){if(b=(M|0)>0,_=2147483647-M|0,x=-2147483648-M|0,b?(_|0)<(M|0):(x|0)>(M|0)){l=1,L=107;break}if(J=M<<1,b?(2147483647-J|0)<(M|0):(-2147483648-J|0)>(M|0)){l=1,L=107;break}if((w|0)>0?(2147483647-w|0)<(w|0):(-2147483648-w|0)>(w|0)){l=1,L=107;break}if(g=M*3|0,C=w<<1,(b?(_|0)<(C|0):(x|0)>(C|0))||((M|0)>-1?(g|-2147483648|0)>=(w|0):(g^-2147483648|0)<(w|0))){l=1,L=107;break}}else g=M*3|0,C=w<<1;if(_=zr(+(g-w|0)*.14285714285714285)|0,b=zr(+(C+M|0)*.14285714285714285)|0,C=(b|0)<(_|0),g=C?_:b,C=C?b:_,(C|0)<0){if((C|0)==-2147483648||((g|0)>0?(2147483647-g|0)<(C|0):(-2147483648-g|0)>(C|0))){L=24;break}if((g|0)>-1?(g|-2147483648|0)>=(C|0):(g^-2147483648|0)<(C|0)){L=24;break}}x=(_|0)<0,w=b-(x?_:0)|0,se=(w|0)<0,$=(x?0-_|0:0)-(se?w:0)|0,M=($|0)<0,x=(x?0:_)-(se?w:0)-(M?$:0)|0,w=(se?0:w)-(M?$:0)|0,$=M?0:$,M=(w|0)<(x|0)?w:x,M=($|0)<(M|0)?$:M,se=(M|0)>0,x=x-(se?M:0)|0,w=w-(se?M:0)|0,M=$-(se?M:0)|0,se=(x*3|0)+w|0,$=(se|0)<0,J=(w*3|0)+M-($?se:0)|0,g=(J|0)<0,_=(M*3|0)+x-($?se:0)-(g?J:0)|0,b=(_|0)<0,Y=b?0:_,C=(g?0:J)-(b?_:0)|0,_=($?0:se)-(g?J:0)-(b?_:0)|0,b=(C|0)<(_|0)?C:_,b=(Y|0)<(b|0)?Y:b,J=(b|0)>0,g=J?b:0,C=C-(J?b:0)|0,b=Y-(J?b:0)|0}else{if(g){if(C=(M|0)>0,C?(2147483647-M|0)<(M|0):(-2147483648-M|0)>(M|0)){l=1,L=107;break}if(g=M<<1,b=(w|0)>0,b?(2147483647-w|0)<(w|0):(-2147483648-w|0)>(w|0)){l=1,L=107;break}if(x=w<<1,b?(2147483647-x|0)<(w|0):(-2147483648-x|0)>(w|0)){l=1,L=107;break}if(C?(2147483647-g|0)<(w|0):(-2147483648-g|0)>(w|0)){l=1,L=107;break}if(C=w*3|0,(w|0)>-1?(C|-2147483648|0)>
4=(M|0):(C^-2147483648|0)<(M|0)){l=1,L=107;break}}else g=M<<1,C=w*3|0;if(_=zr(+(g+w|0)*.14285714285714285)|0,b=zr(+(C-M|0)*.14285714285714285)|0,C=(b|0)<(_|0),g=C?_:b,C=C?b:_,(C|0)<0){if((C|0)==-2147483648||((g|0)>0?(2147483647-g|0)<(C|0):(-2147483648-g|0)>(C|0))){L=36;break}if((g|0)>-1?(g|-2147483648|0)>=(C|0):(g^-2147483648|0)<(C|0)){L=36;break}}x=(_|0)<0,w=b-(x?_:0)|0,Y=(w|0)<0,J=(x?0-_|0:0)-(Y?w:0)|0,M=(J|0)<0,x=(x?0:_)-(Y?w:0)-(M?J:0)|0,w=(Y?0:w)-(M?J:0)|0,J=M?0:J,M=(w|0)<(x|0)?w:x,M=(J|0)<(M|0)?J:M,Y=(M|0)>0,x=x-(Y?M:0)|0,w=w-(Y?M:0)|0,M=J-(Y?M:0)|0,Y=(x*3|0)+M|0,J=(Y|0)<0,$=(w*3|0)+x-(J?Y:0)|0,g=($|0)<0,_=(M*3|0)+w-(J?Y:0)-(g?$:0)|0,b=(_|0)<0,se=b?0:_,C=(g?0:$)-(b?_:0)|0,_=(J?0:Y)-(g?$:0)-(b?_:0)|0,b=(C|0)<(_|0)?C:_,b=(se|0)<(b|0)?se:b,$=(b|0)>0,g=$?b:0,C=C-($?b:0)|0,b=se-($?b:0)|0}g=d+(g-_)|0,Y=(g|0)<0,C=m-C-(Y?g:0)|0,_=(C|0)<0,$=c-b+(Y?0-g|0:0)+(_?0-C|0:0)|0,d=($|0)<0,b=d?0:$,J=(_?0:C)-(d?$:0)|0,$=(Y?0:g)-(_?C:0)-(d?$:0)|0,d=(J|0)<($|0)?J:$,d=(b|0)<(d|0)?b:d,c=(d|0)>0,$=$-(c?d:0)|0,C=u,_=s[C>>2]|0,C=s[C+4>>2]|0,m=(15-D|0)*3|0,g=de(7,0,m|0)|0,g=_&~g,C=C&~(F()|0),_=($|0)<0,Y=_?$:0,J=J-(c?d:0)-Y|0,se=(J|0)<0,Y=(se?0-J|0:0)+(b-(c?d:0)-Y)|0,d=(Y|0)<0,c=d?0:Y,Y=d?Y:0,d=(se?0:J)-Y|0,Y=(_?0:$)-(se?J:0)-Y|0,J=(d|0)<(Y|0)?d:Y,J=(c|0)<(J|0)?c:J,J=(J|0)>0?J:0,c=c-J|0,d=d-J|0;e:do switch(Y-J|0){case 0:switch(d|0){case 0:{c=(c|0)==0?0:(c|0)==1?1:7;break e}case 1:{c=(c|0)==0?2:(c|0)==1?3:7;break e}default:{L=45;break e}}case 1:switch(d|0){case 0:{c=(c|0)==0?4:(c|0)==1?5:7;break e}case 1:if(c){L=45;break e}else{c=6;break e}default:{L=45;break e}}default:L=45}while(!1);if((L|0)==45&&(L=0,c=7),se=de(c|0,0,m|0)|0,Y=F()|0|C,J=u,s[J>>2]=se|g,s[J+4>>2]=Y,(D|0)<=1){L=47;break}else d=x,m=w,c=M}if((L|0)==24)je(27634,27425,416,27447);else if((L|0)==36)je(27634,27425,464,27461);else if((L|0)==47){if((x|0)>1|(w|0)>1|(M|0)>1)return J=1,J|0;$=(x|0)<0,Y=$?x:0,J=w-Y|0,se=(J|0)<0,Y=(se?0-J|0:0)+(M-Y)|0,f=(Y|0)<0,c=f?0:Y,Y=f?Y:0,f=(se?0:J)-Y|0,Y=($?0:x)-(se?J:0)-Y|0,J=(f|0)<(Y|0)?f:Y,J=(c|0)<(J|0)?c:J,J=(J|0)>0?J:0,c=c-J|0,f=f-J|0;e:do switch(Y-J|0){case 0:switch(f|0){case 0:{f=(c|0)==0?0:(c|0)==1?1:7;break e}case 1:{f=(c|0)==0?2:(c|0)==1?3:7;break e}default:{L=55;break e}}case 1:switch(f|0){case 0:{f=(c|0)==0?4:(c|0)==1?5:7;break e}case 1:if(c){L=55;break e}else{f=6;break e}default:{L=55;break e}}default:L=55}while(!1);(L|0)==55&&(f=7),m=_0(k,f)|0,(m|0)==127?C=0:C=lt(m)|0;e:do if(f){if(G){if(c=nr(o,a)|0,(c|0)==7)return J=5,J|0;d=s[21344+(c*28|0)+(f<<2)>>2]|0;t:do if((d|0)>0)for(c=f,f=0;;){switch(c|0){case 1:{c=5;break}case 5:{c=4;break}case 4:{c=6;break}case 6:{c=2;break}case 2:{c=3;break}case 3:{c=1;break}default:}if(f=f+1|0,(f|0)==(d|0))break t}else c=f;while(!1);if((c|0)==1)return J=9,J|0;f=_0(k,c)|0,(f|0)==127&&je(27476,27315,415,27506),lt(f)|0?je(27521,27315,416,27506):(l=f,K=d,V=c)}else l=m,K=0,V=f;if(g=s[4272+(k*28|0)+(V<<2)>>2]|0,(g|0)<=-1&&je(27552,27315,423,27506),!C){if((K|0)<0)return J=5,J|0;if(K|0){d=u,c=0,f=s[d>>2]|0,d=s[d+4>>2]|0;do f=Vn(f,d)|0,d=F()|0,J=u,s[J>>2]=f,s[J+4>>2]=d,c=c+1|0;while((c|0)<(K|0))}if((g|0)<=0){L=104;break}for(d=u,c=0,f=s[d>>2]|0,d=s[d+4>>2]|0;;)if(f=Vn(f,d)|0,d=F()|0,J=u,s[J>>2]=f,s[J+4>>2]=d,c=c+1|0,(c|0)==(g|0)){L=104;break e}}if(m=x0(l,k)|0,(m|0)==7&&je(27291,27315,432,27506),c=u,f=s[c>>2]|0,c=s[c+4>>2]|0,(g|0)>0){d=0;do f=Vn(f,c)|0,c=F()|0,J=u,s[J>>2]=f,s[J+4>>2]=c,d=d+1|0;while((d|0)!=(g|0))}if(c=nr(f,c)|0,(c|0)==7&&je(27634,27315,444,27506),f=E0(l)|0,f=s[(f?21760:21552)+(m*28|0)+(c<<2)>>2]|0,(f|0)<0&&je(27634,27315,458,27506),!f)L=104;else{m=u,c=0,d=s[m>>2]|0,m=s[m+4>>2]|0;do d=L0(d,m)|0,m=F()|0,J=u,s[J>>2]=d,s[J+4>>2]=m,c=c+1|0;while((c|0)<(f|0));L=104}}else if((G|0)!=0&(C|0)!=0){if(l=nr(o,a)|0,c=u,c=nr(s[c>>2]|0,s[c+4>>2]|0)|0,(l|0)==7|(c|0)==7||(c=s[21344+(l*28|0)+(c<<2)>>2]|0,(c|0)<0))return J=5,J|0;if(!c)l=m,L=105;else{d=u,l=0,f=s[d>>2]|0,d=s[d+4>>2]|0;do f=Vn(f,d)|0,d=F()|0,J=u,s[J>>2]=f,s[J+4>>2]=d,l=l+1|0;while((l|0)<(c|0));l=m,L=104}}else l=m,L=104;while(!1);return(L|0)==104&&C&&(L=105),(L|0)==105&&(J=u,(nr(s[J>>2]|0,s[J+4>>2]|0)|0)==1)?(J=9,J|0):(Y=u,$=s[Y>>2]|0,Y=s[Y+4>>2]&-1040385,se=de(l|0,0,45)|0,Y=Y|(F()|0),J=u,s[J>>2]=$|se,s[J+4>>2]=Y,J=0,J|0)}else if((L|0)==107)return l|0;return 0}function kT(o,a,c,u,l,f){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0,f=f|0;var d=0,m=0;return m=v,v=v+16|0,d=m,l|0?(d=15,v=m,d|0):(o=Li(o,a,c,u,d)|0,o||(l=s[d+4>>2]|0,o=s[d+8>>2]|0,s[f>>2]=(s[d>>2]|0)-o,s[f+4>>2]=l-o,o=0),d=o,v=m,d|0)}function HT(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0;return _=v,v=v+16|0,b=_,u|0?(b=15,v=_,b|0):(m=s[c>>2]|0,d=s[c+4>>2]|0,s[b>>2]=m,g=b+4|0,s[g>>2]=d,C=b+8|0,s[C>>2]=0,c=(d|0)<(m|0),u=c?m:d,c=c?d:m,(c|0)<0?!((c|0)==-2147483648||((u|0)>0?(2147483647-u|0)<(c|0):(-2147483648-u|0)>(c|0)))&&!((u|0)>-1?(u|-2147483648|0)>=(c|0):(u^-2147483648|0)<(c|0))?f=5:u=1:f=5,(f|0)==5&&(u=d-m|0,f=0-m|
40,(m|0)<0?(s[g>>2]=u,s[C>>2]=f,s[b>>2]=0,m=0):(u=d,f=0),d=m-u|0,c=f-u|0,(u|0)<0?(s[b>>2]=d,s[C>>2]=c,s[g>>2]=0,m=d,u=0):c=f,d=m-c|0,f=u-c|0,(c|0)<0?(s[b>>2]=d,s[g>>2]=f,s[C>>2]=0,c=0):(f=u,d=m),u=(f|0)<(d|0)?f:d,u=(c|0)<(u|0)?c:u,(u|0)>0&&(s[b>>2]=d-u,s[g>>2]=f-u,s[C>>2]=c-u),u=ah(o,a,b,l)|0),b=u,v=_,b|0)}function k0(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0;return g=v,v=v+32|0,d=g+12|0,m=g,f=Li(o,a,o,a,d)|0,f|0?(m=f,v=g,m|0):(o=Li(o,a,c,u,m)|0,o|0?(m=o,v=g,m|0):(o=(s[d>>2]|0)-(s[m>>2]|0)|0,C=(o|0)<0,u=C?0-o|0:0,c=u+((s[d+4>>2]|0)-(s[m+4>>2]|0))|0,a=(c|0)<0,u=(s[d+8>>2]|0)-(s[m+8>>2]|0)+u+(a?0-c|0:0)|0,f=(u|0)<0,d=f?0:u,u=f?u:0,f=(a?0:c)-u|0,u=(C?0:o)-(a?c:0)-u|0,m=(f|0)<(u|0)?f:u,m=(d|0)<(m|0)?d:m,m=(m|0)>0?m:0,d=d-m|0,f=f-m|0,m=u-m|0,m=(m|0)>-1?m:0-m|0,f=(f|0)>-1?f:0-f|0,d=(d|0)>-1?d:0-d|0,d=(f|0)>(d|0)?f:d,d=(m|0)>(d|0)?m:d,m=l,s[m>>2]=d,s[m+4>>2]=((d|0)<0)<<31>>31,m=0,v=g,m|0))}function VT(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0;return d=v,v=v+16|0,f=d,o=k0(o,a,c,u,f)|0,o|0?(f=o,v=d,f|0):(c=f,c=me(s[c>>2]|0,s[c+4>>2]|0,1,0)|0,u=F()|0,f=l,s[f>>2]=c,s[f+4>>2]=u,f=0,v=d,f|0)}function JT(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0;return g=v,v=v+16|0,f=g,d=k0(o,a,c,u,f)|0,d|0?(l=d,v=g,l|0):(d=f,f=s[d>>2]|0,d=s[d+4>>2]|0,(f|0)==0&(d|0)==0?(s[l>>2]=o,s[l+4>>2]=a,l=0,v=g,l|0):(m=ch(o,a,c,u,f,d,l,0,0,1,0)|0,m?(l=(ch(c,u,o,a,f,d,l,f,d,-1,-1)|0)==0,l=l?0:m,v=g,l|0):(l=0,v=g,l|0)))}function ch(o,a,c,u,l,f,d,m,g,C,b){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0,f=f|0,d=d|0,m=m|0,g=g|0,C=C|0,b=b|0;var _=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0,J=0,ge=0,ne=0,ye=0,le=0;if(ye=v,v=v+48|0,_=ye+24|0,x=ye+12|0,ne=ye,s[_>>2]=0,s[_+4>>2]=0,s[_+8>>2]=0,s[x>>2]=0,s[x+4>>2]=0,s[x+8>>2]=0,Li(o,a,o,a,_)|0&&je(27634,27315,696,27575),Li(o,a,c,u,x)|0&&je(27634,27315,701,27575),D=_+8|0,u=s[D>>2]|0,c=u-(s[_>>2]|0)|0,s[_>>2]=c,ge=_+4|0,u=(s[ge>>2]|0)-u|0,s[ge>>2]=u,ge=u+c|0,_=0-ge|0,s[D>>2]=_,D=x+8|0,L=s[D>>2]|0,V=L-(s[x>>2]|0)|0,s[x>>2]=V,J=x+4|0,L=(s[J>>2]|0)-L|0,s[J>>2]=L,J=L+V|0,s[D>>2]=0-J,Y=1/(+(l>>>0)+4294967296*+(f|0)),$=Y*+(V-c|0),se=Y*+(L-u|0),Y=Y*+(ge-J|0),s[ne>>2]=c,J=ne+4|0,s[J>>2]=u,ge=ne+8|0,s[ge>>2]=_,(f|0)<0)return C=0,v=ye,C|0;for(k=+(c|0),K=+(u|0),G=+(_|0),V=0,L=0;;){if(M=+(V>>>0)+4294967296*+(L|0),le=$*M+k,w=se*M+K,M=Y*M+G,u=~~+Go(+le),_=~~+Go(+w),c=~~+Go(+M),le=+St(+(+(u|0)-le)),w=+St(+(+(_|0)-w)),M=+St(+(+(c|0)-M)),le>w&le>M?(x=c+_|0,u=0-x|0):(x=0-u|0,w>M&&(_=x-c|0)),s[J>>2]=_,s[ne>>2]=x,s[ge>>2]=0,c=u+_|0,(u|0)>0?(s[J>>2]=c,s[ge>>2]=u,s[ne>>2]=0,x=0):(c=_,u=0),(c|0)<0?(_=x-c|0,s[ne>>2]=_,u=u-c|0,s[ge>>2]=u,s[J>>2]=0,x=_-u|0,c=0-u|0,(u|0)<0?(s[ne>>2]=x,s[J>>2]=c,s[ge>>2]=0,D=c,u=0):(D=0,x=_)):D=c,c=(D|0)<(x|0)?D:x,c=(u|0)<(c|0)?u:c,(c|0)>0&&(s[ne>>2]=x-c,s[J>>2]=D-c,s[ge>>2]=u-c),c=ft(V|0,L|0,C|0,b|0)|0,c=me(c|0,F()|0,m|0,g|0)|0,F()|0,c=ah(o,a,ne,d+(c<<3)|0)|0,c|0){u=20;break}if(D=V,V=me(V|0,L|0,1,0)|0,x=L,L=F()|0,!((x|0)<(f|0)|(x|0)==(f|0)&D>>>0<l>>>0)){c=0,u=20;break}}return(u|0)==20?(v=ye,c|0):0}function mn(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0;if((c|0)==0&(u|0)==0)return l=0,f=1,Re(l|0),f|0;f=o,l=a,o=1,a=0;do d=(c&1|0)==0&!0,o=ft((d?1:f)|0,(d?0:l)|0,o|0,a|0)|0,a=F()|0,c=Eh(c|0,u|0,1)|0,u=F()|0,f=ft(f|0,l|0,f|0,l|0)|0,l=F()|0;while(!((c|0)==0&(u|0)==0));return Re(a|0),o|0}function H0(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0;m=v,v=v+16|0,f=m,d=oe(o|0,a|0,52)|0,F()|0,d=d&15;do if(d){if(l=bs(o,a,f)|0,!l){C=+R[f>>3],g=1/+Ge(+C),b=+R[26032+(d<<3)>>3],R[c>>3]=C+b,R[c+8>>3]=C-b,C=+R[f+8>>3],g=b*g,R[c+16>>3]=g+C,R[c+24>>3]=C-g;break}return d=l,v=m,d|0}else{if(l=oe(o|0,a|0,45)|0,F()|0,l=l&127,l>>>0>121)return d=5,v=m,d|0;f=22128+(l<<5)|0,s[c>>2]=s[f>>2],s[c+4>>2]=s[f+4>>2],s[c+8>>2]=s[f+8>>2],s[c+12>>2]=s[f+12>>2],s[c+16>>2]=s[f+16>>2],s[c+20>>2]=s[f+20>>2],s[c+24>>2]=s[f+24>>2],s[c+28>>2]=s[f+28>>2];break}while(!1);return nT(c,u?1.4:1.1),u=26160+(d<<3)|0,(s[u>>2]|0)==(o|0)&&(s[u+4>>2]|0)==(a|0)&&(R[c>>3]=1.5707963267948966),d=26288+(d<<3)|0,(s[d>>2]|0)==(o|0)&&(s[d+4>>2]|0)==(a|0)&&(R[c+8>>3]=-1.5707963267948966),+R[c>>3]!=1.5707963267948966&&+R[c+8>>3]!=-1.5707963267948966?(d=0,v=m,d|0):(R[c+16>>3]=3.141592653589793,R[c+24>>3]=-3.141592653589793,d=0,v=m,d|0)}function jT(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0;C=v,v=v+48|0,d=C+32|0,f=C+40|0,m=C,F0(d,0,0,0),g=s[d>>2]|0,d=s[d+4>>2]|0;do if(c>>>0<=15){if(l=Pi(u)|0,l|0){u=m,s[u>>2]=0,s[u+4>>2]=0,s[m+8>>2]=l,s[m+12>>2]=-1,u=m+16|0,g=m+29|0,s[u>>2]=0,s[u+4>>2]=0,s[u+8>>2]=0,te[u+12>>0]=0,te[g>>0]=te[f>>0]|0,te[g+1>>0]=te[f+1>>0]|0,te[g+2>>0]=te[f+2>>0]|0;break}if(l=Xt((s[a+8>>2]|0)+1|0,32)|0,l){V0(a,l),b=m,s[b>>2]=g,s[b+4>>2]=d,s[m+8>>2]=0,s[m+12>>2]=c,s[m+16>>2]=u,s[m+20>>2]=a,s[m+24>>2]=l,te[m+28>>0]=0,g=m+29|0,te[g>>0]=te[f>>0]|0,te[g+1>>0]=te[f+1>>0]|0,te[g+2>>0]=te[f+2>>0]|0;break}else{u=m,s[u>>2]=0,s[u+4>>2]=0,s[m+8>>2]=13,s[m+12>>2]=-1,u=m+16|0,g=m+29|0,s[u>>2]=0,s[u+4>>2]=0,s[u+8>>2]=0,te[u+12>>0]=0,te[g>>0]=te[f>>0]|0,te[g+1>>0]=te[f+1>>0]|0,te[g+2>>0]=te[f+2>>0]|0;break}}else g=m,s[g>>2]=0,s[g+4>>2]=0,s[m+8>>2]=4,s[m+12>>2]=-1,g=m+16|0,b=m+29|0,s[g>>2]=0,s[g+4>>2]=0,s[g+8>>2]=0,te[g+12>>0]=0,te[b>>0]=te[f>>0]|0,te[b+1>>0]=te[f+1>>0]|0,te[b+2>>0]=te[f+2>>0]|0;while(!1);Fo(m),s[o>>2]=s[m>>2],s[o+4>>2]=s[m+4>>2],s[o+8>>2]=s[m+8>>2],s[o+12>>2]=s[m+12>>2],s[o+16>>2]=s[m+16>>2],s[o+20>>2]=s[m+20>>2],s[o+24>>2]=s[m+24>>2],s[o+28>>2]=s[m+28>>2],v=C}function Fo(o){o=o|0;var a=0,c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0;if(k=v,v=v+336|0,w=k+168|0,M=k,u=o,c=s[u>>2]|0,u=s[u+4>>2]|0,(c|0)==0&(u|0)==0){v=k;return}if(a=o+28|0,te[a>>0]|0?(c=lh(c,u)|0,u=F()|0):te[a>>0]=1,K=o+20|0,!(s[s[K>>2]>>2]|0)){a=o+24|0,c=s[a>>2]|0,c|0&&Ce(c),L=o,s[L>>2]=0,s[L+4>>2]=0,s[o+8>>2]=0,s[K>>2]=0,s[o+12>>2]=-1,s[o+16>>2]=0,s[a>>2]=0,v=k;return}L=o+16|0,a=s[L>>2]|0,l=a&15;e:do if((c|0)==0&(u|0)==0)V=o+24|0;else{D=o+12|0,_=(l|0)==3,b=a&255,g=(l|1|0)==3,x=o+24|0,C=(l+-1|0)>>>
40<3,d=(l|2|0)==3,m=M+8|0;t:for(;;){if(f=oe(c|0,u|0,52)|0,F()|0,f=f&15,(f|0)==(s[D>>2]|0)){switch(b&15){case 0:case 2:case 3:{if(l=bs(c,u,w)|0,l|0){G=15;break t}if(J0(s[K>>2]|0,s[x>>2]|0,w)|0){G=19;break t}break}default:}if(g&&(l=s[(s[K>>2]|0)+4>>2]|0,s[w>>2]=s[l>>2],s[w+4>>2]=s[l+4>>2],s[w+8>>2]=s[l+8>>2],s[w+12>>2]=s[l+12>>2],Xf(26896,w)|0)){if(P0(s[(s[K>>2]|0)+4>>2]|0,f,M)|0){G=25;break}if(l=M,(s[l>>2]|0)==(c|0)&&(s[l+4>>2]|0)==(u|0)){G=29;break}}if(C){if(l=Jn(c,u,w)|0,l|0){G=32;break}if(H0(c,u,M,0)|0){G=36;break}if(d&&fh(s[K>>2]|0,s[x>>2]|0,w,M)|0){G=42;break}if(g&&hh(s[K>>2]|0,s[x>>2]|0,w,M)|0){G=42;break}}if(_){if(a=H0(c,u,w,1)|0,l=s[x>>2]|0,a|0){G=45;break}if(I0(l,w)|0){if(Wf(M,w),Yf(w,s[x>>2]|0)|0){G=53;break}if(J0(s[K>>2]|0,s[x>>2]|0,m)|0){G=53;break}if(hh(s[K>>2]|0,s[x>>2]|0,M,w)|0){G=53;break}}}}do if((f|0)<(s[D>>2]|0)){if(a=H0(c,u,w,1)|0,l=s[x>>2]|0,a|0){G=58;break t}if(!(I0(l,w)|0)){G=73;break}if(Yf(s[x>>2]|0,w)|0&&(Wf(M,w),fh(s[K>>2]|0,s[x>>2]|0,M,w)|0)){G=65;break t}if(c=sh(c,u,f+1|0,M)|0,c|0){G=67;break t}u=M,c=s[u>>2]|0,u=s[u+4>>2]|0}else G=73;while(!1);if((G|0)==73&&(G=0,c=lh(c,u)|0,u=F()|0),(c|0)==0&(u|0)==0){V=x;break e}}switch(G|0){case 15:{a=s[x>>2]|0,a|0&&Ce(a),G=o,s[G>>2]=0,s[G+4>>2]=0,s[K>>2]=0,s[D>>2]=-1,s[L>>2]=0,s[x>>2]=0,s[o+8>>2]=l,G=20;break}case 19:{s[o>>2]=c,s[o+4>>2]=u,G=20;break}case 25:{je(27634,27600,470,27611);break}case 29:{s[o>>2]=c,s[o+4>>2]=u,v=k;return}case 32:{a=s[x>>2]|0,a|0&&Ce(a),V=o,s[V>>2]=0,s[V+4>>2]=0,s[K>>2]=0,s[D>>2]=-1,s[L>>2]=0,s[x>>2]=0,s[o+8>>2]=l,v=k;return}case 36:{je(27634,27600,493,27611);break}case 42:{s[o>>2]=c,s[o+4>>2]=u,v=k;return}case 45:{l|0&&Ce(l),G=o,s[G>>2]=0,s[G+4>>2]=0,s[K>>2]=0,s[D>>2]=-1,s[L>>2]=0,s[x>>2]=0,s[o+8>>2]=a,G=55;break}case 53:{s[o>>2]=c,s[o+4>>2]=u,G=55;break}case 58:{l|0&&Ce(l),G=o,s[G>>2]=0,s[G+4>>2]=0,s[K>>2]=0,s[D>>2]=-1,s[L>>2]=0,s[x>>2]=0,s[o+8>>2]=a,G=71;break}case 65:{s[o>>2]=c,s[o+4>>2]=u,G=71;break}case 67:{a=s[x>>2]|0,a|0&&Ce(a),V=o,s[V>>2]=0,s[V+4>>2]=0,s[K>>2]=0,s[D>>2]=-1,s[L>>2]=0,s[x>>2]=0,s[o+8>>2]=c,v=k;return}}if((G|0)==20){v=k;return}else if((G|0)==55){v=k;return}else if((G|0)==71){v=k;return}}while(!1);a=s[V>>2]|0,a|0&&Ce(a),G=o,s[G>>2]=0,s[G+4>>2]=0,s[o+8>>2]=0,s[K>>2]=0,s[o+12>>2]=-1,s[L>>2]=0,s[V>>2]=0,v=k}function lh(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0;_=v,v=v+16|0,b=_,u=oe(o|0,a|0,52)|0,F()|0,u=u&15,c=oe(o|0,a|0,45)|0,F()|0;do if(u){for(;c=de(u+4095|0,0,52)|0,l=F()|0|a&-15728641,f=(15-u|0)*3|0,d=de(7,0,f|0)|0,m=F()|0,c=c|o|d,l=l|m,g=oe(o|0,a|0,f|0)|0,F()|0,g=g&7,u=u+-1|0,!(g>>>0<6);)if(u)a=l,o=c;else{C=4;break}if((C|0)==4){c=oe(c|0,l|0,45)|0,F()|0;break}return b=(g|0)==0&(ot(c,l)|0)!=0,b=de((b?2:1)+g|0,0,f|0)|0,C=F()|0|a&~m,b=b|o&~d,Re(C|0),v=_,b|0}while(!1);return c=c&127,c>>>0>120?(C=0,b=0,Re(C|0),v=_,b|0):(F0(b,0,c+1|0,0),C=s[b+4>>2]|0,b=s[b>>2]|0,Re(C|0),v=_,b|0)}function QT(o,a,c,u,l,f){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0,f=f|0;var d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0;G=v,v=v+160|0,_=G+80|0,m=G+64|0,x=G+112|0,D=G,jT(_,o,a,c),C=_,G0(m,s[C>>2]|0,s[C+4>>2]|0,a),C=m,g=s[C>>2]|0,C=s[C+4>>2]|0,d=s[_+8>>2]|0,w=x+4|0,s[w>>2]=s[_>>2],s[w+4>>2]=s[_+4>>2],s[w+8>>2]=s[_+8>>2],s[w+12>>2]=s[_+12>>2],s[w+16>>2]=s[_+16>>2],s[w+20>>2]=s[_+20>>2],s[w+24>>2]=s[_+24>>2],s[w+28>>2]=s[_+28>>2],w=D,s[w>>2]=g,s[w+4>>2]=C,w=D+8|0,s[w>>2]=d,o=D+12|0,a=x,c=o+36|0;do s[o>>2]=s[a>>2],o=o+4|0,a=a+4|0;while((o|0)<(c|0));if(x=D+48|0,s[x>>2]=s[m>>2],s[x+4>>2]=s[m+4>>2],s[x+8>>2]=s[m+8>>2],s[x+12>>2]=s[m+12>>2],(g|0)==0&(C|0)==0)return D=d,v=G,D|0;c=D+16|0,b=D+24|0,_=D+28|0,d=0,m=0,a=g,o=C;do{if(!((d|0)<(l|0)|(d|0)==(l|0)&m>>>0<u>>>0)){M=4;break}if(C=m,m=me(m|0,d|0,1,0)|0,d=F()|0,C=f+(C<<3)|0,s[C>>2]=a,s[C+4>>2]=o,U0(x),o=x,a=s[o>>2]|0,o=s[o+4>>2]|0,(a|0)==0&(o|0)==0){if(Fo(c),a=c,o=s[a>>2]|0,a=s[a+4>>2]|0,(o|0)==0&(a|0)==0){M=10;break}oh(o,a,s[_>>2]|0,x),o=x,a=s[o>>2]|0,o=s[o+4>>2]|0}C=D,s[C>>2]=a,s[C+4>>2]=o}while(!((a|0)==0&(o|0)==0));return(M|0)==4?(o=D+40|0,a=s[o>>2]|0,a|0&&Ce(a),M=D+16|0,s[M>>2]=0,s[M+4>>2]=0,s[b>>2]=0,s[D+36>>2]=0,s[_>>2]=-1,s[D+32>>2]=0,s[o>>2]=0,oh(0,0,0,x),s[D>>2]=0,s[D+4>>2]=0,s[w>>2]=0,D=14,v=G,D|0):((M|0)==10&&(s[D>>2]=0,s[D+4>>2]=0,s[w>>2]=s[b>>2]),D=s[w>>2]|0,v=G,D|0)}function KT(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0;if(_=v,v=v+48|0,g=_+32|0,m=_+40|0,C=_,!(s[o>>2]|0))return b=u,s[b>>2]=0,s[b+4>>2]=0,b=0,v=_,b|0;F0(g,0,0,0),d=g,l=s[d>>2]|0,d=s[d+4>>2]|0;do if(a>>>0>15)b=C,s[b>>2]=0,s[b+4>>2]=0,s[C+8>>2]=4,s[C+12>>2]=-1,b=C+16|0,c=C+29|0,s[b>>2]=0,s[b+4>>2]=0,s[b+8>>2]=0,te[b+12>>0]=0,te[c>>0]=te[m>>0]|0,te[c+1>>0]=te[m+1>>0]|0,te[c+2>>0]=te[m+2>>0]|0,c=4,b=9;else{if(c=Pi(c)|0,c|0){g=C,s[g>>2]=0,s[g+4>>2]=0,s[C+8>>2]=c,s[C+12>>2]=-1,g=C+16|0,b=C+29|0,s[g>>2]=0,s[g+4>>2]=0,s[g+8>>2]=0,te[g+12>>0]=0,te[b>>0]=te[m>>0]|0,te[b+1>>0]=te[m+1>>0]|0,te[b+2>>0]=te[m+2>>0]|0,b=9;break}if(c=Xt((s[o+8>>2]|0)+1|0,32)|0,!c){b=C,s[b>>2]=0,s[b+4>>2]=0,s[C+8>>2]=13,s[C+12>>2]=-1,b=C+16|0,c=C+29|0,s[b>>2]=0,s[b+4>>2]=0,s[b+8>>2]=0,te[b+12>>0]=0,te[c>>0]=te[m>>0]|0,te[c+1>>0]=te[m+1>>0]|0,te[c+2>>0]=te[m+2>>0]|0,c=13,b=9;break}V0(o,c),w=C,s[w>>2]=l,s[w+4>>2]=d,d=C+8|0,s[d>>2]=0,s[C+12>>2]=a,s[C+20>>2]=o,s[C+24>>2]=c,te[C+28>>0]=0,l=C+29|0,te[l>>0]=te[m>>0]|0,te[l+1>>0]=te[m+1>>0]|0,te[l+2>>0]=te[m+2>>0]|0,s[C+16>>2]=3,x=+eT(c),x=x*+ZC(c),f=+St(+ +R[c>>3]),f=x/+Ge(+ +No(+f,+ +St(+ +R[c+8>>3])))*6371.007180918475*6371.007180918475,l=C+12|0,c=s[l>>2]|0;e:do if((c|0)>0)do{if(Ah(c+-1|0,g)|0,!(f/+R[g>>3]>10))break e;w=s[l>>2]|0,c=w+-1|0,s[l>>2]=c}while((w|0)>1);while(!1);if(Fo(C),l=u,s[l>>2]=0,s[l+4>>2]=0,l=C,c=s[l>>
42]|0,l=s[l+4>>2]|0,!((c|0)==0&(l|0)==0))do vi(c,l,a,g)|0,m=g,o=u,m=me(s[o>>2]|0,s[o+4>>2]|0,s[m>>2]|0,s[m+4>>2]|0)|0,o=F()|0,w=u,s[w>>2]=m,s[w+4>>2]=o,Fo(C),w=C,c=s[w>>2]|0,l=s[w+4>>2]|0;while(!((c|0)==0&(l|0)==0));c=s[d>>2]|0}while(!1);return w=c,v=_,w|0}function Di(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0;if(!(Xf(a,c)|0)||(a=$C(a)|0,u=+R[c>>3],l=+R[c+8>>3],l=a&l<0?l+6.283185307179586:l,x=s[o>>2]|0,(x|0)<=0))return x=0,x|0;if(_=s[o+4>>2]|0,a){a=0,b=l,c=-1,o=0;e:for(;;){for(C=o;d=+R[_+(C<<4)>>3],l=+R[_+(C<<4)+8>>3],o=(c+2|0)%(x|0)|0,f=+R[_+(o<<4)>>3],m=+R[_+(o<<4)+8>>3],d>f?(g=d,d=m):(g=f,f=d,d=l,l=m),u=u==f|u==g?u+2220446049250313e-31:u,!!(u<f|u>g);)if(c=C+1|0,(c|0)>=(x|0)){c=22;break e}else o=C,C=c,c=o;if(m=d<0?d+6.283185307179586:d,d=l<0?l+6.283185307179586:l,b=m==b|d==b?b+-2220446049250313e-31:b,g=m+(d-m)*((u-f)/(g-f)),(g<0?g+6.283185307179586:g)>b&&(a=a^1),o=C+1|0,(o|0)>=(x|0)){c=22;break}else c=C}if((c|0)==22)return a|0}else{a=0,b=l,c=-1,o=0;e:for(;;){for(C=o;d=+R[_+(C<<4)>>3],l=+R[_+(C<<4)+8>>3],o=(c+2|0)%(x|0)|0,f=+R[_+(o<<4)>>3],m=+R[_+(o<<4)+8>>3],d>f?(g=d,d=m):(g=f,f=d,d=l,l=m),u=u==f|u==g?u+2220446049250313e-31:u,!!(u<f|u>g);)if(c=C+1|0,(c|0)>=(x|0)){c=22;break e}else o=C,C=c,c=o;if(b=d==b|l==b?b+-2220446049250313e-31:b,d+(l-d)*((u-f)/(g-f))>b&&(a=a^1),o=C+1|0,(o|0)>=(x|0)){c=22;break}else c=C}if((c|0)==22)return a|0}return 0}function uh(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0;if(M=s[o>>2]|0,!M){s[a>>2]=0,s[a+4>>2]=0,s[a+8>>2]=0,s[a+12>>2]=0,s[a+16>>2]=0,s[a+20>>2]=0,s[a+24>>2]=0,s[a+28>>2]=0;return}if(D=a+8|0,R[D>>3]=17976931348623157e292,G=a+24|0,R[G>>3]=17976931348623157e292,R[a>>3]=-17976931348623157e292,V=a+16|0,R[V>>3]=-17976931348623157e292,!((M|0)<=0)){for(x=s[o+4>>2]|0,C=17976931348623157e292,b=-17976931348623157e292,_=0,o=-1,f=17976931348623157e292,d=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292,w=0;c=+R[x+(w<<4)>>3],m=+R[x+(w<<4)+8>>3],o=o+2|0,l=+R[x+(((o|0)==(M|0)?0:o)<<4)+8>>3],c<f&&(R[D>>3]=c,f=c),m<d&&(R[G>>3]=m,d=m),c>g?R[a>>3]=c:c=g,m>u&&(R[V>>3]=m,u=m),C=m>0&m<C?m:C,b=m<0&m>b?m:b,_=_|+St(+(m-l))>3.141592653589793,o=w+1|0,(o|0)!=(M|0);)L=w,g=c,w=o,o=L;_&&(R[V>>3]=b,R[G>>3]=C)}}function Pi(o){return o=o|0,(o>>>0<4?0:15)|0}function V0(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0;
4if(M=s[o>>2]|0,M){if(D=a+8|0,R[D>>3]=17976931348623157e292,G=a+24|0,R[G>>3]=17976931348623157e292,R[a>>3]=-17976931348623157e292,V=a+16|0,R[V>>3]=-17976931348623157e292,(M|0)>0){for(l=s[o+4>>2]|0,x=17976931348623157e292,w=-17976931348623157e292,u=0,c=-1,g=17976931348623157e292,C=17976931348623157e292,_=-17976931348623157e292,d=-17976931348623157e292,L=0;f=+R[l+(L<<4)>>3],b=+R[l+(L<<4)+8>>3],se=c+2|0,m=+R[l+(((se|0)==(M|0)?0:se)<<4)+8>>3],f<g&&(R[D>>3]=f,g=f),b<C&&(R[G>>3]=b,C=b),f>_?R[a>>3]=f:f=_,b>d&&(R[V>>3]=b,d=b),x=b>0&b<x?b:x,w=b<0&b>w?b:w,u=u|+St(+(b-m))>3.141592653589793,c=L+1|0,(c|0)!=(M|0);)se=L,_=f,L=c,c=se;u&&(R[V>>3]=w,R[G>>3]=x)}}else s[a>>2]=0,s[a+4>>2]=0,s[a+8>>2]=0,s[a+12>>2]=0,s[a+16>>2]=0,s[a+20>>2]=0,s[a+24>>2]=0,s[a+28>>2]=0;if(se=o+8|0,c=s[se>>2]|0,!((c|0)<=0)){$=o+12|0,k=0;do if(l=s[$>>2]|0,u=k,k=k+1|0,G=a+(k<<5)|0,V=s[l+(u<<3)>>2]|0,V){if(L=a+(k<<5)+8|0,R[L>>3]=17976931348623157e292,o=a+(k<<5)+24|0,R[o>>3]=17976931348623157e292,R[G>>3]=-17976931348623157e292,K=a+(k<<5)+16|0,R[K>>3]=-17976931348623157e292,(V|0)>0){for(M=s[l+(u<<3)+4>>2]|0,x=17976931348623157e292,w=-17976931348623157e292,l=0,u=-1,D=0,g=17976931348623157e292,C=17976931348623157e292,b=-17976931348623157e292,d=-17976931348623157e292;f=+R[M+(D<<4)>>3],_=+R[M+(D<<4)+8>>3],u=u+2|0,m=+R[M+(((u|0)==(V|0)?0:u)<<4)+8>>3],f<g&&(R[L>>3]=f,g=f),_<C&&(R[o>>3]=_,C=_),f>b?R[G>>3]=f:f=b,_>d&&(R[K>>3]=_,d=_),x=_>0&_<x?_:x,w=_<0&_>w?_:w,l=l|+St(+(_-m))>3.141592653589793,u=D+1|0,(u|0)!=(V|0);)Y=D,D=u,b=f,u=Y;l&&(R[K>>3]=w,R[o>>3]=x)}}else s[G>>2]=0,s[G+4>>2]=0,s[G+8>>2]=0,s[G+12>>2]=0,s[G+16>>2]=0,s[G+20>>2]=0,s[G+24>>2]=0,s[G+28>>2]=0,c=s[se>>2]|0;while((k|0)<(c|0))}}function J0(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0;if(!(Di(o,a,c)|0))return l=0,l|0;if(l=o+8|0,(s[l>>2]|0)<=0)return l=1,l|0;for(u=o+12|0,o=0;;){if(f=o,o=o+1|0,Di((s[u>>2]|0)+(f<<3)|0,a+(o<<5)|0,c)|0){o=0,u=6;break}if((o|0)>=(s[l>>2]|0)){o=1,u=6;break}}return(u|0)==6?o|0:0}function fh(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0;if(C=v,v=v+16|0,m=C,d=c+8|0,!(Di(o,a,d)|0))return g=0,v=C,g|0;g=o+8|0;e:do if((s[g>>2]|0)>0){for(f=o+12|0,l=0;;){if(b=l,l=l+1|0,Di((s[f>>2]|0)+(b<<3)|0,a+(l<<5)|0,d)|0){l=0;break}if((l|0)>=(s[g>>2]|0))break e}return v=C,l|0}while(!1);if(Ro(o,a,c,u)|0)return b=0,v=C,b|0;s[m>>2]=s[c>>2],s[m+4>>2]=d,l=s[g>>2]|0;e:do if((l|0)>0)for(o=o+12|0,d=0,f=l;;){if(l=s[o>>2]|0,(s[l+(d<<3)>>2]|0)>0){if(Di(m,u,s[l+(d<<3)+4>>2]|0)|0){l=0;break e}if(l=d+1|0,Ro((s[o>>2]|0)+(d<<3)|0,a+(l<<5)|0,c,u)|0){l=0;break e}f=s[g>>2]|0}else l=d+1|0;if((l|0)<(f|0))d=l;else{l=1;break}}else l=1;while(!1);return b=l,v=C,b|0}function Ro(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0,se=0,Y=0,J=0;if(se=v,v=v+176|0,L=se+172|0,l=se+168|0,K=se,!(I0(a,u)|0))return o=0,v=se,o|0;if(tT(a,u,L,l),Dr(K|0,c|0,168)|0,(s[c>>2]|0)>0){a=0;do Y=K+8+(a<<4)+8|0,V=+fr(+R[Y>>3],s[l>>2]|0),R[Y>>3]=V,a=a+1|0;while((a|0)<(s[c>>2]|0))}D=+R[u>>3],G=+R[u+8>>3],V=+fr(+R[u+16>>3],s[l>>2]|0),w=+fr(+R[u+24>>3],s[l>>2]|0);e:do if((s[o>>2]|0)>0){if(u=o+4|0,l=s[K>>2]|0,(l|0)<=0){for(a=0;;)if(a=a+1|0,(a|0)>=(s[o>>2]|0)){a=0;break e}}for(c=0;;){if(a=s[u>>2]|0,x=+R[a+(c<<4)>>3],M=+fr(+R[a+(c<<4)+8>>3],s[L>>2]|0),a=s[u>>2]|0,c=c+1|0,Y=(c|0)%(s[o>>2]|0)|0,f=+R[a+(Y<<4)>>3],d=+fr(+R[a+(Y<<4)+8>>3],s[L>>2]|0),!(x>=D)|!(f>=D)&&!(x<=G)|!(f<=G)&&!(M<=w)|!(d<=w)&&!(M>=V)|!(d>=V)){_=f-x,C=d-M,a=0;do if(J=a,a=a+1|0,Y=(a|0)==(l|0)?0:a,f=+R[K+8+(J<<4)+8>>3],d=+R[K+8+(Y<<4)+8>>3]-f,m=+R[K+8+(J<<4)>>3],g=+R[K+8+(Y<<4)>>3]-m,b=_*d-C*g,b!=0&&(k=M-f,$=x-m,g=(k*g-d*$)/b,!(g<0|g>1))&&(b=(_*k-C*$)/b,b>=0&b<=1)){a=1;break e}while((a|0)<(l|0))}if((c|0)>=(s[o>>2]|0)){a=0;break}}}else a=0;while(!1);return J=a,v=se,J|0}function hh(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0;if(Ro(o,a,c,u)|0)return f=1,f|0;if(f=o+8|0,(s[f>>2]|0)<=0)return f=0,f|0;for(l=o+12|0,o=0;;){if(d=o,o=o+1|0,Ro((s[l>>2]|0)+(d<<3)|0,a+(o<<5)|0,c,u)|0){o=1,l=6;break}if((o|0)>=(s[f>>2]|0)){o=0,l=6;break}}return(l|0)==6?o|0:0}function zT(){return 8}function XT(){return 16}function YT(){return 168}function WT(){return 8}function qT(){return 16}function ZT(){return 12}function $T(){return 8}function ey(o){return o=o|0,+(+((s[o>>2]|0)>>>0)+4294967296*+(s[o+4>>2]|0))}function ty(o){o=o|0;var a=0,c=0;return c=+R[o>>3],a=+R[o+8>>3],+ +mt(+(c*c+a*a))}function dh(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0;C=+R[o>>3],g=+R[a>>3]-C,m=+R[o+8>>3],d=+R[a+8>>3]-m,_=+R[c>>3],f=+R[u>>3]-_,x=+R[c+8>>3],b=+R[u+8>>3]-x,f=(f*(m-x)-(C-_)*b)/(g*b-d*f),R[l>>3]=C+g*f,R[l+8>>3]=m+d*f}function ph(o,a){return o=o|0,a=a|0,+St(+(+R[o>>3]-+R[a>>3]))<11920928955078125e-23?(a=+St(+(+R[o+8>>3]-+R[a+8>>3]))<11920928955078125e-23,a|0):(a=0,a|0)}function ry(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0;if(f=v,v=v+16|0,l=f,u=ot(o,a)|0,(c+-1|0)>>>0>5||(u=(u|0)!=0,(c|0)==1&u))return l=-1,v=f,l|0;do if(Oi(o,a,l)|0)u=-1;else if(u){u=((s[26416+(c<<2)>>2]|0)+5-(s[l>>2]|0)|0)%5|0;break}else{u=((s[26448+(c<<2)>>2]|0)+6-(s[l>>2]|0)|0)%6|0;break}while(!1);return l=u,v=f,l|0}function Oi(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0;if(b=v,v=v+32|0,m=b+16|0,g=b,u=ys(o,a,m)|0,u|0)return c=u,v=b,c|0;f=rh(o,a)|0,C=nr(o,a)|0,XC(f,g),u=YC(f,s[m>>2]|0)|0;do if(lt(f)|0){do switch(f|0){case 4:{l=0;break}case 14:{l=1;break}case 24:{l=2;break}case 38:{l=3;break}case 49:{l=4;break}case 58:{l=5;break}case 63:{l=6;break}case 72:{l=7;break}case 83:{l=8;break}case 97:{l=9;break}case 107:{l=10;break}case 117:{l=11;break}default:je(27634,27636,75,27645)}while(!1);if(d=s[26480+(l*24|0)+8>>2]|0,a=s[26480+(l*24|0)+16>>2]|0,o=s[m>>2]|0,(o|0)!=(s[g>>2]|0)&&(g=E0(f)|0,o=s[m>>2]|0,g|(o|0)==(a|0)&&(u=(u+1|0)%6|0)),(C|0)==3&(o|0)==(a|0)){u=(u+5|0)%6|0;break}(C|0)==5&(o|0)==(d|0)&&(u=(u+1|0)%6|0)}while(!1);return s[c>>2]=u,c=0,v=b,c|0}function yr(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0;if(K=v,v=v+32|0,L=K+24|0,G=K+20|0,M=K+8|0,w=K+16|0,x=K,g=(ot(o,a)|0)==0,g=g?6:5,b=oe(o|0,a|0,52)|0,F()|0,b=b&15,g>>>0<=c>>>0)return u=2,v=K,u|0;_=(b|0)==0,!_&&(D=de(7,0,(b^15)*3|0)|0,(D&o|0)==0&((F()|0)&a|0)==0)?l=c:f=4;e:do if((f|0)==4){if(l=(ot(o,a)|0)!=0,((l?4:5)|0)<(c|0)||Oi(o,a,L)|0||(f=(s[L>>2]|0)+c|0,l?l=26768+(((f|0)%5|0)<<2)|0:l=26800+(((f|0)%6|0)<<2)|0,D=s[l>>2]|0,(D|0)==7))return u=1,v=K,u|0;s[G>>2]=0,l=vt(o,a,D,G,M)|0;do if(!l){if(m=M,C=s[m>>2]|0,m=s[m+4>>2]|0,d=m>>>0<a>>>0|(m|0)==(a|0)&C>>>0<o>>>0,f=d?C:o,d=d?m:a,!_&&(_=de(7,0,(b^15)*3|0)|0,(C&_|0)==0&(m&(F()|0)|0)==0))l=c;else{if(m=(c+-1+g|0)%(g|0)|0,l=ot(o,a)|0,(m|0)<0&&je(27634,27636,248,27661),g=(l|0)!=0,((g?4:5)|0)<(m|0)&&je(27634,27636,248,27661),Oi(o,a,L)|0&&je(27634,27636,248,27661),l=(s[L>>
42]|0)+m|0,g?l=26768+(((l|0)%5|0)<<2)|0:l=26800+(((l|0)%6|0)<<2)|0,m=s[l>>2]|0,(m|0)==7&&je(27634,27636,248,27661),s[w>>2]=0,l=vt(o,a,m,w,x)|0,l|0)break;C=x,g=s[C>>2]|0,C=s[C+4>>2]|0;do if(C>>>0<d>>>0|(C|0)==(d|0)&g>>>0<f>>>0){if(ot(g,C)|0?f=wo(g,C,o,a)|0:f=s[26864+((((s[w>>2]|0)+(s[26832+(m<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,l=ot(g,C)|0,(f+-1|0)>>>0>5){l=-1,f=g,d=C;break}if(l=(l|0)!=0,(f|0)==1&l){l=-1,f=g,d=C;break}do if(Oi(g,C,L)|0)l=-1;else if(l){l=((s[26416+(f<<2)>>2]|0)+5-(s[L>>2]|0)|0)%5|0;break}else{l=((s[26448+(f<<2)>>2]|0)+6-(s[L>>2]|0)|0)%6|0;break}while(!1);f=g,d=C}else l=c;while(!1);m=M,C=s[m>>2]|0,m=s[m+4>>2]|0}if((f|0)==(C|0)&(d|0)==(m|0)){if(g=(ot(C,m)|0)!=0,g?o=wo(C,m,o,a)|0:o=s[26864+((((s[G>>2]|0)+(s[26832+(D<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,l=ot(C,m)|0,(o+-1|0)>>>0<=5&&(V=(l|0)!=0,!((o|0)==1&V)))do if(Oi(C,m,L)|0)l=-1;else if(V){l=((s[26416+(o<<2)>>2]|0)+5-(s[L>>2]|0)|0)%5|0;break}else{l=((s[26448+(o<<2)>>2]|0)+6-(s[L>>2]|0)|0)%6|0;break}while(!1);else l=-1;l=l+1|0,l=(l|0)==6|g&(l|0)==5?0:l}a=d,o=f;break e}while(!1);return u=l,v=K,u|0}while(!1);return V=de(l|0,0,56)|0,L=F()|0|a&-2130706433|536870912,s[u>>2]=V|o,s[u+4>>2]=L,u=0,v=K,u|0}function ny(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0;return f=(ot(o,a)|0)==0,u=yr(o,a,0,c)|0,l=(u|0)==0,f?!l||(u=yr(o,a,1,c+8|0)|0,u|0)||(u=yr(o,a,2,c+16|0)|0,u|0)||(u=yr(o,a,3,c+24|0)|0,u|0)||(u=yr(o,a,4,c+32|0)|0,u)?(f=u,f|0):yr(o,a,5,c+40|0)|0:!l||(u=yr(o,a,1,c+8|0)|0,u|0)||(u=yr(o,a,2,c+16|0)|0,u|0)||(u=yr(o,a,3,c+24|0)|0,u|0)||(u=yr(o,a,4,c+32|0)|0,u|0)?(f=u,f|0):(f=c+40|0,s[f>>2]=0,s[f+4>>2]=0,f=0,f|0)}function sy(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0,g=0;return g=v,v=v+192|0,l=g,f=g+168|0,d=oe(o|0,a|0,56)|0,F()|0,d=d&7,m=a&-2130706433|134217728,u=ys(o,m,f)|0,u|0?(m=u,v=g,m|0):(a=oe(o|0,a|0,52)|0,F()|0,a=a&15,ot(o,m)|0?M0(f,a,d,1,l):S0(f,a,d,1,l),m=l+8|0,s[c>>2]=s[m>>2],s[c+4>>2]=s[m+4>>2],s[c+8>>2]=s[m+8>>2],s[c+12>>2]=s[m+12>>2],m=0,v=g,m|0)}function mh(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0;return l=v,v=v+16|0,c=l,!(!0&(a&2013265920|0)==536870912)||(u=a&-2130706433|134217728,!(So(o,u)|0))?(u=0,v=l,u|0):(f=oe(o|0,a|0,56)|0,F()|0,f=(yr(o,u,f&7,c)|0)==0,u=c,u=f&((s[u>>2]|0)==(o|0)?(s[u+4>>2]|0)==(a|0):0)&1,v=l,u|0)}function gh(){return 27680}function Lo(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0;_=v,v=v+208|0,g=_,C=_+192|0,d=rr(c,a)|0,m=C,s[m>>2]=1,s[m+4>>2]=0;e:do if(d|0){for(m=0-c|0,s[g+4>>2]=c,s[g>>2]=c,l=2,a=c,f=c;a=a+c+f|0,s[g+(l<<2)>>2]=a,a>>>0<d>>>0;)x=f,l=l+1|0,f=a,a=x;if(f=o+d+m|0,f>>>0>o>>>0){d=f,l=1,a=1;do{do if((a&3|0)!=3)if(a=l+-1|0,(s[g+(a<<2)>>2]|0)>>>0<(d-o|0)>>>0?j0(o,c,u,l,g):Po(o,c,u,C,l,0,g),(l|0)==1){Oo(C,1),l=0;break}else{Oo(C,a),l=1;break}else j0(o,c,u,l,g),Do(C,2),l=l+2|0;while(!1);a=s[C>>2]|1,s[C>>2]=a,o=o+c|0}while(o>>>0<f>>>0)}else l=1,a=1;for(Po(o,c,u,C,l,0,g),f=C+4|0;;){if((l|0)==1&(a|0)==1)if(s[f>>2]|0)b=19;else break e;else(l|0)<2?b=19:(Oo(C,2),x=l+-2|0,s[C>>2]=s[C>>2]^7,Do(C,1),Po(o+(0-(s[g+(x<<2)>>2]|0))+m|0,c,u,C,l+-1|0,1,g),Oo(C,1),a=s[C>>2]|1,s[C>>2]=a,o=o+m|0,Po(o,c,u,C,x,1,g),l=x);(b|0)==19&&(b=0,a=Bh(C)|0,Do(C,a),o=o+m|0,l=a+l|0,a=s[C>>2]|0)}}while(!1);v=_}function j0(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0;_=v,v=v+240|0,b=_,s[b>>2]=o;e:do if((u|0)>1)for(C=0-a|0,m=o,f=u,u=1,d=o;;){if(m=m+C|0,g=f+-2|0,o=m+(0-(s[l+(g<<2)>>2]|0))|0,(yn[c&3](d,o)|0)>-1&&(yn[c&3](d,m)|0)>-1||(d=b+(u<<2)|0,(yn[c&3](o,m)|0)>-1?(s[d>>2]=o,f=f+-1|0):(s[d>>2]=m,o=m,f=g),u=u+1|0,(f|0)<=1))break e;m=o,d=s[b>>2]|0}else u=1;while(!1);Th(a,b,u),v=_}function Do(o,a){o=o|0,a=a|0;var c=0,u=0,l=0;l=o+4|0,a>>>0>31?(u=s[l>>2]|0,s[o>>2]=u,s[l>>2]=0,a=a+-32|0,c=0):(c=s[l>>2]|0,u=s[o>>2]|0),s[o>>2]=c<<32-a|u>>>a,s[l>>2]=c>>>a}function Po(o,a,c,u,l,f,d){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0,f=f|0,d=d|0;var m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0;w=v,v=v+240|0,_=w+232|0,x=w,M=s[u>>2]|0,s[_>>2]=M,g=s[u+4>>2]|0,C=_+4|0,s[C>>2]=g,s[x>>2]=o;e:do if((M|0)!=1|(g|0)!=0&&(b=0-a|0,m=o+(0-(s[d+(l<<2)>>2]|0))|0,(yn[c&3](m,o)|0)>=1))for(u=1,f=(f|0)==0,g=m;;){if(f&(l|0)>1){if(f=o+b|0,m=s[d+(l+-2<<2)>>2]|0,(yn[c&3](f,g)|0)>-1){m=10;break e}if((yn[c&3](f+(0-m)|0,g)|0)>-1){m=10;break e}}if(f=u+1|0,s[x+(u<<2)>>2]=g,M=Bh(_)|0,Do(_,M),l=M+l|0,!((s[_>>2]|0)!=1|(s[C>>2]|0)!=0)){u=f,o=g,m=10;break e}if(o=g+(0-(s[d+(l<<2)>>2]|0))|0,(yn[c&3](o,s[x>>2]|0)|0)<1){o=g,u=f,f=0,m=9;break}else M=g,u=f,f=1,g=o,o=M}else u=1,m=9;while(!1);(m|0)==9&&(f|0)==0&&(m=10),(m|0)==10&&(Th(a,x,u),j0(o,a,c,l,d)),v=w}function Oo(o,a){o=o|0,a=a|0;var c=0,u=0,l=0;l=o+4|0,a>>>0>31?(u=s[o>>2]|0,s[l>>2]=u,s[o>>2]=0,a=a+-32|0,c=0):(c=s[o>>2]|0,u=s[l>>2]|0),s[l>>2]=c>>>(32-a|0)|u<<a,s[o>>2]=c<<a}function Bh(o){o=o|0;var a=0;return a=Ch((s[o>>2]|0)+-1|0)|0,a?a|0:(a=Ch(s[o+4>>2]|0)|0,((a|0)==0?0:a+32|0)|0)}function Ch(o){o=o|0;var a=0;if(o)if(o&1)o=0;else for(a=o,o=0;o=o+1|0,!(a&2);)a=a>>>1;else o=32;return o|0}function Th(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0,m=0;d=v,v=v+256|0,u=d;e:do if((c|0)>=2&&(f=a+(c<<2)|0,s[f>>2]=u,o|0))for(;;){l=o>>>0<256?o:256,Dr(u|0,s[a>>2]|0,l|0)|0,u=0;do m=a+(u<<2)|0,u=u+1|0,Dr(s[m>>2]|0,s[a+(u<<2)>>2]|0,l|0)|0,s[m>>2]=(s[m>>2]|0)+l;while((u|0)!=(c|0));if(o=o-l|0,!o)break e;u=s[f>>2]|0}while(!1);v=d}function zr(o){return o=+o,~~+xh(+o)|0}function ut(o){o=o|0;var a=0,c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0,D=0,G=0,V=0,L=0,K=0,k=0,$=0;$=v,v=v+16|0,x=$;do if(o>>>0<245){if(C=o>>>0<11?16:o+11&-8,o=C>>>3,_=s[6921]|0,c=_>>>o,c&3|0)return a=(c&1^1)+o|0,o=27724+(a<<1<<2)|0,c=o+8|0,u=s[c>>2]|0,l=u+8|0,f=s[l>>2]|0,(f|0)==(o|0)?s[6921]=_&~(1<<a):(s[f+12>>2]=o,s[c>>2]=f),k=a<<3,s[u+4>>2]=k|3,k=u+k+4|0,s[k>>2]=s[k>>2]|1,k=l,v=$,k|0;if(b=s[6923]|0,C>>>0>b>>>0){if(c|0)return a=2<<o,a=c<<o&(a|0-a),a=(a&0-a)+-1|0,m=a>>>12&16,a=a>>>m,c=a>>>5&8,a=a>>>c,f=a>>>2&4,a=a>>>f,o=a>>>1&2,a=a>>>o,u=a>>>1&1,u=(c|m|f|o|u)+(a>>>u)|0,a=27724+(u<<1<<2)|0,o=a+8|0,f=s[o>>2]|0,m=f+8|0,c=s[m>>2]|0,(c|0)==(a|0)?(o=_&~(1<<u),s[6921]=o):(s[c+12>>2]=a,s[o>>2]=c,o=_),k=u<<3,d=k-C|0,s[f+4>>2]=C|3,l=f+C|0,s[l+4>>2]=d|1,s[f+k>>2]=d,b|0&&(u=s[6926]|0,a=b>>>3,c=27724+(a<<1<<2)|0,a=1<<a,o&a?(o=c+8|0,a=s[o>>2]|0):(s[6921]=o|a,a=c,o=c+8|0),s[o>>2]=u,s[a+12>>2]=u,s[u+8>>2]=a,s[u+12>>2]=c),s[6923]=d,s[6926]=l,k=m,v=$,k|0;if(f=s[6922]|0,f){for(c=(f&0-f)+-1|0,l=c>>>12&16,c=c>>>l,u=c>>>5&8,c=c>>>u,d=c>>>2&4,c=c>>>d,m=c>>>1&2,c=c>>>m,g=c>>>1&1,g=s[27988+((u|l|d|m|g)+(c>>>g)<<2)>>2]|0,c=g,m=g,g=(s[g+4>>2]&-8)-C|0;o=s[c+16>>2]|0,!(!o&&(o=s[c+20>>
42]|0,!o));)d=(s[o+4>>2]&-8)-C|0,l=d>>>0<g>>>0,c=o,m=l?o:m,g=l?d:g;if(d=m+C|0,d>>>0>m>>>0){l=s[m+24>>2]|0,a=s[m+12>>2]|0;do if((a|0)==(m|0)){if(o=m+20|0,a=s[o>>2]|0,!a&&(o=m+16|0,a=s[o>>2]|0,!a)){c=0;break}for(;;)if(u=a+20|0,c=s[u>>2]|0,c)a=c,o=u;else if(u=a+16|0,c=s[u>>2]|0,c)a=c,o=u;else break;s[o>>2]=0,c=a}else c=s[m+8>>2]|0,s[c+12>>2]=a,s[a+8>>2]=c,c=a;while(!1);do if(l|0){if(a=s[m+28>>2]|0,o=27988+(a<<2)|0,(m|0)==(s[o>>2]|0)){if(s[o>>2]=c,!c){s[6922]=f&~(1<<a);break}}else if(k=l+16|0,s[((s[k>>2]|0)==(m|0)?k:l+20|0)>>2]=c,!c)break;s[c+24>>2]=l,a=s[m+16>>2]|0,a|0&&(s[c+16>>2]=a,s[a+24>>2]=c),a=s[m+20>>2]|0,a|0&&(s[c+20>>2]=a,s[a+24>>2]=c)}while(!1);return g>>>0<16?(k=g+C|0,s[m+4>>2]=k|3,k=m+k+4|0,s[k>>2]=s[k>>2]|1):(s[m+4>>2]=C|3,s[d+4>>2]=g|1,s[d+g>>2]=g,b|0&&(u=s[6926]|0,a=b>>>3,c=27724+(a<<1<<2)|0,a=1<<a,a&_?(o=c+8|0,a=s[o>>2]|0):(s[6921]=a|_,a=c,o=c+8|0),s[o>>2]=u,s[a+12>>2]=u,s[u+8>>2]=a,s[u+12>>2]=c),s[6923]=g,s[6926]=d),k=m+8|0,v=$,k|0}else _=C}else _=C}else _=C}else if(o>>>0<=4294967231)if(o=o+11|0,C=o&-8,u=s[6922]|0,u){l=0-C|0,o=o>>>8,o?C>>>0>16777215?g=31:(_=(o+1048320|0)>>>16&8,D=o<<_,m=(D+520192|0)>>>16&4,D=D<<m,g=(D+245760|0)>>>16&2,g=14-(m|_|g)+(D<<g>>>15)|0,g=C>>>(g+7|0)&1|g<<1):g=0,c=s[27988+(g<<2)>>2]|0;e:do if(!c)c=0,o=0,D=61;else for(o=0,m=C<<((g|0)==31?0:25-(g>>>1)|0),f=0;;){if(d=(s[c+4>>2]&-8)-C|0,d>>>0<l>>>0)if(d)o=c,l=d;else{o=c,l=0,D=65;break e}if(D=s[c+20>>2]|0,c=s[c+16+(m>>>31<<2)>>2]|0,f=(D|0)==0|(D|0)==(c|0)?f:D,c)m=m<<1;else{c=f,D=61;break}}while(!1);if((D|0)==61){if((c|0)==0&(o|0)==0){if(o=2<<g,o=(o|0-o)&u,!o){_=C;break}_=(o&0-o)+-1|0,d=_>>>12&16,_=_>>>d,f=_>>>5&8,_=_>>>f,m=_>>>2&4,_=_>>>m,g=_>>>1&2,_=_>>>g,c=_>>>1&1,o=0,c=s[27988+((f|d|m|g|c)+(_>>>c)<<2)>>2]|0}c?D=65:(m=o,d=l)}if((D|0)==65)for(f=c;;)if(_=(s[f+4>>2]&-8)-C|0,c=_>>>0<l>>>0,l=c?_:l,o=c?f:o,c=s[f+16>>2]|0,c||(c=s[f+20>>2]|0),c)f=c;else{m=o,d=l;break}if((m|0)!=0&&d>>>0<((s[6923]|0)-C|0)>>>0&&(b=m+C|0,b>>>0>m>>>0)){f=s[m+24>>2]|0,a=s[m+12>>2]|0;do if((a|0)==(m|0)){if(o=m+20|0,a=s[o>>2]|0,!a&&(o=m+16|0,a=s[o>>2]|0,!a)){a=0;break}for(;;)if(l=a+20|0,c=s[l>>2]|0,c)a=c,o=l;else if(l=a+16|0,c=s[l>>2]|0,c)a=c,o=l;else break;s[o>>2]=0}else k=s[m+8>>2]|0,s[k+12>>2]=a,s[a+8>>2]=k;while(!1);do if(f){if(o=s[m+28>>2]|0,c=27988+(o<<2)|0,(m|0)==(s[c>>2]|0)){if(s[c>>2]=a,!a){u=u&~(1<<o),s[6922]=u;break}}else if(k=f+16|0,s[((s[k>>2]|0)==(m|0)?k:f+20|0)>>2]=a,!a)break;s[a+24>>2]=f,o=s[m+16>>2]|0,o|0&&(s[a+16>>2]=o,s[o+24>>2]=a),o=s[m+20>>2]|0,o&&(s[a+20>>2]=o,s[o+24>>2]=a)}while(!1);e:do if(d>>>0<16)k=d+C|0,s[m+4>>2]=k|3,k=m+k+4|0,s[k>>2]=s[k>>2]|1;else{if(s[m+4>>2]=C|3,s[b+4>>2]=d|1,s[b+d>>2]=d,a=d>>>3,d>>>0<256){c=27724+(a<<1<<2)|0,o=s[6921]|0,a=1<<a,o&a?(o=c+8|0,a=s[o>>2]|0):(s[6921]=o|a,a=c,o=c+8|0),s[o>>2]=b,s[a+12>>2]=b,s[b+8>>2]=a,s[b+12>>2]=c;break}if(a=d>>>8,a?d>>>0>16777215?c=31:(K=(a+1048320|0)>>>16&8,k=a<<K,L=(k+520192|0)>>>16&4,k=k<<L,c=(k+245760|0)>>>16&2,c=14-(L|K|c)+(k<<c>>>15)|0,c=d>>>(c+7|0)&1|c<<1):c=0,a=27988+(c<<2)|0,s[b+28>>2]=c,o=b+16|0,s[o+4>>2]=0,s[o>>2]=0,o=1<<c,!(u&o)){s[6922]=u|o,s[a>>2]=b,s[b+24>>2]=a,s[b+12>>2]=b,s[b+8>>2]=b;break}a=s[a>>2]|0;t:do if((s[a+4>>2]&-8|0)!=(d|0)){for(u=d<<((c|0)==31?0:25-(c>>>1)|0);c=a+16+(u>>>31<<2)|0,o=s[c>>2]|0,!!o;)if((s[o+4>>2]&-8|0)==(d|0)){a=o;break t}else u=u<<1,a=o;s[c>>2]=b,s[b+24>>2]=a,s[b+12>>2]=b,s[b+8>>2]=b;break e}while(!1);K=a+8|0,k=s[K>>2]|0,s[k+12>>2]=b,s[K>>2]=b,s[b+8>>2]=k,s[b+12>>2]=a,s[b+24>>2]=0}while(!1);return k=m+8|0,v=$,k|0}else _=C}else _=C;else _=-1;while(!1);if(c=s[6923]|0,c>>>0>=_>>>0)return a=c-_|0,o=s[6926]|0,a>>>0>15?(k=o+_|0,s[6926]=k,s[6923]=a,s[k+4>>2]=a|1,s[o+c>>2]=a,s[o+4>>2]=_|3):(s[6923]=0,s[6926]=0,s[o+4>>2]=c|3,k=o+c+4|0,s[k>>2]=s[k>>2]|1),k=o+8|0,v=$,k|0;if(d=s[6924]|0,d>>>0>_>>>0)return L=d-_|0,s[6924]=L,k=s[6927]|0,K=k+_|0,s[6927]=K,s[K+4>>2]=L|1,s[k+4>>2]=_|3,k=k+8|0,v=$,k|0;if(s[7039]|0?o=s[7041]|0:(s[7041]=4096,s[7040]=4096,s[7042]=-1,s[7043]=-1,s[7044]=0,s[7032]=0,s[7039]=x&-16^1431655768,o=4096),m=_+48|0,g=_+47|0,f=o+g|0,l=0-o|0,C=f&l,C>>>0<=_>>>0||(o=s[7031]|0,o|0&&(b=s[7029]|0,x=b+C|0,x>>>0<=b>>>0|x>>>0>o>>>0)))return k=0,v=$,k|0;e:do if(s[7032]&4)a=0,D=143;else{c=s[6927]|0;t:do if(c){for(u=28132;x=s[u>>2]|0,!(x>>>0<=c>>>0&&(x+(s[u+4>>2]|0)|0)>>>0>c>>>0);)if(o=s[u+8>>2]|0,o)u=o;else{D=128;break t}if(a=f-d&l,a>>>0<2147483647)if(o=Tn(a|0)|0,(o|0)==((s[u>>2]|0)+(s[u+4>>2]|0)|0)){if((o|0)!=-1){d=a,f=o,D=145;break e}}else u=o,D=136;else a=0}else D=128;while(!1);do if((D|0)==128)if(c=Tn(0)|0,(c|0)!=-1&&(a=c,w=s[7040]|0,M=w+-1|0,a=((M&a|0)==0?0:(M+a&0-w)-a|0)+C|0,w=s[7029]|0,M=a+w|0,a>>>0>_>>>0&a>>>0<2147483647)){if(x=s[7031]|0,x|0&&M>>>0<=w>>>0|M>>>0>x>>>0){a=0;break}if(o=Tn(a|0)|0,(o|0)==(c|0)){d=a,f=c,D=145;break e}else u=o,D=136}else a=0;while(!1);do if((D|0)==136){if(c=0-a|0,!(m>>>0>a>>>0&(a>>>
40<2147483647&(u|0)!=-1)))if((u|0)==-1){a=0;break}else{d=a,f=u,D=145;break e}if(o=s[7041]|0,o=g-a+o&0-o,o>>>0>=2147483647){d=a,f=u,D=145;break e}if((Tn(o|0)|0)==-1){Tn(c|0)|0,a=0;break}else{d=o+a|0,f=u,D=145;break e}}while(!1);s[7032]=s[7032]|4,D=143}while(!1);if((D|0)==143&&C>>>0<2147483647&&(L=Tn(C|0)|0,M=Tn(0)|0,G=M-L|0,V=G>>>0>(_+40|0)>>>0,!((L|0)==-1|V^1|L>>>0<M>>>0&((L|0)!=-1&(M|0)!=-1)^1))&&(d=V?G:a,f=L,D=145),(D|0)==145){a=(s[7029]|0)+d|0,s[7029]=a,a>>>0>(s[7030]|0)>>>0&&(s[7030]=a),g=s[6927]|0;e:do if(g){for(a=28132;;){if(o=s[a>>2]|0,c=s[a+4>>2]|0,(f|0)==(o+c|0)){D=154;break}if(u=s[a+8>>2]|0,u)a=u;else break}if((D|0)==154&&(K=a+4|0,(s[a+12>>2]&8|0)==0)&&f>>>0>g>>>0&o>>>0<=g>>>0){s[K>>2]=c+d,k=(s[6924]|0)+d|0,L=g+8|0,L=(L&7|0)==0?0:0-L&7,K=g+L|0,L=k-L|0,s[6927]=K,s[6924]=L,s[K+4>>2]=L|1,s[g+k+4>>2]=40,s[6928]=s[7043];break}for(f>>>0<(s[6925]|0)>>>0&&(s[6925]=f),c=f+d|0,a=28132;;){if((s[a>>2]|0)==(c|0)){D=162;break}if(o=s[a+8>>2]|0,o)a=o;else break}if((D|0)==162&&(s[a+12>>2]&8|0)==0){s[a>>2]=f,b=a+4|0,s[b>>2]=(s[b>>2]|0)+d,b=f+8|0,b=f+((b&7|0)==0?0:0-b&7)|0,a=c+8|0,a=c+((a&7|0)==0?0:0-a&7)|0,C=b+_|0,m=a-b-_|0,s[b+4>>2]=_|3;t:do if((g|0)==(a|0))k=(s[6924]|0)+m|0,s[6924]=k,s[6927]=C,s[C+4>>2]=k|1;else{if((s[6926]|0)==(a|0)){k=(s[6923]|0)+m|0,s[6923]=k,s[6926]=C,s[C+4>>2]=k|1,s[C+k>>2]=k;break}if(o=s[a+4>>2]|0,(o&3|0)==1){d=o&-8,u=o>>>3;r:do if(o>>>0<256)if(o=s[a+8>>2]|0,c=s[a+12>>2]|0,(c|0)==(o|0)){s[6921]=s[6921]&~(1<<u);break}else{s[o+12>>2]=c,s[c+8>>2]=o;break}else{f=s[a+24>>2]|0,o=s[a+12>>2]|0;do if((o|0)==(a|0)){if(c=a+16|0,u=c+4|0,o=s[u>>2]|0,o)c=u;else if(o=s[c>>2]|0,!o){o=0;break}for(;;)if(l=o+20|0,u=s[l>>2]|0,u)o=u,c=l;else if(l=o+16|0,u=s[l>>2]|0,u)o=u,c=l;else break;s[c>>2]=0}else k=s[a+8>>2]|0,s[k+12>>2]=o,s[o+8>>2]=k;while(!1);if(!f)break;c=s[a+28>>2]|0,u=27988+(c<<2)|0;do if((s[u>>2]|0)!=(a|0)){if(k=f+16|0,s[((s[k>>2]|0)==(a|0)?k:f+20|0)>>2]=o,!o)break r}else{if(s[u>>2]=o,o|0)break;s[6922]=s[6922]&~(1<<c);break r}while(!1);if(s[o+24>>2]=f,c=a+16|0,u=s[c>>2]|0,u|0&&(s[o+16>>2]=u,s[u+24>>2]=o),c=s[c+4>>2]|0,!c)break;s[o+20>>2]=c,s[c+24>>2]=o}while(!1);a=a+d|0,l=d+m|0}else l=m;if(a=a+4|0,s[a>>2]=s[a>>2]&-2,s[C+4>>2]=l|1,s[C+l>>2]=l,a=l>>>3,l>>>0<256){c=27724+(a<<1<<2)|0,o=s[6921]|0,a=1<<a,o&a?(o=c+8|0,a=s[o>>2]|0):(s[6921]=o|a,a=c,o=c+8|0),s[o>>2]=C,s[a+12>>2]=C,s[C+8>>2]=a,s[C+12>>2]=c;break}a=l>>>8;do if(!a)u=0;else{if(l>>>0>16777215){u=31;break}K=(a+1048320|0)>>>16&8,k=a<<K,L=(k+520192|0)>>>16&4,k=k<<L,u=(k+245760|0)>>>16&2,u=14-(L|K|u)+(k<<u>>>15)|0,u=l>>>(u+7|0)&1|u<<1}while(!1);if(a=27988+(u<<2)|0,s[C+28>>2]=u,o=C+16|0,s[o+4>>2]=0,s[o>>2]=0,o=s[6922]|0,c=1<<u,!(o&c)){s[6922]=o|c,s[a>>2]=C,s[C+24>>2]=a,s[C+12>>2]=C,s[C+8>>2]=C;break}a=s[a>>2]|0;r:do if((s[a+4>>2]&-8|0)!=(l|0)){for(u=l<<((u|0)==31?0:25-(u>>>1)|0);c=a+16+(u>>>31<<2)|0,o=s[c>>2]|0,!!o;)if((s[o+4>>2]&-8|0)==(l|0)){a=o;break r}else u=u<<1,a=o;s[c>>2]=C,s[C+24>>2]=a,s[C+12>>2]=C,s[C+8>>2]=C;break t}while(!1);K=a+8|0,k=s[K>>2]|0,s[k+12>>2]=C,s[K>>2]=C,s[C+8>>2]=k,s[C+12>>2]=a,s[C+24>>2]=0}while(!1);return k=b+8|0,v=$,k|0}for(a=28132;o=s[a>>2]|0,!(o>>>0<=g>>>0&&(k=o+(s[a+4>>2]|0)|0,k>>>0>g>>>0));)a=s[a+8>>2]|0;l=k+-47|0,o=l+8|0,o=l+((o&7|0)==0?0:0-o&7)|0,l=g+16|0,o=o>>>0<l>>>0?g:o,a=o+8|0,c=d+-40|0,L=f+8|0,L=(L&7|0)==0?0:0-L&7,K=f+L|0,L=c-L|0,s[6927]=K,s[6924]=L,s[K+4>>2]=L|1,s[f+c+4>>2]=40,s[6928]=s[7043],c=o+4|0,s[c>>2]=27,s[a>>2]=s[7033],s[a+4>>2]=s[7034],s[a+8>>2]=s[7035],s[a+12>>2]=s[7036],s[7033]=f,s[7034]=d,s[7036]=0,s[7035]=a,a=o+24|0;do K=a,a=a+4|0,s[a>>2]=7;while((K+8|0)>>>0<k>>>0);if((o|0)!=(g|0)){if(f=o-g|0,s[c>>2]=s[c>>2]&-2,s[g+4>>2]=f|1,s[o>>2]=f,a=f>>>3,f>>>0<256){c=27724+(a<<1<<2)|0,o=s[6921]|0,a=1<<a,o&a?(o=c+8|0,a=s[o>>2]|0):(s[6921]=o|a,a=c,o=c+8|0),s[o>>2]=g,s[a+12>>2]=g,s[g+8>>2]=a,s[g+12>>2]=c;break}if(a=f>>>8,a?f>>>0>16777215?u=31:(K=(a+1048320|0)>>>16&8,k=a<<K,L=(k+520192|0)>>>16&4,k=k<<L,u=(k+245760|0)>>>16&2,u=14-(L|K|u)+(k<<u>>>15)|0,u=f>>>(u+7|0)&1|u<<1):u=0,c=27988+(u<<2)|0,s[g+28>>2]=u,s[g+20>>2]=0,s[l>>2]=0,a=s[6922]|0,o=1<<u,!(a&o)){s[6922]=a|o,s[c>>2]=g,s[g+24>>2]=c,s[g+12>>2]=g,s[g+8>>2]=g;break}a=s[c>>2]|0;t:do if((s[a+4>>2]&-8|0)!=(f|0)){for(u=f<<((u|0)==31?0:25-(u>>>1)|0);c=a+16+(u>>>31<<2)|0,o=s[c>>2]|0,!!o;)if((s[o+4>>2]&-8|0)==(f|0)){a=o;break t}else u=u<<1,a=o;s[c>>2]=g,s[g+24>>2]=a,s[g+12>>2]=g,s[g+8>>2]=g;break e}while(!1);K=a+8|0,k=s[K>>2]|0,s[k+12>>2]=g,s[K>>2]=g,s[g+8>>2]=k,s[g+12>>2]=a,s[g+24>>2]=0}}else k=s[6925]|0,(k|0)==0|f>>>0<k>>>0&&(s[6925]=f),s[7033]=f,s[7034]=d,s[7036]=0,s[6930]=s[7039],s[6929]=-1,s[6934]=27724,s[6933]=27724,s[6936]=27732,s[6935]=27
4732,s[6938]=27740,s[6937]=27740,s[6940]=27748,s[6939]=27748,s[6942]=27756,s[6941]=27756,s[6944]=27764,s[6943]=27764,s[6946]=27772,s[6945]=27772,s[6948]=27780,s[6947]=27780,s[6950]=27788,s[6949]=27788,s[6952]=27796,s[6951]=27796,s[6954]=27804,s[6953]=27804,s[6956]=27812,s[6955]=27812,s[6958]=27820,s[6957]=27820,s[6960]=27828,s[6959]=27828,s[6962]=27836,s[6961]=27836,s[6964]=27844,s[6963]=27844,s[6966]=27852,s[6965]=27852,s[6968]=27860,s[6967]=27860,s[6970]=27868,s[6969]=27868,s[6972]=27876,s[6971]=27876,s[6974]=27884,s[6973]=27884,s[6976]=27892,s[6975]=27892,s[6978]=27900,s[6977]=27900,s[6980]=27908,s[6979]=27908,s[6982]=27916,s[6981]=27916,s[6984]=27924,s[6983]=27924,s[6986]=27932,s[6985]=27932,s[6988]=27940,s[6987]=27940,s[6990]=27948,s[6989]=27948,s[6992]=27956,s[6991]=27956,s[6994]=27964,s[6993]=27964,s[6996]=27972,s[6995]=27972,k=d+-40|0,L=f+8|0,L=(L&7|0)==0?0:0-L&7,K=f+L|0,L=k-L|0,s[6927]=K,s[6924]=L,s[K+4>>2]=L|1,s[f+k+4>>2]=40,s[6928]=s[7043];while(!1);if(a=s[6924]|0,a>>>0>_>>>0)return L=a-_|0,s[6924]=L,k=s[6927]|0,K=k+_|0,s[6927]=K,s[K+4>>2]=L|1,s[k+4>>2]=_|3,k=k+8|0,v=$,k|0}return k=gh()|0,s[k>>2]=12,k=0,v=$,k|0}function Ce(o){o=o|0;var a=0,c=0,u=0,l=0,f=0,d=0,m=0,g=0;if(o){c=o+-8|0,l=s[6925]|0,o=s[o+-4>>2]|0,a=o&-8,g=c+a|0;do if(o&1)m=c,d=c;else{if(u=s[c>>2]|0,!(o&3)||(d=c+(0-u)|0,f=u+a|0,d>>>0<l>>>0))return;if((s[6926]|0)==(d|0)){if(o=g+4|0,a=s[o>>2]|0,(a&3|0)!=3){m=d,a=f;break}s[6923]=f,s[o>>2]=a&-2,s[d+4>>2]=f|1,s[d+f>>2]=f;return}if(c=u>>>3,u>>>0<256)if(o=s[d+8>>2]|0,a=s[d+12>>2]|0,(a|0)==(o|0)){s[6921]=s[6921]&~(1<<c),m=d,a=f;break}else{s[o+12>>2]=a,s[a+8>>2]=o,m=d,a=f;break}l=s[d+24>>2]|0,o=s[d+12>>2]|0;do if((o|0)==(d|0)){if(a=d+16|0,c=a+4|0,o=s[c>>2]|0,o)a=c;else if(o=s[a>>2]|0,!o){o=0;break}for(;;)if(u=o+20|0,c=s[u>>2]|0,c)o=c,a=u;else if(u=o+16|0,c=s[u>>2]|0,c)o=c,a=u;else break;s[a>>2]=0}else m=s[d+8>>2]|0,s[m+12>>2]=o,s[o+8>>2]=m;while(!1);if(l){if(a=s[d+28>>2]|0,c=27988+(a<<2)|0,(s[c>>2]|0)==(d|0)){if(s[c>>2]=o,!o){s[6922]=s[6922]&~(1<<a),m=d,a=f;break}}else if(m=l+16|0,s[((s[m>>2]|0)==(d|0)?m:l+20|0)>>2]=o,!o){m=d,a=f;break}s[o+24>>2]=l,a=d+16|0,c=s[a>>2]|0,c|0&&(s[o+16>>2]=c,s[c+24>>2]=o),a=s[a+4>>2]|0,a?(s[o+20>>2]=a,s[a+24>>2]=o,m=d,a=f):(m=d,a=f)}else m=d,a=f}while(!1);if(!(d>>>0>=g>>>0)&&(o=g+4|0,u=s[o>>2]|0,!!(u&1))){if(u&2)s[o>>2]=u&-2,s[m+4>>2]=a|1,s[d+a>>2]=a,l=a;else{if((s[6927]|0)==(g|0)){if(g=(s[6924]|0)+a|0,s[6924]=g,s[6927]=m,s[m+4>>2]=g|1,(m|0)!=(s[6926]|0))return;s[6926]=0,s[6923]=0;return}if((s[6926]|0)==(g|0)){g=(s[6923]|0)+a|0,s[6923]=g,s[6926]=d,s[m+4>>2]=g|1,s[d+g>>2]=g;return}l=(u&-8)+a|0,c=u>>>3;do if(u>>>0<256)if(a=s[g+8>>2]|0,o=s[g+12>>2]|0,(o|0)==(a|0)){s[6921]=s[6921]&~(1<<c);break}else{s[a+12>>2]=o,s[o+8>>2]=a;break}else{f=s[g+24>>2]|0,o=s[g+12>>2]|0;do if((o|0)==(g|0)){if(a=g+16|0,c=a+4|0,o=s[c>>2]|0,o)a=c;else if(o=s[a>>2]|0,!o){c=0;break}for(;;)if(u=o+20|0,c=s[u>>2]|0,c)o=c,a=u;else if(u=o+16|0,c=s[u>>2]|0,c)o=c,a=u;else break;s[a>>2]=0,c=o}else c=s[g+8>>2]|0,s[c+12>>2]=o,s[o+8>>2]=c,c=o;while(!1);if(f|0){if(o=s[g+28>>2]|0,a=27988+(o<<2)|0,(s[a>>2]|0)==(g|0)){if(s[a>>2]=c,!c){s[6922]=s[6922]&~(1<<o);break}}else if(u=f+16|0,s[((s[u>>2]|0)==(g|0)?u:f+20|0)>>2]=c,!c)break;s[c+24>>2]=f,o=g+16|0,a=s[o>>2]|0,a|0&&(s[c+16>>2]=a,s[a+24>>2]=c),o=s[o+4>>2]|0,o|0&&(s[c+20>>2]=o,s[o+24>>2]=c)}}while(!1);if(s[m+4>>2]=l|1,s[d+l>>2]=l,(m|0)==(s[6926]|0)){s[6923]=l;return}}if(o=l>>>3,l>>>0<256){c=27724+(o<<1<<2)|0,a=s[6921]|0,o=1<<o,a&o?(a=c+8|0,o=s[a>>2]|0):(s[6921]=a|o,o=c,a=c+8|0),s[a>>2]=m,s[o+12>>2]=m,s[m+8>>2]=o,s[m+12>>2]=c;return}o=l>>>8,o?l>>>0>16777215?u=31:(d=(o+1048320|0)>>>16&8,g=o<<d,f=(g+520192|0)>>>16&4,g=g<<f,u=(g+245760|0)>>>16&2,u=14-(f|d|u)+(g<<u>>>15)|0,u=l>>>(u+7|0)&1|u<<1):u=0,o=27988+(u<<2)|0,s[m+28>>2]=u,s[m+20>>2]=0,s[m+16>>2]=0,a=s[6922]|0,c=1<<u;e:do if(!(a&c))s[6922]=a|c,s[o>>2]=m,s[m+24>>2]=o,s[m+12>>2]=m,s[m+8>>2]=m;else{o=s[o>>2]|0;t:do if((s[o+4>>2]&-8|0)!=(l|0)){for(u=l<<((u|0)==31?0:25-(u>>>1)|0);c=o+16+(u>>>31<<2)|0,a=s[c>>2]|0,!!a;)if((s[a+4>>2]&-8|0)==(l|0)){o=a;break t}else u=u<<1,o=a;s[c>>2]=m,s[m+24>>2]=o,s[m+12>>2]=m,s[m+8>>2]=m;break e}while(!1);d=o+8|0,g=s[d>>2]|0,s[g+12>>2]=m,s[d>>2]=m,s[m+8>>2]=g,s[m+12>>2]=o,s[m+24>>2]=0}while(!1);if(g=(s[6929]|0)+-1|0,s[6929]=g,!(g|0)){for(o=28140;o=s[o>>2]|0,o;)o=o+8|0;s[6929]=-1}}}}function Xt(o,a){o=o|0,a=a|0;var c=0;return o?(c=rr(a,o)|0,(a|o)>>>0>65535&&(c=((c>>>0)/(o>>>0)|0|0)==(a|0)?c:-1)):c=0,o=ut(c)|0,!o||!(s[o+-4>>2]&3)||Cn(o|0,0,c|0)|0,o|0}function iy(o,a){o=o|0,a=a|0;var c=0,u=0;return o?a>>>0>4294967231?(a=gh()|0,s[a>>2]=12,a=0,a|0):(c=oy(o+-8|0,a>>>0<11?16:a+11&-8)|0,c|0?(a=c+8|0,a|0):(c=ut(a)|0,c?(u=s[o+-4>>2]|0,u=(u&-8)-((u&3|0)==0?8:4)|0,Dr(c|0,o|0,(u>>>0<a>>>0?u:a)|0)|0,Ce(o),a=c,a|0):(a=0,a|0))):(a=ut(a)|0,a|0)}function oy(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0,g=0,C=0,b=0,_=0;if(b=o+4|0,_=s[b>>2]|0,c=_&-8,m=o+c|0,!(_&3))return a>>>0<256?(o=0,o|0):(c>>>0>=(a+4|0)>>>0&&(c-a|0)>>>0<=s[7041]<<1>>>0||(o=0),o|0);if(c>>>0>=a>>>0)return c=c-a|0,c>>>0<=15||(C=o+a|0,s[b>>2]=_&1|a|2,s[C+4>>2]=c|3,_=m+4|0,s[_>>2]=s[_>>
42]|1,yh(C,c)),o|0;if((s[6927]|0)==(m|0))return C=(s[6924]|0)+c|0,c=C-a|0,u=o+a|0,C>>>0<=a>>>0?(o=0,o|0):(s[b>>2]=_&1|a|2,s[u+4>>2]=c|1,s[6927]=u,s[6924]=c,o|0);if((s[6926]|0)==(m|0))return u=(s[6923]|0)+c|0,u>>>0<a>>>0?(o=0,o|0):(c=u-a|0,c>>>0>15?(C=o+a|0,u=o+u|0,s[b>>2]=_&1|a|2,s[C+4>>2]=c|1,s[u>>2]=c,u=u+4|0,s[u>>2]=s[u>>2]&-2,u=C):(s[b>>2]=_&1|u|2,u=o+u+4|0,s[u>>2]=s[u>>2]|1,u=0,c=0),s[6923]=c,s[6926]=u,o|0);if(u=s[m+4>>2]|0,u&2|0||(g=(u&-8)+c|0,g>>>0<a>>>0))return o=0,o|0;C=g-a|0,l=u>>>3;do if(u>>>0<256)if(u=s[m+8>>2]|0,c=s[m+12>>2]|0,(c|0)==(u|0)){s[6921]=s[6921]&~(1<<l);break}else{s[u+12>>2]=c,s[c+8>>2]=u;break}else{d=s[m+24>>2]|0,c=s[m+12>>2]|0;do if((c|0)==(m|0)){if(u=m+16|0,l=u+4|0,c=s[l>>2]|0,c)u=l;else if(c=s[u>>2]|0,!c){l=0;break}for(;;)if(f=c+20|0,l=s[f>>2]|0,l)c=l,u=f;else if(f=c+16|0,l=s[f>>2]|0,l)c=l,u=f;else break;s[u>>2]=0,l=c}else l=s[m+8>>2]|0,s[l+12>>2]=c,s[c+8>>2]=l,l=c;while(!1);if(d|0){if(c=s[m+28>>2]|0,u=27988+(c<<2)|0,(s[u>>2]|0)==(m|0)){if(s[u>>2]=l,!l){s[6922]=s[6922]&~(1<<c);break}}else if(f=d+16|0,s[((s[f>>2]|0)==(m|0)?f:d+20|0)>>2]=l,!l)break;s[l+24>>2]=d,c=m+16|0,u=s[c>>2]|0,u|0&&(s[l+16>>2]=u,s[u+24>>2]=l),c=s[c+4>>2]|0,c|0&&(s[l+20>>2]=c,s[c+24>>2]=l)}}while(!1);return C>>>0<16?(s[b>>2]=_&1|g|2,_=o+g+4|0,s[_>>2]=s[_>>2]|1,o|0):(m=o+a|0,s[b>>2]=_&1|a|2,s[m+4>>2]=C|3,_=o+g+4|0,s[_>>2]=s[_>>2]|1,yh(m,C),o|0)}function yh(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0,d=0,m=0;m=o+a|0,c=s[o+4>>2]|0;do if(c&1)d=o;else{if(l=s[o>>2]|0,!(c&3))return;if(d=o+(0-l)|0,a=l+a|0,(s[6926]|0)==(d|0)){if(o=m+4|0,c=s[o>>2]|0,(c&3|0)!=3)break;s[6923]=a,s[o>>2]=c&-2,s[d+4>>2]=a|1,s[m>>2]=a;return}if(u=l>>>3,l>>>0<256)if(o=s[d+8>>2]|0,c=s[d+12>>2]|0,(c|0)==(o|0)){s[6921]=s[6921]&~(1<<u);break}else{s[o+12>>2]=c,s[c+8>>2]=o;break}f=s[d+24>>2]|0,o=s[d+12>>2]|0;do if((o|0)==(d|0)){if(c=d+16|0,u=c+4|0,o=s[u>>2]|0,o)c=u;else if(o=s[c>>2]|0,!o){o=0;break}for(;;)if(l=o+20|0,u=s[l>>2]|0,u)o=u,c=l;else if(l=o+16|0,u=s[l>>2]|0,u)o=u,c=l;else break;s[c>>2]=0}else l=s[d+8>>2]|0,s[l+12>>2]=o,s[o+8>>2]=l;while(!1);if(f){if(c=s[d+28>>2]|0,u=27988+(c<<2)|0,(s[u>>2]|0)==(d|0)){if(s[u>>2]=o,!o){s[6922]=s[6922]&~(1<<c);break}}else if(l=f+16|0,s[((s[l>>2]|0)==(d|0)?l:f+20|0)>>2]=o,!o)break;s[o+24>>2]=f,c=d+16|0,u=s[c>>2]|0,u|0&&(s[o+16>>2]=u,s[u+24>>2]=o),c=s[c+4>>2]|0,c&&(s[o+20>>2]=c,s[c+24>>2]=o)}}while(!1);if(o=m+4|0,u=s[o>>2]|0,u&2)s[o>>2]=u&-2,s[d+4>>2]=a|1,s[d+a>>2]=a,l=a;else{if((s[6927]|0)==(m|0)){if(m=(s[6924]|0)+a|0,s[6924]=m,s[6927]=d,s[d+4>>2]=m|1,(d|0)!=(s[6926]|0))return;s[6926]=0,s[6923]=0;return}if((s[6926]|0)==(m|0)){m=(s[6923]|0)+a|0,s[6923]=m,s[6926]=d,s[d+4>>2]=m|1,s[d+m>>2]=m;return}l=(u&-8)+a|0,c=u>>>3;do if(u>>>0<256)if(o=s[m+8>>2]|0,a=s[m+12>>2]|0,(a|0)==(o|0)){s[6921]=s[6921]&~(1<<c);break}else{s[o+12>>2]=a,s[a+8>>2]=o;break}else{f=s[m+24>>2]|0,a=s[m+12>>2]|0;do if((a|0)==(m|0)){if(o=m+16|0,c=o+4|0,a=s[c>>2]|0,a)o=c;else if(a=s[o>>2]|0,!a){c=0;break}for(;;)if(u=a+20|0,c=s[u>>2]|0,c)a=c,o=u;else if(u=a+16|0,c=s[u>>2]|0,c)a=c,o=u;else break;s[o>>2]=0,c=a}else c=s[m+8>>2]|0,s[c+12>>2]=a,s[a+8>>2]=c,c=a;while(!1);if(f|0){if(a=s[m+28>>2]|0,o=27988+(a<<2)|0,(s[o>>2]|0)==(m|0)){if(s[o>>2]=c,!c){s[6922]=s[6922]&~(1<<a);break}}else if(u=f+16|0,s[((s[u>>2]|0)==(m|0)?u:f+20|0)>>2]=c,!c)break;s[c+24>>2]=f,a=m+16|0,o=s[a>>2]|0,o|0&&(s[c+16>>2]=o,s[o+24>>2]=c),a=s[a+4>>2]|0,a|0&&(s[c+20>>2]=a,s[a+24>>2]=c)}}while(!1);if(s[d+4>>2]=l|1,s[d+l>>2]=l,(d|0)==(s[6926]|0)){s[6923]=l;return}}if(a=l>>>3,l>>>0<256){c=27724+(a<<1<<2)|0,o=s[6921]|0,a=1<<a,o&a?(o=c+8|0,a=s[o>>2]|0):(s[6921]=o|a,a=c,o=c+8|0),s[o>>2]=d,s[a+12>>2]=d,s[d+8>>2]=a,s[d+12>>2]=c;return}if(a=l>>>8,a?l>>>0>16777215?u=31:(f=(a+1048320|0)>>>16&8,m=a<<f,c=(m+520192|0)>>>16&4,m=m<<c,u=(m+245760|0)>>>16&2,u=14-(c|f|u)+(m<<u>>>15)|0,u=l>>>(u+7|0)&1|u<<1):u=0,a=27988+(u<<2)|0,s[d+28>>2]=u,s[d+20>>2]=0,s[d+16>>2]=0,o=s[6922]|0,c=1<<u,!(o&c)){s[6922]=o|c,s[a>>2]=d,s[d+24>>2]=a,s[d+12>>2]=d,s[d+8>>2]=d;return}a=s[a>>2]|0;e:do if((s[a+4>>2]&-8|0)!=(l|0)){for(u=l<<((u|0)==31?0:25-(u>>>1)|0);c=a+16+(u>>>31<<2)|0,o=s[c>>2]|0,!!o;)if((s[o+4>>2]&-8|0)==(l|0)){a=o;break e}else u=u<<1,a=o;s[c>>2]=d,s[d+24>>2]=a,s[d+12>>2]=d,s[d+8>>2]=d;return}while(!1);f=a+8|0,m=s[f>>2]|0,s[m+12>>2]=d,s[f>>2]=d,s[d+8>>2]=m,s[d+12>>2]=a,s[d+24>>2]=0}function me(o,a,c,u){return o=o|0,a=a|0,c=c|0,u=u|0,c=o+c>>>0,Re(a+u+(c>>>0<o>>>0|0)>>>0|0),c|0|0}
4function Ft(o,a,c,u){return o=o|0,a=a|0,c=c|0,u=u|0,u=a-u-(c>>>0>o>>>0|0)>>>0,Re(u|0),o-c>>>0|0|0}function bh(o){return o=o|0,(o?31-(nn(o^o-1)|0)|0:32)|0}function Q0(o,a,c,u,l){o=o|0,a=a|0,c=c|0,u=u|0,l=l|0;var f=0,d=0,m=0,g=0,C=0,b=0,_=0,x=0,w=0,M=0;if(b=o,g=a,C=g,d=c,x=u,m=x,!C)return f=(l|0)!=0,m?f?(s[l>>2]=o|0,s[l+4>>2]=a&0,x=0,l=0,Re(x|0),l|0):(x=0,l=0,Re(x|0),l|0):(f&&(s[l>>2]=(b>>>0)%(d>>>0),s[l+4>>2]=0),x=0,l=(b>>>0)/(d>>>0)>>>0,Re(x|0),l|0);f=(m|0)==0;do if(d){if(!f){if(f=(nn(m|0)|0)-(nn(C|0)|0)|0,f>>>0<=31){_=f+1|0,m=31-f|0,a=f-31>>31,d=_,o=b>>>(_>>>0)&a|C<<m,a=C>>>(_>>>0)&a,f=0,m=b<<m;break}return l?(s[l>>2]=o|0,s[l+4>>2]=g|a&0,x=0,l=0,Re(x|0),l|0):(x=0,l=0,Re(x|0),l|0)}if(f=d-1|0,f&d|0){m=(nn(d|0)|0)+33-(nn(C|0)|0)|0,M=64-m|0,_=32-m|0,g=_>>31,w=m-32|0,a=w>>31,d=m,o=_-1>>31&C>>>(w>>>0)|(C<<_|b>>>(m>>>0))&a,a=a&C>>>(m>>>0),f=b<<M&g,m=(C<<M|b>>>(w>>>0))&g|b<<_&m-33>>31;break}return l|0&&(s[l>>2]=f&b,s[l+4>>2]=0),(d|0)==1?(w=g|a&0,M=o|0|0,Re(w|0),M|0):(M=bh(d|0)|0,w=C>>>(M>>>0)|0,M=C<<32-M|b>>>(M>>>0)|0,Re(w|0),M|0)}else{if(f)return l|0&&(s[l>>2]=(C>>>0)%(d>>>0),s[l+4>>2]=0),w=0,M=(C>>>0)/(d>>>0)>>>0,Re(w|0),M|0;if(!b)return l|0&&(s[l>>2]=0,s[l+4>>2]=(C>>>0)%(m>>>0)),w=0,M=(C>>>0)/(m>>>0)>>>0,Re(w|0),M|0;if(f=m-1|0,!(f&m))return l|0&&(s[l>>2]=o|0,s[l+4>>2]=f&C|a&0),w=0,M=C>>>((bh(m|0)|0)>>>0),Re(w|0),M|0;if(f=(nn(m|0)|0)-(nn(C|0)|0)|0,f>>>0<=30){a=f+1|0,m=31-f|0,d=a,o=C<<m|b>>>(a>>>0),a=C>>>(a>>>0),f=0,m=b<<m;break}return l?(s[l>>2]=o|0,s[l+4>>2]=g|a&0,w=0,M=0,Re(w|0),M|0):(w=0,M=0,Re(w|0),M|0)}while(!1);if(!d)C=m,g=0,m=0;else{_=c|0|0,b=x|u&0,C=me(_|0,b|0,-1,-1)|0,c=F()|0,g=m,m=0;do u=g,g=f>>>31|g<<1,f=m|f<<1,u=o<<1|u>>>31|0,x=o>>>31|a<<1|0,Ft(C|0,c|0,u|0,x|0)|0,M=F()|0,w=M>>31|((M|0)<0?-1:0)<<1,m=w&1,o=Ft(u|0,x|0,w&_|0,(((M|0)<0?-1:0)>>31|((M|0)<0?-1:0)<<1)&b|0)|0,a=F()|0,d=d-1|0;while((d|0)!=0);C=g,g=0}return d=0,l|0&&(s[l>>2]=o,s[l+4>>2]=a),w=(f|0)>>>31|(C|d)<<1|(d<<1|f>>>31)&0|g,M=(f<<1|0)&-2|m,Re(w|0),M|0}function gn(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0;return C=a>>31|((a|0)<0?-1:0)<<1,g=((a|0)<0?-1:0)>>31|((a|0)<0?-1:0)<<1,f=u>>31|((u|0)<0?-1:0)<<1,l=((u|0)<0?-1:0)>>31|((u|0)<0?-1:0)<<1,m=Ft(C^o|0,g^a|0,C|0,g|0)|0,d=F()|0,o=f^C,a=l^g,Ft((Q0(m,d,Ft(f^c|0,l^u|0,f|0,l|0)|0,F()|0,0)|0)^o|0,(F()|0)^a|0,o|0,a|0)|0}function Ay(o,a){o=o|0,a=a|0;var c=0,u=0,l=0,f=0;return f=o&65535,l=a&65535,c=rr(l,f)|0,u=o>>>16,o=(c>>>16)+(rr(l,u)|0)|0,l=a>>>16,a=rr(l,f)|0,Re((o>>>16)+(rr(l,u)|0)+(((o&65535)+a|0)>>>16)|0),o+a<<16|c&65535|0|0}function ft(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0;return l=o,f=c,c=Ay(l,f)|0,o=F()|0,Re((rr(a,f)|0)+(rr(u,l)|0)+o|o&0|0),c|0|0|0}function Bn(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0,d=0,m=0,g=0,C=0;return l=v,v=v+16|0,m=l|0,d=a>>31|((a|0)<0?-1:0)<<1,f=((a|0)<0?-1:0)>>31|((a|0)<0?-1:0)<<1,C=u>>31|((u|0)<0?-1:0)<<1,g=((u|0)<0?-1:0)>>31|((u|0)<0?-1:0)<<1,o=Ft(d^o|0,f^a|0,d|0,f|0)|0,a=F()|0,Q0(o,a,Ft(C^c|0,g^u|0,C|0,g|0)|0,F()|0,m)|0,u=Ft(s[m>>2]^d|0,s[m+4>>2]^f|0,d|0,f|0)|0,c=F()|0,v=l,Re(c|0),u|0}function sn(o,a,c,u){o=o|0,a=a|0,c=c|0,u=u|0;var l=0,f=0;return f=v,v=v+16|0,l=f|0,Q0(o,a,c,u,l)|0,v=f,Re(s[l+4>>2]|0),s[l>>2]|0|0}function Eh(o,a,c){return o=o|0,a=a|0,c=c|0,(c|0)<32?(Re(a>>c|0),o>>>c|(a&(1<<c)-1)<<32-c):(Re(((a|0)<0?-1:0)|0),a>>c-32|0)}function oe(o,a,c){return o=o|0,a=a|0,c=c|0,(c|0)<32?(Re(a>>>c|0),o>>>c|(a&(1<<c)-1)<<32-c):(Re(0),a>>>c-32|0)}function de(o,a,c){return o=o|0,a=a|0,c=c|0,(c|0)<32?(Re(a<<c|(o&(1<<c)-1<<32-c)>>>32-c|0),o<<c):(Re(o<<c-32|0),0)}function K0(o,a,c){return o=o|0,a=a|0,c=c|0,a=nn(a)|0,(a|0)==32&&(a=a+(nn(o)|0)|0),Re(0),a|0}function _h(o,a){return o=+o,a=+a,o!=o?+a:a!=a?+o:+wC(+o,+a)}function No(o,a){return o=+o,a=+a,o!=o?+a:a!=a?+o:+b0(+o,+a)}function Go(o){return o=+o,o>=0?+Dt(o+.5):+Cs(o-.5)}function Dr(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0;if((c|0)>=8192)return vC(o|0,a|0,c|0)|0,o|0;if(f=o|0,l=o+c|0,(o&3)==(a&3)){for(;o&3;){if(!c)return f|0;te[o>>0]=te[a>>0]|0,o=o+1|0,a=a+1|0,c=c-1|0}for(c=l&-4|0,u=c-64|0;(o|0)<=(u|0);)s[o>>2]=s[a>>2],s[o+4>>2]=s[a+4>>2],s[o+8>>2]=s[a+8>>2],s[o+12>>2]=s[a+12>>2],s[o+16>>2]=s[a+16>>2],s[o+20>>2]=s[a+20>>2],s[o+24>>2]=s[a+24>>2],s[o+28>>2]=s[a+28>>2],s[o+32>>2]=s[a+32>>2],s[o+36>>2]=s[a+36>>2],s[o+40>>2]=s[a+40>>2],s[o+44>>2]=s[a+44>>2],s[o+48>>2]=s[a+48>>2],s[o+52>>2]=s[a+52>>2],s[o+56>>2]=s[a+56>>2],s[o+60>>2]=s[a+60>>2],o=o+64|0,a=a+64|0;for(;(o|0)<(c|0);)s[o>>2]=s[a>>2],o=o+4|0,a=a+4|0}else for(c=l-4|0;(o|0)<(c|0);)te[o>>0]=te[a>>0]|0,te[o+1>>0]=te[a+1>>0]|0,te[o+2>>0]=te[a+2>>0]|0,te[o+3>>0]=te[a+3>>0]|0,o=o+4|0,a=a+4|0;for(;(o|0)<(l|0);)te[o>>0]=te[a>>0]|0,o=o+1|0,a=a+1|0;return f|0}function z0(o,a,c){o=o|0,a=a|0,c=c|0;var u=0;if((a|0)<(o|0)&(o|0)<(a+c|0)){for(u=o,a=a+c|0,o=o+c|0;(c|0)>0;)o=o-1|0,a=a-1|0,c=c-1|0,te[o>>0]=te[a>>0]|0;o=u}else Dr(o,a,c)|0;return o|0}function Cn(o,a,c){o=o|0,a=a|0,c=c|0;var u=0,l=0,f=0,d=0;if(f=o+c|0,a=a&255,(c|0)>
4=67){for(;o&3;)te[o>>0]=a,o=o+1|0;for(u=f&-4|0,d=a|a<<8|a<<16|a<<24,l=u-64|0;(o|0)<=(l|0);)s[o>>2]=d,s[o+4>>2]=d,s[o+8>>2]=d,s[o+12>>2]=d,s[o+16>>2]=d,s[o+20>>2]=d,s[o+24>>2]=d,s[o+28>>2]=d,s[o+32>>2]=d,s[o+36>>2]=d,s[o+40>>2]=d,s[o+44>>2]=d,s[o+48>>2]=d,s[o+52>>2]=d,s[o+56>>2]=d,s[o+60>>2]=d,o=o+64|0;for(;(o|0)<(u|0);)s[o>>2]=d,o=o+4|0}for(;(o|0)<(f|0);)te[o>>0]=a,o=o+1|0;return f-c|0}function xh(o){return o=+o,o>=0?+Dt(o+.5):+Cs(o-.5)}function Tn(o){o=o|0;var a=0,c=0,u=0;return u=SC()|0,c=s[tr>>2]|0,a=c+o|0,(o|0)>0&(a|0)<(c|0)|(a|0)<0?(RC(a|0)|0,kf(12),-1):(a|0)>(u|0)&&!(FC(a|0)|0)?(kf(12),-1):(s[tr>>2]=a,c|0)}function ay(o,a,c){return o=o|0,a=a|0,c=c|0,yn[o&3](a|0,c|0)|0}function cy(o,a){return o=o|0,a=a|0,MC(0),0}var yn=[cy,iT,oT,AT];return{___divdi3:gn,___muldi3:ft,___remdi3:Bn,___uremdi3:sn,_areNeighborCells:aT,_bitshift64Ashr:Eh,_bitshift64Lshr:oe,_bitshift64Shl:de,_calloc:Xt,_cellAreaKm2:QC,_cellAreaM2:KC,_cellAreaRads2:jC,_cellToBoundary:Jn,_cellToCenterChild:sh,_cellToChildPos:MT,_cellToChildren:CT,_cellToChildrenSize:vi,_cellToLatLng:bs,_cellToLocalIj:kT,_cellToParent:R0,_cellToVertex:yr,_cellToVertexes:ny,_cellsToDirectedEdge:cT,_cellsToLinkedMultiPolygon:JC,_childPosToCell:ST,_compactCells:TT,_constructCell:gT,_destroyLinkedMultiPolygon:GT,_directedEdgeToBoundary:Mi,_directedEdgeToCells:fT,_edgeLengthKm:OT,_edgeLengthM:NT,_edgeLengthRads:PT,_emscripten_replace_memory:LC,_free:Ce,_getBaseCellNumber:rh,_getDirectedEdgeDestination:uT,_getDirectedEdgeOrigin:lT,_getHexagonAreaAvgKm2:Ah,_getHexagonAreaAvgM2:RT,_getHexagonEdgeLengthAvgKm:LT,_getHexagonEdgeLengthAvgM:DT,_getIcosahedronFaces:ih,_getIndexDigit:mT,_getNumCells:vo,_getPentagons:N0,_getRes0Cells:qC,_getResolution:v0,_greatCircleDistanceKm:Ri,_greatCircleDistanceM:FT,_greatCircleDistanceRads:vT,_gridDisk:Hf,_gridDiskDistances:Vf,_gridDistance:k0,_gridPathCells:JT,_gridPathCellsSize:VT,_gridRing:UC,_gridRingUnsafe:jf,_i64Add:me,_i64Subtract:Ft,_isPentagon:ot,_isResClassIII:ET,_isValidCell:So,_isValidDirectedEdge:Zf,_isValidIndex:BT,_isValidVertex:mh,_latLngToCell:P0,_llvm_ctlz_i64:K0,_llvm_maxnum_f64:_h,_llvm_minnum_f64:No,_llvm_round_f64:Go,_localIjToCell:HT,_malloc:ut,_maxFaceCount:IT,_maxGridDiskSize:GC,_maxPolygonToCellsSize:HC,_maxPolygonToCellsSizeExperimental:KT,_memcpy:Dr,_memmove:z0,_memset:Cn,_originToDirectedEdges:w0,_pentagonCount:wT,_polygonToCells:VC,_polygonToCellsExperimental:QT,_readInt64AsDoubleFromPointer:ey,_res0CellCount:WC,_reverseDirectedEdge:$f,_round:xh,_sbrk:Tn,_sizeOfCellBoundary:YT,_sizeOfCoordIJ:$T,_sizeOfGeoLoop:WT,_sizeOfGeoPolygon:qT,_sizeOfH3Index:zT,_sizeOfLatLng:XT,_sizeOfLinkedGeoPolygon:ZT,_uncompactCells:yT,_uncompactCellsSize:bT,_vertexToLatLng:sy,dynCall_iii:ay,establishStackSpace:NC,stackAlloc:DC,stackRestore:OC,stackSave:PC}})(yC,bC,xe),FD=e.___divdi3=ue.___divdi3,RD=e.___muldi3=ue.___muldi3,LD=e.___remdi3=ue.___remdi3,DD=e.___uremdi3=ue.___uremdi3,PD=e._areNeighborCells=ue._areNeighborCells,OD=e._bitshift64Ashr=ue._bitshift64Ashr,ND=e._bitshift64Lshr=ue._bitshift64Lshr,GD=e._bitshift64Shl=ue._bitshift64Shl,UD=e._calloc=ue._calloc,kD=e._cellAreaKm2=ue._cellAreaKm2,HD=e._cellAreaM2=ue._cellAreaM2,VD=e._cellAreaRads2=ue._cellAreaRads2,JD=e._cellToBoundary=ue._cellToBoundary,jD=e._cellToCenterChild=ue._cellToCenterChild,QD=e._cellToChildPos=ue._cellToChildPos,KD=e._cellToChildren=ue._cellToChildren,zD=e._cellToChildrenSize=ue._cellToChildrenSize,XD=e._cellToLatLng=ue._cellToLatLng,YD=e._cellToLocalIj=ue._cellToLocalIj,WD=e._cellToParent=ue._cellToParent,qD=e._cellToVertex=ue._cellToVertex,ZD=e._cellToVertexes=ue._cellToVertexes,$D=e._cellsToDirectedEdge=ue._cellsToDirectedEdge,e8=e._cellsToLinkedMultiPolygon=ue._cellsToLinkedMultiPolygon,t8=e._childPosToCell=ue._childPosToCell,r8=e._compactCells=ue._compactCells,n8=e._constructCell=ue._constructCell,s8=e._destroyLinkedMultiPolygon=ue._destroyLinkedMultiPolygon,i8=e._directedEdgeToBoundary=ue._directedEdgeToBoundary,o8=e._directedEdgeToCells=ue._directedEdgeToCells,A8=e._edgeLengthKm=ue._edgeLengthKm,a8=e._edgeLengthM=ue._edgeLengthM,c8=e._edgeLengthRads=ue._edgeLengthRads,EC=e._emscripten_replace_memory=ue._emscripten_replace_memory,l8=e._free=ue._free,u8=e._getBaseCellNumber=ue._getBaseCellNumber,f8=e._getDirectedEdgeDestination=ue._getDirectedEdgeDestination,h8=e._getDirectedEdgeOrigin=ue._getDirectedEdgeOrigin,d8=e._getHexagonAreaAvgKm2=ue._getHexagonAreaAvgKm2,p8=e._getHexagonAreaAvgM2=ue._getHexagonAreaAvgM2,m8=e._getHexagonEdgeLengthAvgKm=ue._getHexagonEdgeLengthAvgKm,g8=e._getHexagonEdgeLengthAvgM=ue._getHexagonEdgeLengthAvgM,B8=e._getIcosahedronFaces=ue._getIcosahedronFaces,C8=e._getIndexDigit=ue._getIndexDigit,T8=e._getNumCells=ue._getNumCells,y8=e._getPentagons=ue._getPentagons,b8=e._getRes0Cells=ue._getRes0Cells,E8=e._getResolution=ue._getResolution,_8=e._greatCircleDistanceKm=ue._greatCircleDistanceKm,x8=e._greatCircleDistanceM=ue._greatCircleDistanceM,I8=e._greatCircleDistanceRads=ue._greatCircleDistanceRads,w8=e._gridDisk=ue._gridDisk,M8=e._gridDiskDistances=ue._gridDiskDistances,S8=e._gridDistance=ue._gridDistance,v8=e._gridPathCells=ue._gridPathCells,F8=e._gridPathCellsSize=ue._gridPathCellsSize,R8=e._gridRing=ue._gridRing,L8=e._gridRingUnsafe=ue._gridRingUnsafe,D8=e._i64Add=ue._i64Add,P8=e._i64Subtract=ue._i64Subtract,O8=e._isPentagon=ue._isPentagon,N8=e._isResClassIII=ue._isResClassIII,G8=e._isValidCell=ue._isValidCell,U8=e._isValidDirectedEdge=ue._isValidDirectedEdge,k8=e._isValidIndex=ue._isValidIndex,H8=e._isValidVertex=ue._isValidVertex,V8=e._latLngToCell=ue._latLngToCell,J8=e._llvm_ctlz_i64=ue._llvm_ctlz_i64,j8=e._llvm_maxnum_f64=ue._llvm_maxnum_f64,Q8=e._llvm_minnum_f64=ue._llvm_minnum_f64,K8=e._llvm_round_f64=ue._llvm_round_f64,z8=e._localIjToCell=ue._localIjToCell,X8=e._malloc=ue._malloc,Y8=e._maxFaceCount=ue._maxFaceCount,W8=e._maxGridDiskSize=ue._maxGridDiskSize,q8=e._maxPolygonToCellsSize=ue._maxPolygonToCellsSize,Z8=e._maxPolygonToCellsSizeExperimental=ue._maxPolygonToCellsSizeExperimental,$8=e._memcpy=ue._memcpy,eP=e._memmove=ue._memmove,tP=e._memset=ue._memset,rP=e._originToDirectedEdges=ue._originToDirectedEdges,nP=e._pentagonCount=ue._pentagonCount,sP=e._polygonToCells=ue._polygonToCells,iP=e._polygonToCellsExperimental=ue._polygonToCellsExperimental,oP=e._readInt64AsDoubleFromPointer=ue._readInt64AsDoubleFromPointer,AP=e._res0CellCount=ue._res0CellCount,aP=e._reverseDirectedEdge=ue._reverseDirectedEdge,cP=e._round=ue._round,lP=e._sbrk=ue._sbrk,uP=e._sizeOfCellBoundary=ue._sizeOfCellBoundary,fP=e._sizeOfCoordIJ=ue._sizeOfCoordIJ,hP=e._sizeOfGeoLoop=ue._sizeOfGeoLoop,dP=e._sizeOfGeoPolygon=ue._sizeOfGeoPolygon,pP=e._sizeOfH3Index=ue._sizeOfH3Index,mP=e._sizeOfLatLng=ue._sizeOfLatLng,gP=e._sizeOfLinkedGeoPolygon=ue._sizeOfLinkedGeoPolygon,BP=e._uncompactCells=ue._uncompactCells,CP=e._uncompactCellsSize=ue._uncompactCellsSize,TP=e._vertexToLatLng=ue._vertexToLatLng,yP=e.establishStackSpace=ue.establishStackSpace,Pf=e.stackAlloc=ue.stackAlloc,_C=e.stackRestore=ue.stackRestore,xC=e.stackSave=ue.stackSave,bP=e.dynCall_iii=ue.dynCall_iii;if(e.asm=ue,e.cwrap=ie,e.setValue=O,e.getValue=N,rn){vf(rn)||(rn=h(rn));{cC("memory initializer");
4var T0=function(q){q.byteLength&&(q=new Uint8Array(q)),De.set(q,S),e.memoryInitializerRequest&&delete e.memoryInitializerRequest.response,lC("memory initializer")},Of=function(){p(rn,T0,function(){throw"could not load memory initializer "+rn})},Nf=C0(rn);if(Nf)T0(Nf.buffer);else if(e.memoryInitializerRequest){var Gf=function(){var q=e.memoryInitializerRequest,ae=q.response;if(q.status!==200&&q.status!==0){var Te=C0(e.memoryInitializerRequestURL);if(Te)ae=Te.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+q.status+", retrying "+rn),Of();return}}T0(ae)};e.memoryInitializerRequest.response?setTimeout(Gf,0):e.memoryInitializerRequest.addEventListener("load",Gf)}else Of()}}var xo;Ii=function q(){xo||y0(),xo||(Ii=q)};function y0(q){if(q=q||i,kn>0||(pn(),kn>0))return;function ae(){xo||(xo=!0,!Q&&(gs(),_i(),e.onRuntimeInitialized&&e.onRuntimeInitialized(),xi()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),ae()},1)):ae()}e.run=y0;function Hn(q){throw e.onAbort&&e.onAbort(q),q+="",B(q),T(q),Q=!0,"abort("+q+"). Build with -s ASSERTIONS=1 for more info."}if(e.abort=Hn,e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return y0(),r})(typeof Ze=="object"?Ze:{}),Me="number",we=Me,Fs=Me,ve=Me,Fe=Me,Nt=Me,be=Me,Sb=[["sizeOfH3Index",Me],["sizeOfLatLng",Me],["sizeOfCellBoundary",Me],["sizeOfGeoLoop",Me],["sizeOfGeoPolygon",Me],["sizeOfLinkedGeoPolygon",Me],["sizeOfCoordIJ",Me],["readInt64AsDoubleFromPointer",Me],["isValidCell",Fs,[ve,Fe]],["isValidIndex",Fs,[ve,Fe]],["latLngToCell",we,[Me,Me,Nt,be]],["cellToLatLng",we,[ve,Fe,be]],["cellToBoundary",we,[ve,Fe,be]],["maxGridDiskSize",we,[Me,be]],["gridDisk",we,[ve,Fe,Me,be]],["gridDiskDistances",we,[ve,Fe,Me,be,be]],["gridRing",we,[ve,Fe,Me,be]],["gridRingUnsafe",we,[ve,Fe,Me,be]],["maxPolygonToCellsSize",we,[be,Nt,Me,be]],["polygonToCells",we,[be,Nt,Me,be]],["maxPolygonToCellsSizeExperimental",we,[be,Nt,Me,be]],["polygonToCellsExperimental",we,[be,Nt,Me,Me,Me,be]],["cellsToLinkedMultiPolygon",we,[be,Me,be]],["destroyLinkedMultiPolygon",null,[be]],["compactCells",we,[be,be,Me,Me]],["uncompactCells",we,[be,Me,Me,be,Me,Nt]],["uncompactCellsSize",we,[be,Me,Me,Nt,be]],["isPentagon",Fs,[ve,Fe]],["isResClassIII",Fs,[ve,Fe]],["getBaseCellNumber",Me,[ve,Fe]],["getResolution",Me,[ve,Fe]],["getIndexDigit",Me,[ve,Fe,Me]],["constructCell",we,[Me,Me,be,be]],["maxFaceCount",we,[ve,Fe,be]],["getIcosahedronFaces",we,[ve,Fe,be]],["cellToParent",we,[ve,Fe,Nt,be]],["cellToChildren",we,[ve,Fe,Nt,be]],["cellToCenterChild",we,[ve,Fe,Nt,be]],["cellToChildrenSize",we,[ve,Fe,Nt,be]],["cellToChildPos",we,[ve,Fe,Nt,be]],["childPosToCell",we,[Me,Me,ve,Fe,Nt,be]],["areNeighborCells",we,[ve,Fe,ve,Fe,be]],["cellsToDirectedEdge",we,[ve,Fe,ve,Fe,be]],["getDirectedEdgeOrigin",we,[ve,Fe,be]],["getDirectedEdgeDestination",we,[ve,Fe,be]],["isValidDirectedEdge",Fs,[ve,Fe]],["directedEdgeToCells",we,[ve,Fe,be]],["originToDirectedEdges",we,[ve,Fe,be]],["directedEdgeToBoundary",we,[ve,Fe,be]],["reverseDirectedEdge",we,[ve,Fe,be]],["gridDistance",we,[ve,Fe,ve,Fe,be]],["gridPathCells",we,[ve,Fe,ve,Fe,be]],["gridPathCellsSize",we,[ve,Fe,ve,Fe,be]],["cellToLocalIj",we,[ve,Fe,ve,Fe,Me,be]],["localIjToCell",we,[ve,Fe,be,Me,be]],["getHexagonAreaAvgM2",we,[Nt,be]],["getHexagonAreaAvgKm2",we,[Nt,be]],["getHexagonEdgeLengthAvgM",we,[Nt,be]],["getHexagonEdgeLengthAvgKm",we,[Nt,be]],["greatCircleDistanceM",Me,[be,be]],["greatCircleDistanceKm",Me,[be,be]],["greatCircleDistanceRads",Me,[be,be]],["cellAreaM2",we,[ve,Fe,be]],["cellAreaKm2",we,[ve,Fe,be]],["cellAreaRads2",we,[ve,Fe,be]],["edgeLengthM",we,[ve,Fe,be]],["edgeLengthKm",we,[ve,Fe,be]],["edgeLengthRads",we,[ve,Fe,be]],["getNumCells",we,[Nt,be]],["getRes0Cells",we,[be]],["res0CellCount",Me],["getPentagons",we,[Me,be]
4],["pentagonCount",Me],["cellToVertex",we,[ve,Fe,Me,be]],["cellToVertexes",we,[ve,Fe,be]],["vertexToLatLng",we,[ve,Fe,be]],["isValidVertex",Fs,[ve,Fe]]],vb=0,Fb=1,Rb=2,Lb=3,_p=4,Db=5,Pb=6,Ob=7,Nb=8,Gb=9,Ub=10,kb=11,Hb=12,Vb=13,Jb=14,jb=15,Qb=16,Kb=17,zb=18,Xb=19,Bt={};Bt[vb]="Success";Bt[Fb]="The operation failed but a more specific error is not available";Bt[Rb]="Argument was outside of acceptable range";Bt[Lb]="Latitude or longitude arguments were outside of acceptable range";Bt[_p]="Resolution argument was outside of acceptable range";Bt[Db]="Cell argument was not valid";Bt[Pb]="Directed edge argument was not valid";Bt[Ob]="Undirected edge argument was not valid";Bt[Nb]="Vertex argument was not valid";Bt[Gb]="Pentagon distortion was encountered";Bt[Ub]="Duplicate input";Bt[kb]="Cell arguments were not neighbors";Bt[Hb]="Cell arguments had incompatible resolutions";Bt[Vb]="Memory allocation failed";Bt[Jb]="Bounds of provided memory were insufficient";Bt[jb]="Mode or flags argument was not valid";Bt[Qb]="Index argument was not valid";Bt[Kb]="Base cell number was outside of acceptable range";Bt[zb]="Child indexing digits invalid";Bt[Xb]="Child indexing digits refer to a deleted subsequence";var xp=1e3,Yb=1001,Ip=1002,BA={};BA[xp]="Unknown unit";BA[Yb]="Array length out of bounds";BA[Ip]="Got unexpected null value for H3 index";var Wb="Unknown error";function wp(r,e,t){var n=t&&"value"in t,i=new Error((r[e]||Wb)+" (code: "+e+(n?", value: "+t.value:"")+")");return i.code=e,i}function Mp(r,e){var t=arguments.length===2?{value:e}:{};return wp(Bt,r,t)}function Sp(r,e){var t=arguments.length===2?{value:e}:{};return wp(BA,r,t)}function Zn(r){if(r!==0)throw Mp(r)}var It={};Sb.forEach(function(e){It[e[0]]=Ze.cwrap.apply(Ze,e)});var Rs=16;var vp=4,yp=4,wn=8,qb=8,mA=It.sizeOfH3Index(),Fp=It.sizeOfLatLng(),Zb=It.sizeOfCellBoundary(),hO=It.sizeOfGeoPolygon(),dO=It.sizeOfGeoLoop(),$b=It.sizeOfLinkedGeoPolygon(),pO=It.sizeOfCoordIJ(),bp={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function eE(r){if(typeof r!="number"||r<0||r>15||Math.floor(r)!==r)throw Mp(_p,r);return r}function tE(r){if(!r)throw Sp(Ip);return r}var mO=Math.pow(2,32)-1,gO=Math.pow(2,31)-1;var rE=/[^0-9a-fA-F]/;function $n(r){if(Array.isArray(r)&&r.length===2&&Number.isInteger(r[0])&&Number.isInteger(r[1]))return r;if(typeof r!="string"||rE.test(r))return[0,0];var e=parseInt(r.substring(0,r.length-8),Rs),t=parseInt(r.substring(r.length-8),Rs);return[t,e]}function Ep(r){if(r>=0)return r.toString(Rs);r=r&2147483647;var e=Rp(8,r.toString(Rs)),t=(parseInt(e[0],Rs)+8).toString(Rs);return e=t+e.substring(1),e}function nE(r,e){return Ep(e)+Rp(8,Ep(r))}function Rp(r,e){for(var t=r-e.length,n="",i=0;i<t;i++)n+="0";return n=n+e,n}var BO=Math.pow(2,32);function sE(r,e){e===void 0&&(e=0);var t=Ze.getValue(r+mA*e,"i32"),n=Ze.getValue(r+mA*e+vp,"i32");return n?nE(t,n):null}function iE(r,e){return e===void 0&&(e=0),Ze.getValue(r+wn*e,"double")}function oE(r){return It.readInt64AsDoubleFromPointer(r)}function AE(r,e,t){Ze.HEAPU32.set($n(r),e/vp+2*t)}function aE(r,e){for(var t=e.length,n=0;n<t;n++)AE(e[n],r,n)}function gA(r){return fE(Ze.getValue(r,"double"))}function _c(r){return[gA(r),gA(r+wn)]}function Lp(r){return[gA(r+wn),gA(r)]}function cE(r,e,t){for(var n=Ze.getValue(r,"i32"),i=r+wn,A=[],h=e?Lp:_c,p=0;p<n*2;p+=2)A.push(h(i+wn*p));return t&&A.push(A[0]),A}function lE(r,e){for(var t=[],n=e?Lp:_c,i,A,h,p;r;){for(t.push(i=[]),A=Ze.getValue(r,"i8*");A;){for(i.push(h=[]),p=Ze.getValue(A,"i8*");p;)h.push(n(p)),p=Ze.getValue(p+wn*2,"i8*");e&&h.push(h[0]),A=Ze.getValue(A+yp*2,"i8*")}r=Ze.getValue(r+yp*2,"i8*")}return t}function Dp(r){var e=$n(r),t=e[0],n=e[1];return!!It.isPentagon(t,n)}function Pp(r){var e=$n(r),t=e[0],n=e[1];return It.isValidCell(t,n)?It.getResolution(t,n):-1}function Op(r,e,t){var n=Ze._malloc(Fp);Ze.HEAPF64.set([r,e].map(uE),n/wn);var i=Ze._malloc(mA);try{return Zn(It.latLngToCell(n,t,i)),tE(sE(i))}finally{Ze._free(i),Ze._free(n)}}
vendor: 6,882 bytes, lines 4-6
4function Hi(r){var e=Ze._malloc(Fp),t=$n(r),n=t[0],i=t[1];try{return Zn(It.cellToLatLng(n,i,e)),_c(e)}finally{Ze._free(e)}}function Np(r,e){var t=Ze._malloc(Zb),n=$n(r),i=n[0],A=n[1];try{return Zn(It.cellToBoundary(i,A,t)),cE(t,e,e)}finally{Ze._free(t)}}function Gp(r,e){if(!r||!r.length)return[];var t=r.length,n=Ze._calloc(t,mA);aE(n,r);var i=Ze._calloc($b);try{return Zn(It.cellsToLinkedMultiPolygon(n,t,i)),lE(i,e)}finally{It.destroyLinkedMultiPolygon(i),Ze._free(i),Ze._free(n)}}function Up(r,e){var t=$n(r),n=t[0],i=t[1],A=$n(e),h=A[0],p=A[1],B=Ze._malloc(qb);try{return Zn(It.gridDistance(n,i,h,p,B)),oE(B)}finally{Ze._free(B)}}function kp(r,e){eE(r);var t=Ze._malloc(wn);try{switch(e){case bp.m:Zn(It.getHexagonEdgeLengthAvgM(r,t));break;case bp.km:Zn(It.getHexagonEdgeLengthAvgKm(r,t));break;default:throw Sp(xp,e)}return iE(t)}finally{Ze._free(t)}}function uE(r){return r*Math.PI/180}function fE(r){return r*180/Math.PI}function CA(r,e){e=e===void 0?r[0][0]:e;for(let t of r){let n=t[0]-e;n>180?t[0]-=360:n<-180&&(t[0]+=360)}}function hE(r,e,t){let[n,i]=Hi(r),A=e.length;CA(e,i);let h=e[0]===e[A-1]?A-1:A;for(let p=0;p<h;p++)e[p][0]=_s(i,e[p][0],t),e[p][1]=_s(n,e[p][1],t)}function Hp(r,e,t){let n=r(e,t),[i,A]=Hi(n);return[A,i]}function xc(r,e=1){let t=Np(r,!0);return e!==1?hE(r,t,e):CA(t),t}function TA(r){let e=new Float64Array(r.length*2),t=0;for(let n of r)e[t++]=n[0],e[t++]=n[1];return e}var dE={getPentagon:{type:"accessor",value:r=>r.pentagon}},pE=(()=>{class r extends Gr{indexToBounds(){let{data:t,getPentagon:n}=this.props;return{data:t,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(i,A)=>{let h=n(i,A),p=gp(typeof h=="string"?Bp(h):h,{closedRing:!0,segments:"auto"});return TA(p)}}}}return r.layerName="A5Layer",r.defaultProps=dE,r})(),mE=pE;function gE(r){return typeof r=="string"?r.charAt(0).toLowerCase()+r.slice(1):r}function yA(r){if(Array.isArray(r))return r.map(e=>yA(e));if(r&&typeof r=="object"){let e={};for(let[t,n]of Object.entries(r))e[gE(t)]=yA(n);return e}return r}var Vp=":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",BE=Vp+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",CE="["+Vp+"]["+BE+"]*",TE=new RegExp("^"+CE+"$");function bA(r,e){let t=[],n=e.exec(r);for(;n;){let i=[];i.startIndex=e.lastIndex-n[0].length;let A=n.length;for(let h=0;h<A;h++)i.push(n[h]);t.push(i),n=e.exec(r)}return t}var Ic=function(r){let e=TE.exec(r);return!(e===null||typeof e>"u")};function Jp(r){return typeof r<"u"}var Vi=["hasOwnProperty","toString","valueOf","__defineGetter__","__defineSetter__","__lookupGetter__","__lookupSetter__"],EA=["__proto__","constructor","prototype"];var yE={allowBooleanAttributes:!1,unpairedTags:[]};function Xp(r,e){e=Object.assign({},yE,e);let t=[],n=!1,i=!1;r[0]==="\uFEFF"&&(r=r.substr(1));for(let A=0;A<r.length;A++)if(r[A]==="<"&&r[A+1]==="?"){if(A+=2,A=Qp(r,A),A.err)return A}else if(r[A]==="<"){let h=A;if(A++,r[A]==="!"){A=Kp(r,A);continue}else{let p=!1;r[A]==="/"&&(p=!0,A++);let B="";for(;A<r.length&&r[A]!==">"&&r[A]!==" "&&r[A]!==" "&&r[A]!==` 5`&&r[A]!=="\r";A++)B+=r[A];if(B=B.trim(),B[B.length-1]==="/"&&(B=B.substring(0,B.length-1),A--),!SE(B)){let E;return B.trim().length===0?E="Invalid space after '<'.":E="Tag '"+B+"' is an invalid name.",Ct("InvalidTag",E,Zt(r,A))}let T=_E(r,A);if(T===!1)return Ct("InvalidAttr","Attributes for '"+B+"' have open quote.",Zt(r,A));let y=T.value;if(A=T.index,y[y.length-1]==="/"){let E=A-y.length;y=y.substring(0,y.length-1);let I=zp(y,e);if(I===!0)n=!0;else return Ct(I.err.code,I.err.msg,Zt(r,E+I.err.line))}else if(p)if(T.tagClosed){if(y.trim().length>0)return Ct("InvalidTag","Closing tag '"+B+"' can't have attributes or invalid starting.",Zt(r,h));if(t.length===0)return Ct("InvalidTag","Closing tag '"+B+"' has not been opened.",Zt(r,h));{let E=t.pop();if(B!==E.tagName){let I=Zt(r,E.tagStartPos);return Ct("InvalidTag","Expected closing tag '"+E.tagName+"' (opened in line "+I.line+", col "+I.col+") instead of closing tag '"+B+"'.",Zt(r,h))}t.length==0&&(i=!0)}}else return Ct("InvalidTag","Closing tag '"+B+"' doesn't have proper closing.",Zt(r,A));else{let E=zp(y,e);if(E!==!0)return Ct(E.err.code,E.err.msg,Zt(r,A-y.length+E.err.line));if(i===!0)return Ct("InvalidXml","Multiple possible root nodes found.",Zt(r,A));e.unpairedTags.indexOf(B)!==-1||t.push({tagName:B,tagStartPos:h}),n=!0}for(A++;A<r.length;A++)if(r[A]==="<")if(r[A+1]==="!"){A++,A=Kp(r,A);continue}else if(r[A+1]==="?"){if(A=Qp(r,++A),A.err)return A}else break;else if(r[A]==="&"){let E=wE(r,A);if(E==-1)return Ct("InvalidChar","char '&' is not expected.",Zt(r,A));A=E}else if(i===!0&&!jp(r[A]))return Ct("InvalidXml","Extra text at the end",Zt(r,A));r[A]==="<"&&A--}}else{if(jp(r[A]))continue;return Ct("InvalidChar","char '"+r[A]+"' is not expected.",Zt(r,A))}if(n){if(t.length==1)return Ct("InvalidTag","Unclosed tag '"+t[0].tagName+"'.",Zt(r,t[0].tagStartPos));if(t.length>0)return Ct("InvalidXml","Invalid '"+JSON.stringify(t.map(A=>A.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return Ct("InvalidXml","Start tag expected.",1);return!0}function jp(r){return r===" "||r===" "||r===` 6`||r==="\r"}function Qp(r,e){let t=e;for(;e<r.length;e++)if(r[e]=="?"||r[e]==" "){let n=r.substr(t,e-t);if(e>5&&n==="xml")return Ct("InvalidXml","XML declaration allowed only at the start of the document.",Zt(r,e));if(r[e]=="?"&&r[e+1]==">"){e++;break}else continue}return e}function Kp(r,e){if(r.length>e+5&&r[e+1]==="-"&&r[e+2]==="-"){for(e+=3;e<r.length;e++)if(r[e]==="-"&&r[e+1]==="-"&&r[e+2]===">"){e+=2;break}}else if(r.length>e+8&&r[e+1]==="D"&&r[e+2]==="O"&&r[e+3]==="C"&&r[e+4]==="T"&&r[e+5]==="Y"&&r[e+6]==="P"&&r[e+7]==="E"){let t=1;for(e+=8;e<r.length;e++)if(r[e]==="<")t++;else if(r[e]===">"&&(t--,t===0))break}else if(r.length>e+9&&r[e+1]==="["&&r[e+2]==="C"&&r[e+3]==="D"&&r[e+4]==="A"&&r[e+5]==="T"&&r[e+6]==="A"&&r[e+7]==="["){for(e+=8;e<r.length;e++)if(r[e]==="]"&&r[e+1]==="]"&&r[e+2]===">"){e+=2;break}}return e}var bE='"',EE="'";function _E(r,e){let t="",n="",i=!1;for(;e<r.length;e++){if(r[e]===bE||r[e]===EE)n===""?n=r[e]:n!==r[e]||(n="");else if(r[e]===">"&&n===""){i=!0;break}t+=r[e]}return n!==""?!1:{value:t,index:e,tagClosed:i}}var xE=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function zp(r,e){let t=bA(r,xE),n={};for(let i=0;i<t.length;i++){if(t[i][1].length===0)return Ct("InvalidAttr","Attribute '"+t[i][2]+"' has no space in starting.",Ji(t[i]));if(t[i][3]!==void 0&&t[i][4]===void 0)return Ct("InvalidAttr","Attribute '"+t[i][2]+"' is without value.",Ji(t[i]));if(t[i][3]===void 0&&!e.allowBooleanAttributes)return Ct("InvalidAttr","boolean attribute '"+t[i][2]+"' is not allowed.",Ji(t[i]));let A=t[i][2];if(!ME(A))return Ct("InvalidAttr","Attribute '"+A+"' is an invali
6d name.",Ji(t[i]));if(!Object.prototype.hasOwnProperty.call(n,A))n[A]=1;else return Ct("InvalidAttr","Attribute '"+A+"' is repeated.",Ji(t[i]))}return!0}function IE(r,e){let t=/\d/;for(r[e]==="x"&&(e++,t=/[\da-fA-F]/);e<r.length;e++){if(r[e]===";")return e;if(!r[e].match(t))break}return-1}function wE(r,e){if(e++,r[e]===";")return-1;if(r[e]==="#")return e++,IE(r,e);let t=0;for(;e<r.length;e++,t++)if(!(r[e].match(/\w/)&&t<20)){if(r[e]===";")break;return-1}return e}function Ct(r,e,t){return{err:{code:r,msg:e,line:t.line||t,col:t.col}}}function ME(r){return Ic(r)}function SE(r){return Ic(r)}function Zt(r,e){let t=r.substring(0,e).split(/\r?\n/);return{line:t.length,col:t[t.length-1].length+1}}function Ji(r){return r.startIndex+r[1].length}var wc={cent:"\xA2",pound:"\xA3",curren:"\xA4",yen:"\xA5",euro:"\u20AC",dollar:"$",fnof:"\u0192",inr:"\u20B9",af:"\u060B",birr:"\u1265\u122D",peso:"\u20B1",rub:"\u20BD",won:"\u20A9",yuan:"\xA5",cedil:"\xB8"};var ji={amp:"&",apos:"'",gt:">",lt:"<",quot:'"'},Mc={nbsp:"\xA0",copy:"\xA9",reg:"\xAE",trade:"\u2122",mdash:"\u2014",ndash:"\u2013",hellip:"\u2026",laquo:"\xAB",raquo:"\xBB",lsquo:"\u2018",rsquo:"\u2019",ldquo:"\u201C",rdquo:"\u201D",bull:"\u2022",para:"\xB6",sect:"\xA7",deg:"\xB0",frac12:"\xBD",frac14:"\xBC",frac34:"\xBE"};var Ls=Object.freeze({ALLOW:"allow",BLOCK:"block",THROW:"throw"}),vE=new Set("!?\\\\/[]$%{}^&*()<>|+");function Yp(r){if(r[0]==="#")throw new Error(`[EntityReplacer] Invalid character '#' in entity name: "${r}"`);for(let e of r)if(vE.has(e))throw new Error(`[EntityReplacer] Invalid character '${e}' in entity name: "${r}"`);return r}function Qi(...r){let e=Object.create(null);for(let t of r)if(t)for(let n of Object.keys(t)){let i=t[n];if(typeof i=="string")e[n]=i;else if(i&&typeof i=="object"&&i.val!==void 0){let A=i.val;typeof A=="string"&&(e[n]=A)}}return e}var es="external",_A="base",Sc="all";function FE(r){return!r||r===es?new Set([es]):r===Sc?new Set([Sc]):r===_A?new Set([_A]):Array.isArray(r)?new Set(r):new Set([es])}var Ar=Object.freeze({allow:0,leave:1,remove:2,throw:3}),RE=new Set([9,10,13]);function LE(r){if(!r)return{xmlVersion:1,onLevel:Ar.allow,nullLevel:Ar.remove};let e=r.xmlVersion===1.1?1.1:1,t=Ar[r.onNCR]??Ar.allow,n=Ar[r.nullNCR]??Ar.remove,i=Math.max(n,Ar.remove);return{xmlVersion:e,onLevel:t,nullLevel:i}}var Ki=class{constructor(e={}){this._limit=e.limit||{},this._maxTotalExpansions=this._limit.maxTotalExpansions||0,this._maxExpandedLength=this._limit.maxExpandedLength||0,this._postCheck=typeof e.postCheck=="function"?e.postCheck:n=>n,this._limitTiers=FE(this._limit.applyLimitsTo??es),this._numericAllowed=e.numericAllowed??!0,this._baseMap=Qi(ji,e.namedEntities||null),this._externalMap=Object.create(null),this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this._removeSet=new Set(e.remove&&Array.isArray(e.remove)?e.remove:[]),this._leaveSet=new Set(e.leave&&Array.isArray(e.leave)?e.leave:[]);let t=LE(e.ncr);this._ncrXmlVersion=t.xmlVersion,this._ncrOnLevel=t.onLevel,this._ncrNullLevel=t.nullLevel,this._onExternalEntity=typeof e.onExternalEntity=="function"?e.onExternalEntity:null,this._onInputEntity=typeof e.onInputEntity=="function"?e.onInputEntity:null}_applyRegistrationHook(e,t,n,i){if(!e)return!0;let A=e(t,n);if(A===Ls.BLOCK)return!1;if(A===Ls.THROW)throw new Error(`[EntityDecoder] Registration of ${i} entity "&${t};" was rejected by hook`);return!0}setExternalEntities(e){if(e)for(let i of Object.keys(e))Yp(i);if(!this._onExternalEntity){this._externalMap=Qi(e);return}let t=Qi(e),n=Object.create(null);for(let[i,A]of Object.entries(t))this._applyRegistrationHook(this._onExternalEntity,i,A,"external")&&(n[i]=A);this._externalMap=n}addExternalEntity(e,t){Yp(e),typeof t=="string"&&t.indexOf("&")===-1&&this._applyRegistrationHook(this._onExternalEntity,e,t,"external")&&(this._externalMap[e]=t)}addInputEntities(e){if(this._totalExpansions=0,this._expandedLength=0,!this._onInputEntity){this._inputMap=Qi(e);return}let t=Qi(e),n=Object.create(null);for(let[i,A]of Object.entries(t))this._applyRegistrationHook(this._onInputEntity,i,A,"input")&&(n[i]=A);this._inputMap=n}reset(){return this._inputMap=Object.create(null),this._totalExpansions=0,this._expandedLength=0,this}setXmlVersion(e){this._ncrXmlVersion=e===1.1?1.1:1}decode(e){if(typeof e!="string"||e.length===0||e.indexOf("&")===-1)return e;let t=e,n=[],i=e.length,A=0,h=0,p=this._maxTotalExpansions>0,B=this._maxExpandedLength>0,T=p||B;for(;h<i;){if(e.charCodeAt(h)!==38){h++;continue}let E=h+1;for(;E<i&&e.charCodeAt(E)!==59&&E-h<=32;)E++;if(E>=i||e.charCodeAt(E)!==59){h++;continue}let I=e.slice(h+1,E);if(I.length===0){h++;continue}let S,O;if(this._removeSet.has(I))S="",O===void 0&&(O=es);else if(this._leaveSet.has(I)){h++;continue}
6else if(I.charCodeAt(0)===35){let N=this._resolveNCR(I);if(N===void 0){h++;continue}S=N,O=_A}else{let N=this._resolveName(I);S=N?.value,O=N?.tier}if(S===void 0){h++;continue}if(h>A&&n.push(e.slice(A,h)),n.push(S),A=E+1,h=A,T&&this._tierCounts(O)){if(p&&(this._totalExpansions++,this._totalExpansions>this._maxTotalExpansions))throw new Error(`[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}`);if(B){let N=S.length-(I.length+2);if(N>0&&(this._expandedLength+=N,this._expandedLength>this._maxExpandedLength))throw new Error(`[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}`)}}}A<i&&n.push(e.slice(A));let y=n.length===0?e:n.join("");return this._postCheck(y,t)}_tierCounts(e){return this._limitTiers.has(Sc)?!0:this._limitTiers.has(e)}_resolveName(e){if(e in this._inputMap)return{value:this._inputMap[e],tier:es};if(e in this._externalMap)return{value:this._externalMap[e],tier:es};if(e in this._baseMap)return{value:this._baseMap[e],tier:_A}}_classifyNCR(e){return e===0?this._ncrNullLevel:e>=55296&&e<=57343||this._ncrXmlVersion===1&&e>=1&&e<=31&&!RE.has(e)?Ar.remove:-1}_applyNCRAction(e,t,n){switch(e){case Ar.allow:return String.fromCodePoint(n);case Ar.remove:return"";case Ar.leave:return;case Ar.throw:throw new Error(`[EntityDecoder] Prohibited numeric character reference &${t}; (U+${n.toString(16).toUpperCase().padStart(4,"0")})`);default:return String.fromCodePoint(n)}}_resolveNCR(e){let t=e.charCodeAt(1),n;if(t===120||t===88?n=parseInt(e.slice(2),16):n=parseInt(e.slice(1),10),Number.isNaN(n)||n<0||n>1114111)return;let i=this._classifyNCR(n);if(!this._numericAllowed&&i<Ar.remove)return;let A=i===-1?this._ncrOnLevel:Math.max(this._ncrOnLevel,i);return this._applyNCRAction(A,e,n)}};var Wp=r=>Vi.includes(r)?"__"+r:r,DE={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,unicode:!1},tagValueProcessor:function(r,e){return e},attributeValueProcessor:function(r,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,entityDecoder:null,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(r,e,t){return r},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:Wp};function PE(r,e){if(typeof r!="string")return;let t=r.toLowerCase();if(Vi.some(n=>t===n.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${r}" is a reserved JavaScript keyword that could cause prototype pollution`);if(EA.some(n=>t===n.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${r}" is a reserved JavaScript keyword that could cause prototype pollution`)}function qp(r,e){return typeof r=="boolean"?{enabled:r,maxEntitySize:1e4,maxExpansionDepth:1e4,maxTotalExpansions:1/0,maxExpandedLength:1e5,maxEntityCount:1e3,allowedTags:null,tagFilter:null,appliesTo:"all"}:typeof r=="object"&&r!==null?{enabled:r.enabled!==!1,maxEntitySize:Math.max(1,r.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,r.maxExpansionDepth??1e4),maxTotalExpansions:Math.max(1,r.maxTotalExpansions??1/0),maxExpandedLength:Math.max(1,r.maxExpandedLength??1e5),maxEntityCount:Math.max(1,r.maxEntityCount??1e3),allowedTags:r.allowedTags??null,tagFilter:r.tagFilter??null,appliesTo:r.appliesTo??"all"}:qp(!0)}var Zp=function(r){let e=Object.assign({},DE,r),t=[{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:i}of t)n&&PE(n,i);return e.onDangerousProperty===null&&(e.onDangerousProperty=Wp),e.processEntities=qp(e.processEntities,e.htmlEntities),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 xA;typeof Symbol!="function"?xA="@@xmlMetadata":xA=Symbol("XML Node Metadata");var pr=class{constructor(e){this.tagname=e,this.child=[],this[":@"]=Object.create(null)}add(e,t){e==="__proto__"&&(e="#__proto__"),this.child.push({[e]:t})}addChild(e,t){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}),t!==void 0&&(this.child[this.child.length-1][xA]={startIndex:t})}static getMetaDataSymbol(){return xA}};var $p=":A-Za-z_\xC0-\xD6\xD8-\xF6\xF8-\u02FF\u0370-\u037D\u037F-\u0486\u0488-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD",OE=$p+"\\-\\.\\d\xB7\u0300-\u036F\u203F-\u2040",em=":A-Za-z_\xC0-\u02FF\u0370-\u037D\u037F-\u0486\u0488-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\u{10000}-\u{EFFFF}",NE=em+"\\-\\.\\d\xB7\u0300-\u036F\u0487\u203F-\u2040",vc=(r,e,t="")=>{let n=r.replace(":",""),i=e.replace(":",""),A=`[${n}][${i}]*`;return{name:new RegExp(`^[${r}][${e}]*$`,t),ncName:new RegExp(`^${A}$`,t),qName:new RegExp(`^${A}(?::${A})?$`,t),nmToken:new RegExp(`^[${e}
6]+$`,t),nmTokens:new RegExp(`^[${e}]+(?:\\s+[${e}]+)*$`,t)}},GE=vc($p,OE),UE=vc(em,NE,"u"),tm=":A-Za-z_",kE=tm+"\\-\\.\\d",HE=vc(tm,kE),VE=(r="1.0",e=!1)=>e?HE:r==="1.1"?UE:GE;var Fc=(r,{xmlVersion:e="1.0",asciiOnly:t=!1}={})=>VE(e,t).qName.test(r);var IA=class{constructor(e,t){this.suppressValidationErr=!e,this.options=e,this.xmlVersion=t||1}setXmlVersion(e=1){this.xmlVersion=e}readDocType(e,t){let n=Object.create(null),i=0;if(e[t+3]==="O"&&e[t+4]==="C"&&e[t+5]==="T"&&e[t+6]==="Y"&&e[t+7]==="P"&&e[t+8]==="E"){t=t+9;let A=1,h=!1,p=!1,B="";for(;t<e.length;t++)if(e[t]==="<"&&!p){if(h&&ts(e,"!ENTITY",t)){t+=7;let T,y;if([T,y,t]=this.readEntityExp(e,t+1,this.suppressValidationErr),y.indexOf("&")===-1){if(this.options.enabled!==!1&&this.options.maxEntityCount!=null&&i>=this.options.maxEntityCount)throw new Error(`Entity count (${i+1}) exceeds maximum allowed (${this.options.maxEntityCount})`);n[T]=y,i++}}else if(h&&ts(e,"!ELEMENT",t)){t+=8;let{index:T}=this.readElementExp(e,t+1);t=T}else if(h&&ts(e,"!ATTLIST",t))t+=8;else if(h&&ts(e,"!NOTATION",t)){t+=9;let{index:T}=this.readNotationExp(e,t+1,this.suppressValidationErr);t=T}else if(ts(e,"!--",t))p=!0;else throw new Error("Invalid DOCTYPE");A++,B=""}else if(e[t]===">"){if(p?e[t-1]==="-"&&e[t-2]==="-"&&(p=!1,A--):A--,A===0)break}else e[t]==="["?h=!0:B+=e[t];if(A!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:n,i:t}}readEntityExp(e,t){t=ar(e,t);let n=t;for(;t<e.length&&!/\s/.test(e[t])&&e[t]!=='"'&&e[t]!=="'";)t++;let i=e.substring(n,t);if(zi(i,{xmlVersion:this.xmlVersion}),t=ar(e,t),!this.suppressValidationErr){if(e.substring(t,t+6).toUpperCase()==="SYSTEM")throw new Error("External entities are not supported");if(e[t]==="%")throw new Error("Parameter entities are not supported")}let A="";if([t,A]=this.readIdentifierVal(e,t,"entity"),this.options.enabled!==!1&&this.options.maxEntitySize!=null&&A.length>this.options.maxEntitySize)throw new Error(`Entity "${i}" size (${A.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return t--,[i,A,t]}
6readNotationExp(e,t){t=ar(e,t);let n=t;for(;t<e.length&&!/\s/.test(e[t]);)t++;let i=e.substring(n,t);!this.suppressValidationErr&&zi(i,{xmlVersion:this.xmlVersion}),t=ar(e,t);let A=e.substring(t,t+6).toUpperCase();if(!this.suppressValidationErr&&A!=="SYSTEM"&&A!=="PUBLIC")throw new Error(`Expected SYSTEM or PUBLIC, found "${A}"`);t+=A.length,t=ar(e,t);let h=null,p=null;if(A==="PUBLIC")[t,h]=this.readIdentifierVal(e,t,"publicIdentifier"),t=ar(e,t),(e[t]==='"'||e[t]==="'")&&([t,p]=this.readIdentifierVal(e,t,"systemIdentifier"));else if(A==="SYSTEM"&&([t,p]=this.readIdentifierVal(e,t,"systemIdentifier"),!this.suppressValidationErr&&!p))throw new Error("Missing mandatory system identifier for SYSTEM notation");return{notationName:i,publicIdentifier:h,systemIdentifier:p,index:--t}}readIdentifierVal(e,t,n){let i="",A=e[t];if(A!=='"'&&A!=="'")throw new Error(`Expected quoted string, found "${A}"`);t++;let h=t;for(;t<e.length&&e[t]!==A;)t++;if(i=e.substring(h,t),e[t]!==A)throw new Error(`Unterminated ${n} value`);return t++,[t,i]}readElementExp(e,t){t=ar(e,t);let n=t;for(;t<e.length&&!/\s/.test(e[t]);)t++;let i=e.substring(n,t);if(!this.suppressValidationErr&&!Fc(i,{xmlVersion:this.xmlVersion}))throw new Error(`Invalid element name: "${i}"`);t=ar(e,t);let A="";if(e[t]==="E"&&ts(e,"MPTY",t))t+=4;else if(e[t]==="A"&&ts(e,"NY",t))t+=2;else if(e[t]==="("){t++;let h=t;for(;t<e.length&&e[t]!==")";)t++;if(A=e.substring(h,t),e[t]!==")")throw new Error("Unterminated content model")}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found "${e[t]}"`);return{elementName:i,contentModel:A.trim(),index:t}}readAttlistExp(e,t){t=ar(e,t);let n=t;for(;t<e.length&&!/\s/.test(e[t]);)t++;let i=e.substring(n,t);for(zi(i,{xmlVersion:this.xmlVersion}),t=ar(e,t),n=t;t<e.length&&!/\s/.test(e[t]);)t++;let A=e.substring(n,t);if(!zi(A,{xmlVersion:this.xmlVersion}))throw new Error(`Invalid attribute name: "${A}"`);t=ar(e,t);let h="";if(e.substring(t,t+8).toUpperCase()==="NOTATION"){if(h="NOTATION",t+=8,t=ar(e,t),e[t]!=="(")throw new Error(`Expected '(', found "${e[t]}"`);t++;let B=[];for(;t<e.length&&e[t]!==")";){let T=t;for(;t<e.length&&e[t]!=="|"&&e[t]!==")";)t++;let y=e.substring(T,t);if(y=y.trim(),!zi(y,{xmlVersion:this.xmlVersion}))throw new Error(`Invalid notation name: "${y}"`);B.push(y),e[t]==="|"&&(t++,t=ar(e,t))}if(e[t]!==")")throw new Error("Unterminated list of notations");t++,h+=" ("+B.join("|")+")"}else{let B=t;for(;t<e.length&&!/\s/.test(e[t]);)t++;h+=e.substring(B,t);let T=["CDATA","ID","IDREF","IDREFS","ENTITY","ENTITIES","NMTOKEN","NMTOKENS"];if(!this.suppressValidationErr&&!T.includes(h.toUpperCase()))throw new Error(`Invalid attribute type: "${h}"`)}t=ar(e,t);let p="";return e.substring(t,t+8).toUpperCase()==="#REQUIRED"?(p="#REQUIRED",t+=8):e.substring(t,t+7).toUpperCase()==="#IMPLIED"?(p="#IMPLIED",t+=7):[t,p]=this.readIdentifierVal(e,t,"ATTLIST"),{elementName:i,attributeName:A,attributeType:h,defaultValue:p,index:t}}};var ar=(r,e)=>{for(;e<r.length&&/\s/.test(r[e]);)e++;return e};function ts(r,e,t){for(let n=0;n<e.length;n++)if(e[n]!==r[t+n+1])return!1;return!0}function zi(r,e){if(Fc(r,{xmlVersion:e}))return r;throw new Error(`Invalid entity name ${r}`)}var JE=[48,1632,1776,2406,2534,2662,2790,2918,3046,3174,3302,3430,3558,3664,3792,3872,4160,4240,6112,6160,6470,6608,6784,6800,6992,7088,7232,7248,65296,120782,120792,120802,120812,120822,66720,68912,69734,69872,69942,70096,70384,70736,70864,71248,71360,71472,71904,72016,72688,72784,73040,73120,73552,92768,92864,93008,123200,123632,124144,125264,130032],wA=255,MA=new Map,rm=65535,nm=1632,Ds=nm,jE=rm-nm+1,SA=new Uint8Array(jE).fill(wA);for(let r of JE)for(let e=0;e<10;e++){let t=r+e;t<=rm?SA[t-Ds]=e:MA.set(t,e)}var sm=48,im=57,om=45,vA=new Set([8722,65293,65123]);function QE(r){if(typeof r!="string")return r;let e=r.length;if(e===0)return r;let t=-1;for(let i=0;i<e;i++){let A=r.charCodeAt(i);if(!(A>=sm&&A<=im||A===om)){if(A<Ds){if(vA.has(A)){t=i;break}continue}if(A>=55296&&A<=56319){if(i+1<e){let h=r.charCodeAt(i+1);if(h>=56320&&h<=57343){let p=65536+(A-55296<<10)+(h-56320);if(MA.has(p)){t=i;break}}}continue}if(SA[A-Ds]!==wA||vA.has(A)){t=i;break}}}if(t===-1)return r;let n=[];t>0&&n.push(r.slice(0,t));for(let i=t;i<e;i++){let A=r.charCodeAt(i);if(A>=sm&&A<=im||A===om){n.push(r[i]);continue}if(A<Ds){n.push(vA.has(A)?"-":r[i]);continue}if(A>=55296&&A<=56319){if(i+1<e){let p=r.charCodeAt(i+1);if(p>=56320&&p<=57343){let B=65536+(A-55296<<10)+(p-56320),T=MA.get(B);if(T!==void 0){n.push(String.fromCharCode(T+48)),i++;continue}}}n.push(r[i]);continue}if(vA.has(A)){n.push("-");continue}let h=SA[A-Ds];n.push(h!==wA?String.fromCharCode(h+48):r[i])}return n.join("")}var Am=QE;var KE=/^[-+]?0x[a-fA-F0-9]+$/,zE=/^0b[01]+$/,XE=/^0o[0-7]+$/,YE=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,WE={hex:!0,binary:!1,octal:!1,leadingZeros:!0,decimalPoint:".",eNotation:!0,infinity:"original",unicode:!1};function Lc(r,e={}){if(e=Object.assign({},WE,e),!r||typeof r!="string")return r;let t=r.trim();if(t.length===0)return r;if(e.skipLike!==void 0&&e.skipLike.test(t))return r;if(t==="0"||e.unicode&&(t=Am(t),t==="0"))return 0;if(e.hex&&KE.test(t))return Rc(t,16);if(e.binary&&zE.test(t))return Rc(t,2);if(e.octal&&XE.test(t))return Rc(t,8);if(isFinite(t)){if(t.includes("e")||t.includes("E"))return ZE(r,t,e);{let n=YE.exec(t);if(n){let i=n[1]||"",A=n[2],h=$E(n[3]),p=i?r[A.length+1]===".":r[A.length]===".";if(!e.leadingZeros&&(A.length>1||A.length===1&&!p))return r;{let B=Number(t),T=String(B);if(B===0)return B;if(T.search(/[eE]/)!==-1)return e.eNotation?B:r;if(t.indexOf(".")!==-1)return T==="0"||T===h||T===`${i}${h}`?B:r;let y=A?h:t;return A?y===T||i+y===T?B:r:y===T||y===i+T?B:r}}else return r}}else return e_(r,Number(t),e)}var qE=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function ZE(r,e,t){if(!t.eNotation)return r;let n=e.match(qE);if(n){let i=n[1]||"",A=n[3].indexOf("e")===-1?"E":"e",h=n[2],p=i?r[h.length+1]===A:r[h.length]===A;return h.length>1&&p?r:h.length===1&&(n[3].startsWith(`.${A}`)||n[3][0]===A)?Number(e):h.length>0?t.leadingZeros&&!p?(e=(n[1]||"")+n[3],Number(e)):r:Number(e)}else return r}function $E(r){return r&&r.indexOf(".")!==-1&&(r=r.replace(/0+$/,""),r==="."?r="0":r[0]==="."?r="0"+r:r[r.length-1]==="."&&(r=r.substring(0,r.length-1))),r}function Rc(r,e){let t=r.trim();if((e===2||e===8)&&(r=t.substring(2)),parseInt)return parseInt(r,e);if(Number.parseInt)return Number.parseInt(r,e);if(window&&window.parseInt)return window.parseInt(r,e);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}function e_(r,e,t){let n=e===1/0;switch(t.infinity.toLowerCase()){case"null":return null;case"infinity":return e;case"string":return n?"Infinity":"-Infinity";default:return r}}function Dc(r){return typeof r=="function"?r:Array.isArray(r)?e=>{for(let t of r)if(typeof t=="string"&&e===t||t instanceof RegExp&&t.test(e))return!0}:()=>!1}var Ps=class{constructor(e,t={},n){this.pattern=e,this.separator=t.separator||".",this.segments=this._parse(e),this.data=n,this._hasDeepWildcard=this.segments.some(i=>i.type==="deep-wildcard"),this._hasAttributeCondition=this.segments.some(i=>i.attrName!==void 0),this._hasPositionSelector=this.segments.some(i=>i.position!==void 0)}_parse(e){let t=[],n=0,i="";for(;n<e.length;)e[n]===this.separator?n+1<e.length&&e[n+1]===this.separator?(i.trim()&&(t.push(this._parseSegment(i.trim())),i=""),t.pu
6sh({type:"deep-wildcard"}),n+=2):(i.trim()&&t.push(this._parseSegment(i.trim())),i="",n++):(i+=e[n],n++);return i.trim()&&t.push(this._parseSegment(i.trim())),t}_parseSegment(e){let t={type:"tag"},n=null,i=e,A=e.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(A&&(i=A[1]+A[3],A[2])){let y=A[2].slice(1,-1);y&&(n=y)}let h,p=i;if(i.includes("::")){let y=i.indexOf("::");if(h=i.substring(0,y).trim(),p=i.substring(y+2).trim(),!h)throw new Error(`Invalid namespace in pattern: ${e}`)}let B,T=null;if(p.includes(":")){let y=p.lastIndexOf(":"),E=p.substring(0,y).trim(),I=p.substring(y+1).trim();["first","last","odd","even"].includes(I)||/^nth\(\d+\)$/.test(I)?(B=E,T=I):B=p}else B=p;if(!B)throw new Error(`Invalid segment pattern: ${e}`);if(t.tag=B,h&&(t.namespace=h),n)if(n.includes("=")){let y=n.indexOf("=");t.attrName=n.substring(0,y).trim(),t.attrValue=n.substring(y+1).trim()}else t.attrName=n.trim();if(T){let y=T.match(/^nth\((\d+)\)$/);y?(t.position="nth",t.positionValue=parseInt(y[1],10)):t.position=T}return t}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}};var Xi=class{constructor(){this._byDepthAndTag=new Map,this._wildcardByDepth=new Map,this._deepWildcards=[],this._deepByTerminalTag=new Map,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()){let A=e.segments[e.segments.length-1];if(A&&A.type!=="deep-wildcard"&&A.tag!=="*"){let h=A.tag;this._deepByTerminalTag.has(h)||this._deepByTerminalTag.set(h,[]),this._deepByTerminalTag.get(h).push(e)}else this._deepWildcards.push(e);return this}let t=e.length,i=e.segments[e.segments.length-1]?.tag;if(!i||i==="*")this._wildcardByDepth.has(t)||this._wildcardByDepth.set(t,[]),this._wildcardByDepth.get(t).push(e);else{let A=`${t}:${i}`;this._byDepthAndTag.has(A)||this._byDepthAndTag.set(A,[]),this._byDepthAndTag.get(A).push(e)}return this}addAll(e){for(let t of e)this.add(t);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 t=e.getDepth(),n=e.getCurrentTag(),i=`${t}:${n}`,A=this._byDepthAndTag.get(i);if(A){for(let B=0;B<A.length;B++)if(e.matches(A[B]))return A[B]}let h=this._wildcardByDepth.get(t);if(h){for(let B=0;B<h.length;B++)if(e.matches(h[B]))return h[B]}let p=this._deepByTerminalTag.get(n);if(p){for(let B=0;B<p.length;B++)if(e.matches(p[B]))return p[B]}for(let B=0;B<this._deepWildcards.length;B++)if(e.matches(this._deepWildcards[B]))return this._deepWildcards[B];return null}};var Pc=class{constructor(e){this._matcher=e}get separator(){return this._matcher.separator}getCurrentTag(){let e=this._matcher.path;return e.length>0?e[e.length-1].tag:void 0}getCurrentNamespace(){let e=this._matcher.path;return e.length>0?e[e.length-1].namespace:void 0}getAttrValue(e){let t=this._matcher.path;if(t.length!==0)return t[t.length-1].values?.[e]}hasAttr(e){let t=this._matcher.path;if(t.length===0)return!1;let n=t[t.length-1];return n.values!==void 0&&e in n.values}getAnyParentAttr(e){return this._matcher.getAnyParentAttr(e)}hasAnyParentAttr(e){return this._matcher.hasAnyParentAttr(e)}getPosition(){let e=this._matcher.path;return e.length===0?-1:e[e.length-1].position??0}getCounter(){let e=this._matcher.path;return e.length===0?-1:e[e.length-1].counter??0}getIndex(){return this.getPosition()}getDepth(){return this._matcher.path.length}toString(e,t=!0){return this._matcher.toString(e,t)}toArray(){return this._matcher.path.map(e=>e.tag)}matches(e){return this._matcher.matches(e)}matchesAny(e){return e.matchesAny(this._matcher)}},Yi=class{constructor(e={}){this.separator=e.separator||".",this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new Pc(this),this._keptAttrs=[]}push(e,t=null,n=null,i=null){this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);let A=this.path.length,h=this.siblingStacks[A];h||(h={counts:new Map,total:0},this.siblingStacks[A]=h);let p=n?`${n}:${e}`:e,B=h.counts.get(p)||0,T=h.total;h.counts.set(p,B+1),h.total++;let y={tag:e,position:T,counter:B};n!=null&&(y.namespace=n),t!=null&&(y.values=t),this.path.push(y);let E=this.path.length,I=i!==null?i.keep:null;if(I!=null&&I.length>0&&t)for(let S=0;S<I.length;S++){let O=I[S];t[O]!==void 0&&this._keptAttrs.push({depth:E,name:O,value:t[O]})}}pop(){if(this.path.length===0)return;this._pathStringCache=null;let e=this.path.pop();this.siblingStacks.length>this.path.length+1&&(this.siblingStacks.length=this.path.length+1);let t=this.path.length+1;for(;this._keptAttrs.length>0&&this._keptAttrs[this._keptAttrs.length-1].depth>=t;)this._keptAttrs.pop();return e}updateCurrent(e){if(this.path.length>0){let t=this.path[this.path.length-1];e!=null&&(t.values=e)}}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){if(this.path.length!==0)return this.path[this.path.length-1].values?.[e]}hasAttr(e){if(this.path.length===0)return!1;let t=this.path[this.path.length-1];return t.values!==void 0&&e in t.values}getAnyParentAttr(e){let t=this._keptAttrs;for(let n=t.length-1;n>=0;n--)if(t[n].name===e)return t[n].value}hasAnyParentAttr(e){let t=this._keptAttrs;for(let n=t.length-1;n>=0;n--)if(t[n].name===e)return!0;return!1}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,t=!0){let n=e||this.separator;if(n===this.separator&&t===!0){if(this._pathStringCache!==null)return this._pathStringCache;let A=this.path.map(h=>h.namespace?`${h.namespace}:${h.tag}`:h.tag).join(n);return this._pathStringCache=A,A}return this.path.map(A=>t&&A.namespace?`${A.namespace}:${A.tag}`:A.tag).join(n)}toArray(){return this.path.map(e=>e.tag)}reset(){this._pathStringCache=null,this.path=[],this.siblingStacks=[],this._keptAttrs=[]}matches(e){let t=e.segments;return t.length===0?!1:e.hasDeepWildcard()?this._matchWithDeepWildcard(t):this._matchSimple(t)}_matchSimple(e){if(this.path.length!==e.length)return!1;for(let t=0;t<e.length;t++)if(!this._matchSegment(e[t],this.path[t],t===this.path.length-1))return!1;return!0}_matchWithDeepWildcard(e){let t=this.path.length-1,n=e.length-1;for(;n>=0&&t>=0;){let i=e[n];if(i.type==="deep-wildcard"){if(n--,n<0)return!0;let A=e[n],h=!1;for(let p=t;p>=0;p--)if(this._matchSegment(A,this.path[p],p===this.path.length-1)){t=p-1,n--,h=!0;break}if(!h)return!1}else{if(!this._matchSegment(i,this.path[t],t===this.path.length-1))return!1;t--,n--}}return n<0}_matchSegment(e,t,n){if(e.tag!=="*"&&e.tag!==t.tag||e.namespace!==void 0&&e.namespace!=="*"&&e.namespace!==t.namespace||e.attrName!==void 0&&(!n||!t.values||!(e.attrName in t.values)||e.attrValue!==void 0&&String(t.values[e.attrName])!==String(e.attrValue)))return!1;if(e.position!==void 0){if(!n)return!1;let i=t.counter??0;if(e.position==="first"&&i!==0)return!1;if(e.position==="odd"&&i%2!==1)return!1;if(e.position==="even"&&i%2!==0)return!1;if(e.position==="nth"&&i!==e.positionValue)return!1}return!0}matchesAny(e){return e.matchesAny(this)}
6snapshot(){return{path:this.path.map(e=>P({},e)),siblingStacks:this.siblingStacks.map(e=>e&&{counts:new Map(e.counts),total:e.total}),keptAttrs:this._keptAttrs.map(e=>P({},e))}}restore(e){this._pathStringCache=null,this.path=e.path.map(t=>P({},t)),this.siblingStacks=e.siblingStacks.map(t=>t&&{counts:new Map(t.counts),total:t.total}),this._keptAttrs=(e.keptAttrs||[]).map(t=>P({},t))}readOnly(){return this._view}};var t_=[{id:"html-script-open",description:"<script opening tag",pattern:/<script[\s>/]/i},{id:"html-script-close",description:"<\/script closing tag",pattern:/<\/script[\s>]/i},{id:"html-javascript-protocol",description:"javascript: URI scheme (with optional whitespace/encoding)",pattern:/j[\t\n\r ]*a[\t\n\r ]*v[\t\n\r ]*a[\t\n\r ]*s[\t\n\r ]*c[\t\n\r ]*r[\t\n\r ]*i[\t\n\r ]*p[\t\n\r ]*t[\t\n\r ]*:/i},{id:"html-vbscript-protocol",description:"vbscript: URI scheme",pattern:/vbscript[\t\n\r ]*:/i},{id:"html-data-html",description:"data:text/html URI \u2014 can execute scripts in browsers",pattern:/data[\t\n\r ]*:[\t\n\r ]*text\/html/i},{id:"html-data-xhtml",description:"data:application/xhtml+xml URI",pattern:/data[\t\n\r ]*:[\t\n\r ]*application\/xhtml/i},{id:"html-data-svg",description:"data:image/svg+xml URI \u2014 can execute scripts",pattern:/data[\t\n\r ]*:[\t\n\r ]*image\/svg\+xml/i},{id:"html-inline-event-handler",description:"Inline event handler attributes: onclick=, onerror=, onload=, etc.",pattern:/\bon\w{1,30}\s*=/i},{id:"html-entity-obfuscated-script",description:"HTML-entity-encoded <script (e.g. <script or <script)",pattern:/(?:�*3[Cc];?|�*60;?|<)\s*script/i},{id:"html-entity-obfuscated-javascript",description:'HTML-entity-encoded javascript: (partial \u2014 catches common j or j for "j")',pattern:/(?:�*6[Aa];?|�*106;?)\s*(?:�*61;?|a)[\s\S]{0,80}script\s*:/i},{id:"html-style-expression",description:"CSS expression() \u2014 IE-era code execution in style attributes",pattern:/style[\s\S]{0,20}expression\s*\(/i},{id:"html-object-embed",description:"<object or <embed tags that can load active content",pattern:/<(?:object|embed)[\s>/]/i},{id:"html-base-tag",description:"<base href= \u2014 can hijack all relative URLs on a page",pattern:/<base[\s>]/i},{id:"html-meta-refresh",description:'<meta http-equiv="refresh" \u2014 can redirect users',pattern:/<meta[\s\S]{0,40}http-equiv[\s\S]{0,20}refresh/i},{id:"html-srcdoc",description:"srcdoc= attribute on iframes \u2014 embeds HTML that can run scripts",pattern:/srcdoc\s*=/i},{id:"html-iframe",description:"<iframe tag",pattern:/<iframe[\s>/]/i},{id:"html-form",description:"<form tag \u2014 can be used for phishing / credential harvesting injection",pattern:/<form[\s>/]/i}],Os=t_;var r_=[{id:"xml-cdata-injection",description:"CDATA section injection: <![CDATA[ breaks out of text node context",pattern:/<!\[CDATA\[/i},{id:"xml-cdata-close",description:"CDATA close sequence: ]]> can terminate an enclosing CDATA section",pattern:/\]\]>/},{id:"xml-processing-instruction",description:"XML processing instruction: <?xml-stylesheet or <?php etc.",pattern:/<\?(?:xml[\- ]|php|asp)/i},{id:"xml-doctype-injection",description:"DOCTYPE declaration embedded in content \u2014 can define entities",pattern:/<!DOCTYPE(?:[\s[]|$)/i},{id:"xml-entity-system",description:"SYSTEM keyword \u2014 used in external entity declarations (XXE)",pattern:/\bSYSTEM\s+["']/i},{id:"xml-entity-public",description:"PUBLIC keyword \u2014 used in external entity declarations (XXE)",pattern:/\bPUBLIC\s+["']/i},{id:"xml-entity-declaration",description:"<!ENTITY declaration \u2014 defines entities, potential XXE or entity expansion",pattern:/<!ENTITY[\s%]/i},{id:"xml-billion-laughs",description:"Entity reference chaining / billion laughs: repeated &eX; style references",pattern:/(?:&\w{1,20};){3,}/},{id:"xml-namespace-confusion",description:"xmlns: attribute injection \u2014 can redefine namespaces to confuse parsers",pattern:/\bxmlns\s*(?::\w{1,40})?\s*=/i},{id:"xml-comment-injection",description:"<!-- comment injection \u2014 can hide content from some parsers",pattern:/<!--/},{id:"xml-comment-close",description:"--> closes an enclosing XML comment",pattern:/-->/},{id:"xml-pi-close",description:"?> closes an enclosing processing instruction",pattern:/\?>/}],Ns=r_;var n_=[{id:"svg-script-element",description:"<script element inside SVG executes JavaScript",pattern:/<script[\s>/]/i},{id:"svg-xlink-href-javascript",description:"xlink:href with javascript: \u2014 classic SVG XSS via <a> or <use>
6",pattern:/xlink\s*:\s*href\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-href-javascript",description:"href= with javascript: in SVG context (<a>, <animate>, etc.)",pattern:/href\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-foreignobject",description:"<foreignObject embeds HTML inside SVG \u2014 can execute scripts",pattern:/<foreignObject[\s>/]/i},{id:"svg-use-external",description:"<use xlink:href or href pointing to external resource (non-fragment URL)",pattern:/<use[\s\S]{0,60}(?:xlink\s*:\s*)?href\s*=\s*(?:["'][^#]|[^"'#\s>])/i},{id:"svg-animate-href",description:'<animate attributeName="href" \u2014 can dynamically change href to javascript:',pattern:/<animate[\s\S]{0,80}attributeName\s*=\s*["'][\s]*href["']/i},{id:"svg-animate-xlinkhref",description:'<animate attributeName="xlink:href"',pattern:/<animate[\s\S]{0,80}attributeName\s*=\s*["'][\s]*xlink\s*:\s*href["']/i},{id:"svg-set-javascript",description:'<set to="javascript:..." \u2014 sets an attribute to a javascript: URI',pattern:/<set[\s\S]{0,80}to\s*=\s*["']?\s*javascript\s*:/i},{id:"svg-event-handler",description:"SVG-specific event handler attributes: onload=, onerror=, onactivate=, etc.",pattern:/\bon(?:load|error|activate|begin|end|repeat|focus|blur|click|mouse\w{1,20}|key\w{1,20})\s*=/i},{id:"svg-handler-generic",description:"Generic on* handler catch-all for SVG attributes",pattern:/\bon\w{1,30}\s*=/i},{id:"svg-filter-feimage",description:"<feImage href= \u2014 filter primitive that can load external resources",pattern:/<feImage[\s\S]{0,80}
6(?:xlink\s*:\s*)?href\s*=/i},{id:"svg-image-external",description:"<image xlink:href with http/https or javascript protocol",pattern:/<image[\s\S]{0,80}(?:xlink\s*:\s*)?href\s*=\s*["']?\s*(?:https?|javascript)\s*:/i},{id:"svg-style-javascript",description:"style= attribute containing javascript: (e.g. background:url(javascript:...))",pattern:/style\s*=[\s\S]{0,60}javascript\s*:/i}],Oc=n_;var s_=[{id:"sql-block-comment-open",description:"SQL block comment open: /* ... */ \u2014 unusual in legitimate user text",pattern:/\/\*/},{id:"sql-union-select",description:"UNION SELECT \u2014 most common SQL injection aggregation attack",pattern:/\bUNION\s{1,20}(?:ALL\s{1,20})?SELECT\b/i},{id:"sql-drop-table",description:"DROP TABLE \u2014 destructive DDL injection",pattern:/\bDROP\s{1,20}TABLE\b/i},{id:"sql-drop-database",description:"DROP DATABASE \u2014 destructive DDL injection",pattern:/\bDROP\s{1,20}DATABASE\b/i},{id:"sql-insert-into",description:"INSERT INTO \u2014 data injection",pattern:/\bINSERT\s{1,20}INTO\b/i},{id:"sql-delete-from",description:"DELETE FROM \u2014 data deletion injection",pattern:/\bDELETE\s{1,20}FROM\b/i},{id:"sql-update-set",description:"UPDATE ... SET \u2014 data modification injection",pattern:/\bUPDATE\b[\s\S]{1,60}\bSET\b/i},{id:"sql-exec-xp",description:"EXEC xp_ \u2014 MSSQL extended stored procedure execution",pattern:/\bEXEC(?:UTE)?\s{1,20}xp_/i},{id:"sql-tautology-string",description:`Classic string tautology: ' OR '1'='1 or " OR "1"="1"`,pattern:/'\s{0,10}OR\s{0,10}'[^']{0,20}'\s*=\s*'[^']{0,20}/i},{id:"sql-tautology-numeric",description:"Numeric tautology: OR 1=1",pattern:/\bOR\s{1,10}1\s*=\s*1\b/i},{id:"sql-always-true-zero",description:"Numeric tautology: OR 0=0",pattern:/\bOR\s{1,10}0\s*=\s*0\b/i},{id:"sql-sleep-benchmark",description:"Time-based blind injection: SLEEP() or BENCHMARK()",pattern:/\b(?:SLEEP|BENCHMARK)\s*\(/i},{id:"sql-waitfor-delay",description:"MSSQL time-based blind injection: WAITFOR DELAY",pattern:/\bWAITFOR\s{1,20}DELAY\b/i},{id:"sql-char-function",description:"CHAR() function \u2014 used to obfuscate injected strings",pattern:/\bCHAR\s*\(\s*\d{1,3}/i},{id:"sql-information-schema",description:"INFORMATION_SCHEMA \u2014 reconnaissance query for table/column enumeration",pattern:/\bINFORMATION_SCHEMA\b/i}],Wi=s_;var i_=[{id:"shell-path-traversal-unix",description:"Unix path traversal: ../ \u2014 climbing the directory tree",pattern:/\.\.\//},{id:"shell-path-traversal-windows",description:"Windows path traversal: ..\\ \u2014 climbing the directory tree",pattern:/\.\.\\/},{id:"shell-path-traversal-encoded",description:"URL-encoded path traversal: %2e%2e or %2f variants",pattern:/%2e%2e|%2f\.\.|\.\.%2f/i},{id:"shell-null-byte",description:"Null byte injection: \\x00 or %00 \u2014 truncates strings in C-backed functions",pattern:/\x00|%00/},{id:"shell-semicolon",description:"Semicolon command separator: cmd1; cmd2",pattern:/;/},{id:"shell-pipe",description:"Pipe operator: cmd1 | cmd2",pattern:/\|/},{id:"shell-and-operator",description:"AND operator: cmd1 && cmd2",pattern:/&&/},{id:"shell-or-operator",description:"OR operator: cmd1 || cmd2",pattern:/\|\|/},{id:"shell-backtick",description:"Backtick command substitution: `cmd`",pattern:/`/},{id:"shell-dollar-paren",description:"Dollar-paren command substitution: $(cmd)",pattern:/\$\(/},{id:"shell-dollar-brace",description:"Dollar-brace variable expansion: ${var} \u2014 can be abused for injection",pattern:/\$\{/},{id:"shell-redirect-out",description:"Output redirection: cmd > file or cmd >> file",pattern:/>{1,2}/}
6,{id:"shell-redirect-in",description:"Input redirection: cmd < file",pattern:/</},{id:"shell-newline-injection",description:"Newline injection: \\n or \\r \u2014 can inject new shell commands",pattern:/[\n\r]/},{id:"shell-glob-star",description:"Glob expansion: * or ? \u2014 can expand to unintended files",pattern:/[/\\][*?]/},{id:"shell-absolute-root",description:"Absolute root path injection: string starting with / or \\ (Windows UNC)",pattern:/^(?:\/|\\\\)/},{id:"shell-windows-drive",description:"Windows drive letter path injection: C:\\ or D:/",pattern:/^[a-zA-Z]:[/\\]/},{id:"shell-curl-wget",description:"curl/wget with URL or flags \u2014 can exfiltrate data or download payloads",pattern:/\b(?:curl|wget)\s+(?:https?:\/\/|ftp:\/\/|-)/i}],Nc=i_;var o_=[{id:"redos-nested-quantifier-plus",description:"Nested + quantifier inside a group with outer quantifier: (a+)+, (.+b)*, etc.",pattern:/\([^)]*\+[^)]*\)[+*]/},{id:"redos-nested-quantifier-star",description:"Nested * quantifier: (a*)* or (a*)+ \u2014 catastrophic backtracking",pattern:/\([^)]*\*[^)]*\)[*+]/},{id:"redos-nested-groups",description:"Doubly nested quantified groups: ((a+)+) \u2014 guaranteed catastrophic",pattern:/\(\([^)]{0,40}\)[+*]\)[+*]/},{id:"redos-alternation-overlap",description:"Overlapping alternation under quantifier: (a|a)+ \u2014 ambiguous NFA paths",pattern:/\(([^|()]{1,20})\|(?:\1)(?:\|[^|()]{1,20}){0,5}\)[+*?]{1,2}/},{id:"redos-star-plus-concat",description:"(x*x)+ pattern \u2014 triggers super-linear backtracking",pattern:/\([^)]{0,10}\*[^)]{0,10}\)[+*]/},{id:"redos-dot-star-greedy",description:"(.*){n,} or (.+){n,} \u2014 repeated greedy dot quantifiers",pattern:/\(\.[*+]\)\{?\d/},{id:"redos-large-repetition",description:"Very large fixed or range repetition count {1000,} or {1000,n} \u2014 denial of service via backtracking",pattern:/\{\d{4,}(?:,\d*)?\}/},{id:"redos-catastrophic-alternation",description:"Long alternation with many similar branches \u2014 polynomial backtracking risk",pattern:/\([^)]{0,200}(?:\|[^|)]{0,50}){9,}\)/}],Gc=o_;var mr=`["'\\s]*:`,A_=[{id:"nosql-where-operator",description:"$where \u2014 executes arbitrary JavaScript server-side in MongoDB",pattern:new RegExp(`\\$where${mr}`,"i")},{id:"nosql-ne-operator",description:'$ne \u2014 "not equal" operator used to bypass equality checks',pattern:new RegExp(`\\$ne${mr}`,"i")},{id:"nosql-gt-operator",description:'$gt \u2014 "greater than" used to bypass password/value checks',pattern:new RegExp(`\\$gte?${mr}`,"i")},{id:"nosql-lt-operator",description:'$lt / $lte \u2014 "less than" bypass variants',pattern:new RegExp(`\\$lte?${mr}`,"i")},{id:"nosql-regex-operator",description:"$regex \u2014 can be used to extract data character by character (blind injection)",pattern:new RegExp(`\\$regex${mr}`,"i")},{id:"nosql-or-operator",description:"$or \u2014 logical OR; used to create always-true conditions",pattern:new RegExp(`\\$or${mr}\\s*\\[`,"i")},{id:"nosql-and-operator",description:"$and \u2014 logical AND operator injection",pattern:new RegExp(`\\$and${mr}\\s*\\[`,"i")},{id:"nosql-nor-operator",description:"$nor \u2014 logical NOR operator injection",pattern:new RegExp(`\\$nor${mr}\\s*\\[`,"i")},{id:"nosql-exists-operator",description:"$exists \u2014 can enumerate fields to determine schema",pattern:new RegExp(`\\$exists${mr}`,"i")},{id:"nosql-in-operator",description:"$in \u2014 matches any value in a list; can enumerate values",pattern:new RegExp(`\\$in${mr}\\s*\\[`,"i")},{id:"nosql-expr-operator",description:"$expr \u2014 allows aggregation expressions in queries (MongoDB 3.6+)",pattern:new RegExp(`\\$expr${mr}`,"i")},{id:"nosql-function-operator",description:"$function \u2014 executes arbitrary JavaScript in MongoDB 4.4+",pattern:new RegExp(`\\$function${mr}`,"i")},{id:"nosql-accumulator-operator",description:"$accumulator \u2014 custom aggregation with arbitrary JS execution",pattern:new RegExp(`\\$accumulator${mr}`,"i")},{id:"nosql-proto-pollution",description:"__proto__ \u2014 prototype pollution via object key injection",pattern:/__proto__/},{id:"nosql-constructor-prototype",description:"constructor.prototype \u2014 alternative prototype pollution vector (dot notation or JSON key)",pattern:/constructor[\s"':.,{\[]*prototype/i},{id:"nosql-proto-bracket",description:'["__proto__"] \u2014 bracket-notation prototype pollution',pattern:/\[["']__proto__["']\]/}],Uc=A_;var a_=[{id:"log-crlf-injection",description:"CRLF injection: literal \\r or \\n embeds fake log lines",pattern:/[\r\n]/},{id:"log-url-encoded-crlf",description:"URL-encoded CRLF: %0d, %0a, %0D, %0A \u2014 decoded by some log parsers",pattern:/%0[dDaA]/},{id:"log-unicode-newline",description:"Unicode newline variants: U+2028 (line separator), U+2029 (paragraph separator)",pattern:/[\u2028\u2029]/},{id:"log-log4shell-jndi",description:"Log4Shell: ${jndi:...} triggers remote code execution in Apache Log4j",pattern:/\$\{jndi\s*:/i},{id:"log-log4shell-obfuscated",description:"Obfuscated Log4Shell: ${::-j}... lookup-bypass prefix used to evade WAF detection",pattern:/\$\{::-/},{id:"log-log4j-lookup",description:"Log4j lookup syntax: ${env:...}, ${sys:...}, ${ctx:...} \u2014 data exfiltration",pattern:/\$\{(?:env|sys|ctx|main|map|sd|web|docker|k8s|spring)\s*:/i},{id:"log-ssti-double-brace",description:"SSTI double-brace: {{expression}} \u2014 Jinja2, Twig, Handlebars, etc.",pattern:/\{\{[\s\S]{0,80}\}\}/},{id:"log-ssti-hash-brace",description:"SSTI hash-brace: #{expression} \u2014 Thymeleaf, Velocity, Ruby ERB",pattern:/#\{[\s\S]{0,80}\}/},{id:"log-ssti-dollar-brace",description:"SSTI/EL injection: ${expression with operators or method calls} \u2014 JSP EL, Freemarker, SpEL",pattern:/\$\{[^}]*(?:\.|\(|\*|\+|\bclass\b|\bruntime\b|\bprocess\b|\bexec\b)[^}]{0,80}\}/i},{id:"log-ssti-percent-tag",description:"SSTI ERB/ASP tag: <%= expression %> \u2014 Ruby ERB, ASP",pattern:/<%=[\s\S]{0,80}%>/},{id:"log-null-byte",description:"Null byte: \\x00 or %00 \u2014 can truncate log entries in C-backed loggers",pattern:/\x00|%00/},{id:"log-ansi-escape",description:"ANSI escape sequence: ESC[ \u2014 can manipulate terminal output when logs are tailed",pattern:/\x1b\[/}],kc=a_;var c_=[{id:"sql-line-comment",description:"SQL line comment: -- followed by whitespace or end of string",pattern:/--(?:\s|$)/},{id:"sql-stacked-query",description:"Stacked queries: semicolon immediately followed by a SQL keyword",pattern:/;\s{0,10}(?:SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC)\b/i},{id:"sql-hex-encoding",description:"Hex-encoded string injection: 0x41414141 style (MySQL)",pattern:/\b0x[0-9a-f]{4,}/i}],l_=[...Wi,...c_],Hc=l_;Os.label="HTML";Ns.label="XML";Oc.label="SVG";Wi.label="SQL";Hc.label="SQL-STRICT";Nc.label="SHELL";Gc.label="REDOS";Uc.label="NOSQL";kc.label="LOG";var DN=Object.freeze({HTML:Os,XML:Ns,SVG:Oc,SQL:Wi,"SQL-STRICT":Hc,SHELL:Nc,REDOS:Gc,NOSQL:Uc,LOG:kc});function u_(r){if(typeof r!="string")throw new TypeError(`is-unsafe: first argument must be a string, got ${typeof r}`)}function f_(r){if(!(r instanceof RegExp)){if(Array.isArray(r)){if(r.length===0)throw new TypeError("is-unsafe: context must not be an empty array");if(Array.isArray(r[0])){for(let e of r)if(!Array.isArray(e)||e.length===0)throw new TypeError("is-unsafe: each context in the array must be a non-empty pattern array (PatternList)")}return}throw new TypeError(`is-unsafe: second argument must be a PatternList (e.g. HTML), an array of PatternLists (e.g. [HTML, XML]), or a RegExp. Got: ${typeof r}`)}}function h_(r){return r instanceof RegExp?{lists:null,regex:r}:Array.isArray(r[0])?{lists:r,regex:null}:{lists:[r],regex:null}}function d_(r,e){let t=e.label??"CUSTOM";for(let n of e)if(n.pattern.test(r))return{context:t,id:n.id,description:n.description,pattern:n.pattern};return null}function am(r,e){u_(r),f_(e);let{lists:t,regex:n}=h_(e);if(n)return n.test(r);for(let i of t)if(d_(r,i)!==null)return!0;return!1}function p_(r,e){if(!r)return{};let t=e.attributesGroupName?r[e.attributesGroupName]:r;if(!t)return{};let n={};for(let i in t)if(i.startsWith(e.attributeNamePrefix)){let A=i.substring(e.attributeNamePrefix.length);n[A]=t[i]}else n[i]=t[i];return n}function m_(r){if(!r||typeof r!="string")return;let e=r.indexOf(":");if(e!==-1&&e>0){let t=r.substring(0,e);if(t!=="xmlns")return t}}var FA=class{constructor(e,t){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.parseXml=y_,this.parseTextData=g_,this.resolveNameSpace=B_,this.buildAttributesMap=T_,this.isItStopNode=x_,this.replaceEntitiesValue=E_,this.readStopNodeData=M_,this.saveTextToParentTag=__,this.addChild=b_,this.ignoreAttributesFn=Dc(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.doctypefound=!1;let n=P({},ji);this.options.entityDecoder?this.entityDecoder=this.options.entityDecoder:(typeof this.options.htmlEntities=="object"?n=this.options.htmlEntities:this.options.htmlEntities===!0&&(n=P(P({},Mc),wc)),this.entityDecoder=new Ki({namedEntities:P(P({},n),t),numericAllowed:this.options.htmlEntities,limit:{maxTotalExpansions:this.options.processEntities.maxTotalExpansions,maxExpandedLength:this.options.processEntities.maxExpandedLength,applyLimitsTo:this.options.processEntities.appliesTo},onInputEntity:(A,h)=>am(h,[Os,Ns])?Ls.BLOCK:Ls.ALLOW})),this.matcher=new Yi,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.stopNodeExpressionsSet=new Xi;let i=this.options.stopNodes;if(i&&i.length>0){for(let A=0;A<i.length;A++){let h=i[A];typeof h=="string"?this.stopNodeExpressionsSet.add(new Ps(h)):h instanceof Ps&&this.stopNodeExpressionsSet.add(h)}this.stopNodeExpressionsSet.seal()}}};function g_(r,e,t,n,i,A,h){let p=this.options;if(r!==void 0&&(p.trimValues&&!n&&(r=r.trim()),r.length>0)){h||(r=this.replaceEntitiesValue(r,e,t));let B=p.jPath?t.toString():t,T=p.tagValueProcessor(e,r,B,i,A);return T==null?r:typeof T!=typeof r||T!==r?T:p.trimValues||r.trim()===r?jc(r,p.parseTagValue,p.numberParseOptions):r}}function B_(r){if(this.options.removeNSPrefix){let e=r.split(":"),t=r.charAt(0)==="/"?"/":"";if(e[0]==="xmlns")return"";e.length===2&&(r=t+e[1])}return r}var C_=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function T_(r,e,t,n=!1){let i=this.options;if(n===!0||i.ignoreAttributes!==!0&&typeof r=="string"){let A=bA(r,C_),h=A.length,p={},B=new Array(h),T=!1,y={};for(let S=0;S<h;S++){let O=this.resolveNameSpace(A[S][1]),N=A[S][4];if(O.length&&N!==void 0){let Q=N;i.trimValues&&(Q=Q.trim()),Q=this.replaceEntitiesValue(Q,t,this.readonlyMatcher),B[S]=Q,y[O]=Q,T=!0}}T&&typeof e=="object"&&e.updateCurrent&&e.updateCurrent(y);let E=i.jPath?e.toString():this.readonlyMatcher,I=!1;for(let S=0;S<h;S++){let O=this.resolveNameSpace(A[S][1]);if(this.ignoreAttributesFn(O,E))continue;let N=i.attributeNamePrefix+O;if(O.length)if(i.transformAttributeName&&(N=i.transformAttributeName(N)),N=cm(N,i),A[S][4]!==void 0){let Q=B[S],z=i.attributeValueProcessor(O,Q,E);z==null?p[N]=Q:typeof z!=typeof Q||z!==Q?p[N]=z:p[N]=jc(Q,i.parseAttributeValue,i.numberParseOptions),I=!0}else i.allowBooleanAttributes&&(p[N]=!0,I=!0)}if(!I)return;if(i.attributesGroupName&&!i.preserveOrder){let S={};return S[i.attributesGroupName]=p,S}return p}}var y_=function(r){r=r.replace(/\r\n?/g,` 7`);let e=new pr("!xml"),t=e,n="";this.matcher.reset(),this.entityDecoder.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0,this.doctypefound=!1;let i=this.options,A=new IA(i.processEntities),h=r.length;for(let p=0;p<h;p++)if(r[p]==="<"){let T=r.charCodeAt(p+1);if(T===47){let y=Gs(r,">",p,"Closing Tag is not closed."),E=r.substring(p+2,y).trim();if(i.removeNSPrefix){let S=E.indexOf(":");S!==-1&&(E=E.substr(S+1))}E=Vc(i.transformTagName,E,"",i).tagName,t&&(n=this.saveTextToParentTag(n,t,this.readonlyMatcher));let I=this.matcher.getCurrentTag();if(E&&i.unpairedTagsSet.has(E))throw new Error(`Unpaired tag can not be used as closing tag: </${E}>`);I&&i.unpairedTagsSet.has(I)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,t=this.tagsNodeStack.pop(),n="",p=y}else if(T===63){let y=Jc(r,p,!1,"?>");if(!y)throw new Error("Pi Tag is not closed.");n=this.saveTextToParentTag(n,t,this.readonlyMatcher);let E=this.buildAttributesMap(y.tagExp,this.matcher,y.tagName,!0);if(E){let I=E[this.options.attributeNamePrefix+"version"];this.entityDecoder.setXmlVersion(Number(I)||1),A.setXmlVersion(Number(I)||1)}if(!(i.ignoreDeclaration&&y.tagName==="?xml"||i.ignorePiTags)){let I=new pr(y.tagName);I.add(i.textNodeName,""),y.tagName!==y.tagExp&&y.attrExpPresent&&i.ignoreAttributes!==!0&&(I[":@"]=E),this.addChild(t,I,this.readonlyMatcher,p)}p=y.closeIndex+1}else if(T===33&&r.charCodeAt(p+2)===45&&r.charCodeAt(p+3)===45){let y=Gs(r,"-->",p+4,"Comment is not closed.");if(i.commentPropName){let E=r.substring(p+4,y-2);n=this.saveTextToParentTag(n,t,this.readonlyMatcher),t.add(i.commentPropName,[{[i.textNodeName]:E}])}p=y}else if(T===33&&r.charCodeAt(p+2)===68){if(this.doctypefound)throw new Error("Multiple DOCTYPE declarations foun
7d.");this.doctypefound=!0;let y=A.readDocType(r,p);this.entityDecoder.addInputEntities(y.entities),p=y.i}else if(T===33&&r.charCodeAt(p+2)===91){let y=Gs(r,"]]>",p,"CDATA is not closed.")-2,E=r.substring(p+9,y);n=this.saveTextToParentTag(n,t,this.readonlyMatcher);let I=this.parseTextData(E,t.tagname,this.readonlyMatcher,!0,!1,!0,!0);I==null&&(I=""),i.cdataPropName?t.add(i.cdataPropName,[{[i.textNodeName]:E}]):t.add(i.textNodeName,I),p=y+2}else{let y=Jc(r,p,i.removeNSPrefix);if(!y){let Ae=r.substring(Math.max(0,p-50),Math.min(h,p+50));throw new Error(`readTagExp returned undefined at position ${p}. Context: "${Ae}"`)}let E=y.tagName,I=y.rawTagName,S=y.tagExp,O=y.attrExpPresent,N=y.closeIndex;if({tagName:E,tagExp:S}=Vc(i.transformTagName,E,S,i),i.strictReservedNames&&(E===i.commentPropName||E===i.cdataPropName||E===i.textNodeName||E===i.attributesGroupName))throw new Error(`Invalid tag name: ${E}`);t&&n&&t.tagname!=="!xml"&&(n=this.saveTextToParentTag(n,t,this.readonlyMatcher,!1));let Q=t;Q&&i.unpairedTagsSet.has(Q.tagname)&&(t=this.tagsNodeStack.pop(),this.matcher.pop());let z=!1;S.length>0&&S.lastIndexOf("/")===S.length-1&&(z=!0,E[E.length-1]==="/"?(E=E.substr(0,E.length-1),S=E):S=S.substr(0,S.length-1),O=E!==S);let j=null,re={},ie;ie=m_(I),E!==e.tagname&&this.matcher.push(E,{},ie),E!==S&&O&&(j=this.buildAttributesMap(S,this.matcher,E),j&&(re=p_(j,i))),E!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let ce=p;if(this.isCurrentNodeStopNode){let Ae="";if(z)p=y.closeIndex;else if(i.unpairedTagsSet.has(E))p=y.closeIndex;else{let W=this.readStopNodeData(r,I,N+1);if(!W)throw new Error(`Unexpected end of ${I}`);p=W.i,Ae=W.tagContent}let he=new pr(E);j&&(he[":@"]=j),he.add(i.textNodeName,Ae),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(t,he,this.readonlyMatcher,ce)}else{if(z){({tagName:E,tagExp:S}=Vc(i.transformTagName,E,S,i));let Ae=new pr(E);j&&(Ae[":@"]=j),this.addChild(t,Ae,this.readonlyMatcher,ce),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else if(i.unpairedTagsSet.has(E)){let Ae=new pr(E);j&&(Ae[":@"]=j),this.addChild(t,Ae,this.readonlyMatcher,ce),this.matcher.pop(),this.isCurrentNodeStopNode=!1,p=y.closeIndex;continue}else{let Ae=new pr(E);if(this.tagsNodeStack.length>i.maxNestedTags)throw new Error("Maximum nested tags exceeded");this.tagsNodeStack.push(t),j&&(Ae[":@"]=j),this.addChild(t,Ae,this.readonlyMatcher,ce),t=Ae}n="",p=N}}}else n+=r[p];return e.child};function b_(r,e,t,n){this.options.captureMetaData||(n=void 0);let i=this.options.jPath?t.toString():t,A=this.options.updateTag(e.tagname,i,e[":@"]);A===!1||(typeof A=="string"&&(e.tagname=A),r.addChild(e,n))}function E_(r,e,t){let n=this.options.processEntities;if(!n||!n.enabled)return r;if(n.allowedTags){let i=this.options.jPath?t.toString():t;if(!(Array.isArray(n.allowedTags)?n.allowedTags.includes(e):n.allowedTags(e,i)))return r}if(n.tagFilter){let i=this.options.jPath?t.toString():t;if(!n.tagFilter(e,i))return r}return this.entityDecoder.decode(r)}function __(r,e,t,n){return r&&(n===void 0&&(n=e.child.length===0),r=this.parseTextData(r,e.tagname,t,!1,e[":@"]?Object.keys(e[":@"]).length!==0:!1,n),r!==void 0&&r!==""&&e.add(this.options.textNodeName,r),r=""),r}function x_(){return this.stopNodeExpressionsSet.size===0?!1:this.matcher.matchesAny(this.stopNodeExpressionsSet)}function I_(r,e,t=">"){let n=0,i=r.length,A=t.charCodeAt(0),h=t.length>1?t.charCodeAt(1):-1,p="",B=e;for(let T=e;T<i;T++){let y=r.charCodeAt(T);if(n)y===n&&(n=0);else if(y===34||y===39)n=y;else if(y===A)if(h!==-1){if(r.charCodeAt(T+1)===h)return p+=r.substring(B,T),{data:p,index:T}}else return p+=r.substring(B,T),{data:p,index:T};else y===9&&!n&&(p+=r.substring(B,T)+" ",B=T+1)}}function Gs(r,e,t,n){let i=r.indexOf(e,t);if(i===-1)throw new Error(n);return i+e.length-1}function w_(r,e,t,n){let i=r.indexOf(e,t);if(i===-1)throw new Error(n);return i}function Jc(r,e,t,n=">"){let i=I_(r,e+1,n);if(!i)return;let A=i.data,h=i.index,p=A.search(/\s/),B=A,T=!0;p!==-1&&(B=A.substring(0,p),A=A.substring(p+1).trimStart());let y=B;if(t){let E=B.indexOf(":");E!==-1&&(B=B.substr(E+1),T=B!==i.data.substr(E+1))}return{tagName:B,tagExp:A,closeIndex:h,attrExpPresent:T,rawTagName:y}}function M_(r,e,t){let n=t,i=1,A=r.length;for(;t<A;t++)if(r[t]==="<"){let h=r.charCodeAt(t+1);if(h===47){let p=w_(r,">",t,`${e} is not closed`);if(r.substring(t+2,p).trim()===e&&(i--,i===0))return{tagContent:r.substring(n,t),i:p};t=p}else if(h===63)t=Gs(r,"?>",t+1,"StopNode is not closed.");else if(h===33&&r.charCodeAt(t+2)===45&&r.charCodeAt(t+3)===45)t=Gs(r,"-->",t+3,"StopNode is not closed.");else if(h===33&&r.charCodeAt(t+2)===91)t=Gs(r,"]]>",t,"StopNode is not closed.")-2;else{let p=Jc(r,t,!1);p&&((p&&p.tagName)===e&&p.tagExp[p.tagExp.length-1]!=="/"&&i++,t=p.closeIndex)}}}function jc(r,e,t){if(e&&typeof r=="string"){let n=r.trim();return n==="true"?!0:n==="false"?!1:Lc(r,t)}else return Jp(r)?r:""}function Vc(r,e,t,n){if(r){let i=r(e);t===e&&(t=i),e=i}return e=cm(e,n),{tagName:e,tagExp:t}}function cm(r,e){if(EA.includes(r))throw new Error(`[SECURITY] Invalid name: "${r}" is a reserved JavaScript keyword that could cause prototype pollution`);return Vi.includes(r)?e.onDangerousProperty(r):r}var Qc=pr.getMetaDataSymbol();function S_(r,e){if(!r||typeof r!="object")return{};if(!e)return r;let t={};for(let n in r)if(n.startsWith(e)){let i=n.substring(e.length);t[i]=r[n]}else t[n]=r[n];return t}function Kc(r,e,t,n){return lm(r,e,t,n)}function lm(r,e,t,n){let i,A={};for(let h=0;h<r.length;h++){let p=r[h],B=v_(p);if(B!==void 0&&B!==e.textNodeName){let T=S_(p[":@"]||{},e.attributeNamePrefix);t.push(B,T)}if(B===e.textNodeName)i===void 0?i=p[B]:i+=""+p[B];else{if(B===void 0)continue;if(p[B]){let T=lm(p[B],e,t,n),y=R_(T,e);if(Object.keys(T).length===0&&e.alwaysCreateTextNode&&(T[e.textNodeName]=""),p[":@"]?F_(T,p[":@"],n,e):Object.keys(T).length===1&&T[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?T=T[e.textNodeName]:Object.keys(T).length===0&&(e.alwaysCreateTextNode?T[e.textNodeName]="":T=""),p[Qc]!==void 0&&typeof T=="object"&&T!==null&&(T[Qc]=p[Qc]),A[B]!==void 0&&Object.prototype.hasOwnProperty.call(A,B))Array.isArray(A[B])||(A[B]=[A[B]]),A[B].push(T);else{let E=e.jPath?n.toString():n;e.isArray(B,E,y)?A[B]=[T]:A[B]=T}B!==void 0&&B!==e.textNodeName&&t.pop()}}}return typeof i=="string"?i.length>0&&(A[e.textNodeName]=i):i!==void 0&&(A[e.textNodeName]=i),A}function v_(r){let e=Object.keys(r);for(let t=0;t<e.length;t++){let n=e[t];if(n!==":@")return n}}function F_(r,e,t,n){if(e){let i=Object.keys(e),A=i.length;for(let h=0;h<A;h++){let p=i[h],B=p.startsWith(n.attributeNamePrefix)?p.substring(n.attributeNamePrefix.length):p,T=n.jPath?t.toString()+"."+B:t;n.isArray(p,T,!0,!0)?r[p]=[e[p]]:r[p]=e[p]}}}function R_(r,e){let{textNodeName:t}=e,n=Object.keys(r).length;return!!(n===0||n===1&&(r[t]||typeof r[t]=="boolean"||r[t]===0))}var qi=class{constructor(e){this.externalEntities={},this.options=Zp(e)}parse(e,t){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(t){t===!0&&(t={});let A=Xp(e,t);if(A!==!0)throw Error(`${A.err.msg}:${A.err.line}:${A.err.col}`)}let n=new FA(this.options,this.externalEntities),i=n.parseXml(e);return this.options.preserveOrder||i===void 0?i:Kc(i,this.options,n.matcher,n.readonlyMatcher)}addEntity(e,t){if(t.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 '
'");if(t==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[e]=t}static getMetaDataSymbol(){return pr.getMetaDataSymbol()}};function zc(r,e){if(e?._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);let t=P({allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(i,A,h,p)=>!!e?.arrayPaths?.some(T=>A===T)},e?._fastXML),n=L_(r,t);return e?.uncapitalizeKeys?yA(n):n}function L_(r,e){return new qi(P({ignoreAttributes:!1,attributeNamePrefix:""},e)).parse(r)}var D_="4.4.4",kr={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:D_,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:P_,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:(r,e)=>Z(null,null,function*(){return zc(new TextDecoder().decode(r),P(P({},kr.options.xml),e?.xml))}),parseTextSync:(r,e)=>zc(r,P(P({},kr.options.xml),e?.xml))};function P_(r){return r.startsWith("<?xml")}function um(r,e){let t=kr.parseTextSync?.(r,e),n=t?.ServiceExceptionReport?.ServiceException||t?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof n=="string"?n:n.value||n.code||"Unknown error"}var O_="4.4.4",Zi={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",ver
vendor: 4,103 bytes, line 7
7sion:O_,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:N_,options:{wms:{throwOnError:!1}},parse:(r,e)=>Z(null,null,function*(){return Xc(new TextDecoder().decode(r),e)}),parseSync:(r,e)=>Xc(new TextDecoder().decode(r),e),parseTextSync:(r,e)=>Xc(r,e)};function N_(r){return r.startsWith("<?xml")}function Xc(r,e){let t=P(P({},Zi.options.wms),e?.wms),n=um(r,t),i=t.minimalErrors?n:`WMS Service error: ${n}`;if(t.throwOnError)throw new Error(i);return i}function rs(r){return Array.isArray(r)?r:r?[r]:[]}function $i(r){let e=rs(r);return e.length>0&&e.every(t=>typeof t=="string")?e:[]}function eo(r,e=void 0){switch(typeof r){case"number":return r;case"string":return parseFloat(r);default:return}}function RA(r,e=void 0){switch(typeof r){case"number":return r;case"string":return parseInt(r,10);default:return}}function ns(r){switch(r){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function Yc(r,e){let t=kr.parseTextSync?.(r,e),n=t.WMT_MS_Capabilities||t.WMS_Capabilities||t,i=G_(n);if(e?.inheritedLayerProps)for(let A of i.layers)hm(A,null);return e?.includeRawJSON&&(i.json=n),e?.includeXMLText&&(i.xml=r),i}function G_(r){let e={version:String(r.version||""),name:String(r.Service?.Name||"unnamed"),title:r.Service?.Title?String(r.Service?.Title):void 0,abstract:r.Service?.Abstract?String(r.Service?.Abstract):void 0,keywords:$i(r.Service?.KeywordList?.Keyword),fees:r.Service?.Fees?JSON.stringify(r.Service?.Fees):void 0,accessConstraints:r.Service?.AccessConstraints?JSON.stringify(r.Service?.AccessConstraints):void 0,layerLimit:RA(r.Service?.LayerLimit),maxWidth:RA(r.Service?.maxWidth),maxHeight:RA(r.Service?.maxHeight),layers:[],requests:U_(r.Capability?.Request),exceptions:k_(r.Exception)},t=rs(r.Capability?.Layer);for(let n of t)e.layers.push(fm(n));for(let[n,i]of Object.entries(e))i===void 0&&delete e[n];return e}function U_(r){let e={};for(let[t,n]of Object.entries(r||{})){let i=$i(n?.Format);e[t]={mimeTypes:i}}return e}function k_(r){if(rs(r?.Format).length>0)return{mimeTypes:$i(r)}}function fm(r){let e={title:String(r?.Title||""),name:r?.Name&&String(r?.Name),abstract:r?.Name&&String(r?.Abstract),keywords:$i(r.KeywordList?.Keyword)},t=r?.CRS||r?.SRS;t&&Array.isArray(t)&&t.every(T=>typeof T=="string")&&(e.crs=t);let n=r?.EX_GeographicBoundingBox&&H_(r?.EX_GeographicBoundingBox);n&&(e.geographicBoundingBox=n),n=r?.LatLonBoundingBox&&V_(r?.LatLonBoundingBox),n&&(e.geographicBoundingBox=n);let i=r?.BoundingBox&&J_(r?.BoundingBox);i&&i.length>0&&(e.boundingBoxes=i);let h=rs(r?.Dimension).map(T=>Q_(T));h.length&&(e.dimensions=h),r?.opaque&&(e.opaque=ns(r?.opaque)),r?.cascaded&&(e.cascaded=ns(r?.cascaded)),r?.queryable&&(e.queryable=ns(r?.queryable));let p=rs(r?.Layer),B=[];for(let T of p)B.push(fm(T));B.length>0&&(e.layers=B);for(let[T,y]of Object.entries(e))y===void 0&&delete e[T];return e}function H_(r){let{westBoundLongitude:e,northBoundLatitude:t,eastBoundLongitude:n,southBoundLatitude:i}=r;return[[e,i],[n,t]]}function V_(r){let{minx:e,miny:t,maxx:n,maxy:i}=r;return[[e,t],[n,i]]}function J_(r){return rs(r).map(t=>j_(t))}function j_(r){let{CRS:e,SRS:t,minx:n,miny:i,maxx:A,maxy:h,resx:p,resy:B}=r,T={crs:e||t,boundingBox:[[eo(n),eo(i)],[eo(A),eo(h)]]};return p&&(T.xResolution=p),B&&(T.yResolution=B),T}function Q_(r){let{name:e,units:t,value:n}=r,i={name:e,units:t,extent:n};return r.unitSymbol&&(i.unitSymbol=r.unitSymbol),r.default&&(i.defaultValue=r.default),r.multipleValues&&(i.multipleValues=ns(r.multipleValues)),r.nearestValue&&(i.nearestValue=ns(r.nearestValue)),r.current&&(i.current=ns(r.current)),i}function hm(r,e){e?.geographicBoundingBox&&!r.geographicBoundingBox&&(r.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!r.crs&&(r.crs=[...e.crs]),e?.boundingBoxes&&!r.boundingBoxes&&(r.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!r.dimensions&&(r.dimensions=[...e.dimensions]);for(let t of r.layers||[])hm(t,r)}var K_="4.4.4",Us={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",ver
7sion:K_,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:z_,options:{wms:{}},parse:(r,e)=>Z(null,null,function*(){return Yc(new TextDecoder().decode(r),e?.wms)}),parseTextSync:(r,e)=>Yc(r,e?.wms)};function z_(r){return r.startsWith("<?xml")}function Wc(r,e){let n=(kr.parseTextSync?.(r,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(n)?n:[n]).map(A=>X_(A))}}function X_(r){return{attributes:r||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}var dm=ee(P({},Us),{dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:(r,e)=>Z(null,null,function*(){return Wc(new TextDecoder().decode(r),e)}),parseTextSync:(r,e)=>Wc(r,e)});function qc(r,e){return kr.parseTextSync?.(r,e)}var pm=ee(P({},Us),{dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:(r,e)=>Z(null,null,function*(){return qc(new TextDecoder().decode(r),e)}),parseTextSync:(r,e)=>qc(r,e)});var DA={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:r=>r.toLowerCase().includes("wms"),createDataSource:(r,e)=>new LA(r,e)},LA=class extends Lh{substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e,t){super(e,t,DA.defaultOptions),this.substituteCRS84=t.wms?.substituteCRS84??!1,this.flipCRS=["EPSG:4326"],this.wmsParameters=P(P({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},t.wmsParameters),t.wms?.wmsParameters),this.vendorParameters=t.wms?.vendorParameters||t.vendorParameters||{}}getMetadata(){return Z(this,null,function*(){let e=yield this.getCapabilities();return this.normalizeMetadata(e)})}getImage(e){return Z(this,null,function*(){let h=e,{boundingBox:t,bbox:n}=h,i=bn(h,["boundingBox","bbox"]),A=P({bbox:t?[...t[0],...t[1]]:n},i);return yield this.getMap(A)})}normalizeMetadata(e){return e}getCapabilities(e,t){return Z(this,null,function*(){let n=this.getCapabilitiesURL(e,t),i=yield this.fetch(n),A=yield i.arrayBuffer();this._checkResponse(i,A);let h=yield Us.parse(A,this.loadOptions);return this.capabilities=h,h})}getMap(e,t){return Z(this,null,function*(){let n=this.getMapURL(e,t),i=yield this.fetch(n),A=yield i.arrayBuffer();this._checkResponse(i,A);try{return yield Qn.parse(A,this.loadOptions)}catch(h){throw this._parseError(A)}})}getFeatureInfo(e,t){return Z(this,null,function*(){let n=this.getFeatureInfoURL(e,t),i=yield this.fetch(n),A=yield i.arrayBuffer();return this._checkResponse(i,A),yield dm.parse(A,this.loadOptions)})}getFeatureInfoText(e,t){return Z(this,null,function*(){let n=this.getFeatureInfoURL(e,t),i=yield this.fetch(n),A=yield i.arrayBuffer();return this._checkResponse(i,A),new TextDecoder().decode(A)})}describeLayer(e,t){return Z(this,null,function*(){let n=this.describeLayerURL(e,t),i=yield this.fetch(n),A=yield i.arrayBuffer();return this._checkResponse(i,A),yield pm.parse(A,this.loadOptions)})}getLegendGraphic(e,t){return Z(this,null,function*(){let n=this.getLegendGraphicURL(e,t),i=yield this.fetch(n),A=yield i.arrayBuffer();this._checkResponse(i,A);try{return yield Qn.parse(A,this.loadOptions)}catch(h){throw this._parseError(A)}})}getCapabilitiesURL(e,t){let n=P({version:this.wmsParameters.version},e);return this._getWMSUrl("GetCapabilities",n,t)}getMapURL(e,t){e=this._getWMS130Parameters(e);let n=P({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,t)}getFeatureInfoURL(e,t){e=this._getWMS130Parameters(e);let{boundingBox:n,bbox:i}=e;e.bbox=n?[...n[0],...n[1]]:i;let A=P({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",A,t)}describeLayerURL(e,t){let n=P({version:this.wmsParameters.version},e);return this._getWMSUrl("DescribeLayer",n,t)}getLegendGraphicURL(e,t){let n=P({version:this.wmsParameters.version},e);return this._getWMSUrl("GetLegendGraphic",n,t)}_parseWMSUrl(e){let[t,n]=e.split("?"),i=n.split("&"),A={};for(let h of i){let[p,B]=h.split("=");A[p]=B}return{url:t,parameters:A}}_getWMSUrl(e,t,n){let i=this.url,A=!0,h=P(P(P({service:"WMS",version:t.version,request:e},t),this.vendorParameters),n),p=["transparent","time","elevation"];for(let[B,T]of Object.entries(h))(!p.includes(B)||T)&&(i+=A?"?":"&",A=!1,i+=this._getURLParameter(B,T,t));return encodeURI(i)}_getWMS130Parameters(e){let t=P({},e);return t.srs&&(t.crs=t.crs||t.srs,delete t.srs),t}_getURLParameter(e,t,n){switch(e){case"crs":n.version!=="1.3.0"?e="srs":this.substituteCRS84&&t==="EPSG:4326"&&(t="CRS:84");break;case"srs":n.version==="1.3.0"&&(e="crs");break;case"bbox":let i=this._flipBoundingBox(t,n);i&&(t=i);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(t)?`${e}=${t.join(",")}`:`${e}
7=${t?String(t):""}`}_flipBoundingBox(e,t){if(!Array.isArray(e)||e.length!==4)return null;let n=t.version==="1.3.0"&&this.flipCRS.includes(t.crs||"")&&!(this.substituteCRS84&&t.crs==="EPSG:4326"),i=e;return n?[i[1],i[0],i[3],i[2]]:i}_fetchArrayBuffer(e){return Z(this,null,function*(){let t=yield this.fetch(e),n=yield t.arrayBuffer();return this._checkResponse(t,n),n})}_checkResponse(e,t){let n=e.headers["content-type"];if(!e.ok||Zi.mimeTypes.includes(n)){let i=Mh(this.loadOptions,{wms:{throwOnError:!0}}),A=Zi.parseSync?.(t,i);throw new Error(A)}}_parseError(e){let t=Zi.parseSync?.(e,this.options.core?.loadOptions);return new Error(t)}};var mm=6378137*Math.PI;function Zc(r){let e=Ni(r);return e[0]=(e[0]/256-1)*mm,e[1]=(e[1]/256-1)*mm,e}var Y_={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:(r,e)=>console.error(e,r)}},W_=(()=>{class r extends wr{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:t,props:n,oldProps:i}){let{viewport:A}=this.context;t.dataChanged||n.serviceType!==i.serviceType?(this.state.imageSource=this._createImageSource(n),this._loadMetadata(),this.debounce(()=>this.loadImage(A,"image source changed"),0)):$h(n.layers,i.layers,1)?t.viewportChanged&&this.debounce(()=>this.loadImage(A,"viewport changed")):this.debounce(()=>this.loadImage(A,"layers changed"),0)}finalizeState(){}renderLayers(){let{bounds:t,image:n,lastRequestParameters:i}=this.state;return n&&new rd(ee(P({},this.getSubLayerProps({id:"bitmap"})),{_imageCoordinateSystem:i.srs==="EPSG:4326"?xr.LNGLAT:xr.CARTESIAN,bounds:t,image:n}))}getFeatureInfoText(t,n){return Z(this,null,function*(){let{lastRequestParameters:i}=this.state;return i?yield this.state.imageSource.getFeatureInfoText?.(ee(P({},i),{query_layers:i.layers,x:t,y:n,info_format:"application/vnd.ogc.gml"})):""})}_createImageSource(t){if(t.data instanceof q0)return t.data;if(typeof t.data=="string")return sd(t.data,[DA],{core:{type:t.serviceType,loadOptions:t.loadOptions}});throw new Error("invalid image source in props.data")}_loadMetadata(){return Z(this,null,function*(){let{imageSource:t}=this.state;try{this.state.loadCounter++;let n=yield t.getMetadata();this.state.imageSource===t&&this.getCurrentLayer()?.props.onMetadataLoad(n)}catch(n){this.getCurrentLayer()?.props.onMetadataLoadError(n)}finally{this.state.loadCounter--}})}loadImage(t,n){return Z(this,null,function*(){let{layers:i,serviceType:A}=this.props;if(A==="wms"&&i.length===0)return;let h=t.getBounds(),{width:p,height:B}=t,T=this.getRequestId(),{srs:y}=this.props;y==="auto"&&(y=t.resolution?"EPSG:4326":"EPSG:3857");let E={width:p,height:B,boundingBox:[[h[0],h[1]],[h[2],h[3]]],layers:i,crs:y};if(y==="EPSG:3857"){let I=Zc([h[0],h[1]]),S=Zc([h[2],h[3]]);E.boundingBox=[I,S]}try{this.state.loadCounter++,this.props.onImageLoadStart(T);let I=yield this.state.imageSource.getImage(E);this.state.lastRequestId<T&&(this.getCurrentLayer()?.props.onImageLoad(T),this.setState({image:I,bounds:h,lastRequestParameters:E,lastRequestId:T}))}catch(I){this.raiseError(I,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(T,I)}finally{this.state.loadCounter--}})}getRequestId(){return this.state._nextRequestId++}debounce(t,n=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>t(),n)}}return r.layerName="WMSLayer",r.defaultProps=Y_,r})();var q_={getHeight:{type:"accessor",value:0},greatCircle:!0},Z_=(()=>{class r extends td{}return r.layerName="GreatCircleLayer",r.defaultProps=q_,r})(),$_=Z_;var PA=Y0($c(),1),ex=3,tx=30,rx=2*tx+1,Bm=180/Math.PI;function Tm(r,e,t){let n=1<<e;return[(r[0]+t[0])/n,(r[1]+t[1])/n]}function Cm(r){return r>=.5?1/3*(4*r*r-1):1/3*(1-4*(1-r)*(1-r))}function ym(r){return[Cm(r[0]),Cm(r[1])]}function bm(r,[e,t]){switch(r){case 0:return[1,e,t];case 1:return[-e,1,t];case 2:return[-e,-t,1];case 3:return[-1,-t,-e];case 4:return[t,-1,-e];case 5:return[t,e,-1];default:throw new Error("Invalid face")}}function Em([r,e,t]){let n=Math.atan2(t,Math.sqrt(r*r+e*e));return[Math.atan2(e,r)*Bm,n*Bm]}function _m(r){let e=PA.default.fromString(r,!0,10).toString(2);for(;e.length<ex+rx;)e="0"+e;let t=e.lastIndexOf("1"),n=e.substring(0,3),i=e.substring(3,t),A=i.length/2,h=PA.default.fromString(n,!0,2).toString(10),p=PA.default.fromString(i,!0,2).toString(4);for(;p.length<A;)p="0"+p;return`${h}/${p}`}function nx(r,e,t,n){if(n===0){t===1&&(e[0]=r-1-e[0],e[1]=r-1-e[1]);let i=e[0];e[0]=e[1],e[1]=i}}function xm(r){let e=r.split("/"),t=parseInt(e[0],10),n=e[1],i=n.length,A=[0,0],h;for(let p=i-1;p>=0;p--){h=i-p;let B=n[p],T=0,y=0;B==="1"?y=1:B==="2"?(T=1,y=1):B==="3"&&(T=1);let E=Math.pow(2,h-1);nx(E,A,T,y),A[0]+=E*T,A[1]+=E*y}if(t%2===1){let p=A[0];A[0]=A[1],A[1]=p}return{face:t,ij:A,level:h}}var Im=Y0($c(),1);function sx(r){let e=r.padEnd(16,"0");return Im.default.fromString(e,16)}var ix=100;function ox({face:r,ij:e,level:t}){let n=[[0,0],[0,1],[1,1],[1,0],[0,0]],i=Math.max(1,Math.ceil(ix*Math.pow(2,-t))),A=new Float64Array(4*i*2+2),h=0,p=0;for(let B=0;B<4;B++){let T=n[B].slice(0),y=n[B+1],E=(y[0]-T[0])/i,I=(y[1]-T[1])/i;for(let S=0;S<i;S++){T[0]+=E,T[1]+=I;let O=Tm(e,t,T),N=ym(O),Q=bm(r,N),z=Em(Q);Math.abs(z[1])>89.999&&(z[0]=p);let j=z[0]-p;z[0]+=j>180?-360:j<-180?360:0,A[h++]=z[0],A[h++]=z[1],p=z[0]}}return A[h++]=A[0],A[h++]=A[1],A}function Ax(r){if(typeof r=="string"){if(r.indexOf("/")>0)return r;r=sx(r)}return _m(r.toString())}function wm(r){let e=Ax(r),t=xm(e);return ox(t)}var ax={getS2Token:{type:"accessor",value:r=>r.token}},cx=(()=>{class r extends Gr{indexToBounds(){let{data:t,getS2Token:n}=this.props;return{data:t,_normalize:!1,positionFormat:"XY",getPolygon:(i,A)=>wm(n(i,A))}}}return r.layerName="S2Layer",r.defaultProps=ax,r})(),lx=cx;var el=512;function ux(r,e){let t=0,n=0,i=1<<r.length,A=i/el;for(let h=0;h<r.length;h++){i>>=1;let p=parseInt(r[h]);p%2&&(t|=i),p>1&&(n|=i)}return[[t/A,el-n/A],[(t+e)/A,el-(n+e)/A]]}function Mm(r,e=1){let[t,n]=ux(r,e),[i,A]=tc(t),[h,p]=tc(n);return[h,A,h,p,i,p,i,A,h,A]}var fx={getQuadkey:{type:"accessor",value:r=>r.quadkey}},hx=(()=>{class r extends Gr{indexToBounds(){let{data:t,extruded:n,getQuadkey:i}=this.props,A=n?.99:1;return{data:t,_normalize:!1,positionFormat:"XY",getPolygon:(h,p)=>Mm(i(h,p),A),updateTriggers:{getPolygon:A}}}}return r.layerName="QuadkeyLayer",r.defaultProps=fx,r})(),dx=hx;var ks=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}_loadData(h){return Z(this,arguments,function*({getData:e,getRequestPriority:t,requestScheduler:n,onLoad:i,onError:A}){let{index:p,id:B,bbox:T,userData:y,zoom:E}=this,I=this._loaderId;this._abortController=new AbortController;let{signal:S}=this._abortController,O=yield n.scheduleRequest(this,t);if(!O){this._isCancelled=!0;return}if(this._isCancelled){O.done();return}let N=null,Q;
vendor: 27,650 bytes, line 7
7try{N=yield e({index:p,id:B,bbox:T,userData:y,zoom:E,signal:S})}catch(z){Q=z||!0}finally{O.done()}if(I===this._loaderId){if(this._loader=void 0,this.content=N,this._isCancelled&&!N){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,Q?A(Q,this):i(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 Tt={OUTSIDE:-1,INTERSECTING:0,INSIDE:1};var Sm=new X,px=new X,Hs=class r{constructor(e=[0,0,0],t=[0,0,0],n){n=n||Sm.copy(e).add(t).scale(.5),this.center=new X(n),this.halfDiagonal=new X(t).subtract(this.center),this.minimum=new X(e),this.maximum=new X(t)}clone(){return new r(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:t}=this,n=px.from(e.normal),i=t.x*Math.abs(n.x)+t.y*Math.abs(n.y)+t.z*Math.abs(n.z),A=this.center.dot(n)+e.distance;return A-i>0?Tt.INSIDE:A+i<0?Tt.OUTSIDE:Tt.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let t=Sm.from(e).subtract(this.center),{halfDiagonal:n}=this,i=0,A;return A=Math.abs(t.x)-n.x,A>0&&(i+=A*A),A=Math.abs(t.y)-n.y,A>0&&(i+=A*A),A=Math.abs(t.z)-n.z,A>0&&(i+=A*A),i}};var ro=new X,vm=new X,qr=class r{constructor(e=[0,0,0],t=0){this.radius=-0,this.center=new X,this.fromCenterRadius(e,t)}fromCenterRadius(e,t){return this.center.from(e),this.radius=t,this}fromCornerPoints(e,t){return t=ro.from(t),this.center=new X().from(e).add(t).scale(.5),this.radius=this.center.distance(t),this}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new r(this.center,this.radius)}union(e){let t=this.center,n=this.radius,i=e.center,A=e.radius,h=ro.copy(i).subtract(t),p=h.magnitude();if(n>=p+A)return this.clone();if(A>=p+n)return e.clone();let B=(n+p+A)*.5;return vm.copy(h).scale((-n+B)/p).add(t),this.center.copy(vm),this.radius=B,this}expand(e){let n=ro.from(e).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(e){this.center.transform(e);let t=Uh.getScaling(ro,e);return this.radius=Math.max(t[0],Math.max(t[1],t[2]))*this.radius,this}distanceSquaredTo(e){let t=this.distanceTo(e);return t*t}distanceTo(e){let n=ro.from(e).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(e){let t=this.center,n=this.radius,A=e.normal.dot(t)+e.distance;return A<-n?Tt.OUTSIDE:A<n?Tt.INTERSECTING:Tt.INSIDE}};var mx=new X,gx=new X,OA=new X,NA=new X,GA=new X,Bx=new X,Cx=new X,an={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8},cn=class r{constructor(e=[0,0,0],t=[0,0,0,0,0,0,0,0,0]){this.center=new X().from(e),this.halfAxes=new He(t)}get halfSize(){let e=this.halfAxes.getColumn(0),t=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new X(e).len(),new X(t).len(),new X(n).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),t=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),i=new X(e).normalize(),A=new X(t).normalize(),h=new X(n).normalize();return new Kn().fromMatrix3(new He([...i,...A,...h]))}fromCenterHalfSizeQuaternion(e,t,n){let i=new Kn(n),A=new He().fromQuaternion(i);return A[0]=A[0]*t[0],A[1]=A[1]*t[0],A[2]=A[2]*t[0],A[3]=A[3]*t[1],A[4]=A[4]*t[1],A[5]=A[5]*t[1],A[6]=A[6]*t[2],A[7]=A[7]*t[2],A[8]=A[8]*t[2],this.center=new X().from(e),this.halfAxes=A,this}clone(){return new r(this.center,this.halfAxes)}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new qr){let t=this.halfAxes,n=t.getColumn(0,OA),i=t.getColumn(1,NA),A=t.getColumn(2,GA),h=mx.copy(n).add(i).add(A);return e.center.copy(this.center),e.radius=h.magnitude(),e}intersectPlane(e){let t=this.center,n=e.normal,i=this.halfAxes,A=n.x,h=n.y,p=n.z,B=Math.abs(A*i[an.COLUMN0ROW0]+h*i[an.COLUMN0ROW1]+p*i[an.COLUMN0ROW2])+Math.abs(A*i[an.COLUMN1ROW0]+h*i[an.COLUMN1ROW1]+p*i[an.COLUMN1ROW2])+Math.abs(A*i[an.COLUMN2ROW0]+h*i[an.COLUMN2ROW1]+p*i[an.COLUMN2ROW2]),T=n.dot(t)+e.distance;return T<=-B?Tt.OUTSIDE:T>=B?Tt.INSIDE:Tt.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let t=gx.from(e).subtract(this.center),n=this.halfAxes,i=n.getColumn(0,OA),A=n.getColumn(1,NA),h=n.getColumn(2,GA),p=i.magnitude(),B=A.magnitude(),T=h.magnitude();i.normalize(),A.normalize(),h.normalize();let y=0,E;return E=Math.abs(t.dot(i))-p,E>0&&(y+=E*E),E=Math.abs(t.dot(A))-B,E>0&&(y+=E*E),E=Math.abs(t.dot(h))-T,E>0&&(y+=E*E),y}computePlaneDistances(e,t,n=[-0,-0]){let i=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,h=this.center,p=this.halfAxes,B=p.getColumn(0,OA),T=p.getColumn(1,NA),y=p.getColumn(2,GA),E=Bx.copy(B).add(T).add(y).add(h),I=Cx.copy(E).subtract(e),S=t.dot(I);return i=Math.min(S,i),A=Math.max(S,A),E.copy(h).add(B).add(T).subtract(y),I.copy(E).subtract(e),S=t.dot(I),i=Math.min(S,i),A=Math.max(S,A),E.copy(h).add(B).subtract(T).add(y),I.copy(E).subtract(e),S=t.dot(I),i=Math.min(S,i),A=Math.max(S,A),E.copy(h).add(B).subtract(T).subtract(y),I.copy(E).subtract(e),S=t.dot(I),i=Math.min(S,i),A=Math.max(S,A),h.copy(E).subtract(B).add(T).add(y),I.copy(E).subtract(e),S=t.dot(I),i=Math.min(S,i),A=Math.max(S,A),h.copy(E).subtract(B).add(T).subtract(y),I.copy(E).subtract(e),S=t.dot(I),i=Math.min(S,i),A=Math.max(S,A),h.copy(E).subtract(B).subtract(T).add(y),I.copy(E).subtract(e),S=t.dot(I),i=Math.min(S,i),A=Math.max(S,A),h.copy(E).subtract(B).subtract(T).subtract(y),I.copy(E).subtract(e),S=t.dot(I),i=Math.min(S,i),A=Math.max(S,A),n[0]=i,n[1]=A,n}transform(e){this.center.transformAsPoint(e);let t=this.halfAxes.getColumn(0,OA);t.transformAsPoint(e);let n=this.halfAxes.getColumn(1,NA);n.transformAsPoint(e);let i=this.halfAxes.getColumn(2,GA);return i.transformAsPoint(e),this.halfAxes=new He([...t,...n,...i]),this}getTransform(){throw new Error("not implemented")}};var Fm=new X,Rm=new X,jt=class r{constructor(e=[0,0,1],t=0){this.normal=new X,this.distance=-0,this.fromNormalDistance(e,t)}fromNormalDistance(e,t){return or(Number.isFinite(t)),this.normal.from(e).normalize(),this.distance=t,this}fromPointNormal(e,t){e=Fm.from(e),this.normal.from(t).normalize();let n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,t,n,i){return this.normal.set(e,t,n),or(Nr(this.normal.len(),1)),this.distance=i,this}clone(){return new r(this.normal,this.distance)}equals(e){return Nr(this.distance,e.distance)&&Nr(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let t=Rm.copy(this.normal).transformAsVector(e).normalize(),n=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(n,t)}projectPointOntoPlane(e,t=[0,0,0]){let n=Fm.from(e),i=this.getPointDistance(n),A=Rm.copy(this.normal).scale(i);return n.subtract(A).to(t)}};var Lm=[new X([1,0,0]),new X([0,1,0]),new X([0,0,1])],Dm=new X,Tx=new X,Zr=(()=>{class r{constructor(t=[]){this.planes=t}fromBoundingSphere(t){this.planes.length=2*Lm.length;let n=t.center,i=t.radius,A=0;for(let h of Lm){let p=this.planes[A],B=this.planes[A+1];p||(p=this.planes[A]=new jt),B||(B=this.planes[A+1]=new jt);let T=Dm.copy(h).scale(-i).add(n);p.fromPointNormal(T,h);let y=Dm.copy(h).scale(i).add(n),E=Tx.copy(h).negate();B.fromPointNormal(y,E),A+=2}return this}computeVisibility(t){let n=Tt.INSIDE;for(let i of this.planes)switch(t.intersectPlane(i)){case Tt.OUTSIDE:return Tt.OUTSIDE;case Tt.INTERSECTING:n=Tt.INTERSECTING;break;default:}return n}computeVisibilityWithPlaneMask(t,n){if(or(Number.isFinite(n),"parentPlaneMask is required."),n===r.MASK_OUTSIDE||n===r.MASK_INSIDE)return n;let i=r.MASK_INSIDE,A=this.planes;for(let h=0;h<this.planes.length;++h){let p=h<31?1<<h:0;if(h<31&&(n&p)===0)continue;let B=A[h],T=t.intersectPlane(B);if(T===Tt.OUTSIDE)return r.MASK_OUTSIDE;T===Tt.INTERSECTING&&(i|=p)}return i}}return r.MASK_OUTSIDE=4294967295,r.MASK_INSIDE=0,r.MASK_INDETERMINATE=2147483647,r})();var k6=new X,H6=new X,V6=new X,J6=new X,j6=new X;var W6=new X,q6=new X,Z6=new X,$6=new X,e9=new X,t9=new X,r9=new X,n9=new X,s9=new X,i9=new X,o9=new X,A9=new X;var $r=new He,bx=new He,Ex=new He,UA=new He,Pm=new He;function nl(r,e={}){let t=on.EPSILON20,n=10,i=0,A=0,h=bx,p=Ex;h.identity(),p.copy(r);let B=t*_x(p);for(;A<n&&xx(p)>B;)Ix(p,UA),Pm.copy(UA).transpose(),p.multiplyRight(UA),p.multiplyLeft(Pm),h.multiplyRight(UA),++i>2&&(++A,i=0);return e.unitary=h.toTarget(e.unitary),e.diagonal=p.toTarget(e.diagonal),e}function _x(r){let e=0;for(let t=0;t<9;++t){let n=r[t];e+=n*n}return Math.sqrt(e)}var tl=[1,0,0],rl=[2,2,1];function xx(r){let e=0;for(let t=0;t<3;++t){let n=r[$r.getElementIndex(rl[t],tl[t])];e+=2*n*n}return Math.sqrt(e)}function Ix(r,e){let t=on.EPSILON15,n=0,i=1;for(let T=0;T<3;++T){let y=Math.abs(r[$r.getElementIndex(rl[T],tl[T])]);y>n&&(i=T,n=y)}let A=tl[i],h=rl[i],p=1,B=0;if(Math.abs(r[$r.getElementIndex(h,A)])>t){let T=r[$r.getElementIndex(h,h)],y=r[$r.getElementIndex(A,A)],E=r[$r.getElementIndex(h,A)],I=(T-y)/2/E,S;I<0?S=-1/(-I+Math.sqrt(1+I*I)):S=1/(I+Math.sqrt(1+I*I)),p=1/Math.sqrt(1+S*S),B=S*p}return He.IDENTITY.to(e),e[$r.getElementIndex(A,A)]=e[$r.getElementIndex(h,h)]=p,e[$r.getElementIndex(h,A)]=B,e[$r.getElementIndex(A,h)]=-B,e}var Mn=new X,wx=new X,Mx=new X,Sx=new X,vx=new X,Fx=new He,Rx={diagonal:new He,unitary:new He};function no(r,e=new cn){if(!r||r.length===0)return e.halfAxes=new He([0,0,0,0,0,0,0,0,0]),e.center=new X,e;let t=r.length,n=new X(0,0,0);for(let H of r)n.add(H);let i=1/t;n.multiplyByScalar(i);let A=0,h=0,p=0,B=0,T=0,y=0;for(let H of r){let U=Mn.copy(H).subtract(n);A+=U.x*U.x,h+=U.x*U.y,p+=U.x*U.z,B+=U.y*U.y,T+=U.y*U.z,y+=U.z*U.z}A*=i,h*=i,p*=i,B*=i,T*=i,y*=i;let E=Fx;E[0]=A,E[1]=h,E[2]=p,E[3]=h,E[4]=B,E[5]=T,E[6]=p,E[7]=T,E[8]=y;let{unitary:I}=nl(E,Rx),S=e.halfAxes.copy(I),O=S.getColumn(0,Mx),N=S.getColumn(1,Sx),Q=S.getColumn(2,vx),z=-Number.MAX_VALUE,j=-Number.MAX_VALUE,re=-Number.MAX_VALUE,ie=Number.MAX_VALUE,ce=Number.MAX_VALUE,Ae=Number.MAX_VALUE;for(let H of r)Mn.copy(H),z=Math.max(Mn.dot(O),z),j=Math.max(Mn.dot(N),j),re=Math.max(Mn.dot(Q),re),ie=Math.min(Mn.dot(O),ie),ce=Math.min(Mn.dot(N),ce),Ae=Math.min(Mn.dot(Q),Ae);O=O.multiplyByScalar(.5*(ie+z)),N=N.multiplyByScalar(.5*(ce+j)),Q=Q.multiplyByScalar(.5*(Ae+re)),e.center.copy(O).add(N).add(Q);let he=wx.set(z-ie,j-ce,re-Ae).multiplyByScalar(.5),W=new He([he[0],0,0,0,he[1],0,0,0,he[2]]);return e.halfAxes.multiplyRight(W),e}var Vs=512,Om=3,Nm=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],Gm=Nm.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),Lx=Gm.concat([[.25,.5],[.75,.5]]),sl=class r{constructor(e,t,n){this.x=e,this.y=t,this.z=n}get children(){if(!this._children){let e=this.x*2,t=this.y*2,n=this.z+1;this._children=[new r(e,t,n),new r(e,t+1,n),new r(e+1,t,n),new r(e+1,t+1,n)]}return this._children}update(e){let{viewport:t,cullingVolume:n,elevationBounds:i,minZ:A,maxZ:h,bounds:p,offset:B,project:T}=e,y=this.getBoundingVolume(i,B,T);if(p&&!this.insideBounds(p)||n.computeVisibility(y)<0||T&&this.beyondHorizon(t.cameraPosition,T,i[1]))return!1;if(!this.childVisible){let{z:I}=this;if(I<h&&I>=A){let S=y.distanceTo(t.cameraPosition)*t.scale/t.height;I+=Math.floor(Math.log2(S))}if(I>=h)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let I of this.children)I.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let t of this._children)t.getSelected(e);return e}beyondHorizon(e,t,n){let i=e[0],A=e[1],h=e[2],p=Math.sqrt(i*i+A*A+h*h),B=Math.atan2(i,-A)*180/Math.PI,T=Math.asin(h/p)*180/Math.PI,[y,E]=Js(this.x,this.y,this.z),[I,S]=Js(this.x+1,this.y+1,this.z),O=(y+I)/2,N=O+((B-O+540)%360-180),Q=Math.max(y,Math.min(N,I)),z=Math.max(S,Math.min(T,E)),j=t([Q,z,n]),re=j[0]*i+j[1]*A+j[2]*h,ie=j[0]*j[0]+j[1]*j[1]+j[2]*j[2];return re<=ie}insideBounds([e,t,n,i]){let A=Math.pow(2,this.z),h=Vs/A;return this.x*h<n&&this.y*h<i&&(this.x+1)*h>e&&(this.y+1)*h>t}getBoundingVolume(e,t,n){if(n){let B=this.z<1?Lx:this.z<2?Gm:Nm,T=[];for(let y of B){let E=Js(this.x+y[0],this.y+y[1],this.z);E[2]=e[0],T.push(n(E)),e[0]!==e[1]&&(E[2]=e[1],T.push(n(E)))}return no(T)}let i=Math.pow(2,this.z),A=Vs/i,h=this.x*A+t*Vs,p=Vs-(this.y+1)*A;return new Hs([h,p,e[0]],[h+A,p+A,e[1]])}};function Um(r,e,t,n){let i=r instanceof Gi?r.projectPosition:null,A=Object.values(r.getFrustumPlanes()).map(({normal:S,distance:O})=>new jt(S.clone().negate(),O)),h=new Zr(A),p=r.distanceScales.unitsPerMeter[2],B=t&&t[0]*p||0,T=t&&t[1]*p||0,y=r instanceof rc&&r.pitch<=60?e:0;if(n){let[S,O,N,Q]=n,z=Ni([S,Q]),j=Ni([N,O]);n=[z[0],Vs-z[1],j[0],Vs-j[1]]}let E=new sl(0,0,0),I={viewport:r,project:i,cullingVolume:h,elevationBounds:[B,T],minZ:y,maxZ:e,bounds:n,offset:0};if(E.update(I),r instanceof rc&&r.subViewports&&r.subViewports.length>1){for(I.offset=-1;E.update(I)&&!(--I.offset<-Om););for(I.offset=1;E.update(I)&&!(++I.offset>Om););}return E.getSelected()}var ln=512,Dx=[-1/0,-1/0,1/0,1/0],Sn={type:"object",value:null,validate:(r,e)=>e.optional&&r===null||typeof r=="string"||Array.isArray(r)&&r.every(t=>typeof t=="string"),equal:(r,e)=>{if(r===e)return!0;if(!Array.isArray(r)||!Array.isArray(e))return!1;let t=r.length;if(t!==e.length)return!1;for(let n=0;n<t;n++)if(r[n]!==e[n])return!1;return!0}};function kA(r,e){let t=[e.transformAsPoint([r[0],r[1]]),e.transformAsPoint([r[2],r[1]]),e.transformAsPoint([r[0],r[3]]),e.transformAsPoint([r[2],r[3]])];return[Math.min(...t.map(i=>i[0])),Math.min(...t.map(i=>i[1])),Math.max(...t.map(i=>i[0])),Math.max(...t.map(i=>i[1]))]}function Px(r){return Math.abs(r.split("").reduce((e,t)=>(e<<5)-e+t.charCodeAt(0)|0,0))}function un(r,e){if(!r||!r.length)return null;let{index:t,id:n}=e;if(Array.isArray(r)){let A=Px(n)%r.length;r=r[A]}let i=r;for(let A of Object.keys(t)){let h=new RegExp(`{${A}}`,"g");i=i.replace(h,String(t[A]))}return Number.isInteger(t.y)&&Number.isInteger(t.z)&&(i=i.replace(/\{-y\}/g,String(Math.pow(2,t.z)-t.y-1))),i}function Ox(r,e,t){let n;if(e&&e.length===2){let[i,A]=e,h=r.getBounds({z:i}),p=r.getBounds({z:A});n=[Math.min(h[0],p[0]),Math.min(h[1],p[1]),Math.max(h[2],p[2]),Math.max(h[3],p[3])]}else n=r.getBounds();return r.isGeospatial?[Math.max(n[0],t[0]),Math.max(n[1],t[1]),Math.min(n[2],t[2]),Math.min(n[3],t[3])]:[Math.max(Math.min(n[0],t[2]),t[0]),Math.max(Math.min(n[1],t[3]),t[1]),Math.min(Math.max(n[2],t[0]),t[2]),Math.min(Math.max(n[3],t[1]),t[3])]}function Hm({viewport:r,z:e,cullRect:t}){return(r.subViewports||[r]).map(i=>il(i,e||0,t))}function il(r,e,t){if(!Array.isArray(e)){let A=t.x-r.x,h=t.y-r.y,{width:p,height:B}=t,T={targetZ:e},y=r.unproject([A,h],T),E=r.unproject([A+p,h],T),I=r.unproject([A,h+B],T),S=r.unproject([A+p,h+B],T);return[Math.min(y[0],E[0],I[0],S[0]),Math.min(y[1],E[1],I[1],S[1]),Math.max(y[0],E[0],I[0],S[0]),Math.max(y[1],E[1],I[1],S[1])]}let n=il(r,e[0],t),i=il(r,e[1],t);return[Math.min(n[0],i[0]),Math.min(n[1],i[1]),Math.max(n[2],i[2]),Math.max(n[3],i[3])]}function Nx(r,e,t){return t?kA(r,t).map(i=>i*e/ln):r.map(n=>n*e/ln)}function ol(r,e){return Math.pow(2,r)*ln/e}function Js(r,e,t){let n=ol(t,ln),i=r/n*360-180,A=Math.PI-2*Math.PI*e/n,h=180/Math.PI*Math.atan(.5*(Math.exp(A)-Math.exp(-A)));return[i,h]}function km(r,e,t,n){let i=ol(t,n);return[r/i*ln,e/i*ln]}function Al(r,e,t,n,i=ln){if(r.isGeospatial){let[T,y]=Js(e,t,n),[E,I]=Js(e+1,t+1,n);return{west:T,north:y,east:E,south:I}}let[A,h]=km(e,t,n,i),[p,B]=km(e+1,t+1,n,i);return{left:A,top:h,right:p,bottom:B}}function Gx(r,e,t,n,i){let A=Ox(r,null,n),h=ol(e,t),[p,B,T,y]=Nx(A,h,i),E=[];for(let I=Math.floor(p);I<T;I++)for(let S=Math.floor(B);S<y;S++)E.push({x:I,y:S,z:e});return E}function al({viewport:r,maxZoom:e,minZoom:t,zRange:n,extent:i,tileSize:A=ln,modelMatrix:h,modelMatrixInverse:p,zoomOffset:B=0,visibleMinZoom:T,visibleMaxZoom:y}){let E=r.isGeospatial?Math.round(r.zoom+Math.log2(ln/A)+B):Math.ceil(r.zoom+B);if(typeof t=="number"&&Number.isFinite(t)&&E<t){if(!i)return[];E=t}if(typeof e=="number"&&Number.isFinite(e)&&E>e&&(E=e),T!=null&&r.zoom<T)return[];if(y!=null&&r.zoom>y)return[];let I=i;return h&&p&&i&&!r.isGeospatial&&(I=kA(i,h)),r.isGeospatial?Um(r,E,n,i):Gx(r,E,A,I||Dx,p)}function cl(r){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(r)}function ll(r){return Number.isFinite(r.west)&&Number.isFinite(r.north)&&Number.isFinite(r.east)&&Number.isFinite(r.south)}function Vm(r){let e={},t;return n=>{for(let i in n)if(!Ux(n[i],e[i])){t=r(n),e=n;break}return t}}function Ux(r,e){if(r===e)return!0;if(Array.isArray(r)){let t=r.length;if(!e||e.length!==t)return!1;for(let n=0;n<t;n++)if(r[n]!==e[n])return!1;return!0}return!1}var Jm=1,HA=2,kx="never",Hx="no-overlap",so="best-available",Vx=5,Qm=0,Km=1e8,jm=Km-Qm-1,Jx={[so]:Qx,[Hx]:Kx,[kx]:()=>{}},jx={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:()=>{}},js=class{constructor(e){this._getCullBounds=Vm(Hm),this.opts=P(P({},jx),e),this.setOptions(this.opts),this.onTileLoad=t=>{this.opts.onTileLoad?.(t),this.opts.maxCacheByteSize!==null&&(this._cacheByteSize+=t.byteLength,this._resizeCache())},this._requestScheduler=new Jo({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 Se,this._modelMatrixInverse=new Se}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 t=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(t)?this._cache.delete(e):t.setNeedsReload()}}update(e,{zRange:t,modelMatrix:n}={zRange:null,modelMatrix:null}){let i=n?new Se(n):new Se,A=!i.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!Nr(this._zRange,t)||A){A&&(this._modelMatrixInverse=i.clone().invert(),this._modelMatrix=i),this._viewport=e,this._zRange=t;let p=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:t,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=p.map(B=>this._getTile(B,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(p=>this._getTile(p.index,!0)));let h=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),h&&this._frameNumber++,this._frameNumber}isTileVisible(e,t,n){if(!e.isVisible)return!1;if(t&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:t}),{bbox:A}=e;for(let[h,p,B,T]of i){let y;if("west"in A)y=A.west<B&&A.east>h&&A.south<T&&A.north>p;else{if(n&&!Se.IDENTITY.equals(n)){let[S,O,N,Q]=kA([A.left,A.top,A.right,A.bottom],n);A={left:S,top:O,right:N,bottom:Q}}let E=Math.min(A.top,A.bottom),I=Math.max(A.top,A.bottom);y=A.left<B&&A.right>h&&E<T&&I>p}if(y)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:t,minZoom:n,zRange:i,modelMatrix:A,modelMatrixInverse:h}){let{tileSize:p,extent:B,zoomOffset:T,visibleMinZoom:y,visibleMaxZoom:E}=this.opts;return al({viewport:e,maxZoom:t,minZoom:n,zRange:i,tileSize:p,extent:B,modelMatrix:A,modelMatrixInverse:h,zoomOffset:T,visibleMinZoom:y,visibleMaxZoom:E})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:t}=this.opts;return{bbox:Al(this._viewport,e.x,e.y,e.z,t)}}getParentIndex(e){let t=Math.floor(e.x/2),n=Math.floor(e.y/2),i=e.z-1;return{x:t,y:n,z:i}}updateTileStates(){let e=this.opts.refinementStrategy||so,t=new Array(this._cache.size),n=0;for(let i of this._cache.values())t[n++]=i.isVisible,i.isSelected=!1,i.isVisible=!1;for(let i of this._selectedTiles)i.isSelected=!0,i.isVisible=!0;(typeof e=="function"?e:Jx[e])(Array.from(this._cache.values())),n=0;for(let i of this._cache.values())if(t[n++]!==i.isVisible)return!0;return!1}_getRequestPriority(e){if(!e.isSelected&&!e.isVisible)return-1;let t=this._getTileDistancePriority(e);return e.isSelected?Qm+t:Km+t}_getTileDistancePriority(e){let{width:t,height:n}=this._viewport||{};if(!this._viewport||!t||!n)return 0;try{let i=this._getTileScreenCorners(e.bbox),A=[t/2,n/2];if(i.length===4){if(this._isPointInPolygon(A,i))return 0;let h=i.reduce((p,B,T)=>{let y=i[(T+1)%i.length];return Math.min(p,this._getPointToSegmentDistanceSquared(A,B,y))},Number.MAX_SAFE_INTEGER);return Math.min(h,jm)}}catch(i){}return jm}_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,i])=>Number.isFinite(n)&&Number.isFinite(i))}_isPointInPolygon(e,t){let n=!1,[i,A]=e;for(let h=0,p=t.length-1;h<t.length;p=h++){let[B,T]=t[h],[y,E]=t[p];T>A!=E>A&&i<(y-B)*(A-T)/(E-T)+B&&(n=!n)}return n}_getPointToSegmentDistanceSquared(e,t,n){let[i,A]=e,[h,p]=t,[B,T]=n,y=B-h,E=T-p,I=y*y+E*E,S=I?Math.max(0,Math.min(1,((i-h)*y+(A-p)*E)/I)):0,O=h+S*y,N=p+S*E,Q=i-O,z=A-N;return Q*Q+z*z}_pruneRequests(){let{maxRequests:e=0}=this.opts,t=[],n=0;for(let i of this._cache.values())i.isLoading&&(n++,!i.isSelected&&!i.isVisible&&t.push(i));for(;e>0&&n>e&&t.length>0;)t.shift().abort(),n--}_rebuildTree(){let{_cache:e}=this;for(let t of e.values())t.parent=null,t.children&&(t.children.length=0);for(let t of e.values()){let n=this._getNearestAncestor(t);t.parent=n,n?.children&&n.children.push(t)}}_resizeCache(){let{_cache:e,opts:t}=this,n=t.maxCacheSize??(t.maxCacheByteSize!==null?1/0:Vx*this.selectedTiles.length),i=t.maxCacheByteSize??1/0;if(e.size>n||this._cacheByteSize>i){for(let[h,p]of e)if(!p.isVisible&&!p.isSelected&&(this._cacheByteSize-=t.maxCacheByteSize!==null?p.byteLength:0,e.delete(h),this.opts.onTileUnload?.(p)),e.size<=n&&this._cacheByteSize<=i)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((h,p)=>h.zoom-p.zoom),this._dirty=!1)}_getTile(e,t){let n=this.getTileId(e),i=this._cache.get(n),A=!1;return!i&&t?(i=new ks(e),Object.assign(i,this.getTileMetadata(i.index)),Object.assign(i,{id:n,zoom:this.getTileZoom(i.index)}),A=!0,this._cache.set(n,i),this._dirty=!0):i&&i.needsReload&&(A=!0),i&&A&&i.loadData({getData:this.opts.getTileData,getRequestPriority:this._getRequestPriority.bind(this),requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),i}_getNearestAncestor(e){let{_minZoom:t=0}=this,n=e.index;for(;this.getTileZoom(n)>t;){n=this.getParentIndex(n);let i=this._getTile(n);if(i)return i}return null}};function Qx(r){for(let e of r)e.state=0;for(let e of r)e.isSelected&&!zm(e)&&ul(e);for(let e of r)e.isVisible=!!(e.state&HA)}function Kx(r){for(let t of r)t.state=0;for(let t of r)t.isSelected&&zm(t);let e=Array.from(r).sort((t,n)=>t.zoom-n.zoom);for(let t of e)if(t.isVisible=!!(t.state&HA),t.children&&(t.isVisible||t.state&Jm))for(let n of t.children)n.state=Jm;else t.isSelected&&ul(t)}function zm(r){let e=r;for(;e;){if(e.isLoaded||e.content)return e.state|=HA,!0;e=e.parent}return!1}function ul(r){for(let e of r.children)e.isLoaded||e.content?e.state|=HA:ul(e)}var zx={TilesetClass:js,data:{type:"data",value:[]},dataComparator:Sn.equal,renderSubLayers:{type:"function",value:r=>new Ui(r)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:r=>{}},onTileUnload:{type:"function",value:r=>{}},onTileError:{type:"function",value:r=>console.error(r)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:so,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null},Xx=(()=>{class r extends wr{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return!!this.state?.tileset?.selectedTiles?.every(t=>t.isLoaded&&(!t.content||!t.layers||t.layers.every(n=>n.isLoaded)))}shouldUpdateState({changeFlags:t}){return t.somethingChanged}updateState({changeFlags:t}){let{tileset:n}=this.state,i=t.propsOrDataChanged||t.updateTriggersChanged,A=t.dataChanged||t.updateTriggersChanged&&(t.updateTriggersChanged.all||t.updateTriggersChanged.getTileData);n?i&&(n.setOptions(this._getTilesetOptions()),A?n.reloadAll():n.tiles.forEach(h=>{h.layers=null})):(n=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:n})),this._updateTileset()}_getTilesetOptions(){let{tileSize:t,maxCacheSize:n,maxCacheByteSize:i,refinementStrategy:A,extent:h,maxZoom:p,minZoom:B,maxRequests:T,debounceTime:y,zoomOffset:E,visibleMinZoom:I,visibleMaxZoom:S}=this.props;return{maxCacheSize:n,maxCacheByteSize:i,maxZoom:p,minZoom:B,tileSize:t,refinementStrategy:A,extent:h,maxRequests:T,debounceTime:y,zoomOffset:E,visibleMinZoom:I,visibleMaxZoom:S,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let t=this.state.tileset,{zRange:n,modelMatrix:i}=this.props,A=t.update(this.context.viewport,{zRange:n,modelMatrix:i}),{isLoaded:h}=t,p=this.state.isLoaded!==h,B=this.state.frameNumber!==A;h&&(p||B)&&this._onViewportLoad(),B&&this.setState({frameNumber:A}),this.state.isLoaded=h}_onViewportLoad(){let{tileset:t}=this.state,{onViewportLoad:n}=this.props;n&&n(t.selectedTiles)}_onTileLoad(t){this.props.onTileLoad(t),t.layers=null,this.setNeedsUpdate()}_onTileError(t,n){this.props.onTileError(t),n.layers=null,this.setNeedsUpdate()}_onTileUnload(t){this.props.onTileUnload(t)}getTileData(t){let{data:n,getTileData:i,fetch:A}=this.props,{signal:h}=t;return t.url=typeof n=="string"||Array.isArray(n)?un(n,t):null,i?i(t):A&&t.url?A(t.url,{propName:"data",layer:this,signal:h}):null}renderSubLayers(t){return this.props.renderSubLayers(t)}getSubLayerPropsByTile(t){return null}getPickingInfo(t){let n=t.sourceLayer,i=n.props.tile,A=t.info;return A.picked&&(A.tile=i),A.sourceTile=i,A.sourceTileSubLayer=n,A}_updateAutoHighlight(t){t.sourceTileSubLayer.updateAutoHighlight(t)}renderLayers(){let{visibleMinZoom:t,visibleMaxZoom:n,minZoom:i,extent:A}=this.props,h=this.context.viewport.zoom;if(t!=null&&h<t||n!=null&&h>n||i!=null&&!A&&h<i){for(let B of this.state.tileset.tiles)B.layers=null;return[]}return this.state.tileset.tiles.map(B=>{let T=this.getSubLayerPropsByTile(B);if(!(!B.isLoaded&&!B.content))if(B.layers)T&&B.layers[0]&&Object.keys(T).some(y=>B.layers[0].props[y]!==T[y])&&(B.layers=B.layers.map(y=>y.clone(T)));else{let y=this.renderSubLayers(ee(P(P({}
7,this.props),this.getSubLayerProps({id:B.id,updateTriggers:this.props.updateTriggers})),{data:B.content,_offset:0,tile:B}));B.layers=Zh(y,Boolean).map(E=>E.clone(P({tile:B},T)))}return B.layers})}filterSubLayer({layer:t,cullRect:n}){let{tile:i}=t.props,{modelMatrix:A}=this.props;return this.state.tileset.isTileVisible(i,n,A?new Se(A):null)}}return r.defaultProps=zx,r.layerName="TileLayer",r})(),Qs=Xx;var Yx=`struct TripsUniforms { 8 fadeTrail: f32, 9 trailLength: f32, 10 currentTime: f32, 11}; 12 13@group(0) @binding(auto) 14var<uniform> trips: TripsUniforms; 15`,Xm=`layout(std140) uniform tripsUniforms { 16 bool fadeTrail; 17 float trailLength; 18 float currentTime; 19} trips; 20`,Ym={name:"trips",source:Yx,vs:Xm,fs:Xm,uniformTypes:{fadeTrail:"f32",trailLength:"f32",currentTime:"f32"}};function Wm(r,e=r.length,t=!1){let n=new Float32Array(e*2);if(r.length===0)return n;let i=e>r.length,A=t?r.length:Math.max(r.length-1,1);for(let h=0;h<e;h++){let p=i?h%A:Math.min(h,r.length-1),B=i?(p+1)%A:Math.min(p+1,r.length-1);n[h*2]=r[p],n[h*2+1]=r[B]}return n}var qm={" @location(12) rowIndexes: u32,":` 21 @location(13) instanceTimestamps: vec2<f32>,`," @location(5) vJointType: f32,":` 22 @location(6) vTime: f32,`," attributes.instanceColors.a * layer.opacity\n );":` 23 24 varyings.vTime = mix( 25 attributes.instanceTimestamps.x, 26 attributes.instanceTimestamps.y, 27 varyings.vPathPosition.y / varyings.vPathLength 28 ); 29 30 if (trips.fadeTrail > 0.5) { 31 varyings.vColor.a *= 32 1.0 - (trips.currentTime - varyings.vTime) / trips.trailLength; 33 }`," // DECKGL_FILTER_COLOR":` 34 if ( 35 varyings.vTime > trips.currentTime || 36 (trips.fadeTrail > 0.5 && varyings.vTime < trips.currentTime - trips.trailLength) 37 ) { 38 discard; 39 }`};var Wx={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:r=>r.timestamps}},qx={"vs:#decl":`in float instanceTimestamps; 40in float instanceNextTimestamps; 41out float vTime; 42`,"vs:#main-end":`vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength; 43`,"fs:#decl":`in float vTime; 44`,"fs:DECKGL_FILTER_COLOR":`if(vTime > trips.currentTime || (trips.fadeTrail && (vTime < trips.currentTime - trips.trailLength))) { 45 discard; 46} 47if(trips.fadeTrail) { 48 color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength; 49} 50`},Zx=(()=>{class r extends ad{getShaders(){let t=super.getShaders();return t.inject=this.context.device.type==="webgpu"?qm:qx,t.modules=[...t.modules,Ym],t}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced(P({},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(t,{data:n,props:i}){let{pathTesselator:A}=this.state,{instanceCount:h,vertexStarts:p}=A,B=new Float32Array(h*2),{iterable:T,objectInfo:y}=xn(n);for(let E of T){y.index++;let I=p[y.index],S=p[y.index+1]??h;if(S<=I)continue;let O=i.getTimestamps?.(E,y)??[];B.set(Wm(O,S-I,i._pathType==="loop"),I*2)}t.startIndices=p,t.value=B}draw(t){let{fadeTrail:n,trailLength:i,currentTime:A}=this.props,h={fadeTrail:n,trailLength:i,currentTime:A};this.state.model.shaderInputs.setProps({trips:h}),super.draw(t)}}return r.layerName="TripsLayer",r.defaultProps=Wx,r})(),$x=Zx;var eI=10;function tI(r,e){let t;return r==null?t=e:typeof r=="object"?t=ee(P({},r),{coverage:e}):t={getHexagon:r,coverage:e},t}var rI=ee(P({},Is.defaultProps),{highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:r=>r.hexagon},extruded:!0}),nI=(()=>{class r extends wr{initializeState(){r._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:t}){return this._shouldUseHighPrecision()?t.propsOrDataChanged:t.somethingChanged}updateState({props:t,changeFlags:n}){if(t.highPrecision!==!0&&(n.dataChanged||n.updateTriggersChanged&&n.updateTriggersChanged.getHexagon)){let i=this._calculateH3DataProps();this.setState(i)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let t=-1,n=!1,i=!1,{iterable:A,objectInfo:h}=xn(this.props.data);for(let p of A){h.index++;let B=this.props.getHexagon(p,h),T=Pp(B);if(t<0){if(t=T,!this.props.highPrecision)break}else if(t!==T){i=!0;break}if(Dp(B)){n=!0;break}}return{resolution:t,edgeLengthKM:t>=0?kp(t,"km"):0,hasMultipleRes:i,hasPentagon:n}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){let{resolution:t,hasPentagon:n,hasMultipleRes:i}=this.state,{viewport:A}=this.context;return!!A?.resolution||i||n||t>=0&&t<=5}return this.props.highPrecision}_updateVertices(t){if(this._shouldUseHighPrecision())return;let{resolution:n,edgeLengthKM:i,centerHex:A}=this.state;if(n<0)return;let h=this.props.centerHexagon||Op(t.latitude,t.longitude,n);if(A===h)return;if(A)try{if(Up(A,h)*i<eI)return}catch(S){}let{unitsPerMeter:p}=t.distanceScales,B=xc(h),[T,y]=Hi(h),[E,I]=t.projectFlat([y,T]);B=B.map(S=>{let O=t.projectFlat(S);return[(O[0]-E)/p[0],(O[1]-I)/p[1]]}),this.setState({centerHex:h,vertices:B})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:t,material:n,coverage:i,extruded:A,wireframe:h,stroked:p,filled:B,lineWidthUnits:T,lineWidthScale:y,lineWidthMinPixels:E,lineWidthMaxPixels:I,getFillColor:S,getElevation:O,getLineColor:N,getLineWidth:Q,transitions:z,updateTriggers:j}=this.props;return{elevationScale:t,extruded:A,coverage:i,wireframe:h,stroked:p,filled:B,lineWidthUnits:T,lineWidthScale:y,lineWidthMinPixels:E,lineWidthMaxPixels:I,material:n,getElevation:O,getFillColor:S,getLineColor:N,getLineWidth:Q,transitions:z,updateTriggers:{getFillColor:j.getFillColor,getElevation:j.getElevation,getLineColor:j.getLineColor,getLineWidth:j.getLineWidth}}}_renderPolygonLayer(){let{data:t,getHexagon:n,updateTriggers:i,coverage:A}=this.props,h=this.getSubLayerClass("hexagon-cell-hifi",Is),p=this._getForwardProps();return p.updateTriggers.getPolygon=tI(i.getHexagon,A),new h(p,this.get
vendor: 6,808 bytes, lines 50-148
50SubLayerProps({id:"hexagon-cell-hifi",updateTriggers:p.updateTriggers}),{data:t,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(B,T)=>{let y=n(B,T);return TA(xc(y,A))}})}_renderColumnLayer(){let{data:t,getHexagon:n,updateTriggers:i}=this.props,A=this.getSubLayerClass("hexagon-cell",Ad),h=this._getForwardProps();return h.updateTriggers.getPosition=i.getHexagon,new A(h,this.getSubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:h.updateTriggers}),{data:t,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:Hp.bind(null,n)})}}return r.defaultProps=rI,r.layerName="H3HexagonLayer",r._checkH3Lib=()=>{},r})(),fl=nI;var sI={getHexagons:{type:"accessor",value:r=>r.hexagons}},iI=(()=>{class r extends Gr{initializeState(){fl._checkH3Lib()}updateState({props:t,changeFlags:n}){if(n.dataChanged||n.updateTriggersChanged&&n.updateTriggersChanged.getHexagons){let{data:i,getHexagons:A}=t,h=[],{iterable:p,objectInfo:B}=xn(i);for(let T of p){B.index++;let y=A(T,B),E=Gp(y,!0);for(let I of E){for(let S of I)CA(S);h.push(this.getSubLayerRow({polygon:I},T,B.index))}}this.setState({polygons:h})}}indexToBounds(){let{getElevation:t,getFillColor:n,getLineColor:i,getLineWidth:A}=this.props;return{data:this.state.polygons,getPolygon:h=>h.polygon,getElevation:this.getSubLayerAccessor(t),getFillColor:this.getSubLayerAccessor(n),getLineColor:this.getSubLayerAccessor(i),getLineWidth:this.getSubLayerAccessor(A)}}}return r.layerName="H3ClusterLayer",r.defaultProps=sI,r})(),oI=iI;var hl=Math.PI/180,VA=new Float32Array(16),Zm=new Float32Array(12);function $m(r,e,t){let n=e[0]*hl,i=e[1]*hl,A=e[2]*hl,h=Math.sin(A),p=Math.sin(n),B=Math.sin(i),T=Math.cos(A),y=Math.cos(n),E=Math.cos(i),I=t[0],S=t[1],O=t[2];r[0]=I*E*y,r[1]=I*B*y,r[2]=I*-p,r[3]=S*(-B*T+E*p*h),r[4]=S*(E*T+B*p*h),r[5]=S*y*h,r[6]=O*(B*h+E*p*T),r[7]=O*(-E*h+B*p*T),r[8]=O*y*T}function eg(r){return r[0]=r[0],r[1]=r[1],r[2]=r[2],r[3]=r[4],r[4]=r[5],r[5]=r[6],r[6]=r[8],r[7]=r[9],r[8]=r[10],r[9]=r[12],r[10]=r[13],r[11]=r[14],r.subarray(0,12)}var JA={size:12,accessor:["getOrientation","getScale","getTranslation","getTransformMatrix"],shaderAttributes:{instanceModelMatrixCol0:{size:3,elementOffset:0},instanceModelMatrixCol1:{size:3,elementOffset:3},instanceModelMatrixCol2:{size:3,elementOffset:6},instanceTranslation:{size:3,elementOffset:9}},update(r,{startRow:e,endRow:t}){let{data:n,getOrientation:i,getScale:A,getTranslation:h,getTransformMatrix:p}=this.props,B=Array.isArray(p),T=B&&p.length===16,y=Array.isArray(A),E=Array.isArray(i),I=Array.isArray(h),S=T||!B&&!!p(n[0]);S?r.constant=T:r.constant=E&&y&&I;let O=r.value;if(r.constant){let N;S?(VA.set(p),N=eg(VA)):(N=Zm,$m(N,i,A),N.set(h,9)),r.value=new Float32Array(N)}else{let N=e*r.size,{iterable:Q,objectInfo:z}=xn(n,e,t);for(let j of Q){z.index++;let re;if(S)VA.set(T?p:p(j,z)),re=eg(VA);else{re=Zm;let ie=E?i:i(j,z),ce=y?A:A(j,z);$m(re,ie,ce),re.set(I?h:h(j,z),9)}O[N++]=re[0],O[N++]=re[1],O[N++]=re[2],O[N++]=re[3],O[N++]=re[4],O[N++]=re[5],O[N++]=re[6],O[N++]=re[7],O[N++]=re[8],O[N++]=re[9],O[N++]=re[10],O[N++]=re[11]}}}};function jA(r,e){return e==="cartesian"||e==="meter-offsets"||e==="default"&&!r.isGeospatial}var AI=`struct SimpleMeshUniforms { 51 sizeScale: f32, 52 composeModelMatrix: f32, 53 hasTexture: f32, 54 flatShading: f32, 55}; 56 57@group(0) @binding(auto) var<uniform> simpleMesh: SimpleMeshUniforms; 58@group(0) @binding(auto) var simpleMeshTexture: texture_2d<f32>; 59@group(0) @binding(auto) var simpleMeshTextureSampler: sampler; 60`,tg=`layout(std140) uniform simpleMeshUniforms { 61 float sizeScale; 62 bool composeModelMatrix; 63 bool hasTexture; 64 bool flatShading; 65} simpleMesh; 66`,rg={name:"simpleMesh",source:AI,vs:tg,fs:tg,uniformTypes:{sizeScale:"f32",composeModelMatrix:"f32",hasTexture:"f32",flatShading:"f32"}};var ng=`#version 300 es 67#define SHADER_NAME simple-mesh-layer-vs 68in vec3 positions; 69in vec3 normals; 70in vec3 colors; 71in vec2 texCoords; 72in vec3 instancePositions; 73in vec3 instancePositions64Low; 74in vec4 instanceColors; 75in vec3 instanceModelMatrixCol0; 76in vec3 instanceModelMatrixCol1; 77in vec3 instanceModelMatrixCol2; 78in vec3 instanceTranslation; 79out vec2 vTexCoord; 80out vec3 cameraPosition; 81out vec3 normals_commonspace; 82out vec4 position_commonspace; 83out vec4 vColor; 84void main(void) { 85geometry.worldPosition = instancePositions; 86geometry.uv = texCoords; 87geometry.pickingColor = picking_getPickingColorFromInstanceID(); 88vTexCoord = texCoords; 89cameraPosition = project.cameraPosition; 90vColor = vec4(colors * instanceColors.rgb, instanceColors.a); 91mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2); 92vec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale + instanceTranslation; 93if (simpleMesh.composeModelMatrix) { 94DECKGL_FILTER_SIZE(pos, geometry); 95normals_commonspace = project_normal(instanceModelMatrix * normals); 96geometry.worldPosition += pos; 97gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace); 98geometry.position = position_commonspace; 99} 100else { 101pos = project_size(pos); 102DECKGL_FILTER_SIZE(pos, geometry); 103gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace); 104geometry.position = position_commonspace; 105normals_commonspace = project_normal(instanceModelMatrix * normals); 106} 107geometry.normal = normals_commonspace; 108DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 109DECKGL_FILTER_COLOR(vColor, geometry); 110} 111`;var sg=`#version 300 es 112#define SHADER_NAME simple-mesh-layer-fs 113precision highp float; 114uniform sampler2D sampler; 115in vec2 vTexCoord; 116in vec3 cameraPosition; 117in vec3 normals_commonspace; 118in vec4 position_commonspace; 119in vec4 vColor; 120out vec4 fragColor; 121void main(void) { 122geometry.uv = vTexCoord; 123vec3 normal; 124if (simpleMesh.flatShading) { 125normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz))); 126} else { 127normal = normals_commonspace; 128} 129vec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor; 130DECKGL_FILTER_COLOR(color, geometry); 131vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal); 132fragColor = vec4(lightColor, color.a * layer.opacity); 133} 134`;var ig=`struct Attributes { 135 @builtin(instance_index) instanceIndex: u32, 136 @location(0) positions: vec3<f32>, 137 @location(1) normals: vec3<f32>, 138 @location(2) colors: vec3<f32>, 139 @location(3) texCoords: vec2<f32>, 140 @location(4) instancePositions: vec3<f32>, 141 @location(5) instancePositions64Low: vec3<f32>, 142 @location(6) instanceColors: vec4<f32>, 143 @location(7) instanceModelMatrixCol0: vec3<f32>, 144 @location(8) instanceModelMatrixCol1: vec3<f32>, 145 @location(9) instanceModelMatrixCol2: vec3<f32>, 146 @location(10) instanceTranslation: vec3<f32>, 147}; 148
149struct Varyings { 150 @builtin(position) position: vec4<f32>, 151 @location(0) color: vec4<f32>, 152 @location(1) texCoords: vec2<f32>, 153 @location(2) normal: vec3<f32>, 154 @location(3) positionCommon: vec3<f32>, 155 @location(4) pickingColor: vec3<f32>, 156}; 157 158@vertex 159fn vertexMain(attributes: Attributes) -> Varyings { 160 var varyings: Varyings; 161 162 geometry.worldPosition = attributes.instancePositions; 163 geometry.uv = attributes.texCoords; 164 geometry.pickingColor = picking_getPickingColorFromIndex(attributes.instanceIndex); 165 166 let instanceModelMatrix = mat3x3<f32>( 167 attributes.instanceModelMatrixCol0, 168 attributes.instanceModelMatrixCol1, 169 attributes.instanceModelMatrixCol2 170 ); 171 let meshPosition = 172 (instanceModelMatrix * attributes.positions) * simpleMesh.sizeScale + 173 attributes.instanceTranslation; 174 175 if (simpleMesh.composeModelMatrix > 0.5) { 176 geometry.normal = project_normal(instanceModelMatrix * attributes.normals); 177 geometry.worldPosition += meshPosition; 178 let projected = project_position_to_clipspace_and_commonspace( 179 attributes.instancePositions + meshPosition, 180 attributes.instancePositions64Low, 181 vec3<f32>(0.0) 182 ); 183 geometry.position = projected.commonPosition; 184 varyings.position = projected.clipPosition; 185 } else { 186 let projected = project_position_to_clipspace_and_commonspace( 187 attributes.instancePositions, 188 attributes.instancePositions64Low, 189 project_size_vec3(meshPosition) 190 ); 191 geometry.position = projected.commonPosition; 192 geometry.normal = project_normal(instanceModelMatrix * attributes.normals); 193 varyings.position = projected.clipPosition; 194 } 195 196 varyings.color = vec4<f32>( 197 attributes.colors * attributes.instanceColors.rgb, 198 attributes.instanceColors.a 199 ); 200 varyings.texCoords = attributes.texCoords; 201 varyings.normal = geometry.normal; 202 varyings.positionCommon = geometry.position.xyz; 203 varyings.pickingColor = geometry.pickingColor; 204 return varyings; 205} 206 207@fragment 208fn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> { 209 geometry.uv = varyings.texCoords; 210 211 if (picking.isActive > 0.5) { 212 if (!picking_isColorValid(varyings.pickingColor)) { 213 discard; 214 } 215 return vec4<f32>(varyings.pickingColor, 1.0); 216 } 217 218 var color = varyings.color; 219 if (simpleMesh.hasTexture > 0.5) { 220 color = textureSample(simpleMeshTexture, simpleMeshTextureSampler, varyings.texCoords); 221 } 222 223 var normal = varyings.normal; 224 if (simpleMesh.flatShading > 0.5) { 225 // WebGPU's screen-space Y axis reverses the derivative orientation used by GLSL flat shading. 226 normal = normalize(cross(dpdy(varyings.positionCommon), dpdx(varyings.positionCommon))); 227 } 228 229 color = vec4<f32>( 230 lighting_getLightColor2(color.rgb, project.cameraPosition, varyings.positionCommon, normal), 231 color.a * layer.opacity 232 ); 233 234 if (picking.isHighlightActive > 0.5) { 235 let highlightedColor = picking_normalizeColor(picking.highlightedObjectColor); 236 if (picking_isColorZero(abs(varyings.pickingColor - highlightedColor))) { 237 let blendedAlpha = picking.highlightColor.a + color.a * (1.0 - picking.highlightColor.a); 238 if (blendedAlpha > 0.0) { 239 color = vec4<f32>( 240 mix(color.rgb, picking.highlightColor.rgb, picking.highlightColor.a / blendedAlpha), 241 blendedAlpha 242 ); 243 } 244 } 245 } 246 247 return deckgl_premultiplied_alpha(color); 248} 249`;function dl(r){let e=1/0,t=1/0,n=1/0,i=-1/0,A=-1/0,h=-1/0,p=r.POSITION?r.POSITION.value:[],B=p&&p.length;for(let T=0;T<B;T+=3){let y=p[T],E=p[T+1],I=p[T+2];e=y<e?y:e,t=E<t?E:t,n=I<n?I:n,i=y>i?y:i,A=E>A?E:A,h=I>h?I:h}return[[e,t,n],[i,A,h]]}function pl(r){let e=r.positions||r.POSITION;_r.assert(e,'no "postions" or "POSITION" attribute in mesh');let t=e.value.length/e.size,n=r.COLOR_0||r.colors;n||(n={size:3,value:new Float32Array(t*3).fill(1)});let i=r.NORMAL||r.normals;i||(i={size:3,value:new Float32Array(t*3).fill(0)});let A=r.TEXCOORD_0||r.texCoords;return A||(A={size:2,value:new Float32Array(t*2).fill(0)}),{positions:e,colors:n,normals:i,texCoords:A}}function og(r){return r instanceof _n?(r.attributes=pl(r.attributes),r):r.attributes?new _n(ee(P({},r),{topology:"triangle-list",attributes:pl(r.attributes)})):new _n({topology:"triangle-list",attributes:pl(r)})}var aI=[0,0,0,255],cI={mesh:{type:"object",value:null,async:!0},texture:{type:"image",value:null,async:!0},sizeScale:{type:"number",value:1,min:0},_instanced:!0,wireframe:!1,material:!0,getPosition:{type:"accessor",value:r=>r.position},getColor:{type:"accessor",value:aI},getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},textureParameters:{type:"object",ignore:!0,value:null}},lI=(()=>
249{class r extends eA{getShaders(){return super.getShaders({vs:ng,fs:sg,source:ig,modules:[Wo,Yo,jh,qo,rg]})}getBounds(){if(this.props._instanced)return super.getBounds();let t=this.state.positionBounds;if(t)return t;let{mesh:n}=this.props;if(!n)return null;if(t=n.header?.boundingBox,!t){let{attributes:i}=og(n);i.POSITION=i.POSITION||i.positions,t=dl(i)}return this.state.positionBounds=t,t}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{transition:!0,type:"float64",fp64:this.use64bitPositions(),size:3,accessor:"getPosition"},instanceColors:{type:"unorm8",transition:!0,size:this.props.colorFormat.length,accessor:"getColor",defaultValue:[0,0,0,255]},instanceModelMatrix:JA}),this.setState({emptyTexture:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})})}updateState(t){super.updateState(t);let{props:n,oldProps:i,changeFlags:A}=t;if(n.mesh!==i.mesh||A.extensionsChanged){if(this.state.positionBounds=null,this.state.model?.destroy(),n.mesh){this.state.model=this.getModel(n.mesh);let h=n.mesh.attributes||n.mesh;this.setState({hasNormals:!!(h.NORMAL||h.normals)})}this.getAttributeManager().invalidateAll()}n.texture!==i.texture&&n.texture instanceof Wt&&this.setTexture(n.texture),this.state.model&&this.state.model.setTopology(this.props.wireframe?"line-strip":"triangle-list")}finalizeState(t){super.finalizeState(t),this.state.emptyTexture.delete()}draw({uniforms:t}){let{model:n}=this.state;if(!n)return;let{viewport:i,renderPass:A}=this.context,{sizeScale:h,coordinateSystem:p,_instanced:B}=this.props,T={sizeScale:h,composeModelMatrix:!B||jA(i,p),flatShading:!this.state.hasNormals};n.shaderInputs.setProps({simpleMesh:T}),n.draw(A)}get isLoaded(){return!!(this.state?.model&&super.isLoaded)}getModel(t){let n=new xs(this.context.device,ee(P({},this.getShaders()),{id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:og(t),isInstanced:!0}));return n.shaderInputs.setProps({simpleMesh:this.getTextureProps(this.props.texture)}),n}setTexture(t){let{model:n}=this.state;n&&n.shaderInputs.setProps({simpleMesh:this.getTextureProps(t)})}getTextureProps(t){let n=t||this.state.emptyTexture;return ee(P({},this.context.device.type==="webgpu"?{simpleMeshTexture:n}:{sampler:n}),{hasTexture:!!t})}}return r.defaultProps=cI,r.layerName="SimpleMeshLayer",r})(),Ks=lI;var uI=` 250struct VertexInputs { 251 @location(0) positions: vec3f, 252#ifdef HAS_NORMALS 253 @location(1) normals: vec3f, 254#endif 255#ifdef HAS_TANGENTS 256 @location(2) TANGENT: vec4f, 257#endif 258#ifdef HAS_UV 259 @location(3) texCoords: vec2f, 260#endif 261#ifdef HAS_UV_1 262 @location(4) texCoords1: vec2f, 263#endif 264#ifdef HAS_SKIN 265 @location(5) JOINTS_0: vec4u, 266 @location(6) WEIGHTS_0: vec4f, 267#endif 268#ifdef HAS_GLTF_INSTANCING 269 @location(8) instanceModelMatrixCol0: vec4f, 270 @location(9) instanceModelMatrixCol1: vec4f, 271 @location(10) instanceModelMatrixCol2: vec4f, 272 @location(11) instanceModelMatrixCol3: vec4f, 273 @builtin(instance_index) instanceIndex: u32, 274#endif 275#ifdef HAS_GPU_CROWD_ANIMATION 276 @location(12) instanceAnimationFrames: vec4f, 277 @location(13) instanceAnimationBlend: vec4f, 278#endif 279#ifdef HAS_INSTANCED_MORPH 280 @builtin(vertex_index) vertexIndex: u32, 281#endif 282}; 283 284struct FragmentInputs { 285 @builtin(position) position: vec4f, 286 @location(0) pbrPosition: vec3f, 287 @location(1) pbrUV0: vec2f, 288 @location(2) pbrUV1: vec2f, 289 @location(3) pbrNormal: vec3f, 290#ifdef HAS_TANGENTS 291 @location(4) pbrTangent: vec4f, 292#endif 293}; 294 295#ifdef HAS_GLTF_INSTANCING 296fn getGLTFInstanceNormalMatrix(matrix: mat3x3f) -> mat3x3f { 297 let firstCofactor = cross(matrix[1], matrix[2]); 298 let inverseDeterminant = 1.0 / dot(matrix[0], firstCofactor); 299 return mat3x3f( 300 firstCofactor, 301 cross(matrix[2], matrix[0]), 302 cross(matrix[0], matrix[1]) 303 ) * inverseDeterminant; 304} 305#endif 306 307@vertex 308fn vertexMain(inputs: VertexInputs) -> FragmentInputs { 309 var outputs: FragmentInputs; 310 var position = vec4f(inputs.positions, 1.0); 311 var normal = vec3f(0.0, 0.0, 1.0); 312 var tangent = vec4f(1.0, 0.0, 0.0, 1.0); 313 var uv0 = vec2f(0.0, 0.0); 314 var uv1 = vec2f(0.0, 0.0); 315 316#ifdef HAS_NORMALS 317 normal = inputs.normals; 318#endif 319#ifdef HAS_UV
320 uv0 = inputs.texCoords; 321#endif 322#ifdef HAS_UV_1 323 uv1 = inputs.texCoords1; 324#endif 325#ifdef HAS_TANGENTS 326 tangent = inputs.TANGENT; 327#endif 328 329#ifdef HAS_INSTANCED_MORPH 330 var animationFrames = vec4f(0.0); 331 var animationBlend = vec4f(0.0); 332#ifdef HAS_GPU_CROWD_ANIMATION 333 animationFrames = inputs.instanceAnimationFrames; 334 animationBlend = inputs.instanceAnimationBlend; 335#endif 336 position = vec4f( 337 position.xyz + getGPUCrowdMorphDelta( 338 inputs.instanceIndex, 339 inputs.vertexIndex, 340 0u, 341 u32(CROWD_MORPH_VERTEX_COUNT), 342 u32(CROWD_MORPH_TARGET_COUNT), 343 u32(CROWD_ANIMATION_JOINT_COUNT), 344 animationFrames, 345 animationBlend, 346 u32(CROWD_ANIMATION_FRAME_STRIDE) 347 ), 348 1.0 349 ); 350#ifdef HAS_NORMALS 351 normal = normalize(normal + getGPUCrowdMorphDelta( 352 inputs.instanceIndex, 353 inputs.vertexIndex, 354 1u, 355 u32(CROWD_MORPH_VERTEX_COUNT), 356 u32(CROWD_MORPH_TARGET_COUNT), 357 u32(CROWD_ANIMATION_JOINT_COUNT), 358 animationFrames, 359 animationBlend, 360 u32(CROWD_ANIMATION_FRAME_STRIDE) 361 )); 362#endif 363#ifdef HAS_TANGENTS 364 tangent = vec4f(normalize(tangent.xyz + getGPUCrowdMorphDelta( 365 inputs.instanceIndex, 366 inputs.vertexIndex, 367 2u, 368 u32(CROWD_MORPH_VERTEX_COUNT), 369 u32(CROWD_MORPH_TARGET_COUNT), 370 u32(CROWD_ANIMATION_JOINT_COUNT), 371 animationFrames, 372 animationBlend, 373 u32(CROWD_ANIMATION_FRAME_STRIDE) 374 )), tangent.w); 375#endif 376#endif 377 378#ifdef HAS_SKIN 379#ifdef HAS_GPU_CROWD_ANIMATION 380 let skinMatrix = getGPUAnimatedSkinMatrix( 381 inputs.WEIGHTS_0, 382 inputs.JOINTS_0, 383 inputs.instanceAnimationFrames, 384 inputs.instanceAnimationBlend, 385 u32(CROWD_ANIMATION_FRAME_STRIDE) 386 ); 387#else 388#ifdef HAS_INSTANCED_SKIN 389 let skinMatrix = getInstancedSkinMatrix( 390 inputs.WEIGHTS_0, 391 inputs.JOINTS_0, 392 inputs.instanceIndex, 393 u32(CROWD_JOINTS_PER_INSTANCE) 394 ); 395#else 396 let skinMatrix = getSkinMatrix(inputs.WEIGHTS_0, inputs.JOINTS_0); 397#endif 398#endif 399 position = skinMatrix * position; 400 normal = normalize((skinMatrix * vec4f(normal, 0.0)).xyz); 401#ifdef HAS_TANGENTS 402 tangent = vec4f(normalize((skinMatrix * vec4f(tangent.xyz, 0.0)).xyz), tangent.w); 403#endif 404#endif 405 406#ifdef HAS_GLTF_INSTANCING 407 var instanceMatrix = mat4x4f( 408 inputs.instanceModelMatrixCol0, 409 inputs.instanceModelMatrixCol1, 410 inputs.instanceModelMatrixCol2, 411 inputs.instanceModelMatrixCol3 412 ); 413#ifdef HAS_GPU_CROWD_ANIMATION 414 instanceMatrix *= sampleGPUAnimationMatrix( 415 inputs.instanceAnimationFrames, 416 inputs.instanceAnimationBlend, 417 0u, 418 u32(CROWD_ANIMATION_FRAME_STRIDE) 419 ); 420#endif 421 position = instanceMatrix * position; 422 normal = normalize(getGLTFInstanceNormalMatrix(mat3x3f( 423 instanceMatrix[0].xyz, 424 instanceMatrix[1].xyz, 425 instanceMatrix[2].xyz 426 )) * normal); 427#ifdef HAS_TANGENTS 428 tangent = vec4f(normalize((instanceMatrix * vec4f(tangent.xyz, 0.0)).xyz), tangent.w); 429#endif 430#endif 431 432 let worldPosition = pbrProjection.modelMatrix * position; 433 434#ifdef HAS_NORMALS 435 normal = normalize((pbrProjection.normalMatrix * vec4f(normal, 0.0)).xyz); 436#endif 437#ifdef HAS_TANGENTS 438 let worldTangent = normalize((pbrProjection.modelMatrix * vec4f(tangent.xyz, 0.0)).xyz); 439 outputs.pbrTangent = vec4f(worldTangent, tangent.w); 440#endif 441 442 outputs.position = pbrProjection.modelViewProjectionMatrix * position; 443 outputs.pbrPosition = worldPosition.xyz / worldPosition.w; 444 outputs.pbrUV0 = uv0; 445 outputs.pbrUV1 = uv1; 446 outputs.pbrNormal = normal; 447 return outputs; 448} 449 450@fragment 451fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4f { 452 fragmentInputs.pbr_vPosition = inputs.pbrPosition; 453 fragmentInputs.pbr_vUV0 = inputs.pbrUV0; 454 fragmentInputs.pbr_vUV1 = inputs.pbrUV1; 455 fragmentInputs.pbr_vNormal = inputs.pbrNormal; 456#ifdef HAS_TANGENTS 457 let tangent = normalize(inputs.pbrTangent.xyz); 458 let bitangent = normalize(cross(inputs.pbrNormal, tangent)) * inputs.pbrTangent.w; 459 fragmentInputs.pbr_vTBN = mat3x3f(tangent, bitangent, inputs.pbrNormal); 460#endif 461 return pbr_filterColor(vec4f(1.0)); 462} 463`,fI=`#version 300 es 464 465 // in vec4 POSITION; 466 in vec4 positions; 467 468 #ifdef HAS_NORMALS 469 // in vec4 NORMAL; 470 in vec4 normals; 471 #endif 472 473 #ifdef HAS_TANGENTS 474 in vec4 TANGENT; 475 #endif 476 477 #ifdef HAS_UV 478 // in vec2 TEXCOORD_0; 479 in vec2 texCoords; 480 #endif 481 482 #ifdef HAS_UV_1 483 in vec2 texCoords1; 484 #endif 485 486 #ifdef HAS_SKIN 487 in uvec4 JOINTS_0; 488 in vec4 WEIGHTS_0; 489 #endif 490 491 #ifdef HAS_GLTF_INSTANCING 492 in vec4 instanceModelMatrixCol0; 493 in vec4 instanceModelMatrixCol1; 494 in vec4 instanceModelMatrixCol2; 495 in vec4 instanceModelMatrixCol3; 496 #endif 497 498 #ifdef HAS_GPU_CROWD_ANIMATION 499 in vec4 instanceAnimationFrames; 500 in vec4 instanceAnimationBlend; 501 #endif 502 503 void main(void) { 504 vec4 _NORMAL = vec4(0.); 505 vec4 _TANGENT = vec4(0.); 506 vec2 _TEXCOORD_0 = vec2(0.); 507 vec2 _TEXCOORD_1 = vec2(0.); 508 509 #ifdef HAS_NORMALS 510 _NORMAL = normals; 511 #endif 512 513 #ifdef HAS_TANGENTS 514 _TANGENT = TANGENT; 515 #endif 516 517 #ifdef HAS_UV 518 _TEXCOORD_0 = texCoords; 519 #endif 520 521 #ifdef HAS_UV_1 522 _TEXCOORD_1 = texCoords1; 523 #endif 524 525 vec4 pos = positions; 526 527 #ifdef HAS_INSTANCED_MORPH 528 vec4 animationFrames = vec4(0.0); 529 vec4 animationBlend = vec4(0.0); 530 #ifdef HAS_GPU_CROWD_ANIMATION 531 animationFrames = instanceAnimationFrames; 532 animationBlend = instanceAnimationBlend; 533 #endif
534 pos.xyz += getGPUCrowdMorphDelta( 535 uint(gl_InstanceID), 536 uint(gl_VertexID), 537 0u, 538 uint(CROWD_MORPH_TARGET_COUNT), 539 uint(CROWD_ANIMATION_JOINT_COUNT), 540 animationFrames, 541 animationBlend 542 ); 543 #ifdef HAS_NORMALS 544 _NORMAL.xyz = normalize(_NORMAL.xyz + getGPUCrowdMorphDelta( 545 uint(gl_InstanceID), 546 uint(gl_VertexID), 547 1u, 548 uint(CROWD_MORPH_TARGET_COUNT), 549 uint(CROWD_ANIMATION_JOINT_COUNT), 550 animationFrames, 551 animationBlend 552 )); 553 #endif 554 #ifdef HAS_TANGENTS 555 _TANGENT.xyz = normalize(_TANGENT.xyz + getGPUCrowdMorphDelta( 556 uint(gl_InstanceID), 557 uint(gl_VertexID), 558 2u, 559 uint(CROWD_MORPH_TARGET_COUNT), 560 uint(CROWD_ANIMATION_JOINT_COUNT), 561 animationFrames, 562 animationBlend 563 )); 564 #endif 565 #endif 566 567 #ifdef HAS_SKIN 568 #ifdef HAS_GPU_CROWD_ANIMATION 569 mat4 skinMat = getGPUAnimatedSkinMatrix( 570 WEIGHTS_0, 571 JOINTS_0, 572 instanceAnimationFrames, 573 instanceAnimationBlend 574 ); 575 #else 576 #ifdef HAS_INSTANCED_SKIN 577 mat4 skinMat = getInstancedSkinMatrix( 578 WEIGHTS_0, 579 JOINTS_0, 580 uint(gl_InstanceID), 581 uint(CROWD_JOINTS_PER_INSTANCE) 582 ); 583 #else 584 mat4 skinMat = getSkinMatrix(WEIGHTS_0, JOINTS_0); 585 #endif 586 #endif 587 pos = skinMat * pos; 588 _NORMAL = skinMat * _NORMAL; 589 _TANGENT = vec4((skinMat * vec4(_TANGENT.xyz, 0.)).xyz, _TANGENT.w); 590 #endif 591 592 #ifdef HAS_GLTF_INSTANCING 593 mat4 instanceMatrix = mat4( 594 instanceModelMatrixCol0, 595 instanceModelMatrixCol1, 596 instanceModelMatrixCol2, 597 instanceModelMatrixCol3 598 ); 599 #ifdef HAS_GPU_CROWD_ANIMATION 600 instanceMatrix *= sampleGPUAnimationMatrix( 601 instanceAnimationFrames, 602 instanceAnimationBlend, 603 0 604 ); 605 #endif 606 pos = instanceMatrix * pos; 607 _NORMAL = vec4(normalize(transpose(inverse(mat3(instanceMatrix))) * _NORMAL.xyz), 0.0); 608 _TANGENT = vec4(normalize(mat3(instanceMatrix) * _TANGENT.xyz), _TANGENT.w); 609 #endif 610 611 pbr_setPositionNormalTangentUV(pos, _NORMAL, _TANGENT, _TEXCOORD_0, _TEXCOORD_1); 612 gl_Position = pbrProjection.modelViewProjectionMatrix * pos; 613 } 614`,hI=`#version 300 es 615 out vec4 fragmentColor; 616 617 void main(void) { 618 vec3 pos = pbr_vPosition; 619 fragmentColor = pbr_filterColor(vec4(1.0)); 620 } 621`;function gl(r,e){let t=e.materialFactory||new $o(r,{modules:[hr]}),n=P({},e.parsedPPBRMaterial.uniforms);delete n.camera;let i=Object.fromEntries(Object.entries(P(P({},n),e.parsedPPBRMaterial.bindings)).filter(([h,p])=>t.ownsBinding(h)&&dI(p))),A=t.createMaterial({id:e.id,bindings:i});return A.setProps({pbrMaterial:n}),A}function Ag(r,e){let{id:t,geometry:n,parsedPPBRMaterial:i,vertexCount:A,modelOptions:h={},instanceMatrices:p,morphTargets:B=[]}=e,T=h.userData?.gltfAnimatedCrowd;if(T&&p)throw new Error("Nested glTF crowd instancing is unsupported");ht.info(4,"createGLTFModel defines: ",i.defines)();let y=[],E={depthWriteEnabled:!0,depthCompare:"less",depthFormat:"depth24plus",cullMode:"back"},I={},S=[],O=[],N=[],Q=!!T?.gpuAnimation;if(p||T)for(let Mt=0;Mt<4;Mt++){let Ut=new Float32Array((T?.capacity||p?.length||0)*4);p?.forEach((ms,Qr)=>{for(let pn=0;pn<4;pn++)Ut[Qr*4+pn]=ms[Mt*4+pn]});let ur=`instanceModelMatrixCol${Mt}`,Un=r.createBuffer({id:`${t||"gltf"}-${ur}`,data:Ut,usage:Yr.VERTEX|Yr.COPY_DST});I[ur]=Un,S.push({name:ur,format:"float32x4",stepMode:"instance"}),y.push(Un),O.push(Un),N.push(Ut)}let z,j,re,ie;if(T&&Q){z=new Float32Array(T.capacity*4),re=new Float32Array(T.capacity*4);for(let[Mt,Ut]of[["instanceAnimationFrames",z],["instanceAnimationBlend",re]]){let ur=r.createBuffer({id:`${t||"gltf"}-${Mt}`,data:Ut,usage:Yr.VERTEX|Yr.COPY_DST});I[Mt]=ur,S.push({name:Mt,format:"float32x4",stepMode:"instance"}),y.push(ur),Mt==="instanceAnimationFrames"?j=ur:ie=ur}}let ce=!!i.defines.HAS_SKIN,Ae=!!(T&&ce&&!Q),he,W;
621T&&Ae&&(W=new Float32Array(T.capacity*T.jointsPerInstance*16),he=r.type==="webgpu"?r.createBuffer({id:`${t||"gltf"}-crowd-joint-matrices`,byteLength:W.byteLength,usage:Yr.STORAGE|Yr.COPY_DST}):r.createTexture({id:`${t||"gltf"}-crowd-joint-matrices`,format:"rgba32float",width:T.jointsPerInstance*4,height:T.capacity,usage:Wt.SAMPLE|Wt.COPY_DST,sampler:{minFilter:"nearest",magFilter:"nearest",mipmapFilter:"nearest"}}),y.push(he));let H=T?B.length:0,U=Math.floor((n.attributes.POSITION?.value.length||0)/3),fe,_e,xe;if(T&&H>0&&U>0){let Mt=new Float32Array(H*3*U*4);for(let[Ut,ur]of B.entries())for(let[Un,ms]of["POSITION","NORMAL","TANGENT"].entries()){let Qr=ur[ms];if(!Qr)continue;let pn=ms==="TANGENT"&&Qr.length===U*4?4:3;for(let gs=0;gs<U;gs++){let _i=((Ut*3+Un)*U+gs)*4,xi=gs*pn;Mt[_i]=Qr[xi]||0,Mt[_i+1]=Qr[xi+1]||0,Mt[_i+2]=Qr[xi+2]||0}}if(fe=ml(r,`${t||"gltf"}-crowd-morph-targets`,Mt,U,H*3),y.push(fe),!Q){let Ut=Math.ceil(H/4);_e=new Float32Array(T.capacity*Ut*4),xe=ml(r,`${t||"gltf"}-crowd-morph-weights`,_e,Ut,T.capacity),y.push(xe)}}let Ee=ce&&T?T.jointsPerInstance:0,De=4+Ee*4+H,Pe,Ne;T?.gpuAnimation&&(Ne=new Float32Array(T.gpuAnimation.frameCount*De*4),Pe=ml(r,`${t||"gltf"}-crowd-animation-frames`,Ne,De,T.gpuAnimation.frameCount),y.push(Pe));let Ve=uI;for(let[Mt,Ut]of[["CROWD_JOINTS_PER_INSTANCE",T?.jointsPerInstance||0],["CROWD_MORPH_VERTEX_COUNT",U],["CROWD_MORPH_TARGET_COUNT",H],["CROWD_ANIMATION_JOINT_COUNT",Ee],["CROWD_ANIMATION_FRAME_STRIDE",De]])Ve=Ve.replaceAll(`u32(${Mt})`,`u32(${Ut})`);let Ke=ee(P(P({id:t,source:Ve,vs:fI,fs:hI,geometry:n,topology:n.topology,vertexCount:A,modules:[hr,Hh,...T?[Vh]:[]]},h),p||T?{attributes:P(P({},h.attributes),I),bufferLayout:[...h.bufferLayout||[],...S],instanceCount:p?.length||0,isInstanced:!0}:{}),{defines:P(P(P(P(P(P(P({},i.defines),h.defines),p||T?{HAS_GLTF_INSTANCING:!0}:{}),Ae?{HAS_INSTANCED_SKIN:!0,CROWD_JOINTS_PER_INSTANCE:T.jointsPerInstance}:{}),Q?{HAS_GPU_CROWD_ANIMATION:!0,CROWD_ANIMATION_FRAME_STRIDE:De}:{}),fe?{HAS_INSTANCED_MORPH:!0,CROWD_MORPH_TARGET_COUNT:H}:{}),T?{CROWD_ANIMATION_JOINT_COUNT:Ee}:{}),parameters:P(P(P({},E),i.parameters),h.parameters)}),Je=e.material||gl(r,{id:t?`${t}-material`:void 0,parsedPPBRMaterial:i});Ke.material=Je;let ze=new xs(r,Ke),wt=P(P(P(P({},i.uniforms),h.uniforms),i.bindings),h.bindings),p0=pI(ze.shaderInputs.getModules(),Je,wt);ze.shaderInputs.setProps(p0),he&&ze.shaderInputs.setProps({skin:{jointMatrices:[],skinJointMatrices:he}}),(Pe||fe||xe)&&ze.shaderInputs.setProps({gpuAnimation:P(P(P({},Pe?{gpuAnimationFrames:Pe}:{}),fe?{gpuMorphTargets:fe}:{}),xe?{gpuMorphWeights:xe}:{})});let Ei=new dr({managedResources:y,model:ze,bounds:e.bounds,instanceMatrices:p});return T&&(Ei.userData.gltfAnimatedCrowd={transformBuffers:O,transformColumns:N,skinJointMatrices:he,jointMatrices:W,jointsPerInstance:T.jointsPerInstance,morphTargetCount:H,morphTargetData:fe,morphWeights:_e,morphWeightData:xe,animationFrames:Pe,animationFrameValues:Ne,animationFrameStride:De,animationJointCount:Ee,animationParameters:z,animationParameterBuffer:j,animationBlend:re,animationBlendBuffer:ie}),Ei}function ml(r,e,t,n,i){if(r.type==="webgpu")return r.createBuffer({id:e,data:t,usage:Yr.STORAGE|Yr.COPY_DST});let A=r.createTexture({id:e,format:"rgba32float",width:n,height:i,usage:Wt.SAMPLE|Wt.COPY_DST,sampler:{minFilter:"nearest",magFilter:"nearest",mipmapFilter:"nearest"}});return A.writeData(t,{width:n,height:i}),A}function dI(r){return r instanceof Yr||r instanceof Wh||r instanceof Ph||r instanceof Wt||r instanceof Oh}function pI(r,e,t){let n=new Map;for(let A of r){for(let h of Object.keys(A.uniformTypes||{}))n.set(h,A.name);for(let h of A.bindingLayout||[])n.set(h.name,A.name)}let i={};for(let[A,h]of Object.entries(t)){if(h===void 0)continue;let p=n.get(A);!p||e.ownsModule(p)||(i[p]||={},i[p][A]=h)}return i}function ag(r,e){let t=e.extensions?.EXT_mesh_gpu_instancing?.attributes;if(!t||typeof t!="object")return null;let n={},i;for(let[h,p]of Object.entries(t)){let B=typeof p=="number"?r.accessors[p]:p;if(!B||!ArrayBuffer.isView(B.value))throw new Error(`Invalid glTF instance accessor for ${h}`);
vendor: 20,415 bytes, line 621
621if(i!==void 0&&B.count!==i)throw new Error("glTF instance attributes must have matching accessor counts");i=B.count,n[h]={value:B.value,size:B.components||mI(B.type),count:B.count,normalized:!!B.normalized}}let A=[];for(let h=0;h<(i||0);h++){let p=Bl(n.TRANSLATION,h,[0,0,0]),B=Bl(n.ROTATION,h,[0,0,0,1]),T=Bl(n.SCALE,h,[1,1,1]),y=Math.hypot(...B);if(y>0)for(let E=0;E<B.length;E++)B[E]/=y;A.push(new Se().translate(p).multiplyRight(new Se().fromQuaternion(B)).scale(T))}return{matrices:A,attributes:n}}function Bl(r,e,t){if(!r)return[...t];let n=r.value;return t.map((i,A)=>{let h=n[e*r.size+A];return h===void 0?i:r.normalized?r.value instanceof Int8Array?Math.max(h/127,-1):r.value instanceof Int16Array?Math.max(h/32767,-1):r.value instanceof Uint8Array?h/255:r.value instanceof Uint16Array?h/65535:h:h})}function mI(r){switch(r){case"VEC2":return 2;case"VEC3":return 3;case"VEC4":return 4;default:return 1}}function QA(r,e){r.userData.morphWeights=[...e];let t=r.userData.morphMeshes||[];for(let n of t)n.preorderTraversal(i=>{if(!(i instanceof dr))return;let A=i.userData.morphTargets;A&&(Xh(i.model,A.geometry,A.targets,e),i.userData.morphWeights=[...e])})}var Ue=(function(r){return r[r.POINTS=0]="POINTS",r[r.LINES=1]="LINES",r[r.LINE_LOOP=2]="LINE_LOOP",r[r.LINE_STRIP=3]="LINE_STRIP",r[r.TRIANGLES=4]="TRIANGLES",r[r.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",r[r.TRIANGLE_FAN=6]="TRIANGLE_FAN",r[r.ONE=1]="ONE",r[r.SRC_ALPHA=770]="SRC_ALPHA",r[r.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",r[r.FUNC_ADD=32774]="FUNC_ADD",r[r.LINEAR=9729]="LINEAR",r[r.NEAREST=9728]="NEAREST",r[r.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",r[r.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",r[r.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",r[r.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",r[r.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",r[r.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",r[r.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",r[r.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",r[r.REPEAT=10497]="REPEAT",r[r.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",r[r.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",r[r.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",r})(Ue||{});function gI(r){switch(r){case Ue.POINTS:return"point-list";case Ue.LINES:return"line-list";case Ue.LINE_STRIP:return"line-strip";case Ue.TRIANGLES:return"triangle-list";case Ue.TRIANGLE_STRIP:return"triangle-strip";default:throw new Error(String(r))}}function cg(r,e,t){if(r!==Ue.LINE_LOOP&&r!==Ue.TRIANGLE_FAN)return{topology:gI(r)};let n=e?.length??t,i=r===Ue.LINE_LOOP?n>=2?n*2:0:n>=3?(n-2)*3:0,A=e instanceof Uint32Array||!e&&t>65536?Uint32Array:Uint16Array,h=new A(i),p=B=>e?.[B]??B;if(r===Ue.LINE_LOOP){for(let B=0;B<n;B++)h[B*2]=p(B),h[B*2+1]=p((B+1)%n);return{topology:"line-list",indices:h}}for(let B=0;B<n-2;B++)h[B*3]=p(0),h[B*3+1]=p(B+1),h[B*3+2]=p(B+2);return{topology:"triangle-list",indices:h}}var Cl=[yt("baseColor","pbr_baseColorSampler","baseColorTexture",["pbrMetallicRoughness","baseColorTexture"]),yt("metallicRoughness","pbr_metallicRoughnessSampler","metallicRoughnessTexture",["pbrMetallicRoughness","metallicRoughnessTexture"]),yt("normal","pbr_normalSampler","normalTexture",["normalTexture"]),yt("occlusion","pbr_occlusionSampler","occlusionTexture",["occlusionTexture"]),yt("emissive","pbr_emissiveSampler","emissiveTexture",["emissiveTexture"]),yt("specularColor","pbr_specularColorSampler","KHR_materials_specular.specularColorTexture",["extensions","KHR_materials_specular","specularColorTexture"]),yt("specularIntensity","pbr_specularIntensitySampler","KHR_materials_specular.specularTexture",["extensions","KHR_materials_specular","specularTexture"]),yt("transmission","pbr_transmissionSampler","KHR_materials_transmission.transmissionTexture",["extensions","KHR_materials_transmission","transmissionTexture"]),yt("thickness","pbr_thicknessSampler","KHR_materials_volume.thicknessTexture",["extensions","KHR_materials_volume","thicknessTexture"]),yt("clearcoat","pbr_clearcoatSampler","KHR_materials_clearcoat.clearcoatTexture",["extensions","KHR_materials_clearcoat","clearcoatTexture"]),yt("clearcoatRoughness","pbr_clearcoatRoughnessSampler","KHR_materials_clearcoat.clearcoatRoughnessTexture",["extensions","KHR_materials_clearcoat","clearcoatRoughnessTexture"]),yt("clearcoatNormal","pbr_clearcoatNormalSampler","KHR_materials_clearcoat.clearcoatNormalTexture",["extensions","KHR_materials_clearcoat","clearcoatNormalTexture"]),yt("sheenColor","pbr_sheenColorSampler","KHR_materials_sheen.sheenColorTexture",["extensions","KHR_materials_sheen","sheenColorTexture"]),yt("sheenRoughness","pbr_sheenRoughnessSampler","KHR_materials_sheen.sheenRoughnessTexture",["extensions","KHR_materials_sheen","sheenRoughnessTexture"]),yt("iridescence","pbr_iridescenceSampler","KHR_materials_iridescence.iridescenceTexture",["extensions","KHR_materials_iridescence","iridescenceTexture"]),yt("iridescenceThickness","pbr_iridescenceThicknessSampler","KHR_materials_iridescence.iridescenceThicknessTexture",["extensions","KHR_materials_iridescence","iridescenceThicknessTexture"]),yt("anisotropy","pbr_anisotropySampler","KHR_materials_anisotropy.anisotropyTexture",["extensions","KHR_materials_anisotropy","anisotropyTexture"]),yt("bump","pbr_bumpSampler","EXT_materials_bump.bumpTexture",["extensions","EXT_materials_bump","bumpTexture"]),yt("diffuseTransmission","pbr_diffuseTransmissionSampler","KHR_materials_diffuse_transmission.diffuseTransmissionTexture",["extensions","KHR_materials_diffuse_transmission","diffuseTransmissionTexture"]),yt("diffuseTransmissionColor","pbr_diffuseTransmissionColorSampler","KHR_materials_diffuse_transmission.diffuseTransmissionColorTexture",["extensions","KHR_materials_diffuse_transmission","diffuseTransmissionColorTexture"]),yt("multiscatterColor","pbr_multiscatterColorSampler","KHR_materials_volume_scatter.multiscatterColorTexture",["extensions","KHR_materials_volume_scatter","multiscatterColorTexture"])],BI=new Map(Cl.map(r=>[r.slot,r]));function yt(r,e,t,n){return{slot:r,binding:e,displayName:t,pathSegments:n,colorSpace:r==="baseColor"||r==="emissive"||r==="specularColor"||r==="sheenColor"||r==="diffuseTransmissionColor"||r==="multiscatterColor"?"srgb":"linear",uvSetUniform:`${r}UVSet`,uvTransformUniform:`${r}UVTransform`}}function lg(){return Cl}function zA(r){let e=BI.get(r);if(!e)throw new Error(`Unknown PBR texture transform slot ${r}`);return e}function XA(r){let e=r?.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 Tl(r){return r?.extensions?.KHR_texture_transform?.texCoord??r?.texCoord??0}function ug(r){return Cl.find(e=>e.pathSegments.length===r.length&&e.pathSegments.every((t,n)=>r[n]===t))||null}function KA(r){let e=new He().set(1,0,0,0,1,0,r.offset[0],r.offset[1],1),t=new He().set(Math.cos(r.rotation),Math.sin(r.rotation),0,-Math.sin(r.rotation),Math.cos(r.rotation),0,0,0,1),n=new He().set(r.scale[0],0,0,0,r.scale[1],0,0,0,1);return Array.from(e.multiplyRight(t).multiplyRight(n))}function fg(r,e){let t=new He(KA(r)),n=new He(KA(e)),i=new He(t).invert();return Array.from(n.multiplyRight(i))}function dg(r={}){let e=r.wrapS??r.parameters?.[Ue.TEXTURE_WRAP_S],t=r.wrapT??r.parameters?.[Ue.TEXTURE_WRAP_T],n=r.magFilter??r.parameters?.[Ue.TEXTURE_MAG_FILTER],i=r.minFilter??r.parameters?.[Ue.TEXTURE_MIN_FILTER],A=hg(e),h=hg(t),p=CI(n);return P(P(P(P({},A?{addressModeU:A}:{}),h?{addressModeV:h}:{}),p?{magFilter:p}:{}),TI(i))}function hg(r){switch(r){case Ue.CLAMP_TO_EDGE:return"clamp-to-edge";case Ue.REPEAT:return"repeat";case Ue.MIRRORED_REPEAT:return"mirror-repeat";default:return}}function CI(r){switch(r){case Ue.NEAREST:return"nearest";case Ue.LINEAR:return"linear";default:return}}function TI(r){switch(r){case Ue.NEAREST:return{minFilter:"nearest"};case Ue.LINEAR:return{minFilter:"linear"};case Ue.NEAREST_MIPMAP_NEAREST:return{minFilter:"nearest",mipmapFilter:"nearest"};case Ue.LINEAR_MIPMAP_NEAREST:return{minFilter:"linear",mipmapFilter:"nearest"};case Ue.NEAREST_MIPMAP_LINEAR:return{minFilter:"nearest",mipmapFilter:"linear"};case Ue.LINEAR_MIPMAP_LINEAR:return{minFilter:"linear",mipmapFilter:"linear"};default:return{}}}var yI={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 io(r,e,t,n){let i={defines:{MANUAL_SRGB:!0},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};i.defines.USE_TEX_LOD=!0;let{imageBasedLightingEnvironment:A}=n;return A&&(i.bindings.pbr_diffuseEnvSampler=A.diffuseEnvSampler.texture,i.bindings.pbr_specularEnvSampler=A.specularEnvSampler.texture,i.bindings.pbr_brdfLUT=A.brdfLutTexture.texture,i.uniforms.IBLenabled=!0,i.uniforms.scaleIBLAmbient=[1,1]),n?.pbrDebug&&(i.defines.PBR_DEBUG=!0,i.uniforms.scaleDiffBaseMR=[0,0,0,0],i.uniforms.scaleFGDSpec=[0,0,0,0]),Hr(t,"NORMAL")&&(i.defines.HAS_NORMALS=!0),Hr(t,"TANGENT")&&n?.useTangents&&(i.defines.HAS_TANGENTS=!0),Hr(t,"TEXCOORD_0")&&(i.defines.HAS_UV=!0),Hr(t,"TEXCOORD_1")&&(i.defines.HAS_UV_1=!0),Hr(t,"JOINTS_0")&&Hr(t,"WEIGHTS_0")&&(i.defines.HAS_SKIN=!0),Hr(t,"COLOR_0")&&(i.defines.HAS_COLORS=!0),n?.imageBasedLightingEnvironment&&(i.defines.USE_IBL=!0),n?.lights&&(i.defines.USE_LIGHTS=!0),e&&(n.validateAttributes!==!1&&bI(e,t),_I(r,e,i,t,n.gltf)),i}function bI(r,e){let t=pg(r,0);t.length>0&&!Hr(e,"TEXCOORD_0")&&ht.warn(`glTF material uses ${t.join(", ")} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();let n=pg(r,1);if(n.length>0&&!Hr(e,"TEXCOORD_1")&&ht.warn(`glTF material uses ${n.join(", ")} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)(),!!(r.unlit||r.extensions?.KHR_materials_unlit)||Hr(e,"NORMAL"))return;let A=r.normalTexture?"lit PBR shading with normalTexture":"lit PBR shading";ht.warn(`glTF primitive is missing NORMAL while using ${A}; shading will fall back to geometric normals`)()}function pg(r,e){let t=[];for(let n of lg()){let i=EI(r,n.pathSegments);i&&Tl(i)===e&&t.push(n.displayName)}return t}function Hr(r,e){return yI[e].some(t=>!!r[t])}function EI(r,e){let t=r;for(let n of e)if(t=t?.[n],!t)return null;return t}function _I(r,e,t,n,i){if(t.uniforms.unlit=!!(e.unlit||e.extensions?.KHR_materials_unlit),e.pbrMetallicRoughness&&wI(r,e.pbrMetallicRoughness,t,n,i),e.normalTexture){bt(r,e.normalTexture,"pbr_normalSampler",t,{featureOptions:{define:"HAS_NORMALMAP",enabledUniformName:"normalMapEnabled"},gltf:i,attributes:n,textureTransformSlot:"normal"});let{scale:A=1}=e.normalTexture;t.uniforms.normalScale=A}if(e.occlusionTexture){bt(r,e.occlusionTexture,"pbr_occlusionSampler",t,{featureOptions:{define:"HAS_OCCLUSIONMAP",enabledUniformName:"occlusionMapEnabled"},gltf:i,attributes:n,textureTransformSlot:"occlusion"});let{strength:A=1}=e.occlusionTexture;t.uniforms.occlusionStrength=A}switch(t.uniforms.emissiveFactor=e.emissiveFactor||[0,0,0],e.emissiveTexture&&bt(r,e.emissiveTexture,"pbr_emissiveSampler",t,{featureOptions:{define:"HAS_EMISSIVEMAP",enabledUniformName:"emissiveMapEnabled"},gltf:i,attributes:n,textureTransformSlot:"emissive"}),MI(r,e.extensions,t,i,n),e.alphaMode||"OPAQUE"){case"OPAQUE":break;case"MASK":{let{alphaCutoff:A=.5}=e;t.defines.ALPHA_CUTOFF=!0,t.uniforms.alphaCutoffEnabled=!0,t.uniforms.alphaCutoff=A;break}case"BLEND":ht.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),xI(t);break}}function xI(r){r.parameters.blend=!0,r.parameters.blendColorOperation="add",r.parameters.blendColorSrcFactor="src-alpha",r.parameters.blendColorDstFactor="one-minus-src-alpha",r.parameters.blendAlphaOperation="add",r.parameters.blendAlphaSrcFactor="one",r.parameters.blendAlphaDstFactor="one-minus-src-alpha",r.glParameters.blend=!0,r.glParameters.blendEquation=Ue.FUNC_ADD,r.glParameters.blendFunc=[Ue.SRC_ALPHA,Ue.ONE_MINUS_SRC_ALPHA,Ue.ONE,Ue.ONE_MINUS_SRC_ALPHA]}function II(r){r.parameters.blend=!0,r.parameters.depthWriteEnabled=!1,r.parameters.blendColorOperation="add",r.parameters.blendColorSrcFactor="one",r.parameters.blendColorDstFactor="one-minus-src-alpha",r.parameters.blendAlphaOperation="add",r.parameters.blendAlphaSrcFactor="one",r.parameters.blendAlphaDstFactor="one-minus-src-alpha",r.glParameters.blend=!0,r.glParameters.depthMask=!1,r.glParameters.blendEquation=Ue.FUNC_ADD,r.glParameters.blendFunc=[Ue.ONE,Ue.ONE_MINUS_SRC_ALPHA,Ue.ONE,Ue.ONE_MINUS_SRC_ALPHA]}function wI(r,e,t,n,i){e.baseColorTexture&&bt(r,e.baseColorTexture,"pbr_baseColorSampler",t,{featureOptions:{define:"HAS_BASECOLORMAP",enabledUniformName:"baseColorMapEnabled"},gltf:i,attributes:n,textureTransformSlot:"baseColor"}),t.uniforms.baseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&bt(r,e.metallicRoughnessTexture,"pbr_metallicRoughnessSampler",t,{featureOptions:{define:"HAS_METALROUGHNESSMAP",enabledUniformName:"metallicRoughnessMapEnabled"},gltf:i,attributes:n,textureTransformSlot:"metallicRoughness"});let{metallicFactor:A=1,roughnessFactor:h=1}=e;t.uniforms.metallicRoughnessValues=[A,h]}function MI(r,e,t,n,i={}){e&&(SI(e)&&(t.defines.USE_MATERIAL_EXTENSIONS=!0),vI(r,e.KHR_materials_specular,t,n,i),FI(e.KHR_materials_ior,t),LI(r,e.EXT_materials_bump,t,n,i),RI(r,e.KHR_materials_transmission,t,n,i),DI(r,e.KHR_materials_diffuse_transmission,t,n,i),PI(r,e.KHR_materials_volume,t,n,i),OI(r,e.KHR_materials_volume_scatter,e.KHR_materials_volume,t,n,i),NI(e.KHR_materials_dispersion,t),GI(r,e.KHR_materials_clearcoat,t,n,i),UI(r,e.KHR_materials_sheen,t,n,i),kI(r,e.KHR_materials_iridescence,t,n,i),HI(r,e.KHR_materials_anisotropy,t,n,i),VI(e.KHR_materials_emissive_strength,t))}function SI(r){return!!(r.KHR_materials_specular||r.KHR_materials_ior||r.EXT_materials_bump||r.KHR_materials_transmission||r.KHR_materials_diffuse_transmission||r.KHR_materials_volume||r.KHR_materials_volume_scatter||r.KHR_materials_dispersion||r.KHR_materials_clearcoat||r.KHR_materials_sheen||r.KHR_materials_iridescence||r.KHR_materials_anisotropy)}function vI(r,e,t,n,i={}){e&&(e.specularColorFactor&&(t.uniforms.specularColorFactor=e.specularColorFactor),e.specularFactor!==void 0&&(t.uniforms.specularIntensityFactor=e.specularFactor),e.specularColorTexture&&bt(r,e.specularColorTexture,"pbr_specularColorSampler",t,{featureOptions:{define:"HAS_SPECULARCOLORMAP",enabledUniformName:"specularColorMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"specularColor"}),e.specularTexture&&bt(r,e.specularTexture,"pbr_specularIntensitySampler",t,{featureOptions:{define:"HAS_SPECULARINTENSITYMAP",enabledUniformName:"specularIntensityMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"specularIntensity"}))}function FI(r,e){r?.ior!==void 0&&(e.uniforms.ior=r.ior)}function RI(r,e,t,n,i={}){e&&(e.transmissionFactor!==void 0&&(t.uniforms.transmissionFactor=e.transmissionFactor),e.transmissionTexture&&bt(r,e.transmissionTexture,"pbr_transmissionSampler",t,{featureOptions:{define:"HAS_TRANSMISSIONMAP",enabledUniformName:"transmissionMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"transmission"}),((e.transmissionFactor??0)>0||e.transmissionTexture)&&(ht.warn("KHR_materials_transmission uses a premultiplied-alpha blending approximation and may require mesh sorting")(),II(t)))}function LI(r,e,t,n,i={}){e&&(t.uniforms.bumpFactor=Math.max(e.bumpFactor??1,0),e.bumpTexture&&bt(r,e.bumpTexture,"pbr_bumpSampler",t,{featureOptions:{define:"HAS_BUMPMAP",enabledUniformName:"bumpMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"bump"}))}function DI(r,e,t,n,i={}){e&&(t.uniforms.diffuseTransmissionFactor=Math.min(Math.max(e.diffuseTransmissionFactor??0,0),1),t.uniforms.diffuseTransmissionColorFactor=e.diffuseTransmissionColorFactor||[1,1,1],e.diffuseTransmissionTexture&&bt(r,e.diffuseTransmissionTexture,"pbr_diffuseTransmissionSampler",t,{featureOptions:{define:"HAS_DIFFUSETRANSMISSIONMAP",enabledUniformName:"diffuseTransmissionMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"diffuseTransmission"}),e.diffuseTransmissionColorTexture&&bt(r,e.diffuseTransmissionColorTexture,"pbr_diffuseTransmissionColorSampler",t,{featureOptions:{define:"HAS_DIFFUSETRANSMISSIONCOLORMAP",enabledUniformName:"diffuseTransmissionColorMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"diffuseTransmissionColor"}))}function PI(r,e,t,n,i={}){e&&(e.thicknessFactor!==void 0&&(t.uniforms.thicknessFactor=e.thicknessFactor),e.thicknessTexture&&bt(r,e.thicknessTexture,"pbr_thicknessSampler",t,{featureOptions:{define:"HAS_THICKNESSMAP"},gltf:n,attributes:i,textureTransformSlot:"thickness"}),e.attenuationDistance!==void 0&&(t.uniforms.attenuationDistance=e.attenuationDistance),e.attenuationColor&&(t.uniforms.attenuationColor=e.attenuationColor))}function OI(r,e,t,n,i,A={}){!e||!t||(n.uniforms.multiscatterColorFactor=e.multiscatterColorFactor||e.multiscatterColor||[0,0,0],n.uniforms.scatterAnisotropy=Math.min(Math.max(e.scatterAnisotropy??0,-.999),.999),e.multiscatterColorTexture&&bt(r,e.multiscatterColorTexture,"pbr_multiscatterColorSampler",n,{featureOptions:{define:"HAS_MULTISCATTERCOLORMAP",enabledUniformName:"multiscatterColorMapEnabled"},gltf:i,attributes:A,textureTransformSlot:"multiscatterColor"}))}function NI(r,e){r?.dispersion!==void 0&&(e.uniforms.dispersion=Math.max(r.dispersion,0))}function GI(r,e,t,n,i={}){e&&(e.clearcoatFactor!==void 0&&(t.uniforms.clearcoatFactor=e.clearcoatFactor),e.clearcoatRoughnessFactor!==void 0&&(t.uniforms.clearcoatRoughnessFactor=e.clearcoatRoughnessFactor),e.clearcoatTexture&&bt(r,e.clearcoatTexture,"pbr_clearcoatSampler",t,{featureOptions:{define:"HAS_CLEARCOATMAP",enabledUniformName:"clearcoatMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"clearcoat"}),e.clearcoatRoughnessTexture&&bt(r,e.clearcoatRoughnessTexture,"pbr_clearcoatRoughnessSampler",t,{featureOptions:{define:"HAS_CLEARCOATROUGHNESSMAP",enabledUniformName:"clearcoatRoughnessMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"clearcoatRoughness"}),e.clearcoatNormalTexture&&bt(r,e.clearcoatNormalTexture,"pbr_clearcoatNormalSampler",t,{featureOptions:{define:"HAS_CLEARCOATNORMALMAP"},gltf:n,attributes:i,textureTransformSlot:"clearcoatNormal"}))}function UI(r,e,t,n,i={}){e&&(e.sheenColorFactor&&(t.uniforms.sheenColorFactor=e.sheenColorFactor),e.sheenRoughnessFactor!==void 0&&(t.uniforms.sheenRoughnessFactor=e.sheenRoughnessFactor),e.sheenColorTexture&&bt(r,e.sheenColorTexture,"pbr_sheenColorSampler",t,{featureOptions:{define:"HAS_SHEENCOLORMAP",enabledUniformName:"sheenColorMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"sheenColor"}),e.sheenRoughnessTexture&&bt(r,e.sheenRoughnessTexture,"pbr_sheenRoughnessSampler",t,{featureOptions:{define:"HAS_SHEENROUGHNESSMAP",enabledUniformName:"sheenRoughnessMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"sheenRoughness"}))}function kI(r,e,t,n,i={}){e&&(e.iridescenceFactor!==void 0&&(t.uniforms.iridescenceFactor=e.iridescenceFactor),e.iridescenceIor!==void 0&&(t.uniforms.iridescenceIor=e.iridescenceIor),(e.iridescenceThicknessMinimum!==void 0||e.iridescenceThicknessMaximum!==void 0)&&(t.uniforms.iridescenceThicknessRange=[e.iridescenceThicknessMinimum??100,e.iridescenceThicknessMaximum??400]),e.iridescenceTexture&&bt(r,e.iridescenceTexture,"pbr_iridescenceSampler",t,{featureOptions:{define:"HAS_IRIDESCENCEMAP",enabledUniformName:"iridescenceMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"iridescence"}),e.iridescenceThicknessTexture&&bt(r,e.iridescenceThicknessTexture,"pbr_iridescenceThicknessSampler",t,{featureOptions:{define:"HAS_IRIDESCENCETHICKNESSMAP"},gltf:n,attributes:i,textureTransformSlot:"iridescenceThickness"}))}function HI(r,e,t,n,i={}){e&&(e.anisotropyStrength!==void 0&&(t.uniforms.anisotropyStrength=e.anisotropyStrength),e.anisotropyRotation!==void 0&&(t.uniforms.anisotropyRotation=e.anisotropyRotation),e.anisotropyTexture&&bt(r,e.anisotropyTexture,"pbr_anisotropySampler",t,{featureOptions:{define:"HAS_ANISOTROPYMAP",enabledUniformName:"anisotropyMapEnabled"},gltf:n,attributes:i,textureTransformSlot:"anisotropy"}))}function VI(r,e){r?.emissiveStrength!==void 0&&(e.uniforms.emissiveStrength=r.emissiveStrength)}function bt(r,e,t,n,i={}){let{featureOptions:A={},gltf:h,attributes:p={},textureTransformSlot:B}=i,{define:T,enabledUniformName:y}=A,E=Tl(e);
621if(E>1){ht.warn(`Skipping ${String(t)} because ${E} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();return}if(E===1&&!Hr(p,"TEXCOORD_1")){ht.warn(`Skipping ${String(t)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();return}let I=JI(e,h),S=I.texture?.source?.image;if(!S){ht.warn(`Skipping unresolved glTF texture for ${String(t)}`)();return}let O={id:I.uniformName||I.id,sampler:P({addressModeU:"repeat",addressModeV:"repeat",minFilter:"linear",magFilter:"linear"},dg(I.texture.sampler))},N=gg(r,S,O);if(n.bindings[t]=N,T&&(n.defines[T]=!0),y&&(n.uniforms[y]=!0),B){let Q=zA(B);n.uniforms[Q.uvSetUniform]=E,n.uniforms[Q.uvTransformUniform]=KA(XA(e))}n.generatedTextures.push(N)}function gg(r,e,t){if("compressed"in e)return QI(r,e,{id:t.id,sampler:t.sampler});let n=t.width!==void 0&&t.height!==void 0?{width:t.width,height:t.height}:r.getExternalImageSize(e),i=t.sampler.mipmapFilter==="nearest"||t.sampler.mipmapFilter==="linear",A=i?r.getMipLevelCount(n.width,n.height):1,h=r.createTexture(ee(P(P({id:t.id,sampler:t.sampler,width:n.width,height:n.height,mipLevels:A},i?{usage:Wt.SAMPLE|Wt.RENDER|Wt.COPY_DST|Wt.COPY_SRC}:{}),t.colorSpace?{format:t.colorSpace==="srgb"?"rgba8unorm-srgb":"rgba8unorm"}:{}),{data:e}));return A>1&&(r.type==="webgl"?h.generateMipmapsWebGL():r.type==="webgpu"&&r.generateMipmapsWebGPU(h)),h}function JI(r,e){if(r.texture||r.index===void 0||!e?.textures)return r;let t=e.textures[r.index];return t?"texture"in t&&t.texture?ee(P(P({},t),r),{texture:t.texture}):"source"in t?ee(P({},r),{texture:t}):r:r}function YA(r,e){return r.createTexture(ee(P({},e),{format:"rgba8unorm",width:1,height:1,mipLevels:1}))}function mg(r){return r.textureFormat}function jI(r,e,t){let{blockWidth:n=1,blockHeight:i=1}=Dh.getInfo(t),A=1;for(let h=1;;h++){let p=Math.max(1,r>>h),B=Math.max(1,e>>h);if(p<n||B<i)break;A++}return A}function QI(r,e,t){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 ht.warn("createCompressedTexture: compressed image has no valid mip levels, creating fallback")(),YA(r,t);let i=n[0],A=i.width??e.width??0,h=i.height??e.height??0;if(A<=0||h<=0)return ht.warn("createCompressedTexture: base level has invalid dimensions, creating fallback")(),YA(r,t);let p=mg(i);if(!p)return ht.warn("createCompressedTexture: compressed image has no textureFormat, creating fallback")(),YA(r,t);if(!r.isTextureFormatSupported(p))return ht.warn(`createCompressedTexture: ${r.type} device does not support '${p}', creating fallback`)(),YA(r,t);let B=jI(A,h,p),T=Math.min(n.length,B),y=1;for(let I=1;I<T;I++){let S=n[I];if(!S.data||S.width<=0||S.height<=0){ht.warn(`createCompressedTexture: mip level ${I} has invalid data/dimensions, truncating`)();break}let O=mg(S);if(O&&O!==p){ht.warn(`createCompressedTexture: mip level ${I} format '${O}' differs from base '${p}', truncating`)();break}let N=Math.max(1,A>>I),Q=Math.max(1,h>>I);if(S.width!==N||S.height!==Q){ht.warn(`createCompressedTexture: mip level ${I} dimensions ${S.width}x${S.height} don't match expected ${N}x${Q}, truncating`)();break}y++}let E=r.createTexture(ee(P({},t),{format:p,usage:Wt.TEXTURE|Wt.COPY_DST,width:A,height:h,mipLevels:y,data:i.data}));for(let I=1;I<y;I++)E.writeData(n[I].data,{width:n[I].width,height:n[I].height,mipLevel:I});return E}var KI={modelOptions:{},pbrDebug:!1,imageBasedLightingEnvironment:void 0,lights:!0,useTangents:!1,useByteColors:!0,strictExtensions:!1};function Bg(r,e,t={}){let n=new Set,i=ee(P(P({},KI),t),{generatedTextures:n}),A=new $o(r,{modules:[hr]}),h=(e.materials||[]).map((N,Q)=>gl(r,{id:ZI(N,Q),parsedPPBRMaterial:bl(r,N,{},ee(P({},i),{gltf:e,validateAttributes:!1})),materialFactory:A})),p=new Map;(e.materials||[]).forEach((N,Q)=>{p.set(N.id,h[Q])});let B=new Map;e.meshes.forEach((N,Q)=>{let z=yl(r,N,e,p,i);B.set(N.id,z)});let T=new Map,y=new Map,E=new Set,I=new Set,S=new Set;return e.nodes.forEach((N,Q)=>{let z=zI(r,N,i);T.set(Q,z),y.set(N.id,z)}),e.nodes.forEach((N,Q)=>{if(T.get(Q).add((N.children??[]).map(({id:z})=>{let j=y.get(z);if(!j)throw new Error(`Cannot find child ${z} of node ${Q}`);return j})),N.mesh){let z=N.mesh,j=ag(e,N),re=z.primitives.some(H=>!!H.targets?.length),ie=j||re&&E.has(z.id)?yl(r,z,e,p,i,j||void 0):B.get(z.id);if(!ie)throw new Error(`Cannot find mesh child ${N.mesh.id} of node ${Q}`);let ce=T.get(Q),Ae=B.get(z.id),W=I.has(z.id)&&(N.skin!==void 0||S.has(z.id))&&ie===Ae?yl(r,z,e,p,i):ie;if(ce.add(W),ce.userData.gltfMesh=W,I.add(z.id),N.skin!==void 0&&S.add(z.id),re){E.add(z.id);let H=z.primitives.find(fe=>fe.targets?.length)?.targets?.length||0,U=N.weights||z.weights||new Array(H).fill(0);ce.userData.morphMeshes=[W],i.modelOptions?.userData?.gltfAnimatedCrowd?ce.userData.morphWeights=[...U]:QA(ce,U)}}}),{scenes:e.scenes.map(N=>{let Q=(N.nodes||[]).map(({id:z})=>{let j=y.get(z);if(!j)throw new Error(`Cannot find child ${z} of scene ${N.name||N.id}`);return j});return new Ir({id:N.name||N.id,children:Q})}),materials:h,gltfMeshIdToNodeMap:B,gltfNodeIdToNodeMap:y,gltfNodeIndexToNodeMap:T,generatedTextures:n}}function bl(r,e,t,n){let i=io(r,e,t,n);for(let A of i.generatedTextures)n.generatedTextures.add(A);return i}
vendor: 14,416 bytes, line 621
621function zI(r,e,t){return new Ir({id:e.name||e.id,children:[],matrix:e.matrix,display:e.extensions?.KHR_node_visibility?.visible!==!1,position:e.translation,rotation:e.rotation,scale:e.scale})}function yl(r,e,t,n,i,A){let p=(e.primitives||[]).map((T,y)=>XI({device:r,gltfPrimitive:T,primitiveIndex:y,gltfMesh:e,gltf:t,gltfMaterialIdToMaterialMap:n,options:i,instancing:A}));return new Ir({id:e.name||e.id,children:p})}function XI({device:r,gltfPrimitive:e,primitiveIndex:t,gltfMesh:n,gltf:i,gltfMaterialIdToMaterialMap:A,options:h,instancing:p}){let B=e.name||`${n.name||n.id}-primitive-${t}`,T=WI(e.attributes),y=cg(e.mode??4,e.indices?.value,T),E=qI(B,e,y),I=E.vertexCount,S=YI(e,i,E),O=bl(r,e.material,E.attributes,ee(P({},h),{gltf:i})),N=Ag(r,{id:B,geometry:E,material:e.material&&A.get(e.material.id)||null,parsedPPBRMaterial:O,modelOptions:h.modelOptions,vertexCount:I,bounds:[e.attributes.POSITION.min,e.attributes.POSITION.max],instanceMatrices:p?.matrices,morphTargets:S?.targets});p&&(N.userData.gltfInstancing=p);let Q=e.extensions?.KHR_materials_variants?.mappings||[];if(Q.length){let z=new Map;for(let j of Q){let re=typeof j.material=="number"?i.materials[j.material]:j.material,ie=re&&A.get(re.id);if(!ie)continue;let ce=bl(r,re,E.attributes,ee(P({},h),{gltf:i}));for(let Ae of j.variants||[])z.set(Ae,{material:ie,parameters:ee(P(P({},N.model.parameters),ce.parameters),{depthWriteEnabled:re.alphaMode!=="BLEND",cullMode:re.doubleSided?"none":"back"})})}N.userData.gltfMaterialVariants={defaultMaterial:N.model.material,defaultParameters:P({},N.model.parameters),mappings:z}}return S&&(N.userData.morphTargets=S),N}function YI(r,e,t){if(!r.targets?.length)return;let n={};for(let A of["POSITION","NORMAL","TANGENT"]){let h=t.attributes[A]?.value;h instanceof Float32Array&&(n[A]=new Float32Array(h))}let i=r.targets.map(A=>{let h={};for(let p of["POSITION","NORMAL","TANGENT"]){let B=A[p],T=typeof B=="number"?e.accessors[B]:B;T?.value&&ArrayBuffer.isView(T.value)&&(h[p]=sc(T))}return h});return{geometry:t,baseAttributes:n,targets:i}}function WI(r){let e=1/0;for(let t of Object.values(r))if(t){let{value:n,size:i,components:A}=t,h=i??A;n?.length!==void 0&&h>=1&&(e=Math.min(e,n.length/h))}if(!Number.isFinite(e))throw new Error("Could not determine vertex count from attributes");return e}function qI(r,e,t){let n={};for(let[i,A]of Object.entries(e.attributes)){let{components:h,size:p,value:B,normalized:T}=A,y=i==="POSITION"||i==="NORMAL"||i==="TANGENT",E=!!(e.targets?.length&&y);n[i]={size:p??h,value:E?sc({value:B,normalized:T}):B,normalized:E?!1:T}}return new _n({id:r,topology:t.topology,indices:t.indices??e.indices?.value,attributes:n})}function ZI(r,e){return r.name||r.id||`material-${e}`}function El(r,e={}){let t=e.lightDefinitions||r.lights||r.extensions?.KHR_lights_punctual?.lights;if(!t||!Array.isArray(t)||t.length===0)return[];let n=[],i=sw(r.nodes||[]),A=new Map;for(let h of r.nodes||[]){if(!$I(h,i,e.nodeVisibility))continue;let p=h.light??h.extensions?.KHR_lights_punctual?.light;if(typeof p!="number"||e.nodeIdentifiers&&!e.nodeIdentifiers.has(h.id))continue;let B=t[p];if(!B)continue;let T=ew(B.color||[1,1,1],e.useByteColors??!0),y=B.intensity??1,E=B.range,I=Cg(h,i,A);switch(B.type){case"directional":n.push(rw(I,T,y));break;case"point":n.push(tw(I,T,y,E));break;case"spot":n.push(nw(I,T,y,E,B.spot));break;default:break}}return n}function $I(r,e,t){let n=r;for(;n;){let i=t?.get(n.id);if(i?!i.display:n.extensions?.KHR_node_visibility?.visible===!1)return!1;n=e.get(n.id)}return!0}function ew(r,e){return e?r.map(t=>t*255):kh(r,!1)}function tw(r,e,t,n){let i=Tg(r),A=[1,0,0];return n!==void 0&&n>0&&(A=[1,0,1/(n*n)]),{type:"point",position:i,color:e,intensity:t,attenuation:A}}function rw(r,e,t){return{type:"directional",direction:yg(r),color:e,intensity:t}}function nw(r,e,t,n,i={}){let A=Tg(r),h=yg(r),p=[1,0,0];return n!==void 0&&n>0&&(p=[1,0,1/(n*n)]),{type:"spot",position:A,direction:h,color:e,intensity:t,attenuation:p,innerConeAngle:i.innerConeAngle??0,outerConeAngle:i.outerConeAngle??Math.PI/4}}function sw(r){let e=new Map;for(let t of r)for(let n of t.children||[])e.set(n.id,t);return e}function Cg(r,e,t){let n=t.get(r.id);if(n)return n;let i=iw(r),A=e.get(r.id),h=A?new Se(Cg(A,e,t)).multiplyRight(i):i;return t.set(r.id,h),h}function iw(r){if(r.matrix)return new Se(r.matrix);let e=new Se;return r.translation&&e.translate(r.translation),r.rotation&&e.multiplyRight(new Se().fromQuaternion(r.rotation)),r.scale&&e.scale(r.scale),e}function Tg(r){return r.transformAsPoint([0,0,0])}function yg(r){return r.transformDirection([0,0,-1])}var _l=class extends Qh{animation;gltfNodeIdToNodeMap;onVisibilityChange;cameras;lightDefinitions;onLightChange;materials;clip;mixer;action;materialTextureTransformState=new Map;constructor(e){if(super({name:e.animation.name||"unnamed"}),this.animation=e.animation,this.gltfNodeIdToNodeMap=e.gltfNodeIdToNodeMap,this.onVisibilityChange=e.onVisibilityChange,this.cameras=e.cameras||[],this.lightDefinitions=e.lightDefinitions||[],this.onLightChange=e.onLightChange,this.materials=e.materials||[],this.animation.name||="unnamed",this.name=this.animation.name,this.animation.channels.some(t=>t.type==="material"||t.type==="textureTransform")&&!this.materials.length)throw new Error(`Animation ${this.animation.name} targets materials, but GLTFAnimator was created without a materials array`);this.mixer=e.mixer||new nc,this.clip=new zh({name:this.name,tracks:this.animation.channels.map(t=>this.createAnimationTrack(t))}),this.action=this.mixer.clipAction(this.clip).play()}applyTime(e){this.action.setTime(e),this.mixer.update(0)}createAnimationTrack(e){let t=ow(e.sampler.interpolation);if(e.type==="node")return new Zo({name:`${e.targetNodeId}.${e.path}`,times:e.sampler.input,values:e.sampler.output,interpolation:t,valueType:e.path==="rotation"?"quaternion":"vector",binding:{id:`node:${e.targetNodeId}:${e.path}`,getValue:()=>this.getNodeAnimationValue(e.targetNodeId,e.path),setValue:i=>this.applyNodeAnimationValue(e.targetNodeId,e.path,i)}});if(e.type==="camera"||e.type==="light")return new Zo({name:e.pointer,times:e.sampler.input,values:e.sampler.output,interpolation:t,binding:{id:e.pointer,getValue:()=>this.getSceneAnimationValue(e),setValue:i=>this.applySceneAnimationValue(e,i)}});let n=this.materials[e.targetMaterialIndex];if(!n)throw new Error(`Cannot find animation target material ${e.targetMaterialIndex} for ${e.pointer}`);return new Zo({name:e.pointer,times:e.sampler.input,values:e.sampler.output,interpolation:t,binding:{id:e.pointer,getValue:e.type==="material"?()=>Aw(n,e):void 0,setValue:i=>{e.type==="material"?aw(n,e,i):uw(n,e,i,this.materialTextureTransformState)}}})}getNodeAnimationValue(e,t){let n=this.getTargetNode(e);switch(t){case"translation":return Array.from(n.position);case"rotation":return Array.from(n.rotation);case"scale":return Array.from(n.scale);case"weights":return Array.from(n.userData.morphWeights||[]);case"visibility":return[n.display?1:0];default:return[]}}applyNodeAnimationValue(e,t,n){let i=this.getTargetNode(e);switch(t){case"translation":i.setPosition(n).updateMatrix();break;case"rotation":i.setRotation(n).updateMatrix();break;case"scale":i.setScale(n).updateMatrix();break;case"weights":QA(i,n);break;case"visibility":i.setProps({display:n[0]!==0}),this.onVisibilityChange?.();break;default:ht.warn(`Bad animation path ${t}`)()}}getTargetNode(e){let t=this.gltfNodeIdToNodeMap.get(e);if(!t)throw new Error(`Cannot find animation target node ${e}`);return t}getSceneAnimationValue(e){if(e.type==="camera"){let A=this.cameras[e.targetCameraIndex]?.[e.projection]?.[e.property];return typeof A=="number"?[A]:[]}let t=this.lightDefinitions[e.targetLightIndex],n=e.property==="innerConeAngle"||e.property==="outerConeAngle"?t?.spot?.[e.property]:t?.[e.property];return Array.isArray(n)?e.component===void 0?[...n]:[n[e.component]]:typeof n=="number"?[n]:[]}applySceneAnimationValue(e,t){if(e.type==="camera"){let i=this.cameras[e.targetCameraIndex];i?.[e.projection]&&(i[e.projection][e.property]=t[0]);return}let n=this.lightDefinitions[e.targetLightIndex];if(n){if(e.property==="innerConeAngle"||e.property==="outerConeAngle")n.spot||={},n.spot[e.property]=t[0];else if(e.component!==void 0){let i=[...n[e.property]||[1,1,1]];i[e.component]=t[0],n[e.property]=i}else n[e.property]=t.length===1?t[0]:[...t];this.onLightChange?.()}}},WA=class extends Kh{mixer;activeClip;onUpdate;previousTimeSeconds;constructor(e){let t=new nc;super(e.animations.map((n,i)=>{let A=n.name||`Animation-${i}`;return new _l({gltfNodeIdToNodeMap:e.gltfNodeIdToNodeMap,onVisibilityChange:e.onVisibilityChange,cameras:e.cameras,lightDefinitions:e.lightDefinitions,onLightChange:e.onLightChange,materials:e.materials,mixer:t,animation:{name:A,channels:n.channels}})})),this.mixer=t,this.onUpdate=e.onUpdate,this.activeClip=this.clips[0]?.name,e.autoplay===!1?this.clips.forEach(n=>{n.playing=!1,n.action.stop()}):e.autoplay==="first"&&this.activeClip&&this.selectClip(this.activeClip)}setUpdateHandler(e){return this.onUpdate=e,this}setTime(e){let t=e/1e3,n=this.previousTimeSeconds===void 0?0:t-this.previousTimeSeconds;this.previousTimeSeconds=t;let i=n*this.mixer.timeScale;this.clips.forEach(A=>{if(!A.playing){A.action.stop();return}if(A.action.paused)return;A.action.resume();let h=Math.max(0,t-A.startTime)*A.speed;A.action.setTime(h-i*A.action.timeScale)}),this.mixer.update(n),this.onUpdate?.()}update(e){this.mixer.update(e),this.onUpdate?.()}selectClip(e,t={}){let n=this.clips.find(h=>h.name===e);if(!n)throw new Error(`Unknown animation clip: ${e}`);let i=this.clips.find(h=>h.name===this.activeClip),A=t.crossFadeDuration||0;for(let h of this.clips)h!==n&&!(A>0&&h===i)&&(h.playing=!1,h.action.stop());return n.playing=!0,A>0&&i&&i!==n?(i.playing=!0,i.action.crossFadeTo(n.action,A)):n.action.reset().setEffectiveWeight(1).play(),this.activeClip=e,n}};function ow(r){switch(r){case"STEP":case"LINEAR":case"CUBICSPLINE":return r;default:throw new Error(`Unsupported animation interpolation: ${r}`)}}function Aw(r,e){let n=r.shaderInputs.getUniformValues().pbrMaterial?.[e.property];return Array.isArray(n)?e.component===void 0?[...n]:[n[e.component]]:typeof n=="number"?[n]:[]}function aw(r,e,t){let n=e.component!==void 0?{[e.property]:lw(cw(r,e.property),e.component,t[0])}:{[e.property]:t.length===1?t[0]:t};r.setProps({pbrMaterial:n})}function cw(r,e){let n=r.shaderInputs.getUniformValues().pbrMaterial?.[e];return Array.isArray(n)?[...n]:[]}function lw(r,e,t){let n=[...r];return n[e]=t,n}function uw(r,e,t,n){let i=zA(e.textureSlot),A=fw(n,r,e);switch(e.path){case"offset":e.component!==void 0?A.offset[e.component]=t[0]:A.offset=[t[0],t[1]];break;case"rotation":A.rotation=t[0];break;case"scale":e.component!==void 0?A.scale[e.component]=t[0]:A.scale=[t[0],t[1]];break}r.setProps({pbrMaterial:{[i.uvTransformUniform]:fg(e.baseTransform,A)}})}function fw(r,e,t){let n=r.get(e)||{},i=n[t.textureSlot];return i||(i={offset:[...t.baseTransform.offset],rotation:t.baseTransform.rotation,scale:[...t.baseTransform.scale]},n[t.textureSlot]=i,r.set(e,n)),i}var qA=class{bindings;scenes;constructor(e){this.scenes=e.scenes,this.bindings=hw(e),this.update()}update(){if(this.bindings.length===0)return;let e=new Map;for(let t of this.scenes)t.preorderTraversal((n,{worldMatrix:i})=>{n instanceof Ir&&e.set(n,new Se(i))});for(let t of this.bindings){Yh({joints:t.joints,meshNode:t.node,worldMatrices:e,inverseBindMatrices:t.inverseBindMatrices,target:t.jointMatrices});for(let n of t.models)n.model.shaderInputs.setProps({skin:{jointMatrices:t.jointMatrices}})}}getBinding(e){return this.bindings.find(t=>typeof e=="number"?t.nodeIndex===e:t.node===e)}};function hw(r){let{gltf:e,gltfNodeIndexToNodeMap:t}=r,n=[],i=e.skins||[],A=new Set;for(let h of r.scenes)h.preorderTraversal(p=>{p instanceof Ir&&A.add(p)});for(let[h,p]of e.nodes.entries()){let B=p.skin;if(B===void 0||!p.mesh)continue;let T=dw(e,B),y=i[T],E=t.get(h);if(!y||!E||!A.has(E))continue;let I=y.joints.flatMap(j=>{let re=t.get(j);return re?[re]:[]});if(I.length!==y.joints.length)continue;let S=p.mesh,O=E.userData.gltfMesh,N=O instanceof Ir?O:E.children.find(j=>j instanceof Ir&&j.id===(S.name||S.id));if(!(N instanceof Ir))continue;let Q=N.children.flatMap(j=>j instanceof dr?[j]:[]),z=y.inverseBindMatrices?.value;n.push(ee(P({nodeIndex:h,skinIndex:T,node:E,joints:I},z instanceof Float32Array?{inverseBindMatrices:z}:{}),{jointMatrices:new Float32Array(I.length*16),models:Q}))}return n}function dw(r,e){return typeof e=="number"?e:(r.skins||[]).findIndex(t=>{if(t===e||e.id&&t.id===e.id)return!0;if(t.joints.length!==e.joints?.length||!t.joints.every((n,i)=>n===e.joints?.[i]))return!1;if(typeof e.inverseBindMatrices=="number"){let n=r.accessors[e.inverseBindMatrices];return!t.inverseBindMatrices||t.inverseBindMatrices===n}return!0})}var pw={supportLevel:"none",standardStatus:"unknown",comment:"Not currently listed in the luma.gl glTF extension support registry."},bg={KHR_draco_mesh_compression:{supportLevel:"built-in",standardStatus:"ratified",comment:"Decoded by loaders.gl before luma.gl builds the scenegraph."},EXT_meshopt_compression:{supportLevel:"built-in",standardStatus:"ratified",comment:"EXT meshopt-compressed buffer views are decoded by loaders.gl before rendering."},KHR_meshopt_compression:{supportLevel:"none",standardStatus:"release-candidate",comment:"The installed loaders.gl GLTFLoader supports EXT_meshopt_compression, not the KHR release candidate."},KHR_mesh_quantization:{supportLevel:"built-in",standardStatus:"ratified",comment:"Loader-materialized quantized accessors retain their typed values and normalization."},EXT_mesh_features:{supportLevel:"loader-only",standardStatus:"ratified",comment:"Feature identifiers are decoded by loaders.gl; automatic rendering and picking are application-owned."},EXT_structural_metadata:{supportLevel:"loader-only",standardStatus:"ratified",comment:"Structural metadata is decoded by loaders.gl; automatic rendering and querying are application-owned."},KHR_lights_punctual:{supportLevel:"built-in",standardStatus:"ratified",comment:"Parsed into luma.gl Light objects."},KHR_materials_unlit:{supportLevel:"built-in",standardStatus:"ratified",comment:"Unlit materials bypass the default lighting path."},KHR_materials_emissive_strength:{supportLevel:"built-in",standardStatus:"ratified",comment:"Applied by the stock PBR shader."}
621,KHR_texture_basisu:{supportLevel:"built-in",standardStatus:"ratified",comment:"BasisU / KTX2 textures pass through when the device supports them."},KHR_texture_transform:{supportLevel:"built-in",standardStatus:"ratified",comment:"Per-slot UV transforms and animated pointers are applied at runtime; avoid duplicate legacy loader-side baking."},EXT_texture_webp:{supportLevel:"loader-only",standardStatus:"ratified",comment:"Texture source is resolved during load; final support depends on browser and device decode support."},EXT_texture_avif:{supportLevel:"none",standardStatus:"ratified",comment:"The image loader can decode supported AVIF images, but GLTFLoader does not select EXT_texture_avif sources."},KHR_materials_specular:{supportLevel:"built-in",standardStatus:"ratified",comment:"The stock shader now applies specular factors and textures to the dielectric F0 term."},KHR_materials_ior:{supportLevel:"built-in",standardStatus:"ratified",comment:"The stock shader now drives dielectric reflectance from the glTF IOR value."},KHR_materials_transmission:{supportLevel:"built-in",standardStatus:"ratified",comment:"The stock shader now applies transmission to the base layer and exposes transparency through alpha, without a scene-color refraction buffer."},KHR_materials_volume:{supportLevel:"built-in",standardStatus:"ratified",comment:"Thickness and attenuation now tint transmitted light in the stock shader."},KHR_materials_clearcoat:{supportLevel:"built-in",standardStatus:"ratified",comment:"The stock shader now adds a secondary clearcoat specular lobe."},KHR_materials_sheen:{supportLevel:"built-in",standardStatus:"ratified",comment:"The stock shader now adds a sheen lobe for cloth-like materials."},KHR_materials_iridescence:{supportLevel:"built-in",standardStatus:"ratified",comment:"The stock shader now tints specular response with a view-dependent thin-film iridescence approximation."},KHR_materials_anisotropy:{supportLevel:"built-in",standardStatus:"ratified",comment:"The stock shader now shapes highlights and IBL response with an anisotropy-direction approximation."},KHR_materials_pbrSpecularGlossiness:{supportLevel:"loader-only",standardStatus:"archived",comment:"Extension data can be loaded, but it is not translated into the default metallic-roughness material path."},KHR_materials_variants:{supportLevel:"parsed-and-wired",standardStatus:"ratified",comment:"Primitive material variants can be selected and restored on the generated scenegraph."},EXT_mesh_gpu_instancing:{supportLevel:"built-in",standardStatus:"ratified",comment:"Accessor-backed instance transforms use one instanced draw per source primitive."},KHR_node_visibility:{supportLevel:"parsed-and-wired",standardStatus:"ratified",comment:"Recursive node visibility controls rendered geometry, punctual lights, and animation."},KHR_animation_pointer:{supportLevel:"parsed-and-wired",standardStatus:"ratified",comment:"Node transforms, morph weights and visibility, material factors, texture transforms, camera projections, and punctual lights are wired to runtime updates."},EXT_materials_bump:{supportLevel:"built-in",standardStatus:"draft",comment:"The experimental bump-map draft perturbs the canonical surface normal from a linear height texture."},KHR_materials_diffuse_transmission:{supportLevel:"built-in",standardStatus:"release-candidate",comment:"The Khronos release candidate adds energy-conserving back-lit diffuse transmission and independent color/factor textures."},KHR_materials_dispersion:{supportLevel:"parsed-and-wired",standardStatus:"ratified",comment:"The canonical PBR shader separates red, green, and blue transmission using wavelength-dependent refraction."},KHR_materials_volume_scatter:{supportLevel:"parsed-and-wired",standardStatus:"draft",comment:"The unratified volume-scattering draft is approximated per surface; random-walk and screen-space diffusion are not implemented."},KHR_xmp:{supportLevel:"none",standardStatus:"archived",comment:"Metadata payloads remain in the loaded glTF, but luma.gl does not interpret them."},KHR_xmp_json_ld:{supportLevel:"none",standardStatus:"ratified",comment:"Metadata is preserved in the glTF, but luma.gl does not interpret it."},EXT_lights_image_based:{supportLevel:"none",standardStatus:"multi-vendor",comment:"Use loadPBREnvironment() or custom environment setup instead."},EXT_texture_video:{supportLevel:"none",standardStatus:"multi-vendor",comment:"Video textures are not created automatically by the stock pipeline."},MSFT_lod:{supportLevel:"parsed-and-wired",standardStatus:"vendor",comment:"Node levels are parsed and selected by opt-in animated crowds; material LOD and GPU-driven selection are not implemented."}};function xl(r,e){let t=Array.from(Cw(r)).sort(),n=new Set(r.extensionsRequired||[]),i=t.map(A=>{let h=bg[A]||pw,p=gw(A,h,r,e);return[A,{extensionName:A,required:n.has(A),supported:Tw(p.supportLevel),supportLevel:p.supportLevel,standardStatus:h.standardStatus,comment:p.comment}]});return new Map(i)}function mw(r,e){return Array.from(xl(r,e).values()).filter(t=>
vendor: 11,574 bytes, line 621
621t.required&&!t.supported)}function Eg(r,e){let t=mw(r,e);if(t.length)throw new Error(`Unsupported required glTF extensions: ${t.map(n=>n.extensionName).join(", ")}`)}function gw(r,e,t,n){if(r!=="KHR_texture_basisu"||!n)return e;let A=Bw(t).find(h=>h===null||!n.isTextureFormatSupported(h));return A===void 0?e:{supportLevel:"none",comment:A===null?`The ${n.type} device cannot use a BasisU texture whose transcoded GPU format is missing.`:`The ${n.type} device does not support the transcoded BasisU texture format '${A}'.`}}function Bw(r){let e=[];for(let t of r.textures||[]){let n=t?.source?.image;if(!n?.compressed)continue;let i=Array.isArray(n.data)?n.data[0]:Array.isArray(n.mipmaps)?n.mipmaps[0]:void 0;e.push(i?.textureFormat??null)}return e}function Il(r){return bg[r]||null}function Cw(r){let e=r,t=new Set;return ZA(t,r.extensionsUsed),ZA(t,r.extensionsRequired),ZA(t,e.extensionsRemoved),ZA(t,Object.keys(r.extensions||{})),(e.lights?.length||(r.nodes||[]).some(n=>"light"in n))&&t.add("KHR_lights_punctual"),(r.materials||[]).some(n=>{let i=n;return i.unlit||i.extensions?.KHR_materials_unlit})&&t.add("KHR_materials_unlit"),t}function ZA(r,e=[]){for(let t of e)r.add(t)}function Tw(r){return r==="built-in"||r==="parsed-and-wired"}function _g(r){let e=r.animations||[],t=new Map,n=new Map;return e.flatMap((i,A)=>{let h=i.name||`Animation-${A}`,p=new Map,B=i.channels.flatMap(({sampler:T,target:y})=>{let E=Iw(r,y),I=`${T}:${E??0}`,S=p.get(I);if(!S){let N=i.samplers[T];if(!N)throw new Error(`Cannot find animation sampler ${T}`);let{input:Q,interpolation:z="LINEAR",output:j}=N,re=Dw(r.accessors[Q],t),ie=Pw(r.accessors[j],n);S={input:re,interpolation:z,output:E!==void 0?ww(ie,re.length,z,E):ie},p.set(I,S)}let O=yw(r,y,S);return O?[O]:[]});return B.length?[{name:h,channels:B}]:[]})}function yw(r,e,t){if(e.path==="pointer")return bw(r,e,t);let n=xg(e.path);if(!n)return null;let i=r.nodes[e.node??0];if(!i)throw new Error(`Cannot find animation target ${e.node}`);return{type:"node",sampler:t,targetNodeId:i.id,path:n}}function bw(r,e,t){let n=e.extensions?.KHR_animation_pointer?.pointer;if(typeof n!="string"||!n.startsWith("/"))return ht.warn("KHR_animation_pointer channel is missing a valid JSON pointer and will be skipped")(),null;let i=Rw(n);switch(i[0]){case"nodes":return xw(r,i,t,n);case"materials":return Mw(r,i,t,n);case"cameras":return Ew(r,i,t,n);case"extensions":if(i[1]==="KHR_lights_punctual")return _w(r,i,t,n);break;default:break}return vn(n,`top-level target "${i[0]}" has no runtime animation mapping`),null}function Ew(r,e,t,n){let i=Number(e[1]),A=r.cameras?.[i],h=e[2],p=e[3],B=["aspectRatio","yfov","znear","zfar"],T=["xmag","ymag","znear","zfar"];return e.length!==4||!Number.isInteger(i)||!A||h!=="perspective"&&h!=="orthographic"||A.type!==h||!(h==="perspective"?B:T).includes(p)?(vn(n,"camera pointers must target a supported projection property"),null):{type:"camera",sampler:t,pointer:n,targetCameraIndex:i,projection:h,property:p}}function _w(r,e,t,n){let i=Number(e[3]),A=r.lights||r.extensions?.KHR_lights_punctual?.lights,h=e[4]==="spot",p=h?e[5]:e[4],B=!h&&p==="color"?e[5]:void 0,T=["color","intensity","range","innerConeAngle","outerConeAngle"],y=h||B!==void 0?6:5;return e[2]!=="lights"||e.length!==y||!Number.isInteger(i)||!Array.isArray(A)||!A[i]||!T.includes(p)||h&&p!=="innerConeAngle"&&p!=="outerConeAngle"||B!==void 0&&(!/^[0-2]$/.test(B)||p!=="color")?(vn(n,"punctual-light pointers must target supported typed light properties"),null):P({type:"light",sampler:t,pointer:n,targetLightIndex:i,property:p},B===void 0?{}:{component:Number(B)})}function xw(r,e,t,n){let i=e.length===5&&e[2]==="extensions"&&e[3]==="KHR_node_visibility"&&e[4]==="visible";if(e.length!==3&&!i)return vn(n,"node pointers must target transforms, morph weights, or KHR_node_visibility.visible"),null;let A=Number(e[1]),h=r.nodes[A];if(!Number.isInteger(A)||!h)return ht.warn(`KHR_animation_pointer target ${n} references a missing node and will be skipped`)(),null;if(i&&t.interpolation!=="STEP")return vn(n,"boolean visibility animation requires STEP interpolation"),null;let p=i?"visibility":xg(e[2]);return p?{type:"node",sampler:t,targetNodeId:h.id,path:p}:(vn(n,`node property "${e[2]}" has no runtime animation mapping`),null)}function Iw(r,e){let t;if(e.path==="weights")t=e.node;else if(e.path==="pointer"){let A=e.extensions?.KHR_animation_pointer?.pointer,h=typeof A=="string"?/^\/nodes\/(\d+)\/weights$/.exec(A):null;if(!h)return;t=Number(h[1])}else return;let n=r.nodes[t??0],i=typeof n?.mesh=="number"?r.meshes[n.mesh]:n?.mesh;return n?.weights?.length||i?.weights?.length||i?.primitives?.[0]?.targets?.length||1}function ww(r,e,t,n){let i=t==="CUBICSPLINE"?3:1,A=r.length/(Math.max(e,1)*i),h=n>1?n:Number.isInteger(A)&&A>1?A:n;if(h<=1)return r;let p=r.flat(),B=[];for(let T=0;T<p.length;T+=h)B.push(p.slice(T,T+h));return B}function Mw(r,e,t,n){if(e.length<3)return vn(n,"material pointers must include a material index and target property path"),null;let i=Number(e[1]),A=r.materials[i];if(!Number.isInteger(i)||!A)return ht.warn(`KHR_animation_pointer target ${n} references a missing material and will be skipped`)(),null;let h=Sw(A,e.slice(2));return"reason"in h?(vn(n,h.reason),null):P({sampler:t,pointer:n,targetMaterialIndex:i},h)}function xg(r){switch(r){case"translation":case"rotation":case"scale":case"weights":return r;default:return null}}function Sw(r,e){let t=vw(r,e);if(!("reason"in t)||t.reason!=="not-a-texture-transform-target")return t;switch(e.join("/")){case"pbrMetallicRoughness/baseColorFactor":return r.pbrMetallicRoughness?{type:"material",property:"baseColorFactor"}:{reason:it(e)};case"pbrMetallicRoughness/metallicFactor":return r.pbrMetallicRoughness?{type:"material",property:"metallicRoughnessValues",component:0}:{reason:it(e)};case"pbrMetallicRoughness/roughnessFactor":return r.pbrMetallicRoughness?{type:"material",property:"metallicRoughnessValues",component:1}:{reason:it(e)};case"normalTexture/scale":return r.normalTexture?{type:"material",property:"normalScale"}:{reason:it(e)};case"occlusionTexture/strength":return r.occlusionTexture?{type:"material",property:"occlusionStrength"}:{reason:it(e)};case"emissiveFactor":return{type:"material",property:"emissiveFactor"};case"alphaCutoff":return{type:"material",property:"alphaCutoff"};case"extensions/KHR_materials_specular/specularFactor":return r.extensions?.KHR_materials_specular?{type:"material",property:"specularIntensityFactor"}:{reason:it(e)};case"extensions/KHR_materials_specular/specularColorFactor":return r.extensions?.KHR_materials_specular?{type:"material",property:"specularColorFactor"}:{reason:it(e)};case"extensions/KHR_materials_ior/ior":return r.extensions?.KHR_materials_ior?{type:"material",property:"ior"}:{reason:it(e)};case"extensions/EXT_materials_bump/bumpFactor":return r.extensions?.EXT_materials_bump?{type:"material",property:"bumpFactor"}:{reason:it(e)};case"extensions/KHR_materials_diffuse_transmission/diffuseTransmissionFactor":return r.extensions?.KHR_materials_diffuse_transmission?{type:"material",property:"diffuseTransmissionFactor"}:{reason:it(e)};case"extensions/KHR_materials_diffuse_transmission/diffuseTransmissionColorFactor":return r.extensions?.KHR_materials_diffuse_transmission?{type:"material",property:"diffuseTransmissionColorFactor"}:{reason:it(e)};case"extensions/KHR_materials_volume_scatter/multiscatterColorFactor":case"extensions/KHR_materials_volume_scatter/multiscatterColor":return r.extensions?.KHR_materials_volume_scatter?{type:"material",property:"multiscatterColorFactor"}:{reason:it(e)};case"extensions/KHR_materials_volume_scatter/scatterAnisotropy":return r.extensions?.KHR_materials_volume_scatter?{type:"material",property:"scatterAnisotropy"}:{reason:it(e)};case"extensions/KHR_materials_dispersion/dispersion":return r.extensions?.KHR_materials_dispersion?{type:"material",property:"dispersion"}:{reason:it(e)};case"extensions/KHR_materials_transmission/transmissionFactor":return r.extensions?.KHR_materials_transmission?{type:"material",property:"transmissionFactor"}:{reason:it(e)};case"extensions/KHR_materials_volume/thicknessFactor":return r.extensions?.KHR_materials_volume?{type:"material",property:"thicknessFactor"}:{reason:it(e)};case"extensions/KHR_materials_volume/attenuationDistance":return r.extensions?.KHR_materials_volume?{type:"material",property:"attenuationDistance"}:{reason:it(e)};case"extensions/KHR_materials_volume/attenuationColor":return r.extensions?.KHR_materials_volume?{type:"material",property:"attenuationColor"}:{reason:it(e)};case"extensions/KHR_materials_clearcoat/clearcoatFactor":return r.extensions?.KHR_materials_clearcoat?{type:"material",property:"clearcoatFactor"}:{reason:it(e)};case"extensions/KHR_materials_clearcoat/clearcoatRoughnessFactor":return r.extensions?.KHR_materials_clearcoat?{type:"material",property:"clearcoatRoughnessFactor"}:{reason:it(e)};case"extensions/KHR_materials_sheen/sheenColorFactor":return r.extensions?.KHR_materials_sheen?{type:"material",property:"sheenColorFactor"}:{reason:it(e)};case"extensions/KHR_materials_sheen/sheenRoughnessFactor":return r.extensions?.KHR_materials_sheen?{type:"material",property:"sheenRoughnessFactor"}:{reason:it(e)};case"extensions/KHR_materials_iridescence/iridescenceFactor":return r.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceFactor"}:{reason:it(e)};case"extensions/KHR_materials_iridescence/iridescenceIor":return r.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceIor"}:{reason:it(e)};case"extensions/KHR_materials_iridescence/iridescenceThicknessMinimum":return r.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceThicknessRange",component:0}:{reason:it(e)};case"extensions/KHR_materials_iridescence/iridescenceThicknessMaximum":return r.extensions?.KHR_materials_iridescence?{type:"material",property:"iridescenceThicknessRange",component:1}:{reason:it(e)};case"extensions/KHR_materials_anisotropy/anisotropyStrength":return r.extensions?.KHR_materials_anisotropy?{type:"material",property:"anisotropyStrength"}:{reason:it(e)};case"extensions/KHR_materials_anisotropy/anisotropyRotation":return r.extensions?.KHR_materials_anisotropy?{type:"material",property:"anisotropyRotation"}:{reason:it(e)};case"extensions/KHR_materials_emissive_strength/emissiveStrength":return r.extensions?.KHR_materials_emissive_strength?{type:"material",property:"emissiveStrength"}:{reason:it(e)};default:return{reason:it(e)}}}function vw(r,e){let t=e.lastIndexOf("extensions");if(t<0||e[t+1]!=="KHR_texture_transform"||t<1)return{reason:"not-a-texture-transform-target"};let n=ug(e.slice(0,t));if(!n)return{reason:Lw(e.slice(0,t))};let i=Fw(r,n.pathSegments);if(!i)return{reason:`texture-transform target "${e.slice(0,t).join("/")}" does not exist on the referenced material`};let A=e[t+2];if(A==="texCoord")return{reason:"animated KHR_texture_transform.texCoord is unsupported because texCoord selection is structural, not a runtime float/vector update"};if(A!=="offset"&&A!=="rotation"&&A!=="scale")return{reason:`KHR_texture_transform property "${A}" is not animatable; supported properties are offset, rotation, and scale`};let h=e[t+3];if(e.length>t+4)return{reason:`KHR_texture_transform.${A} does not support nested property paths`};let p;if(h!==void 0){if(p=Number(h),A==="rotation")return{reason:"KHR_texture_transform.rotation does not support component indices"};if(!Number.isInteger(p)||p<0||p>1)return{reason:`KHR_texture_transform.${A} component index "${h}
621" is invalid; only 0 and 1 are supported`}}return{type:"textureTransform",textureSlot:n.slot,path:A,component:p,baseTransform:XA(i)}}function Fw(r,e){let t=r;for(let n of e)if(t=t?.[n],!t)return null;return t}function Rw(r){return r.slice(1).split("/").map(e=>e.replace(/~1/g,"/").replace(/~0/g,"~"))}function it(r){let e=Ig(r);if(e){let t=Il(e);if(t?.supportLevel==="none")return`${e} is referenced by this pointer, but ${t.comment.charAt(0).toLowerCase()}${t.comment.slice(1)}`}return`no runtime target exists for material property "${r.join("/")}"`}function Lw(r){let e=Ig(r);if(e){let t=Il(e);if(t?.supportLevel==="none")return`${e} is referenced by this pointer, but ${t.comment.charAt(0).toLowerCase()}${t.comment.slice(1)}`}return`texture-transform target "${r.join("/")}" has no runtime texture-slot mapping`}function Ig(r){let e=r.indexOf("extensions"),t=r[e+1];return e>=0&&t?t:null}function vn(r,e){ht.warn(`KHR_animation_pointer target ${r} will be skipped because ${e}`)()}function Dw(r,e){if(e.has(r))return e.get(r);let{value:t,components:n}=wg(r);$A(n===1,"accessorToJsArray1D must have exactly 1 component");let i=Array.from(t);return e.set(r,i),i}function Pw(r,e){if(e.has(r))return e.get(r);let{value:t,components:n}=wg(r);$A(n>=1,"accessorToJsArray2D must have at least 1 component");let i=[];for(let A=0;A<t.length;A+=n)i.push(Array.from(t.slice(A,A+n)));return e.set(r,i),i}function wg(r){if(r.value)return{value:r.value,components:r.components};let e=r.bufferView?.data;$A(e!==void 0),$A(r.componentType===5126);let t=r.type==="SCALAR"?1:Number(r.type.slice(3));return{value:new Float32Array(e.buffer,e.byteOffset+(r.byteOffset||0),r.count*t),components:t}}function $A(r,e){if(!r)throw new Error(e)}var ea=class{variants;names;activeVariant=null;modelNodes;constructor(e,t){let n=e.extensions?.KHR_materials_variants?.variants||[];this.variants=n.map((A,h)=>({name:A.name||`Variant-${h}`,index:h})),this.names=this.variants.map(A=>A.name);let i=new Set;for(let A of t)A.preorderTraversal(h=>{h instanceof dr&&h.userData.gltfMaterialVariants&&i.add(h)});this.modelNodes=Array.from(i)}selectVariant(e){let t=this.variants.find(n=>n.name===e);if(!t)throw new Error(`Unknown glTF material variant: ${e}`);for(let n of this.modelNodes){let i=n.userData.gltfMaterialVariants,A=i.mappings.get(t.index);n.model.setMaterial(A?.material||i.defaultMaterial),n.model.setParameters(A?.parameters||i.defaultParameters)}this.activeVariant=e}resetVariant(){for(let e of this.modelNodes){let t=e.userData.gltfMaterialVariants;e.model.setMaterial(t.defaultMaterial),e.model.setParameters(t.defaultParameters)}this.activeVariant=null}};function wl(r,e,t){t?.strictExtensions&&Eg(e,r);let{scenes:n,materials:i,gltfMeshIdToNodeMap:A,gltfNodeIdToNodeMap:h,gltfNodeIndexToNodeMap:p,generatedTextures:B}=Bg(r,e,t),T=_g(e),E=(e.lights||e.extensions?.KHR_lights_punctual?.lights||[]).map(W=>P(P(P({},W),Array.isArray(W.color)?{color:[...W.color]}:{}),W.spot?{spot:P({},W.spot)}:{})),I=(e.cameras||[]).map(W=>{let H=P({},W);return W.perspective&&(H.perspective=P({},W.perspective)),W.orthographic&&(H.orthographic=P({},W.orthographic)),H}),S={useByteColors:t?.useByteColors??!0,nodeVisibility:h,lightDefinitions:E},O=El(e,S),N=()=>{O.splice(0,O.length,...El(e,S))},Q=new WA({onVisibilityChange:N,cameras:I,lightDefinitions:E,onLightChange:N,animations:T,gltfNodeIdToNodeMap:h,materials:i}),z=new ea(e,n),j=xl(e,r),re=n.map(W=>Mg(W.getBounds())),ie=Ow(re),ce=new qA({gltf:e,scenes:n,gltfNodeIndexToNodeMap:p});Q.setUpdateHandler(()=>ce.update());let Ae=!1;return{scenes:n,materials:i,variants:z,cameras:I,animator:Q,animations:T,lights:O,extensionSupport:j,sceneBounds:re,modelBounds:ie,gltfMeshIdToNodeMap:A,gltfNodeIdToNodeMap:h,gltfNodeIndexToNodeMap:p,skins:ce,gltf:e,destroy:()=>{if(Ae)return;Ae=!0;let W=new Set([...n,...A.values(),...h.values()]),H=new Set,U=new Set(i);for(let fe of W)fe.preorderTraversal(_e=>{_e instanceof dr&&(H.add(_e),_e.model?.material&&U.add(_e.model.material))});for(let fe of H)fe.destroy();for(let fe of W)fe.destroy();for(let fe of U)fe.destroy();for(let fe of B)fe.destroy();B.clear()}}}function Mg(r){if(!r)return{bounds:null,center:[0,0,0],size:[0,0,0],radius:.5,recommendedOrbitDistance:1};let e=[[r[0][0],r[0][1],r[0][2]],[r[1][0],r[1][1],r[1][2]]],t=[e[1][0]-e[0][0],e[1][1]-e[0][1],e[1][2]-e[0][2]],n=[e[0][0]+t[0]*.5,e[0][1]+t[1]*.5,e[0][2]+t[2]*.5],i=Math.max(t[0],t[1],t[2])*.5,A=Math.max(.5*Math.hypot(t[0],t[1],t[2]),.001);return{bounds:e,center:n,size:t,radius:A,recommendedOrbitDistance:Math.max(Math.max(i,.001)/Math.tan(Math.PI/6)*1.15,A*1.1)}}function Ow(r){let e=null;
vendor: 17,562 bytes, line 621
621for(let t of r)if(t.bounds){if(!e){e=[[...t.bounds[0]],[...t.bounds[1]]];continue}for(let n=0;n<3;n++)e[0][n]=Math.min(e[0][n],t.bounds[0][n]),e[1][n]=Math.max(e[1][n],t.bounds[1][n])}return Mg(e)}var Ml={};pt(Ml,{createExtMeshFeatures:()=>Zw,decode:()=>zw,encode:()=>Xw,name:()=>Kw});function Rt(r,e){if(!r)throw new Error(e||"assert failed: gltf")}var ta={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ra={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var Sg=["SCALAR","VEC2","VEC3","VEC4"],Nw=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],Gw=new Map(Nw),Uw={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},kw={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Hw={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function na(r){return Sg[r-1]||Sg[0]}function Fn(r){let e=Gw.get(r.constructor);if(!e)throw new Error("Illegal typed array");return e}function zs(r,e){let t=Hw[r.componentType],n=Uw[r.type],i=kw[r.componentType],A=r.count*n,h=r.count*n*i;Rt(h>=0&&h<=e.byteLength);let p=ra[r.componentType],B=ta[r.type];return{ArrayType:t,length:A,byteLength:h,componentByteSize:p,numberOfComponentsInElement:B}}function vg(r,e,t){let n=r.bufferViews[t];Rt(n);let i=n.buffer,A=e[i];Rt(A);let h=(n.byteOffset||0)+A.byteOffset;return new Uint8Array(A.arrayBuffer,h,n.byteLength)}function Fg(r,e,t){let n=typeof t=="number"?r.accessors?.[t]:t;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(t)}`);let i=r.bufferViews?.[n.bufferView||0];if(!i)throw new Error(`No gltf buffer view for accessor ${i}`);let{arrayBuffer:A,byteOffset:h}=e[i.buffer],p=(h||0)+(n.byteOffset||0)+(i.byteOffset||0),{ArrayType:B,length:T,componentByteSize:y,numberOfComponentsInElement:E}=zs(n,i),I=y*E,S=i.byteStride||I;if(typeof i.byteStride>"u"||i.byteStride===I)return new B(A,p,T);let O=new B(T);for(let N=0;N<n.count;N++){let Q=new B(A,p+N*S,E);O.set(Q,N*E)}return O}function Vw(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var $e=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||Vw(),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 t=this.getUsedExtensions().find(i=>i===e),n=this.getRequiredExtensions().find(i=>i===e);return typeof t=="string"||typeof n=="string"}getExtension(e){let t=this.getUsedExtensions().find(i=>i===e),n=this.json.extensions||{};return t?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,t){return(e.extensions||{})[t]}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,t){if(typeof t=="object")return t;let n=this.json[e]&&this.json[e][t];if(!n)throw new Error(`glTF file error: Could not find ${e}[${t}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);let t=e.buffer,n=this.gltf.buffers[t];Rt(n);let i=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,i,e.byteLength)}getTypedArrayForAccessor(e){let t=this.getAccessor(e);return Fg(this.gltf.json,this.gltf.buffers,t)}getTypedArrayForImageData(e){e=this.getAccessor(e);let t=this.getBufferView(e.bufferView),i=this.getBuffer(t.buffer).data,A=t.byteOffset||0;return new Uint8Array(i,A,t.byteLength)}addApplicationData(e,t){return this.json[e]=t,this}addExtraData(e,t){return this.json.extras=this.json.extras||{},this.json.extras[e]=t,this}addObjectExtension(e,t,n){return e.extensions=e.extensions||{},e.extensions[t]=n,this.registerUsedExtension(t),this}setObjectExtension(e,t,n){let i=e.extensions||{};i[t]=n}removeObjectExtension(e,t){let n=e?.extensions||{};if(n[t]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let i=this.json.extensionsRemoved;i.includes(t)||i.push(t)}delete n[t]}addExtension(e,t={}){return Rt(t),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=t,this.registerUsedExtension(e),t}addRequiredExtension(e,t={}){return Rt(t),this.addExtension(e,t),this.registerRequiredExtension(e),t}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(t=>t===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(t=>t===e)||this.json.extensionsRequired.push(e)}removeExtension(e){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let t=this.json.extensionsRemoved;t.includes(e)||t.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:t}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:t}),this.json.scenes.length-1}addNode(e){let{meshIndex:t,matrix:n}=e;this.json.nodes=this.json.nodes||[];let i={mesh:t};return n&&(i.matrix=n),this.json.nodes.push(i),this.json.nodes.length-1}addMesh(e){let{attributes:t,indices:n,material:i,mode:A=4}=e,p={primitives:[{attributes:this._addAttributes(t),mode:A}]};if(n){let B=this._addIndices(n);p.primitives[0].indices=B}return Number.isFinite(i)&&(p.primitives[0].material=i),this.json.meshes=this.json.meshes||[],this.json.meshes.push(p),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,t){let n=Ko(e),i=t||n?.mimeType,h={bufferView:this.addBufferView(e),mimeType:i};return this.json.images=this.json.images||[],this.json.images.push(h),this.json.images.length-1}addBufferView(e,t=0,n=this.byteLength){let i=e.byteLength;Rt(Number.isFinite(i)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let A={buffer:t,byteOffset:n,byteLength:i};return this.byteLength+=Er(i,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(A),this.json.bufferViews.length-1}addAccessor(e,t){let n={bufferView:e,type:na(t.size),componentType:t.componentType,count:t.count,max:t.max,min:t.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,t={size:3}){let n=this.addBufferView(e),i={min:t.min,max:t.max};(!i.min||!i.max)&&(i=this._getAccessorMinMax(e,t.size));let A={size:t.size,componentType:Fn(e),count:Math.round(e.length/t.size),min:i.min,max:i.max};return this.addAccessor(n,Object.assign(A,t))}addTexture(e){let{imageIndex:t}=e,n={source:t};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,t=new ArrayBuffer(e),n=new Uint8Array(t),i=0;for(let A of this.sourceBuffers||[])i=Vo(A,n,i);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=t,this.sourceBuffers=[t],this.gltf.buffers=[{arrayBuffer:t,byteOffset:0,byteLength:t.byteLength}]}_removeStringFromArray(e,t){let n=!0;for(;n;){let i=e.indexOf(t);i>-1?e.splice(i,1):n=!1}}_addAttributes(e={}){let t={};for(let n in e){let i=e[n],A=this._getGltfAttributeName(n),h=this.addBinaryBuffer(i.value,i);t[A]=h}return t}_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,t){let n={min:null,max:null};if(e.length<t)return n;n.min=[],n.max=[];let i=e.subarray(0,t);for(let A of i)n.min.push(A),n.max.push(A);for(let A=t;A<e.length;A+=t)for(let h=0;h<t;h++)n.min[0+h]=Math.min(n.min[0+h],e[A+h]),n.max[0+h]=Math.max(n.max[0+h],e[A+h]);return n}};function Rg(r){return(r%1+1)%1}var Lg={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},Jw={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},Dg={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function oo(r,e){return Dg[e]*Lg[r]}function Xs(r,e,t,n){if(t!=="UINT8"&&t!=="UINT16"&&t!=="UINT32"&&t!=="UINT64")return null;let i=r.getTypedArrayForBufferView(e),A=Ys(i,"SCALAR",t,n+1);return A instanceof BigInt64Array||A instanceof BigUint64Array?null:A}function Ys(r,e,t,n=1){let i=Lg[e],A=Jw[t],h=Dg[t],p=n*i,B=p*h,T=r.buffer,y=r.byteOffset;return y%h!==0&&(T=new Uint8Array(T).slice(y,y+B).buffer,y=0),new A(ir(T),y,p)}function Ws(r,e,t){let n=`TEXCOORD_${e.texCoord||0}`,i=t.attributes[n],A=r.getTypedArrayForAccessor(i),h=r.gltf.json,p=e.index,B=h.textures?.[p]?.source;if(typeof B<"u"){let T=h.images?.[B]?.mimeType,y=r.gltf.images?.[B];if(y&&typeof y.width<"u"){let E=[];for(let I=0;I<A.length;I+=2){let S=jw(y,T,A,I,e.channels);E.push(S)}return E}}return[]}function sa(r,e,t,n,i){if(!t?.length)return;let A=[];for(let y of t){let E=n.findIndex(I=>I===y);E===-1&&(E=n.push(y)-1),A.push(E)}let h=new Uint32Array(A),p=r.gltf.buffers.push({arrayBuffer:h.buffer,byteOffset:h.byteOffset,byteLength:h.byteLength})-1,B=r.addBufferView(h,p,0),T=r.addAccessor(B,{size:1,componentType:Fn(h),count:h.length});i.attributes[e]=T}function jw(r,e,t,n,i=[0]){let A={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},h=t[n],p=t[n+1],B=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(B=4);let T=Qw(h,p,r,B),y=0;for(let E of i){let I=typeof E=="number"?Object.values(A)[E]:A[E],S=T+I.offset,O=Qo(r);if(O.data.length<=S)throw new Error(`${O.data.length} <= ${S}`);let N=O.data[S];y|=N<<I.shift}return y}function Qw(r,e,t,n=1){let i=t.width,A=Rg(r)*(i-1),h=Math.round(A),p=t.height,B=Rg(e)*(p-1),T=Math.round(B),y=t.components?t.components:n;return(T*i+h)*y}function ia(r,e,t,n,i){let A=[];for(let h=0;h<e;h++){let p=t[h],B=t[h+1]-t[h];if(B+p>n)break;let T=p/i,y=B/i;A.push(r.slice(T,T+y))}return A}function oa(r,e,t){let n=[];for(let i=0;i<e;i++){let A=i*t;n.push(r.slice(A,A+t))}return n}function Aa(r,e,t,n){if(t)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let i=[],A=new TextDecoder("utf8"),h=0;for(let p=0;p<r;p++){let B=n[p+1]-n[p];if(B+h<=e.length){let T=e.subarray(h,B+h),y=A.decode(T);i.push(y),h+=B}}return i}return[]}var qs="EXT_mesh_features",Kw=qs;function zw(r,e){return Z(this,null,function*(){let t=new $e(r);Yw(t,e)})}function Xw(r,e){let t=new $e(r);return qw(t,e),t.createBinaryChunk(),t.gltf}function Yw(r,e){let t=r.gltf.json;if(t.meshes)for(let n of t.meshes)for(let i of n.primitives)Ww(r,i,e)}function Ww(r,e,t){if(!t?.gltf?.loadBuffers)return;let i=e.extensions?.[qs]?.featureIds;if(i)for(let A of i){let h;if(typeof A.attribute<"u"){let p=`_FEATURE_ID_${A.attribute}`,B=e.attributes[p];h=r.getTypedArrayForAccessor(B)}else typeof A.texture<"u"&&t?.gltf?.loadImages?h=Ws(r,A.texture,e):h=[];A.data=h}}function qw(r,e){let t=r.gltf.json.meshes;if(t)for(let n of t)for(let i of n.primitives)$w(r,i)}function Zw(r,e,t,n){e.extensions||(e.extensions={});let i=e.extensions[qs];i||(i={featureIds:[]},e.extensions[qs]=i);let{featureIds:A}=i,h={featureCount:t.length,propertyTable:n,data:t};A.push(h),r.addObjectExtension(e,qs,i)}function $w(r,e){let t=e.extensions?.[qs];if(!t)return;let n=t.featureIds;n.forEach((i,A)=>{if(i.data){let{accessorKey:h,index:p}=eM(e.attributes),B=new Uint32Array(i.data);n[A]={featureCount:B.length,propertyTable:i.propertyTable,attribute:p},r.gltf.buffers.push({arrayBuffer:B.buffer,byteOffset:B.byteOffset,byteLength:B.byteLength});let T=r.addBufferView(B),y=r.addAccessor(T,{size:1,componentType:Fn(B),count:B.length});e.attributes[h]=y}})}function eM(r){let e="_FEATURE_ID_",t=Object.keys(r).filter(A=>A.indexOf(e)===0),n=-1;for(let A of t){let h=Number(A.substring(e.length));h>n&&(n=h)}return n++,{accessorKey:`${e}${n}`,index:n}}var Fl={};pt(Fl,{createExtStructuralMetadata:()=>bM,decode:()=>rM,encode:()=>nM,name:()=>tM});var Zs="EXT_structural_metadata",tM=Zs;function rM(r,e){return Z(this,null,function*(){let t=new $e(r);sM(t,e)})}function nM(r,e){let t=new $e(r);return TM(t,e),t.createBinaryChunk(),t.gltf}function sM(r,e){if(!e.gltf?.loadBuffers)return;let t=r.getExtension(Zs);t&&(e.gltf?.loadImages&&iM(r,t),oM(r,t))}function iM(r,e){let t=e.propertyTextures,n=r.gltf.json;if(t&&n.meshes)for(let i of n.meshes)for(let A of i.primitives)aM(r,t,A,e)}function oM(r,e){let t=e.schema;if(!t)return;let n=t.classes,i=e.propertyTables;if(n&&i)for(let A in n){let h=AM(i,A);h&&lM(r,t,h)}}function AM(r,e){for(let t of r)if(t.class===e)return t;return null}function aM(r,e,t,n){if(!e)return;let A=t.extensions?.[Zs]?.propertyTextures;if(A)for(let h of A){let p=e[h];cM(r,p,t,n)}}function cM(r,e,t,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let i=e.class;for(let A in e.properties){let h=`${i}_${A}`,p=e.properties?.[A];if(!p)continue;p.data||(p.data=[]);let B=p.data,T=Ws(r,p,t);T!==null&&(sa(r,h,T,B,t),p.data=B,n.dataAttributeNames.push(h))}}function lM(r,e,t){let n=e.classes?.[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${t.class}`);let i=t.count;for(let A in n.properties){let h=n.properties[A],p=t.properties?.[A];if(p){let B=uM(r,e,h,i,p);p.data=B}}}function uM(r,e,t,n,i){let A=[],h=i.values,p=r.getTypedArrayForBufferView(h),B=fM(r,t,i,n),T=hM(r,i,n);switch(t.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{A=dM(t,n,p,B);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${t.type}`);case"STRING":{A=Aa(n,p,B,T);break}case"ENUM":{A=pM(e,t,n,p,B);break}default:throw new Error(`Unknown classProperty type ${t.type}`)}return A}function fM(r,e,t,n){return e.array&&typeof e.count>"u"&&typeof t.arrayOffsets<"u"?Xs(r,t.arrayOffsets,t.arrayOffsetType||"UINT32",n):null}function hM(r,e,t){return typeof e.stringOffsets<"u"?Xs(r,e.stringOffsets,e.stringOffsetType||"UINT32",t):null}function dM(r,e,t,n){let i=r.array,A=r.count,h=oo(r.type,r.componentType),p=t.byteLength/h,B;return r.componentType?B=Ys(t,r.type,r.componentType,p):B=t,i?n?ia(B,e,n,t.length,h):A?oa(B,e,A):[]:B}function pM(r,e,t,n,i){let A=e.enumType;if(!A)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let h=r.enums?.[A];if(!h)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${A}`);let p=h.valueType||"UINT16",B=oo(e.type,p),T=n.byteLength/B,y=Ys(n,e.type,p,T);if(y||(y=n),e.array){if(i)return mM({valuesData:y,numberOfElements:t,arrayOffsets:i,valuesDataBytesLength:n.length,elementSize:B,enumEntry:h});let E=e.count;return E?gM(y,t,E,h):[]}return vl(y,0,t,h)}function mM(r){let{valuesData:e,numberOfElements:t,arrayOffsets:n,valuesDataBytesLength:i,elementSize:A,enumEntry:h}=r,p=[];for(let B=0;B<t;B++){let T=n[B],y=n[B+1]-n[B];if(y+T>i)break;let E=T/A,I=y/A,S=vl(e,E,I,h);p.push(S)}return p}function gM(r,e,t,n){let i=[];for(let A=0;A<e;A++){let h=t*A,p=vl(r,h,t,n);i.push(p)}return i}function vl(r,e,t,n){let i=[];for(let A=0;A<t;A++)if(r instanceof BigInt64Array||r instanceof BigUint64Array)i.push("");else{let h=r[e+A],p=BM(n,h);p?i.push(p.name):i.push("")}return i}function BM(r,e){for(let t of r.values)if(t.value===e)return t;return null}var CM="schemaClassId";function TM(r,e){let t=r.getExtension(Zs);if(t&&t.propertyTables)for(let n of t.propertyTables){let i=n.class,A=t.schema?.classes?.[i];n.properties&&A&&yM(n,A,r)}}function yM(r,e,t){for(let n in r.properties){let i=r.properties[n].data;if(i){let A=e.properties[n];if(A){let h=xM(i,A,t);r.properties[n]=h}}}}function bM(r,e,t=CM){let n=r.getExtension(Zs);n||(n=r.addExtension(Zs)),n.schema=EM(e,t,n.schema);let i=_M(e,t,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(i)-1}function EM(r,e,t){let n=t??{id:"schema_id"},i={properties:{}};for(let A of r){let h={type:A.elementType,componentType:A.componentType};i.properties[A.name]=h}return n.classes={},n.classes[e]=i,n}function _M(r,e,t){let n={class:e,count:0},i=0,A=t.classes?.[e];
621for(let h of r){if(i===0&&(i=h.values.length),i!==h.values.length&&h.values.length)throw new Error("Illegal values in attributes");A?.properties[h.name]&&(n.properties||(n.properties={}),n.properties[h.name]={values:0,data:h.values})}return n.count=i,n}function xM(r,e,t){let n={values:0};if(e.type==="STRING"){let{stringData:i,stringOffsets:A}=MM(r);n.stringOffsets=Sl(A,t),n.values=Sl(i,t)}else if(e.type==="SCALAR"&&e.componentType){let i=wM(r,e.componentType);n.values=Sl(i,t)}return n}var IM={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function wM(r,e){let t=[];for(let i of r)t.push(Number(i));let n=IM[e];if(!n)throw new Error("Illegal component type");return new n(t)}function MM(r){let e=new TextEncoder,t=[],n=0;for(let B of r){let T=e.encode(B);n+=T.length,t.push(T)}let i=new Uint8Array(n),A=[],h=0;for(let B of t)i.set(B,h),A.push(h),h+=B.length;A.push(h);let p=new Uint32Array(A);return{stringData:i,stringOffsets:p}}function Sl(r,e){return e.gltf.buffers.push({arrayBuffer:ir(r.buffer),byteOffset:r.byteOffset,byteLength:r.byteLength}),e.addBufferView(r)}var Rl={};pt(Rl,{decode:()=>vM,name:()=>SM});var Pg="EXT_feature_metadata",SM=Pg;function vM(r,e){return Z(this,null,function*(){let t=new $e(r);FM(t,e)})}function FM(r,e){if(!e.gltf?.loadBuffers)return;let t=r.getExtension(Pg);t&&(e.gltf?.loadImages&&RM(r,t),LM(r,t))}function RM(r,e){let t=e.schema;if(!t)return;let n=t.classes,{featureTextures:i}=e;if(n&&i)for(let A in n){let h=n[A],p=PM(i,A);p&&NM(r,p,h)}}function LM(r,e){let t=e.schema;if(!t)return;let n=t.classes,i=e.featureTables;if(n&&i)for(let A in n){let h=DM(i,A);h&&OM(r,t,h)}}function DM(r,e){for(let t in r){let n=r[t];if(n.class===e)return n}return null}function PM(r,e){for(let t in r){let n=r[t];if(n.class===e)return n}return null}function OM(r,e,t){if(!t.class)return;let n=e.classes?.[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${t.class}`);let i=t.count;for(let A in n.properties){let h=n.properties[A],p=t.properties?.[A];if(p){let B=GM(r,e,h,i,p);p.data=B}}}function NM(r,e,t){let n=e.class;for(let i in t.properties){let A=e?.properties?.[i];if(A){let h=JM(r,A,n);A.data=h}}}function GM(r,e,t,n,i){let A=[],h=i.bufferView,p=r.getTypedArrayForBufferView(h),B=UM(r,t,i,n),T=kM(r,t,i,n);return t.type==="STRING"||t.componentType==="STRING"?A=Aa(n,p,B,T):HM(t)&&(A=VM(t,n,p,B)),A}function UM(r,e,t,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof t.arrayOffsetBufferView<"u"?Xs(r,t.arrayOffsetBufferView,t.offsetType||"UINT32",n):null}function kM(r,e,t,n){return typeof t.stringOffsetBufferView<"u"?Xs(r,t.stringOffsetBufferView,t.offsetType||"UINT32",n):null}function HM(r){let e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(r.type)||typeof r.componentType<"u"&&e.includes(r.componentType)}function VM(r,e,t,n){let i=r.type==="ARRAY",A=r.componentCount,h="SCALAR",p=r.componentType||r.type,B=oo(h,p),T=t.byteLength/B,y=Ys(t,h,p,T);return i?n?ia(y,e,n,t.length,B):A?oa(y,e,A):[]:y}function JM(r,e,t){let n=r.gltf.json;if(!n.meshes)return[];let i=[];for(let A of n.meshes)for(let h of A.primitives)jM(r,t,e,i,h);return i}function jM(r,e,t,n,i){let A=P({channels:t.channels},t.texture),h=Ws(r,A,i);h&&sa(r,e,h,n,i)}var Og="4.4.4";var Ng="4.4.4";var aa={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},Gg;function Dl(r){return Z(this,null,function*(){Sh(r.modules);let e=vh("basis");return e||(Gg||=QM(r),yield Gg)})}function QM(r){return Z(this,null,function*(){let e=null,t=null;return[e,t]=yield Promise.all([yield Pr(aa.TRANSCODER,"textures",r),yield Pr(aa.TRANSCODER_WASM,"textures",r)]),e=e||globalThis.BASIS,yield KM(e,t)})}function KM(r,e){let t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(t).then(i=>{let{BasisFile:A,initializeBasis:h}=i;h(),n({BasisFile:A})})})}var Ll;function Pl(r){return Z(this,null,function*(){let e=r.modules||{};return e.basisEncoder?e.basisEncoder:(Ll=Ll||zM(r),yield Ll)})}function zM(r){return Z(this,null,function*(){let e=null,t=null;return[e,t]=yield Promise.all([yield Pr(aa.ENCODER,"textures",r),yield Pr(aa.ENCODER_WASM,"textures",r)
621]),e=e||globalThis.BASIS,yield XM(e,t)})}function XM(r,e){let t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(t).then(i=>{let{BasisFile:A,KTX2File:h,initializeBasis:p,BasisEncoder:B}=i;p(),n({BasisFile:A,KTX2File:h,BasisEncoder:B})})})}var YM=["","WEBKIT_","MOZ_"],Ug={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 ca=null;function kg(r){if(!ca){r=r||WM()||void 0,ca=new Set;for(let e of YM)for(let t in Ug)if(r&&r.getExtension(`${e}${t}`))for(let n of Ug[t])ca.add(n)}return ca}function WM(){try{return document.createElement("canvas").getContext("webgl")}catch(r){return null}}var gr=[171,75,84,88,32,50,48,187,13,10,26,10];function Hg(r){let e=new Uint8Array(r);return!(e.byteLength<gr.length||e[0]!==gr[0]||e[1]!==gr[1]||e[2]!==gr[2]||e[3]!==gr[3]||e[4]!==gr[4]||e[5]!==gr[5]||e[6]!==gr[6]||e[7]!==gr[7]||e[8]!==gr[8]||e[9]!==gr[9]||e[10]!==gr[10]||e[11]!==gr[11])}var Vg=Promise.resolve(),jg={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"}},r5=Object.freeze(Object.keys(jg));function $M(r){return Z(this,null,function*(){let e=Vg,t;Vg=new Promise(n=>{t=n}),yield e;try{return yield r()}finally{t()}})}function Qg(t){return Z(this,arguments,function*(r,e={}){let n=Uo(e);return yield $M(()=>Z(null,null,function*(){if(!e.basis?.containerFormat||e.basis.containerFormat==="auto"){if(Hg(r)){let A=yield Pl(n);return Jg(A.KTX2File,r,e)}let{BasisFile:i}=yield Dl(n);return Ol(i,r,e)}if(e.basis.module==="encoder"){let i=yield Pl(n);return e.basis.containerFormat==="ktx2"?Jg(i.KTX2File,r,e):Ol(i.BasisFile,r,e)}else{let{BasisFile:A}=yield Dl(n);return Ol(A,r,e)}}))})}function Ol(r,e,t){let n=new r(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");let i=n.getNumImages(),A=[];for(let h=0;h<i;h++){let p=n.getNumLevels(h),B=[];for(let T=0;T<p;T++)B.push(eS(n,h,T,t));A.push(B)}return A}finally{n.close(),n.delete()}}function eS(r,e,t,n){let i=r.getImageWidth(e,t),A=r.getImageHeight(e,t),h=r.getHasAlpha(),{compressed:p,format:B,basisFormat:T,textureFormat:y}=Kg(n,h),E=r.getImageTranscodedSizeInBytes(e,t,T),I=new Uint8Array(E);if(!r.transcodeImage(I,e,t,T,0,0))throw new Error("failed to start Basis transcoding");return ee(P(P({shape:"texture-level",width:i,height:A,data:I,compressed:p},B!==void 0?{format:B}:{}),y!==void 0?{textureFormat:y}:{}),{hasAlpha:h})}function Jg(r,e,t){let n=new r(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");let i=n.getLevels(),A=[];for(let h=0;h<i;h++)A.push(tS(n,h,t));return[A]}finally{n.close(),n.delete()}}function tS(r,e,t){let{alphaFlag:n,height:i,width:A}=r.getImageLevelInfo(e,0,0),{compressed:h,format:p,basisFormat:B,textureFormat:T}=Kg(t,n),y=r.getImageTranscodedSizeInBytes(e,0,0,B),E=new Uint8Array(y);
vendor: 6,990 bytes, line 621
621if(!r.transcodeImage(E,e,0,0,B,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return ee(P(P({shape:"texture-level",width:A,height:i,data:E,compressed:h},p!==void 0?{format:p}:{}),T!==void 0?{textureFormat:T}:{}),{levelSize:y,hasAlpha:n})}function Kg(r,e){let t=r.basis?.format||"auto";t==="auto"&&(t=r.basis?.supportedTextureFormats?ss(r.basis.supportedTextureFormats):ss()),typeof t=="object"&&(t=e?t.alpha:t.noAlpha);let n=t.toLowerCase(),i=jg[n];if(!i)throw new Error(`Unknown Basis format ${t}`);return i}function ss(r=kg()){let e=new Set(r);return $s(e,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":$s(e,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:$s(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"}:$s(e,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:$s(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":$s(e,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function $s(r,e){return e.some(t=>r.has(t))}var zg={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:Ng,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",containerFormat:"auto",module:"transcoder"}}},Ao=ee(P({},zg),{parse:Qg});var ei=!0,Xg=1735152710,Ul=12,la=8,rS=1313821514,nS=5130562,sS=0,iS=0,oS=1;function AS(r,e=0){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))}`}function Yg(r,e=0,t={}){let n=new DataView(r),{magic:i=Xg}=t,A=n.getUint32(e,!1);return A===i||A===Xg}function Wg(r,e,t=0,n={}){let i=new DataView(e),A=AS(i,t+0),h=i.getUint32(t+4,ei),p=i.getUint32(t+8,ei);switch(Object.assign(r,{header:{byteOffset:t,byteLength:p,hasBinChunk:!1},type:A,version:h,json:{},binChunks:[]}),t+=Ul,r.version){case 1:return aS(r,i,t);case 2:return cS(r,i,t,n={});default:throw new Error(`Invalid GLB version ${r.version}. Only supports version 1 and 2.`)}}function aS(r,e,t){qe(r.header.byteLength>Ul+la);let n=e.getUint32(t+0,ei),i=e.getUint32(t+4,ei);return t+=la,qe(i===sS),Nl(r,e,t,n),t+=n,t+=Gl(r,e,t,r.header.byteLength),t}function cS(r,e,t,n){return qe(r.header.byteLength>Ul+la),lS(r,e,t,n),t+r.header.byteLength}function lS(r,e,t,n){for(;t+8<=r.header.byteLength;){let i=e.getUint32(t+0,ei),A=e.getUint32(t+4,ei);switch(t+=la,A){case rS:Nl(r,e,t,i);break;case nS:Gl(r,e,t,i);break;case iS:n.strict||Nl(r,e,t,i);break;case oS:n.strict||Gl(r,e,t,i);break;default:break}t+=Er(i,4)}return t}function Nl(r,e,t,n){let i=new Uint8Array(e.buffer,t,n),h=new TextDecoder("utf8").decode(i);return r.json=JSON.parse(h),Er(n,4)}function Gl(r,e,t,n){return r.header.hasBinChunk=!0,r.binChunks.push({byteOffset:t,byteLength:n,arrayBuffer:e.buffer}),Er(n,4)}function kl(r,e,t){if(r.startsWith("data:")||r.startsWith("http:")||r.startsWith("https:"))return r;let i=t?.baseUrl||uS(e?.core?.baseUrl);if(!i)throw new Error(`'baseUrl' must be provided to resolve relative url ${r}`);return i.endsWith("/")?`${i}${r}`:`${i}/${r}`}function uS(r){if(!r)return;if(r.endsWith("/"))return r;let e=r.lastIndexOf("/");return e>=0?r.slice(0,e+1):""}var Vl={};pt(Vl,{decode:()=>ES,name:()=>bS});var fS="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",hS
vendor: 10,662 bytes, line 621
621="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",
621dS=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]),pS=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]),mS={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},gS={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};function qg(r,e,t,n,i,A="NONE"){return Z(this,null,function*(){let h=yield BS();yS(h,h.exports[gS[i]],r,e,t,n,h.exports[mS[A||"NONE"]])})}var Hl;function BS(){return Z(this,null,function*(){return Hl||(Hl=CS()),Hl})}function CS(){return Z(this,null,function*(){let r=fS;WebAssembly.validate(dS)&&(r=hS,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=yield WebAssembly.instantiate(TS(r),{});return yield e.instance.exports.__wasm_call_ctors(),e.instance})}function TS(r){let e=new Uint8Array(r.length);for(let n=0;n<r.length;++n){let i=r.charCodeAt(n);e[n]=i>96?i-71:i>64?i-65:i>47?i+4:i>46?63:62}let t=0;for(let n=0;n<r.length;++n)e[t++]=e[n]<60?pS[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,t)}function yS(r,e,t,n,i,A,h){let p=r.exports.sbrk,B=n+3&-4,T=p(B*i),y=p(A.length),E=new Uint8Array(r.exports.memory.buffer);E.set(A,y);let I=e(T,n,i,y,A.length);if(I===0&&h&&h(T,B,i),t.set(E.subarray(T,T+n*i)),p(T-p(0)),I!==0)throw new Error(`Malformed buffer data: ${I}`)}var ua="EXT_meshopt_compression",bS=ua;function ES(r,e){return Z(this,null,function*(){let t=new $e(r);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;let n=[];for(let i of r.json.bufferViews||[])n.push(_S(t,i));yield Promise.all(n),t.removeExtension(ua)})}function _S(r,e){return Z(this,null,function*(){let t=r.getObjectExtension(e,ua);if(t){let{byteOffset:n=0,byteLength:i=0,byteStride:A,count:h,mode:p,filter:B="NONE",buffer:T}=t,y=r.gltf.buffers[T],E=new Uint8Array(y.arrayBuffer,y.byteOffset+n,i),I=new Uint8Array(r.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);yield qg(I,h,A,E,p,B),r.removeObjectExtension(e,ua)}})}var Jl={};pt(Jl,{name:()=>xS,preprocess:()=>IS});var ti="EXT_texture_webp",xS=ti;function IS(r,e){let t=new $e(r);if(!zo("image/webp")){if(t.getRequiredExtensions().includes(ti))throw new Error(`gltf: Required extension ${ti} not supported by browser`);return}let{json:n}=t;for(let i of n.textures||[]){let A=t.getObjectExtension(i,ti);A&&(i.source=A.source),t.removeObjectExtension(i,ti)}t.removeExtension(ti)}var jl={};pt(jl,{name:()=>wS,preprocess:()=>MS});var fa="KHR_texture_basisu",wS=fa;function MS(r,e){let t=new $e(r),{json:n}=t;for(let i of n.textures||[]){let A=t.getObjectExtension(i,fa);A&&(i.source=A.source,t.removeObjectExtension(i,fa))}t.removeExtension(fa)}var Xl={};pt(Xl,{decode:()=>jS,encode:()=>QS,name:()=>VS,preprocess:()=>JS});var SS="1.5.6",vS="1.4.1",Ql=`https://www.gstatic.com/draco/versioned/decoders/${SS}`,Gt={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},ao={[Gt.DECODER]:`${Ql}/${Gt.DECODER}`,[Gt.DECODER_WASM]:`${Ql}/${Gt.DECODER_WASM}`,[Gt.FALLBACK_DECODER]:`${Ql}/${Gt.FALLBACK_DECODER}`,[Gt.ENCODER]:`https://raw.githubusercontent.com/google/draco/${vS}/javascript/${Gt.ENCODER}`},Kl;function $g(){return Z(this,arguments,function*(r={},e){let t=r.modules||{};return t.draco3d?Kl||=t.draco3d.createDecoderModule({}).then(n=>({draco:n})):Kl||=FS(r,e),yield Kl})}function Zg(r,e){if(r&&typeof r=="object"){if(r.default)return r.default;if(r[e])return r[e]}return r}function FS(r,e){return Z(this,null,function*(){let t,n;switch(e){case"js":t=yield Pr(ao[Gt.FALLBACK_DECODER],"draco",r,Gt.FALLBACK_DECODER);break;default:try{[t,n]=yield Promise.all([yield Pr(ao[Gt.DECODER],"draco",r,Gt.DECODER),yield Pr(ao[Gt.DECODER_WASM],"draco",r,Gt.DECODER_WASM)])}catch(i){t=null,n=null}}return t=Zg(t,"DracoDecoderModule"),t=t||globalThis.DracoDecoderModule,!t&&!Fh&&([t,n]=yield Promise.all([yield Pr(ao[Gt.DECODER],"draco",ee(P({},r),{useLocalLibraries:!0}),Gt.DECODER),yield Pr(ao[Gt.DECODER_WASM],"draco",ee(P({},r),{useLocalLibraries:!0}),Gt.DECODER_WASM)]),t=Zg(t,"DracoDecoderModule"),t=t||globalThis.DracoDecoderModule),yield RS(t,n)})}function RS(r,e){if(typeof r!="function")throw new Error("DracoDecoderModule could not be loaded");let t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(ee(P({},t),{onModuleLoaded:i=>n({draco:i})}))})}var e2="4.4.4";function r2(r,e,t){let n=n2(e.metadata),i=[],A=LS(e.attributes);for(let h in r){let p=r[h],B=t2(h,p,A[h]);i.push(B)}if(t){let h=t2("indices",t);i.push(h)}return{fields:i,metadata:n}}function LS(r){let e={};for(let t in r){let n=r[t];e[n.name||"undefined"]=n}return e}function t2(r,e,t){let n=t?n2(t.metadata):void 0;return oc(r,e,n)}function n2(r){Object.entries(r);let e={};for(let t in r)e[`${t}.string`]=JSON.stringify(r[t]);return e}var s2={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},DS={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},PS=4,ha=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,t={}){let n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(t);let i=this.decoder.GetEncodedGeometryType(n),A=i===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let h;switch(i){case this.draco.TRIANGULAR_MESH:h=this.decoder.DecodeBufferToMesh(n,A);break;case this.draco.POINT_CLOUD:h=this.decoder.DecodeBufferToPointCloud(n,A);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!h.ok()||!A.ptr){let I=`DRACO decompression failed: ${h.error_msg()}`;throw new Error(I)}let p=this._getDracoLoaderData(A,i,t),B=this._getMeshData(A,p,t),T=zn(B.attributes),y=r2(B.attributes,p,B.indices);return ee(P({loader:"draco",loaderData:p,header:{vertexCount:A.num_points(),boundingBox:T}},B),{schema:y})}finally{this.draco.destroy(n),A&&this.draco.destroy(A)}}_getDracoLoaderData(e,t,n){let i=this._getTopLevelMetadata(e),A=this._getDracoAttributes(e,n);return{geometry_type:t,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:i,attributes:A}}_getDracoAttributes(e,t){let n={};for(let i=0;i<e.num_attributes();i++){let A=this.decoder.GetAttribute(e,i),h=this._getAttributeMetadata(e,i);n[A.unique_id()]={unique_id:A.unique_id(),attribute_type:A.attribute_type(),data_type:A.data_type(),num_components:A.num_components(),byte_offset:A.byte_offset(),byte_stride:A.byte_stride(),normalized:A.normalized(),attribute_index:i,metadata:h};let p=this._getQuantizationTransform(A,t);p&&(n[A.unique_id()].quantization_transform=p);let B=this._getOctahedronTransform(A,t);B&&(n[A.unique_id()].octahedron_transform=B)}return n}_getMeshData(e,t,n){let i=this._getMeshAttributes(t,e,n);
vendor: 10,462 bytes, line 621
621if(!i.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:i,indices:{value:this._getTriangleStripIndices(e),size:1}}:{topology:"triangle-list",mode:5,attributes:i,indices:{value:this._getTriangleListIndices(e),size:1}}:{topology:"point-list",mode:0,attributes:i}}_getMeshAttributes(e,t,n){let i={};for(let A of Object.values(e.attributes)){let h=this._deduceAttributeName(A,n);A.name=h;let p=this._getAttributeValues(t,A);if(p){let{value:B,size:T}=p;i[h]={value:B,size:T,byteOffset:A.byte_offset,byteStride:A.byte_stride,normalized:A.normalized}}}return i}_getTriangleListIndices(e){let n=e.num_faces()*3,i=n*PS,A=this.draco._malloc(i);try{return this.decoder.GetTrianglesUInt32Array(e,i,A),new Uint32Array(this.draco.HEAPF32.buffer,A,n).slice()}finally{this.draco._free(A)}}_getTriangleStripIndices(e){let t=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,t),GS(t)}finally{this.draco.destroy(t)}}_getAttributeValues(e,t){let n=DS[t.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${t.data_type}`),null;let i=t.num_components,h=e.num_points()*i,p=h*n.BYTES_PER_ELEMENT,B=OS(this.draco,n),T,y=this.draco._malloc(p);try{let E=this.decoder.GetAttribute(e,t.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,E,B,p,y),T=new n(this.draco.HEAPF32.buffer,y,h).slice()}finally{this.draco._free(y)}return{value:T,size:i}}_deduceAttributeName(e,t){let n=e.unique_id;for(let[h,p]of Object.entries(t.extraAttributes||{}))if(p===n)return h;let i=e.attribute_type;for(let h in s2)if(this.draco[h]===i)return s2[h];let A=t.attributeNameEntry||"name";return e.metadata[A]?e.metadata[A].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){let t=this.decoder.GetMetadata(e);return this._getDracoMetadata(t)}_getAttributeMetadata(e,t){let n=this.decoder.GetAttributeMetadata(e,t);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};let t={},n=this.metadataQuerier.NumEntries(e);for(let i=0;i<n;i++){let A=this.metadataQuerier.GetEntryName(e,i);t[A]=this._getDracoMetadataField(e,A)}return t}_getDracoMetadataField(e,t){let n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,t,n);let i=NS(n);return{int:this.metadataQuerier.GetIntEntry(e,t),string:this.metadataQuerier.GetStringEntry(e,t),double:this.metadataQuerier.GetDoubleEntry(e,t),intArray:i}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){let{quantizedAttributes:t=[],octahedronAttributes:n=[]}=e,i=[...t,...n];for(let A of i)this.decoder.SkipAttributeTransform(this.draco[A])}_getQuantizationTransform(e,t){let{quantizedAttributes:n=[]}=t,i=e.attribute_type();if(n.map(h=>this.decoder[h]).includes(i)){let h=new this.draco.AttributeQuantizationTransform;try{if(h.InitFromAttribute(e))return{quantization_bits:h.quantization_bits(),range:h.range(),min_values:new Float32Array([1,2,3]).map(p=>h.min_value(p))}}finally{this.draco.destroy(h)}}return null}_getOctahedronTransform(e,t){let{octahedronAttributes:n=[]}=t,i=e.attribute_type();if(n.map(h=>this.decoder[h]).includes(i)){let h=new this.draco.AttributeQuantizationTransform;try{if(h.InitFromAttribute(e))return{quantization_bits:h.quantization_bits()}}finally{this.draco.destroy(h)}}return null}};function OS(r,e){switch(e){case Float32Array:return r.DT_FLOAT32;case Int8Array:return r.DT_INT8;case Int16Array:return r.DT_INT16;case Int32Array:return r.DT_INT32;case Uint8Array:return r.DT_UINT8;case Uint16Array:return r.DT_UINT16;case Uint32Array:return r.DT_UINT32;default:return r.DT_INVALID}}function NS(r){let e=r.size(),t=new Int32Array(e);for(let n=0;n<e;n++)t[n]=r.GetValue(n);return t}function GS(r){let e=r.size(),t=new Int32Array(e);for(let n=0;n<e;n++)t[n]=r.GetValue(n);return t}var i2={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:e2,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",extraAttributes:{},attributeNameEntry:void 0}}},is=ee(P({},i2),{parse:US});function US(r,e){return Z(this,null,function*(){let{draco:t}=yield $g(Uo(e),e?.draco?.decoderType||"wasm"),n=new ha(t);try{return n.parseSync(r,e?.draco)}finally{n.destroy()}})}function o2(r){let e={};for(let t in r){let n=r[t];if(t!=="indices"){let i=zl(n);e[t]=i}}return e}function zl(r){let{buffer:e,size:t,count:n}=kS(r);return{value:e,size:t,byteOffset:0,count:n,type:na(t),componentType:Fn(e)}}function kS(r){let e=r,t=1,n=0;return r&&r.value&&(e=r.value,t=r.size||1),e&&(ArrayBuffer.isView(e)||(e=HS(e,Float32Array)),n=e.length/t),{buffer:e,size:t,count:n}}function HS(r,e,t=!1){return r?Array.isArray(r)?new e(r):t&&!(r instanceof e)?new e(r):r:null}var Rn="KHR_draco_mesh_compression",VS=Rn;function JS(r,e,t){let n=new $e(r);for(let i of A2(n))n.getObjectExtension(i,Rn)}function jS(r,e,t){return Z(this,null,function*(){if(!e?.gltf?.decompressMeshes)return;let n=new $e(r),i=[];for(let A of A2(n))n.getObjectExtension(A,Rn)&&i.push(KS(n,A,e,t));yield Promise.all(i),n.removeExtension(Rn)})}function QS(r,e={}){let t=new $e(r);for(let n of t.json.meshes||[])zS(n,e),t.addRequiredExtension(Rn)}function KS(r,e,t,n){return Z(this,null,function*(){let i=r.getObjectExtension(e,Rn);if(!i)return;let A=r.getTypedArrayForBufferView(i.bufferView),h=Xr(A.buffer,A.byteOffset),p=P({},t);delete p["3d-tiles"];let B=yield Jt(h,is,p,n),T=o2(B.attributes);for(let[y,E]of Object.entries(T))if(y in e.attributes){let I=e.attributes[y],S=r.getAccessor(I);S?.min&&S?.max&&(E.min=S.min,E.max=S.max)}e.attributes=T,B.indices&&(e.indices=zl(B.indices)),r.removeObjectExtension(e,Rn),XS(e)})}function zS(r,e,t=4,n,i){if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let A=n.DracoWriter.encodeSync({attributes:r}),h=i?.parseSync?.({attributes:r}),p=n._addFauxAttributes(h.attributes),B=n.addBufferView(A);return{primitives:[{attributes:p,mode:t,extensions:{[Rn]:{bufferView:B,attributes:p}}}]}}function XS(r){if(!r.attributes&&Object.keys(r.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*A2(r){for(let e of r.json.meshes||[])for(let t of e.primitives)yield t}var Yl={};pt(Yl,{decode:()=>ZS,name:()=>YS});var pa="KHR_texture_transform",YS=pa,da=new X,WS=new He,qS=new He;function ZS(r,e){return Z(this,null,function*(){if(!new $e(r).hasExtension(pa)||!e.gltf?.loadBuffers)return;let i=r.json.materials||[];for(let A=0;A<i.length;A++)$S(A,r)})}function $S(r,e){let t=e.json.materials?.[r],n=[t?.pbrMetallicRoughness?.baseColorTexture,t?.emissiveTexture,t?.normalTexture,t?.occlusionTexture,t?.pbrMetallicRoughness?.metallicRoughnessTexture],i=[];for(let A of n)A&&A?.extensions?.[pa]&&ev(e,r,A,i)}function ev(r,e,t,n){let i=tv(t,n);if(!i)return;let A=r.json.meshes||[];for(let h of A)for(let p of h.primitives){let B=p.material;Number.isFinite(B)&&e===B&&rv(r,p,i)}}function tv(r,e){let t=r.extensions?.[pa],{texCoord:n=0}=r,{texCoord:i=n}=t;if(!(e.findIndex(([h,p])=>h===n&&p===i)!==-1)){let h=iv(t);return n!==i&&(r.texCoord=i),e.push([n,i]),{originalTexCoord:n,texCoord:i,matrix:h}}return null}function rv(r,e,t){let{originalTexCoord:n,texCoord:i,matrix:A}=t,h=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(h)){let p=r.json.accessors?.[h];if(p&&p.bufferView!==void 0){let B=r.json.bufferViews?.[p.bufferView];if(B){let{arrayBuffer:T,byteOffset:y}=r.buffers[B.buffer],E=(y||0)+(p.byteOffset||0)+(B.byteOffset||0),{ArrayType:I,length:S}=zs(p,B),O=ra[p.componentType],N=ta[p.type],Q=B.byteStride||O*N,z=new Float32Array(S);for(let j=0;j<p.count;j++){let re=new I(T,E+j*Q,2);da.set(re[0],re[1],1),da.transformByMatrix3(A),z.set([da[0],da[1]],j*N)}n===i?nv(p,r,z,p.bufferView):sv(i,p,e,r,z)}}}}function nv(r,e,t,n){r.componentType=5126,r.byteOffset=0;let h=(e.json.accessors||[]).reduce((T,y)=>y.bufferView===n?T+1:T,0)>1;e.buffers.push({arrayBuffer:ir(t.buffer),byteOffset:0,byteLength:t.buffer.byteLength});let p=e.buffers.length-1;if(e.json.bufferViews=e.json.bufferViews||[],h){e.json.bufferViews.push({buffer:p,byteLength:t.buffer.byteLength,byteOffset:0}),r.bufferView=e.json.bufferViews.length-1;return}let B=e.json.bufferViews[n];B&&(B.buffer=p,B.byteOffset=0,B.byteLength=t.buffer.byteLength,B.byteStride!==void 0&&delete B.byteStride)}function sv(r,e,t,n,i){n.buffers.push({arrayBuffer:ir(i.buffer),byteOffset:0,byteLength:i.buffer.byteLength}),n.json.bufferViews=n.json.bufferViews||[];let A=n.json.bufferViews;A.push({buffer:n.buffers.length-1,byteLength:i.buffer.byteLength,byteOffset:0});let h=n.json.accessors;h&&(h.push({bufferView:A?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),t.attributes[`TEXCOORD_${r}`]=h.length-1)}function iv(r){let{offset:e=[0,0],rotation:t=0,scale:n=[1,1]}=r,i=new He().set(1,0,0,0,1,0,e[0],e[1],1),A=WS.set(Math.cos(t),Math.sin(t),0,-Math.sin(t),Math.cos(t),0,0,0,1),h=qS.set(n[0],0,0,0,n[1],0,0,0,1);return i.multiplyRight(A).multiplyRight(h)}var Wl={};pt(Wl,{decode:()=>Av,encode:()=>av,name:()=>ov});var os="KHR_lights_punctual",ov=os;function Av(r){return Z(this,null,function*(){let e=new $e(r),{json:t}=e,n=e.getExtension(os);n&&(e.json.lights=n.lights,e.removeExtension(os));for(let i of t.nodes||[]){let A=e.getObjectExtension(i,os);A&&(i.light=A.light),e.removeObjectExtension(i,os)}})}function av(r){return Z(this,null,function*(){let e=new $e(r),{json:t}=e;if(t.lights){let n=e.addExtension(os);Rt(!n.lights),n.lights=t.lights,delete t.lights}if(e.json.lights){for(let n of e.json.lights){let i=n.node;e.addObjectExtension(i,os,n)}delete e.json.lights}})}var ql={};pt(ql,{decode:()=>lv,encode:()=>uv,name:()=>cv});var co="KHR_materials_unlit",cv=co;function lv(r){return Z(this,null,function*(){let e=new $e(r),{json:t}=e;for(let n of t.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,co);e.removeExtension(co)})}function uv(r){let e=new $e(r),{json:t}=e;if(e.materials)for(let n of t.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,co,{}),e.addExtension(co))}var Zl={};pt(Zl,{decode:()=>hv,encode:()=>dv,name:()=>fv});var lo="KHR_techniques_webgl",fv=lo;function hv(r){return Z(this,null,function*(){let e=new $e(r),{json:t}=e,n=e.getExtension(lo);if(n){let i=pv(n,e);for(let A of t.materials||[]){let h=e.getObjectExtension(A,lo);h&&(A.technique=Object.assign({}
621,h,i[h.technique]),A.technique.values=mv(A.technique,e)),e.removeObjectExtension(A,lo)}e.removeExtension(lo)}})}function dv(r,e){return Z(this,null,function*(){})}function pv(r,e){let{programs:t=[],shaders:n=[],techniques:i=[]}=r,A=new TextDecoder;return n.forEach(h=>{if(Number.isFinite(h.bufferView))h.code=A.decode(e.getTypedArrayForBufferView(h.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),t.forEach(h=>{h.fragmentShader=n[h.fragmentShader],h.vertexShader=n[h.vertexShader]}),i.forEach(h=>{h.program=t[h.program]}),i}function mv(r,e){let t=Object.assign({},r.values);return Object.keys(r.uniforms||{}).forEach(n=>{r.uniforms[n].value&&!(n in t)&&(t[n]=r.uniforms[n].value)}),Object.keys(t).forEach(n=>{typeof t[n]=="object"&&t[n].index!==void 0&&(t[n].texture=e.getTexture(t[n].index))}),t}var a2=[Fl,Ml,Vl,Jl,jl,Xl,Wl,ql,Zl,Yl,Rl];function c2(r,e={},t){let n=a2.filter(i=>u2(i.name,e));for(let i of n)i.preprocess?.(r,e,t)}function l2(n){return Z(this,arguments,function*(r,e={},t){let i=a2.filter(A=>u2(A.name,e));for(let A of i)yield A.decode?.(r,e,t)})}function u2(r,e){let t=e?.gltf?.excludeExtensions||{};return!(r in t&&!t[r])}var $l="KHR_binary_glTF";function f2(r){let e=new $e(r),{json:t}=e;for(let n of t.images||[]){let i=e.getObjectExtension(n,$l);i&&Object.assign(n,i),e.removeObjectExtension(n,$l)}t.buffers&&t.buffers[0]&&delete t.buffers[0].uri,e.removeExtension($l)}var h2={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},Bv={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},eu=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,t){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(!t.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),f2(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 t in h2)this._convertTopLevelObjectToArray(e,t)}_convertTopLevelObjectToArray(e,t){let n=e[t];if(!(!n||Array.isArray(n))){e[t]=[];for(let i in n){let A=n[i];A.id=A.id||i;let h=e[t].length;e[t].push(A),this.idToIndexMap[t][i]=h}}}_convertObjectIdsToArrayIndices(e){for(let t in h2)this._convertIdsToIndices(e,t);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(let t of e.textures)this._convertTextureIds(t);for(let t of e.meshes)this._convertMeshIds(t);for(let t of e.nodes)this._convertNodeIds(t);for(let t of e.scenes)this._convertSceneIds(t)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(let t of e.primitives){let{attributes:n,indices:i,material:A}=t;for(let h in n)n[h]=this._convertIdToIndex(n[h],"accessor");i&&(t.indices=this._convertIdToIndex(i,"accessor")),A&&(t.material=this._convertIdToIndex(A,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(t=>this._convertIdToIndex(t,"node"))),e.meshes&&(e.meshes=e.meshes.map(t=>this._convertIdToIndex(t,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(t=>this._convertIdToIndex(t,"node")))}_convertIdsToIndices(e,t){e[t]||(console.warn(`gltf v1: json doesn't contain attribute ${t}`),e[t]=[]);for(let n of e[t])for(let i in n){let A=n[i],h=this._convertIdToIndex(A,i);n[i]=h}}_convertIdToIndex(e,t){let n=Bv[t];if(n in this.idToIndexMap){let i=this.idToIndexMap[n][e];if(!Number.isFinite(i))throw new Error(`gltf v1: failed to resolve ${t} with id ${e}`);return i}return e}_updateObjects(e){for(let t of this.json.buffers)delete t.type}_updateMaterial(e){for(let t of e.materials){t.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let n=t.values?.tex||t.values?.texture2d_0||t.values?.diffuseTex,i=e.textures.findIndex(A=>A.id===n);i!==-1&&(t.pbrMetallicRoughness.baseColorTexture={index:i})}}};function d2(r,e={}){return new eu().normalize(r,e)}function Cv(r,e){let t=r.basis,n=t?.format;return ee(P({},r),{core:ee(P({},r.core),{mimeType:e}),basis:ee(P({},t),{format:n&&n!=="auto"?n:ss(t?.supportedTextureFormats)})})}function p2(r,e,t=0,n,i){return Z(this,null,function*(){return Tv(r,e,t,n),d2(r,{normalize:n?.gltf?.normalize}
621),c2(r,n,i),n?.gltf?.loadBuffers&&r.json.buffers&&(yield yv(r,n,i)),n?.gltf?.loadImages&&(yield bv(r,n,i)),yield l2(r,n,i),r})}function Tv(r,e,t,n){if(n.core?.baseUrl&&(r.baseUri=n.core?.baseUrl),e instanceof ArrayBuffer&&!Yg(e,t,n.glb)&&(e=new TextDecoder().decode(e)),typeof e=="string")r.json=ko(e);else if(e instanceof ArrayBuffer){let h={};t=Wg(h,e,t,n.glb),Rt(h.type==="glTF",`Invalid GLB magic string ${h.type}`),r._glb=h,r.json=h.json}else Rt(!1,"GLTF: must be ArrayBuffer or string");let i=r.json.buffers||[];if(r.buffers=new Array(i.length).fill(null),r._glb&&r._glb.header.hasBinChunk){let{binChunks:h}=r._glb;r.buffers[0]={arrayBuffer:h[0].arrayBuffer,byteOffset:h[0].byteOffset,byteLength:h[0].byteLength}}let A=r.json.images||[];r.images=new Array(A.length).fill({})}function yv(r,e,t){return Z(this,null,function*(){let n=r.json.buffers||[];for(let i=0;i<n.length;++i){let A=n[i];if(A.uri){let{fetch:h}=t;Rt(h);let p=kl(A.uri,e,t),T=yield(yield t?.fetch?.(p))?.arrayBuffer?.();r.buffers[i]={arrayBuffer:T,byteOffset:0,byteLength:T.byteLength},delete A.uri}else r.buffers[i]===null&&(r.buffers[i]={arrayBuffer:new ArrayBuffer(A.byteLength),byteOffset:0,byteLength:A.byteLength})}})}function bv(r,e,t){return Z(this,null,function*(){let n=Ev(r),i=r.json.images||[],A=[];for(let h of n)A.push(_v(r,i[h],h,e,t));return yield Promise.all(A)})}function Ev(r){let e=new Set,t=r.json.textures||[];for(let n of t)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}function _v(r,e,t,n,i){return Z(this,null,function*(){let A;if(e.uri&&!e.hasOwnProperty("bufferView")){let B=kl(e.uri,n,i),{fetch:T}=i;A=yield(yield T(B)).arrayBuffer(),e.bufferView={data:A}}if(Number.isFinite(e.bufferView)){let B=vg(r.json,r.buffers,e.bufferView);A=Xr(B.buffer,B.byteOffset,B.byteLength)}Rt(A,"glTF image has no data");let h=Cv(n,e.mimeType),p=yield Jt(A,[Qn,Ao],h,i);p&&p[0]&&(p={compressed:!0,mipmaps:!1,width:p[0].width,height:p[0].height,data:p[0]}),r.images=r.images||[],r.images[t]=p})}var uo={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Og,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:xv,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0}}};function xv(n){return Z(this,arguments,function*(r,e={},t){let i=P(P({},uo.options),e);i.gltf=P(P({},uo.options.gltf),i.gltf);let A=e?.glb?.byteOffset||0;return yield p2({},r,A,i,t)})}var Iv={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},wv={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Sr={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},Mv={magFilter:Sr.TEXTURE_MAG_FILTER,minFilter:Sr.TEXTURE_MIN_FILTER,wrapS:Sr.TEXTURE_WRAP_S,wrapT:Sr.TEXTURE_WRAP_T},Sv={[Sr.TEXTURE_MAG_FILTER]:Sr.LINEAR,[Sr.TEXTURE_MIN_FILTER]:Sr.NEAREST_MIPMAP_LINEAR,[Sr.TEXTURE_WRAP_S]:Sr.REPEAT,[Sr.TEXTURE_WRAP_T]:Sr.REPEAT};function vv(){return{id:"default-sampler",parameters:Sv}}function Fv(r){return wv[r]}function Rv(r){return Iv[r]}var tu=class{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,t={}){let{json:n,buffers:i=[],images:A=[]}=e,{baseUri:h=""}=e;return Rt(n),this.baseUri=h,this.buffers=i,this.images=A,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,t),this.json}_resolveTree(e,t={}){let n=P({},e);return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((i,A)=>this._resolveBufferView(i,A))),e.images&&(n.images=e.images.map((i,A)=>this._resolveImage(i,A))),e.samplers&&(n.samplers=e.samplers.map((i,A)=>this._resolveSampler(i,A))),e.textures&&(n.textures=e.textures.map((i,A)=>this._resolveTexture(i,A))),e.accessors&&(n.accessors=e.accessors.map((i,A)=>this._resolveAccessor(i,A))),e.materials&&(n.materials=e.materials.map((i,A)=>this._resolveMaterial(i,A))),e.meshes&&(n.meshes=e.meshes.map((i,A)=>this._resolveMesh(i,A))),e.nodes&&(n.nodes=e.nodes.map((i,A)=>this._resolveNode(i,A)),n.nodes=n.nodes.map((i,A)=>this._resolveNodeChildren(i))),e.skins&&(n.skins=e.skins.map((i,A)=>this._resolveSkin(i,A))),e.scenes&&(n.scenes=e.scenes.map((i,A)=>this._resolveScene(i,A))),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,t){if(typeof t=="object")return t;let n=e&&e[t];return n||console.warn(`glTF file error: Could not find ${e}[${t}]`),n}_resolveScene(e,t){return ee(P({},e),{id:e.id||`scene-${t}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))})}_resolveNode(e,t){let n=ee(P({},e),{id:e?.id||`node-${t}`});
621return 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((i,A)=>{let h=this.getMesh(A);return i.id=h.id,i.primitives=i.primitives.concat(h.primitives),i},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(t=>this.getNode(t))),e}_resolveSkin(e,t){let n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return ee(P({},e),{id:e.id||`skin-${t}`,inverseBindMatrices:n})}_resolveMesh(e,t){let n=ee(P({},e),{id:e.id||`mesh-${t}`,primitives:[]});return e.primitives&&(n.primitives=e.primitives.map(i=>{let A=ee(P({},i),{attributes:{},indices:void 0,material:void 0}),h=i.attributes;for(let p in h)A.attributes[p]=this.getAccessor(h[p]);return i.indices!==void 0&&(A.indices=this.getAccessor(i.indices)),i.material!==void 0&&(A.material=this.getMaterial(i.material)),A})),n}_resolveMaterial(e,t){let n=ee(P({},e),{id:e.id||`material-${t}`});if(n.normalTexture&&(n.normalTexture=P({},n.normalTexture),n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture=P({},n.occlusionTexture),n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture=P({},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=P({},n.pbrMetallicRoughness);let i=n.pbrMetallicRoughness;i.baseColorTexture&&(i.baseColorTexture=P({},i.baseColorTexture),i.baseColorTexture.texture=this.getTexture(i.baseColorTexture.index)),i.metallicRoughnessTexture&&(i.metallicRoughnessTexture=P({},i.metallicRoughnessTexture),i.metallicRoughnessTexture.texture=this.getTexture(i.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,t){let n=Fv(e.componentType),i=Rv(e.type),A=n*i,h=ee(P({},e),{id:e.id||`accessor-${t}`,bytesPerComponent:n,components:i,bytesPerElement:A,value:void 0,bufferView:void 0,sparse:void 0});if(e.bufferView!==void 0&&(h.bufferView=this.getBufferView(e.bufferView)),h.bufferView){let p=h.bufferView.buffer,{ArrayType:B,byteLength:T}=zs(h,h.bufferView),y=(h.bufferView.byteOffset||0)+(h.byteOffset||0)+p.byteOffset,E=jo(p.arrayBuffer,y,T);h.bufferView.byteStride&&(E=this._getValueFromInterleavedBuffer(p,y,h.bufferView.byteStride,h.bytesPerElement,h.count)),h.value=new B(E)}return h}_getValueFromInterleavedBuffer(e,t,n,i,A){let h=new Uint8Array(A*i);for(let p=0;p<A;p++){let B=t+p*n;h.set(new Uint8Array(e.arrayBuffer.slice(B,B+i)),p*i)}return h.buffer}_resolveTexture(e,t){return ee(P({},e),{id:e.id||`texture-${t}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):vv(),source:typeof e.source=="number"?this.getImage(e.source):void 0})}_resolveSampler(e,t){let n=ee(P({id:e.id||`sampler-${t}`},e),{parameters:{}});for(let i in n){let A=this._enumSamplerParameter(i);A!==void 0&&(n.parameters[A]=n[i])}return n}_enumSamplerParameter(e){return Mv[e]}_resolveImage(e,t){let n=ee(P({},e),{id:e.id||`image-${t}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0}),i=this.images[t];return i&&(n.image=i),n}_resolveBufferView(e,t){let n=e.buffer,i=this.buffers[n].arrayBuffer,A=this.buffers[n].byteOffset||0;return e.byteOffset&&(A+=e.byteOffset),ee(P({id:`bufferView-${t}`},e),{buffer:this.buffers[n],data:new Uint8Array(i,A,e.byteLength)})}_resolveCamera(e,t){let n=ee(P({},e),{id:e.id||`camera-${t}`});return n.perspective,n.orthographic,n}};function ru(r,e){return new tu().postProcess(r,e)}function m2(r){return Z(this,null,function*(){let e=[];return r.scenes.forEach(t=>{t.traverse(n=>{})}),yield Lv(()=>e.some(t=>!t.loaded))})}function Lv(r){return Z(this,null,function*(){for(;r();)yield new Promise(e=>requestAnimationFrame(e))})}var Dv=`struct ScenegraphUniforms { 622 sizeScale: f32, 623 sizeMinPixels: f32, 624 sizeMaxPixels: f32, 625 sceneModelMatrix: mat4x4<f32>, 626 composeModelMatrix: f32, 627}; 628 629@group(0) @binding(auto) 630var<uniform> scenegraph: ScenegraphUniforms; 631`,g2=`layout(std140) uniform scenegraphUniforms { 632 float sizeScale;
633 float sizeMinPixels; 634 float sizeMaxPixels; 635 mat4 sceneModelMatrix; 636 float composeModelMatrix; 637} scenegraph; 638`,B2={name:"scenegraph",source:Dv,vs:g2,fs:g2,uniformTypes:{sizeScale:"f32",sizeMinPixels:"f32",sizeMaxPixels:"f32",sceneModelMatrix:"mat4x4<f32>",composeModelMatrix:"f32"}};var C2=`#version 300 es 639#define SHADER_NAME scenegraph-layer-vertex-shader 640in vec3 instancePositions; 641in vec3 instancePositions64Low; 642in vec4 instanceColors; 643in vec3 instanceModelMatrixCol0; 644in vec3 instanceModelMatrixCol1; 645in vec3 instanceModelMatrixCol2; 646in vec3 instanceTranslation; 647in vec3 positions; 648#ifdef HAS_UV 649in vec2 texCoords; 650#endif 651#ifdef LIGHTING_PBR 652#ifdef HAS_NORMALS 653in vec3 normals; 654#endif 655#endif 656out vec4 vColor; 657#ifndef LIGHTING_PBR 658#ifdef HAS_UV 659out vec2 vTEXCOORD_0; 660#endif 661#endif 662void main(void) { 663#if defined(HAS_UV) && !defined(LIGHTING_PBR) 664vTEXCOORD_0 = texCoords; 665geometry.uv = texCoords; 666#endif 667geometry.worldPosition = instancePositions; 668geometry.pickingColor = picking_getPickingColorFromInstanceID(); 669mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2); 670vec3 normal = vec3(0.0, 0.0, 1.0); 671#ifdef LIGHTING_PBR 672#ifdef HAS_NORMALS 673normal = instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4(normals, 0.0)).xyz; 674#endif 675#endif 676float originalSize = project_size_to_pixel(scenegraph.sizeScale); 677float clampedSize = clamp(originalSize, scenegraph.sizeMinPixels, scenegraph.sizeMaxPixels); 678float sizeRatio = originalSize == 0.0 ? 0.0 : clampedSize / originalSize; 679vec3 pos = (instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4(positions, 1.0)).xyz) * scenegraph.sizeScale * sizeRatio + instanceTranslation; 680if(scenegraph.composeModelMatrix > 0.5) { 681DECKGL_FILTER_SIZE(pos, geometry); 682geometry.normal = project_normal(normal); 683geometry.worldPosition += pos; 684gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), geometry.position); 685} 686else { 687pos = project_size(pos); 688DECKGL_FILTER_SIZE(pos, geometry); 689gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, geometry.position); 690geometry.normal = project_normal(normal); 691} 692DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 693#ifdef LIGHTING_PBR 694pbr_vPosition = geometry.position.xyz; 695#ifdef HAS_NORMALS 696pbr_vNormal = geometry.normal; 697#endif 698#ifdef HAS_UV 699pbr_vUV0 = texCoords; 700#else 701pbr_vUV0 = vec2(0., 0.); 702#endif 703pbr_vUV1 = vec2(0., 0.); 704geometry.uv = pbr_vUV0; 705#endif 706vColor = instanceColors; 707DECKGL_FILTER_COLOR(vColor, geometry); 708} 709`;var T2=`#version 300 es 710#define SHADER_NAME scenegraph-layer-fragment-shader 711in vec4 vColor; 712out vec4 fragColor; 713#ifndef LIGHTING_PBR 714#if defined(HAS_UV) && defined(HAS_BASECOLORMAP) 715in vec2 vTEXCOORD_0; 716uniform sampler2D pbr_baseColorSampler; 717#endif 718#endif 719void main(void) { 720#ifdef LIGHTING_PBR 721fragColor = pbr_filterColor(vColor); 722geometry.uv = pbr_vUV0; 723#else 724#if defined(HAS_UV) && defined(HAS_BASECOLORMAP) 725fragColor = vColor * texture(pbr_baseColorSampler, vTEXCOORD_0); 726geometry.uv = vTEXCOORD_0; 727#else 728fragColor = vColor; 729#endif 730#endif 731fragColor.a *= layer.opacity; 732DECKGL_FILTER_COLOR(fragColor, geometry); 733} 734`;var y2=`struct VertexInputs { 735 @location(0) positions: vec3<f32>, 736#ifdef HAS_NORMALS 737 @location(1) normals: vec3<f32>, 738#endif 739#ifdef HAS_UV 740 @location(3) texCoords: vec2<f32>, 741#endif 742 @location(6) instancePositions: vec3<f32>, 743 @location(7) instancePositions64Low: vec3<f32>, 744 @location(8) instanceColors: vec4<f32>, 745 @location(10) instanceModelMatrixCol0: vec3<f32>, 746 @location(11) instanceModelMatrixCol1: vec3<f32>, 747 @location(12) instanceModelMatrixCol2: vec3<f32>, 748 @location(13) instanceTranslation: vec3<f32>, 749}; 750 751struct FragmentInputs { 752 @builtin(position) position: vec4<f32>, 753 @location(0) vColor: vec4<f32>, 754 @location(1) vTexCoord: vec2<f32>, 755 @location(2) pbrPosition: vec3<f32>, 756 @location(3) pbrUV: vec2<f32>, 757 @location(4) pbrNormal: vec3<f32>, 758 @location(5) pickingColor: vec3<f32>, 759}; 760 761@vertex 762fn vertexMain( 763 inputs: VertexInputs, 764 @builtin(instance_index) instanceIndex: u32 765) -> FragmentInputs { 766 var outputs: FragmentInputs; 767
768 geometry.worldPosition = inputs.instancePositions; 769 geometry.pickingColor = picking_getPickingColorFromIndex(instanceIndex); 770 771 var vertexPosition = inputs.positions; 772 var texCoord = vec2<f32>(0.0, 0.0); 773 var normal = vec3<f32>(0.0, 0.0, 1.0); 774 775#ifdef HAS_UV 776 texCoord = inputs.texCoords; 777#endif 778#ifdef HAS_NORMALS 779 normal = inputs.normals; 780#endif 781 782 geometry.uv = texCoord; 783 784 let instanceModelMatrix = mat3x3<f32>( 785 inputs.instanceModelMatrixCol0, 786 inputs.instanceModelMatrixCol1, 787 inputs.instanceModelMatrixCol2 788 ); 789 790 let scenePosition = (scenegraph.sceneModelMatrix * vec4<f32>(vertexPosition, 1.0)).xyz; 791 let worldNormal = instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4<f32>(normal, 0.0)).xyz; 792 793 let originalSize = project_meter_size_to_pixel(scenegraph.sizeScale); 794 let clampedSize = clamp(originalSize, scenegraph.sizeMinPixels, scenegraph.sizeMaxPixels); 795 let sizeRatio = select(0.0, clampedSize / originalSize, originalSize > 0.0); 796 797 let pos = 798 (instanceModelMatrix * scenePosition) * scenegraph.sizeScale * sizeRatio + 799 inputs.instanceTranslation; 800 801 if (scenegraph.composeModelMatrix > 0.5) { 802 geometry.normal = project_normal(worldNormal); 803 geometry.worldPosition = inputs.instancePositions + pos; 804 geometry.position = vec4<f32>( 805 project_position_vec3_f64(inputs.instancePositions + pos, inputs.instancePositions64Low), 806 1.0 807 ); 808 } else { 809 let sizeAdjustedPos = project_size_vec3(pos); 810 // Scenegraph offsets are east/north/up in globe mode. Use project32's helper so it can 811 // rotate the offset onto the local tangent plane before producing the common position. 812 let projectResult = project_position_to_clipspace_and_commonspace( 813 inputs.instancePositions, 814 inputs.instancePositions64Low, 815 sizeAdjustedPos 816 ); 817 geometry.position = projectResult.commonPosition; 818 geometry.normal = project_normal(worldNormal); 819 } 820 821 outputs.position = project_common_position_to_clipspace(geometry.position); 822 outputs.vColor = inputs.instanceColors; 823 outputs.vTexCoord = texCoord; 824 outputs.pbrPosition = geometry.position.xyz; 825 outputs.pbrUV = texCoord; 826 outputs.pbrNormal = geometry.normal; 827 outputs.pickingColor = geometry.pickingColor; 828 return outputs; 829} 830 831@fragment 832fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4<f32> { 833 fragmentGeometry.uv = inputs.vTexCoord; 834 835 if (picking.isActive > 0.5) { 836 if (!picking_isColorValid(inputs.pickingColor)) { 837 discard; 838 } 839 return vec4<f32>(inputs.pickingColor, 1.0); 840 } 841 842 var fragColor = inputs.vColor; 843 844#ifdef LIGHTING_PBR 845 fragmentInputs.pbr_vPosition = inputs.pbrPosition; 846 // scenegraphPbrMaterial uses the indexed UV fields from the current PBR module. 847 fragmentInputs.pbr_vUV0 = inputs.pbrUV; 848 fragmentInputs.pbr_vUV1 = vec2<f32>(0.0); 849 fragmentInputs.pbr_vNormal = inputs.pbrNormal; 850 // Vertex color is part of the material base color and must be applied before lighting. 851 fragColor = pbr_filterColor(fragColor); 852#else 853#ifdef HAS_BASECOLORMAP 854 fragColor = 855 fragColor * 856 textureSample(pbr_baseColorSampler, pbr_baseColorSamplerSampler, inputs.vTexCoord); 857#endif 858#endif 859 860 fragColor.a *= layer.opacity; 861 862 if (picking.isHighlightActive > 0.5) { 863 let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor); 864 if (picking_isColorZero(abs(inputs.pickingColor - highlightedObjectColor))) { 865 let highlightAlpha = picking.highlightColor.a; 866 let blendedAlpha = highlightAlpha + fragColor.a * (1.0 - highlightAlpha); 867 if (blendedAlpha > 0.0) { 868 let highlightRatio = highlightAlpha / blendedAlpha; 869 fragColor = vec4<f32>( 870 mix(fragColor.rgb, picking.highlightColor.rgb, highlightRatio), 871 blendedAlpha 872 ); 873 } 874 } 875 } 876 877 return deckgl_premultiplied_alpha(fragColor); 878} 879`;var Pv=hr.source.replace(/fn pbr_setPositionNormalTangentUV\([\s\S]*?\n}\n/,`fn pbr_setPositionNormalTangentUV(position: vec4f, normal: vec4f, tangent: vec4f, uv: vec2f) 880{ 881 fragmentInputs.pbr_vPosition = position.xyz; 882 fragmentInputs.pbr_vNormal = normal.xyz; 883 fragmentInputs.pbr_vTBN = mat3x3f( 884 vec3f(1.0, 0.0, 0.0), 885 vec3f(0.0, 1.0, 0.0), 886 vec3f(0.0, 0.0, 1.0) 887 ); 888 fragmentInputs.pbr_vUV0 = uv; 889 fragmentInputs.pbr_vUV1 = uv; 890} 891`).replace(/pbrProjection\.camera/g,"project.cameraPosition"),nu=ee(P({},hr),{dependencies:[Jh],source:Pv});var b2=[255,255,255,255],Ov={scenegraph:{type:"object",value:null,async:!0},getScene:r=>r&&r.scenes?typeof r.scene=="object"?r.scene:r.scenes[r.scene||0]:r,getAnimator:r=>r&&r.animator,_animations:null,onFirstDraw:{type:"function",value:()=>{}},sizeScale:{type:"number",value:1,min:0}
vendor: 5,929 bytes, lines 891-947
891,sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},getPosition:{type:"accessor",value:r=>r.position},getColor:{type:"accessor",value:b2},_lighting:"flat",_imageBasedLightingEnvironment:void 0,getOrientation:{type:"accessor",value:[0,0,0]},getScale:{type:"accessor",value:[1,1,1]},getTranslation:{type:"accessor",value:[0,0,0]},getTransformMatrix:{type:"accessor",value:[]},loaders:[uo]},Nv=(()=>{class r extends eA{getShaders(){let t={},n,i=this.context.device?.type==="webgpu";this.props._lighting==="pbr"?(n=i?nu:hr,t.LIGHTING_PBR=1):i?n=nu:n={name:"pbrMaterial"};let A=[Wo,Yo,qo,B2,n];return super.getShaders({defines:t,vs:C2,fs:T2,source:y2,modules:A})}initializeState(){let t=this.getAttributeManager(),n=this.context.device.type!=="webgpu";t.addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),accessor:"getPosition",transition:n},instanceColors:{type:"unorm8",size:this.props.colorFormat.length,accessor:"getColor",defaultValue:b2,transition:n},instanceModelMatrix:JA})}updateState(t){super.updateState(t);let{props:n,oldProps:i}=t;n.scenegraph!==i.scenegraph?this._updateScenegraph():n._animations!==i._animations&&this._applyAnimationsProp(this.state.animator,n._animations)}finalizeState(t){super.finalizeState(t),this._destroyScenegraphAssets()}get isLoaded(){return!!(this.state?.scenegraph&&super.isLoaded)}_updateScenegraph(){let t=this.props,{device:n}=this.context,i=null;if(t.scenegraph instanceof qh)i={scenes:[t.scenegraph]};else if(t.scenegraph&&typeof t.scenegraph=="object"){let B=t.scenegraph,T=B.json?ru(B):B,y=wl(n,T,this._getModelOptions());i=y,m2(y).then(()=>this.setNeedsRedraw()).catch(E=>{this.raiseError(E,"loading glTF")})}let A={layer:this,device:this.context.device},h=t.getScene(i,A),p=t.getAnimator(i,A);if(h instanceof Ir){this._destroyScenegraphAssets(),this._applyAnimationsProp(p,t._animations);let B=[];h.traverse(T=>{T instanceof dr&&B.push(T.model)}),this.setState({scenegraph:h,animator:p,materials:i?.materials||null,models:B,firstDrawSignaled:!1}),this.getAttributeManager().invalidateAll()}else h!==null&&_r.warn("invalid scenegraph:",h)()}_destroyScenegraphAssets(){this.state.scenegraph?.destroy(),this.state.materials?.forEach(t=>t.destroy()),this.state.scenegraph=null,this.state.animator=null,this.state.materials=null,this.state.models=[]}_applyAnimationsProp(t,n){if(!t||!n)return;let i=t.getAnimations();Object.keys(n).sort().forEach(A=>{let h=n[A];if(A==="*")i.forEach(p=>{Object.assign(p,h)});else if(Number.isFinite(Number(A))){let p=Number(A);p>=0&&p<i.length?Object.assign(i[p],h):_r.warn(`animation ${A} not found`)()}else{let p=i.find(({animation:B})=>B.name===A);p?Object.assign(p,h):_r.warn(`animation ${A} not found`)()}})}_getModelOptions(){let{_imageBasedLightingEnvironment:t}=this.props,n;t&&(typeof t=="function"?n=t({device:this.context.device,gl:this.context.gl,layer:this}):n=t);let i=this.context.device.type==="webgpu"?{depthWriteEnabled:!0,depthCompare:"less-equal"}:void 0;return{imageBasedLightingEnvironment:n,modelOptions:P({id:this.props.id,isInstanced:!0,bufferLayout:this.getAttributeManager().getBufferLayouts(),parameters:i},this.getShaders()),useTangents:!1}}draw({context:t}){if(!this.state.scenegraph)return;this.props._animations&&this.state.animator&&(this.state.animator.setTime(t.timeline.getTime()),this.setNeedsRedraw());let{viewport:n,renderPass:i}=this.context,{sizeScale:A,sizeMinPixels:h,sizeMaxPixels:p,coordinateSystem:B}=this.props,T={camera:n.cameraPosition},y=this.getNumInstances();this.state.scenegraph.traverse((E,{worldMatrix:I})=>{if(E instanceof dr){let{model:S}=E;S.setInstanceCount(y);let O={sizeScale:A,sizeMinPixels:h,sizeMaxPixels:p,composeModelMatrix:jA(n,B)?1:0,sceneModelMatrix:I};S.shaderInputs.setProps({pbrProjection:T,scenegraph:O}),S.draw(i)}}),this.state.firstDrawSignaled||(this.state.firstDrawSignaled=!0,this.props.onFirstDraw?.())}}return r.defaultProps=Ov,r.layerName="ScenegraphLayer",r})(),su=Nv;var E2=`layout(std140) uniform meshUniforms { 892 bool pickFeatureIds; 893} mesh; 894`,Gv=`struct MeshUniforms { 895 pickFeatureIds: f32, 896}; 897 898@group(0) @binding(auto) var<uniform> mesh: MeshUniforms; 899`,_2={name:"mesh",vs:E2,fs:E2,source:Gv,uniformTypes:{pickFeatureIds:"f32"}};var Uv=hr.source.replace(/fn pbr_setPositionNormalTangentUV\([\s\S]*?\n}\n/,`fn pbr_setPositionNormalTangentUV(position: vec4f, normal: vec4f, tangent: vec4f, uv: vec2f) 900{ 901 fragmentInputs.pbr_vPosition = position.xyz; 902 fragmentInputs.pbr_vNormal = normal.xyz; 903 fragmentInputs.pbr_vTBN = mat3x3f( 904 vec3f(1.0, 0.0, 0.0), 905 vec3f(0.0, 1.0, 0.0), 906 vec3f(0.0, 0.0, 1.0) 907 ); 908 fragmentInputs.pbr_vUV0 = uv; 909 fragmentInputs.pbr_vUV1 = uv; 910} 911`).replace(/pbrProjection\.camera/g,"project.cameraPosition"),x2=ee(P({},hr),{source:Uv});var I2=`#version 300 es 912#define SHADER_NAME simple-mesh-layer-vs 913in vec3 positions; 914in vec3 normals; 915in vec3 colors; 916in vec2 texCoords; 917in vec4 uvRegions; 918in float rowIndexes; 919in vec4 instanceColors; 920in vec3 instanceModelMatrixCol0; 921in vec3 instanceModelMatrixCol1; 922in vec3 instanceModelMatrixCol2; 923out vec2 vTexCoord; 924out vec3 cameraPosition; 925out vec3 normals_commonspace; 926out vec4 position_commonspace; 927out vec4 vColor; 928vec2 applyUVRegion(vec2 uv) { 929#ifdef HAS_UV_REGIONS 930return fract(uv) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy; 931#else 932return uv; 933#endif 934} 935void main(void) { 936vec2 uv = applyUVRegion(texCoords); 937geometry.uv = uv; 938if (mesh.pickFeatureIds) { 939geometry.pickingColor = picking_getPickingColorFromIndex(rowIndexes); 940} else { 941geometry.pickingColor = picking_getPickingColorFromInstanceID(); 942} 943mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2); 944vTexCoord = uv; 945cameraPosition = project.cameraPosition; 946vColor = vec4(colors * instanceColors.rgb, instanceColors.a); 947vec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale;
948vec3 projectedPosition = project_position(positions); 949position_commonspace = vec4(projectedPosition, 1.0); 950gl_Position = project_common_position_to_clipspace(position_commonspace); 951geometry.position = position_commonspace; 952normals_commonspace = project_normal(instanceModelMatrix * normals); 953geometry.normal = normals_commonspace; 954DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 955#ifdef MODULE_PBRMATERIAL 956pbr_vPosition = geometry.position.xyz; 957#ifdef HAS_NORMALS 958pbr_vNormal = geometry.normal; 959#endif 960#ifdef HAS_UV 961pbr_vUV0 = uv; 962#else 963pbr_vUV0 = vec2(0., 0.); 964#endif 965pbr_vUV1 = vec2(0., 0.); 966geometry.uv = pbr_vUV0; 967#endif 968DECKGL_FILTER_COLOR(vColor, geometry); 969} 970`;var w2=`#version 300 es 971#define SHADER_NAME simple-mesh-layer-fs 972precision highp float; 973uniform sampler2D sampler; 974in vec2 vTexCoord; 975in vec3 cameraPosition; 976in vec3 normals_commonspace; 977in vec4 position_commonspace; 978in vec4 vColor; 979out vec4 fragColor; 980void main(void) { 981#ifdef MODULE_PBRMATERIAL 982fragColor = vColor * pbr_filterColor(vec4(0)); 983geometry.uv = pbr_vUV0; 984fragColor.a *= layer.opacity; 985#else 986geometry.uv = vTexCoord; 987vec3 normal; 988if (simpleMesh.flatShading) { 989normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz))); 990} else { 991normal = normals_commonspace; 992} 993vec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor; 994vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal); 995fragColor = vec4(lightColor, color.a * layer.opacity); 996#endif 997DECKGL_FILTER_COLOR(fragColor, geometry); 998} 999`;var M2=`struct VertexInputs { 1000 @location(0) positions: vec3<f32>, 1001#ifdef HAS_NORMALS 1002 @location(1) normals: vec3<f32>, 1003#endif 1004 @location(2) colors: vec4<f32>, 1005#ifdef HAS_UV 1006 @location(3) texCoords: vec2<f32>, 1007#endif 1008#ifdef HAS_UV_REGIONS 1009 @location(4) uvRegions: vec4<f32>, 1010#endif 1011#ifdef HAS_FEATURE_IDS 1012 @location(5) rowIndexes: u32, 1013#endif 1014 @location(6) instanceColors: vec4<f32>, 1015 @location(7) instanceModelMatrixCol0: vec3<f32>, 1016 @location(8) instanceModelMatrixCol1: vec3<f32>, 1017 @location(9) instanceModelMatrixCol2: vec3<f32>, 1018}; 1019 1020struct FragmentInputs { 1021 @builtin(position) position: vec4<f32>, 1022 @location(0) color: vec4<f32>, 1023 @location(1) texCoord: vec2<f32>, 1024 @location(2) pbrPosition: vec3<f32>, 1025 @location(3) pbrNormal: vec3<f32>, 1026 @location(4) pickingColor: vec3<f32>, 1027}; 1028 1029fn applyUVRegion(uv: vec2<f32>, uvRegion: vec4<f32>) -> vec2<f32> { 1030#ifdef HAS_UV_REGIONS 1031 // https://github.com/Esri/i3s-spec/blob/master/docs/1.7/geometryUVRegion.cmn.md 1032 return fract(uv) * (uvRegion.zw - uvRegion.xy) + uvRegion.xy; 1033#else 1034 return uv; 1035#endif 1036} 1037 1038@vertex 1039fn vertexMain( 1040 inputs: VertexInputs, 1041 @builtin(instance_index) instanceIndex: u32 1042) -> FragmentInputs { 1043 var outputs: FragmentInputs; 1044 var texCoord = vec2<f32>(0.0); 1045 var normal = vec3<f32>(0.0, 0.0, 1.0); 1046 var uvRegion = vec4<f32>(0.0); 1047 1048#ifdef HAS_UV 1049 texCoord = inputs.texCoords; 1050#endif 1051#ifdef HAS_NORMALS 1052 normal = inputs.normals; 1053#endif 1054#ifdef HAS_UV_REGIONS 1055 uvRegion = inputs.uvRegions; 1056#endif 1057 1058 texCoord = applyUVRegion(texCoord, uvRegion); 1059 geometry.uv = texCoord; 1060#ifdef HAS_FEATURE_IDS 1061 geometry.pickingColor = picking_getPickingColorFromIndex(inputs.rowIndexes); 1062#else 1063 geometry.pickingColor = picking_getPickingColorFromIndex(instanceIndex); 1064#endif 1065 1066 let instanceModelMatrix = mat3x3<f32>( 1067 inputs.instanceModelMatrixCol0, 1068 inputs.instanceModelMatrixCol1, 1069 inputs.instanceModelMatrixCol2 1070 ); 1071 let commonPosition = vec4<f32>(project_position_vec3_f32(inputs.positions), 1.0); 1072 1073 geometry.position = commonPosition; 1074 geometry.normal = project_normal(instanceModelMatrix * normal); 1075 1076 outputs.position = project_common_position_to_clipspace(commonPosition); 1077 outputs.color = vec4<f32>( 1078 inputs.colors.rgb * inputs.instanceColors.rgb, 1079 inputs.instanceColors.a 1080 ); 1081 outputs.texCoord = texCoord; 1082 outputs.pbrPosition = commonPosition.xyz; 1083 outputs.pbrNormal = geometry.normal; 1084 outputs.pickingColor = geometry.pickingColor; 1085 return outputs; 1086} 1087 1088@fragment 1089fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4<f32> { 1090 fragmentGeometry.uv = inputs.texCoord; 1091 1092 if (picking.isActive > 0.5) { 1093 if (!picking_isColorValid(inputs.pickingColor)) { 1094 discard; 1095 } 1096 return vec4<f32>(inputs.pickingColor, 1.0); 1097 } 1098
1099 fragmentInputs.pbr_vPosition = inputs.pbrPosition; 1100 fragmentInputs.pbr_vUV0 = inputs.texCoord; 1101 fragmentInputs.pbr_vUV1 = vec2<f32>(0.0); 1102 fragmentInputs.pbr_vNormal = inputs.pbrNormal; 1103 1104 var color = inputs.color * pbr_filterColor(vec4<f32>(0.0)); 1105 color.a *= layer.opacity; 1106 1107 if (picking.isHighlightActive > 0.5) { 1108 let highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor); 1109 if (picking_isColorZero(abs(inputs.pickingColor - highlightedObjectColor))) { 1110 let highlightAlpha = picking.highlightColor.a; 1111 let blendedAlpha = highlightAlpha + color.a * (1.0 - highlightAlpha); 1112 if (blendedAlpha > 0.0) { 1113 color = vec4<f32>( 1114 mix(color.rgb, picking.highlightColor.rgb, highlightAlpha / blendedAlpha), 1115 blendedAlpha 1116 ); 1117 } 1118 } 1119 } 1120 1121 return deckgl_premultiplied_alpha(color); 1122} 1123`;function kv(r){let e=r.positions||r.POSITION,t=e.value.length/e.size;r.COLOR_0||r.colors||(r.colors={size:4,value:new Uint8Array(t*4).fill(255),normalized:!0})}var Hv={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}},Vv=(()=>{class r extends Ks{getShaders(){let t=super.getShaders();return ee(P({},t),{vs:I2,fs:w2,source:M2,modules:[...t.modules,x2,_2]})}initializeState(){let{featureIds:t}=this.props;super.initializeState();let n=this.getAttributeManager();t&&n.add({rowIndexes:{type:"uint32",size:1,noAlloc:!0,update:this.calculateFeatureIdsPickingIndexes}})}updateState(t){super.updateState(t);let{props:n,oldProps:i}=t;n.pbrMaterial!==i.pbrMaterial&&this.updatePbrMaterialUniforms(n.pbrMaterial)}draw(t){let{featureIds:n}=this.props,{model:i}=this.state;if(!i)return;let A={pickFeatureIds:!!n},h={camera:this.context.viewport.cameraPosition};i.shaderInputs.setProps({pbrProjection:h,mesh:A}),super.draw(t)}getModel(t){let{id:n}=this.props,i=this.parseMaterial(this.props.pbrMaterial,t);this.setState({parsedPBRMaterial:i});let A=this.getShaders();return kv(t.attributes),new xs(this.context.device,ee(P({},this.getShaders()),{id:n,geometry:t,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:ee(P(P({},A.defines),i?.defines),{HAS_UV_REGIONS:t.attributes.uvRegions?1:0,HAS_FEATURE_IDS:this.props.featureIds?1:0}),parameters:i?.parameters,isInstanced:!0}))}updatePbrMaterialUniforms(t){let{model:n}=this.state;if(n){let{mesh:A}=this.props,h=this.parseMaterial(t,A);this.setState({parsedPBRMaterial:h});let{pbr_baseColorSampler:p}=h.bindings,{emptyTexture:B}=this.state,T=p||B,y=ee(P({},this.context.device.type==="webgpu"?{simpleMeshTexture:T}:{sampler:T}),{hasTexture:!!p}),i=P(P({},h.bindings),h.uniforms),{camera:E}=i,I=bn(i,["camera"]);n.shaderInputs.setProps({simpleMesh:y,pbrMaterial:I})}}parseMaterial(t,n){let i=!!(t.pbrMetallicRoughness&&t.pbrMetallicRoughness.baseColorTexture);return io(this.context.device,P({unlit:i},t),{NORMAL:n.attributes.normals,TEXCOORD_0:n.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingIndexes(t){let n=this.props.featureIds;t.value=new Uint32Array(n)}finalizeState(t){super.finalizeState(t),this.state.parsedPBRMaterial?.generatedTextures.forEach(n=>n.destroy()),this.setState({parsedPBRMaterial:null})}}return r.layerName="MeshLayer",r.defaultProps=Hv,r})(),S2=Vv;var fn=6356752314245179e-9,Jv={radii:[6378137,6378137,fn],radiiSquared:[6378137*6378137,6378137*6378137,fn*fn],oneOverRadii:[1/6378137,1/6378137,1/fn],oneOverRadiiSquared:[1/(6378137*6378137),1/(6378137*6378137),1/(fn*fn)],maximumRadius:Math.max(6378137,6378137,fn),centerToleranceSquared:.1};function ma(r){return r}var wV=new X;function jv(r,e=[],t=ma){return"longitude"in r?(e[0]=t(r.longitude),e[1]=t(r.latitude),e[2]=r.height):"x"in r?(e[0]=t(r.x),e[1]=t(r.y),e[2]=r.z):(e[0]=t(r[0]),e[1]=t(r[1]),e[2]=r[2]),e}function v2(r,e=[]){return jv(r,e,Z0._cartographicRadians?ma:Nh)}function Qv(r,e,t=ma){return"longitude"in e?(e.longitude=t(r[0]),e.latitude=t(r[1]),e.height=r[2]):"x"in e?(e.x=t(r[0]),e.y=t(r[1]),e.z=r[2]):(e[0]=t(r[0]),e[1]=t(r[1]),e[2]=r[2]),e}function F2(r,e){return Qv(r,e,Z0._cartographicRadians?ma:Gh)}var R2=1e-14,Kv=new X,L2={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"}},iu={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},fo={east:new X,north:new X,up:new X,west:new X,south:new X,down:new X},zv=new X,Xv=new X,Yv=new X;function ou(r,e,t,n,i,A){let h=L2[e]&&L2[e][t];or(h&&(!n||n===h));let p,B,T,y=Kv.copy(i);if(Nr(y.x,0,R2)&&Nr(y.y,0,R2)){let I=Math.sign(y.z);p=zv.fromArray(iu[e]),e!=="east"&&e!=="west"&&p.scale(I),B=Xv.fromArray(iu[t]),t!=="east"&&t!=="west"&&B.scale(I),T=Yv.fromArray(iu[n]),n!=="east"&&n!=="west"&&T.scale(I)}else{let{up:I,east:S,north:O}=fo;S.set(-y.y,y.x,0).normalize(),r.geodeticSurfaceNormal(y,I),O.copy(I).cross(S);let{down:N,west:Q,south:z}=fo;N.copy(I).scale(-1),Q.copy(S).scale(-1),z.copy(O).scale(-1),p=fo[e],B=fo[t],T=fo[n]}return A[0]=p.x,A[1]=p.y,A[2]=p.z,A[3]=0,A[4]=B.x,A[5]=B.y,A[6]=B.z,A[7]=0,A[8]=T.x,A[9]=T.y,A[10
vendor: 83,020 bytes, line 1123
1123]=T.z,A[11]=0,A[12]=y.x,A[13]=y.y,A[14]=y.z,A[15]=1,A}var ri=new X,Wv=new X,qv=new X;function D2(r,e,t=[]){let{oneOverRadii:n,oneOverRadiiSquared:i,centerToleranceSquared:A}=e;ri.from(r);let h=ri.x,p=ri.y,B=ri.z,T=n.x,y=n.y,E=n.z,I=h*h*T*T,S=p*p*y*y,O=B*B*E*E,N=I+S+O,Q=Math.sqrt(1/N);if(!Number.isFinite(Q))return;let z=Wv;if(z.copy(r).scale(Q),N<A)return z.to(t);let j=i.x,re=i.y,ie=i.z,ce=qv;ce.set(z.x*j*2,z.y*re*2,z.z*ie*2);let Ae=(1-Q)*ri.len()/(.5*ce.len()),he=0,W,H,U,fe;do{Ae-=he,W=1/(1+Ae*j),H=1/(1+Ae*re),U=1/(1+Ae*ie);let _e=W*W,xe=H*H,Ee=U*U,De=_e*W,Pe=xe*H,Ne=Ee*U;fe=I*_e+S*xe+O*Ee-1;let Ke=-2*(I*De*j+S*Pe*re+O*Ne*ie);he=fe/Ke}while(Math.abs(fe)>on.EPSILON12);return ri.scale([W,H,U]).to(t)}var ga=new X,P2=new X,eF=new X,Vr=new X,tF=new X,Ba=new X,ke=class{constructor(e=0,t=0,n=0){this.centerToleranceSquared=on.EPSILON1,or(e>=0),or(t>=0),or(n>=0),this.radii=new X(e,t,n),this.radiiSquared=new X(e*e,t*t,n*n),this.radiiToTheFourth=new X(e*e*e*e,t*t*t*t,n*n*n*n),this.oneOverRadii=new X(e===0?0:1/e,t===0?0:1/t,n===0?0:1/n),this.oneOverRadiiSquared=new X(e===0?0:1/(e*e),t===0?0:1/(t*t),n===0?0:1/(n*n)),this.minimumRadius=Math.min(e,t,n),this.maximumRadius=Math.max(e,t,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,t=[0,0,0]){let n=P2,i=eF,[,,A]=e;this.geodeticSurfaceNormalCartographic(e,n),i.copy(this.radiiSquared).scale(n);let h=Math.sqrt(n.dot(i));return i.scale(1/h),n.scale(A),i.add(n),i.to(t)}cartesianToCartographic(e,t=[0,0,0]){Ba.from(e);let n=this.scaleToGeodeticSurface(Ba,Vr);if(!n)return;let i=this.geodeticSurfaceNormal(n,P2),A=tF;A.copy(Ba).subtract(n);let h=Math.atan2(i.y,i.x),p=Math.asin(i.z),B=Math.sign(ec.dot(A,Ba))*ec.length(A);return F2([h,p,B],t)}eastNorthUpToFixedFrame(e,t=new Se){return ou(this,"east","north","up",e,t)}localFrameToFixedFrame(e,t,n,i,A=new Se){return ou(this,e,t,n,i,A)}geocentricSurfaceNormal(e,t=[0,0,0]){return ga.from(e).normalize().to(t)}geodeticSurfaceNormalCartographic(e,t=[0,0,0]){let n=v2(e),i=n[0],A=n[1],h=Math.cos(A);return ga.set(h*Math.cos(i),h*Math.sin(i),Math.sin(A)).normalize(),ga.to(t)}geodeticSurfaceNormal(e,t=[0,0,0]){return ga.from(e).scale(this.oneOverRadiiSquared).normalize().to(t)}scaleToGeodeticSurface(e,t){return D2(e,this,t)}scaleToGeocentricSurface(e,t=[0,0,0]){Vr.from(e);let n=Vr.x,i=Vr.y,A=Vr.z,h=this.oneOverRadiiSquared,p=1/Math.sqrt(n*n*h.x+i*i*h.y+A*A*h.z);return Vr.multiplyScalar(p).to(t)}transformPositionToScaledSpace(e,t=[0,0,0]){return Vr.from(e).scale(this.oneOverRadii).to(t)}transformPositionFromScaledSpace(e,t=[0,0,0]){return Vr.from(e).scale(this.radii).to(t)}getSurfaceNormalIntersectionWithZAxis(e,t=0,n=[0,0,0]){or(Nr(this.radii.x,this.radii.y,on.EPSILON15)),or(this.radii.z>0),Vr.from(e);let i=Vr.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(i)>=this.radii.z-t))return Vr.set(0,0,i).to(n)}};ke.WGS84=new ke(6378137,6378137,fn);var Ca=class{item;previous;next;constructor(e,t,n){this.item=e,this.previous=t,this.next=n}};var Ta=class{head=null;tail=null;_length=0;get length(){return this._length}add(e){let t=new Ca(e,this.tail,null);return this.tail?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t}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,t){e!==t&&(this.remove(t),this._insert(e,t))}_insert(e,t){let n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e,++this._length}};var ya=class{_list;_sentinel;_trimTiles;constructor(){this._list=new Ta,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){let t=e._cacheNode;t&&this._list.splice(this._sentinel,t)}add(e,t,n){t._cacheNode||(t._cacheNode=this._list.add(t),n&&n(e,t))}unloadTile(e,t,n){let i=t._cacheNode;i&&(this._list.remove(i),t._cacheNode=null,n&&n(e,t))}unloadTiles(e,t){let n=this._trimTiles;this._trimTiles=!1;let i=this._list,A=e.maximumMemoryUsage*1024*1024,h=this._sentinel,p=i.head;for(;p!==h&&(e.gpuMemoryUsageInBytes>A||n);){let B=p.item;p=p.next,this.unloadTile(e,B,t)}}trim(){this._trimTiles=!0}};function O2(r,e){qe(r),qe(e);let{rtcCenter:t,gltfUpAxis:n}=e,{computedTransform:i,boundingVolume:{center:A}}=r,h=new Se(i);switch(t&&h.translate(t),n){case"Z":break;case"Y":let I=new Se().rotateX(Math.PI/2);h=h.multiplyRight(I);break;case"X":let S=new Se().rotateY(-Math.PI/2);h=h.multiplyRight(S);break;default:break}e.isQuantized&&h.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let p=new X(A);e.cartesianModelMatrix=h,e.cartesianOrigin=p;let B=ke.WGS84.cartesianToCartographic(p,new X),y=ke.WGS84.eastNorthUpToFixedFrame(p).invert();e.cartographicModelMatrix=y.multiplyRight(h),e.cartographicOrigin=B;let E=nF(e);E&&(e.cartesianModelMatrix=new Se(h).multiplyRight(E.matrix),e.cartographicModelMatrix.multiplyRight(E.matrix),E.matrix=Se.IDENTITY),e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var rF=1e6**2;function nF(r){let e=r.gltf;if(!e)return null;let t=typeof e.scene=="number"?e.scene:0,i=e.scenes?.[t]?.nodes?.[0];if(!i?.matrix)return null;let A=i.matrix;return A[12]*A[12]+A[13]*A[13]+A[14]*A[14]<=rF?null:i}var N2=new X,Au=new X,au=new Zr([new jt,new jt,new jt,new jt,new jt,new jt]);function U2(r,e){let{cameraDirection:t,cameraUp:n,height:i}=r,{metersPerUnit:A}=r.distanceScales,h=ba(r,r.center),p=ke.WGS84.eastNorthUpToFixedFrame(h),B=r.unprojectPosition(r.cameraPosition),T=ke.WGS84.cartographicToCartesian(B,new X),y=new X(p.transformAsVector(new X(t).scale(A))).normalize(),E=new X(p.transformAsVector(new X(n).scale(A))).normalize();sF(r);let I=r.constructor,{longitude:S,latitude:O,width:N,bearing:Q,zoom:z}=r,j=new I({longitude:S,latitude:O,height:i,width:N,bearing:Q,zoom:z,pitch:0});return{camera:{position:T,direction:y,up:E},viewport:r,topDownViewport:j,height:i,cullingVolume:au,frameNumber:e,sseDenominator:1.15}}function k2(r,e,t){if(t===0||r.length<=t)return[r,[]];let n=[],{longitude:i,latitude:A}=e.viewport;for(let[T,y]of r.entries()){let[E,I]=y.header.mbs,S=Math.abs(i-E),O=Math.abs(A-I),N=Math.sqrt(O*O+S*S);n.push([T,N])}let h=n.sort((T,y)=>T[1]-y[1]),p=[];for(let T=0;T<t;T++)p.push(r[h[T][0]]);let B=[];for(let T=t;T<h.length;T++)B.push(r[h[T][0]]);return[p,B]}function sF(r){let e=r.getFrustumPlanes(),t=G2(e.near,r.cameraPosition),n=ba(r,t),i=ba(r,r.cameraPosition,Au),A=0;au.planes[A++].fromPointNormal(n,N2.copy(n).subtract(i));for(let h in e){if(h==="near")continue;let p=e[h],B=G2(p,t,Au),T=ba(r,B,Au);au.planes[A++].fromPointNormal(T,N2.copy(n).subtract(T))}}function G2(r,e,t=new X){let n=r.normal.dot(e);return t.copy(r.normal).scale(r.distance-n).add(e),t}function ba(r,e,t=new X){let n=r.unprojectPosition(e);return ke.WGS84.cartographicToCartesian(n,t)}var iF=6378137,oF=6378137,cu=6356752314245179e-9,ni=new X;function H2(r,e){if(r instanceof cn){let{halfAxes:t}=r,n=AF(t);return Math.log2(cu/(n+e[2]))}else if(r instanceof qr){let{radius:t}=r;return Math.log2(cu/(t+e[2]))}else if(r.width&&r.height){let{width:t,height:n}=r,i=Math.log2(iF/t),A=Math.log2(oF/n);return(i+A)/2}return 1}function lu(r,e,t){ke.WGS84.cartographicToCartesian([r.xmax,r.ymax,r.zmax],ni);let n=Math.sqrt(Math.pow(ni[0]-t[0],2)+Math.pow(ni[1]-t[1],2)+Math.pow(ni[2]-t[2],2));return Math.log2(cu/(n+e[2]))}function V2(r,e,t){let[n,i,A,h]=r;return lu({xmin:n,xmax:A,ymin:i,ymax:h,zmin:0,zmax:0},e,t)}function AF(r){r.getColumn(0,ni);let e=r.getColumn(1),t=r.getColumn(2);return ni.add(e).add(t).len()}var $t={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},er=(function(r){return r[r.ADD=1]="ADD",r[r.REPLACE=2]="REPLACE",r})(er||{}),Jr=(function(r){return r.EMPTY="empty",r.SCENEGRAPH="scenegraph",r.POINTCLOUD="pointcloud",r.MESH="mesh",r})(Jr||{}),Vt=(function(r){return r.I3S="I3S",r.TILES3D="TILES3D",r})(Vt||{}),Ln=(function(r){return r.GEOMETRIC_ERROR="geometricError",r.MAX_SCREEN_THRESHOLD="maxScreenThreshold",r})(Ln||{}),J2={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function z2(r){return r!=null}var Qt=new X,Ea=new X,aF=new X,cF=new X,As=new X,j2=new X,Q2=new X,K2=new X;function _a(r,e,t){if(qe(r,"3D Tile: boundingVolume must be defined"),r.box)return Y2(r.box,e,t);if(r.region)return uF(r.region);if(r.sphere)return lF(r.sphere,e,t);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function X2(r,e){if(r.box)return fF(e);if(r.region){let[t,n,i,A,h,p]=r.region;return[[Or(t),Or(n),h],[Or(i),Or(A),p]]}if(r.sphere)return hF(e);throw new Error("Unkown boundingVolume type")}function Y2(r,e,t){let n=new X(r[0],r[1],r[2]);e.transform(n,n);let i=[];if(r.length===10){let T=r.slice(3,6),y=new Kn;y.fromArray(r,6);let E=new X([1,0,0]),I=new X([0,1,0]),S=new X([0,0,1]);E.transformByQuaternion(y),E.scale(T[0]),I.transformByQuaternion(y),I.scale(T[1]),S.transformByQuaternion(y),S.scale(T[2]),i=[...E.toArray(),...I.toArray(),...S.toArray()]}else i=[...r.slice(3,6),...r.slice(6,9),...r.slice(9,12)];let A=e.transformAsVector(i.slice(0,3)),h=e.transformAsVector(i.slice(3,6)),p=e.transformAsVector(i.slice(6,9)),B=new He([A[0],A[1],A[2],h[0],h[1],h[2],p[0],p[1],p[2]]);return z2(t)?(t.center=n,t.halfAxes=B,t):new cn(n,B)}function lF(r,e,t){let n=new X(r[0],r[1],r[2]);e.transform(n,n);let i=e.getScale(Ea),A=Math.max(Math.max(i[0],i[1]),i[2]),h=r[3]*A;return z2(t)?(t.center=n,t.radius=h,t):new qr(n,h)}function uF(r){let[e,t,n,i,A,h]=r,p=ke.WGS84.cartographicToCartesian([Or(e),Or(i),A],aF),B=ke.WGS84.cartographicToCartesian([Or(n),Or(t),h],cF),T=new X().addVectors(p,B).multiplyByScalar(.5);return ke.WGS84.cartesianToCartographic(T,As),ke.WGS84.cartographicToCartesian([Or(n),As[1],As[2]],j2),ke.WGS84.cartographicToCartesian([As[0],Or(i),As[2]],Q2),ke.WGS84.cartographicToCartesian([As[0],As[1],h],K2),Y2([...T,...j2.subtract(T),...Q2.subtract(T),...K2.subtract(T)],new Se)}function fF(r){let e=W2(),{halfAxes:t}=r,n=new X(t.getColumn(0)),i=new X(t.getColumn(1)),A=new X(t.getColumn(2));for(let h=0;h<2;h++){for(let p=0;p<2;p++){for(let B=0;B<2;B++)Qt.copy(r.center),Qt.add(n),Qt.add(i),Qt.add(A),q2(e,Qt),A.negate();i.negate()}n.negate()}return e}function hF(r){let e=W2(),{center:t,radius:n}=r,i=ke.WGS84.scaleToGeodeticSurface(t,Qt),A;i?A=ke.WGS84.geodeticSurfaceNormal(i):A=new X(0,0,1);let h=new X(A[2],-A[1],0);h.len()>0?h.normalize():h=new X(0,1,0);let p=h.clone().cross(A);for(let B of[h,p,A]){Ea.copy(B).scale(n);for(let T=0;T<2;T++)Qt.copy(t),Qt.add(Ea),q2(e,Qt),Ea.negate()}return e}function W2(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function q2(r,e){ke.WGS84.cartesianToCartographic(e,Qt),r[0][0]=Math.min(r[0][0],Qt[0]),r[0][1]=Math.min(r[0][1],Qt[1]),r[0][2]=Math.min(r[0][2],Qt[2]),r[1][0]=Math.max(r[1][0],Qt[0]),r[1][1]=Math.max(r[1][1],Qt[1]),r[1][2]=Math.max(r[1][2],Qt[2])}var hJ=new X,dJ=new X,pJ=new Se,mJ=new X,gJ=new X,BJ=new X;function dF(r,e){let t=r*e;return 1-Math.exp(-(t*t))}function pF(r,e){if(r.dynamicScreenSpaceError&&r.dynamicScreenSpaceErrorComputedDensity){let t=r.dynamicScreenSpaceErrorComputedDensity,n=r.dynamicScreenSpaceErrorFactor;return dF(e,t)*n}return 0}function Z2(r,e,t){let n=r.tileset,i=r.parent&&r.parent.lodMetricValue||r.lodMetricValue,A=t?i:r.lodMetricValue;if(A===0)return 0;let h=Math.max(r._distanceToCamera,1e-7),{height:p,sseDenominator:B}=e,{viewDistanceScale:T}=n.options,y=A*p*(T||1)/(h*B);return y-=pF(n,h),y}var uu=new X,$2=new X,Dn=new X,e1=new X,mF=new X,fu=new Se,t1=new Se;function r1(r,e){if(r.lodMetricValue===0||isNaN(r.lodMetricValue))return"DIG";let t=2*hu(r,e);return t<2?"OUT":!r.header.children||t<=r.lodMetricValue?"DRAW":r.header.children?"DIG":"OUT"}function hu(r,e){let{topDownViewport:t}=e,n=r.header.mbs[1],i=r.header.mbs[0],A=r.header.mbs[2],h=r.header.mbs[3],p=[...r.boundingVolume.center],B=t.unprojectPosition(t.cameraPosition);ke.WGS84.cartographicToCartesian(B,uu),$2.copy(uu).subtract(p).normalize(),ke.WGS84.eastNorthUpToFixedFrame(p,fu),t1.copy(fu).invert(),Dn.copy(uu).transform(t1);let T=Math.sqrt(Dn[0]*Dn[0]+Dn[1]*Dn[1]),y=T*T/Dn[2];e1.copy([Dn[0],Dn[1],y]);let I=e1.transform(fu).subtract(p).normalize(),O=$2.cross(I).normalize().scale(h).add(p),N=ke.WGS84.cartesianToCartographic(O),Q=t.project([i,n,A]),z=t.project(N);return mF.copy(Q).subtract(z).magnitude()}function n1(r){return{assetGltfUpAxis:r.asset&&r.asset.gltfUpAxis||"Y"}}var ho=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 qe(e<this._array.length),this._array[e]}set(e,t){qe(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=t,this._map.set(t,e)}delete(e){let t=this._map.get(e);t>=0&&(this._array.splice(t,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){let t=this.length++;this._array[t]=e,this._map.set(e,t)}}pop(){let e=this._array[--this.length];return this._map.delete(e),e}reserve(e){qe(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){qe(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 gF={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""},en=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new ho;_emptyTraversalStack=new ho;_frameNumber=null;traversalFinished(e){return!0}constructor(e){this.options=P(P({},gF),e)}traverse(e,t,n){this.root=e,this.options=P(P({},this.options),n),this.reset(),this.updateTile(e,t),this._frameNumber=t.frameNumber,this.executeTraversal(e,t)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,t){let n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){let A=n.pop(),h=!1;this.canTraverse(A,t)&&(this.updateChildTiles(A,t),h=this.updateAndPushChildren(A,t,n,A.hasRenderContent?A._selectionDepth+1:A._selectionDepth));let p=A.parent,B=!!(!p||p._shouldRefine),T=!h;A.hasRenderContent?A.refine===er.ADD?(this.loadTile(A,t),this.selectTile(A,t)):A.refine===er.REPLACE&&(this.loadTile(A,t),T&&this.selectTile(A,t)):(this.emptyTiles[A.id]=A,this.loadTile(A,t),T&&this.selectTile(A,t)),this.touchTile(A,t),A._shouldRefine=h&&B}let i=new Date().getTime();(this.traversalFinished(t)||i-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=i,this.options.onTraversalEnd(t))}updateChildTiles(e,t){let n=e.children;for(let i of n)this.updateTile(i,t)}updateAndPushChildren(e,t,n,i){let{loadSiblings:A,skipLevelOfDetail:h}=this.options,p=e.children;p.sort(this.compareDistanceToCamera.bind(this));let B=e.refine===er.REPLACE&&e.hasRenderContent&&!h,T=!1,y=!0;for(let E of p)if(E._selectionDepth=i,E.isVisibleAndInRequestVolume?(n.find(E)&&n.delete(E),n.push(E),T=!0):(B||A)&&(this.loadTile(E,t),this.touchTile(E,t)),B){let I;if(E._inRequestVolume?E.hasRenderContent?I=E.contentAvailable:I=this.executeEmptyTraversal(E,t):I=!1,y=y&&I,!y)return!1}return T||(y=!1),y}updateTile(e,t){this.updateTileVisibility(e,t)}selectTile(e,t){this.shouldSelectTile(e)&&(e._selectedFrame=t.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,t){this.shouldLoadTile(e)&&(e._requestedFrame=t.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,t){e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber}canTraverse(e,t){return e.hasChildren?e.hasTilesetContent?!e.contentExpired:this.shouldRefine(e,t):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,t,n=!1){let i=e._screenSpaceError;return n&&(i=e.getScreenSpaceError(t,!0)),i>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,t){let n=[];if(this.options.viewportTraversersMap)for(let i in this.options.viewportTraversersMap)this.options.viewportTraversersMap[i]===t.viewport.id&&n.push(i);else n.push(t.viewport.id);e.updateVisibility(t,n)}compareDistanceToCamera(e,t){return e._distanceToCamera-t._distanceToCamera}anyChildrenVisible(e,t){let n=!1;for(let i of e.children)i.updateVisibility(t),n=n||i.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,t){let n=!0,i=this._emptyTraversalStack;for(i.push(e);i.length>0;){let A=i.pop(),h=!A.hasRenderContent&&this.canTraverse(A,t),p=!A.hasRenderContent&&A.children.length===0;if(!h&&!A.contentAvailable&&!p&&(n=!1),this.updateTile(A,t),A.isVisibleAndInRequestVolume||(this.loadTile(A,t),this.touchTile(A,t)),h){let B=A.children;for(let T of B)i.push(T)}}return e.hasEmptyContent||n}};var s1=new X;function BF(r){return r!=null}var as=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=$t.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new Se;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new en({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new Se;_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,t,n,i=""){this.header=t,this.tileset=e,this.id=i||t.id,this.url=t.url,this.parent=n,this.refine=this._getRefine(t.refine),this.type=t.type,this.contentUrl=t.contentUrl,this._initializeLodMetric(t),this._initializeTransforms(t),this._initializeBoundingVolumes(t),this._initializeContent(t),this._initializeRenderingState(t),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===$t.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===$t.UNLOADED}get contentExpired(){return this.contentState===$t.EXPIRED}get contentFailed(){return this.contentState===$t.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=X2(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,t){switch(this.tileset.type){case Vt.I3S:return hu(this,e);case Vt.TILES3D:return Z2(this,e,t);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:t}=e.options,n=this.refine===er.ADD||t;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===$t.UNLOADED)return-1;let i=this.parent,h=i&&(!n||this._screenSpaceError===0||i.hasTilesetContent)?i._screenSpaceError:this._screenSpaceError,p=e.root?e.root._screenSpaceError:0;return Math.max(p-h,0)}loadContent(){return Z(this,null,function*(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=$t.LOADING;let t=yield this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!t)return this.contentState=$t.UNLOADED,!1;try{let n=this.tileset.getTileUrl(this.contentUrl),i=this.tileset.loader,A=this.tileset.loadOptions[i.id]||{},h=ee(P({},this.tileset.loadOptions),{[i.id]:P(ee(P({},A),{isTileset:this.type==="json"}),this._getLoaderSpecificOptions(i.id))});return this.content=yield En(n,i,h),this.tileset.options.contentLoader&&(yield this.tileset.options.contentLoader(this)),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=$t.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=$t.FAILED,n}finally{t.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=$t.UNLOADED,this.tileDrawn=!0,!0}updateVisibility(e,t){if(this._frameNumber===e.frameNumber)return;let n=this.parent,i=n?n._visibilityPlaneMask:Zr.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let A=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(A)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,i),this._visible=this._visibilityPlaneMask!==Zr.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=t}visibility(e,t){let{cullingVolume:n}=e,{boundingVolume:i}=this;return n.computeVisibilityWithPlaneMask(i,t)}contentVisibility(){return!0}distanceToTile(e){let t=this.boundingVolume;return Math.sqrt(Math.max(t.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth({camera:e}){let t=this.boundingVolume;return s1.subVectors(t.center,e.position),e.direction.dot(s1)}insideViewerRequestVolume(e){let t=this._viewerRequestVolume;return!t||t.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(BF(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=$t.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 Se(e.transform):new Se;let t=this.parent,n=this.tileset,i=t&&t.computedTransform?t.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new Se(i).multiplyRight(this.transform);let A=t&&t._initialTransform?t._initialTransform.clone():new Se;this._initialTransform=new Se(A).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=$t.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=Zr.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||er.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=_a(e.boundingVolume,this.computedTransform,this.boundingVolume);let t=e.content;t&&(t.boundingVolume&&(this._contentBoundingVolume=_a(t.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=_a(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(e=new Se){let t=e.clone().multiplyRight(this.transform);t.equals(this.computedTransform)||(this.computedTransform=t,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){return e==="i3s"?ee(P({},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}):n1(this.tileset.tileset)}};var xa=class extends en{compareDistanceToCamera(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,t){if(super.updateTileVisibility(e,t),!e.isVisibleAndInRequestVolume)return;let n=e.children.length>0;if(e.hasTilesetContent&&n){let h=e.children[0];this.updateTileVisibility(h,t),e._visible=h._visible;return}if(this.meetsScreenSpaceErrorEarly(e,t)){e._visible=!1;return}let i=e.refine===er.REPLACE,A=e._optimChildrenWithinParent===J2.USE_OPTIMIZATION;if(i&&A&&n&&!this.anyChildrenVisible(e,t)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,t){let{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==er.ADD?!1:!this.shouldRefine(e,t,!0)}};var Ia=class{frameNumberMap=new Map;register(e,t){let n=this.frameNumberMap.get(e)||new Map,i=n.get(t)||0;n.set(t,i+1),this.frameNumberMap.set(e,n)}deregister(e,t){let n=this.frameNumberMap.get(e);if(!n)return;let i=n.get(t)||1;n.set(t,i-1)}isZero(e,t){return(this.frameNumberMap.get(e)?.get(t)||0)===0}};var du={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"},wa=class{_statusMap;pendingTilesRegister=new Ia;constructor(){this._statusMap={}}add(e,t,n,i){if(!this._statusMap[t]){let{frameNumber:A,viewport:{id:h}}=i;this._statusMap[t]={request:e,callback:n,key:t,frameState:i,status:du.REQUESTED},this.pendingTilesRegister.register(h,A),e().then(p=>{this._statusMap[t].status=du.COMPLETED;let{frameNumber:B,viewport:{id:T}}=this._statusMap[t].frameState;this.pendingTilesRegister.deregister(T,B),this._statusMap[t].callback(p,i)}).catch(p=>{this._statusMap[t].status=du.ERROR;let{frameNumber:B,viewport:{id:T}}=this._statusMap[t].frameState;this.pendingTilesRegister.deregister(T,B),n(p)})}}update(e,t){if(this._statusMap[e]){let{frameNumber:n,viewport:{id:i}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(i,n);let{frameNumber:A,viewport:{id:h}}=t;this.pendingTilesRegister.register(h,A),this._statusMap[e].frameState=t}}find(e){return this._statusMap[e]}hasPendingTiles(e,t){return!this.pendingTilesRegister.isZero(e,t)}};var Ma=class extends en{_tileManager;constructor(e){super(e),this._tileManager=new wa}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,t){return e._lodJudge=r1(e,t),e._lodJudge==="DIG"}updateChildTiles(e,t){let n=e.header.children||[],i=e.children,A=e.tileset;for(let h of n){let p=`${h.id}-${t.viewport.id}`,B=i&&i.find(T=>T.id===p);if(B)B&&this.updateTile(B,t);else{let T=()=>this._loadTile(h.id,A);this._tileManager.find(p)?this._tileManager.update(p,t):(A.tileset.nodePages&&(T=()=>A.tileset.nodePagesTile.formTileFromNodePages(h.id)),this._tileManager.add(T,p,E=>this._onTileLoad(E,e,p),t))}}return!1}_loadTile(e,t){return Z(this,null,function*(){let{loader:n}=t,i=t.getTileUrl(`${t.url}/nodes/${e}`),A=ee(P({},t.loadOptions),{i3s:ee(P({},t.loadOptions.i3s),{isTileHeader:!0})});return yield En(i,n,A)})}_onTileLoad(e,t,n){let i=new as(t.tileset,e,t,n);t.children.push(i);let A=this._tileManager.find(i.id).frameState;this.updateTile(i,A),this._frameNumber===A.frameNumber&&(this.traversalFinished(A)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(i,A)}};var CF={description:"",ellipsoid:ke.WGS84,modelMatrix:new Se,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:r=>r,onUpdate:()=>{},contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},Sa="Tiles In Tileset(s)",pu="Tiles In Memory",i1="Tiles In View",o1="Tiles To Render",A1="Tiles Loaded",mu="Tiles Loading",a1="Tiles Unloaded",c1="Failed Tile Loads",l1="Points/Vertices",gu="Tile Memory Use",u1="Maximum Screen Space Error",po=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 ya;_requestScheduler;_heldTiles=new Set;updatePromise=null;tilesetInitializationPromise;constructor(e,t){this.options=P(P({},CF),t),this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Es.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 Jo({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 Rh({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=P(P({},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)})}selectTiles(e=null){return Z(this,null,function*(){return yield this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(t=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),t(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 t=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=t.length;let n=[];for(let i of t){let A=i.id;this._needTraverse(A)?n.push(A):this.traverseCounter--}for(let i of t){let A=i.id;if(this.roots[A]||(this.roots[A]=this._initializeTileHeaders(this.tileset,null)),!n.includes(A))continue;let h=U2(i,this._frameNumber);this._traverser.traverse(this.roots[A],h,this.options)}}_needTraverse(e){let t=e;return this.options.viewportTraversersMap&&(t=this.options.viewportTraversersMap[e]),t===e}_onTraversalEnd(e){let t=e.viewport.id;this.frameStateData[t]||(this.frameStateData[t]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let n=this.frameStateData[t],i=Object.values(this._traverser.selectedTiles),[A,h]=k2(i,e,this.options.maximumTilesSelected);n.selectedTiles=A;for(let p of h)p.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 A in this.frameStateData){let h=this.frameStateData[A];this.selectedTiles=this.selectedTiles.concat(h.selectedTiles),this._requestedTiles=this._requestedTiles.concat(h._requestedTiles),this._emptyTiles=this._emptyTiles.concat(h._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);let t=new Set(this.selectedTiles.map(A=>A.id)),n=this.selectedTiles.some(A=>!A.tileDrawn),i=0;if(n){for(let A of t)this._heldTiles.add(A);for(let A of this._heldTiles){if(t.has(A))continue;let h=this._tiles[A];h&&h.contentAvailable?(h._selectedFrame=this._frameNumber,this.selectedTiles.push(h),i++):this._heldTiles.delete(A)}}else this._heldTiles=t;i>0&&setTimeout(()=>{this.selectTiles()},0);for(let A of this.selectedTiles)this._tiles[A.id]=A;this._loadTiles(),this._unloadTiles(),this._updateStats(),this._tilesChanged(e,this.selectedTiles)&&this.options.onUpdate()}_tilesChanged(e,t){if(e.length!==t.length)return!0;let n=new Set(e.map(h=>h.id)),i=new Set(t.map(h=>h.id)),A=e.filter(h=>!i.has(h.id)).length>0;return A=A||t.filter(h=>!n.has(h.id)).length>0,A}_loadTiles(){this._requestedTiles.sort((e,t)=>e._priority-t._priority);for(let e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,t)=>e._unloadTile(t))}_updateStats(){let e=0,t=0;for(let n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?t+=n.content.pointCount:t+=n.content.vertexCount);this.stats.get(i1).count=this.selectedTiles.length,this.stats.get(o1).count=e,this.stats.get(l1).count=t,this.stats.get(u1).count=this.memoryAdjustedScreenSpaceError}_initializeTileSet(e){return Z(this,null,function*(){this.type===Vt.I3S&&(this.calculateViewPropsI3S(),e.root=yield e.root),this.root=this._initializeTileHeaders(e,null),this.type===Vt.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===Vt.I3S&&this._initializeI3STileset()})}calculateViewPropsI3S(){let e=this.tileset.fullExtent;if(e){let{xmin:n,xmax:i,ymin:A,ymax:h,zmin:p,zmax:B}=e;this.cartographicCenter=new X(n+(i-n)/2,A+(h-A)/2,p+(B-p)/2),this.cartesianCenter=new X,ke.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=lu(e,this.cartographicCenter,this.cartesianCenter);return}let t=this.tileset.store?.extent;if(t){let[n,i,A,h]=t;this.cartographicCenter=new X(n+(A-n)/2,i+(h-i)/2,0),this.cartesianCenter=new X,ke.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=V2(t,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new X,this.zoom=1}calculateViewPropsTiles3D(){let e=this.root,{center:t}=e.boundingVolume;if(!t){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new X,this.zoom=1;return}t[0]!==0||t[1]!==0||t[2]!==0?(this.cartographicCenter=new X,ke.WGS84.cartesianToCartographic(t,this.cartographicCenter)):this.cartographicCenter=new X(0,0,-ke.WGS84.radii[0]),this.cartesianCenter=t,this.zoom=H2(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(Sa),this.stats.get(mu),this.stats.get(pu),this.stats.get(i1),this.stats.get(o1),this.stats.get(A1),this.stats.get(a1),this.stats.get(c1),this.stats.get(l1),this.stats.get(gu,"memory"),this.stats.get(u1)}_initializeTileHeaders(e,t){let n=new as(this,e.root,t);if(t&&(t.children.push(n),n.depth=t.depth+1),this.type===Vt.TILES3D){let i=[];for(i.push(n);i.length>0;){let A=i.pop();this.stats.get(Sa).incrementCount();let h=A.header.children||[];for(let p of h){let B=new as(this,p,A);if(B.contentUrl?.includes("?session=")){let y=new URL(B.contentUrl).searchParams.get("session");y&&(this._queryParams.session=y)}A.children.push(B),B.depth=A.depth+1,i.push(B)}}}return n}_initializeTraverser(){let e;switch(this.type){case Vt.TILES3D:e=xa;break;case Vt.I3S:e=Ma;break;default:e=en}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}_loadTile(e){return Z(this,null,function*(){let t;try{this._onStartTileLoading(),t=yield e.loadContent()}catch(n){this._onTileLoadError(e,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,t)}})}_onTileLoadError(e,t){this.stats.get(c1).incrementCount();let n=t.message||t.toString(),i=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}`),this.options.onTileError(e,n,i)}_onTileLoad(e,t){if(t){if(this.type===Vt.I3S){let n=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(Sa).reset(),this.stats.get(Sa).addCount(n)}e&&e.content&&O2(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===Vt.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===Vt.TILES3D){let{extensionsRemoved:t=[]}=e.content?.gltf||{};t.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),t.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),t.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(mu).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(mu).decrementCount()}_addTileToCache(e){this._cache.add(this,e,t=>t._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(A1).incrementCount(),this.stats.get(pu).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(gu).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(pu).decrementCount(),this.stats.get(a1).incrementCount(),this.stats.get(gu).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){let e=[];for(this.root&&e.push(this.root);e.length>0;){let t=e.pop();for(let n of t.children)e.push(n);this._destroyTile(t)}this.root=null}_destroySubtree(e){let t=e,n=[];for(n.push(t);n.length>0;){e=n.pop();for(let i of e.children)n.push(i);e!==t&&this._destroyTile(e)}t.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){let t=new URLSearchParams(e.queryString),n=Object.fromEntries(t.entries());this._queryParams=P(P({},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 va="4.4.4";var cs={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GEOMETRY:"geom",VECTOR:"vect",GLTF:"glTF"},Cj=Object.keys(cs);function Bu(r,e,t){qe(r instanceof ArrayBuffer);let n=new TextDecoder("utf8"),i=new Uint8Array(r,e,t);return n.decode(i)}function f1(r,e=0){let t=new DataView(r);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))}`}var TF={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},Et={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},Oe=P(P({},TF),Et);var Cu={[Et.DOUBLE]:Float64Array,[Et.FLOAT]:Float32Array,[Et.UNSIGNED_SHORT]:Uint16Array,[Et.UNSIGNED_INT]:Uint32Array,[Et.UNSIGNED_BYTE]:Uint8Array,[Et.BYTE]:Int8Array,[Et.SHORT]:Int16Array,[Et.INT]:Int32Array},yF={DOUBLE:Et.DOUBLE,FLOAT:Et.FLOAT,UNSIGNED_SHORT:Et.UNSIGNED_SHORT,UNSIGNED_INT:Et.UNSIGNED_INT,UNSIGNED_BYTE:Et.UNSIGNED_BYTE,BYTE:Et.BYTE,SHORT:Et.SHORT,INT:Et.INT},Tu="Failed to convert GL type",Br=class r{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let t in Cu)if(Cu[t]===e)return t;throw new Error(Tu)}static fromName(e){let t=yF[e];if(!t)throw new Error(Tu);return t}static getArrayType(e){switch(e){case Et.UNSIGNED_SHORT_5_6_5:case Et.UNSIGNED_SHORT_4_4_4_4:case Et.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let t=Cu[e];if(!t)throw new Error(Tu);return t}}static getByteSize(e){return r.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return!!r.getArrayType(e)}static createTypedArray(e,t,n=0,i){i===void 0&&(i=(t.byteLength-n)/r.getByteSize(e));let A=ArrayBuffer.isView(t)?t.buffer:t,h=r.getArrayType(e);return new h(A,n,i)}};function h1(r,e){if(!r)throw new Error(`math.gl assertion failed. ${e}`)}function yu(r,e=[0,0,0]){let t=r>>11&31,n=r>>5&63,i=r&31;return e[0]=t<<3,e[1]=n<<2,e[2]=i<<3,e}var Fj=1/256;var Rj=new Xo,Lj=new X,Dj=new Xo,Pj=new Xo,Oj=new Uint8Array(1);function d1(r,e=255){return $0(r,0,e)/e*2-1}function p1(r){return r<0?-1:1}function m1(r,e,t,n){if(h1(n),r<0||r>t||e<0||e>t)throw new Error(`x and y must be unsigned normalized integers between 0 and ${t}`);if(n.x=d1(r,t),n.y=d1(e,t),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){let i=n.x;n.x=(1-Math.abs(n.y))*p1(i),n.y=(1-Math.abs(i))*p1(n.y)}return n.normalize()}function bu(r,e,t){return m1(r,e,255,t)}var Pn=class{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(e,t){this.json=e,this.buffer=t}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return!!this.json[e]}getGlobalProperty(e,t=Oe.UNSIGNED_INT,n=1){let i=this.json[e];return i&&Number.isFinite(i.byteOffset)?this._getTypedArrayFromBinary(e,t,n,1,i.byteOffset):i}getPropertyArray(e,t,n){let i=this.json[e];return i&&Number.isFinite(i.byteOffset)?("componentType"in i&&(t=Br.fromName(i.componentType)),this._getTypedArrayFromBinary(e,t,n,this.featuresLength,i.byteOffset)):this._getTypedArrayFromArray(e,t,i)}getProperty(e,t,n,i,A){let h=this.json[e];if(!h)return h;let p=this.getPropertyArray(e,t,n);if(n===1)return p[i];for(let B=0;B<n;++B)A[B]=p[n*i+B];return A}_getTypedArrayFromBinary(e,t,n,i,A){let h=this._cachedTypedArrays,p=h[e];return p||(p=Br.createTypedArray(t,this.buffer.buffer,this.buffer.byteOffset+A,i*n),h[e]=p),p}_getTypedArrayFromArray(e,t,n){let i=this._cachedTypedArrays,A=i[e];if(!A){if(ArrayBuffer.isView(n)){let h=n.byteOffset,B=n.byteLength/Br.getByteSize(t);A=Br.createTypedArray(t,n.buffer,h,B)}else if(n instanceof ArrayBuffer)A=Br.createTypedArray(t,n);else{let h=Br.getArrayType(t);A=new h(n)}i[e]=A}return A}};var bF={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},EF={SCALAR:(r,e)=>r[e],VEC2:(r,e)=>[r[2*e+0],r[2*e+1]],VEC3:(r,e)=>[r[3*e+0],r[3*e+1],r[3*e+2]],VEC4:(r,e)=>[r[4*e+0],r[4*e+1],r[4*e+2],r[4*e+3]],MAT2:(r,e)=>[r[4*e+0],r[4*e+1],r[4*e+2],r[4*e+3]],MAT3:(r,e)=>[r[9*e+0],r[9*e+1],r[9*e+2],r[9*e+3],r[9*e+4],r[9*e+5],r[9*e+6],r[9*e+7],r[9*e+8]],MAT4:(r,e)=>[r[16*e+0],r[16*e+1],r[16*e+2],r[16*e+3],r[16*e+4],r[16*e+5],r[16*e+6],r[16*e+7],r[16*e+8],r[16*e+9],r[16*e+10],r[16*e+11],r[16*e+12],r[16*e+13],r[16*e+14],r[16*e+15]]},_F={SCALAR:(r,e,t)=>{e[t]=r},VEC2:(r,e,t)=>{e[2*t+0]=r[0],e[2*t+1]=r[1]},VEC3:(r,e,t)=>{e[3*t+0]=r[0],e[3*t+1]=r[1],e[3*t+2]=r[2]},VEC4:(r,e,t)=>{e[4*t+0]=r[0],e[4*t+1]=r[1],e[4*t+2]=r[2],e[4*t+3]=r[3]},MAT2:(r,e,t)=>{e[4*t+0]=r[0],e[4*t+1]=r[1],e[4*t+2]=r[2],e[4*t+3]=r[3]},MAT3:(r,e,t)=>{e[9*t+0]=r[0],e[9*t+1]=r[1],e[9*t+2]=r[2],e[9*t+3]=r[3],e[9*t+4]=r[4],e[9*t+5]=r[5],e[9*t+6]=r[6],e[9*t+7]=r[7],e[9*t+8]=r[8],e[9*t+9]=r[9]},MAT4:(r,e,t)=>{e[16*t+0]=r[0],e[16*t+1]=r[1],e[16*t+2]=r[2],e[16*t+3]=r[3],e[16*t+4]=r[4],e[16*t+5]=r[5],e[16*t+6]=r[6],e[16*t+7]=r[7],e[16*t+8]=r[8],e[16*t+9]=r[9],e[16*t+10]=r[10],e[16*t+11]=r[11],e[16*t+12]=r[12],e[16*t+13]=r[13],e[16*t+14]=r[14],e[16*t+15]=r[15]}};function g1(r,e,t,n){let{componentType:i}=r;qe(r.componentType);let A=typeof i=="string"?Br.fromName(i):i,h=bF[r.type],p=EF[r.type],B=_F[r.type];return t+=r.byteOffset,{values:Br.createTypedArray(A,e,t,h*n),type:A,size:h,unpacker:p,packer:B}}var tn=r=>r!==void 0;function B1(r,e,t){if(!e)return null;let n=r.getExtension("3DTILES_batch_table_hierarchy"),i=e.HIERARCHY;return i&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=i,n=i),n?xF(n,t):null}function xF(r,e){let t,n,i,A=r.instancesLength,h=r.classes,p=r.classIds,B=r.parentCounts,T=r.parentIds,y=A;tn(p.byteOffset)&&(p.componentType=defaultValue(p.componentType,GL.UNSIGNED_SHORT),p.type=AttributeType.SCALAR,i=getBinaryAccessor(p),p=i.createArrayBufferView(e.buffer,e.byteOffset+p.byteOffset,A));let E;if(tn(B))for(tn(B.byteOffset)&&(B.componentType=defaultValue(B.componentType,GL.UNSIGNED_SHORT),B.type=AttributeType.SCALAR,i=getBinaryAccessor(B),B=i.createArrayBufferView(e.buffer,e.byteOffset+B.byteOffset,A)),E=new Uint16Array(A),y=0,t=0;t<A;++t)E[t]=y,y+=B[t];tn(T)&&tn(T.byteOffset)&&(T.componentType=defaultValue(T.componentType,GL.UNSIGNED_SHORT),T.type=AttributeType.SCALAR,i=getBinaryAccessor(T),T=i.createArrayBufferView(e.buffer,e.byteOffset+T.byteOffset,y));let I=h.length;for(t=0;t<I;++t){let Q=h[t].length,z=h[t].instances,j=getBinaryProperties(Q,z,e);h[t].instances=combine(j,z)}let S=new Array(I).fill(0),O=new Uint16Array(A);for(t=0;t<A;++t)n=p[t],O[t]=S[n],++S[n];let N={classes:h,classIds:p,classIndexes:O,parentCounts:B,parentIndexes:E,parentIds:T};return MF(N),N}function si(r,e,t){if(!r)return;let n=r.parentCounts;return r.parentIds?t(r,e):n>0?IF(r,e,t):wF(r,e,t)}function IF(r,e,t){let n=r.classIds,i=r.parentCounts,A=r.parentIds,h=r.parentIndexes,p=n.length,B=scratchVisited;B.length=Math.max(B.length,p);let T=++marker,y=scratchStack;for(y.length=0,y.push(e);y.length>0;){if(e=y.pop(),B[e]===T)continue;B[e]=T;let E=t(r,e);if(tn(E))return E;let I=i[e],S=h[e];for(let O=0;O<I;++O){let N=A[S+O];N!==e&&y.push(N)}}return null}function wF(r,e,t){let n=!0;for(;n;){let i=t(r,e);if(tn(i))return i;let A=r.parentIds[e];n=A!==e,e=A}throw new Error("traverseHierarchySingleParent")}function MF(r){let e=[],n=r.classIds.length;for(let i=0;i<n;++i)C1(r,i,stack)}function C1(r,e,t){let n=r.parentCounts,i=r.parentIds,A=r.parentIndexes,p=r.classIds.length;if(!tn(i))return;assert(e<p,`Parent index ${e} exceeds the total number of instances: ${p}`),assert(t.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),t.push(e);let B=tn(n)?n[e]:1,T=tn(n)?A[e]:e;for(let y=0;y<B;++y){let E=i[T+y];E!==e&&C1(r,E,t)}t.pop(e)}function cr(r){return r!=null}var Fa=(r,e)=>r,SF={HIERARCHY:!0,extensions:!0,extras:!0},ii=class{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,t,n,i={}){qe(n>=0),this.json=e||{},this.binary=t,this.featureCount=n,this._extensions=this.json?.extensions||{},this._properties={};for(let A in this.json)SF[A]||(this._properties[A]=this.json[A]);this._binaryProperties=this._initializeBinaryProperties(),i["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=B1(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,t){if(this._checkBatchId(e),qe(typeof t=="string",t),this._hierarchy){let n=si(this._hierarchy,e,(i,A)=>{let h=i.classIds[A];return i.classes[h].name===t});return cr(n)}return!1}isExactClass(e,t){return qe(typeof t=="string",t),this.getExactClassName(e)===t}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){let t=this._hierarchy.classIds[e];return this._hierarchy.classes[t].name}}hasProperty(e,t){return this._checkBatchId(e),qe(typeof t=="string",t),cr(this._properties[t])||this._hasPropertyInHierarchy(e,t)}getPropertyNames(e,t){this._checkBatchId(e),t=cr(t)?t:[],t.length=0;let n=Object.keys(this._properties);return t.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,t),t}getProperty(e,t){if(this._checkBatchId(e),qe(typeof t=="string",t),this._binaryProperties){let i=this._binaryProperties[t];if(cr(i))return this._getBinaryProperty(i,e)}let n=this._properties[t];if(cr(n))return Fa(n[e],!0);if(this._hierarchy){let i=this._getHierarchyProperty(e,t);if(cr(i))return i}}setProperty(e,t,n){let i=this.featureCount;if(this._checkBatchId(e),qe(typeof t=="string",t),this._binaryProperties){let h=this._binaryProperties[t];if(h){this._setBinaryProperty(h,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,t,n))return;let A=this._properties[t];cr(A)||(this._properties[t]=new Array(i),A=this._properties[t]),A[e]=Fa(n,!0)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,t){return e.unpack(e.typedArray,t)}_setBinaryProperty(e,t,n){e.pack(n,e.typedArray,t)}_initializeBinaryProperties(){let e=null;for(let t in this._properties){let n=this._properties[t],i=this._initializeBinaryProperty(t,n);i&&(e=e||{},e[t]=i)}return e}_initializeBinaryProperty(e,t){if("byteOffset"in t){let n=t;qe(this.binary,`Property ${e} requires a batch table binary.`),qe(n.type,`Property ${e} requires a type.`);let i=g1(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:i.values,componentCount:i.size,unpack:i.unpacker,pack:i.packer}}return null}_hasPropertyInHierarchy(e,t){if(!this._hierarchy)return!1;let n=si(this._hierarchy,e,(i,A)=>{let h=i.classIds[A],p=i.classes[h].instances;return cr(p[t])});return cr(n)}_getPropertyNamesInHierarchy(e,t){si(this._hierarchy,e,(n,i)=>{let A=n.classIds[i],h=n.classes[A].instances;for(let p in h)h.hasOwnProperty(p)&&t.indexOf(p)===-1&&t.push(p)})}_getHierarchyProperty(e,t){return si(this._hierarchy,e,(n,i)=>{let A=n.classIds[i],h=n.classes[A],p=n.classIndexes[i],B=h.instances[t];return cr(B)?cr(B.typedArray)?this._getBinaryProperty(B,p):Fa(B[p],!0):null})}_setHierarchyProperty(e,t,n,i){let A=si(this._hierarchy,t,(h,p)=>{let B=h.classIds[p],T=h.classes[B],y=h.classIndexes[p],E=T.instances[n];return cr(E)?(qe(p===t,`Inherited property "${n}" is read-only.`),cr(E.typedArray)?this._setBinaryProperty(E,y,i):E[y]=Fa(i,!0),!0):!1});return cr(A)}};function On(r,e,t=0){let n=new DataView(e);if(r.magic=n.getUint32(t,!0),t+=4,r.version=n.getUint32(t,!0),t+=4,r.byteLength=n.getUint32(t,!0),t+=4,r.version!==1)throw new Error(`3D Tile Version ${r.version} not supported`);return t}var oi=4,T1="b3dm tile in legacy format.";function Ai(r,e,t){let n=new DataView(e),i;r.header=r.header||{};let A=n.getUint32(t,!0);t+=oi;let h=n.getUint32(t,!0);t+=oi;let p=n.getUint32(t,!0);t+=oi;let B=n.getUint32(t,!0);return t+=oi,p>=570425344?(t-=oi*2,i=A,p=h,B=0,A=0,h=0,console.warn(T1)):B>=570425344&&(t-=oi,i=p,p=A,B=h,A=0,h=0,console.warn(T1)),r.header.featureTableJsonByteLength=A,r.header.featureTableBinaryByteLength=h,r.header.batchTableJsonByteLength=p,r.header.batchTableBinaryByteLength=B,r.header.batchLength=i,t}function ai(r,e,t,n){return t=vF(r,e,t,n),t=FF(r,e,t,n),t}function vF(r,e,t,n){let{featureTableJsonByteLength:i,featureTableBinaryByteLength:A,batchLength:h}=r.header||{};if(r.featureTableJson={BATCH_LENGTH:h||0},i&&i>0){let p=Bu(e,t,i);r.featureTableJson=JSON.parse(p)}return t+=i||0,r.featureTableBinary=new Uint8Array(e,t,A),t+=A||0,t}function FF(r,e,t,n){let{batchTableJsonByteLength:i,batchTableBinaryByteLength:A}=r.header||{};if(i&&i>0){let h=Bu(e,t,i);r.batchTableJson=JSON.parse(h),t+=i,A&&A>0&&(r.batchTableBinary=new Uint8Array(e,t,A),r.batchTableBinary=new Uint8Array(r.batchTableBinary),t+=A)}return t}function Eu(r,e,t){if(!e&&(!r||!r.batchIds||!t))return null;let{batchIds:n,isRGB565:i,pointCount:A=0}=r;if(n&&t){let h=new Uint8ClampedArray(A*3);for(let p=0;p<A;p++){let B=n[p],y=t.getProperty(B,"dimensions").map(E=>E*255);h[p*3]=y[0],h[p*3+1]=y[1],h[p*3+2]=y[2]}return{type:Oe.UNSIGNED_BYTE,value:h,size:3,normalized:!0}}if(e&&i){let h=new Uint8ClampedArray(A*3);for(let p=0;p<A;p++){let B=yu(e[p]);h[p*3]=B[0],h[p*3+1]=B[1],h[p*3+2]=B[2]}return{type:Oe.UNSIGNED_BYTE,value:h,size:3,normalized:!0}}return e&&e.length===A*3?{type:Oe.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:Oe.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var y1=new X;function b1(r,e){if(!e)return null;if(r.isOctEncoded16P){let t=new Float32Array((r.pointsLength||0)*3);for(let n=0;n<(r.pointsLength||0);n++)bu(e[n*2],e[n*2+1],y1),y1.toArray(t,n*3);return{type:Oe.FLOAT,size:2,value:t}}return{type:Oe.FLOAT,size:2,value:e}}function E1(r,e,t){return r.isQuantized?t["3d-tiles"]&&t["3d-tiles"].decodeQuantizedPositions?(r.isQuantized=!1,RF(r,e)):{type:Oe.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function RF(r,e){let t=new X,n=new Float32Array(r.pointCount*3);for(let i=0;i<r.pointCount;i++)t.set(e[i*3],e[i*3+1],e[i*3+2]).scale(1/r.quantizedRange).multiply(r.quantizedVolumeScale).add(r.quantizedVolumeOffset).toArray(n,i*3);return n}function _1(r,e,t,n,i){return Z(this,null,function*(){t=On(r,e,t),t=Ai(r,e,t),t=ai(r,e,t,n),LF(r);let{featureTable:A,batchTable:h}=DF(r);return yield UF(r,A,h,n,i),PF(r,A,n),OF(r,A,h),NF(r,A),t})}function LF(r){r.attributes={positions:null,colors:null,normals:null,batchIds:null},r.isQuantized=!1,r.isTranslucent=!1,r.isRGB565=!1,r.isOctEncoded16P=!1}function DF(r){let e=new Pn(r.featureTableJson,r.featureTableBinary),t=e.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(t))throw new Error("POINTS_LENGTH must be defined");e.featuresLength=t,r.featuresLength=t,r.pointsLength=t,r.pointCount=t,r.rtcCenter=e.getGlobalProperty("RTC_CENTER",Oe.FLOAT,3);let n=GF(r,e);return{featureTable:e,batchTable:n}}function PF(r,e,t){if(r.attributes=r.attributes||{positions:null,colors:null,normals:null,batchIds:null},!r.attributes.positions){if(e.hasProperty("POSITION"))r.attributes.positions=e.getPropertyArray("POSITION",Oe.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",Oe.UNSIGNED_SHORT,3);if(r.isQuantized=!0,r.quantizedRange=65535,r.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",Oe.FLOAT,3),!r.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(r.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",Oe.FLOAT,3),!r.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");r.attributes.positions=E1(r,n,t)}}if(!r.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function OF(r,e,t){if(r.attributes=r.attributes||{positions:null,colors:null,normals:null,batchIds:null},!r.attributes.colors){let n=null;e.hasProperty("RGBA")?(n=e.getPropertyArray("RGBA",Oe.UNSIGNED_BYTE,4),r.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",Oe.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",Oe.UNSIGNED_SHORT,1),r.isRGB565=!0),r.attributes.colors=Eu(r,n,t)}e.hasProperty("CONSTANT_RGBA")&&(r.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",Oe.UNSIGNED_BYTE,4))}function NF(r,e){if(r.attributes=r.attributes||{positions:null,colors:null,normals:null,batchIds:null},!r.attributes.normals){let t=null;e.hasProperty("NORMAL")?t=e.getPropertyArray("NORMAL",Oe.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(t=e.getPropertyArray("NORMAL_OCT16P",Oe.UNSIGNED_BYTE,2),r.isOctEncoded16P=!0),r.attributes.normals=b1(r,t)}}function GF(r,e){let t=null;if(!r.batchIds&&e.hasProperty("BATCH_ID")&&(r.batchIds=e.getPropertyArray("BATCH_ID",Oe.UNSIGNED_SHORT,1),r.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:i,batchTableBinary:A}=r;t=new ii(i,A,n)}return t}function UF(r,e,t,n,i){return Z(this,null,function*(){let A,h,p,B=r.batchTableJson&&r.batchTableJson.extensions&&r.batchTableJson.extensions["3DTILES_draco_point_compression"];B&&(p=B.properties);let T=e.getExtension("3DTILES_draco_point_compression");if(T){h=T.properties;let E=T.byteOffset,I=T.byteLength;if(!h||!Number.isFinite(E)||!I)throw new Error("Draco properties, byteOffset, and byteLength must be defined");A=(r.featureTableBinary||[]).slice(E,E+I),r.hasPositions=Number.isFinite(h.POSITION),r.hasColors=Number.isFinite(h.RGB)||Number.isFinite(h.RGBA),r.hasNormals=Number.isFinite(h.NORMAL),r.hasBatchIds=Number.isFinite(h.BATCH_ID),r.isTranslucent=Number.isFinite(h.RGBA)}if(!A)return!0;let y={buffer:A,properties:P(P({},h),p),featureTableProperties:h,batchTableProperties:p,dequantizeInShader:!1};return yield kF(r,y,n,i)})}function kF(r,e,t,n){return Z(this,null,function*(){if(!n)return;let i=ee(P({},t),{draco:ee(P({},t?.draco),{extraAttributes:e.batchTableProperties||{}})});delete i["3d-tiles"];let A=yield Jt(e.buffer,is,i,n),h=A.attributes.POSITION&&A.attributes.POSITION.value,p=A.attributes.COLOR_0&&A.attributes.COLOR_0.value,B=A.attributes.NORMAL&&A.attributes.NORMAL.value,T=A.attributes.BATCH_ID&&A.attributes.BATCH_ID.value,y=h&&A.attributes.POSITION.value.quantization,E=B&&A.attributes.NORMAL.value.quantization;if(y){let S=A.POSITION.data.quantization,O=S.range;r.quantizedVolumeScale=new X(O,O,O),r.quantizedVolumeOffset=new X(S.minValues),r.quantizedRange=(1<<S.quantizationBits)-1,r.isQuantizedDraco=!0}E&&(r.octEncodedRange=(1<<A.NORMAL.data.quantization.quantizationBits)-1,r.isOctEncodedDraco=!0);let I={};if(e.batchTableProperties)for(let S of Object.keys(e.batchTableProperties))A.attributes[S]&&A.attributes[S].value&&(I[S.toLowerCase()]=A.attributes[S].value);r.attributes=P({positions:h,colors:Eu(r,p,void 0),normals:B,batchIds:T},I)})}var _u={};pt(_u,{createExtMeshFeatures:()=>n3,decode:()=>ZF,encode:()=>$F,name:()=>qF});function Lt(r,e){if(!r)throw new Error(e||"assert failed: gltf")}var Ra={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},La={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var HF=1.33,x1=["SCALAR","VEC2","VEC3","VEC4"],VF=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],JF=new Map(VF),jF={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},QF={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},KF={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Da(r){return x1[r-1]||x1[0]}function Nn(r){let e=JF.get(r.constructor);if(!e)throw new Error("Illegal typed array");return e}function ci(r,e){let t=KF[r.componentType],n=jF[r.type],i=QF[r.componentType],A=r.count*n,h=r.count*n*i;Lt(h>=0&&h<=e.byteLength);let p=La[r.componentType],B=Ra[r.type];return{ArrayType:t,length:A,byteLength:h,componentByteSize:p,numberOfComponentsInElement:B}}function mo(r){let{images:e,bufferViews:t}=r;e=e||[],t=t||[];let n=e.map(h=>h.bufferView);t=t.filter(h=>!n.includes(h));let i=t.reduce((h,p)=>h+p.byteLength,0),A=e.reduce((h,p)=>{let{width:B,height:T}=p.image;return h+B*T},0);return i+Math.ceil(4*A*HF)}function I1(r,e,t){let n=r.bufferViews[t];Lt(n);let i=n.buffer,A=e[i];Lt(A);let h=(n.byteOffset||0)+A.byteOffset;return new Uint8Array(A.arrayBuffer,h,n.byteLength)}function w1(r,e,t){let n=typeof t=="number"?r.accessors?.[t]:t;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(t)}`);let i=r.bufferViews?.[n.bufferView||0];if(!i)throw new Error(`No gltf buffer view for accessor ${i}`);let{arrayBuffer:A,byteOffset:h}=e[i.buffer],p=(h||0)+(n.byteOffset||0)+(i.byteOffset||0),{ArrayType:B,length:T,componentByteSize:y,numberOfComponentsInElement:E}=ci(n,i),I=y*E,S=i.byteStride||I;if(typeof i.byteStride>"u"||i.byteStride===I)return new B(A,p,T);let O=new B(T);for(let N=0;N<n.count;N++){let Q=new B(A,p+N*S,E);O.set(Q,N*E)}return O}function zF(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var et=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||zF(),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 t=this.getUsedExtensions().find(i=>i===e),n=this.getRequiredExtensions().find(i=>i===e);return typeof t=="string"||typeof n=="string"}getExtension(e){let t=this.getUsedExtensions().find(i=>i===e),n=this.json.extensions||{};return t?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,t){return(e.extensions||{})[t]}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,t){if(typeof t=="object")return t;let n=this.json[e]&&this.json[e][t];if(!n)throw new Error(`glTF file error: Could not find ${e}[${t}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);let t=e.buffer,n=this.gltf.buffers[t];Lt(n);let i=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,i,e.byteLength)}getTypedArrayForAccessor(e){let t=this.getAccessor(e);return w1(this.gltf.json,this.gltf.buffers,t)}getTypedArrayForImageData(e){e=this.getAccessor(e);let t=this.getBufferView(e.bufferView),i=this.getBuffer(t.buffer).data,A=t.byteOffset||0;return new Uint8Array(i,A,t.byteLength)}addApplicationData(e,t){return this.json[e]=t,this}addExtraData(e,t){return this.json.extras=this.json.extras||{},this.json.extras[e]=t,this}addObjectExtension(e,t,n){return e.extensions=e.extensions||{},e.extensions[t]=n,this.registerUsedExtension(t),this}setObjectExtension(e,t,n){let i=e.extensions||{};i[t]=n}removeObjectExtension(e,t){let n=e?.extensions||{};if(n[t]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let i=this.json.extensionsRemoved;i.includes(t)||i.push(t)}delete n[t]}addExtension(e,t={}){return Lt(t),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=t,this.registerUsedExtension(e),t}addRequiredExtension(e,t={}){return Lt(t),this.addExtension(e,t),this.registerRequiredExtension(e),t}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(t=>t===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(t=>t===e)||this.json.extensionsRequired.push(e)}removeExtension(e){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let t=this.json.extensionsRemoved;t.includes(e)||t.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:t}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:t}),this.json.scenes.length-1}addNode(e){let{meshIndex:t,matrix:n}=e;this.json.nodes=this.json.nodes||[];let i={mesh:t};return n&&(i.matrix=n),this.json.nodes.push(i),this.json.nodes.length-1}addMesh(e){let{attributes:t,indices:n,material:i,mode:A=4}=e,p={primitives:[{attributes:this._addAttributes(t),mode:A}]};if(n){let B=this._addIndices(n);p.primitives[0].indices=B}return Number.isFinite(i)&&(p.primitives[0].material=i),this.json.meshes=this.json.meshes||[],this.json.meshes.push(p),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,t){let n=Ko(e),i=t||n?.mimeType,h={bufferView:this.addBufferView(e),mimeType:i};return this.json.images=this.json.images||[],this.json.images.push(h),this.json.images.length-1}addBufferView(e,t=0,n=this.byteLength){let i=e.byteLength;Lt(Number.isFinite(i)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let A={buffer:t,byteOffset:n,byteLength:i};return this.byteLength+=Er(i,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(A),this.json.bufferViews.length-1}addAccessor(e,t){let n={bufferView:e,type:Da(t.size),componentType:t.componentType,count:t.count,max:t.max,min:t.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,t={size:3}){let n=this.addBufferView(e),i={min:t.min,max:t.max};(!i.min||!i.max)&&(i=this._getAccessorMinMax(e,t.size));let A={size:t.size,componentType:Nn(e),count:Math.round(e.length/t.size),min:i.min,max:i.max};return this.addAccessor(n,Object.assign(A,t))}addTexture(e){let{imageIndex:t}=e,n={source:t};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,t=new ArrayBuffer(e),n=new Uint8Array(t),i=0;for(let A of this.sourceBuffers||[])i=Vo(A,n,i);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=t,this.sourceBuffers=[t],this.gltf.buffers=[{arrayBuffer:t,byteOffset:0,byteLength:t.byteLength}]}_removeStringFromArray(e,t){let n=!0;for(;n;){let i=e.indexOf(t);i>-1?e.splice(i,1):n=!1}}_addAttributes(e={}){let t={};for(let n in e){let i=e[n],A=this._getGltfAttributeName(n),h=this.addBinaryBuffer(i.value,i);t[A]=h}return t}_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,t){let n={min:null,max:null};if(e.length<t)return n;n.min=[],n.max=[];let i=e.subarray(0,t);for(let A of i)n.min.push(A),n.max.push(A);for(let A=t;A<e.length;A+=t)for(let h=0;h<t;h++)n.min[0+h]=Math.min(n.min[0+h],e[A+h]),n.max[0+h]=Math.max(n.max[0+h],e[A+h]);return n}};function M1(r){return(r%1+1)%1}var S1={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},XF={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},v1={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function go(r,e){return v1[e]*S1[r]}function li(r,e,t,n){if(t!=="UINT8"&&t!=="UINT16"&&t!=="UINT32"&&t!=="UINT64")return null;let i=r.getTypedArrayForBufferView(e),A=ui(i,"SCALAR",t,n+1);return A instanceof BigInt64Array||A instanceof BigUint64Array?null:A}function ui(r,e,t,n=1){let i=S1[e],A=XF[t],h=v1[t],p=n*i,B=p*h,T=r.buffer,y=r.byteOffset;return y%h!==0&&(T=new Uint8Array(T).slice(y,y+B).buffer,y=0),new A(ir(T),y,p)}function fi(r,e,t){let n=`TEXCOORD_${e.texCoord||0}`,i=t.attributes[n],A=r.getTypedArrayForAccessor(i),h=r.gltf.json,p=e.index,B=h.textures?.[p]?.source;if(typeof B<"u"){let T=h.images?.[B]?.mimeType,y=r.gltf.images?.[B];if(y&&typeof y.width<"u"){let E=[];for(let I=0;I<A.length;I+=2){let S=YF(y,T,A,I,e.channels);E.push(S)}return E}}return[]}function Pa(r,e,t,n,i){if(!t?.length)return;let A=[];for(let y of t){let E=n.findIndex(I=>I===y);E===-1&&(E=n.push(y)-1),A.push(E)}let h=new Uint32Array(A),p=r.gltf.buffers.push({arrayBuffer:h.buffer,byteOffset:h.byteOffset,byteLength:h.byteLength})-1,B=r.addBufferView(h,p,0),T=r.addAccessor(B,{size:1,componentType:Nn(h),count:h.length});i.attributes[e]=T}function YF(r,e,t,n,i=[0]){let A={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},h=t[n],p=t[n+1],B=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(B=4);let T=WF(h,p,r,B),y=0;for(let E of i){let I=typeof E=="number"?Object.values(A)[E]:A[E],S=T+I.offset,O=Qo(r);if(O.data.length<=S)throw new Error(`${O.data.length} <= ${S}`);let N=O.data[S];y|=N<<I.shift}return y}function WF(r,e,t,n=1){let i=t.width,A=M1(r)*(i-1),h=Math.round(A),p=t.height,B=M1(e)*(p-1),T=Math.round(B),y=t.components?t.components:n;return(T*i+h)*y}function Oa(r,e,t,n,i){let A=[];for(let h=0;h<e;h++){let p=t[h],B=t[h+1]-t[h];if(B+p>n)break;let T=p/i,y=B/i;A.push(r.slice(T,T+y))}return A}function Na(r,e,t){let n=[];for(let i=0;i<e;i++){let A=i*t;n.push(r.slice(A,A+t))}return n}function Ga(r,e,t,n){if(t)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){let i=[],A=new TextDecoder("utf8"),h=0;for(let p=0;p<r;p++){let B=n[p+1]-n[p];if(B+h<=e.length){let T=e.subarray(h,B+h),y=A.decode(T);i.push(y),h+=B}}return i}return[]}var hi="EXT_mesh_features",qF=hi;function ZF(r,e){return Z(this,null,function*(){let t=new et(r);e3(t,e)})}function $F(r,e){let t=new et(r);return r3(t,e),t.createBinaryChunk(),t.gltf}function e3(r,e){let t=r.gltf.json;if(t.meshes)for(let n of t.meshes)for(let i of n.primitives)t3(r,i,e)}function t3(r,e,t){if(!t?.gltf?.loadBuffers)return;let i=e.extensions?.[hi]?.featureIds;if(i)for(let A of i){let h;if(typeof A.attribute<"u"){let p=`_FEATURE_ID_${A.attribute}`,B=e.attributes[p];h=r.getTypedArrayForAccessor(B)}else typeof A.texture<"u"&&t?.gltf?.loadImages?h=fi(r,A.texture,e):h=[];A.data=h}}function r3(r,e){let t=r.gltf.json.meshes;if(t)for(let n of t)for(let i of n.primitives)s3(r,i)}function n3(r,e,t,n){e.extensions||(e.extensions={});let i=e.extensions[hi];i||(i={featureIds:[]},e.extensions[hi]=i);let{featureIds:A}=i,h={featureCount:t.length,propertyTable:n,data:t};A.push(h),r.addObjectExtension(e,hi,i)}function s3(r,e){let t=e.extensions?.[hi];if(!t)return;let n=t.featureIds;n.forEach((i,A)=>{if(i.data){let{accessorKey:h,index:p}=i3(e.attributes),B=new Uint32Array(i.data);n[A]={featureCount:B.length,propertyTable:i.propertyTable,attribute:p},r.gltf.buffers.push({arrayBuffer:B.buffer,byteOffset:B.byteOffset,byteLength:B.byteLength});let T=r.addBufferView(B),y=r.addAccessor(T,{size:1,componentType:Nn(B),count:B.length});e.attributes[h]=y}})}function i3(r){let e="_FEATURE_ID_",t=Object.keys(r).filter(A=>A.indexOf(e)===0),n=-1;for(let A of t){let h=Number(A.substring(e.length));h>n&&(n=h)}return n++,{accessorKey:`${e}${n}`,index:n}}var wu={};pt(wu,{createExtStructuralMetadata:()=>w3,decode:()=>A3,encode:()=>a3,name:()=>o3});var di="EXT_structural_metadata",o3=di;function A3(r,e){return Z(this,null,function*(){let t=new et(r);c3(t,e)})}function a3(r,e){let t=new et(r);return x3(t,e),t.createBinaryChunk(),t.gltf}function c3(r,e){if(!e.gltf?.loadBuffers)return;let t=r.getExtension(di);t&&(e.gltf?.loadImages&&l3(r,t),u3(r,t))}function l3(r,e){let t=e.propertyTextures,n=r.gltf.json;if(t&&n.meshes)for(let i of n.meshes)for(let A of i.primitives)h3(r,t,A,e)}function u3(r,e){let t=e.schema;if(!t)return;let n=t.classes,i=e.propertyTables;if(n&&i)for(let A in n){let h=f3(i,A);h&&p3(r,t,h)}}function f3(r,e){for(let t of r)if(t.class===e)return t;return null}function h3(r,e,t,n){if(!e)return;let A=t.extensions?.[di]?.propertyTextures;if(A)for(let h of A){let p=e[h];d3(r,p,t,n)}}function d3(r,e,t,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);let i=e.class;for(let A in e.properties){let h=`${i}_${A}`,p=e.properties?.[A];if(!p)continue;p.data||(p.data=[]);let B=p.data,T=fi(r,p,t);T!==null&&(Pa(r,h,T,B,t),p.data=B,n.dataAttributeNames.push(h))}}function p3(r,e,t){let n=e.classes?.[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${t.class}`);let i=t.count;for(let A in n.properties){let h=n.properties[A],p=t.properties?.[A];if(p){let B=m3(r,e,h,i,p);p.data=B}}}function m3(r,e,t,n,i){let A=[],h=i.values,p=r.getTypedArrayForBufferView(h),B=g3(r,t,i,n),T=B3(r,i,n);switch(t.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{A=C3(t,n,p,B);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${t.type}`);case"STRING":{A=Ga(n,p,B,T);break}case"ENUM":{A=T3(e,t,n,p,B);break}default:throw new Error(`Unknown classProperty type ${t.type}`)}return A}function g3(r,e,t,n){return e.array&&typeof e.count>"u"&&typeof t.arrayOffsets<"u"?li(r,t.arrayOffsets,t.arrayOffsetType||"UINT32",n):null}function B3(r,e,t){return typeof e.stringOffsets<"u"?li(r,e.stringOffsets,e.stringOffsetType||"UINT32",t):null}function C3(r,e,t,n){let i=r.array,A=r.count,h=go(r.type,r.componentType),p=t.byteLength/h,B;return r.componentType?B=ui(t,r.type,r.componentType,p):B=t,i?n?Oa(B,e,n,t.length,h):A?Na(B,e,A):[]:B}function T3(r,e,t,n,i){let A=e.enumType;if(!A)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");let h=r.enums?.[A];if(!h)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${A}`);let p=h.valueType||"UINT16",B=go(e.type,p),T=n.byteLength/B,y=ui(n,e.type,p,T);if(y||(y=n),e.array){if(i)return y3({valuesData:y,numberOfElements:t,arrayOffsets:i,valuesDataBytesLength:n.length,elementSize:B,enumEntry:h});let E=e.count;return E?b3(y,t,E,h):[]}return Iu(y,0,t,h)}function y3(r){let{valuesData:e,numberOfElements:t,arrayOffsets:n,valuesDataBytesLength:i,elementSize:A,enumEntry:h}=r,p=[];for(let B=0;B<t;B++){let T=n[B],y=n[B+1]-n[B];if(y+T>i)break;let E=T/A,I=y/A,S=Iu(e,E,I,h);p.push(S)}return p}function b3(r,e,t,n){let i=[];for(let A=0;A<e;A++){let h=t*A,p=Iu(r,h,t,n);i.push(p)}return i}function Iu(r,e,t,n){let i=[];for(let A=0;A<t;A++)if(r instanceof BigInt64Array||r instanceof BigUint64Array)i.push("");else{let h=r[e+A],p=E3(n,h);p?i.push(p.name):i.push("")}return i}function E3(r,e){for(let t of r.values)if(t.value===e)return t;return null}var _3="schemaClassId";function x3(r,e){let t=r.getExtension(di);if(t&&t.propertyTables)for(let n of t.propertyTables){let i=n.class,A=t.schema?.classes?.[i];n.properties&&A&&I3(n,A,r)}}function I3(r,e,t){for(let n in r.properties){let i=r.properties[n].data;if(i){let A=e.properties[n];if(A){let h=v3(i,A,t);r.properties[n]=h}}}}function w3(r,e,t=_3){let n=r.getExtension(di);n||(n=r.addExtension(di)),n.schema=M3(e,t,n.schema);let i=S3(e,t,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(i)-1}function M3(r,e,t){let n=t??{id:"schema_id"},i={properties:{}};for(let A of r){let h={type:A.elementType,componentType:A.componentType};i.properties[A.name]=h}return n.classes={},n.classes[e]=i,n}function S3(r,e,t){let n={class:e,count:0},i=0,A=t.classes?.[e];for(let h of r){if(i===0&&(i=h.values.length),i!==h.values.length&&h.values.length)throw new Error("Illegal values in attributes");A?.properties[h.name]&&(n.properties||(n.properties={}),n.properties[h.name]={values:0,data:h.values})}return n.count=i,n}function v3(r,e,t){let n={values:0};if(e.type==="STRING"){let{stringData:i,stringOffsets:A}=L3(r);n.stringOffsets=xu(A,t),n.values=xu(i,t)}else if(e.type==="SCALAR"&&e.componentType){let i=R3(r,e.componentType);n.values=xu(i,t)}return n}var F3={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function R3(r,e){let t=[];for(let i of r)t.push(Number(i));let n=F3[e];if(!n)throw new Error("Illegal component type");return new n(t)}function L3(r){let e=new TextEncoder,t=[],n=0;for(let B of r){let T=e.encode(B);n+=T.length,t.push(T)}let i=new Uint8Array(n),A=[],h=0;for(let B of t)i.set(B,h),A.push(h),h+=B.length;A.push(h);let p=new Uint32Array(A);return{stringData:i,stringOffsets:p}}function xu(r,e){return e.gltf.buffers.push({arrayBuffer:ir(r.buffer),byteOffset:r.byteOffset,byteLength:r.byteLength}),e.addBufferView(r)}var Mu={};pt(Mu,{decode:()=>P3,name:()=>D3});var F1="EXT_feature_metadata",D3=F1;function P3(r,e){return Z(this,null,function*(){let t=new et(r);O3(t,e)})}function O3(r,e){if(!e.gltf?.loadBuffers)return;let t=r.getExtension(F1);t&&(e.gltf?.loadImages&&N3(r,t),G3(r,t))}function N3(r,e){let t=e.schema;if(!t)return;let n=t.classes,{featureTextures:i}=e;if(n&&i)for(let A in n){let h=n[A],p=k3(i,A);p&&V3(r,p,h)}}function G3(r,e){let t=e.schema;if(!t)return;let n=t.classes,i=e.featureTables;if(n&&i)for(let A in n){let h=U3(i,A);h&&H3(r,t,h)}}function U3(r,e){for(let t in r){let n=r[t];if(n.class===e)return n}return null}function k3(r,e){for(let t in r){let n=r[t];if(n.class===e)return n}return null}function H3(r,e,t){if(!t.class)return;let n=e.classes?.[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${t.class}`);let i=t.count;for(let A in n.properties){let h=n.properties[A],p=t.properties?.[A];if(p){let B=J3(r,e,h,i,p);p.data=B}}}function V3(r,e,t){let n=e.class;for(let i in t.properties){let A=e?.properties?.[i];if(A){let h=X3(r,A,n);A.data=h}}}function J3(r,e,t,n,i){let A=[],h=i.bufferView,p=r.getTypedArrayForBufferView(h),B=j3(r,t,i,n),T=Q3(r,t,i,n);return t.type==="STRING"||t.componentType==="STRING"?A=Ga(n,p,B,T):K3(t)&&(A=z3(t,n,p,B)),A}function j3(r,e,t,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof t.arrayOffsetBufferView<"u"?li(r,t.arrayOffsetBufferView,t.offsetType||"UINT32",n):null}function Q3(r,e,t,n){return typeof t.stringOffsetBufferView<"u"?li(r,t.stringOffsetBufferView,t.offsetType||"UINT32",n):null}function K3(r){let e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(r.type)||typeof r.componentType<"u"&&e.includes(r.componentType)}function z3(r,e,t,n){let i=r.type==="ARRAY",A=r.componentCount,h="SCALAR",p=r.componentType||r.type,B=go(h,p),T=t.byteLength/B,y=ui(t,h,p,T);return i?n?Oa(y,e,n,t.length,B):A?Na(y,e,A):[]:y}function X3(r,e,t){let n=r.gltf.json;if(!n.meshes)return[];let i=[];for(let A of n.meshes)for(let h of A.primitives)Y3(r,t,e,i,h);return i}function Y3(r,e,t,n,i){let A=P({channels:t.channels},t.texture),h=fi(r,A,i);h&&Pa(r,e,h,n,i)}var R1="4.4.4";var pi=!0,L1=1735152710,Fu=12,Ua=8,W3=1313821514,q3=5130562,Z3=0,$3=0,e4=1;function t4(r,e=0){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))}`}function D1(r,e=0,t={}){let n=new DataView(r),{magic:i=L1}=t,A=n.getUint32(e,!1);return A===i||A===L1}function P1(r,e,t=0,n={}){let i=new DataView(e),A=t4(i,t+0),h=i.getUint32(t+4,pi),p=i.getUint32(t+8,pi);switch(Object.assign(r,{header:{byteOffset:t,byteLength:p,hasBinChunk:!1},type:A,version:h,json:{},binChunks:[]}),t+=Fu,r.version){case 1:return r4(r,i,t);case 2:return n4(r,i,t,n={});default:throw new Error(`Invalid GLB version ${r.version}. Only supports version 1 and 2.`)}}function r4(r,e,t){qe(r.header.byteLength>Fu+Ua);let n=e.getUint32(t+0,pi),i=e.getUint32(t+4,pi);return t+=Ua,qe(i===Z3),Su(r,e,t,n),t+=n,t+=vu(r,e,t,r.header.byteLength),t}function n4(r,e,t,n){return qe(r.header.byteLength>Fu+Ua),s4(r,e,t,n),t+r.header.byteLength}function s4(r,e,t,n){for(;t+8<=r.header.byteLength;){let i=e.getUint32(t+0,pi),A=e.getUint32(t+4,pi);switch(t+=Ua,A){case W3:Su(r,e,t,i);break;case q3:vu(r,e,t,i);break;case $3:n.strict||Su(r,e,t,i);break;case e4:n.strict||vu(r,e,t,i);break;default:break}t+=Er(i,4)}return t}function Su(r,e,t,n){let i=new Uint8Array(e.buffer,t,n),h=new TextDecoder("utf8").decode(i);return r.json=JSON.parse(h),Er(n,4)}function vu(r,e,t,n){return r.header.hasBinChunk=!0,r.binChunks.push({byteOffset:t,byteLength:n,arrayBuffer:e.buffer}),Er(n,4)}function Ru(r,e,t){if(r.startsWith("data:")||r.startsWith("http:")||r.startsWith("https:"))return r;let i=t?.baseUrl||i4(e?.core?.baseUrl);if(!i)throw new Error(`'baseUrl' must be provided to resolve relative url ${r}`);return i.endsWith("/")?`${i}${r}`:`${i}/${r}`}function i4(r){if(!r)return;if(r.endsWith("/"))return r;let e=r.lastIndexOf("/");return e>=0?r.slice(0,e+1):""}var Du={};pt(Du,{decode:()=>g4,name:()=>m4});
1123var o4="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",A4
vendor: 10,662 bytes, line 1123
1123="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",
1123a4=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]),c4=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]),l4={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},u4={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};function O1(r,e,t,n,i,A="NONE"){return Z(this,null,function*(){let h=yield f4();p4(h,h.exports[u4[i]],r,e,t,n,h.exports[l4[A||"NONE"]])})}var Lu;function f4(){return Z(this,null,function*(){return Lu||(Lu=h4()),Lu})}function h4(){return Z(this,null,function*(){let r=o4;WebAssembly.validate(a4)&&(r=A4,console.log("Warning: meshopt_decoder is using experimental SIMD support"));let e=yield WebAssembly.instantiate(d4(r),{});return yield e.instance.exports.__wasm_call_ctors(),e.instance})}function d4(r){let e=new Uint8Array(r.length);for(let n=0;n<r.length;++n){let i=r.charCodeAt(n);e[n]=i>96?i-71:i>64?i-65:i>47?i+4:i>46?63:62}let t=0;for(let n=0;n<r.length;++n)e[t++]=e[n]<60?c4[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,t)}function p4(r,e,t,n,i,A,h){let p=r.exports.sbrk,B=n+3&-4,T=p(B*i),y=p(A.length),E=new Uint8Array(r.exports.memory.buffer);E.set(A,y);let I=e(T,n,i,y,A.length);if(I===0&&h&&h(T,B,i),t.set(E.subarray(T,T+n*i)),p(T-p(0)),I!==0)throw new Error(`Malformed buffer data: ${I}`)}var ka="EXT_meshopt_compression",m4=ka;function g4(r,e){return Z(this,null,function*(){let t=new et(r);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;let n=[];for(let i of r.json.bufferViews||[])n.push(B4(t,i));yield Promise.all(n),t.removeExtension(ka)})}function B4(r,e){return Z(this,null,function*(){let t=r.getObjectExtension(e,ka);if(t){let{byteOffset:n=0,byteLength:i=0,byteStride:A,count:h,mode:p,filter:B="NONE",buffer:T}=t,y=r.gltf.buffers[T],E=new Uint8Array(y.arrayBuffer,y.byteOffset+n,i),I=new Uint8Array(r.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);yield O1(I,h,A,E,p,B),r.removeObjectExtension(e,ka)}})}var Pu={};pt(Pu,{name:()=>C4,preprocess:()=>T4});var mi="EXT_texture_webp",C4=mi;function T4(r,e){let t=new et(r);if(!zo("image/webp")){if(t.getRequiredExtensions().includes(mi))throw new Error(`gltf: Required extension ${mi} not supported by browser`);return}let{json:n}=t;for(let i of n.textures||[]){let A=t.getObjectExtension(i,mi);A&&(i.source=A.source),t.removeObjectExtension(i,mi)}t.removeExtension(mi)}var Ou={};pt(Ou,{name:()=>y4,preprocess:()=>b4});var Ha="KHR_texture_basisu",y4=Ha;function b4(r,e){let t=new et(r),{json:n}=t;for(let i of n.textures||[]){let A=t.getObjectExtension(i,Ha);A&&(i.source=A.source,t.removeObjectExtension(i,Ha))}t.removeExtension(Ha)}var Gu={};pt(Gu,{decode:()=>w4,encode:()=>M4,name:()=>x4,preprocess:()=>I4});function N1(r){let e={};for(let t in r){let n=r[t];if(t!=="indices"){let i=Nu(n);e[t]=i}}return e}function Nu(r){let{buffer:e,size:t,count:n}=E4(r);return{value:e,size:t,byteOffset:0,count:n,type:Da(t),componentType:Nn(e)}}function E4(r){let e=r,t=1,n=0;return r&&r.value&&(e=r.value,t=r.size||1),e&&(ArrayBuffer.isView(e)||(e=_4(e,Float32Array)),n=e.length/t),{buffer:e,size:t,count:n}}function _4(r,e,t=!1){return r?Array.isArray(r)?new e(r):t&&!(r instanceof e)?new e(r):r:null}var Gn="KHR_draco_mesh_compression",x4=Gn;function I4(r,e,t){let n=new et(r);for(let i of G1(n))n.getObjectExtension(i,Gn)}function w4(r,e,t){return Z(this,null,function*(){if(!e?.gltf?.decompressMeshes)return;let n=new et(r),i=[];for(let A of G1(n))n.getObjectExtension(A,Gn)&&i.push(S4(n,A,e,t));yield Promise.all(i),n.removeExtension(Gn)})}function M4(r,e={}){let t=new et(r);for(let n of t.json.meshes||[])v4(n,e),t.addRequiredExtension(Gn)}function S4(r,e,t,n){return Z(this,null,function*(){let i=r.getObjectExtension(e,Gn);if(!i)return;let A=r.getTypedArrayForBufferView(i.bufferView),h=Xr(A.buffer,A.byteOffset),p=P({},t);delete p["3d-tiles"];let B=yield Jt(h,is,p,n),T=N1(B.attributes);for(let[y,E]of Object.entries(T))if(y in e.attributes){let I=e.attributes[y],S=r.getAccessor(I);S?.min&&S?.max&&(E.min=S.min,E.max=S.max)}e.attributes=T,B.indices&&(e.indices=Nu(B.indices)),r.removeObjectExtension(e,Gn),F4(e)})}function v4(r,e,t=4,n,i){if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");let A=n.DracoWriter.encodeSync({attributes:r}),h=i?.parseSync?.({attributes:r}),p=n._addFauxAttributes(h.attributes),B=n.addBufferView(A);return{primitives:[{attributes:p,mode:t,extensions:{[Gn]:{bufferView:B,attributes:p}}}]}}
vendor: 9,308 bytes, line 1123
1123function F4(r){if(!r.attributes&&Object.keys(r.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*G1(r){for(let e of r.json.meshes||[])for(let t of e.primitives)yield t}var Uu={};pt(Uu,{decode:()=>P4,name:()=>R4});var Ja="KHR_texture_transform",R4=Ja,Va=new X,L4=new He,D4=new He;function P4(r,e){return Z(this,null,function*(){if(!new et(r).hasExtension(Ja)||!e.gltf?.loadBuffers)return;let i=r.json.materials||[];for(let A=0;A<i.length;A++)O4(A,r)})}function O4(r,e){let t=e.json.materials?.[r],n=[t?.pbrMetallicRoughness?.baseColorTexture,t?.emissiveTexture,t?.normalTexture,t?.occlusionTexture,t?.pbrMetallicRoughness?.metallicRoughnessTexture],i=[];for(let A of n)A&&A?.extensions?.[Ja]&&N4(e,r,A,i)}function N4(r,e,t,n){let i=G4(t,n);if(!i)return;let A=r.json.meshes||[];for(let h of A)for(let p of h.primitives){let B=p.material;Number.isFinite(B)&&e===B&&U4(r,p,i)}}function G4(r,e){let t=r.extensions?.[Ja],{texCoord:n=0}=r,{texCoord:i=n}=t;if(!(e.findIndex(([h,p])=>h===n&&p===i)!==-1)){let h=V4(t);return n!==i&&(r.texCoord=i),e.push([n,i]),{originalTexCoord:n,texCoord:i,matrix:h}}return null}function U4(r,e,t){let{originalTexCoord:n,texCoord:i,matrix:A}=t,h=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(h)){let p=r.json.accessors?.[h];if(p&&p.bufferView!==void 0){let B=r.json.bufferViews?.[p.bufferView];if(B){let{arrayBuffer:T,byteOffset:y}=r.buffers[B.buffer],E=(y||0)+(p.byteOffset||0)+(B.byteOffset||0),{ArrayType:I,length:S}=ci(p,B),O=La[p.componentType],N=Ra[p.type],Q=B.byteStride||O*N,z=new Float32Array(S);for(let j=0;j<p.count;j++){let re=new I(T,E+j*Q,2);Va.set(re[0],re[1],1),Va.transformByMatrix3(A),z.set([Va[0],Va[1]],j*N)}n===i?k4(p,r,z,p.bufferView):H4(i,p,e,r,z)}}}}function k4(r,e,t,n){r.componentType=5126,r.byteOffset=0;let h=(e.json.accessors||[]).reduce((T,y)=>y.bufferView===n?T+1:T,0)>1;e.buffers.push({arrayBuffer:ir(t.buffer),byteOffset:0,byteLength:t.buffer.byteLength});let p=e.buffers.length-1;if(e.json.bufferViews=e.json.bufferViews||[],h){e.json.bufferViews.push({buffer:p,byteLength:t.buffer.byteLength,byteOffset:0}),r.bufferView=e.json.bufferViews.length-1;return}let B=e.json.bufferViews[n];B&&(B.buffer=p,B.byteOffset=0,B.byteLength=t.buffer.byteLength,B.byteStride!==void 0&&delete B.byteStride)}function H4(r,e,t,n,i){n.buffers.push({arrayBuffer:ir(i.buffer),byteOffset:0,byteLength:i.buffer.byteLength}),n.json.bufferViews=n.json.bufferViews||[];let A=n.json.bufferViews;A.push({buffer:n.buffers.length-1,byteLength:i.buffer.byteLength,byteOffset:0});let h=n.json.accessors;h&&(h.push({bufferView:A?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),t.attributes[`TEXCOORD_${r}`]=h.length-1)}function V4(r){let{offset:e=[0,0],rotation:t=0,scale:n=[1,1]}=r,i=new He().set(1,0,0,0,1,0,e[0],e[1],1),A=L4.set(Math.cos(t),Math.sin(t),0,-Math.sin(t),Math.cos(t),0,0,0,1),h=D4.set(n[0],0,0,0,n[1],0,0,0,1);return i.multiplyRight(A).multiplyRight(h)}var ku={};pt(ku,{decode:()=>j4,encode:()=>Q4,name:()=>J4});var ls="KHR_lights_punctual",J4=ls;function j4(r){return Z(this,null,function*(){let e=new et(r),{json:t}=e,n=e.getExtension(ls);n&&(e.json.lights=n.lights,e.removeExtension(ls));for(let i of t.nodes||[]){let A=e.getObjectExtension(i,ls);A&&(i.light=A.light),e.removeObjectExtension(i,ls)}})}function Q4(r){return Z(this,null,function*(){let e=new et(r),{json:t}=e;if(t.lights){let n=e.addExtension(ls);Lt(!n.lights),n.lights=t.lights,delete t.lights}if(e.json.lights){for(let n of e.json.lights){let i=n.node;e.addObjectExtension(i,ls,n)}delete e.json.lights}})}var Hu={};pt(Hu,{decode:()=>z4,encode:()=>X4,name:()=>K4});var Bo="KHR_materials_unlit",K4=Bo;function z4(r){return Z(this,null,function*(){let e=new et(r),{json:t}=e;for(let n of t.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,Bo);e.removeExtension(Bo)})}function X4(r){let e=new et(r),{json:t}=e;if(e.materials)for(let n of t.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,Bo,{}),e.addExtension(Bo))}var Vu={};pt(Vu,{decode:()=>W4,encode:()=>q4,name:()=>Y4});var Co="KHR_techniques_webgl",Y4=Co;function W4(r){return Z(this,null,function*(){let e=new et(r),{json:t}=e,n=e.getExtension(Co);if(n){let i=Z4(n,e);for(let A of t.materials||[]){let h=e.getObjectExtension(A,Co);h&&(A.technique=Object.assign({},h,i[h.technique]),A.technique.values=$4(A.technique,e)),e.removeObjectExtension(A,Co)}e.removeExtension(Co)}})}function q4(r,e){return Z(this,null,function*(){})}function Z4(r,e){let{programs:t=[],shaders:n=[],techniques:i=[]}=r,A=new TextDecoder;return n.forEach(h=>{if(Number.isFinite(h.bufferView))h.code=A.decode(e.getTypedArrayForBufferView(h.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),t.forEach(h=>{h.fragmentShader=n[h.fragmentShader],h.vertexShader=n[h.vertexShader]}),i.forEach(h=>{h.program=t[h.program]}),i}function $4(r,e){let t=Object.assign({},r.values);return Object.keys(r.uniforms||{}).forEach(n=>{r.uniforms[n].value&&!(n in t)&&(t[n]=r.uniforms[n].value)}),Object.keys(t).forEach(n=>{typeof t[n]=="object"&&t[n].index!==void 0&&(t[n].texture=e.getTexture(t[n].index))}),t}var U1=[wu,_u,Du,Pu,Ou,Gu,ku,Hu,Vu,Uu,Mu];function k1(r,e={},t){let n=U1.filter(i=>V1(i.name,e));for(let i of n)i.preprocess?.(r,e,t)}function H1(n){return Z(this,arguments,function*(r,e={},t){let i=U1.filter(A=>V1(A.name,e));for(let A of i)yield A.decode?.(r,e,t)})}function V1(r,e){let t=e?.gltf?.excludeExtensions||{};return!(r in t&&!t[r])}var Ju="KHR_binary_glTF";function J1(r){let e=new et(r),{json:t}=e;for(let n of t.images||[]){let i=e.getObjectExtension(n,Ju);i&&Object.assign(n,i),e.removeObjectExtension(n,Ju)}t.buffers&&t.buffers[0]&&delete t.buffers[0].uri,e.removeExtension(Ju)}var j1={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},tR={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"},ju=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,t){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(!t.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),J1(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 t in j1)this._convertTopLevelObjectToArray(e,t)}_convertTopLevelObjectToArray(e,t){let n=e[t];if(!(!n||Array.isArray(n))){e[t]=[];for(let i in n){let A=n[i];A.id=A.id||i;let h=e[t].length;e[t].push(A),this.idToIndexMap[t][i]=h}}}_convertObjectIdsToArrayIndices(e){for(let t in j1)this._convertIdsToIndices(e,t);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(let t of e.textures)this._convertTextureIds(t);for(let t of e.meshes)this._convertMeshIds(t);for(let t of e.nodes)this._convertNodeIds(t);for(let t of e.scenes)this._convertSceneIds(t)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(let t of e.primitives){let{attributes:n,indices:i,material:A}=t;for(let h in n)n[h]=this._convertIdToIndex(n[h],"accessor");i&&(t.indices=this._convertIdToIndex(i,"accessor")),A&&(t.material=this._convertIdToIndex(A,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(t=>this._convertIdToIndex(t,"node"))),e.meshes&&(e.meshes=e.meshes.map(t=>this._convertIdToIndex(t,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(t=>this._convertIdToIndex(t,"node")))}_convertIdsToIndices(e,t){e[t]||(console.warn(`gltf v1: json doesn't contain attribute ${t}`),e[t]=[]);for(let n of e[t])for(let i in n){let A=n[i],h=this._convertIdToIndex(A,i);n[i]=h}}_convertIdToIndex(e,t){let n=tR[t];if(n in this.idToIndexMap){let i=this.idToIndexMap[n][e];if(!Number.isFinite(i))throw new Error(`gltf v1: failed to resolve ${t} with id ${e}`);return i}return e}_updateObjects(e){for(let t of this.json.buffers)delete t.type}_updateMaterial(e){for(let t of e.materials){t.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let n=t.values?.tex||t.values?.texture2d_0||t.values?.diffuseTex,i=e.textures.findIndex(A=>A.id===n);i!==-1&&(t.pbrMetallicRoughness.baseColorTexture={index:i})}}};function Q1(r,e={}){return new ju().normalize(r,e)}function rR(r,e){let t=r.basis,n=t?.format;return ee(P({},r),{core:ee(P({},r.core),{mimeType:e}),basis:ee(P({},t),{format:n&&n!=="auto"?n:ss(t?.supportedTextureFormats)})})}function K1(r,e,t=0,n,i){return Z(this,null,function*(){return nR(r,e,t,n),Q1(r,{normalize:n?.gltf?.normalize}
1123),k1(r,n,i),n?.gltf?.loadBuffers&&r.json.buffers&&(yield sR(r,n,i)),n?.gltf?.loadImages&&(yield iR(r,n,i)),yield H1(r,n,i),r})}function nR(r,e,t,n){if(n.core?.baseUrl&&(r.baseUri=n.core?.baseUrl),e instanceof ArrayBuffer&&!D1(e,t,n.glb)&&(e=new TextDecoder().decode(e)),typeof e=="string")r.json=ko(e);else if(e instanceof ArrayBuffer){let h={};t=P1(h,e,t,n.glb),Lt(h.type==="glTF",`Invalid GLB magic string ${h.type}`),r._glb=h,r.json=h.json}else Lt(!1,"GLTF: must be ArrayBuffer or string");let i=r.json.buffers||[];if(r.buffers=new Array(i.length).fill(null),r._glb&&r._glb.header.hasBinChunk){let{binChunks:h}=r._glb;r.buffers[0]={arrayBuffer:h[0].arrayBuffer,byteOffset:h[0].byteOffset,byteLength:h[0].byteLength}}let A=r.json.images||[];r.images=new Array(A.length).fill({})}function sR(r,e,t){return Z(this,null,function*(){let n=r.json.buffers||[];for(let i=0;i<n.length;++i){let A=n[i];if(A.uri){let{fetch:h}=t;Lt(h);let p=Ru(A.uri,e,t),T=yield(yield t?.fetch?.(p))?.arrayBuffer?.();r.buffers[i]={arrayBuffer:T,byteOffset:0,byteLength:T.byteLength},delete A.uri}else r.buffers[i]===null&&(r.buffers[i]={arrayBuffer:new ArrayBuffer(A.byteLength),byteOffset:0,byteLength:A.byteLength})}})}function iR(r,e,t){return Z(this,null,function*(){let n=oR(r),i=r.json.images||[],A=[];for(let h of n)A.push(AR(r,i[h],h,e,t));return yield Promise.all(A)})}function oR(r){let e=new Set,t=r.json.textures||[];for(let n of t)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}function AR(r,e,t,n,i){return Z(this,null,function*(){let A;if(e.uri&&!e.hasOwnProperty("bufferView")){let B=Ru(e.uri,n,i),{fetch:T}=i;A=yield(yield T(B)).arrayBuffer(),e.bufferView={data:A}}if(Number.isFinite(e.bufferView)){let B=I1(r.json,r.buffers,e.bufferView);A=Xr(B.buffer,B.byteOffset,B.byteLength)}Lt(A,"glTF image has no data");let h=rR(n,e.mimeType),p=yield Jt(A,[Qn,Ao],h,i);p&&p[0]&&(p={compressed:!0,mipmaps:!1,width:p[0].width,height:p[0].height,data:p[0]}),r.images=r.images||[],r.images[t]=p})}var us={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:R1,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:aR,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0}}};function aR(n){return Z(this,arguments,function*(r,e={},t){let i=P(P({},us.options),e);i.gltf=P(P({},us.options.gltf),i.gltf);let A=e?.glb?.byteOffset||0;return yield K1({},r,A,i,t)})}var cR={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},lR={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},vr={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},uR={magFilter:vr.TEXTURE_MAG_FILTER,minFilter:vr.TEXTURE_MIN_FILTER,wrapS:vr.TEXTURE_WRAP_S,wrapT:vr.TEXTURE_WRAP_T},fR={[vr.TEXTURE_MAG_FILTER]:vr.LINEAR,[vr.TEXTURE_MIN_FILTER]:vr.NEAREST_MIPMAP_LINEAR,[vr.TEXTURE_WRAP_S]:vr.REPEAT,[vr.TEXTURE_WRAP_T]:vr.REPEAT};function hR(){return{id:"default-sampler",parameters:fR}}function dR(r){return lR[r]}function pR(r){return cR[r]}var Qu=class{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,t={}){let{json:n,buffers:i=[],images:A=[]}=e,{baseUri:h=""}=e;return Lt(n),this.baseUri=h,this.buffers=i,this.images=A,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,t),this.json}_resolveTree(e,t={}){let n=P({},e);return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((i,A)=>this._resolveBufferView(i,A))),e.images&&(n.images=e.images.map((i,A)=>this._resolveImage(i,A))),e.samplers&&(n.samplers=e.samplers.map((i,A)=>this._resolveSampler(i,A))),e.textures&&(n.textures=e.textures.map((i,A)=>this._resolveTexture(i,A))),e.accessors&&(n.accessors=e.accessors.map((i,A)=>this._resolveAccessor(i,A))),e.materials&&(n.materials=e.materials.map((i,A)=>this._resolveMaterial(i,A))),e.meshes&&(n.meshes=e.meshes.map((i,A)=>this._resolveMesh(i,A))),e.nodes&&(n.nodes=e.nodes.map((i,A)=>this._resolveNode(i,A)),n.nodes=n.nodes.map((i,A)=>this._resolveNodeChildren(i))),e.skins&&(n.skins=e.skins.map((i,A)=>this._resolveSkin(i,A))),e.scenes&&(n.scenes=e.scenes.map((i,A)=>this._resolveScene(i,A))),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,t){if(typeof t=="object")return t;let n=e&&e[t];return n||console.warn(`glTF file error: Could not find ${e}[${t}]`),n}_resolveScene(e,t){return ee(P({},e),{id:e.id||`scene-${t}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))})}_resolveNode(e,t){let n=ee(P({},e),{id:e?.id||`node-${t}`});
1123return 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((i,A)=>{let h=this.getMesh(A);return i.id=h.id,i.primitives=i.primitives.concat(h.primitives),i},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(t=>this.getNode(t))),e}_resolveSkin(e,t){let n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return ee(P({},e),{id:e.id||`skin-${t}`,inverseBindMatrices:n})}_resolveMesh(e,t){let n=ee(P({},e),{id:e.id||`mesh-${t}`,primitives:[]});return e.primitives&&(n.primitives=e.primitives.map(i=>{let A=ee(P({},i),{attributes:{},indices:void 0,material:void 0}),h=i.attributes;for(let p in h)A.attributes[p]=this.getAccessor(h[p]);return i.indices!==void 0&&(A.indices=this.getAccessor(i.indices)),i.material!==void 0&&(A.material=this.getMaterial(i.material)),A})),n}_resolveMaterial(e,t){let n=ee(P({},e),{id:e.id||`material-${t}`});if(n.normalTexture&&(n.normalTexture=P({},n.normalTexture),n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture=P({},n.occlusionTexture),n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture=P({},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=P({},n.pbrMetallicRoughness);let i=n.pbrMetallicRoughness;i.baseColorTexture&&(i.baseColorTexture=P({},i.baseColorTexture),i.baseColorTexture.texture=this.getTexture(i.baseColorTexture.index)),i.metallicRoughnessTexture&&(i.metallicRoughnessTexture=P({},i.metallicRoughnessTexture),i.metallicRoughnessTexture.texture=this.getTexture(i.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,t){let n=dR(e.componentType),i=pR(e.type),A=n*i,h=ee(P({},e),{id:e.id||`accessor-${t}`,bytesPerComponent:n,components:i,bytesPerElement:A,value:void 0,bufferView:void 0,sparse:void 0});if(e.bufferView!==void 0&&(h.bufferView=this.getBufferView(e.bufferView)),h.bufferView){let p=h.bufferView.buffer,{ArrayType:B,byteLength:T}=ci(h,h.bufferView),y=(h.bufferView.byteOffset||0)+(h.byteOffset||0)+p.byteOffset,E=jo(p.arrayBuffer,y,T);h.bufferView.byteStride&&(E=this._getValueFromInterleavedBuffer(p,y,h.bufferView.byteStride,h.bytesPerElement,h.count)),h.value=new B(E)}return h}_getValueFromInterleavedBuffer(e,t,n,i,A){let h=new Uint8Array(A*i);for(let p=0;p<A;p++){let B=t+p*n;h.set(new Uint8Array(e.arrayBuffer.slice(B,B+i)),p*i)}return h.buffer}_resolveTexture(e,t){return ee(P({},e),{id:e.id||`texture-${t}`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):hR(),source:typeof e.source=="number"?this.getImage(e.source):void 0})}_resolveSampler(e,t){let n=ee(P({id:e.id||`sampler-${t}`},e),{parameters:{}});for(let i in n){let A=this._enumSamplerParameter(i);A!==void 0&&(n.parameters[A]=n[i])}return n}_enumSamplerParameter(e){return uR[e]}_resolveImage(e,t){let n=ee(P({},e),{id:e.id||`image-${t}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0}),i=this.images[t];return i&&(n.image=i),n}_resolveBufferView(e,t){let n=e.buffer,i=this.buffers[n].arrayBuffer,A=this.buffers[n].byteOffset||0;return e.byteOffset&&(A+=e.byteOffset),ee(P({id:`bufferView-${t}`},e),{buffer:this.buffers[n],data:new Uint8Array(i,A,e.byteLength)})}_resolveCamera(e,t){let n=ee(P({},e),{id:e.id||`camera-${t}`});return n.perspective,n.orthographic,n}};function To(r,e){return new Qu().postProcess(r,e)}var ja={URI:0,EMBEDDED:1};function Qa(r,e,t,n){r.rotateYtoZ=!0;let i=(r.byteOffset||0)+(r.byteLength||0)-t;if(i===0)throw new Error("glTF byte length must be greater than 0.");return r.gltfUpAxis=n?.["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",r.gltfArrayBuffer=Xr(e,t,i),r.gltfByteOffset=0,r.gltfByteLength=i,t%4===0||console.warn(`${r.type}: embedded glb is not aligned to a 4-byte boundary.`),(r.byteOffset||0)+(r.byteLength||0)}function Ka(r,e,t,n){return Z(this,null,function*(){let i=t?.["3d-tiles"]||{};if(mR(r,e,t),i.loadGLTF){if(!n)return;if(r.gltfUrl){let{fetch:A}=n,h=yield A(r.gltfUrl,t?.core);r.gltfArrayBuffer=yield h.arrayBuffer(),r.gltfByteOffset=0}if(r.gltfArrayBuffer){let A=yield Jt(r.gltfArrayBuffer,us,t,n);r.gltf=To(A),r.gpuMemoryUsageInBytes=mo(r.gltf),delete r.gltfArrayBuffer,delete r.gltfByteOffset,delete r.gltfByteLength}}})}function mR(r,e,t){switch(e){case ja.URI:if(r.gltfArrayBuffer){let n=new Uint8Array(r.gltfArrayBuffer,r.gltfByteOffset),A=new TextDecoder().decode(n);r.gltfUrl=A.replace(/[\s\0]+$/,"")}delete r.gltfArrayBuffer,delete r.gltfByteOffset,delete r.gltfByteLength;break;case ja.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}function z1(r,e,t,n,i){return Z(this,null,function*(){t=gR(r,e,t,n,i),yield Ka(r,ja.EMBEDDED,n,i);let A=r?.gltf?.extensions;
1123return A&&A.CESIUM_RTC&&(r.rtcCenter=A.CESIUM_RTC.center),t})}function gR(r,e,t,n,i){t=On(r,e,t),t=Ai(r,e,t),t=ai(r,e,t,n),t=Qa(r,e,t,n);let A=new Pn(r.featureTableJson,r.featureTableBinary);return r.rtcCenter=A.getGlobalProperty("RTC_CENTER",Oe.FLOAT,3),t}function X1(r,e,t,n,i){return Z(this,null,function*(){return t=BR(r,e,t,n,i),yield Ka(r,r.gltfFormat||0,n,i),t})}function BR(r,e,t,n,i){if(t=On(r,e,t),r.version!==1)throw new Error(`Instanced 3D Model version ${r.version} is not supported`);t=Ai(r,e,t);let A=new DataView(e);if(r.gltfFormat=A.getUint32(t,!0),t+=4,t=ai(r,e,t,n),t=Qa(r,e,t,n),!r?.header?.featureTableJsonByteLength||r.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");let h=new Pn(r.featureTableJson,r.featureTableBinary),p=h.getGlobalProperty("INSTANCES_LENGTH");if(h.featuresLength=p,!Number.isFinite(p))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");r.eastNorthUp=h.getGlobalProperty("EAST_NORTH_UP"),r.rtcCenter=h.getGlobalProperty("RTC_CENTER",Oe.FLOAT,3);let B=new ii(r.batchTableJson,r.batchTableBinary,p);return CR(r,h,B,p),t}function CR(r,e,t,n){let i=new Array(n),A=new X,h=new X,p=new X,B=new X,T=new He,y=new Kn,E=new X,I={},S=new Se,O=[],N=[],Q=[],z=[];for(let j=0;j<n;j++){let re;if(e.hasProperty("POSITION"))re=e.getProperty("POSITION",Oe.FLOAT,3,j,A);else if(e.hasProperty("POSITION_QUANTIZED")){re=e.getProperty("POSITION_QUANTIZED",Oe.UNSIGNED_SHORT,3,j,A);let U=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",Oe.FLOAT,3);if(!U)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let fe=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",Oe.FLOAT,3);if(!fe)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let _e=65535;for(let xe=0;xe<3;xe++)re[xe]=re[xe]/_e*fe[xe]+U[xe]}if(!re)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");A.copy(re),I.translation=A,r.normalUp=e.getProperty("NORMAL_UP",Oe.FLOAT,3,j,O),r.normalRight=e.getProperty("NORMAL_RIGHT",Oe.FLOAT,3,j,N);let ie=!1;if(r.normalUp){if(!r.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");r.hasCustomOrientation=!0}else{if(r.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",Oe.UNSIGNED_SHORT,2,j,O),r.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",Oe.UNSIGNED_SHORT,2,j,N),r.octNormalUp)throw r.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");r.eastNorthUp?(ke.WGS84.eastNorthUpToFixedFrame(A,S),S.getRotationMatrix3(T)):T.identity()}ie&&(B.copy(h).cross(p).normalize(),T.setColumn(0,h),T.setColumn(1,p),T.setColumn(2,B)),y.fromMatrix3(T),I.rotation=y,E.set(1,1,1);let ce=e.getProperty("SCALE",Oe.FLOAT,1,j,Q);Number.isFinite(ce)&&E.multiplyByScalar(ce);let Ae=e.getProperty("SCALE_NON_UNIFORM",Oe.FLOAT,3,j,O);Ae&&E.scale(Ae),I.scale=E;let he=e.getProperty("BATCH_ID",Oe.UNSIGNED_SHORT,1,j,z);he===void 0&&(he=j);let W=new Se().fromQuaternion(I.rotation);S.identity(),S.translate(I.translation),S.multiplyRight(W),S.scale(I.scale);let H=S.clone();i[j]={modelMatrix:H,batchId:he}}r.instances=i}function Y1(r,e,t,n,i,A){return Z(this,null,function*(){t=On(r,e,t);let h=new DataView(e);for(r.tilesLength=h.getUint32(t,!0),t+=4,r.tiles=[];r.tiles.length<r.tilesLength&&(r.byteLength||0)-t>12;){let p={shape:"tile3d"};r.tiles.push(p),t=yield A(e,t,n,i,p)}return t})}function W1(r,e,t,n){return Z(this,null,function*(){if(r.rotateYtoZ=!0,r.gltfUpAxis=t?.["3d-tiles"]?.assetGltfUpAxis?t["3d-tiles"].assetGltfUpAxis:"Y",t?.["3d-tiles"]?.loadGLTF){if(!n)return e.byteLength;let i=yield Jt(e,us,t,n);r.gltf=To(i),r.gpuMemoryUsageInBytes=mo(r.gltf)}else r.gltfArrayBuffer=e;return e.byteLength})}function Ku(A){return Z(this,arguments,function*(r,e=0,t,n,i={shape:"tile3d"}){switch(i.byteOffset=e,i.type=f1(r,e),i.type){case cs.COMPOSITE:return yield Y1(i,r,e,t,n,Ku);case cs.BATCHED_3D_MODEL:return yield z1(i,r,e,t,n);case cs.GLTF:return yield W1(i,r,t,n);case cs.INSTANCED_3D_MODEL:return yield X1(i,r,e,t,n);case cs.POINT_CLOUD:return yield _1(i,r,e,t,n);default:throw new Error(`3DTileLoader: unknown type ${i.type}`)}})}
vendor: 6,005 bytes, line 1123
1123function zu(r,e,t){return Z(this,null,function*(){if(new Uint32Array(r.slice(0,4))[0]!==1952609651)throw new Error("Wrong subtree file magic number");if(new Uint32Array(r.slice(4,8))[0]!==1)throw new Error("Wrong subtree file verson, must be 1");let A=q1(r.slice(8,16)),h=new Uint8Array(r,24,A),B=new TextDecoder("utf8").decode(h),T=JSON.parse(B),y=q1(r.slice(16,24)),E=new ArrayBuffer(0);if(y&&(E=r.slice(24+A)),yield za(T,T.tileAvailability,E,t),Array.isArray(T.contentAvailability))for(let I of T.contentAvailability)yield za(T,I,E,t);else yield za(T,T.contentAvailability,E,t);return yield za(T,T.childSubtreeAvailability,E,t),T})}function za(r,e,t,n){return Z(this,null,function*(){let i=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof i!="number")return;let A=r.bufferViews[i],h=r.buffers[A.buffer];if(!n?.baseUrl)throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(h.uri){let B=`${n?.baseUrl||""}/${h.uri}`,y=yield(yield n.fetch(B)).arrayBuffer();e.explicitBitstream=new Uint8Array(y,A.byteOffset,A.byteLength);return}let p=r.buffers.slice(0,A.buffer).reduce((B,T)=>B+T.byteLength,0);e.explicitBitstream=new Uint8Array(t.slice(p,p+h.byteLength),A.byteOffset,A.byteLength)})}function q1(r){let e=new DataView(r),t=e.getUint32(0,!0),n=e.getUint32(4,!0);return t+2**32*n}var Xa={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:va,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:zu,options:{}};var Fr=null;try{Fr=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(r){}function At(r,e,t){this.low=r|0,this.high=e|0,this.unsigned=!!t}At.prototype.__isLong__;Object.defineProperty(At.prototype,"__isLong__",{value:!0});function Kt(r){return(r&&r.__isLong__)===!0}function Z1(r){var e=Math.clz32(r&-r);return r?31-e:e}At.isLong=Kt;var $1={},eB={};function fs(r,e){var t,n,i;return e?(r>>>=0,(i=0<=r&&r<256)&&(n=eB[r],n)?n:(t=We(r,0,!0),i&&(eB[r]=t),t)):(r|=0,(i=-128<=r&&r<128)&&(n=$1[r],n)?n:(t=We(r,r<0?-1:0,!1),i&&($1[r]=t),t))}At.fromInt=fs;function Rr(r,e){if(isNaN(r))return e?hn:jr;if(e){if(r<0)return hn;if(r>=sB)return AB}else{if(r<=-rB)return lr;if(r+1>=rB)return oB}return r<0?Rr(-r,e).neg():We(r%Bi|0,r/Bi|0,e)}At.fromNumber=Rr;function We(r,e,t){return new At(r,e,t)}At.fromBits=We;var Ya=Math.pow;function Yu(r,e,t){if(r.length===0)throw Error("empty string");if(typeof e=="number"?(t=e,e=!1):e=!!e,r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return e?hn:jr;if(t=t||10,t<2||36<t)throw RangeError("radix");var n;if((n=r.indexOf("-"))>0)throw Error("interior hyphen");if(n===0)return Yu(r.substring(1),e,t).neg();for(var i=Rr(Ya(t,8)),A=jr,h=0;h<r.length;h+=8){var p=Math.min(8,r.length-h),B=parseInt(r.substring(h,h+p),t);if(p<8){var T=Rr(Ya(t,p));A=A.mul(T).add(Rr(B))}else A=A.mul(i),A=A.add(Rr(B))}return A.unsigned=e,A}At.fromString=Yu;function Lr(r,e){return typeof r=="number"?Rr(r,e):typeof r=="string"?Yu(r,e):We(r.low,r.high,typeof e=="boolean"?e:r.unsigned)}At.fromValue=Lr;var tB=65536,TR=1<<24,Bi=tB*tB,sB=Bi*Bi,rB=sB/2,nB=fs(TR),jr=fs(0);At.ZERO=jr;var hn=fs(0,!0);At.UZERO=hn;var gi=fs(1);At.ONE=gi;var iB=fs(1,!0);At.UONE=iB;var Xu=fs(-1);At.NEG_ONE=Xu;var oB=We(-1,2147483647,!1);At.MAX_VALUE=oB;var AB=We(-1,-1,!0);At.MAX_UNSIGNED_VALUE=AB;var lr=We(0,-2147483648,!1);At.MIN_VALUE=lr;var Be=At.prototype;Be.toInt=function(){return this.unsigned?this.low>>>0:this.low};Be.toNumber=function(){return this.unsigned?(this.high>>>0)*Bi+(this.low>>>0):this.high*Bi+(this.low>>>0)};Be.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(lr)){var t=Rr(e),n=this.div(t),i=n.mul(t).sub(this);return n.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var A=Rr(Ya(e,6),this.unsigned),h=this,p="";;){var B=h.div(A),T=h.sub(B.mul(A)).toInt()>>>0,y=T.toString(e);if(h=B,h.isZero())return y+p;for(;y.length<6;)y="0"+y;p=""+y+p}};Be.getHighBits=function(){return this.high};Be.getHighBitsUnsigned=function(){return this.high>>>0};Be.getLowBits=function(){return this.low};Be.getLowBitsUnsigned=function(){return this.low>>>0};Be.getNumBitsAbs=function(){if(this.isNegative())return this.eq(lr)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,t=31;t>0&&(e&1<<t)==0;t--);return this.high!=0?t+33:t+1};Be.isSafeInteger=function(){var e=this.high>>21;return e?this.unsigned?!1:e===-1&&!(this.low===0&&this.high===-2097152):!0};Be.isZero=function(){return this.high===0&&this.low===0};Be.eqz=Be.isZero;Be.isNegative=function(){return!this.unsigned&&this.high<0};Be.isPositive=function(){return this.unsigned||this.high>=0};Be.isOdd=function(){return(this.low&1)===1};Be.isEven=function(){return(this.low&1)===0};Be.equals=function(e){return Kt(e)||(e=Lr(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};Be.eq=Be.equals;Be.notEquals=function(e){return!this.eq(e)};Be.neq=Be.notEquals;Be.ne=Be.notEquals;Be.lessThan=function(e){return this.comp(e)<0}
vendor: 5,521 bytes, line 1123
1123;Be.lt=Be.lessThan;Be.lessThanOrEqual=function(e){return this.comp(e)<=0};Be.lte=Be.lessThanOrEqual;Be.le=Be.lessThanOrEqual;Be.greaterThan=function(e){return this.comp(e)>0};Be.gt=Be.greaterThan;Be.greaterThanOrEqual=function(e){return this.comp(e)>=0};Be.gte=Be.greaterThanOrEqual;Be.ge=Be.greaterThanOrEqual;Be.compare=function(e){if(Kt(e)||(e=Lr(e)),this.eq(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&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};Be.comp=Be.compare;Be.negate=function(){return!this.unsigned&&this.eq(lr)?lr:this.not().add(gi)};Be.neg=Be.negate;Be.add=function(e){Kt(e)||(e=Lr(e));var t=this.high>>>16,n=this.high&65535,i=this.low>>>16,A=this.low&65535,h=e.high>>>16,p=e.high&65535,B=e.low>>>16,T=e.low&65535,y=0,E=0,I=0,S=0;return S+=A+T,I+=S>>>16,S&=65535,I+=i+B,E+=I>>>16,I&=65535,E+=n+p,y+=E>>>16,E&=65535,y+=t+h,y&=65535,We(I<<16|S,y<<16|E,this.unsigned)};Be.subtract=function(e){return Kt(e)||(e=Lr(e)),this.add(e.neg())};Be.sub=Be.subtract;Be.multiply=function(e){if(this.isZero())return this;if(Kt(e)||(e=Lr(e)),Fr){var t=Fr.mul(this.low,this.high,e.low,e.high);return We(t,Fr.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?hn:jr;if(this.eq(lr))return e.isOdd()?lr:jr;if(e.eq(lr))return this.isOdd()?lr:jr;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(nB)&&e.lt(nB))return Rr(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,i=this.high&65535,A=this.low>>>16,h=this.low&65535,p=e.high>>>16,B=e.high&65535,T=e.low>>>16,y=e.low&65535,E=0,I=0,S=0,O=0;return O+=h*y,S+=O>>>16,O&=65535,S+=A*y,I+=S>>>16,S&=65535,S+=h*T,I+=S>>>16,S&=65535,I+=i*y,E+=I>>>16,I&=65535,I+=A*T,E+=I>>>16,I&=65535,I+=h*B,E+=I>>>16,I&=65535,E+=n*y+i*T+A*B+h*p,E&=65535,We(S<<16|O,E<<16|I,this.unsigned)};Be.mul=Be.multiply;Be.divide=function(e){if(Kt(e)||(e=Lr(e)),e.isZero())throw Error("division by zero");if(Fr){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var t=(this.unsigned?Fr.div_u:Fr.div_s)(this.low,this.high,e.low,e.high);return We(t,Fr.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?hn:jr;var n,i,A;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return hn;if(e.gt(this.shru(1)))return iB;A=hn}else{if(this.eq(lr)){if(e.eq(gi)||e.eq(Xu))return lr;if(e.eq(lr))return gi;var h=this.shr(1);return n=h.div(e).shl(1),n.eq(jr)?e.isNegative()?gi:Xu:(i=this.sub(e.mul(n)),A=n.add(i.div(e)),A)}else if(e.eq(lr))return this.unsigned?hn:jr;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();A=jr}for(i=this;i.gte(e);){n=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var p=Math.ceil(Math.log(n)/Math.LN2),B=p<=48?1:Ya(2,p-48),T=Rr(n),y=T.mul(e);y.isNegative()||y.gt(i);)n-=B,T=Rr(n,this.unsigned),y=T.mul(e);T.isZero()&&(T=gi),A=A.add(T),i=i.sub(y)}return A};Be.div=Be.divide;Be.modulo=function(e){if(Kt(e)||(e=Lr(e)),Fr){var t=(this.unsigned?Fr.rem_u:Fr.rem_s)(this.low,this.high,e.low,e.high);return We(t,Fr.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};Be.mod=Be.modulo;Be.rem=Be.modulo;Be.not=function(){return We(~this.low,~this.high,this.unsigned)};Be.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};Be.clz=Be.countLeadingZeros;Be.countTrailingZeros=function(){return this.low?Z1(this.low):Z1(this.high)+32};Be.ctz=Be.countTrailingZeros;Be.and=function(e){return Kt(e)||(e=Lr(e)),We(this.low&e.low,this.high&e.high,this.unsigned)};Be.or=function(e){return Kt(e)||(e=Lr(e)),We(this.low|e.low,this.high|e.high,this.unsigned)};Be.xor=function(e){return Kt(e)||(e=Lr(e)),We(this.low^e.low,this.high^e.high,this.unsigned)};Be.shiftLeft=function(e){return Kt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?We(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):We(0,this.low<<e-32,this.unsigned)};Be.shl=Be.shiftLeft;Be.shiftRight=function(e){return Kt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?We(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):We(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};Be.shr=Be.shiftRight;Be.shiftRightUnsigned=function(e){return Kt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?We(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?We(this.high,0,this.unsigned):We(this.high>>>e-32,0,this.unsigned)};Be.shru=Be.shiftRightUnsigned;Be.shr_u=Be.shiftRightUnsigned;Be.rotateLeft=function(e){var t;return Kt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?We(this.high,this.low,this.unsigned):e<32?(t=32-e,We(this.low<<e|this.high>>>t,this.high<<e|this.low>>>t,this.unsigned)):(e-=32,t=32-e,We(this.high<<e|this.low>>>t,this.low<<e|this.high>>>t,this.unsigned))};Be.rotl=Be.rotateLeft;Be.rotateRight=function(e){var t;return Kt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?We(this.high,this.low,this.unsigned):e<32?(t=32-e,We(this.high<<t|this.low>>>e,this.low<<t|this.high>>>e,this.unsigned)):(e-=32,t=32-e,We(this.low<<t|this.high>>>e,this.high<<t|this.low>>>e,this.unsigned))};Be.rotr=Be.rotateRight;Be.toSigned=function(){return this.unsigned?We(this.low,this.high,!1):this};Be.toUnsigned=function(){return this.unsigned?this:We(this.low,this.high,!0)};Be.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};Be.toBytesLE=function(){var e=this.high,t=this.low;return[t&255,t>>>8&255,t>>>16&255,t>>>24,e&255,e>>
vendor: 5,141 bytes, line 1123
1123>8&255,e>>>16&255,e>>>24]};Be.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,t>>>24,t>>>16&255,t>>>8&255,t&255]};At.fromBytes=function(e,t,n){return n?At.fromBytesLE(e,t):At.fromBytesBE(e,t)};At.fromBytesLE=function(e,t){return new At(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)};At.fromBytesBE=function(e,t){return new At(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)};typeof BigInt=="function"&&(At.fromBigInt=function(e,t){var n=Number(BigInt.asIntN(32,e)),i=Number(BigInt.asIntN(32,e>>BigInt(32)));return We(n,i,t)},At.fromValue=function(e,t){return typeof e=="bigint"?At.fromBigInt(e,t):Lr(e,t)},Be.toBigInt=function(){var e=BigInt(this.low>>>0),t=BigInt(this.unsigned?this.high>>>0:this.high);return t<<BigInt(32)|e});var Ci=At;var yR=16;function yo(r){r==="X"&&(r="");let e=r.padEnd(yR,"0");return Ci.fromString(e,!0,16)}function Wu(r){if(r.isZero())return"X";let e=r.countTrailingZeros(),t=e%4;e=(e-t)/4;let n=e;e*=4;let A=r.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-A.length).join("0")+A}function qu(r,e){let t=bR(r).shiftRightUnsigned(2);return r.add(Ci.fromNumber(2*e+1-4).multiply(t))}function bR(r){return r.and(r.not().add(1))}var ER=3,_R=30,xR=2*_R+1,aB=180/Math.PI;function lB(r){if(r.length===0)throw new Error(`Invalid Hilbert quad key ${r}`);let e=r.split("/"),t=parseInt(e[0],10),n=e[1],i=n.length,A=0,h=[0,0];for(let p=i-1;p>=0;p--){A=i-p;let B=n[p],T=0,y=0;B==="1"?y=1:B==="2"?(T=1,y=1):B==="3"&&(T=1);let E=Math.pow(2,A-1);IR(E,h,T,y),h[0]+=E*T,h[1]+=E*y}if(t%2===1){let p=h[0];h[0]=h[1],h[1]=p}return{face:t,ij:h,level:A}}function uB(r){if(r.isZero())return"";let e=r.toString(2);for(;e.length<ER+xR;)e="0"+e;let t=e.lastIndexOf("1"),n=e.substring(0,3),i=e.substring(3,t),A=i.length/2,h=Ci.fromString(n,!0,2).toString(10),p="";if(A!==0)for(p=Ci.fromString(i,!0,2).toString(4);p.length<A;)p="0"+p;return`${h}/${p}`}function Zu(r,e,t){let n=1<<e;return[(r[0]+t[0])/n,(r[1]+t[1])/n]}function cB(r){return r>=.5?1/3*(4*r*r-1):1/3*(1-4*(1-r)*(1-r))}function $u(r){return[cB(r[0]),cB(r[1])]}function ef(r,[e,t]){switch(r){case 0:return[1,e,t];case 1:return[-e,1,t];case 2:return[-e,-t,1];case 3:return[-1,-t,-e];case 4:return[t,-1,-e];case 5:return[t,e,-1];default:throw new Error("Invalid face")}}function tf([r,e,t]){let n=Math.atan2(t,Math.sqrt(r*r+e*e));return[Math.atan2(e,r)*aB,n*aB]}function IR(r,e,t,n){if(n===0){t===1&&(e[0]=r-1-e[0],e[1]=r-1-e[1]);let i=e[0];e[0]=e[1],e[1]=i}}function fB(r){let e=Zu(r.ij,r.level,[.5,.5]),t=$u(e),n=ef(r.face,t);return tf(n)}var wR=100;function rf(r){let{face:e,ij:t,level:n}=r,i=[[0,0],[0,1],[1,1],[1,0],[0,0]],A=Math.max(1,Math.ceil(wR*Math.pow(2,-n))),h=new Float64Array(4*A*2+2),p=0,B=0;for(let T=0;T<4;T++){let y=i[T].slice(0),E=i[T+1],I=(E[0]-y[0])/A,S=(E[1]-y[1])/A;for(let O=0;O<A;O++){y[0]+=I,y[1]+=S;let N=Zu(t,n,y),Q=$u(N),z=ef(e,Q),j=tf(z);Math.abs(j[1])>89.999&&(j[0]=B);let re=j[0]-B;j[0]+=re>180?-360:re<-180?360:0,h[p++]=j[0],h[p++]=j[1],B=j[0]}}return h[p++]=h[0],h[p++]=h[1],h}function Ti(r){let e=MR(r);return lB(e)}function MR(r){if(r.indexOf("/")>0)return r;let e=yo(r);return uB(e)}function nf(r){let e=Ti(r);return fB(e)}function dB(r){let e;if(r.face===2||r.face===5){let t=null,n=0;for(let i=0;i<4;i++){let A=`${r.face}/${i}`,h=Ti(A),p=rf(h);(typeof t>"u"||t===null)&&(t=new Float64Array(4*p.length)),t.set(p,n),n+=p.length}e=hB(t)}else{let t=rf(r);e=hB(t)}return e}function hB(r){if(r.length%2!==0)throw new Error("Invalid corners");let e=[],t=[];for(let n=0;n<r.length;n+=2)e.push(r[n]),t.push(r[n+1]);return e.sort((n,i)=>n-i),t.sort((n,i)=>n-i),{west:e[0],east:e[e.length-1],north:t[t.length-1],south:t[0]}}function sf(r,e){let t=e?.minimumHeight||0,n=e?.maximumHeight||0,i=Ti(r),A=dB(i),h=A.west,p=A.south,B=A.east,T=A.north,y=[];return y.push(new X(h,T,t)),y.push(new X(B,T,t)),y.push(new X(B,p,t)),y.push(new X(h,p,t)),y.push(new X(h,T,n)),y.push(new X(B,T,n)),y.push(new X(B,p,n)),y.push(new X(h,p,n)),y}function Wa(r){let e=r.token,t={minimumHeight:r.minimumHeight,maximumHeight:r.maximumHeight},n=sf(e,t),i=nf(e),A=i[0],h=i[1],p=ke.WGS84.cartographicToCartesian([A,h,t.maximumHeight]),B=new X(p[0],p[1],p[2]);n.push(B);let T=no(n);return[...T.center,...T.halfAxes]}var SR=4,vR=8,FR={QUADTREE:SR,OCTREE:vR};function RR(r,e,t){if(r?.box){let n=yo(r.s2VolumeInfo.token),i=qu(n,e),A=Wu(i),h=P({},r.s2VolumeInfo);if(h.token=A,t==="OCTREE"){let T=r.s2VolumeInfo,y=T.maximumHeight-T.minimumHeight,E=y/2,I=T.minimumHeight+y/2;T.minimumHeight=I-E,T.maximumHeight=I+E}return{box:Wa(h),s2VolumeInfo:h}}}function Af(r){return Z(this,null,function*(){let{subtree:e,subtreeData:t={level:0,x:0,y:0,z:0},parentData:n={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:i=0,implicitOptions:A,loaderOptions:h,s2VolumeBox:p}=r,{subdivisionScheme:B,subtreeLevels:T,maximumLevel:y,contentUrlTemplate:E,subtreesUriTemplate:I,basePath:S}=A,O={children:[],lodMetricValue:0,contentUrl:""};if(typeof y!="number"||!Number.isFinite(y))return W0.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${E} won't be loaded...`),O;
1123let N=n.localLevel+1,Q=t.level+N;if(Q>y)return O;let z=FR[B],j=Math.log2(z),re=i&1,ie=i>>1&1,ce=i>>2&1,Ae=hs(n.localX,re,1),he=hs(n.localY,ie,1),W=hs(n.localZ,ce,1),H=hs(t.x,Ae,N),U=hs(t.y,he,N),fe=hs(t.z,W,N),_e=hs(n.mortonIndex,i,j),xe=N===T&&of(e.childSubtreeAvailability,_e),Ee,De,Pe,Ne;if(xe){let Je=`${S}/${I}`,ze=qa(Je,Q,H,U,fe);Ee=yield En(ze,Xa,h),Ne=0,De={level:Q,x:H,y:U,z:fe},Pe={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0}}else Ee=e,Ne=(z**N-1)/(z-1)+_e,De=t,Pe={mortonIndex:_e,localLevel:N,localX:Ae,localY:he,localZ:W};if(!of(Ee.tileAvailability,Ne))return O;of(Ee.contentAvailability,Ne)&&(O.contentUrl=qa(E,Q,H,U,fe));for(let Je=0;Je<z;Je++){let ze=RR(p,Je,B),wt=yield Af({subtree:Ee,subtreeData:De,parentData:Pe,childIndex:Je,implicitOptions:A,loaderOptions:h,s2VolumeBox:ze});(wt.contentUrl||wt.children.length)&&O.children.push(wt)}return O.contentUrl||O.children.length?LR(O,{level:Q,x:H,y:U,z:fe},A,p):O})}function of(r,e){let t;return Array.isArray(r)?(t=r[0],r.length>1&&W0.once('Not supported extension "3DTILES_multiple_contents" has been detected')):t=r,"constant"in t?!!t.constant:t.explicitBitstream?OR(e,t.explicitBitstream):!1}function LR(r,e,t,n){let{basePath:i,refine:A,getRefine:h,lodMetricType:p,getTileType:B,rootLodMetricValue:T,rootBoundingVolume:y}=t,E=r.contentUrl&&r.contentUrl.replace(`${i}/`,""),I=T/2**e.level,S=n?.box?{box:n.box}:y,O=DR(S,e,t.subdivisionScheme);return{children:r.children,contentUrl:r.contentUrl,content:{uri:E},id:r.contentUrl,refine:h(A),type:B(r),lodMetricType:p,lodMetricValue:I,geometricError:I,transform:r.transform,boundingVolume:O}}function DR(r,e,t){if(r.region){let{level:n,x:i,y:A,z:h}=e,[p,B,T,y,E,I]=r.region,S=2**n,O=(T-p)/S,[N,Q]=[p+O*i,p+O*(i+1)],z=(y-B)/S,[j,re]=[B+z*A,B+z*(A+1)],ie,ce;if(t==="OCTREE"){let Ae=(I-E)/S;[ie,ce]=[E+Ae*h,E+Ae*(h+1)]}else[ie,ce]=[E,I];return{region:[N,j,Q,re,ie,ce]}}if(r.box)return r;throw new Error(`Unsupported bounding volume type ${JSON.stringify(r)}`)}function hs(r,e,t){return(r<<t)+e}function qa(r,e,t,n,i){let A=PR({level:e,x:t,y:n,z:i});return r.replace(/{level}|{x}|{y}|{z}/gi,h=>A[h])}function PR(r){let e={};for(let t in r)e[`{${t}}`]=r[t];return e}function OR(r,e){let t=Math.floor(r/8),n=r%8;return(e[t]>>n&1)===1}function cf(r,e=""){if(!e)return Jr.EMPTY;let n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return Jr.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return Jr.SCENEGRAPH;default:return n||Jr.EMPTY}}function lf(r){switch(r){case"REPLACE":case"replace":return er.REPLACE;case"ADD":case"add":return er.ADD;default:return r}}function af(r,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let n=new URL(r,`${e}/`);return decodeURI(n.toString())}else if(r.startsWith("/"))return r;return Es.resolve(e,r)}function pB(r,e){if(!r)return null;let t;if(r.content){let i=r.content.uri||r.content?.url;typeof i<"u"&&(t=af(i,e))}return ee(P({},r),{id:t,contentUrl:t,lodMetricType:Ln.GEOMETRIC_ERROR,lodMetricValue:r.geometricError,transformMatrix:r.transform,type:cf(r,t),refine:lf(r.refine)})}function BB(r,e,t){return Z(this,null,function*(){let n=null,i=gB(r.root);i&&r.root?n=yield mB(r.root,r,e,i,t):n=pB(r.root,e);let A=[];for(A.push(n);A.length>0;){let h=A.pop()||{},p=h.children||[],B=[];for(let T of p){let y=gB(T),E;y?E=yield mB(T,r,e,y,t):E=pB(T,e),E&&(B.push(E),A.push(E))}h.children=B}return n})}function mB(r,e,t,n,i){return Z(this,null,function*(){let{subdivisionScheme:A,maximumLevel:h,availableLevels:p,subtreeLevels:B,subtrees:{uri:T}}=n,y=qa(T,0,0,0,0),E=af(y,t),I=yield En(E,Xa,i),S=r.content?.uri,O=S?af(S,t):"",N=e?.root?.refine,Q=r.geometricError,z=r.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(z){let ce={box:Wa(z),s2VolumeInfo:z};r.boundingVolume=ce}let j=r.boundingVolume,re={contentUrlTemplate:O,subtreesUriTemplate:T,subdivisionScheme:A,subtreeLevels:B,maximumLevel:Number.isFinite(p)?p-1:h,refine:N,basePath:t,lodMetricType:Ln.GEOMETRIC_ERROR,rootLodMetricValue:Q,rootBoundingVolume:j,getTileType:cf,getRefine:lf};return yield NR(r,t,I,re,i)})}function NR(r,e,t,n,i){return Z(this,null,function*(){if(!r)return null;let{children:A,contentUrl:h}=yield Af({subtree:t,implicitOptions:n,loaderOptions:i}),p,B=null;
1123return h&&(p=h,B={uri:h.replace(`${e}/`,"")}),ee(P({},r),{id:p,contentUrl:p,lodMetricType:Ln.GEOMETRIC_ERROR,lodMetricValue:r.geometricError,transformMatrix:r.transform,type:cf(r,p),refine:lf(r.refine),content:B||r.content,children:A})})}function gB(r){return r?.extensions?.["3DTILES_implicit_tiling"]||r?.implicitTiling}var Za={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:va,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:GR,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};function GR(n){return Z(this,arguments,function*(r,e={},t){let i=e["3d-tiles"]||{},A;return i.isTileset==="auto"?A=t?.url&&t.url.indexOf(".json")!==-1:A=i.isTileset,A?UR(r,e,t):kR(r,e,t)})}function UR(r,e,t){return Z(this,null,function*(){let n=JSON.parse(new TextDecoder().decode(r)),i=t?.url||"",A=HR(i),h=yield BB(n,A,e||{});return ee(P({},n),{shape:"tileset3d",loader:Za,url:i,queryString:t?.queryString||"",basePath:A,root:h||n.root,type:Vt.TILES3D,lodMetricType:Ln.GEOMETRIC_ERROR,lodMetricValue:n.root?.geometricError||0})})}function kR(r,e,t){return Z(this,null,function*(){let n={content:{shape:"tile3d",featureIds:null}};return yield Ku(r,0,e,t,n.content),n.content})}function HR(r){return Es.dirname(r)}var CB=[0],VR={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:Za,onTilesetLoad:{type:"function",value:r=>{}},onTileLoad:{type:"function",value:r=>{}},onTileUnload:{type:"function",value:r=>{}},onTileError:{type:"function",value:(r,e,t)=>{}},_getMeshColor:{type:"function",value:r=>[255,255,255]}},JR=(()=>{class r extends wr{initializeState(){"onTileLoadFail"in this.props&&_r.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return!!(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:t}){return t.somethingChanged}updateState({props:t,oldProps:n,changeFlags:i}){if(t.data&&t.data!==n.data&&this._loadTileset(t.data),i.viewportChanged){let{activeViewports:A}=this.state;Object.keys(A).length&&(this._updateTileset(A),this.state.lastUpdatedViewports=A,this.state.activeViewports={})}if(i.propsChanged){let{layerMap:A}=this.state;for(let h in A)A[h].needsUpdate=!0}}finalizeState(t){this.state.tileset3d?.destroy(),this.state.tileset3d=null,this.state.layerMap={},this.state.activeViewports={},this.state.lastUpdatedViewports=null,super.finalizeState(t)}activateViewport(t){let{activeViewports:n,lastUpdatedViewports:i}=this.state;this.internalState.viewport=t,n[t.id]=t;let A=i?.[t.id];(!A||!t.equals(A))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:t,sourceLayer:n}){let i=n&&n.props.tile;return t.picked&&(t.object=i),t.sourceTile=i,t}filterSubLayer({layer:t,viewport:n,cullRect:i,isPicking:A}){let{tile:h}=t.props,{id:p}=n;if(!h.selected||!h.viewportIds.includes(p))return!1;if(A&&i&&h.content?.cartographicOrigin){let[B,T]=n.project(h.content.cartographicOrigin),y=i.x+i.width/2,E=i.y+i.height/2,I=Math.max(n.width,n.height)/4,S=B-y,O=T-E;if(S*S+O*O>I*I)return!1}return!0}_updateAutoHighlight(t){let n=t.sourceTile,i=this.state.layerMap[n?.id];i&&i.layer&&i.layer.updateAutoHighlight(t)}_loadTileset(t){return Z(this,null,function*(){let n=this.props.loadOptions||{},i=this.props.loaders?.length?this.props.loaders:this.props.loader,A=Array.isArray(i)?i[0]:i,I=n,{tileset:h}=I,p=bn(I,["tileset"]),B=P({loadOptions:P({},p)},h),T=t;if("preload"in A&&typeof A.preload=="function"){let S=yield A.preload(t,n);S.url&&(T=S.url),S.headers&&(B.loadOptions.core=ee(P({},B.loadOptions.core),{fetch:ee(P({},B.loadOptions.core?.fetch),{headers:S.headers})})),Object.assign(B,S)}let y=yield nd(T,A,B.loadOptions),E=new po(y,P({onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,onUpdate:()=>this.setNeedsUpdate()},B));this.setState({tileset3d:E,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(E)})}_onTileLoad(t){let{lastUpdatedViewports:n}=this.state;t.tileDrawn=!1,this.props.onTileLoad(t),this._updateTileset(n),this.setNeedsUpdate()}_onTileUnload(t){delete this.state.layerMap[t.id],this.props.onTileUnload(t)}_updateTileset(t){if(!t)return;let{tileset3d:n}=this.state,{timeline:i}=this.context,A=Object.keys(t).length;!i||!A||!n||n.selectTiles(Object.values(t)).then(h=>{this.state.frameNumber!==h&&this.setState({frameNumber:h})})}_getSubLayer(t,n){if(!t.content)return null;switch(t.type){case Jr.POINTCLOUD:return this._makePointCloudLayer(t,n);case Jr.SCENEGRAPH:return this._make3DModelLayer(t);case Jr.MESH:return this._makeSimpleMeshLayer(t,n);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${t.content.type}`)}}_makePointCloudLayer(t,n){let{attributes:i,pointCount:A,constantRGBA:h,cartographicOrigin:p,modelMatrix:B}=t.content,{positions:T,normals:y,colors:E}=i;
vendor: 15,201 bytes, line 1123
1123if(!T)return null;let I=n&&n.props.data||{header:{vertexCount:A},attributes:{POSITION:T,NORMAL:y,COLOR_0:E}},{pointSize:S,getPointColor:O}=this.props,N=this.getSubLayerClass("pointcloud",id);return new N({pointSize:S},this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${t.id}`,tile:t,data:I,coordinateSystem:xr.METER_OFFSETS,coordinateOrigin:p,modelMatrix:B,getColor:h||O,_offset:0})}_make3DModelLayer(t){let{gltf:n,instances:i,cartographicOrigin:A,modelMatrix:h}=t.content,p=this.getSubLayerClass("scenegraph",su);return new p({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${t.id}`,tile:t,data:i||CB,scenegraph:n,coordinateSystem:xr.METER_OFFSETS,coordinateOrigin:A,modelMatrix:h,getTransformMatrix:B=>B.modelMatrix,getPosition:[0,0,0],_offset:0,onFirstDraw:()=>{t.tileDrawn=!0}})}_makeSimpleMeshLayer(t,n){let i=t.content,{attributes:A,indices:h,modelMatrix:p,cartographicOrigin:B,coordinateSystem:T=xr.METER_OFFSETS,material:y,featureIds:E}=i,{_getMeshColor:I}=this.props,S=n&&n.props.mesh||new _n({topology:"triangle-list",attributes:QR(A),indices:h}),O=this.getSubLayerClass("mesh",S2);return new O(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${t.id}`,tile:t,mesh:S,data:CB,getColor:I(t),pbrMaterial:y,modelMatrix:p,coordinateOrigin:B,coordinateSystem:T,featureIds:E,_offset:0})}renderLayers(){let{tileset3d:t,layerMap:n}=this.state;return t?t.tiles.map(i=>{let A=n[i.id]=n[i.id]||{tile:i},{layer:h}=A;return i.selected&&(h?A.needsUpdate&&(h=this._getSubLayer(i,h),A.needsUpdate=!1):h=this._getSubLayer(i)),A.layer=h,h}).filter(Boolean):null}}return r.defaultProps=VR,r.layerName="Tile3DLayer",r})(),jR=JR;function QR(r){let e={};return e.positions=ee(P({},r.positions),{value:new Float32Array(r.positions.value)}),r.normals&&(e.normals=r.normals),r.texCoords&&(e.texCoords=r.texCoords),r.colors&&(e.colors=r.colors),r.uvRegions&&(e.uvRegions=r.uvRegions),e}var KR=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 uf(r){return r>>1^-(r&1)}function zR(r){let e=0,t={};for(let[n,i]of KR){let A=i===8?r.getFloat64:r.getFloat32;t[n]=A.call(r,e,!0),e+=i}return{header:t,headerEndPosition:e}}function XR(r,e){let t=e,n=3,i=r.getUint32(t,!0),A=new Uint16Array(i*n);t+=Uint32Array.BYTES_PER_ELEMENT;let h=Uint16Array.BYTES_PER_ELEMENT,p=i*h,B=t,T=B+p,y=T+p,E=0,I=0,S=0;for(let O=0;O<i;O++)E+=uf(r.getUint16(B+h*O,!0)),I+=uf(r.getUint16(T+h*O,!0)),S+=uf(r.getUint16(y+h*O,!0)),A[O]=E,A[O+i]=I,A[O+i*2]=S;return t+=p*3,{vertexData:A,vertexDataEndPosition:t}}function bo(r,e,t,n,i=!0){let A;if(n===2?A=new Uint16Array(r,e,t):A=new Uint32Array(r,e,t),!i)return A;let h=0;for(let p=0;p<A.length;++p){let B=A[p];A[p]=h-B,B===0&&++h}return A}function YR(r,e,t){let n=t,h=e.length/3>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;n%h!==0&&(n+=h-n%h);let p=r.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let B=p*3,T=bo(r.buffer,n,B,h);return n+=B*h,{triangleIndicesEndPosition:n,triangleIndices:T}}function WR(r,e,t){let n=t,h=e.length/3>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,p=r.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let B=bo(r.buffer,n,p,h,!1);n+=p*h;let T=r.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let y=bo(r.buffer,n,T,h,!1);n+=T*h;let E=r.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let I=bo(r.buffer,n,E,h,!1);n+=E*h;let S=r.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let O=bo(r.buffer,n,S,h,!1);return n+=S*h,{edgeIndicesEndPosition:n,westIndices:B,southIndices:y,eastIndices:I,northIndices:O}}function qR(r){return new Uint8Array(r.buffer,r.byteOffset,r.byteLength)}function ZR(r){return r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength)}function $R(r,e){let t={};if(r.byteLength<=e)return{extensions:t,extensionsEndPosition:e};let n=e;for(;n<r.byteLength;){let i=r.getUint8(n,!0);n+=Uint8Array.BYTES_PER_ELEMENT;let A=r.getUint32(n,!0);n+=Uint32Array.BYTES_PER_ELEMENT;let h=new DataView(r.buffer,n,A);switch(i){case 1:{t.vertexNormals=qR(h);break}case 2:{t.waterMask=ZR(h);break}default:}n+=A}return{extensions:t,extensionsEndPosition:n}}var ds={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4},eL={maxDecodingStep:ds.extensions};function ff(r,e){let t=Object.assign({},eL,e),n=new DataView(r),{header:i,headerEndPosition:A}=zR(n);if(t.maxDecodingStep<ds.vertices)return{header:i};let{vertexData:h,vertexDataEndPosition:p}=XR(n,A);if(t.maxDecodingStep<ds.triangleIndices)return{header:i,vertexData:h};let{triangleIndices:B,triangleIndicesEndPosition:T}=YR(n,h,p);if(t.maxDecodingStep<ds.edgeIndices)return{header:i,vertexData:h,triangleIndices:B};let{westIndices:y,southIndices:E,eastIndices:I,northIndices:S,edgeIndicesEndPosition:O}=WR(n,h,T);if(t.maxDecodingStep<ds.extensions)return{header:i,vertexData:h,triangleIndices:B,westIndices:y,northIndices:S,eastIndices:I,southIndices:E};let{extensions:N}=$R(n,O);return{header:i,vertexData:h,triangleIndices:B,westIndices:y,northIndices:S,eastIndices:I,southIndices:E,extensions:N}}function $a(r,e,t,n){let i=n?rL(n,r.POSITION.value):tL(e),A=new r.POSITION.value.constructor(i.length*6),h=new r.TEXCOORD_0.value.constructor(i.length*4),p=new e.constructor(i.length*6);for(let T=0;T<i.length;T++){let y=i[T];nL({edge:y,edgeIndex:T,attributes:r,skirtHeight:t,newPosition:A,newTexcoord0:h,newTriangles:p})}r.POSITION.value=Ho(r.POSITION.value,A),r.TEXCOORD_0.value=Ho(r.TEXCOORD_0.value,h);let B=e instanceof Array?e.concat(p):Ho(e,p);return{attributes:r,triangles:B}}function tL(r){let e=[];for(let i=0;i<r.length;i+=3)e.push([r[i],r[i+1]]),e.push([r[i+1],r[i+2]]),e.push([r[i+2],r[i]]);e.sort((i,A)=>Math.min(...i)-Math.min(...A)||Math.max(...i)-Math.max(...A));let t=[],n=0;for(;n<e.length;)e[n][0]===e[n+1]?.[1]&&e[n][1]===e[n+1]?.[0]?n+=2:(t.push(e[n]),n++);return t}function rL(r,e){r.westIndices.sort((n,i)=>e[3*n+1]-e[3*i+1]),r.eastIndices.sort((n,i)=>e[3*i+1]-e[3*n+1]),r.southIndices.sort((n,i)=>e[3*i]-e[3*n]),r.northIndices.sort((n,i)=>e[3*n]-e[3*i]);let t=[];for(let n in r){let i=r[n];for(let A=0;A<i.length-1;A++)t.push([i[A],i[A+1]])}return t}function nL({edge:r,edgeIndex:e,attributes:t,skirtHeight:n,newPosition:i,newTexcoord0:A,newTriangles:h}){let p=t.POSITION.value.length,B=e*2,T=e*2+1;i.set(t.POSITION.value.subarray(r[0]*3,r[0]*3+3),B*3),i[B*3+2]=i[B*3+2]-n,i.set(t.POSITION.value.subarray(r[1]*3,r[1]*3+3),T*3),i[T*3+2]=i[T*3+2]-n,A.set(t.TEXCOORD_0.value.subarray(r[0]*2,r[0]*2+2),B*2),A.set(t.TEXCOORD_0.value.subarray(r[1]*2,r[1]*2+2),T*2);let y=e*2*3;h[y]=r[0],h[y+1]=p/3+T,h[y+2]=r[1],h[y+3]=p/3+T,h[y+4]=r[0],h[y+5]=p/3+B}function hf(r,e={}){let{bounds:t}=e,{header:n,vertexData:i,triangleIndices:A,westIndices:h,northIndices:p,eastIndices:B,southIndices:T}=ff(r,ds.triangleIndices),y=A,E=sL(i,n,t),I=zn(E);if(e?.skirtHeight){let{attributes:S,triangles:O}=$a(E,y,e.skirtHeight,{westIndices:h,northIndices:p,eastIndices:B,southIndices:T});E=S,y=O}return{loaderData:{header:{}},header:{vertexCount:y.length,boundingBox:I},schema:void 0,topology:"triangle-list",mode:4,indices:{value:y,size:1},attributes:E}}function sL(r,e,t){let{minHeight:n,maxHeight:i}=e,[A,h,p,B]=t||[0,0,1,1],T=p-A,y=B-h,E=i-n,I=r.length/3,S=new Float32Array(I*3),O=new Float32Array(I*2);for(let N=0;N<I;N++){let Q=r[N]/32767,z=r[N+I]/32767,j=r[N+I*2]/32767;S[3*N+0]=Q*T+A,S[3*N+1]=z*y+h,S[3*N+2]=j*E+n,O[2*N+0]=Q,O[2*N+1]=z}return{POSITION:{value:S,size:3},TEXCOORD_0:{value:O,size:2}}}var e0=class{constructor(e=257){this.gridSize=e;let t=e-1;if(t&t-1)throw new Error(`Expected grid size to be 2^n+1, got ${e}.`);this.numTriangles=t*t*2-2,this.numParentTriangles=this.numTriangles-t*t,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(this.numTriangles*4);for(let n=0;n<this.numTriangles;n++){let i=n+2,A=0,h=0,p=0,B=0,T=0,y=0;for(i&1?p=B=T=t:A=h=y=t;(i>>=1)>1;){let I=A+p>>1,S=h+B>>1;i&1?(p=A,B=h,A=T,h=y):(A=p,h=B,p=T,B=y),T=I,y=S}let E=n*4;this.coords[E+0]=A,this.coords[E+1]=h,this.coords[E+2]=p,this.coords[E+3]=B}}createTile(e){return new df(e,this)}};var df=class{constructor(e,t){let n=t.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=t,this.errors=new Float32Array(e.length),this.update()}update(){let{numTriangles:e,numParentTriangles:t,coords:n,gridSize:i}=this.martini,{terrain:A,errors:h}=this;for(let p=e-1;p>=0;p--){let B=p*4,T=n[B+0],y=n[B+1],E=n[B+2],I=n[B+3],S=T+E>>1,O=y+I>>1,N=S+O-y,Q=O+T-S,z=(A[y*i+T]+A[I*i+E])/2,j=O*i+S,re=Math.abs(z-A[j]);if(h[j]=Math.max(h[j],re),p<t){let ie=(y+Q>>1)*i+(T+N>>1),ce=(I+Q>>1)*i+(E+N>>1);h[j]=Math.max(h[j],h[ie],h[ce])}}}getMesh(e=0){let{gridSize:t,indices:n}=this.martini,{errors:i}=this,A=0,h=0,p=t-1;n.fill(0);function B(S,O,N,Q,z,j){let re=S+N>>1,ie=O+Q>>1;Math.abs(S-z)+Math.abs(O-j)>1&&i[ie*t+re]>e?(B(z,j,S,O,re,ie),B(N,Q,z,j,re,ie)):(n[O*t+S]=n[O*t+S]||++A,n[Q*t+N]=n[Q*t+N]||++A,n[j*t+z]=n[j*t+z]||++A,h++)}B(0,0,p,p,p,0),B(p,p,0,0,0,p);let T=new Uint16Array(A*2),y=new Uint32Array(h*3),E=0;function I(S,O,N,Q,z,j){let re=S+N>>1,ie=O+Q>>1;if(Math.abs(S-z)+Math.abs(O-j)>1&&i[ie*t+re]>e)I(z,j,S,O,re,ie),I(N,Q,z,j,re,ie);else{let ce=n[O*t+S]-1,Ae=n[Q*t+N]-1,he=n[j*t+z]-1;T[2*ce]=S,T[2*ce+1]=O,T[2*Ae]=N,T[2*Ae+1]=Q,T[2*he]=z,T[2*he+1]=j,y[E++]=ce,y[E++]=Ae,y[E++]=he}}return I(0,0,p,p,p,0),I(p,p,0,0,0,p),{vertices:T,triangles:y}}};var t0=class{constructor(e,t,n=t){this.data=e,this.width=t,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 i=t-1,A=n-1,h=this._addPoint(0,0),p=this._addPoint(i,0),B=this._addPoint(0,A),T=this._addPoint(i,A),y=this._addTriangle(T,h,B,-1,-1,-1);this._addTriangle(h,T,p,y,-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,t){return this.data[this.width*t+e]}_flush(){let e=this.coords;for(let t=0;t<this._pendingLen;t++){let n=this._pending[t],i=2*this.triangles[n*3+0],A=2*this.triangles[n*3+1],h=2*this.triangles[n*3+2];this._findCandidate(e[i],e[i+1],e[A],e[A+1],e[h],e[h+1],n)}this._pendingLen=0}_findCandidate(e,t,n,i,A,h,p){let B=Math.min(e,n,A),T=Math.min(t,i,h),y=Math.max(e,n,A),E=Math.max(t,i,h),I=ps(n,i,A,h,B,T),S=ps(A,h,e,t,B,T),O=ps(e,t,n,i,B,T),N=i-t,Q=e-n,z=h-i,j=n-A,re=t-h,ie=A-e,ce=ps(e,t,n,i,A,h),Ae=this.heightAt(e,t)/ce,he=this.heightAt(n,i)/ce,W=this.heightAt(A,h)/ce,H=0,U=0,fe=0,_e=0;for(let xe=T;xe<=E;xe++){let Ee=0;I<0&&z!==0&&(Ee=Math.max(Ee,Math.floor(-I/z))),S<0&&re!==0&&(Ee=Math.max(Ee,Math.floor(-S/re))),O<0&&N!==0&&(Ee=Math.max(Ee,Math.floor(-O/N)));let De=I+z*Ee,Pe=S+re*Ee,Ne=O+N*Ee,Ve=!1;for(let Ke=B+Ee;Ke<=y;Ke++){if(De>=0&&Pe>=0&&Ne>=0){Ve=!0;let Je=Ae*De+he*Pe+W*Ne,ze=Math.abs(Je-this.heightAt(Ke,xe));_e+=ze*ze,ze>H&&(H=ze,U=Ke,fe=xe)}else if(Ve)break;De+=z,Pe+=re,Ne+=N}I+=j,S+=ie,O+=Q}(U===e&&fe===t||U===n&&fe===i||U===A&&fe===h)&&(H=0),this._candidates[2*p]=U,this._candidates[2*p+1]=fe,this._rms[p]=_e,this._queuePush(p,H,_e)}_step(){let e=this._queuePop(),t=e*3+0,n=e*3+1,i=e*3+2,A=this.triangles[t],h=this.triangles[n],p=this.triangles[i],B=this.coords[2*A],T=this.coords[2*A+1],y=this.coords[2*h],E=this.coords[2*h+1],I=this.coords[2*p],S=this.coords[2*p+1],O=this._candidates[2*e],N=this._candidates[2*e+1],Q=this._addPoint(O,N);if(ps(B,T,y,E,O,N)===0)this._handleCollinear(Q,t);else if(ps(y,E,I,S,O,N)===0)this._handleCollinear(Q,n);else if(ps(I,S,B,T,O,N)===0)this._handleCollinear(Q,i);else{let z=this._halfedges[t],j=this._halfedges[n],re=this._halfedges[i],ie=this._addTriangle(A,h,Q,z,-1,-1,t),ce=this._addTriangle(h,p,Q,j,-1,ie+1),Ae=this._addTriangle(p,A,Q,re,ie+2,ce+1);this._legalize(ie),this._legalize(ce),this._legalize(Ae)}}_addPoint(e,t){let n=this.coords.length>>1;return this.coords.push(e,t),n}_addTriangle(e,t,n,i,A,h,p=this.triangles.length){let B=p/3;return this.triangles[p+0]=e,this.triangles[p+1]=t,this.triangles[p+2]=n,this._halfedges[p+0]=i,this._halfedges[p+1]=A,this._halfedges[p+2]=h,i>=0&&(this._halfedges[i]=p+0),A>=0&&(this._halfedges[A]=p+1),h>=0&&(this._halfedges[h]=p+2),this._candidates[2*B+0]=0,this._candidates[2*B+1]=0,this._queueIndices[B]=-1,this._rms[B]=0,this._pending[this._pendingLen++]=B,p}_legalize(e){let t=this._halfedges[e];if(t<0)return;let n=e-e%3,i=t-t%3,A=n+(e+1)%3,h=n+(e+2)%3,p=i+(t+2)%3,B=i+(t+1)%3,T=this.triangles[h],y=this.triangles[e],E=this.triangles[A],I=this.triangles[p],S=this.coords;if(!iL(S[2*T],S[2*T+1],S[2*y],S[2*y+1],S[2*E],S[2*E+1],S[2*I],S[2*I+1]))return;let O=this._halfedges[A],N=this._halfedges[h],Q=this._halfedges[p],z=this._halfedges[B];this._queueRemove(n/3),this._queueRemove(i/3);let j=this._addTriangle(T,I,E,-1,Q,O,n),re=this._addTriangle(I,T,y,j,N,z,i);this._legalize(j+1),this._legalize(re+2)}_handleCollinear(e,t){let n=t-t%3,i=n+(t+1)%3,A=n+(t+2)%3,h=this.triangles[A],p=this.triangles[t],B=this.triangles[i],T=this._halfedges[i],y=this._halfedges[A],E=this._halfedges[t];if(E<0){let Ae=this._addTriangle(e,h,p,-1,y,-1,n),he=this._addTriangle(h,e,B,Ae,-1,T);this._legalize(Ae+1),this._legalize(he+2);return}let I=E-E%3,S=I+(E+2)%3,O=I+(E+1)%3,N=this.triangles[S],Q=this._halfedges[S],z=this._halfedges[O];this._queueRemove(I/3);let j=this._addTriangle(h,p,e,y,-1,-1,n),re=this._addTriangle(p,N,e,z,-1,j+1,I),ie=this._addTriangle(N,B,e,Q,-1,re+1),ce=this._addTriangle(B,h,e,T,j+2,ie+1);this._legalize(j),this._legalize(re),this._legalize(ie),this._legalize(ce)}_queuePush(e,t,n){let i=this._queue.length;this._queueIndices[e]=i,this._queue.push(e),this._errors.push(t),this._rmsSum+=n,this._queueUp(i)}_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 t=this._queueIndices[e];if(t<0){let i=this._pending.indexOf(e);if(i!==-1)this._pending[i]=this._pending[--this._pendingLen];else throw new Error("Broken triangulation (something went wrong).");return}let n=this._queue.length-1;n!==t&&(this._queueSwap(t,n),this._queueDown(t,n)||this._queueUp(t)),this._queuePopBack()}_queueLess(e,t){return this._errors[e]>this._errors[t]}_queueSwap(e,t){let n=this._queue[e],i=this._queue[t];this._queue[e]=i,this._queue[t]=n,this._queueIndices[n]=t,this._queueIndices[i]=e;let A=this._errors[e];this._errors[e]=this._errors[t],this._errors[t]=A}_queueUp(e){let t=e;for(;;){let n=t-1>>1;
1123if(n===t||!this._queueLess(t,n))break;this._queueSwap(n,t),t=n}}_queueDown(e,t){let n=e;for(;;){let i=2*n+1;if(i>=t||i<0)break;let A=i+1,h=i;if(A<t&&this._queueLess(A,i)&&(h=A),!this._queueLess(h,n))break;this._queueSwap(n,h),n=h}return n>e}};function ps(r,e,t,n,i,A){return(t-i)*(e-A)-(n-A)*(r-i)}function iL(r,e,t,n,i,A,h,p){let B=r-h,T=e-p,y=t-h,E=n-p,I=i-h,S=A-p,O=B*B+T*T,N=y*y+E*E,Q=I*I+S*S;return B*(E*Q-N*S)-T*(y*Q-N*I)+O*(y*S-E*I)<0}function bB(r,e){let{meshMaxError:t,bounds:n,elevationDecoder:i}=e,{data:A,width:h,height:p}=r,B,T;switch(e.tesselator){case"martini":B=r0(A,h,p,i,e.tesselator),T=TB(t,h,B);break;case"delatin":B=r0(A,h,p,i,e.tesselator),T=yB(t,h,p,B);break;default:h===p&&!(p&h-1)?(B=r0(A,h,p,i,"martini"),T=TB(t,h,B)):(B=r0(A,h,p,i,"delatin"),T=yB(t,h,p,B));break}let{vertices:y}=T,{triangles:E}=T,I=oL(y,B,h,p,n),S=zn(I);if(e.skirtHeight){let{attributes:O,triangles:N}=$a(I,E,e.skirtHeight);I=O,E=N}return{loaderData:{header:{}},header:{vertexCount:E.length,boundingBox:S},mode:4,indices:{value:Uint32Array.from(E),size:1},attributes:I}}function TB(r,e,t){let n=e+1,A=new e0(n).createTile(t),{vertices:h,triangles:p}=A.getMesh(r);return{vertices:h,triangles:p}}function yB(r,e,t,n){let i=new t0(n,e+1,t+1);i.run(r);let{coords:A,triangles:h}=i;return{vertices:A,triangles:h}}function r0(r,e,t,n,i){let{rScaler:A,bScaler:h,gScaler:p,offset:B}=n,T=new Float32Array((e+1)*(t+1));for(let y=0,E=0;E<t;E++)for(let I=0;I<e;I++,y++){let S=y*4,O=r[S+0],N=r[S+1],Q=r[S+2];T[y+E]=O*A+N*p+Q*h+B}if(i==="martini"){for(let y=(e+1)*e,E=0;E<e;E++,y++)T[y]=T[y-e-1];for(let y=t,E=0;E<t+1;E++,y+=t+1)T[y]=T[y-1]}return T}function oL(r,e,t,n,i){let A=t+1,h=r.length/2,p=new Float32Array(h*3),B=new Float32Array(h*2),[T,y,E,I]=i||[0,0,t,n],S=(E-T)/t,O=(I-y)/n;for(let N=0;N<h;N++){let Q=r[N*2],z=r[N*2+1],j=z*A+Q;p[3*N+0]=Q*S+T,p[3*N+1]=-z*O+I,p[3*N+2]=e[j],B[2*N+0]=Q/t,B[2*N+1]=z/n}return{POSITION:{value:p,size:3},TEXCOORD_0:{value:B,size:2}}}var n0="4.4.4";var s0={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:n0,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 EB={dataType:null,batchType:null,name:"Quantized Mesh",id:"quantized-mesh",module:"terrain",version:n0,worker:!0,extensions:["terrain"],mimeTypes:["application/vnd.quantized-mesh"],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var AL=ee(P({},s0),{parse:aL});function aL(r,e,t){return Z(this,null,function*(){let n=ee(P({},e),{core:ee(P({},e?.core),{mimeType:"application/x.image"}),image:ee(P({},e?.image),{type:"data"})}),i=yield Jt(r,[],n,t),A=P(P({},AL.options.terrain),e?.terrain);return bB(i,A)})}var UY=ee(P({},EB),{parseSync:(r,e)=>hf(r,e?.["quantized-mesh"]),parse:(r,e)=>Z(null,null,function*(){return hf(r,e?.["quantized-mesh"])})});var _B=[1],xB=1,IB=1,i0=90,o0=180,cL=ee(P({},Qs.defaultProps),{elevationData:Sn,texture:ee(P({},Sn),{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:[s0]});function wB(r){return Array.isArray(r)?r.join(";"):r||""}function lL(r,e,t){let n=(r[2]-r[0])/e*xB,i=(r[3]-r[1])/e*xB,A=[r[0]-n,r[1]-i,r[2]+n,r[3]+i];return t?[Math.max(A[0],-o0),Math.max(A[1],-i0),Math.min(A[2],o0),Math.min(A[3],i0)]:A}function uL(r){return!Number.isFinite(r)||r<=0?IB:Math.max(r,IB)}var fL=(()=>{class r extends wr{updateState({props:t,oldProps:n}){let i=t.elevationData!==n.elevationData;if(i){let{elevationData:h}=t,p=h&&(Array.isArray(h)||dL(h));this.setState({isTiled:p})}let A=i||t.meshMaxError!==n.meshMaxError||t.elevationDecoder!==n.elevationDecoder||t.bounds!==n.bounds;if(!this.state.isTiled&&A){let h=this.loadTerrain(t);this.setState({terrain:h})}t.workerUrl&&_r.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:t,bounds:n,elevationDecoder:i,meshMaxError:A,signal:h}){if(!t)return null;let p=uL(A),B=this.getLoadOptions();B=ee(P({},B),{terrain:ee(P({skirtHeight:this.state.isTiled?p*2:0},B?.terrain),{bounds:n,meshMaxError:p,elevationDecoder:i})});let{fetch:T}=this.props;return T(t,{propName:"elevationData",layer:this,loadOptions:B,signal:h})}getTiledTerrainData(t){let{elevationData:n,fetch:i,texture:A,elevationDecoder:h,meshMaxError:p}=this.props,{viewport:B}=this.context,T=un(n,t),y=A&&un(A,t),{signal:E}=t,I=[0,0],S=[0,0];if(B.isGeospatial){let j=t.bbox;I=B.projectFlat([j.west,j.south]),S=B.projectFlat([j.east,j.north])}else{let j=t.bbox;I=[j.left,j.bottom],S=[j.right,j.top]}let O=[I[0],I[1],S[0],S[1]],N=lL(O,this.props.tileSize,B instanceof Gi),Q=this.loadTerrain({elevationData:T,bounds:N,elevationDecoder:h,meshMaxError:p,signal:E}
vendor: 25,307 bytes, lines 1123-1147
1123),z=y?i(y,{propName:"texture",layer:this,loaders:[],signal:E}).catch(j=>null):Promise.resolve(null);return Promise.all([Q,z])}renderSubLayers(t){let n=this.getSubLayerClass("mesh",Ks),{color:i,wireframe:A,material:h}=this.props,{data:p}=t;if(!p)return null;let[B,T]=p,{viewport:y}=this.context,E=y instanceof Gi,I=B?.header?.boundingBox,S=I&&I.every(([N,Q])=>N>=-o0&&N<=o0&&Q>=-i0&&Q<=i0),O=E&&S?xr.LNGLAT:xr.CARTESIAN;return new n(t,{data:_B,mesh:B,texture:T,_instanced:!1,coordinateSystem:O,getPosition:N=>[0,0,0],getColor:i,wireframe:A,material:h})}onViewportLoad(t){if(!t)return;let{zRange:n}=this.state,i=t.map(p=>p.content).filter(Boolean).map(p=>p[0].header.boundingBox.map(T=>T[2]));if(i.length===0)return;let A=Math.min(...i.map(p=>p[0])),h=Math.max(...i.map(p=>p[1]));(!n||A<n[0]||h>n[1])&&this.setState({zRange:[A,h]})}renderLayers(){let{color:t,material:n,elevationData:i,texture:A,wireframe:h,meshMaxError:p,elevationDecoder:B,tileSize:T,maxZoom:y,minZoom:E,extent:I,maxRequests:S,onTileLoad:O,onTileUnload:N,onTileError:Q,maxCacheSize:z,maxCacheByteSize:j,refinementStrategy:re,zoomOffset:ie}=this.props;if(this.state.isTiled)return new Qs(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:wB(i),texture:wB(A),meshMaxError:p,elevationDecoder:B,projectionMode:this.context.viewport.projectionMode,zoomOffset:ie}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:T,maxZoom:y,minZoom:E,extent:I,maxRequests:S,onTileLoad:O,onTileUnload:N,onTileError:Q,maxCacheSize:z,maxCacheByteSize:j,refinementStrategy:re,zoomOffset:ie});if(!i)return null;let ce=this.getSubLayerClass("mesh",Ks);return new ce(this.getSubLayerProps({id:"mesh"}),{data:_B,mesh:this.state.terrain,texture:A,_instanced:!1,getPosition:Ae=>[0,0,0],getColor:t,material:n,wireframe:h})}}return r.defaultProps=cL,r.layerName="TerrainLayer",r})(),hL=fL,dL=r=>r.includes("{x}")&&(r.includes("{y}")||r.includes("{-y}"));var pL={clipBounds:[0,0,1,1],clipByInstance:void 0},MB=` 1124layout(std140) uniform clipUniforms { 1125 vec4 bounds; 1126} clip; 1127 1128bool clip_isInBounds(vec2 position) { 1129 return position.x >= clip.bounds[0] && position.y >= clip.bounds[1] && position.x < clip.bounds[2] && position.y < clip.bounds[3]; 1130} 1131`,mL={name:"clip",vs:MB,uniformTypes:{bounds:"vec4<f32>"}},gL={"vs:#decl":` 1132out float clip_isVisible; 1133`,"vs:DECKGL_FILTER_GL_POSITION":` 1134 clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy)); 1135`,"fs:#decl":` 1136in float clip_isVisible; 1137`,"fs:DECKGL_FILTER_COLOR":` 1138 if (clip_isVisible < 0.5) discard; 1139`},BL={name:"clip",fs:MB,uniformTypes:{bounds:"vec4<f32>"}},CL={"vs:#decl":` 1140out vec2 clip_commonPosition; 1141`,"vs:DECKGL_FILTER_GL_POSITION":` 1142 clip_commonPosition = geometry.position.xy; 1143`,"fs:#decl":` 1144in vec2 clip_commonPosition; 1145`,"fs:DECKGL_FILTER_COLOR":` 1146 if (!clip_isInBounds(clip_commonPosition)) discard; 1147`},TL=(()=>{class r extends ed{getShaders(){let t="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(t=!!this.props.clipByInstance),this.state.clipByInstance=t,this.context.device.type==="webgpu"?{}:t?{modules:[mL],inject:gL}:{modules:[BL],inject:CL}}draw(){let{clipBounds:t}=this.props,n={};if(this.state.clipByInstance)n.bounds=t;else{let i=this.projectPosition([t[0],t[1],0]),A=this.projectPosition([t[2],t[3],0]);n.bounds=[Math.min(i[0],A[0]),Math.min(i[1],A[1]),Math.max(i[0],A[0]),Math.max(i[1],A[1])]}this.context.device.type==="webgpu"&&(n.enabled=!0,n.mode=this.state.clipByInstance?"instance":"geometry"),this.setShaderModuleProps({clip:n})}}return r.defaultProps=pL,r.extensionName="ClipExtension",r})(),pf=TL;function SB(r,e,t){switch(r.type){case"Point":return bL(r,e,t);case"LineString":return yL(r,e,t);case"Polygon":return vB(r,e,t);default:let n=r;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function vB(r,e=-1/0,t=1/0){let{positions:n}=r,i=r.polygonIndices.value.filter(B=>B>=e&&B<=t),A=r.primitivePolygonIndices.value.filter(B=>B>=e&&B<=t);if(!(i.length>2)){let B=[];for(let T=0;T<A.length-1;T++){let y=A[T],E=A[T+1],I=A0(n,y,E);B.push(I)}return{type:"Polygon",coordinates:B}}let p=[];for(let B=0;B<i.length-1;B++){let T=i[B],y=i[B+1],E=vB(r,T,y).coordinates;p.push(E)}return{type:"MultiPolygon",coordinates:p}}function yL(r,e=-1/0,t=1/0){let{positions:n}=r,i=r.pathIndices.value.filter(p=>p>=e&&p<=t);if(!(i.length>2))return{type:"LineString",coordinates:A0(n,i[0],i[1])};let h=[];for(let p=0;p<i.length-1;p++){let B=A0(n,i[p],i[p+1]);h.push(B)}return{type:"MultiLineString",coordinates:h}}function bL(r,e,t){let{positions:n}=r,i=A0(n,e,t);return i.length>1?{type:"MultiPoint",coordinates:i}:{type:"Point",coordinates:i[0]}}function A0(r,e,t){e=e||0,t=t||r.value.length/r.size;let n=[];for(let i=e;i<t;i++){let A=Array();for(let h=i*r.size;h<(i+1)*r.size;h++)A.push(Number(r.value[h]));n.push(A)}return n}function a0(r,e,t){let n=EL(r),i=Object.keys(n).filter(A=>n[A]!==Array);return _L(r,P({propArrayTypes:n},e),{numericPropKeys:t&&t.numericPropKeys||i,PositionDataType:t?t.PositionDataType:Float32Array,triangulate:t?t.triangulate:!0})}function EL(r){let e={};for(let t of r)if(t.properties)for(let n in t.properties){let i=t.properties[n];e[n]=vL(i,e[n])}return e}function _L(r,e,t){let{pointPositionsCount:n,pointFeaturesCount:i,linePositionsCount:A,linePathsCount:h,lineFeaturesCount:p,polygonPositionsCount:B,polygonObjectsCount:T,polygonRingsCount:y,polygonFeaturesCount:E,propArrayTypes:I,coordLength:S}=e,{numericPropKeys:O=[],PositionDataType:N=Float32Array,triangulate:Q=!0}=t,z=r[0]&&"id"in r[0],j=r.length>65535?Uint32Array:Uint16Array,re={type:"Point",positions:new N(n*S),globalFeatureIds:new j(n),featureIds:i>65535?new Uint32Array(n):new Uint16Array(n),numericProps:{},properties:[],fields:[]},ie={type:"LineString",pathIndices:A>65535?new Uint32Array(h+1):new Uint16Array(h+1),positions:new N(A*S),globalFeatureIds:new j(A),featureIds:p>65535?new Uint32Array(A):new Uint16Array(A),numericProps:{},properties:[],fields:[]},ce={type:"Polygon",polygonIndices:B>65535?new Uint32Array(T+1):new Uint16Array(T+1),primitivePolygonIndices:B>65535?new Uint32Array(y+1):new Uint16Array(y+1),positions:new N(B*S),globalFeatureIds:new j(B),featureIds:E>65535?new Uint32Array(B):new Uint16Array(B),numericProps:{},properties:[],fields:[]};Q&&(ce.triangles=[]);for(let he of[re,ie,ce])for(let W of O){let H=I[W];he.numericProps[W]=new H(he.positions.length/S)}ie.pathIndices[h]=A,ce.polygonIndices[T]=B,ce.primitivePolygonIndices[y]=B;let Ae={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let he of r){let W=he.geometry,H=he.properties||{};switch(W.type){case"Point":xL(W,re,Ae,S,H),re.properties.push(gf(H,O)),z&&re.fields.push({id:he.id}),Ae.pointFeature++;break;case"LineString":IL(W,ie,Ae,S,H),ie.properties.push(gf(H,O)),z&&ie.fields.push({id:he.id}),Ae.lineFeature++;break;case"Polygon":wL(W,ce,Ae,S,H),ce.properties.push(gf(H,O)),z&&ce.fields.push({id:he.id}),Ae.polygonFeature++;break;default:throw new Error("Invalid geometry type")}Ae.feature++}return SL(re,ie,ce,S)}function xL(r,e,t,n,i){e.positions.set(r.data,t.pointPosition*n);let A=r.data.length/n;Bf(e,i,t.pointPosition,A),e.globalFeatureIds.fill(t.feature,t.pointPosition,t.pointPosition+A),e.featureIds.fill(t.pointFeature,t.pointPosition,t.pointPosition+A),t.pointPosition+=A}function IL(r,e,t,n,i){e.positions.set(r.data,t.linePosition*n);let A=r.data.length/n;Bf(e,i,t.linePosition,A),e.globalFeatureIds.fill(t.feature,t.linePosition,t.linePosition+A),e.featureIds.fill(t.lineFeature,t.linePosition,t.linePosition+A);for(let h=0,p=r.indices.length;h<p;++h){let B=r.indices[h],T=h===p-1?r.data.length:r.indices[h+1];e.pathIndices[t.linePath++]=t.linePosition,t.linePosition+=(T-B)/n}}function wL(r,e,t,n,i){e.positions.set(r.data,t.polygonPosition*n);let A=r.data.length/n;Bf(e,i,t.polygonPosition,A),e.globalFeatureIds.fill(t.feature,t.polygonPosition,t.polygonPosition+A),e.featureIds.fill(t.polygonFeature,t.polygonPosition,t.polygonPosition+A);for(let h=0,p=r.indices.length;h<p;++h){let B=t.polygonPosition;e.polygonIndices[t.polygonObject++]=B;let T=r.areas[h],y=r.indices[h],E=r.indices[h+1];for(let S=0,O=y.length;S<O;++S){let N=y[S],Q=S===O-1?E===void 0?r.data.length:E[0]:y[S+1];e.primitivePolygonIndices[t.polygonRing++]=t.polygonPosition,t.polygonPosition+=(Q-N)/n}let I=t.polygonPosition;ML(e,T,y,{startPosition:B,endPosition:I,coordLength:n})}}function ML(r,e,t,{startPosition:n,endPosition:i,coordLength:A}){if(!r.triangles)return;let h=n*A,p=i*A,B=r.positions.subarray(h,p),T=t[0],y=t.slice(1).map(I=>(I-T)/A),E=od(B,y,A,e);for(let I=0,S=E.length;I<S;++I)r.triangles.push(n+E[I])}function mf(r,e){let t={};for(let n in r)t[n]={value:r[n],size:e};return t}function SL(r,e,t,n){let i={shape:"binary-feature-collection",points:ee(P({},r),{positions:{value:r.positions,size:n},globalFeatureIds:{value:r.globalFeatureIds,size:1},featureIds:{value:r.featureIds,size:1},numericProps:mf(r.numericProps,1)}),lines:ee(P({},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:mf(e.numericProps,1)}),polygons:ee(P({},t),{positions:{value:t.positions,size:n},polygonIndices:{value:t.polygonIndices,size:1},primitivePolygonIndices:{value:t.primitivePolygonIndices,size:1},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:mf(t.numericProps,1)})};return i.polygons&&t.triangles&&(i.polygons.triangles={value:new Uint32Array(t.triangles),size:1}),i}function Bf(r,e,t,n){for(let i in r.numericProps)if(i in e){let A=e[i];r.numericProps[i].fill(A,t,t+n)}}function gf(r,e){let t={};for(let n in r)e.includes(n)||(t[n]=r[n]);return t}function vL(r,e){return e===Array||!Number.isFinite(r)?Array:e===Float64Array||Math.fround(r)!==r?Float64Array:Float32Array}function Eo(r,e){let t=e?.globalFeatureId;return t!==void 0?FL(r,t):RL(r,e?.type)}function FL(r,e){let t=FB(r);for(let n of t){let i=0,A=n.featureIds.value[0];for(let h=0;h<n.featureIds.value.length;h++){let p=n.featureIds.value[h];if(p!==A){if(e===n.globalFeatureIds.value[i])return c0(n,i,h);i=h,A=p}}if(e===n.globalFeatureIds.value[i])return c0(n,i,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function RL(r,e){let t=FB(r,e);return LL(t)}function FB(r,e){let t=[];return r.points&&(r.points.type="Point",t.push(r.points)),r.lines&&(r.lines.type="LineString",t.push(r.lines)),r.polygons&&(r.polygons.type="Polygon",t.push(r.polygons)),t}function LL(r){let e=[];for(let t of r){if(t.featureIds.value.length===0)continue;let n=0,i=t.featureIds.value[0];for(let A=0;A<t.featureIds.value.length;A++){let h=t.featureIds.value[A];h!==i&&(e.push(c0(t,n,A)),n=A,i=h)}e.push(c0(t,n,t.featureIds.value.length))}return e}function c0(r,e,t){let n=SB(r,e,t),i=PL(r,e,t),A=DL(r,e,t);return P({type:"Feature",geometry:n,properties:i},A)}function DL(r,e=0,t){return r.fields&&r.fields[r.featureIds.value[e]]}function PL(r,e=0,t){let n=Object.assign({},r.properties[r.featureIds.value[e]]);for(let i in r.numericProps)n[i]=r.numericProps[i].value[e];return n}var _f=Y0(GB(),1);function eD(r){let e=0;for(let t=0,n=r.length-1,i,A;t<r.length;n=t++)i=r[t],A=r[n],e+=(A[0]-i[0])*(i[1]+A[1]);return e}function yf(r,e){if(Array.isArray(r[0])){for(let n of r)yf(n,e);return}let t=r;t[0]/=e,t[1]/=e}function UB(r,e){for(let t=0;t<r.length;++t)r[t]/=e}function bf(r,e,t){if(typeof r[0][0]!="number"){for(let h of r)bf(h,e,t);return}let n=t*Math.pow(2,e.z),i=t*e.x,A=t*e.y;for(let h=0;h<r.length;h++){let p=r[h];p[0]=(p[0]+i)*360/n-180;let B=180-(p[1]+A)*360/n;p[1]=360/Math.PI*Math.atan(Math.exp(B*Math.PI/180))-90}}function kB(r,e,t){let{x:n,y:i,z:A}=e,h=t*Math.pow(2,A),p=t*n,B=t*i;for(let T=0,y=r.length;T<y;T+=2){r[T]=(r[T]+p)*360/h-180;let E=180-(r[T+1]+B)*360/h;r[T+1]=360/Math.PI*Math.atan(Math.exp(E*Math.PI/180))-90}}function HB(r){let e=r.length;if(e<=1)return[r];let t=[],n,i;for(let A=0;A<e;A++){let h=eD(r[A]);h!==0&&(i===void 0&&(i=h<0),i===h<0?(n&&t.push(n),n=[r[A]]):n&&n.push(r[A]))}return n&&t.push(n),t}function VB(r){let e=r.indices.length,t="Polygon";if(e<=1)return{type:t,data:r.data,areas:[[ic(r.data)]],indices:[r.indices]};let n=[],i=[],A=[],h=[],p,B=0;for(let T,y=0,E;y<e;y++){E=r.indices[y]-B,T=r.indices[y+1]-B||r.data.length;let I=r.data.slice(E,T),S=ic(I);if(S===0){let O=r.data.slice(0,E),N=r.data.slice(T);r.data=O.concat(N),B+=T-E;continue}p===void 0&&(p=S<0),p===S<0?(h.length&&(n.push(A),i.push(h)),h=[E],A=[S]):(A.push(S),h.push(E))}return A&&n.push(A),h.length&&i.push(h),{type:t,areas:n,indices:i,data:r.data}}var f0=(()=>{class r{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;static types=["Unknown","Point","LineString","Polygon"];constructor(t,n,i,A,h,p){this.properties={},this.extent=i,this.type=0,this.id=null,this._pbf=t,this._geometry=-1,this._keys=A,this._values=h,this._geometryInfo=p,t.readFields(tD,this,n)}toGeoJSONFeature(t,n){let i=this.loadGeometry();return t==="wgs84"?JB(this,i,A=>bf(A,n,this.extent)):JB(this,i,yf)}toBinaryFeature(t,n){let i=this.loadFlatGeometry();return t==="wgs84"?this._toBinaryCoordinates(i,A=>kB(A,n,this.extent)):this._toBinaryCoordinates(i,UB)}bbox(){let t=this._pbf;t.pos=this._geometry;let n=t.readVarint()+t.pos,i=1,A=0,h=0,p=0,B=1/0,T=-1/0,y=1/0,E=-1/0;for(;t.pos<n;){if(A<=0){let I=t.readVarint();i=I&7,A=I>>3}if(A--,i===1||i===2)h+=t.readSVarint(),p+=t.readSVarint(),h<B&&(B=h),h>T&&(T=h),p<y&&(y=p),p>E&&(E=p);else if(i!==7)throw new Error(`unknown command ${i}`)}return[B,y,T,E]}_toBinaryCoordinates(t,n){let i;n(t.data,this.extent);let A=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=t.indices.length,i=P({type:"Point"},t);break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=t.indices.length,this._geometryInfo.linePositionsCount+=t.data.length/A,i=P({type:"LineString"},t);break;case 3:i=VB(t),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=i.indices.length;for(let p of i.indices)this._geometryInfo.polygonRingsCount+=p.length;this._geometryInfo.polygonPositionsCount+=i.data.length/A;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let h={type:"Feature",geometry:i,properties:this.properties};return this.id!==null&&(h.id=this.id),h}loadGeometry(){let t=this._pbf;t.pos=this._geometry;let n=t.readVarint()+t.pos,i=1,A=0,h=0,p=0,B=[],T;for(;t.pos<n;){if(A<=0){let y=t.readVarint();i=y&7,A=y>>3}switch(A--,i){case 1:case 2:h+=t.readSVarint(),p+=t.readSVarint(),i===1&&(T&&B.push(T),T=[]),T&&T.push([h,p]);break;case 7:T&&T.push(T[0].slice());break;default:throw new Error(`unknown command ${i}`)}}return T&&B.push(T),B}loadFlatGeometry(){let t=this._pbf;t.pos=this._geometry;let n=t.readVarint()+t.pos,i=1,A,h=0,p=0,B=0,T=0,y=[],E=[];for(;t.pos<n;)if(h<=0&&(A=t.readVarint(),i=A&7,h=A>>3),h--,i===1||i===2)p+=t.readSVarint(),B+=t.readSVarint(),i===1&&y.push(T),E.push(p,B),T+=2;else if(i===7){if(T>0){let I=y[y.length-1];E.push(E[I],E[I+1]),T+=2}}else throw new Error(`unknown command ${i}`);return{data:E,indices:y}}}return r})();function JB(r,e,t){let n=f0.types[r.type],i,A,h;switch(r.type){case 1:let B=[];for(i=0;i<e.length;i++)B[i]=e[i][0];h=B,t(h,r.extent);break;case 2:for(h=e,i=0;i<h.length;i++)t(h[i],r.extent);break;case 3:for(h=HB(e),i=0;i<h.length;i++)for(A=0;A<h[i].length;A++)t(h[i][A],r.extent);break;default:throw new Error("illegal vector tile type")}h.length===1?h=h[0]:n=`Multi${n}`;let p={type:"Feature",geometry:{type:n,coordinates:h},properties:r.properties};return r.id!==null&&(p.properties||={},p.properties.id=r.id),p}function tD(r,e,t){e&&t&&(r===1?e.id=t.readVarint():r===2?rD(t,e):r===3?e.type=t.readVarint():r===4&&(e._geometry=t.pos))}function rD(r,e){let t=r.readVarint()+r.pos;for(;r.pos<t;){let n=e._keys[r.readVarint()],i=e._values[r.readVarint()];e.properties[n]=i}}var h0=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,t){this.version=1,this.name="",this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(nD,this,t),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 t=this._pbf.readVarint()+this._pbf.pos;return new f0(this._pbf,t,this.extent,this._keys,this._values)}getBinaryFeature(e,t){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 f0(this._pbf,n,this.extent,this._keys,this._values,t)}};function nD(r,e,t){e&&t&&(r===15?e.version=t.readVarint():r===1?e.name=t.readString():r===5?e.extent=t.readVarint():r===2?e._features.push(t.pos):r===3?e._keys.push(t.readString()):r===4&&e._values.push(sD(t)))}function sD(r){let e=null,t=r.readVarint()+r.pos;for(;r.pos<t;){let n=r.readVarint()>>3;e=n===1?r.readString():n===2?r.readFloat():n===3?r.readDouble():n===4?r.readVarint64():n===5?r.readVarint():n===6?r.readSVarint():n===7?r.readBoolean():null}return e}var _o=class{layers;constructor(e,t){this.layers=e.readFields(iD,{},t)}};function iD(r,e,t){if(r===3&&t){let n=new h0(t,t.readVarint()+t.pos);n.length&&e&&(e[n.name]=n)}}function xf(r,e){let t=AD(e),n=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(n){case"columnar-table":return{shape:"columnar-table",data:Ef(r,t)};case"geojson-table":return{shape:"geojson-table",type:"FeatureCollection",features:jB(r,t)};case"geojson":return jB(r,t);case"binary-geometry":return Ef(r,t);case"binary":return Ef(r,t);default:throw new Error(n||"undefined shape")}}function Ef(r,e){let[t,n]=oD(r,e),i=a0(t,n);return i.byteLength=r.byteLength,i}function oD(r,e){let t=[],n={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(r.byteLength<=0)return[t,n];let i=new _o(new _f.default(r));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(i.layers)).forEach(h=>{let p=i.layers[h];if(p)for(let B=0;B<p.length;B++){let T=p.getBinaryFeature(B,n),y=cD(T,e,h);t.push(y)}}),[t,n]}function jB(r,e){if(r.byteLength<=0)return[];let t=[],n=new _o(new _f.default(r));return(Array.isArray(e.layers)?e.layers:Object.keys(n.layers)).forEach(A=>{let h=n.layers[A];if(h)for(let p=0;p<h.length;p++){let B=h.getGeoJSONFeature(p),T=aD(B,e,A);t.push(T)}}),t}function AD(r){if(!r?.mvt)throw new Error("mvt options required");if(r.mvt?.coordinates==="wgs84"&&!r.mvt.tileIndex)throw new Error("MVT Loader: WGS84 coordinates need tileIndex property");return r.gis&&wh.warn('MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead')(),r.mvt}function aD(r,e,t){let n=r.toGeoJSONFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&(n.properties||={},n.properties[e.layerProperty]=t),n}function cD(r,e,t){let n=r.toBinaryFeature(e.coordinates||"local",e.tileIndex);return e.layerProperty&&n.properties&&(n.properties[e.layerProperty]=t),n}var QB={name:"Mapbox Vector Tile",id:"mvt",module:"mvt",extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],category:"geometry"};var lD="4.4.4",d0=ee(P({},QB),{dataType:null,batchType:null,version:lD,worker:!0,options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:void 0}}}),uD=ee(P({},d0),{parse:(r,e)=>Z(null,null,function*(){return xf(r,e)}),parseSync:xf,binary:!0});var fD={Point:KB,MultiPoint:hD,LineString:zB,MultiLineString:dD,Polygon:XB,MultiPolygon:pD};function KB([r,e],[t,n],i){let A=_s(t[0],n[0],r),h=_s(t[1],n[1],e);return i.unprojectFlat([A,h])}function If(r,e,t){return r.map(n=>KB(n,e,t))}function hD(r,e,t){return If(r,e,t)}function zB(r,e,t){return If(r,e,t)}function dD(r,e,t){return r.map(n=>zB(n,e,t))}function XB(r,e,t){return r.map(n=>If(n,e,t))}function pD(r,e,t){return r.map(n=>XB(n,e,t))}function YB(r,e,t){let n=t.projectFlat([e.west,e.north]),i=t.projectFlat([e.east,e.south]),A=[n,i];return ee(P({},r),{coordinates:fD[r.type](r.coordinates,A,t)})}var mD=["points","lines","polygons"];function wf(r,e,t,n){for(let i of mD){let A=r[i]&&gD(r[i],e,t,n);if(A>=0)return A}return-1}function gD(r,e,t,n){let i=r.featureIds.value;if(!i.length)return-1;let A=0,h=i[i.length-1]+1;if(n){let B=BD(r,n);if(B)A=B[0],h=B[1]+1;else return-1}let p=-1;if(e in r.numericProps){let B=r.numericProps[e].value.findIndex((T,y)=>T===t&&i[y]>=A&&i[y]<h);return B>=0?r.globalFeatureIds.value[B]:-1}else e?p=WB(r.properties,B=>B[e]===t,A,h):r.fields&&(p=WB(r.fields,B=>B.id===t,A,h));return p>=0?CD(r,p):-1}function BD(r,e){if(!r.__layers){let t={},{properties:n}=r;for(let i=0;i<n.length;i++){let{layerName:A}=n[i];A&&(t[A]?t[A][1]=i:t[A]=[i,i])}r.__layers=t}return r.__layers[e]}function CD(r,e){if(!r.__ids){let t=[],n=r.featureIds.value,i=r.globalFeatureIds.value;for(let A=0;A<n.length;A++)t[n[A]]=i[A];r.__ids=t}return r.__ids[e]}function WB(r,e,t,n){for(let i=t;i<n;i++)if(e(r[i],i))return i;return-1}var Mf=512,TD=ee(P({},Ui.defaultProps),{data:Sn,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[d0],binary:!0}),yD=(()=>{class r extends Qs{initializeState(){super.initializeState();let t=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:t,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return!!(this.state?.data&&super.isLoaded)}updateState({props:t,oldProps:n,context:i,changeFlags:A}){A.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:t,oldProps:n,context:i,changeFlags:A}),this._setWGS84PropertyForTiles());let{highlightColor:h}=t;h!==n.highlightColor&&Array.isArray(h)&&this.setState({highlightColor:h})}_updateTileData(){return Z(this,null,function*(){let t=this.props.data,n=null;if(typeof t=="string"&&!cl(t)){let{onDataLoad:i,fetch:A}=this.props;this.setState({data:null,tileJSON:null});try{n=yield A(t,{propName:"data",layer:this,loaders:[]})}catch(h){this.raiseError(h,"loading TileJSON"),t=null}i&&i(n,{propName:"data",layer:this})}else t&&typeof t=="object"&&"tilejson"in t&&(n=t);n&&(t=n.tiles),this.setState({data:t,tileJSON:n})})}_getTilesetOptions(){let t=super._getTilesetOptions(),n=this.state.tileJSON,{minZoom:i,maxZoom:A}=this.props;return n&&(Number.isFinite(n.minzoom)&&n.minzoom>i&&(t.minZoom=n.minzoom),Number.isFinite(n.maxzoom)&&(!Number.isFinite(A)||n.maxzoom<A)&&(t.maxZoom=n.maxzoom)),t}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(t){let{data:n,binary:i}=this.state,{index:A,signal:h}=t,p=un(n,t);if(!p)return Promise.reject("Invalid URL");let B=this.getLoadOptions(),{fetch:T}=this.props;return B=ee(P({},B),{core:ee(P({},B?.core),{mimeType:"application/x-protobuf"}),mvt:ee(P({},B?.mvt),{shape:i?"binary":"geojson",coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:A})}),T(p,{propName:"data",layer:this,loadOptions:B,signal:h})}renderSubLayers(t){let{x:n,y:i,z:A}=t.tile.index,h=Math.pow(2,A),p=Mf/h,B=-p,T=Mf*n/h,y=Mf*(1-i/h),E=new Se().scale([p,B,1]);t.autoHighlight=!1,this.context.viewport.resolution||(t.modelMatrix=E,t.coordinateOrigin=[T,y,0],t.coordinateSystem=xr.CARTESIAN,t.extensions=[...t.extensions||[],new pf]);let I=super.renderSubLayers(t);return this.state.binary&&!(I instanceof Ui)&&_r.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),I}_updateAutoHighlight(t){let{uniqueIdProperty:n}=this.props,{hoveredFeatureId:i,hoveredFeatureLayerName:A}=this.state,h=t.object,p=null,B=null;h&&(p=Sf(h,n),B=qB(h));let{highlightColor:T}=this.props;typeof T=="function"&&(T=T(t)),(i!==p||A!==B)&&this.setState({highlightColor:T,hoveredFeatureId:p,hoveredFeatureLayerName:B})}_isWGS84(){return!!this.context.viewport.resolution}getPickingInfo(t){let n=super.getPickingInfo(t);if(this.state.binary&&n.index!==-1){let{data:i}=t.sourceLayer.props;n.object=Eo(i,{globalFeatureId:n.index})}return n.object&&!this._isWGS84()&&(n.object=$B(n.object,n.tile.bbox,this.context.viewport)),n}getSubLayerPropsByTile(t){return{highlightedObjectIndex:this.getHighlightedObjectIndex(t),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(t){let{hoveredFeatureId:n,hoveredFeatureLayerName:i,binary:A}=this.state,{uniqueIdProperty:h,highlightedFeatureId:p}=this.props,B=t.content,T=ZB(p);if(!(ZB(n)||T))return-1;let E=T?p:n;return Array.isArray(B)?B.findIndex(I=>{let S=Sf(I,h)===E,O=T||qB(I)===i;return S&&O}):B&&A?wf(B,h,E,T?"":i):-1}_pickObjects(t){let{deck:n,viewport:i}=this.context,A=i.width,h=i.height,p=i.x,B=i.y,T=[this.id];return n.pickObjects({x:p,y:B,width:A,height:h,layerIds:T,maxObjects:t})}getRenderedFeatures(t=null){let n=this._pickObjects(t),i=new Set,A=[];for(let h of n){let p=Sf(h.object,this.props.uniqueIdProperty);p===void 0?A.push(h.object):i.has(p)||(i.add(p),A.push(h.object))}return A}_setWGS84PropertyForTiles(){let t="dataInWGS84";
1147this.state.tileset.selectedTiles.forEach(i=>{i.hasOwnProperty(t)||Object.defineProperty(i,t,{get:()=>{if(!i.content)return null;if(this.state.binary&&Array.isArray(i.content)&&!i.content.length)return[];let{bbox:A}=i;if(i._contentWGS84===void 0&&ll(A)){let h=this.state.binary?Eo(i.content):i.content;i._contentWGS84=h.map(p=>$B(p,A,this.context.viewport))}return i._contentWGS84}})})}}return r.layerName="MVTLayer",r.defaultProps=TD,r})(),bD=yD;function Sf(r,e){if(r.properties&&e)return r.properties[e];if("id"in r)return r.id}function qB(r){return r.properties?.layerName||null}function ZB(r){return r!=null&&r!==""}function $B(r,e,t){let n=ee(P({},r),{geometry:{type:r.geometry.type}});return Object.defineProperty(n.geometry,"coordinates",{get:()=>YB(r.geometry,e,t).coordinates}),n}var eC="0123456789bcdefghjkmnpqrstuvwxyz",tC={};for(let r=0;r<eC.length;r++)tC[eC.charAt(r)]=r;var ED=-90,_D=90,xD=-180,ID=180;function wD(r){let e=!0,t=_D,n=ED,i=ID,A=xD,h,p=0;for(let B=0,T=r.length;B<T;B++){let y=r[B].toLowerCase();p=tC[y];for(let E=4;E>=0;E--){let I=p>>E&1;e?(h=(i+A)/2,I===1?A=h:i=h):(h=(t+n)/2,I===1?n=h:t=h),e=!e}}return[n,A,t,i]}function rC(r){let[e,t,n,i]=wD(r);return[i,n,i,e,t,e,t,n,i,n]}var MD={getGeohash:{type:"accessor",value:r=>r.geohash}},SD=(()=>{class r extends Gr{indexToBounds(){let{data:t,getGeohash:n}=this.props;return{data:t,_normalize:!1,positionFormat:"XY",getPolygon:(i,A)=>rC(n(i,A))}}}return r.layerName="GeohashLayer",r.defaultProps=MD,r})(),vD=SD;export{mE as A5Layer,vD as GeohashLayer,$_ as GreatCircleLayer,oI as H3ClusterLayer,fl as H3HexagonLayer,bD as MVTLayer,dx as QuadkeyLayer,lx as S2Layer,hL as TerrainLayer,jR as Tile3DLayer,Qs as TileLayer,$x as TripsLayer,Gr as _GeoCellLayer,ks as _Tile2DHeader,js as _Tileset2D,W_ as _WMSLayer,un as _getURLFromTemplate}; 1148 1149//# debugId=589535c3-655f-5c7d-ab1c-c2413e2978bc
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.