@mapvx/web-components-ssr 1.6.1-dev.1 → 1.7.0-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -4
- package/dist/browser/chunk-7vIcv6rM.js +1180 -0
- package/dist/browser/chunk-BK2bFfek.js +6148 -0
- package/dist/browser/chunk-Bjk3HkK2.js +2 -1
- package/dist/browser/chunk-C8XJWaI5.js +2 -0
- package/dist/browser/chunk-CCaUxYwr.js +2 -1
- package/dist/browser/chunk-CTFjnL_B.js +2 -1
- package/dist/browser/chunk-Cg9Nd_Mm.js +4336 -0
- package/dist/browser/chunk-ClYPPgpq.js +3 -0
- package/dist/browser/chunk-ConEJto8.js +1318 -0
- package/dist/browser/chunk-CuTcljJ2.js +2 -0
- package/dist/browser/chunk-CzASft0S.js +13 -0
- package/dist/browser/chunk-DAjekpI-.js +3 -0
- package/dist/browser/chunk-DHX-WiFW.js +3 -0
- package/dist/browser/chunk-DsKCGfdq.js +3 -1
- package/dist/browser/chunk-LltjhLJU.js +2 -1
- package/dist/browser/chunk-qJiyNNGo.js +348 -0
- package/dist/browser/main.js +551 -532
- package/dist/browser/styles.css +1 -1
- package/package.json +37 -30
- package/dist/browser/chunk-CP_etSVX.js +0 -4343
- package/dist/browser/chunk-CdqAsQa0.js +0 -2047
- package/dist/browser/chunk-Dkhxm9pV.js +0 -1
- package/dist/browser/chunk-Dm8HBhbB.js +0 -1
- package/dist/browser/chunk-UfDdP4s_.js +0 -1
- package/dist/browser/chunk-VDwq1GVr.js +0 -511
|
@@ -1,511 +0,0 @@
|
|
|
1
|
-
import{a as v,i as u,n as s,o as w,r as t,s as x,t as r}from"./main.js";import{$ as ld$1,At as te,B as ci,C as Nf,Ct as zs$1,Dt as N,E as Qh$1,F as Xi$1,G as ge,H as fd$1,I as Y,J as ic$1,K as hd$1,M as Va,Mt as ye$1,N as W,O as To$1,Ot as d,P as Wv$1,R as Z,S as Nc$1,T as Nt$1,Tt as I,U as fi,V as da,W as gc$1,X as ji$1,Y as id$1,Z as jp$1,_ as Kt$1,_t as ur$1,a as D,at as om$1,b as Mt,c as Fa,ct as rd$1,dt as rn$1,et as mb$1,ft as sm$1,g as Kp$1,gt as ue$1,h as Jr,ht as ud$1,i as C,it as oc$1,j as Ue,jt as y,k as Tr$1,kt as ka,l as H,lt as re,m as Jd$1,mt as ub$1,n as Ao$1,nt as ne,o as De,ot as ou,p as J,q as ht,r as At,rt as nt,s as Dv$1,st as q,t as Al$1,tt as mr,u as Hc$1,ut as ri,v as Mi$1,vt as xd$1,w as Ns$1,wt as Ae,x as Mx$1,y as Mo$1,yt as xe$1,z as Zr$1}from"./chunk-CP_etSVX.js";import{_ as ye$2,d as fe,h as mn$1,l as dn$1,n as Ho$1,r as Ks$1,s as _s$1,t as Bo$1,u as dt$1}from"./chunk-CdqAsQa0.js";var tc=v((ip,Fi)=>{"use strict";(function(t$1,e){typeof define==`function`&&define.amd?define([],e):typeof t==`function`&&typeof Fi==`object`&&Fi&&Fi.exports?Fi.exports=e():(t$1.dcodeIO=t$1.dcodeIO||{}).Long=e()})(ip,function(){"use strict";function t(Y,k,ge){this.low=Y|0,this.high=k|0,this.unsigned=!!ge}t.prototype.__isLong__,Object.defineProperty(t.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function e(Y){return(Y&&Y.__isLong__)===!0}t.isLong=e;var r={},A={};function i(Y,k){var ge,Me,Ie;return k?(Y>>>=0,(Ie=0<=Y&&Y<256)&&(Me=A[Y],Me)?Me:(ge=d(Y,(Y|0)<0?-1:0,!0),Ie&&(A[Y]=ge),ge)):(Y|=0,(Ie=-128<=Y&&Y<128)&&(Me=r[Y],Me)?Me:(ge=d(Y,Y<0?-1:0,!1),Ie&&(r[Y]=ge),ge))}t.fromInt=i;function a(Y,k){if(isNaN(Y)||!isFinite(Y))return k?X:q;if(k){if(Y<0)return X;if(Y>=F)return Te}else{if(Y<=-N)return Ee;if(Y+1>=N)return be}return Y<0?a(-Y,k).neg():d(Y%v|0,Y/v|0,k)}t.fromNumber=a;function d(Y,k,ge){return new t(Y,k,ge)}t.fromBits=d;var m=Math.pow;function y(Y,k,ge){if(Y.length===0)throw Error(`empty string`);if(Y===`NaN`||Y===`Infinity`||Y===`+Infinity`||Y===`-Infinity`)return q;if(typeof k==`number`?(ge=k,k=!1):k=!!k,ge=ge||10,ge<2||36<ge)throw RangeError(`radix`);var Me;if((Me=Y.indexOf(`-`))>0)throw Error(`interior hyphen`);if(Me===0)return y(Y.substring(1),k,ge).neg();for(var Ie=a(m(ge,8)),ve=q,ke=0;ke<Y.length;ke+=8){var rt=Math.min(8,Y.length-ke),qe=parseInt(Y.substring(ke,ke+rt),ge);if(rt<8){var $e=a(m(ge,rt));ve=ve.mul($e).add(a(qe))}else ve=ve.mul(Ie),ve=ve.add(a(qe))}return ve.unsigned=k,ve}t.fromString=y;function _(Y){return Y instanceof t?Y:typeof Y==`number`?a(Y):typeof Y==`string`?y(Y):d(Y.low,Y.high,Y.unsigned)}t.fromValue=_;var E=65536,x=1<<24,v=E*E,F=v*v,N=F/2,U=i(x),q=i(0);t.ZERO=q;var X=i(0,!0);t.UZERO=X;var Z=i(1);t.ONE=Z;var he=i(1,!0);t.UONE=he;var _e=i(-1);t.NEG_ONE=_e;var be=d(-1,2147483647,!1);t.MAX_VALUE=be;var Te=d(-1,-1,!0);t.MAX_UNSIGNED_VALUE=Te;var Ee=d(0,-2147483648,!1);t.MIN_VALUE=Ee;var se=t.prototype;return se.toInt=function(){return this.unsigned?this.low>>>0:this.low},se.toNumber=function(){return this.unsigned?(this.high>>>0)*v+(this.low>>>0):this.high*v+(this.low>>>0)},se.toString=function(k){if(k=k||10,k<2||36<k)throw RangeError(`radix`);if(this.isZero())return`0`;if(this.isNegative())if(this.eq(Ee)){var ge=a(k),Me=this.div(ge),Ie=Me.mul(ge).sub(this);return Me.toString(k)+Ie.toInt().toString(k)}else return`-`+this.neg().toString(k);for(var ve=a(m(k,6),this.unsigned),ke=this,rt=``;;){var qe=ke.div(ve),at=(ke.sub(qe.mul(ve)).toInt()>>>0).toString(k);if(ke=qe,ke.isZero())return at+rt;for(;at.length<6;)at=`0`+at;rt=``+at+rt}},se.getHighBits=function(){return this.high},se.getHighBitsUnsigned=function(){return this.high>>>0},se.getLowBits=function(){return this.low},se.getLowBitsUnsigned=function(){return this.low>>>0},se.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Ee)?64:this.neg().getNumBitsAbs();for(var k=this.high!=0?this.high:this.low,ge=31;ge>0&&(k&1<<ge)==0;ge--);return this.high!=0?ge+33:ge+1},se.isZero=function(){return this.high===0&&this.low===0},se.isNegative=function(){return!this.unsigned&&this.high<0},se.isPositive=function(){return this.unsigned||this.high>=0},se.isOdd=function(){return(this.low&1)===1},se.isEven=function(){return(this.low&1)===0},se.equals=function(k){return e(k)||(k=_(k)),this.unsigned!==k.unsigned&&this.high>>>31===1&&k.high>>>31===1?!1:this.high===k.high&&this.low===k.low},se.eq=se.equals,se.notEquals=function(k){return!this.eq(k)},se.neq=se.notEquals,se.lessThan=function(k){return this.comp(k)<0},se.lt=se.lessThan,se.lessThanOrEqual=function(k){return this.comp(k)<=0},se.lte=se.lessThanOrEqual,se.greaterThan=function(k){return this.comp(k)>0},se.gt=se.greaterThan,se.greaterThanOrEqual=function(k){return this.comp(k)>=0},se.gte=se.greaterThanOrEqual,se.compare=function(k){if(e(k)||(k=_(k)),this.eq(k))return 0;var ge=this.isNegative(),Me=k.isNegative();return ge&&!Me?-1:!ge&&Me?1:this.unsigned?k.high>>>0>this.high>>>0||k.high===this.high&&k.low>>>0>this.low>>>0?-1:1:this.sub(k).isNegative()?-1:1},se.comp=se.compare,se.negate=function(){return!this.unsigned&&this.eq(Ee)?Ee:this.not().add(Z)},se.neg=se.negate,se.add=function(k){e(k)||(k=_(k));var ge=this.high>>>16,Me=this.high&65535,Ie=this.low>>>16,ve=this.low&65535,ke=k.high>>>16,rt=k.high&65535,qe=k.low>>>16,$e=k.low&65535,at=0,Ve=0,nt=0,Rt=0;return Rt+=ve+$e,nt+=Rt>>>16,Rt&=65535,nt+=Ie+qe,Ve+=nt>>>16,nt&=65535,Ve+=Me+rt,at+=Ve>>>16,Ve&=65535,at+=ge+ke,at&=65535,d(nt<<16|Rt,at<<16|Ve,this.unsigned)},se.subtract=function(k){return e(k)||(k=_(k)),this.add(k.neg())},se.sub=se.subtract,se.multiply=function(k){if(this.isZero()||(e(k)||(k=_(k)),k.isZero()))return q;if(this.eq(Ee))return k.isOdd()?Ee:q;if(k.eq(Ee))return this.isOdd()?Ee:q;if(this.isNegative())return k.isNegative()?this.neg().mul(k.neg()):this.neg().mul(k).neg();if(k.isNegative())return this.mul(k.neg()).neg();if(this.lt(U)&&k.lt(U))return a(this.toNumber()*k.toNumber(),this.unsigned);var ge=this.high>>>16,Me=this.high&65535,Ie=this.low>>>16,ve=this.low&65535,ke=k.high>>>16,rt=k.high&65535,qe=k.low>>>16,$e=k.low&65535,at=0,Ve=0,nt=0,Rt=0;return Rt+=ve*$e,nt+=Rt>>>16,Rt&=65535,nt+=Ie*$e,Ve+=nt>>>16,nt&=65535,nt+=ve*qe,Ve+=nt>>>16,nt&=65535,Ve+=Me*$e,at+=Ve>>>16,Ve&=65535,Ve+=Ie*qe,at+=Ve>>>16,Ve&=65535,Ve+=ve*rt,at+=Ve>>>16,Ve&=65535,at+=ge*$e+Me*qe+Ie*rt+ve*ke,at&=65535,d(nt<<16|Rt,at<<16|Ve,this.unsigned)},se.mul=se.multiply,se.divide=function(k){if(e(k)||(k=_(k)),k.isZero())throw Error(`division by zero`);if(this.isZero())return this.unsigned?X:q;var ge,Me,Ie;if(this.unsigned){if(k.unsigned||(k=k.toUnsigned()),k.gt(this))return X;if(k.gt(this.shru(1)))return he;Ie=X}else{if(this.eq(Ee)){if(k.eq(Z)||k.eq(_e))return Ee;if(k.eq(Ee))return Z;return ge=this.shr(1).div(k).shl(1),ge.eq(q)?k.isNegative()?Z:_e:(Me=this.sub(k.mul(ge)),Ie=ge.add(Me.div(k)),Ie)}else if(k.eq(Ee))return this.unsigned?X:q;if(this.isNegative())return k.isNegative()?this.neg().div(k.neg()):this.neg().div(k).neg();if(k.isNegative())return this.div(k.neg()).neg();Ie=q}for(Me=this;Me.gte(k);){ge=Math.max(1,Math.floor(Me.toNumber()/k.toNumber()));for(var ke=Math.ceil(Math.log(ge)/Math.LN2),rt=ke<=48?1:m(2,ke-48),qe=a(ge),$e=qe.mul(k);$e.isNegative()||$e.gt(Me);)ge-=rt,qe=a(ge,this.unsigned),$e=qe.mul(k);qe.isZero()&&(qe=Z),Ie=Ie.add(qe),Me=Me.sub($e)}return Ie},se.div=se.divide,se.modulo=function(k){return e(k)||(k=_(k)),this.sub(this.div(k).mul(k))},se.mod=se.modulo,se.not=function(){return d(~this.low,~this.high,this.unsigned)},se.and=function(k){return e(k)||(k=_(k)),d(this.low&k.low,this.high&k.high,this.unsigned)},se.or=function(k){return e(k)||(k=_(k)),d(this.low|k.low,this.high|k.high,this.unsigned)},se.xor=function(k){return e(k)||(k=_(k)),d(this.low^k.low,this.high^k.high,this.unsigned)},se.shiftLeft=function(k){return e(k)&&(k=k.toInt()),(k&=63)===0?this:k<32?d(this.low<<k,this.high<<k|this.low>>>32-k,this.unsigned):d(0,this.low<<k-32,this.unsigned)},se.shl=se.shiftLeft,se.shiftRight=function(k){return e(k)&&(k=k.toInt()),(k&=63)===0?this:k<32?d(this.low>>>k|this.high<<32-k,this.high>>k,this.unsigned):d(this.high>>k-32,this.high>=0?0:-1,this.unsigned)},se.shr=se.shiftRight,se.shiftRightUnsigned=function(k){if(e(k)&&(k=k.toInt()),k&=63,k===0)return this;var ge=this.high;if(k<32){var Me=this.low;return d(Me>>>k|ge<<32-k,ge>>>k,this.unsigned)}else return k===32?d(ge,0,this.unsigned):d(ge>>>k-32,0,this.unsigned)},se.shru=se.shiftRightUnsigned,se.toSigned=function(){return this.unsigned?d(this.low,this.high,!1):this},se.toUnsigned=function(){return this.unsigned?this:d(this.low,this.high,!0)},se.toBytes=function(Y){return Y?this.toBytesLE():this.toBytesBE()},se.toBytesLE=function(){var Y=this.high,k=this.low;return[k&255,k>>>8&255,k>>>16&255,k>>>24&255,Y&255,Y>>>8&255,Y>>>16&255,Y>>>24&255]},se.toBytesBE=function(){var Y=this.high,k=this.low;return[Y>>>24&255,Y>>>16&255,Y>>>8&255,Y&255,k>>>24&255,k>>>16&255,k>>>8&255,k&255]},t})});var H1=v(Kl=>{"use strict";Kl.read=function(t,e,r,A,i){var a,d,m=i*8-A-1,y=(1<<m)-1,_=y>>1,E=-7,x=r?i-1:0,v=r?-1:1,F=t[e+x];for(x+=v,a=F&(1<<-E)-1,F>>=-E,E+=m;E>0;a=a*256+t[e+x],x+=v,E-=8);for(d=a&(1<<-E)-1,a>>=-E,E+=A;E>0;d=d*256+t[e+x],x+=v,E-=8);if(a===0)a=1-_;else{if(a===y)return d?NaN:(F?-1:1)*Infinity;d=d+Math.pow(2,A),a=a-_}return(F?-1:1)*d*Math.pow(2,a-A)};Kl.write=function(t,e,r,A,i,a){var d,m,y,_=a*8-i-1,E=(1<<_)-1,x=E>>1,v=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,F=A?0:a-1,N=A?1:-1,U=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===Infinity?(m=isNaN(e)?1:0,d=E):(d=Math.floor(Math.log(e)/Math.LN2),e*(y=Math.pow(2,-d))<1&&(d--,y*=2),d+x>=1?e+=v/y:e+=v*Math.pow(2,1-x),e*y>=2&&(d++,y/=2),d+x>=E?(m=0,d=E):d+x>=1?(m=(e*y-1)*Math.pow(2,i),d=d+x):(m=e*Math.pow(2,x-1)*Math.pow(2,i),d=0));i>=8;t[r+F]=m&255,F+=N,m/=256,i-=8);for(d=d<<i|m,_+=i;_>0;t[r+F]=d&255,F+=N,d/=256,_-=8);t[r+F-N]|=U*128}});var q1=v((YQ,J1)=>{"use strict";J1.exports=Ye;var da=H1();function Ye(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}Ye.Varint=0;Ye.Fixed64=1;Ye.Bytes=2;Ye.Fixed32=5;var Xl=65536*65536,V1=1/Xl,cF=12,z1=typeof TextDecoder>`u`?null:new TextDecoder(`utf-8`);Ye.prototype={destroy:function(){this.buf=null},readFields:function(t,e,r){for(r=r||this.length;this.pos<r;){var A=this.readVarint(),i=A>>3,a=this.pos;this.type=A&7,t(i,e,this),this.pos===a&&this.skip(A)}return e},readMessage:function(t,e){return this.readFields(t,e,this.readVarint()+this.pos)},readFixed32:function(){var t=pa(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=Q1(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=pa(this.buf,this.pos)+pa(this.buf,this.pos+4)*Xl;return this.pos+=8,t},readSFixed64:function(){var t=pa(this.buf,this.pos)+Q1(this.buf,this.pos+4)*Xl;return this.pos+=8,t},readFloat:function(){var t=da.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=da.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var e=this.buf,r,A;return A=e[this.pos++],r=A&127,A<128||(A=e[this.pos++],r|=(A&127)<<7,A<128)||(A=e[this.pos++],r|=(A&127)<<14,A<128)||(A=e[this.pos++],r|=(A&127)<<21,A<128)?r:(A=e[this.pos],r|=(A&15)<<28,lF(r,t,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2===1?(t+1)/-2:t/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var t=this.readVarint()+this.pos,e=this.pos;return this.pos=t,t-e>=cF&&z1?CF(this.buf,e,t):xF(this.buf,e,t)},readBytes:function(){var t=this.readVarint()+this.pos,e=this.buf.subarray(this.pos,t);return this.pos=t,e},readPackedVarint:function(t,e){if(this.type!==Ye.Bytes)return t.push(this.readVarint(e));var r=nn(this);for(t=t||[];this.pos<r;)t.push(this.readVarint(e));return t},readPackedSVarint:function(t){if(this.type!==Ye.Bytes)return t.push(this.readSVarint());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==Ye.Bytes)return t.push(this.readBoolean());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==Ye.Bytes)return t.push(this.readFloat());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==Ye.Bytes)return t.push(this.readDouble());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==Ye.Bytes)return t.push(this.readFixed32());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==Ye.Bytes)return t.push(this.readSFixed32());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==Ye.Bytes)return t.push(this.readFixed64());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==Ye.Bytes)return t.push(this.readSFixed64());var e=nn(this);for(t=t||[];this.pos<e;)t.push(this.readSFixed64());return t},skip:function(t){var e=t&7;if(e===Ye.Varint)for(;this.buf[this.pos++]>127;);else if(e===Ye.Bytes)this.pos=this.readVarint()+this.pos;else if(e===Ye.Fixed32)this.pos+=4;else if(e===Ye.Fixed64)this.pos+=8;else throw new Error(`Unimplemented type: `+e)},writeTag:function(t,e){this.writeVarint(t<<3|e)},realloc:function(t){for(var e=this.length||16;e<this.pos+t;)e*=2;if(e!==this.length){var r=new Uint8Array(e);r.set(this.buf),this.buf=r,this.length=e}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),WA(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),WA(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),WA(this.buf,t&-1,this.pos),WA(this.buf,Math.floor(t*V1),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),WA(this.buf,t&-1,this.pos),WA(this.buf,Math.floor(t*V1),this.pos+4),this.pos+=8},writeVarint:function(t){if(t=+t||0,t>268435455||t<0){uF(t,this);return}this.realloc(4),this.buf[this.pos++]=t&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=(t>>>=7)&127|(t>127?128:0),!(t<=127)&&(this.buf[this.pos++]=t>>>7&127)))},writeSVarint:function(t){this.writeVarint(t<0?-t*2-1:t*2)},writeBoolean:function(t){this.writeVarint(!!t)},writeString:function(t){t=String(t),this.realloc(t.length*4),this.pos++;var e=this.pos;this.pos=wF(this.buf,t,this.pos);var r=this.pos-e;r>=128&&j1(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeFloat:function(t){this.realloc(4),da.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),da.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var e=t.length;this.writeVarint(e),this.realloc(e);for(var r=0;r<e;r++)this.buf[this.pos++]=t[r]},writeRawMessage:function(t,e){this.pos++;var r=this.pos;t(e,this);var A=this.pos-r;A>=128&&j1(r,A,this),this.pos=r-1,this.writeVarint(A),this.pos+=A},writeMessage:function(t,e,r){this.writeTag(t,Ye.Bytes),this.writeRawMessage(e,r)},writePackedVarint:function(t,e){e.length&&this.writeMessage(t,dF,e)},writePackedSVarint:function(t,e){e.length&&this.writeMessage(t,pF,e)},writePackedBoolean:function(t,e){e.length&&this.writeMessage(t,yF,e)},writePackedFloat:function(t,e){e.length&&this.writeMessage(t,mF,e)},writePackedDouble:function(t,e){e.length&&this.writeMessage(t,gF,e)},writePackedFixed32:function(t,e){e.length&&this.writeMessage(t,TF,e)},writePackedSFixed32:function(t,e){e.length&&this.writeMessage(t,_F,e)},writePackedFixed64:function(t,e){e.length&&this.writeMessage(t,bF,e)},writePackedSFixed64:function(t,e){e.length&&this.writeMessage(t,EF,e)},writeBytesField:function(t,e){this.writeTag(t,Ye.Bytes),this.writeBytes(e)},writeFixed32Field:function(t,e){this.writeTag(t,Ye.Fixed32),this.writeFixed32(e)},writeSFixed32Field:function(t,e){this.writeTag(t,Ye.Fixed32),this.writeSFixed32(e)},writeFixed64Field:function(t,e){this.writeTag(t,Ye.Fixed64),this.writeFixed64(e)},writeSFixed64Field:function(t,e){this.writeTag(t,Ye.Fixed64),this.writeSFixed64(e)},writeVarintField:function(t,e){this.writeTag(t,Ye.Varint),this.writeVarint(e)},writeSVarintField:function(t,e){this.writeTag(t,Ye.Varint),this.writeSVarint(e)},writeStringField:function(t,e){this.writeTag(t,Ye.Bytes),this.writeString(e)},writeFloatField:function(t,e){this.writeTag(t,Ye.Fixed32),this.writeFloat(e)},writeDoubleField:function(t,e){this.writeTag(t,Ye.Fixed64),this.writeDouble(e)},writeBooleanField:function(t,e){this.writeVarintField(t,!!e)}};function lF(t,e,r){var A=r.buf,i,a;if(a=A[r.pos++],i=(a&112)>>4,a<128||(a=A[r.pos++],i|=(a&127)<<3,a<128)||(a=A[r.pos++],i|=(a&127)<<10,a<128)||(a=A[r.pos++],i|=(a&127)<<17,a<128)||(a=A[r.pos++],i|=(a&127)<<24,a<128)||(a=A[r.pos++],i|=(a&1)<<31,a<128))return YA(t,i,e);throw new Error(`Expected varint not more than 10 bytes`)}function nn(t){return t.type===Ye.Bytes?t.readVarint()+t.pos:t.pos+1}function YA(t,e,r){return r?e*4294967296+(t>>>0):(e>>>0)*4294967296+(t>>>0)}function uF(t,e){var r,A;if(t>=0?(r=t%4294967296|0,A=t/4294967296|0):(r=~(-t%4294967296),A=~(-t/4294967296),r^4294967295?r=r+1|0:(r=0,A=A+1|0)),t>=0x10000000000000000||t<-0x10000000000000000)throw new Error(`Given varint doesn't fit into 10 bytes`);e.realloc(10),fF(r,A,e),hF(A,e)}function fF(t,e,r){r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos++]=t&127|128,t>>>=7,r.buf[r.pos]=t&127}function hF(t,e){var r=(t&7)<<4;e.buf[e.pos++]|=r|((t>>>=3)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127|((t>>>=7)?128:0),t&&(e.buf[e.pos++]=t&127)))))}function j1(t,e,r){var A=e<=16383?1:e<=2097151?2:e<=268435455?3:Math.floor(Math.log(e)/(Math.LN2*7));r.realloc(A);for(var i=r.pos-1;i>=t;i--)r.buf[i+A]=r.buf[i]}function dF(t,e){for(var r=0;r<t.length;r++)e.writeVarint(t[r])}function pF(t,e){for(var r=0;r<t.length;r++)e.writeSVarint(t[r])}function mF(t,e){for(var r=0;r<t.length;r++)e.writeFloat(t[r])}function gF(t,e){for(var r=0;r<t.length;r++)e.writeDouble(t[r])}function yF(t,e){for(var r=0;r<t.length;r++)e.writeBoolean(t[r])}function TF(t,e){for(var r=0;r<t.length;r++)e.writeFixed32(t[r])}function _F(t,e){for(var r=0;r<t.length;r++)e.writeSFixed32(t[r])}function bF(t,e){for(var r=0;r<t.length;r++)e.writeFixed64(t[r])}function EF(t,e){for(var r=0;r<t.length;r++)e.writeSFixed64(t[r])}function pa(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+t[e+3]*16777216}function WA(t,e,r){t[r]=e,t[r+1]=e>>>8,t[r+2]=e>>>16,t[r+3]=e>>>24}function Q1(t,e){return(t[e]|t[e+1]<<8|t[e+2]<<16)+(t[e+3]<<24)}function xF(t,e,r){for(var A=``,i=e;i<r;){var a=t[i],d=null,m=a>239?4:a>223?3:a>191?2:1;if(i+m>r)break;var y,_,E;m===1?a<128&&(d=a):m===2?(y=t[i+1],(y&192)===128&&(d=(a&31)<<6|y&63,d<=127&&(d=null))):m===3?(y=t[i+1],_=t[i+2],(y&192)===128&&(_&192)===128&&(d=(a&15)<<12|(y&63)<<6|_&63,(d<=2047||d>=55296&&d<=57343)&&(d=null))):m===4&&(y=t[i+1],_=t[i+2],E=t[i+3],(y&192)===128&&(_&192)===128&&(E&192)===128&&(d=(a&15)<<18|(y&63)<<12|(_&63)<<6|E&63,(d<=65535||d>=1114112)&&(d=null))),d===null?(d=65533,m=1):d>65535&&(d-=65536,A+=String.fromCharCode(d>>>10&1023|55296),d=56320|d&1023),A+=String.fromCharCode(d),i+=m}return A}function CF(t,e,r){return z1.decode(t.subarray(e,r))}function wF(t,e,r){for(var A=0,i,a;A<e.length;A++){if(i=e.charCodeAt(A),i>55295&&i<57344)if(a)if(i<56320){t[r++]=239,t[r++]=191,t[r++]=189,a=i;continue}else i=a-55296<<10|i-56320|65536,a=null;else{i>56319||A+1===e.length?(t[r++]=239,t[r++]=191,t[r++]=189):a=i;continue}else a&&(t[r++]=239,t[r++]=191,t[r++]=189,a=null);i<128?t[r++]=i:(i<2048?t[r++]=i>>6|192:(i<65536?t[r++]=i>>12|224:(t[r++]=i>>18|240,t[r++]=i>>12&63|128),t[r++]=i>>6&63|128),t[r++]=i&63|128)}return r}});function jf(t){switch(t.constructor){case Int8Array:return`int8`;case Uint8Array:case Uint8ClampedArray:return`uint8`;case Int16Array:return`int16`;case Uint16Array:return`uint16`;case Int32Array:return`int32`;case Uint32Array:return`uint32`;case Float32Array:return`float32`;case Float64Array:return`float64`;default:return`null`}}function Sn(t){let e=Infinity,r=Infinity,A=Infinity,i=-Infinity,a=-Infinity,d=-Infinity,m=t.POSITION?t.POSITION.value:[],y=m&&m.length;for(let _=0;_<y;_+=3){let E=m[_],x=m[_+1],v=m[_+2];e=E<e?E:e,r=x<r?x:r,A=v<A?v:A,i=E>i?E:i,a=x>a?x:a,d=v>d?v:d}return[[e,r,A],[i,a,d]]}function o0(t,e,r){let A=jf(e.value),i=r||Qf(e);return{name:t,type:{type:`fixed-size-list`,listSize:e.size,children:[{name:`value`,type:A}]},nullable:!1,metadata:i}}function Qf(t){let e={};return`byteOffset`in t&&(e.byteOffset=t.byteOffset.toString(10)),`byteStride`in t&&(e.byteStride=t.byteStride.toString(10)),`normalized`in t&&(e.normalized=t.normalized.toString()),e}var BT=r({},_s$1.defaultProps);var Ir=(()=>{class t extends Dv$1{indexToBounds(){return null}renderLayers(){let{elevationScale:r$1,extruded:A,wireframe:i,filled:a,stroked:d,lineWidthUnits:m,lineWidthScale:y,lineWidthMinPixels:_,lineWidthMaxPixels:E,lineJointRounded:x,lineMiterLimit:v,lineDashJustified:F,getElevation:N,getFillColor:U,getLineColor:q,getLineWidth:X}=this.props,{updateTriggers:Z,material:he,transitions:_e}=this.props,be=this.getSubLayerClass(`cell`,_s$1),se=this.indexToBounds()||{},{updateTriggers:Te}=se,Ee=u(se,[`updateTriggers`]);return new be({filled:a,wireframe:i,extruded:A,elevationScale:r$1,stroked:d,lineWidthUnits:m,lineWidthScale:y,lineWidthMinPixels:_,lineWidthMaxPixels:E,lineJointRounded:x,lineMiterLimit:v,lineDashJustified:F,material:he,transitions:_e,getElevation:N,getFillColor:U,getLineColor:q,getLineWidth:X},this.getSubLayerProps({id:`cell`,updateTriggers:Z&&s(r({},Te),{getElevation:Z.getElevation,getFillColor:Z.getFillColor,getLineColor:Z.getLineColor,getLineWidth:Z.getLineWidth})}),Ee)}}return t.layerName=`GeoCellLayer`,t.defaultProps=BT,t})();var MT=Object.defineProperty;var mi=(t,e)=>{for(var r in e)MT(t,r,{get:e[r],enumerable:!0})};var Ot={};mi(Ot,{ARRAY_TYPE:()=>dt,EPSILON:()=>Nt,RANDOM:()=>Fn,equals:()=>LT,setMatrixArrayType:()=>IT,toRadian:()=>FT});var Nt=1e-6;var dt=typeof Float32Array<`u`?Float32Array:Array;var Fn=Math.random;function IT(t){dt=t}var ST=Math.PI/180;function FT(t){return t*ST}function LT(t,e){return Math.abs(t-e)<=Nt*Math.max(1,Math.abs(t),Math.abs(e))}Math.hypot||(Math.hypot=function(){for(var t=0,e=arguments.length;e--;)t+=arguments[e]*arguments[e];return Math.sqrt(t)});var Ln={};mi(Ln,{LDU:()=>XT,add:()=>YT,adjoint:()=>HT,clone:()=>PT,copy:()=>DT,create:()=>RT,determinant:()=>VT,equals:()=>ZT,exactEquals:()=>WT,frob:()=>KT,fromRotation:()=>zT,fromScaling:()=>JT,fromValues:()=>OT,identity:()=>NT,invert:()=>UT,mul:()=>t_,multiply:()=>fh,multiplyScalar:()=>$T,multiplyScalarAndAdd:()=>e_,rotate:()=>jT,scale:()=>QT,set:()=>GT,str:()=>qT,sub:()=>r_,subtract:()=>hh,transpose:()=>kT});function RT(){var t=new dt(4);return dt!=Float32Array&&(t[1]=0,t[2]=0),t[0]=1,t[3]=1,t}function PT(t){var e=new dt(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function DT(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function NT(t){return t[0]=1,t[1]=0,t[2]=0,t[3]=1,t}function OT(t,e,r,A){var i=new dt(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=A,i}function GT(t,e,r,A,i){return t[0]=e,t[1]=r,t[2]=A,t[3]=i,t}function kT(t,e){if(t===e){var r=e[1];t[1]=e[2],t[2]=r}else t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3];return t}function UT(t,e){var r=e[0],A=e[1],i=e[2],a=e[3],d=r*a-i*A;return d?(d=1/d,t[0]=a*d,t[1]=-A*d,t[2]=-i*d,t[3]=r*d,t):null}function HT(t,e){var r=e[0];return t[0]=e[3],t[1]=-e[1],t[2]=-e[2],t[3]=r,t}function VT(t){return t[0]*t[3]-t[2]*t[1]}function fh(t,e,r){var A=e[0],i=e[1],a=e[2],d=e[3],m=r[0],y=r[1],_=r[2],E=r[3];return t[0]=A*m+a*y,t[1]=i*m+d*y,t[2]=A*_+a*E,t[3]=i*_+d*E,t}function jT(t,e,r){var A=e[0],i=e[1],a=e[2],d=e[3],m=Math.sin(r),y=Math.cos(r);return t[0]=A*y+a*m,t[1]=i*y+d*m,t[2]=A*-m+a*y,t[3]=i*-m+d*y,t}function QT(t,e,r){var A=e[0],i=e[1],a=e[2],d=e[3],m=r[0],y=r[1];return t[0]=A*m,t[1]=i*m,t[2]=a*y,t[3]=d*y,t}function zT(t,e){var r=Math.sin(e),A=Math.cos(e);return t[0]=A,t[1]=r,t[2]=-r,t[3]=A,t}function JT(t,e){return t[0]=e[0],t[1]=0,t[2]=0,t[3]=e[1],t}function qT(t){return`mat2(`+t[0]+`, `+t[1]+`, `+t[2]+`, `+t[3]+`)`}function KT(t){return Math.hypot(t[0],t[1],t[2],t[3])}function XT(t,e,r,A){return t[2]=A[2]/A[0],r[0]=A[0],r[1]=A[1],r[3]=A[3]-t[2]*r[1],[t,e,r]}function YT(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function hh(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t[3]=e[3]-r[3],t}function WT(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function ZT(t,e){var r=t[0],A=t[1],i=t[2],a=t[3],d=e[0],m=e[1],y=e[2],_=e[3];return Math.abs(r-d)<=Nt*Math.max(1,Math.abs(r),Math.abs(d))&&Math.abs(A-m)<=Nt*Math.max(1,Math.abs(A),Math.abs(m))&&Math.abs(i-y)<=Nt*Math.max(1,Math.abs(i),Math.abs(y))&&Math.abs(a-_)<=Nt*Math.max(1,Math.abs(a),Math.abs(_))}function $T(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function e_(t,e,r,A){return t[0]=e[0]+r[0]*A,t[1]=e[1]+r[1]*A,t[2]=e[2]+r[2]*A,t[3]=e[3]+r[3]*A,t}var t_=fh;var r_=hh;function n_(){var t=new dt(9);return dt!=Float32Array&&(t[1]=0,t[2]=0,t[3]=0,t[5]=0,t[6]=0,t[7]=0),t[0]=1,t[4]=1,t[8]=1,t}var u0={};mi(u0,{add:()=>mb,calculateW:()=>ib,clone:()=>fb,conjugate:()=>cb,copy:()=>db,create:()=>h0,dot:()=>Ih,equals:()=>Eb,exactEquals:()=>bb,exp:()=>wh,fromEuler:()=>lb,fromMat3:()=>vh,fromValues:()=>hb,getAngle:()=>tb,getAxisAngle:()=>eb,identity:()=>$_,invert:()=>ab,len:()=>Tb,length:()=>Sh,lerp:()=>yb,ln:()=>Bh,mul:()=>gb,multiply:()=>Ch,normalize:()=>x0,pow:()=>sb,random:()=>ob,rotateX:()=>rb,rotateY:()=>nb,rotateZ:()=>Ab,rotationTo:()=>xb,scale:()=>Mh,set:()=>pb,setAxes:()=>wb,setAxisAngle:()=>xh,slerp:()=>Ms,sqlerp:()=>Cb,sqrLen:()=>_b,squaredLength:()=>Fh,str:()=>ub});var de={};mi(de,{add:()=>o_,angle:()=>v_,bezier:()=>T_,ceil:()=>a_,clone:()=>A_,copy:()=>i_,create:()=>b0,cross:()=>vs,dist:()=>D_,distance:()=>yh,div:()=>P_,divide:()=>gh,dot:()=>E0,equals:()=>F_,exactEquals:()=>S_,floor:()=>c_,forEach:()=>G_,fromValues:()=>f0,hermite:()=>y_,inverse:()=>m_,len:()=>Eh,length:()=>dh,lerp:()=>g_,max:()=>u_,min:()=>l_,mul:()=>R_,multiply:()=>mh,negate:()=>p_,normalize:()=>bh,random:()=>__,rotateX:()=>C_,rotateY:()=>w_,rotateZ:()=>B_,round:()=>f_,scale:()=>h_,scaleAndAdd:()=>d_,set:()=>s_,sqrDist:()=>N_,sqrLen:()=>O_,squaredDistance:()=>Th,squaredLength:()=>_h,str:()=>I_,sub:()=>L_,subtract:()=>ph,transformMat3:()=>E_,transformMat4:()=>b_,transformQuat:()=>x_,zero:()=>M_});function b0(){var t=new dt(3);return dt!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function A_(t){var e=new dt(3);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function dh(t){var e=t[0],r=t[1],A=t[2];return Math.hypot(e,r,A)}function f0(t,e,r){var A=new dt(3);return A[0]=t,A[1]=e,A[2]=r,A}function i_(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function s_(t,e,r,A){return t[0]=e,t[1]=r,t[2]=A,t}function o_(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t}function ph(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t[2]=e[2]-r[2],t}function mh(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t[2]=e[2]*r[2],t}function gh(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t[2]=e[2]/r[2],t}function a_(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t[2]=Math.ceil(e[2]),t}function c_(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t[2]=Math.floor(e[2]),t}function l_(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t[2]=Math.min(e[2],r[2]),t}function u_(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t[2]=Math.max(e[2],r[2]),t}function f_(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t[2]=Math.round(e[2]),t}function h_(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t}function d_(t,e,r,A){return t[0]=e[0]+r[0]*A,t[1]=e[1]+r[1]*A,t[2]=e[2]+r[2]*A,t}function yh(t,e){var r=e[0]-t[0],A=e[1]-t[1],i=e[2]-t[2];return Math.hypot(r,A,i)}function Th(t,e){var r=e[0]-t[0],A=e[1]-t[1],i=e[2]-t[2];return r*r+A*A+i*i}function _h(t){var e=t[0],r=t[1],A=t[2];return e*e+r*r+A*A}function p_(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t}function m_(t,e){return t[0]=1/e[0],t[1]=1/e[1],t[2]=1/e[2],t}function bh(t,e){var r=e[0],A=e[1],i=e[2],a=r*r+A*A+i*i;return a>0&&(a=1/Math.sqrt(a)),t[0]=e[0]*a,t[1]=e[1]*a,t[2]=e[2]*a,t}function E0(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]}function vs(t,e,r){var A=e[0],i=e[1],a=e[2],d=r[0],m=r[1],y=r[2];return t[0]=i*y-a*m,t[1]=a*d-A*y,t[2]=A*m-i*d,t}function g_(t,e,r,A){var i=e[0],a=e[1],d=e[2];return t[0]=i+A*(r[0]-i),t[1]=a+A*(r[1]-a),t[2]=d+A*(r[2]-d),t}function y_(t,e,r,A,i,a){var d=a*a,m=d*(2*a-3)+1,y=d*(a-2)+a,_=d*(a-1),E=d*(3-2*a);return t[0]=e[0]*m+r[0]*y+A[0]*_+i[0]*E,t[1]=e[1]*m+r[1]*y+A[1]*_+i[1]*E,t[2]=e[2]*m+r[2]*y+A[2]*_+i[2]*E,t}function T_(t,e,r,A,i,a){var d=1-a,m=d*d,y=a*a,_=m*d,E=3*a*m,x=3*y*d,v=y*a;return t[0]=e[0]*_+r[0]*E+A[0]*x+i[0]*v,t[1]=e[1]*_+r[1]*E+A[1]*x+i[1]*v,t[2]=e[2]*_+r[2]*E+A[2]*x+i[2]*v,t}function __(t,e){e=e||1;var r=Fn()*2*Math.PI,A=Fn()*2-1,i=Math.sqrt(1-A*A)*e;return t[0]=Math.cos(r)*i,t[1]=Math.sin(r)*i,t[2]=A*e,t}function b_(t,e,r){var A=e[0],i=e[1],a=e[2],d=r[3]*A+r[7]*i+r[11]*a+r[15];return d=d||1,t[0]=(r[0]*A+r[4]*i+r[8]*a+r[12])/d,t[1]=(r[1]*A+r[5]*i+r[9]*a+r[13])/d,t[2]=(r[2]*A+r[6]*i+r[10]*a+r[14])/d,t}function E_(t,e,r){var A=e[0],i=e[1],a=e[2];return t[0]=A*r[0]+i*r[3]+a*r[6],t[1]=A*r[1]+i*r[4]+a*r[7],t[2]=A*r[2]+i*r[5]+a*r[8],t}function x_(t,e,r){var A=r[0],i=r[1],a=r[2],d=r[3],m=e[0],y=e[1],_=e[2],E=i*_-a*y,x=a*m-A*_,v=A*y-i*m,F=i*v-a*x,N=a*E-A*v,U=A*x-i*E,q=d*2;return E*=q,x*=q,v*=q,F*=2,N*=2,U*=2,t[0]=m+E+F,t[1]=y+x+N,t[2]=_+v+U,t}function C_(t,e,r,A){var i=[],a=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],a[0]=i[0],a[1]=i[1]*Math.cos(A)-i[2]*Math.sin(A),a[2]=i[1]*Math.sin(A)+i[2]*Math.cos(A),t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t}function w_(t,e,r,A){var i=[],a=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],a[0]=i[2]*Math.sin(A)+i[0]*Math.cos(A),a[1]=i[1],a[2]=i[2]*Math.cos(A)-i[0]*Math.sin(A),t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t}function B_(t,e,r,A){var i=[],a=[];return i[0]=e[0]-r[0],i[1]=e[1]-r[1],i[2]=e[2]-r[2],a[0]=i[0]*Math.cos(A)-i[1]*Math.sin(A),a[1]=i[0]*Math.sin(A)+i[1]*Math.cos(A),a[2]=i[2],t[0]=a[0]+r[0],t[1]=a[1]+r[1],t[2]=a[2]+r[2],t}function v_(t,e){var r=t[0],A=t[1],i=t[2],a=e[0],d=e[1],m=e[2],E=Math.sqrt(r*r+A*A+i*i)*Math.sqrt(a*a+d*d+m*m),x=E&&E0(t,e)/E;return Math.acos(Math.min(Math.max(x,-1),1))}function M_(t){return t[0]=0,t[1]=0,t[2]=0,t}function I_(t){return`vec3(`+t[0]+`, `+t[1]+`, `+t[2]+`)`}function S_(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]}function F_(t,e){var r=t[0],A=t[1],i=t[2],a=e[0],d=e[1],m=e[2];return Math.abs(r-a)<=Nt*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(A-d)<=Nt*Math.max(1,Math.abs(A),Math.abs(d))&&Math.abs(i-m)<=Nt*Math.max(1,Math.abs(i),Math.abs(m))}var L_=ph;var R_=mh;var P_=gh;var D_=yh;var N_=Th;var Eh=dh;var O_=_h;var G_=(function(){var t=b0();return function(e,r,A,i,a,d){var m,y;for(r||(r=3),A||(A=0),i?y=Math.min(i*r+A,e.length):y=e.length,m=A;m<y;m+=r)t[0]=e[m],t[1]=e[m+1],t[2]=e[m+2],a(t,t,d),e[m]=t[0],e[m+1]=t[1],e[m+2]=t[2];return e}})();function k_(){var t=new dt(4);return dt!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t}function U_(t){var e=new dt(4);return e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e}function H_(t,e,r,A){var i=new dt(4);return i[0]=t,i[1]=e,i[2]=r,i[3]=A,i}function V_(t,e){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t}function j_(t,e,r,A,i){return t[0]=e,t[1]=r,t[2]=A,t[3]=i,t}function Q_(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t[2]=e[2]+r[2],t[3]=e[3]+r[3],t}function z_(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t[2]=e[2]*r,t[3]=e[3]*r,t}function J_(t){var e=t[0],r=t[1],A=t[2],i=t[3];return Math.hypot(e,r,A,i)}function q_(t){var e=t[0],r=t[1],A=t[2],i=t[3];return e*e+r*r+A*A+i*i}function K_(t,e){var r=e[0],A=e[1],i=e[2],a=e[3],d=r*r+A*A+i*i+a*a;return d>0&&(d=1/Math.sqrt(d)),t[0]=r*d,t[1]=A*d,t[2]=i*d,t[3]=a*d,t}function X_(t,e){return t[0]*e[0]+t[1]*e[1]+t[2]*e[2]+t[3]*e[3]}function Y_(t,e,r,A){var i=e[0],a=e[1],d=e[2],m=e[3];return t[0]=i+A*(r[0]-i),t[1]=a+A*(r[1]-a),t[2]=d+A*(r[2]-d),t[3]=m+A*(r[3]-m),t}function W_(t,e){return t[0]===e[0]&&t[1]===e[1]&&t[2]===e[2]&&t[3]===e[3]}function Z_(t,e){var r=t[0],A=t[1],i=t[2],a=t[3],d=e[0],m=e[1],y=e[2],_=e[3];return Math.abs(r-d)<=Nt*Math.max(1,Math.abs(r),Math.abs(d))&&Math.abs(A-m)<=Nt*Math.max(1,Math.abs(A),Math.abs(m))&&Math.abs(i-y)<=Nt*Math.max(1,Math.abs(i),Math.abs(y))&&Math.abs(a-_)<=Nt*Math.max(1,Math.abs(a),Math.abs(_))}(function(){var t=k_();return function(e,r,A,i,a,d){var m,y;for(r||(r=4),A||(A=0),i?y=Math.min(i*r+A,e.length):y=e.length,m=A;m<y;m+=r)t[0]=e[m],t[1]=e[m+1],t[2]=e[m+2],t[3]=e[m+3],a(t,t,d),e[m]=t[0],e[m+1]=t[1],e[m+2]=t[2],e[m+3]=t[3];return e}})();function h0(){var t=new dt(4);return dt!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function $_(t){return t[0]=0,t[1]=0,t[2]=0,t[3]=1,t}function xh(t,e,r){r=r*.5;var A=Math.sin(r);return t[0]=A*e[0],t[1]=A*e[1],t[2]=A*e[2],t[3]=Math.cos(r),t}function eb(t,e){var r=Math.acos(e[3])*2,A=Math.sin(r/2);return A>Nt?(t[0]=e[0]/A,t[1]=e[1]/A,t[2]=e[2]/A):(t[0]=1,t[1]=0,t[2]=0),r}function tb(t,e){var r=Ih(t,e);return Math.acos(2*r*r-1)}function Ch(t,e,r){var A=e[0],i=e[1],a=e[2],d=e[3],m=r[0],y=r[1],_=r[2],E=r[3];return t[0]=A*E+d*m+i*_-a*y,t[1]=i*E+d*y+a*m-A*_,t[2]=a*E+d*_+A*y-i*m,t[3]=d*E-A*m-i*y-a*_,t}function rb(t,e,r){r*=.5;var A=e[0],i=e[1],a=e[2],d=e[3],m=Math.sin(r),y=Math.cos(r);return t[0]=A*y+d*m,t[1]=i*y+a*m,t[2]=a*y-i*m,t[3]=d*y-A*m,t}function nb(t,e,r){r*=.5;var A=e[0],i=e[1],a=e[2],d=e[3],m=Math.sin(r),y=Math.cos(r);return t[0]=A*y-a*m,t[1]=i*y+d*m,t[2]=a*y+A*m,t[3]=d*y-i*m,t}function Ab(t,e,r){r*=.5;var A=e[0],i=e[1],a=e[2],d=e[3],m=Math.sin(r),y=Math.cos(r);return t[0]=A*y+i*m,t[1]=i*y-A*m,t[2]=a*y+d*m,t[3]=d*y-a*m,t}function ib(t,e){var r=e[0],A=e[1],i=e[2];return t[0]=r,t[1]=A,t[2]=i,t[3]=Math.sqrt(Math.abs(1-r*r-A*A-i*i)),t}function wh(t,e){var r=e[0],A=e[1],i=e[2],a=e[3],d=Math.sqrt(r*r+A*A+i*i),m=Math.exp(a),y=d>0?m*Math.sin(d)/d:0;return t[0]=r*y,t[1]=A*y,t[2]=i*y,t[3]=m*Math.cos(d),t}function Bh(t,e){var r=e[0],A=e[1],i=e[2],a=e[3],d=Math.sqrt(r*r+A*A+i*i),m=d>0?Math.atan2(d,a)/d:0;return t[0]=r*m,t[1]=A*m,t[2]=i*m,t[3]=.5*Math.log(r*r+A*A+i*i+a*a),t}function sb(t,e,r){return Bh(t,e),Mh(t,t,r),wh(t,t),t}function Ms(t,e,r,A){var i=e[0],a=e[1],d=e[2],m=e[3],y=r[0],_=r[1],E=r[2],x=r[3],v,F,N,U,q;return F=i*y+a*_+d*E+m*x,F<0&&(F=-F,y=-y,_=-_,E=-E,x=-x),1-F>Nt?(v=Math.acos(F),N=Math.sin(v),U=Math.sin((1-A)*v)/N,q=Math.sin(A*v)/N):(U=1-A,q=A),t[0]=U*i+q*y,t[1]=U*a+q*_,t[2]=U*d+q*E,t[3]=U*m+q*x,t}function ob(t){var e=Fn(),r=Fn(),A=Fn(),i=Math.sqrt(1-e),a=Math.sqrt(e);return t[0]=i*Math.sin(2*Math.PI*r),t[1]=i*Math.cos(2*Math.PI*r),t[2]=a*Math.sin(2*Math.PI*A),t[3]=a*Math.cos(2*Math.PI*A),t}function ab(t,e){var r=e[0],A=e[1],i=e[2],a=e[3],d=r*r+A*A+i*i+a*a,m=d?1/d:0;return t[0]=-r*m,t[1]=-A*m,t[2]=-i*m,t[3]=a*m,t}function cb(t,e){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=e[3],t}function vh(t,e){var r=e[0]+e[4]+e[8],A;if(r>0)A=Math.sqrt(r+1),t[3]=.5*A,A=.5/A,t[0]=(e[5]-e[7])*A,t[1]=(e[6]-e[2])*A,t[2]=(e[1]-e[3])*A;else{var i=0;e[4]>e[0]&&(i=1),e[8]>e[i*3+i]&&(i=2);var a=(i+1)%3,d=(i+2)%3;A=Math.sqrt(e[i*3+i]-e[a*3+a]-e[d*3+d]+1),t[i]=.5*A,A=.5/A,t[3]=(e[a*3+d]-e[d*3+a])*A,t[a]=(e[a*3+i]+e[i*3+a])*A,t[d]=(e[d*3+i]+e[i*3+d])*A}return t}function lb(t,e,r,A){var i=.5*Math.PI/180;e*=i,r*=i,A*=i;var a=Math.sin(e),d=Math.cos(e),m=Math.sin(r),y=Math.cos(r),_=Math.sin(A),E=Math.cos(A);return t[0]=a*y*E-d*m*_,t[1]=d*m*E+a*y*_,t[2]=d*y*_-a*m*E,t[3]=d*y*E+a*m*_,t}function ub(t){return`quat(`+t[0]+`, `+t[1]+`, `+t[2]+`, `+t[3]+`)`}var fb=U_;var hb=H_;var db=V_;var pb=j_;var mb=Q_;var gb=Ch;var Mh=z_;var Ih=X_;var yb=Y_;var Sh=J_;var Tb=Sh;var Fh=q_;var _b=Fh;var x0=K_;var bb=W_;var Eb=Z_;var xb=(function(){var t=b0(),e=f0(1,0,0),r=f0(0,1,0);return function(A,i,a){var d=E0(i,a);return d<-.999999?(vs(t,e,i),Eh(t)<1e-6&&vs(t,r,i),bh(t,t),xh(A,t,Math.PI),A):d>.999999?(A[0]=0,A[1]=0,A[2]=0,A[3]=1,A):(vs(t,i,a),A[0]=t[0],A[1]=t[1],A[2]=t[2],A[3]=1+d,x0(A,A))}})();var Cb=(function(){var t=h0(),e=h0();return function(r,A,i,a,d,m){return Ms(t,A,d,m),Ms(e,i,a,m),Ms(r,t,e,2*m*(1-m)),r}})();var wb=(function(){var t=n_();return function(e,r,A,i){return t[0]=A[0],t[3]=A[1],t[6]=A[2],t[1]=i[0],t[4]=i[1],t[7]=i[2],t[2]=-r[0],t[5]=-r[1],t[8]=-r[2],x0(e,vh(e,t))}})();var Le={};mi(Le,{add:()=>Sb,angle:()=>Yb,ceil:()=>Fb,clone:()=>Bb,copy:()=>Mb,create:()=>Lh,cross:()=>Vb,dist:()=>iE,distance:()=>Nh,div:()=>AE,divide:()=>Dh,dot:()=>Hb,equals:()=>eE,exactEquals:()=>$b,floor:()=>Lb,forEach:()=>aE,fromValues:()=>vb,inverse:()=>kb,len:()=>tE,length:()=>Gh,lerp:()=>jb,max:()=>Pb,min:()=>Rb,mul:()=>nE,multiply:()=>Ph,negate:()=>Gb,normalize:()=>Ub,random:()=>Qb,rotate:()=>Xb,round:()=>Db,scale:()=>Nb,scaleAndAdd:()=>Ob,set:()=>Ib,sqrDist:()=>sE,sqrLen:()=>oE,squaredDistance:()=>Oh,squaredLength:()=>kh,str:()=>Zb,sub:()=>rE,subtract:()=>Rh,transformMat2:()=>zb,transformMat2d:()=>Jb,transformMat3:()=>qb,transformMat4:()=>Kb,zero:()=>Wb});function Lh(){var t=new dt(2);return dt!=Float32Array&&(t[0]=0,t[1]=0),t}function Bb(t){var e=new dt(2);return e[0]=t[0],e[1]=t[1],e}function vb(t,e){var r=new dt(2);return r[0]=t,r[1]=e,r}function Mb(t,e){return t[0]=e[0],t[1]=e[1],t}function Ib(t,e,r){return t[0]=e,t[1]=r,t}function Sb(t,e,r){return t[0]=e[0]+r[0],t[1]=e[1]+r[1],t}function Rh(t,e,r){return t[0]=e[0]-r[0],t[1]=e[1]-r[1],t}function Ph(t,e,r){return t[0]=e[0]*r[0],t[1]=e[1]*r[1],t}function Dh(t,e,r){return t[0]=e[0]/r[0],t[1]=e[1]/r[1],t}function Fb(t,e){return t[0]=Math.ceil(e[0]),t[1]=Math.ceil(e[1]),t}function Lb(t,e){return t[0]=Math.floor(e[0]),t[1]=Math.floor(e[1]),t}function Rb(t,e,r){return t[0]=Math.min(e[0],r[0]),t[1]=Math.min(e[1],r[1]),t}function Pb(t,e,r){return t[0]=Math.max(e[0],r[0]),t[1]=Math.max(e[1],r[1]),t}function Db(t,e){return t[0]=Math.round(e[0]),t[1]=Math.round(e[1]),t}function Nb(t,e,r){return t[0]=e[0]*r,t[1]=e[1]*r,t}function Ob(t,e,r,A){return t[0]=e[0]+r[0]*A,t[1]=e[1]+r[1]*A,t}function Nh(t,e){var r=e[0]-t[0],A=e[1]-t[1];return Math.hypot(r,A)}function Oh(t,e){var r=e[0]-t[0],A=e[1]-t[1];return r*r+A*A}function Gh(t){var e=t[0],r=t[1];return Math.hypot(e,r)}function kh(t){var e=t[0],r=t[1];return e*e+r*r}function Gb(t,e){return t[0]=-e[0],t[1]=-e[1],t}function kb(t,e){return t[0]=1/e[0],t[1]=1/e[1],t}function Ub(t,e){var r=e[0],A=e[1],i=r*r+A*A;return i>0&&(i=1/Math.sqrt(i)),t[0]=e[0]*i,t[1]=e[1]*i,t}function Hb(t,e){return t[0]*e[0]+t[1]*e[1]}function Vb(t,e,r){var A=e[0]*r[1]-e[1]*r[0];return t[0]=t[1]=0,t[2]=A,t}function jb(t,e,r,A){var i=e[0],a=e[1];return t[0]=i+A*(r[0]-i),t[1]=a+A*(r[1]-a),t}function Qb(t,e){e=e||1;var r=Fn()*2*Math.PI;return t[0]=Math.cos(r)*e,t[1]=Math.sin(r)*e,t}function zb(t,e,r){var A=e[0],i=e[1];return t[0]=r[0]*A+r[2]*i,t[1]=r[1]*A+r[3]*i,t}function Jb(t,e,r){var A=e[0],i=e[1];return t[0]=r[0]*A+r[2]*i+r[4],t[1]=r[1]*A+r[3]*i+r[5],t}function qb(t,e,r){var A=e[0],i=e[1];return t[0]=r[0]*A+r[3]*i+r[6],t[1]=r[1]*A+r[4]*i+r[7],t}function Kb(t,e,r){var A=e[0],i=e[1];return t[0]=r[0]*A+r[4]*i+r[12],t[1]=r[1]*A+r[5]*i+r[13],t}function Xb(t,e,r,A){var i=e[0]-r[0],a=e[1]-r[1],d=Math.sin(A),m=Math.cos(A);return t[0]=i*m-a*d+r[0],t[1]=i*d+a*m+r[1],t}function Yb(t,e){var r=t[0],A=t[1],i=e[0],a=e[1],d=Math.sqrt(r*r+A*A)*Math.sqrt(i*i+a*a),m=d&&(r*i+A*a)/d;return Math.acos(Math.min(Math.max(m,-1),1))}function Wb(t){return t[0]=0,t[1]=0,t}function Zb(t){return`vec2(`+t[0]+`, `+t[1]+`)`}function $b(t,e){return t[0]===e[0]&&t[1]===e[1]}function eE(t,e){var r=t[0],A=t[1],i=e[0],a=e[1];return Math.abs(r-i)<=Nt*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(A-a)<=Nt*Math.max(1,Math.abs(A),Math.abs(a))}var tE=Gh;var rE=Rh;var nE=Ph;var AE=Dh;var iE=Nh;var sE=Oh;var oE=kh;var aE=(function(){var t=Lh();return function(e,r,A,i,a,d){var m,y;for(r||(r=2),A||(A=0),i?y=Math.min(i*r+A,e.length):y=e.length,m=A;m<y;m+=r)t[0]=e[m],t[1]=e[m+1],a(t,t,d),e[m]=t[0],e[m+1]=t[1];return e}})();var Rs=(1+Math.sqrt(5))/2;2*Math.PI;var Is=2*Math.PI/5;var Gr=Math.PI/5;var zf=Math.PI/10;var cE=2*Math.atan(Rs);var d0=Math.PI-cE;-.5*Math.PI+Math.acos(-1/Math.sqrt(3-Rs));var Ps=(Math.sqrt(5)-1)/2;var lE=3-Math.sqrt(5);var uE=Math.sqrt(3-Rs);Math.sqrt(3)*uE/Rs;var Ss=6371007.2;4*Math.PI*Ss*Ss;Ot.setMatrixArrayType(Float64Array);var C0=class p0{constructor(e){this.vertices=e,this.isWindingCorrect()||this.vertices.reverse()}getArea(){let e=0,r=this.vertices.length;for(let A=0;A<r;A++){let i=(A+1)%r;e+=(this.vertices[i][0]-this.vertices[A][0])*(this.vertices[i][1]+this.vertices[A][1])}return e}isWindingCorrect(){return this.getArea()>=0}getVertices(){return this.vertices}scale(e){for(let r of this.vertices)Le.scale(r,r,e);return this}rotate180(){for(let e of this.vertices)Le.negate(e,e);return this}reflectY(){for(let e of this.vertices)e[1]=-e[1];return this.vertices.reverse(),this}translate(e){for(let r of this.vertices)Le.add(r,r,e);return this}transform(e){for(let r of this.vertices)Le.transformMat2(r,r,e);return this}transform2d(e){for(let r of this.vertices)Le.transformMat2d(r,r,e);return this}clone(){return new p0(this.vertices.map(r=>Le.clone(r)))}getCenter(){let e=this.vertices.length;return this.vertices.reduce((A,i)=>[A[0]+i[0]/e,A[1]+i[1]/e],[0,0])}containsPoint(e){if(!this.isWindingCorrect())throw new Error(`Pentagon is not counter-clockwise`);let r=this.vertices.length,A=1;for(let i=0;i<r;i++){let a=this.vertices[i],d=this.vertices[(i+1)%r],m=a[0]-d[0],y=a[1]-d[1],_=e[0]-a[0],E=e[1]-a[1],x=m*E-y*_;if(x<0){let v=Math.sqrt(_*_+E*E);A=Math.min(A,x/v)}}return A}splitEdges(e){if(e<=1)return this;let r=[],A=this.vertices.length;for(let i=0;i<A;i++){let a=this.vertices[i],d=this.vertices[(i+1)%A];r.push(Le.clone(a));for(let m=1;m<e;m++){let y=m/e,_=Le.create();Le.lerp(_,a,d,y),r.push(_)}}return new p0(r)}};Ot.setMatrixArrayType(Float64Array);var Uh=[0,0];var Hh=[0,1];var Rn=[.7885966681787006,1.6149108024237764];var Vh=[1.6171013659387945,1.054928690397459];var jh=[Math.cos(zf),Math.sin(zf)];var fE=2*Le.length(Rn)*Math.cos(Gr);var hE=Gr-Math.atan2(Rn[1],Rn[0]);var dE=2*Ps/fE;[Uh,Hh,Rn,Vh,jh].forEach(t=>{Le.scale(t,t,dE),Le.rotate(t,t,[0,0],hE)});var pE=new C0([Uh,Hh,Rn,Vh,jh]);var Qh=Math.atan2(Rn[1],Rn[0])-Gr;var mE=[0,0];var Fs=Ps/Math.cos(Gr);var Jf=Qh+Gr;var Ls=[Fs*Math.cos(Jf),Fs*Math.sin(Jf)];var qf=Qh-Gr;var pi=[Fs*Math.cos(qf),Fs*Math.sin(qf)];var zh=new C0([mE,Ls,pi]);var Jh=Ln.fromValues(Ls[0],Ls[1],pi[0],pi[1]);Ln.invert(Ln.create(),Jh);var gE=new Float64Array([-.0022392098386786394,21308606513250217e-22,-2.559257686421274e-9,33701965267802837e-28,-4667545312611249e-30,667492870384816e-32]);var yE=new Float64Array([.0022392089963541657,28831978048607556e-22,5.08622073997266e-9,102018123778161e-25,21912872306767718e-30,49284235482523806e-33]);var TE=class{applyCoefficients(t,e){let r=Math.sin(t),A=Math.cos(t),i=2*(A-r)*(A+r),a,d;return a=i*e[5]+e[4],d=i*a+e[3],a=i*d-a+e[2],d=i*a-d+e[1],a=i*d-a+e[0],t+2*r*A*a}forward(t){return this.applyCoefficients(t,gE)}inverse(t){return this.applyCoefficients(t,yE)}};Ot.setMatrixArrayType(Float64Array);var qh=new TE;function Kf(t){return t*(Math.PI/180)}function Xf(t){return t*(180/Math.PI)}function Yf(t){return[Le.length(t),Math.atan2(t[1],t[0])]}function _E([t,e]){return[t*Math.cos(e),t*Math.sin(e)]}function bE(t,[e,r,A]){let i=[e[0]-A[0],e[1]-A[1]],a=[A[0]-r[0],A[1]-r[1]],d=[t[0]-A[0],t[1]-A[1]],m=a[0]*i[1]-a[1]*i[0],y=(a[0]*d[1]-a[1]*d[0])/m,_=(i[0]*d[1]-i[1]*d[0])/m;return[y,_,1-(y+_)]}function EE(t,[e,r,A]){return[t[0]*e[0]+t[1]*r[0]+t[2]*A[0],t[0]*e[1]+t[1]*r[1]+t[2]*A[1]]}function m0(t){let e=Math.atan2(t[1],t[0]),r=Math.sqrt(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);return[e,Math.acos(t[2]/r)]}function uA([t,e]){let r=Math.sin(e);return[r*Math.cos(t),r*Math.sin(t),Math.cos(e)]}var Kh=93;function xE([t,e]){let r=Kf(t+Kh),A=Kf(e),i=qh.forward(A);return[r,Math.PI/2-i]}function Xh(t){return((t+180)%360+360)%360-180}function Yh([t,e]){let r=Xh(Xf(t)-Kh),A=Math.PI/2-e;return[r,Xf(qh.inverse(A))]}function CE(t){let e=t.map(a=>uA(xE(a))),r=de.create();for(let a of e)de.add(r,r,a);de.normalize(r,r);let[A,i]=Yh(m0(r));return(i>89.99||i<-89.99)&&(A=t[0][0]),A=Xh(A),t.map(a=>{let[d,m]=a;for(;d-A>180;)d=d-360;for(;d-A<-180;)d=d+360;return[d,m]})}Ot.setMatrixArrayType(Float64Array);var Ds=Math.sqrt(5);var Ns=Math.sqrt(.2);var Wh=Math.sqrt((1-Ns)/2);var Zh=Math.sqrt((1+Ns)/2);var Ts=.5;var Wf=Math.sqrt((2.5-Ds)/10);var Zf=Math.sqrt((2.5+Ds)/10);var $f=Math.sqrt((1+Ns)/8);var eh=Math.sqrt((1-Ns)/8);var th=Math.sqrt((3-Ds)/8);var rh=Math.sqrt((3+Ds)/8);var _s=[[0,0],[Wh,0],[Wf,Ts],[-$f,th],[-$f,-th],[Wf,-Ts],[-Zh,0],[-eh,-rh],[Zf,-Ts],[Zf,Ts],[-eh,rh],[0,0]].map(([t,e])=>[-e,t]).map((t,e)=>e===0?[0,0,0,1]:e===11?[0,-1,0,0]:[...t,0,e<6?Zh:Wh]);Ot.setMatrixArrayType(Float64Array);var $h=[`vu`,`uw`,`vw`,`vw`,`vw`];var hi=[`wu`,`uw`,`vw`,`vu`,`uw`];var a0=[`wu`,`uv`,`wv`,`wu`,`uw`];var bs=[`vu`,`uv`,`wv`,`wu`,`uw`];var vE=[$h,bs,a0,hi,a0,bs,a0,hi,hi,hi,bs,bs];var ME=[4,2,3,2,0,4,3,2,2,0,3,0];var nh=[0,1,2,4,3,5,7,8,6,11,10,9];var Sr=[];function IE(){Es([0,0],0,_s[0]);for(let t=0;t<5;t++){let e=t*Is,r=e+Gr;Es([e,d0],Gr,_s[t+1]),Es([r,Math.PI-d0],Gr,_s[(t+3)%5+6])}Es([0,Math.PI],0,_s[11])}var aA=0;function Es(t,e,r){if(aA>11)throw new Error(`Too many origins: ${aA}`);let A=u0.create();u0.conjugate(A,r);let i={id:aA,axis:t,quat:r,inverseQuat:A,angle:e,orientation:vE[aA],firstQuintant:ME[aA]};Sr.push(i),aA++}IE();Sr.sort((t,e)=>nh.indexOf(t.id)-nh.indexOf(e.id));Sr.forEach((t,e)=>t.id=e);function SE(t,e){let r=e.orientation,A=r===$h||r===hi?-1:1,i=(t-e.firstQuintant+5)%5,a=r[i];return{quintant:(e.firstQuintant+A*i+5)%5,orientation:a}}var FE=class{forward([t,e]){return[Math.tan(e),t]}inverse([t,e]){return[e,Math.atan(t)]}};var cA=de.create();var di=de.create();var Ah=de.create();var ih=de.create();function c0(t,e){de.lerp(cA,t,e,.5),de.normalize(cA,cA),de.cross(cA,t,cA);let r=de.length(cA);if(r<1e-8){let A=de.subtract(de.create(),t,e);return .5*de.length(A)}return r}function LE(t,e,r){return de.cross(di,e,r),de.dot(t,di)}function RE(t,e,r,A,i){de.cross(di,A,i);let a=de.dot(e,di),d=de.dot(r,di);return de.scale(Ah,e,d),de.scale(ih,r,a),de.sub(t,ih,Ah)}function g0(t,e,r,A){let i=de.angle(e,r);if(i<1e-12)return de.lerp(t,e,r,A);let a=Math.sin((1-A)*i)/Math.sin(i),d=Math.sin(A*i)/Math.sin(i),m=de.scale(de.create(),e,a),y=de.scale(de.create(),r,d);return de.add(t,m,y)}Ot.setMatrixArrayType(Float64Array);var xs=de.create();var Cs=de.create();var ws=de.create();var lA=de.create();var PE=class{constructor(t){this._area=null,this.vertices=t,Object.freeze(this.vertices)}getBoundary(t=1,e=!0){let r=[],A=this.vertices.length;for(let i=0;i<A*t;i++){let a=i/t;r.push(this.slerp(a))}return e&&r.push(r[0]),r}slerp(t){let e=this.vertices.length,r=t%1,A=Math.floor(t%e),i=(A+1)%e;return g0(de.create(),this.vertices[A],this.vertices[i],r)}getTransformedVertices(t){let e=this.vertices.length,r=Math.floor(t%e),A=(r+1)%e,i=(r+e-1)%e,a=de.clone(this.vertices[r]),d=de.clone(this.vertices[A]),m=de.clone(this.vertices[i]);return de.sub(d,d,a),de.sub(m,m,a),[a,d,m]}containsPoint(t){let e=this.vertices.length,r=Infinity;for(let A=0;A<e;A++){let[i,a,d]=this.getTransformedVertices(A),m=de.sub(de.create(),t,i);de.normalize(m,m),de.normalize(a,a),de.normalize(d,d);let y=de.cross(de.create(),a,m),_=de.cross(de.create(),m,d),E=de.dot(i,y),x=de.dot(i,_);r=Math.min(r,E,x)}return r}getTriangleArea(t,e,r){de.lerp(xs,e,r,.5),de.lerp(Cs,r,t,.5),de.lerp(ws,t,e,.5),de.normalize(xs,xs),de.normalize(Cs,Cs),de.normalize(ws,ws);let A=LE(xs,Cs,ws),i=Math.max(-1,Math.min(1,A));return Math.abs(i)<1e-8?2*i:Math.asin(i)*2}getArea(){return this._area===null&&(this._area=this._getArea()),this._area}_getArea(){if(this.vertices.length<3)return 0;if(this.vertices.length===3)return this._area=this.getTriangleArea(this.vertices[0],this.vertices[1],this.vertices[2]),this._area;de.set(lA,0,0,0);for(let e of this.vertices)de.add(lA,lA,e);de.normalize(lA,lA);let t=0;for(let e=0;e<this.vertices.length;e++){let r=this.vertices[e],A=this.vertices[(e+1)%this.vertices.length],i=this.getTriangleArea(lA,r,A);isNaN(i)||(t+=i)}return this._area=t,this._area}isWindingCorrect(){if(!(this.getArea()>0))debugger}};Ot.setMatrixArrayType(Float64Array);var Bs=class extends PE{constructor(t){if(t.length!==3)throw new Error(`SphericalTriangleShape requires exactly 3 vertices`);super(t)}};Ot.setMatrixArrayType(Float64Array);var DE=class{forward(t,e,r){let[A,i,a]=e,d=new Bs([A,i,a]),m=de.subtract(de.create(),t,A);de.normalize(m,m);let y=RE(de.create(),A,m,i,a);de.normalize(y,y);let _=c0(A,t)/c0(A,y),x=_/d.getArea();return EE([1-_,x*new Bs([A,y,a]).getArea(),x*new Bs([A,i,y]).getArea()],r)}inverse(t,e,r){let[A,i,a]=r,d=new Bs([A,i,a]),m=bE(t,e),y=.99999999999999;if(m[0]>y)return A;if(m[1]>y)return i;if(m[2]>y)return a;let _=de.create();de.cross(_,i,a);let E=d.getArea(),x=1-m[0],F=m[2]/x*E,N=Math.sin(F),U=Math.sin(F/2),q=2*U*U,X=de.dot(A,i),Z=de.dot(i,a),he=de.dot(a,A),_e=de.length(_),Te=N*de.dot(A,_)+q*(X*Z-he),Ee=q*_e*(1+X),se=2/Math.acos(Z)*Math.atan2(Ee,Te),Y=g0(de.create(),i,a,se),k=c0(A,Y);return g0([0,0,0],A,Y,this.safeAcos(x*k)/this.safeAcos(k))}safeAcos(t){return t<.001?2*t+t*t*t/3:Math.acos(1-2*t*t)}};var or=-1;var qt=1;Ot.setMatrixArrayType(Float64Array);var NE=([t,e])=>Le.fromValues(t-e,e);Ot.setMatrixArrayType(Float64Array);var y0=Le.fromValues(1,0);var T0=Le.fromValues(0,1);var sh=Le.negate(Le.create(),y0);var oh=Le.negate(Le.create(),T0);var l0=Le.fromValues(0,0);var OE=(t,[e,r])=>{let A=l0,i=l0;switch(e===qt&&r===qt?(A=y0,i=T0):e===or&&r===qt?(A=oh,i=sh):e===qt&&r===or?(A=T0,i=y0):e===or&&r===or&&(A=sh,i=oh),t){case 0:return l0;case 1:return A;case 2:return Le.add(Le.create(),i,A);case 3:return Le.scaleAndAdd(Le.create(),i,A,2);default:throw new Error(`Invalid Quaternary value: ${t}`)}};var ah=t=>[[qt,qt],[qt,or],[qt,qt],[or,qt]][t];function ed(t){return Array.from({length:t.length},(e,r)=>t.indexOf(r))}var td=[0,1,3,4,5,6,7,2];var rd=[0,1,2,7,3,4,5,6];ed(td);ed(rd);var GE=(t,e,r,A,i)=>{if(e<=0)return;let a=t[e]||0,d=t[e-1],m=r[0]+r[1],y=!0,_=!0;if(A!==(m===0)?(y=a===1||a===2,_=a===1):(y=a<2,_=a===0),!y)return;let E=_?d:d+4,x=i[E];t[e-1]=x%4,t[e]=(a+4+Math.floor(x/4)-Math.floor(E/4))%4};Ot.setMatrixArrayType(Float64Array);var ch=Le.fromValues(-1,1);var nd=!0;var kE=(t,e,r,A=nd)=>{let i=BigInt(t),a=r===`vu`||r===`wu`||r===`vw`,d=r===`wv`||r===`vw`,m=r===`wu`||r===`uw`;a&&(i=(1n<<BigInt(2*e))-i-1n);let y=UE(i,e,d,m,A);if(m){let{offset:[_,E],flips:[x,v]}=y;y.offset=[E,_],x===or&&Le.add(y.offset,y.offset,ch),v===or&&Le.subtract(y.offset,y.offset,ch)}if(d){let{offset:[_,E],flips:x}=y,v=(1<<e)-(_+E);x[0]=-x[0],y.offset[1]=v,y.flips=x}return y};var UE=(t,e,r,A,i=nd)=>{let a=Le.create(),d=[qt,qt],m=BigInt(t),y=[];for(;m>0n||y.length<e;)y.push(Number(m%4n)),m=m>>2n;let _=A?rd:td;for(let x=y.length-1;x>=0;x--)i&&GE(y,x,d,r,_),Le.multiply(d,d,ah(y[x]));d[0]=qt,d[1]=qt;for(let x=y.length-1;x>=0;x--){Le.scale(a,a,2);let v=OE(y[x],d);Le.add(a,a,v),Le.multiply(d,d,ah(y[x]))}return{q:y[0]||0,offset:NE(a),flips:d}};var hn=.1;hn*Math.cos(45*Math.PI/180),hn*Math.sin(45*Math.PI/180),hn*Math.cos(113*Math.PI/180),hn*Math.sin(113*Math.PI/180),hn*Math.cos(293*Math.PI/180),hn*Math.sin(293*Math.PI/180),hn*Math.cos(225*Math.PI/180),hn*Math.sin(225*Math.PI/180);Ot.setMatrixArrayType(Float64Array);var HE=!1;var VE=Le.clone(pi);var jE=Le.negate(Le.create(),pi);var w0=[0,1,2,3,4].map(t=>{let e=Ln.create();return Ln.fromRotation(e,Is*t),e});var lh=Le.create();function QE(t,e,r){let A=(HE?zh:pE).clone();Le.transformMat2(lh,r.offset,Jh),r.flips[0]===qt&&r.flips[1]===or&&A.rotate180();let{q:i}=r,a=r.flips[0]+r.flips[1];return((a===-2||a===2)&&i>1||a===0&&(i===0||i===3))&&A.reflectY(),r.flips[0]===or&&r.flips[1]===or?A.rotate180():r.flips[0]===or?A.translate(jE):r.flips[1]===or&&A.translate(VE),A.translate(lh),A.scale(1/2**t),A.transform(w0[e]),A}function Ad(t){let e=zh.clone();return e.transform(w0[t]),e}function zE(){let t=[];for(let e of w0)t.push(Le.transformMat2(Le.create(),Ls,e));return t.reverse(),new C0(t)}Ot.setMatrixArrayType(Float64Array);var JE=class{constructor(){if(this.vertices=[],this.invocations=0,this.addFaceCenters(),this.addVertices(),this.addMidpoints(),this.vertices.length!==62)throw new Error(`Failed to construct CRS: vertices length is not 62`);Object.freeze(this.vertices)}getVertex(t){this.invocations++,this.invocations===1e4&&console.warn(`Too many CRS invocations, results should be cached`);for(let e of this.vertices)if(de.distance(t,e)<1e-5)return e;throw new Error(`Failed to find vertex in CRS`)}addFaceCenters(){Sr.forEach(t=>this.add(uA(t.axis)))}addVertices(){let t=Math.atan(lE);for(let e of Sr)for(let r=0;r<5;r++){let i=uA([(2*r+1)*Math.PI/5+e.angle,t]);de.transformQuat(i,i,e.quat),this.add(i)}}addMidpoints(){let t=Math.atan(Ps);for(let e of Sr)for(let r=0;r<5;r++){let i=uA([2*r*Math.PI/5+e.angle,t]);de.transformQuat(i,i,e.quat),this.add(i)}}add(t){let e=de.normalize(de.create(),t);return this.vertices.find(A=>de.distance(e,A)<1e-5)?!1:(this.vertices.push(e),!0)}};Ot.setMatrixArrayType(Float64Array);var qE=new JE;var KE=class{constructor(){this.faceTriangles=[],this.sphericalTriangles=[],this.polyhedral=new DE,this.gnomonic=new FE}forward(t,e){let r=Sr[e],A=uA(t),i=de.create();de.transformQuat(i,A,r.inverseQuat);let a=m0(i),d=this.gnomonic.forward(a);d[1]=d[1]-r.angle;let m=this.getFaceTriangleIndex(d),y=this.shouldReflect(d),_=this.getFaceTriangle(m,y,!1),E=this.getSphericalTriangle(m,e,y);return this.polyhedral.forward(A,E,_)}inverse(t,e){let r=Yf(t),A=this.getFaceTriangleIndex(r),i=this.shouldReflect(r),a=this.getFaceTriangle(A,i,!1),d=this.getSphericalTriangle(A,e,i);return m0(this.polyhedral.inverse(t,a,d))}shouldReflect(t){let[e,r]=t;return _E([e,this.normalizeGamma(r)])[0]>Ps}getFaceTriangleIndex([t,e]){return(Math.floor(e/Gr)+10)%10}getFaceTriangle(t,e=!1,r=!1){let A=t;return e&&(A+=r?20:10),this.faceTriangles[A]?this.faceTriangles[A]:(this.faceTriangles[A]=e?this._getReflectedFaceTriangle(t,r):this._getFaceTriangle(t),Object.freeze(this.faceTriangles[A]),this.faceTriangles[A])}_getFaceTriangle(t){let[r,A,i]=Ad(Math.floor((t+1)/2)%5).getVertices(),a=Le.create();return Le.lerp(a,A,i,.5),t%2===0?[r,a,A]:[r,i,a]}_getReflectedFaceTriangle(t,e=!1){let[r,A,i]=this._getFaceTriangle(t).map(m=>Le.clone(m)),a=t%2===0;Le.negate(r,r);let d=a?A:i;return Le.scaleAndAdd(r,r,d,e?1+1/Math.cos(d0):2),[r,i,A]}getSphericalTriangle(t,e,r=!1){let A=10*e+t;return r&&(A+=120),this.sphericalTriangles[A]?this.sphericalTriangles[A]:(this.sphericalTriangles[A]=this._getSphericalTriangle(t,e,r),Object.freeze(this.sphericalTriangles[A]),this.sphericalTriangles[A])}_getSphericalTriangle(t,e,r=!1){let A=Sr[e];return this.getFaceTriangle(t,r,!0).map(d=>{let[m,y]=Yf(d),_=[m,y+A.angle],E=uA(this.gnomonic.inverse(_));return de.transformQuat(E,E,A.quat),qE.getVertex(E)})}normalizeGamma(t){let e=t/Is;return(e-Math.round(e))*Is}};var fA=2;var _0=30;var uh=58n;var XE=0n;function YE(t){if(t===0n)return-1;if(t&1n||(t&7n)===4n||(t&31n)===16n)return _0;let e=_0-1,r=t>>1n;if(r===0n)return-1;let A=Number(r&4294967295n),i;for(A===0?(r>>=32n,e-=16,i=Number(r)):i=A,!(i&65535)&&(i>>=16,e-=8),e>=6&&!(i&255)&&(i>>=8,e-=4),e>=4&&!(i&15)&&(i>>=4,e-=2);e>-1&&(i&1)===0;)e-=1,i=i>>(e<fA?1:2);return e}function WE(t){let e=YE(t);if(e===-1)return{origin:Sr[0],segment:0,S:0n,resolution:e};let r=uh,A=0;if(e===_0){let x=t&1n?1n:t&4n?3n:5n;r=uh+x,A=x===1n?0:x===3n?32:40}let i=Number(t>>r)+A,a,d;if(e===0)a=Sr[i],d=0;else a=Sr[Math.floor(i/5)],d=(i+a.firstQuintant)%5;if(!a)throw new Error(`Could not parse origin: ${i}`);if(e<fA)return{origin:a,segment:d,S:0n,resolution:e};let m=e-fA+1,y=BigInt(2*m),E=(t&(1n<<r)-1n)>>r-y;return{origin:a,segment:d,S:E,resolution:e}}Ot.setMatrixArrayType(Float64Array);Ln.create();var ZE=new KE;function $E({S:t,segment:e,origin:r,resolution:A}){let{quintant:i,orientation:a}=SE(e,r);if(A===fA-1)return Ad(i);if(A===fA-2)return zE();let d=A-fA+1;return QE(d,i,kE(t,d,a))}function id(t,{closedRing:e=!0,segments:r=`auto`}={closedRing:!0,segments:`auto`}){if(t===XE)return[];let{S:A,segment:i,origin:a,resolution:d}=WE(t);r===`auto`&&(r=Math.max(1,Math.pow(2,6-d)));let v=CE($E({S:A,segment:i,origin:a,resolution:d}).splitEdges(r).getVertices().map(F=>ZE.inverse(F,a.id)).map(F=>Yh(F)));return e&&v.push(v[0]),v.reverse(),v}function sd(t){return BigInt(`0x${t}`)}var od=2;var ex=od*Ss/Math.sqrt(15);var ad=new Array(31);ad[0]=od*Ss/Math.sqrt(3);for(let t=1;t<=30;t++)ad[t]=ex/(1<<t-1);Ot.setMatrixArrayType(Float64Array);var ze=(function(t){t=t||{};var e=typeof t<`u`?t:{},r={},A;for(A in e)e.hasOwnProperty(A)&&(r[A]=e[A]);var i=[],a=``;function d(J){return e.locateFile?e.locateFile(J,a):a+J}var m;typeof document<`u`&&document.currentScript&&(a=document.currentScript.src),a.indexOf(`blob:`)!==0?a=a.substr(0,a.lastIndexOf(`/`)+1):a=``,m=function(re,pe,W){var n=new XMLHttpRequest;n.open(`GET`,re,!0),n.responseType=`arraybuffer`,n.onload=function(){if(n.status==200||n.status==0&&n.response){pe(n.response);return}var Ke=Ea(re);if(Ke){pe(Ke.buffer);return}W()},n.onerror=W,n.send(null)};var y=e.print||console.log.bind(console),_=e.printErr||console.warn.bind(console);for(A in r)r.hasOwnProperty(A)&&(e[A]=r[A]);r=null,e.arguments&&(i=e.arguments);var E=0,x=function(J){E=J},v=function(){return E},F=8;function N(J,re,pe,W){switch(pe=pe||`i8`,pe.charAt(pe.length-1)===`*`&&(pe=`i32`),pe){case`i1`:ve[J>>0]=re;break;case`i8`:ve[J>>0]=re;break;case`i16`:rt[J>>1]=re;break;case`i32`:$e[J>>2]=re;break;case`i64`:ba=[re>>>0,(Xn=re,+bg(Xn)>=1?Xn>0?(Cg(+xg(Xn/4294967296),4294967295)|0)>>>0:~~+Eg((Xn-+(~~Xn>>>0))/4294967296)>>>0:0)],$e[J>>2]=ba[0],$e[J+4>>2]=ba[1];break;case`float`:Ve[J>>2]=re;break;case`double`:nt[J>>3]=re;break;default:Cn(`invalid type for setValue: `+pe)}}function U(J,re,pe){switch(re=re||`i8`,re.charAt(re.length-1)===`*`&&(re=`i32`),re){case`i1`:return ve[J>>0];case`i8`:return ve[J>>0];case`i16`:return rt[J>>1];case`i32`:return $e[J>>2];case`i64`:return $e[J>>2];case`float`:return Ve[J>>2];case`double`:return nt[J>>3];default:Cn(`invalid type for getValue: `+re)}return null}var q=!1;function X(J,re){J||Cn(`Assertion failed: `+re)}function Z(J){var re=e[`_`+J];return X(re,`Cannot call unknown function `+J+`, make sure it is exported`),re}function he(J,re,pe,W,n){var At={string:function(De){var We=0;if(De!=null&&De!==0){var Zi=(De.length<<2)+1;We=du(Zi),Y(De,We,Zi)}return We},array:function(De){var We=du(De.length);return ge(De,We),We}};function Ke(De){return re===`string`?Ee(De):re===`boolean`?!!De:De}var L=Z(J),it=[],Wt=0;if(W)for(var Mt=0;Mt<W.length;Mt++){var Ct=At[pe[Mt]];Ct?(Wt===0&&(Wt=Hg()),it[Mt]=Ct(W[Mt])):it[Mt]=W[Mt]}var pt=L.apply(null,it);return pt=Ke(pt),Wt!==0&&Ug(Wt),pt}function _e(J,re,pe,W){pe=pe||[];var n=pe.every(function(Ke){return Ke===`number`});return re!==`string`&&n&&!W?Z(J):function(){return he(J,re,pe,arguments,W)}}var be=typeof TextDecoder<`u`?new TextDecoder(`utf8`):void 0;function Te(J,re,pe){for(var W=re+pe,n=re;J[n]&&!(n>=W);)++n;if(n-re>16&&J.subarray&&be)return be.decode(J.subarray(re,n));for(var At=``;re<n;){var Ke=J[re++];if(!(Ke&128)){At+=String.fromCharCode(Ke);continue}var L=J[re++]&63;if((Ke&224)==192){At+=String.fromCharCode((Ke&31)<<6|L);continue}var it=J[re++]&63;if((Ke&240)==224?Ke=(Ke&15)<<12|L<<6|it:Ke=(Ke&7)<<18|L<<12|it<<6|J[re++]&63,Ke<65536)At+=String.fromCharCode(Ke);else{var Wt=Ke-65536;At+=String.fromCharCode(55296|Wt>>10,56320|Wt&1023)}}return At}function Ee(J,re){return J?Te(ke,J,re):``}function se(J,re,pe,W){if(!(W>0))return 0;for(var n=pe,At=pe+W-1,Ke=0;Ke<J.length;++Ke){var L=J.charCodeAt(Ke);if(L>=55296&&L<=57343){var it=J.charCodeAt(++Ke);L=65536+((L&1023)<<10)|it&1023}if(L<=127){if(pe>=At)break;re[pe++]=L}else if(L<=2047){if(pe+1>=At)break;re[pe++]=192|L>>6,re[pe++]=128|L&63}else if(L<=65535){if(pe+2>=At)break;re[pe++]=224|L>>12,re[pe++]=128|L>>6&63,re[pe++]=128|L&63}else{if(pe+3>=At)break;re[pe++]=240|L>>18,re[pe++]=128|L>>12&63,re[pe++]=128|L>>6&63,re[pe++]=128|L&63}}return re[pe]=0,pe-n}function Y(J,re,pe){return se(J,ke,re,pe)}typeof TextDecoder<`u`&&new TextDecoder(`utf-16le`);function ge(J,re){ve.set(J,re)}function Me(J,re){return J%re>0&&(J+=re-J%re),J}var Ie,ve,ke,rt,$e,Ve,nt;function Rt(J){Ie=J,e.HEAP8=ve=new Int8Array(J),e.HEAP16=rt=new Int16Array(J),e.HEAP32=$e=new Int32Array(J),e.HEAPU8=ke=new Uint8Array(J),e.HEAPU16=new Uint16Array(J),e.HEAPU32=new Uint32Array(J),e.HEAPF32=Ve=new Float32Array(J),e.HEAPF64=nt=new Float64Array(J)}var fg=5271296,iu=28384,su=e.TOTAL_MEMORY||33554432;e.buffer?Ie=e.buffer:Ie=new ArrayBuffer(su),su=Ie.byteLength,Rt(Ie),$e[iu>>2]=fg;function Yi(J){for(;J.length>0;){var re=J.shift();if(typeof re==`function`){re();continue}var pe=re.func;typeof pe==`number`?re.arg===void 0?e.dynCall_v(pe):e.dynCall_vi(pe,re.arg):pe(re.arg===void 0?null:re.arg)}}var ou=[],hg=[],dg=[],au=[];function pg(){if(e.preRun)for(typeof e.preRun==`function`&&(e.preRun=[e.preRun]);e.preRun.length;)Tg(e.preRun.shift());Yi(ou)}function mg(){Yi(hg)}function gg(){Yi(dg)}function yg(){if(e.postRun)for(typeof e.postRun==`function`&&(e.postRun=[e.postRun]);e.postRun.length;)_g(e.postRun.shift());Yi(au)}function Tg(J){ou.unshift(J)}function _g(J){au.unshift(J)}var bg=Math.abs,Eg=Math.ceil,xg=Math.floor,Cg=Math.min,xn=0,Ta=null,ZA=null;function wg(J){xn++,e.monitorRunDependencies&&e.monitorRunDependencies(xn)}function Bg(J){if(xn--,e.monitorRunDependencies&&e.monitorRunDependencies(xn),xn==0&&(Ta!==null&&(clearInterval(Ta),Ta=null),ZA)){var re=ZA;ZA=null,re()}}e.preloadedImages={},e.preloadedAudios={};var Qr=null,_a=`data:application/octet-stream;base64,`;function cu(J){return String.prototype.startsWith?J.startsWith(_a):J.indexOf(_a)===0}var Xn,ba;Qr=`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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74auECWhw7+cjSACjzniv8CZ+wUhN9I/1uGEKzup6z+/GYr/04bavwmkNHp7xee/F2NMZVAA1z+82s+x2BLivwr2ytbJ9em/KwEH1sMS1r8yp/2LhTfev81i5RexJsy/BlIKPVwR5b95Wyu0/Qjnv5DjoT7YYcs/nBhKZ6zrwr8wRYS7Nebuv3OW6geh+Lu/SLrixebL3j+pcyymN9Xrv8rHIFfWehZAMBwUdlo0DECTUc17EOb2PxpVB1SWChdAzjbhb9pTDUDQhmdvECX5P9FlMKCC9+g/IIAzjELgE0DajDngMv8GQFhWDmDPjNs/y1guLh96EkAxPi8k7DIEQJCc4URlhRhA3eLKKLwkEECqpNAyTBD/P6xpjXcDiwVAFtl//cQm4z+Ibt3XKiYTQM7mCLUb3QdAoM1t8yVv7D8aLZv2Nk8UQEAJPV5nQwxAtSsfTCoE9z9TPjXLXIIWQBVanC5W9AtAYM3d7Adm9j++5mQz1FoWQBUThyaVBghAwH5muQsV7T89Q1qv82MUQJoWGOfNuBdAzrkClkmwDkDQjKq77t37Py+g0dtitsE/ZwAMTwVPEUBojepluNwBQGYbtuW+t9w/HNWIJs6MEkDTNuQUSlgEQKxktPP5TcQ/ixbLB8JjEUCwuWjXMQYCQAS/R09FkRdAowpiZjhhDkB7LmlczD/7P01iQmhhsAVAnrtTwDy84z/Z6jfQ2TgTQChOCXMnWwpAhrW3daoz8z/HYJvVPI4VQLT3ik5FcA5Angi7LOZd+z+NNVzDy5gXQBXdvVTFUA1AYNMgOeYe+T8+qHXGCwkXQKQTOKwa5AJA8gFVoEMW0T+FwzJyttIRQAEAAAD/////BwAAAP////8xAAAA/////1cBAAD/////YQkAAP////+nQQAA/////5HLAQD/////95AMAP/////B9lcAAAAAAAAAAAAAAAAAAgAAAP////8OAAAA/////2IAAAD/////rgIAAP/////CEgAA/////06DAAD/////IpcDAP/////uIRkA/////4LtrwAAAAAAAAAAAAAAAAAAAAAAAgAAAP//////////AQAAAAMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////////////////////wEAAAAAAAAAAgAAAP///////////////wMAAAD//////////////////////////////////////////////////////////wIAAAD//////////wEAAAAAAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA/////////////////////wEAAAD///////////////8CAAAA////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAA////////////////AgAAAAEAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AQAAAAIAAAD///////////////8AAAAA/////////////////////wMAAAD///////////////////////////////8CAAAA////////////////AQAAAP////////////////////8AAAAA/////////////////////wMAAAD/////////////////////////////////////////////////////AwAAAP////////////////////8AAAAAAQAAAP//////////AgAAAP//////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAP///////////////wIAAAAAAAAAAQAAAP//////////////////////////////////////////////////////////////////////////AwAAAAEAAAD//////////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/////////////////////////////////////wAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAEAAQAAAQEAAAAAAAEAAAABAAAAAQABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAKriWFiWZfg/Y2nmTbY/8z8MHSPSqmnjv6hnn18HR3c/quJYWJZl+D/jq5TzDdzyPwwdI9KqaeO/u0kC1eFSBECq4lhYlmX4P69pJmt7c/E/NnkJi6jSBsDESFlzKkr6P33ArMz7sfY/o2q2uqM08D+oZ59fB0d3PzEqCi3qrvK/kmm4ANp49D+4wS2wzhzvP9WJvyAnx+E/upcY75RVx7+95t+9y0T1P9L18g1caO0/k6CkRyVzAEBf99+e/GjxP6QMsuuLQ/U/PlP4Qr8q7j8Mb/GO2GMCwLl2K/DQIghAePiwytEp9D9UHrsuI/nqPzjMedJ+yuy/k6xgf58n/L+XoQtn22DzP2lzCnsYk+s/JhUSDI4P8z+8lFcBhgTcPxOqKRxEX/M/89MEdoPQ6j8OKQaXDob7vzWwNvblgAPAzGkxMcl88j9Nm4okPkbpP0vI89vxSgRAdac2Z6W2/T+6UFOMC3zyP/+2XEF3hug/QqhELwGKCMAwdlQerEoEQFcr/B+VnvE/hB1hfFzT5j8wdsE/Da64P0hIvnF/sOC/KH/hrXUg8T9bI5OQHaLlP+mYzla7td6/CtKG6iOm8b8FW3TV8oXwP8ORhtNuJ+c/q8JrTMz/AcC8PaUl+PUFwAXv9rkMT/A/m+sAswr15D+7hk/O3yvkP6c/yVsOHKI/qqAX9idJ8D/8hNz1KNPiP7xSXh3Ggvg/epbkiKr57T/23/LB1GLvP4GTTeNZi+M/W4TqlTheBcDupZgIdYUIQGwlcW3YZO8/tQvDXQ3H4j8Bt+sf9DkAQMdFie+nNvg/Z5Uh1wDX7j9h5X2d4KjhPxMJ1ZVT4Pa/evqB8xB//7+W183U9QLsPwzNxsC7AOA/af/LqCnK/r/lPceQ0FQDwHoY0nYIW+w/bHNSHrTg4D/DFcMAdabuv2sz5Ojhnve/FvLf01HN6z/tEDL2Hz/gP0bBv0KUhPA/pd7sEnMc4D8EGon4Lo7sP5NVbYtSON8/DAMC50odBkB+Z2J8MGYCQIhlM1gubOo/FssiPwWy4D8OIlGqRnkCQAd1vopp6f4/QS1keLLK6T9rfoBuT7LZP3KQbH5ugwjAjqVPXTmbBUBL/JxcqR3qP3oSeovuktg/Y6pRhJmqy7+0kwuU0Yjmv2wvsfFmQ+g/R98lJFqQ2T/IGb5gjLkCwK3mNff3kQbAqDznPFM86T+iiP0FfsvYP7fzKG6Mls0/h7+at2btzL8tsUTgk+LmP/YEIrTDINU/WmwKoVjA5L9aC02r6FHxvzzFCT/Qg+Y/nx0V97en0j8+1toJOm77P1kZ7h8KjfQ/GBbbqxgk5j9RGXM79G/SP+beHsWmweQ/9REi4eX0xD/V9s+kmMHkP+pb9yNs09A/c5ERjVDTAECqEr3OBCH7P14ILfMECOU/piRx4P8P0j+JYU//bfL0Pw62fw28B+w/l5YW2Ga45D9+CyKRbenOP5cH6fHy1/S/o/egk03++r91nTYRL/bjP3fHN6OJVdA/7xXQh1XLBcAB3g6tBdUIQKW2KnGYjeQ/SqIpagclyz8F9P3YgNL6v9H6NBsZ8QDAW2k5L5Qs4z/0axa1l6zLP1GE65Mu4wNAwfX+BYmWAEBBgJP90M3hP6/03qhPLdA/zqo5bJz2778/ESlPCTn1v7JkhGyvzuE/DM7sj5twwz/6xbXLavYGQH29RFRGkgNA7bOXVSJ54T9fEhTHO/TDP+8t+HMOiwDAxa0SbGTtA8Atii7y0mLgP4cecHFB3sM/uPUpyv+K7j8nktD1/WvhP2cWmi772d8/Fj7uU9kEvD8oKOESLzKmvwSdCqrHdNu/XCluGsvI3T929OW5md+uP9dP6rXcZNq/gXM+ggzL6b+eKjsPgJncP6i1e9aVu7E/2CnPNJyD1D/DnyGgSe+xvy8k7g9bp9s/nYmLvHn1sz9cFOwApH8IwGa6Mjy9cgZAJr95SiSW2z8rCkhOFvqdP3SIKmO/UwPAEy0zkN7bBsCds8Hg/13YP1zv413hVGi/FVtqixSn6L9XAPQGul3yv7SGu2BoCNk/n94bv7Maj79p13T6X9z3P45MPCW3WvI/rU/8/LRj1T9cgR6SXd+ZPymL2DstbPI/8s/pAkIz6z/fmoB+8efYPz2XyfWgYaa/6wys72AW/j8LZImhgrf3P729Zla/n9U/ySB8B3PBqL8O2nhevvbxv17+5A+n6fe/YrGIqEGB1T+wCEGbkhaxv989QHVE5wFAzd12PTu3/T9AHUPZY2DUP3SQDST0zq2/JCxAlIoj5T+Mhe1IJkrQP/cRpl8QhtU/amc4seFts79khiUSVaz3vxYfWtjPwf2/CHscxQqD0j/ctUBQ9my3v0POnFiyXv2/pjjn2Ju/AcDk45DwBhPRP/GjwlCrv7m/aT2ciwolBsAQOzHr/wUJQCzpq5UYvtI/gDCf3SlCwb+4i7S+mukEQBDA1f8mowFA2utnRN3KyT9T+9EYAVG6v9/IVZ0enrE/7NbRtdGfzr/8y8GpRz7LP3U0vTSk18e/JzHEcwiBB0AGm8Q7AJkEQNLciyt4Esk/gLou5zoQxr+RrOfM91oBwEzd36KybgTAgLou5zoQxj/S3IsreBLJv1gCch0OHO8/FD+RxSLN4j91NL00pNfHP/zLwalHPsu/nL7/By4Pyr8tSP5h7CPiv1P70RgBUbo/2utnRN3Kyb/KfllfCpUIwLkP5zj+NwdAgDCf3SlCwT8s6auVGL7Sv2aFPlaC4eC/XrS5UVH77b/xo8JQq7+5P+TjkPAGE9G/Q30/RYbn1z8FF/ISafuLv9y1QFD2bLc/CHscxQqD0r/fi+tPROX0P6vRc+19ie0/amc4seFtsz/3EaZfEIbVv77TYpahl/o/DDsu0CaC9D90kA0k9M6tP0AdQ9ljYNS/CCI0rxjZA8BgfCaLthgHwLAIQZuSFrE/YrGIqEGB1b8kvQ982+rsv4J8EWu7jPS/ySB8B3PBqD+9vWZWv5/VvwrAByWcJgBAxFujmE9a+j89l8n1oGGmP9+agH7x59i/N03cuJUt9L8X9v4GdIz6v1yBHpJd35m/rU/8/LRj1b8mz69sydf/vyu5idMqVQLAn94bv7Majz8AhrtgaAjZv+aCE66WZ/q/lA1Mgz/p/79c7+Nd4VRoP52zweD/Xdi/TJZpMTb4AkDLWZShPOb/PysKSE4W+p2/Jr95SiSW27/PkmbE7zjnP6UAiCDmMNI/nYmLvHn1s78vJO4PW6fbv5MWA2vqSrQ/V5WLwPB51b+otXvWlbuxv54qOw+Amdy/1keqzYeRBsApIEMHgZIIQHb05bmZ366/XCluGsvI3b8W44a9X9UFQEeQtDM4rwJAFj7uU9kEvL9nFpou+9nfv3Co+JcyyQhAcdkCX2KzBUCHHnBxQd7Dvy2KLvLSYuC/o6+5YTt/AcCHCNDW+8YEwF8SFMc79MO/7bOXVSJ54b9E/pfA2S3xPzD9xaBb0uQ/DM7sj5tww7+yZIRsr87hv7c4c0SEXNG/Tr79/9M+5r+v9N6oTy3Qv5uAk/3QzeG/XcI1OVQkAUAQSV9Z7Qr9P/RrFrWXrMu/W2k5L5Qs479Zo2IBM/vkv6FuipzkFvG/SqIpagcly7+ltipxmI3kv0pmis91cfc/gWQecsRh8D93xzejiVXQv3WdNhEv9uO/D7mgYy612j+PyVPNaT2jv34LIpFt6c6/l5YW2Ga45L+LUp+2A2z9P39i5xSpRfc/piRx4P8P0r9eCC3zBAjlv5n4OKmIUf2/jj/kUAwgAsDqW/cjbNPQv9X2z6SYweS/aTdljlWd8L94R8vZ8SL3v1EZczv0b9K/GBbbqxgk5r9XdfyikfEDwPILMvas0gfAnx0V97en0r88xQk/0IPmvxGErZ681fa/9kCaiOy2/b/2BCK0wyDVvy2xROCT4ua/+5EBLOXxA0B7p53+BnkAQKKI/QV+y9i/qDznPFM86b/snWGNkkgHwC+ByugkUwdAR98lJFqQ2b9sL7HxZkPovyJNGM67oek/HzNy6BqA1D96EnqL7pLYv0v8nFypHeq/axL/u1FnB0AkSEHvxn8DQGt+gG5Pstm/QS1keLLK6b/Sk/O6mtGzPxU8pLcPNty/FssiPwWy4L+IZTNYLmzqvw4szKfSouq/G+XJHY1a87+TVW2LUjjfvwQaifgujuy/3VARaoMl2L9NFodfK+/qv+0QMvYfP+C/FvLf01HN67+ETOQysd8AwH71iI/eGgXAbHNSHrTg4L96GNJ2CFvsv6BnExReeAFA5CakvxSl+j8MzcbAuwDgv5bXzdT1Auy/uVq8/8x58z+uvPMNqzTnP2HlfZ3gqOG/Z5Uh1wDX7r8PUbMSo2P7P9VfBrXlxPI/tQvDXQ3H4r9sJXFt2GTvvyDssGgO0PG/WxT/uE4N+r+Bk03jWYvjv/bf8sHUYu+/rUXN8hUe3j9m5HB1yZCzv/yE3PUo0+K/qqAX9idJ8L9mByqLMMH5v4kHC7KQowHAm+sAswr15L8F7/a5DE/wv2JLsGADFwTAKQjVGovZCMDDkYbTbifnvwVbdNXyhfC/malhH7yI7D+oevd0GWDZP1sjk5AdouW/KH/hrXUg8b8KWmrpQ0sFQAzEAF/pTgBAhB1hfFzT5r9XK/wflZ7xv18hRuqKXAjA/5rUd9v1BED/tlxBd4bov7pQU4wLfPK/4pnwn0T/sj/c277XPF3jv02biiQ+Rum/zGkxMcl88r8Yk0HhJVzjv62yUUFRjfS/89MEdoPQ6r8TqikcRF/zvxQxghHovfY/cfM1eFWE5j9pcwp7GJPrv5ehC2fbYPO/KUV2nGg0/795OhmUaqEFwFQeuy4j+eq/ePiwytEp9L8DuqWfW+8BQLytJylXHPY/PlP4Qr8q7r+kDLLri0P1vxT4ShWL+Oo/DMsWg0zlv7/S9fINXGjtv73m373LRPW/+xg/Gaxd8b94MdQEfW0AwLjBLbDOHO+/kmm4ANp49L+cShSMMbAEwKyjUgWirAdAo2q2uqM08L99wKzM+7H2v3RdlNBXFgnA8S9+ewyV/z+vaSZre3Pxv6riWFiWZfi/2J7VSZZ60j+LES81zPn3v+OrlPMN3PK/quJYWJZl+L/OZbufkEcEQLCNB/1lPOO/Y2nmTbY/87+q4lhYlmX4v7CNB/1lPOO/zmW7n5BHBEBwKD1Aa57LP/XsSsw7RbU/PMDPJGsfoD/TqningGKIPzFtCLYmb3I/qYfrJr7eWz9pQmleXRFFP0rWlJkA2i8/pCvcttgTGD9Dt8IWbjMCPyCG4GRlhOs+1JI2GhDN1D7ns8cGvXK/Pi8m8UTJxac+hNTfA2z4kT7GI8kjLyt7Pv//////HwAI//////8zEAj/////fzIgCP////9vMjAI/////2MyQAj///8/YjJQCP///zdiMmAI////M2IycAj//78zYjKACP//qzNiMpAI/3+rM2IyoAj/D6szYjKwCP8DqzNiMsAIvwOrM2Iy0AifA6szYjLgCJkDqzNiMvAI//////8/Dwj//////ysfCP////9/KS8I/////z8pPwj/////OSlPCP///z84KV8I////Dzgpbwj///8OOCl/CP//Hw44KY8I//8PDjgpnwj/fw0OOCmvCP8PDQ44Kb8I/w0NDjgpzwj/DA0OOCnfCMcMDQ44Ke8IxAwNDjgp/wgHAAAABwAAAAEAAAACAAAABAAAAAMAAAAAAAAAAAAAAAcAAAADAAAAAQAAAAIAAAAFAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAgAAAAEAAAADAAAADgAAAAYAAAALAAAAAgAAAAcAAAABAAAAGAAAAAUAAAAKAAAAAQAAAAYAAAAAAAAAJgAAAAcAAAAMAAAAAwAAAAgAAAACAAAAMQAAAAkAAAAOAAAAAAAAAAUAAAAEAAAAOgAAAAgAAAANAAAABAAAAAkAAAADAAAAPwAAAAsAAAAGAAAADwAAAAoAAAAQAAAASAAAAAwAAAAHAAAAEAAAAAsAAAARAAAAUwAAAAoAAAAFAAAAEwAAAA4AAAAPAAAAYQAAAA0AAAAIAAAAEQAAAAwAAAASAAAAawAAAA4AAAAJAAAAEgAAAA0AAAATAAAAdQAAAA8AAAATAAAAEQAAABIAAAAQAAAABgAAAAIAAAADAAAABQAAAAQAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAMAAAABAAAABQAAAAQAAAAAAAAAAAAAAAcAAAAFAAAAAwAAAAQAAAABAAAAAAAAAAIAAAAAAAAAAgAAAAMAAAABAAAABQAAAAQAAAAGAAAAAAAAAAAAAAAYLURU+yH5PxgtRFT7Ifm/GC1EVPshCUAYLURU+yEJwGFsZ29zLmMAaDNOZWlnaGJvclJvdGF0aW9ucwBjZWxsc1RvTXVsdGlQb2x5LmMAY2VsbFRvRWRnZUFyY3MAAAEDAgQABAMFAQJjYW5jZWxBcmNQYWlycwBjcmVhdGVTb3J0YWJsZUxvb3AAZGlyZWN0ZWRFZGdlLmMAZGlyZWN0ZWRFZGdlVG9Cb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0NlbGxCb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbY2VudGVySUpLLmZhY2VdW2ZhY2UyXSA9PSBLSQBfZmFjZUlqa1RvQ2VsbEJvdW5kYXJ5AGgzSW5kZXguYwBjb21wYWN0Q2VsbHMAdmVjM1RvQ2VsbABjZWxsVG9DaGlsZFBvcwB2YWxpZGF0ZUNoaWxkUG9zAHJldkRpciAhPSBJTlZBTElEX0RJR0lUAGxvY2FsaWouYwBjZWxsVG9Mb2NhbElqawBiYXNlQ2VsbCAhPSBvcmlnaW5CYXNlQ2VsbAAhKG9yaWdpbk9uUGVudCAmJiBpbmRleE9uUGVudCkAYmFzZUNlbGwgPT0gb3JpZ2luQmFzZUNlbGwALi4vaW5jbHVkZS9jb29yZGlqay5oAF91cEFwN0NoZWNrZWQAX3VwQXA3ckNoZWNrZWQAYmFzZUNlbGwgIT0gSU5WQUxJRF9CQVNFX0NFTEwAbG9jYWxJamtUb0NlbGwAIV9pc0Jhc2VDZWxsUGVudGFnb24oYmFzZUNlbGwpAGJhc2VDZWxsUm90YXRpb25zID49IDAAZ3JpZFBhdGhDZWxsc0ludGVycG9sYXRlAHBvbHlmaWxsLmMAaXRlclN0ZXBQb2x5Z29uQ29tcGFjdAAwAHZlcnRleC5jAHZlcnRleFJvdGF0aW9ucwBjZWxsVG9WZXJ0ZXg=`;var vg=28400;function Mg(J){return J}function lu(J){return J.replace(/\b__Z[\w\d_]+/g,function(pe){var W=pe;return pe===W?pe:W+` [`+pe+`]`})}function uu(){var J=new Error;if(!J.stack){try{throw new Error(0)}catch(re){J=re}if(!J.stack)return`(no stack trace available)`}return J.stack.toString()}function Ig(){var J=uu();return e.extraStackTrace&&(J+=`
|
|
2
|
-
`+e.extraStackTrace()),lu(J)}function Sg(J,re,pe,W){Cn(`Assertion failed: `+Ee(J)+`, at: `+[re?Ee(re):`unknown filename`,pe,W?Ee(W):`unknown function`])}function fu(){return ve.length}function Fg(J,re,pe){ke.set(ke.subarray(re,re+pe),J)}function Lg(J){return e.___errno_location&&($e[e.___errno_location()>>2]=J),J}function Rg(J){Cn(`OOM`)}function hu(J){try{var re=new ArrayBuffer(J);return re.byteLength!=J?void 0:(new Int8Array(re).set(ve),kg(re),Rt(re),1)}catch{}}function Pg(J){var re=fu(),pe=16777216,W=2147483648-pe;if(J>W)return!1;for(var At=Math.max(re,16777216);At<J;)At<=536870912?At=Me(2*At,pe):At=Math.min(Me((3*At+2147483648)/4,pe),W);return!!hu(At)}var Dg=typeof atob==`function`?atob:function(J){var re=`ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=`,pe=``,W,n,At,Ke,L,it,Wt,Mt=0;J=J.replace(/[^A-Za-z0-9\+\/\=]/g,``);do Ke=re.indexOf(J.charAt(Mt++)),L=re.indexOf(J.charAt(Mt++)),it=re.indexOf(J.charAt(Mt++)),Wt=re.indexOf(J.charAt(Mt++)),W=Ke<<2|L>>4,n=(L&15)<<4|it>>2,At=(it&3)<<6|Wt,pe=pe+String.fromCharCode(W),it!==64&&(pe=pe+String.fromCharCode(n)),Wt!==64&&(pe=pe+String.fromCharCode(At));while(Mt<J.length);return pe};function Ng(J){try{for(var re=Dg(J),pe=new Uint8Array(re.length),W=0;W<re.length;++W)pe[W]=re.charCodeAt(W);return pe}catch{throw new Error(`Converting base64 string to bytes failed.`)}}function Ea(J){if(cu(J))return Ng(J.slice(_a.length))}var ie=(function(J,re,pe){"almost asm";var W=new J.Int8Array(pe),n=new J.Int32Array(pe);new J.Uint8Array(pe);new J.Float32Array(pe);var L=new J.Float64Array(pe),it=re.o|0,Wt=re.p|0,Mt=J.Math.floor,Ct=J.Math.abs,pt=J.Math.sqrt,De=J.Math.cos,We=J.Math.sin,Zi=J.Math.tan,Vg=J.Math.acos,$A=J.Math.asin,yu=J.Math.atan,Qt=J.Math.atan2,Yn=J.Math.ceil,Zt=J.Math.imul,wa=J.Math.min,jg=J.Math.max,zr=J.Math.clz32,Qg=re.a,Se=re.b,S=re.c,Oe=re.d,Tu=re.e,zg=re.f,Jg=re.g,qg=re.h,Kg=re.i,I=28416;function Xg(s){return W=new Int8Array(s),new Uint8Array(s),n=new Int32Array(s),new Float32Array(s),L=new Float64Array(s),pe=s,!0}function Yg(s){s=s|0;var o=0;return o=I,I=I+s|0,I=I+15&-16,o|0}function Wg(){return I|0}function Zg(s){s=s|0,I=s}function $g(s,o){s=s|0,o=o|0,I=s}function ey(s,o){s=s|0,o=o|0;var c=0,u=0,l=0;return(s|0)<0?(o=2,o|0):(s|0)>13780509?(o=rs(15,o)|0,o|0):(c=((s|0)<0)<<31>>31,l=ut(s|0,c|0,3,0)|0,u=S()|0,c=ce(s|0,c|0,1,0)|0,c=ut(l|0,u|0,c|0,S()|0)|0,c=ce(c|0,S()|0,1,0)|0,s=S()|0,n[o>>2]=c,n[o+4>>2]=s,o=0,o|0)}function _u(s,o,c,u){return s=s|0,o=o|0,c=c|0,u=u|0,bu(s,o,c,u,0)|0}function bu(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0;if(g=I,I=I+16|0,h=g,!(Eu(s,o,c,u,l)|0))return u=0,I=g,u|0;do if((c|0)>=0){if((c|0)>13780509){if(f=rs(15,h)|0,f|0)break;p=h,h=n[p>>2]|0,p=n[p+4>>2]|0}else f=((c|0)<0)<<31>>31,T=ut(c|0,f|0,3,0)|0,p=S()|0,f=ce(c|0,f|0,1,0)|0,f=ut(T|0,p|0,f|0,S()|0)|0,f=ce(f|0,S()|0,1,0)|0,p=S()|0,n[h>>2]=f,n[h+4>>2]=p,h=f;if(an(u|0,0,h<<3|0)|0,l|0){an(l|0,0,h<<2|0)|0,f=Dr(s,o,c,u,l,h,p,0)|0;break}f=zt(h,4)|0,f?(T=Dr(s,o,c,u,f,h,p,0)|0,fe(f),f=T):f=13}else f=2;while(!1);return T=f,I=g,T|0}function Eu(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0;if(P=I,I=I+16|0,B=P,M=P+8|0,w=B,n[w>>2]=s,n[w+4>>2]=o,(c|0)<0)return M=2,I=P,M|0;if(f=u,n[f>>2]=s,n[f+4>>2]=o,f=(l|0)!=0,f&&(n[l>>2]=0),et(s,o)|0)return M=9,I=P,M|0;n[M>>2]=0;e:do if((c|0)>=1)if(f)for(b=1,T=0,C=0,w=1,f=s;;){if(!(T|C)){if(f=wt(f,o,4,M,B)|0,f|0)break e;if(o=B,f=n[o>>2]|0,o=n[o+4>>2]|0,et(f,o)|0){f=9;break e}}if(f=wt(f,o,n[26864+(C<<2)>>2]|0,M,B)|0,f|0)break e;if(o=B,f=n[o>>2]|0,o=n[o+4>>2]|0,s=u+(b<<3)|0,n[s>>2]=f,n[s+4>>2]=o,n[l+(b<<2)>>2]=w,s=T+1|0,h=(s|0)==(w|0),p=C+1|0,g=(p|0)==6,et(f,o)|0){f=9;break e}if(w=w+(g&h&1)|0,(w|0)>(c|0)){f=0;break}else b=b+1|0,T=h?0:s,C=h?g?0:p:C}else for(b=1,T=0,C=0,w=1,f=s;;){if(!(T|C)){if(f=wt(f,o,4,M,B)|0,f|0)break e;if(o=B,f=n[o>>2]|0,o=n[o+4>>2]|0,et(f,o)|0){f=9;break e}}if(f=wt(f,o,n[26864+(C<<2)>>2]|0,M,B)|0,f|0)break e;if(o=B,f=n[o>>2]|0,o=n[o+4>>2]|0,s=u+(b<<3)|0,n[s>>2]=f,n[s+4>>2]=o,s=T+1|0,h=(s|0)==(w|0),p=C+1|0,g=(p|0)==6,et(f,o)|0){f=9;break e}if(w=w+(g&h&1)|0,(w|0)>(c|0)){f=0;break}else b=b+1|0,T=h?0:s,C=h?g?0:p:C}else f=0;while(!1);return M=f,I=P,M|0}function Dr(s,o,c,u,l,f,h,p){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0,f=f|0,h=h|0,p=p|0;var g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0;if(P=I,I=I+16|0,B=P+8|0,M=P,g=Jr(s|0,o|0,f|0,h|0)|0,b=S()|0,C=u+(g<<3)|0,D=C,H=n[D>>2]|0,D=n[D+4>>2]|0,T=(H|0)==(s|0)&(D|0)==(o|0),!((H|0)==0&(D|0)==0|T))do g=ce(g|0,b|0,1,0)|0,g=on(g|0,S()|0,f|0,h|0)|0,b=S()|0,C=u+(g<<3)|0,H=C,D=n[H>>2]|0,H=n[H+4>>2]|0,T=(D|0)==(s|0)&(H|0)==(o|0);while(!((D|0)==0&(H|0)==0|T));if(g=l+(g<<2)|0,T&&(n[g>>2]|0)<=(p|0)||(H=C,n[H>>2]=s,n[H+4>>2]=o,n[g>>2]=p,(p|0)>=(c|0)))return H=0,I=P,H|0;switch(T=p+1|0,n[B>>2]=0,g=wt(s,o,2,B,M)|0,g|0){case 9:w=9;break;case 0:g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,c,u,l,f,h,T)|0,g||(w=9);break;default:}e:do if((w|0)==9){switch(n[B>>2]=0,g=wt(s,o,3,B,M)|0,g|0){case 9:break;case 0:if(g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,c,u,l,f,h,T)|0,g|0)break e;break;default:break e}switch(n[B>>2]=0,g=wt(s,o,1,B,M)|0,g|0){case 9:break;case 0:if(g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,c,u,l,f,h,T)|0,g|0)break e;break;default:break e}switch(n[B>>2]=0,g=wt(s,o,5,B,M)|0,g|0){case 9:break;case 0:if(g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,c,u,l,f,h,T)|0,g|0)break e;break;default:break e}switch(n[B>>2]=0,g=wt(s,o,4,B,M)|0,g|0){case 9:break;case 0:if(g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,c,u,l,f,h,T)|0,g|0)break e;break;default:break e}switch(n[B>>2]=0,g=wt(s,o,6,B,M)|0,g|0){case 9:break;case 0:if(g=M,g=Dr(n[g>>2]|0,n[g+4>>2]|0,c,u,l,f,h,T)|0,g|0)break e;break;default:break e}return H=0,I=P,H|0}while(!1);return H=g,I=P,H|0}function wt(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;if(c>>>0>6)return l=1,l|0;h=(n[u>>2]|0)%6|0,n[u>>2]=h;e:do if((h|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)==(h|0))break e}while(!1);if(C=te(s|0,o|0,45)|0,S()|0,b=C&127,b>>>0>121)return l=5,l|0;g=$t(s,o)|0,f=te(s|0,o|0,52)|0,S()|0,f=f&15;e:do if(!f)T=15;else{for(;;){if(h=(15-f|0)*3|0,p=te(s|0,o|0,h|0)|0,S()|0,p=p&7,(p|0)==7){o=5;break}if(M=(hr(f)|0)==0,f=f+-1|0,w=oe(7,0,h|0)|0,o=o&~(S()|0),B=oe(n[(M?432:16)+(p*28|0)+(c<<2)>>2]|0,0,h|0)|0,h=S()|0,c=n[(M?640:224)+(p*28|0)+(c<<2)>>2]|0,s=B|s&~w,o=h|o,!c){c=0;break e}if(!f){T=15;break e}}return o|0}while(!1);(T|0)==15&&(M=n[848+(b*28|0)+(c<<2)>>2]|0,B=oe(M|0,0,45)|0,s=B|s,o=S()|0|o&-1040385,c=n[4272+(b*28|0)+(c<<2)>>2]|0,(M&127|0)==127&&(M=oe(n[848+(b*28|0)+20>>2]|0,0,45)|0,o=S()|0|o&-1040385,c=n[4272+(b*28|0)+20>>2]|0,s=wn(M|s,o)|0,o=S()|0,n[u>>2]=(n[u>>2]|0)+1)),p=te(s|0,o|0,45)|0,S()|0,p=p&127;e:do if(ct(p)|0){t:do if(($t(s,o)|0)==1){if((b|0)!=(p|0))if(Bu(p,n[7696+(b*28|0)>>2]|0)|0){s=Oa(s,o)|0,h=1,o=S()|0;break}else Oe(27634,26928,533,26936);switch(g|0){case 3:s=wn(s,o)|0,o=S()|0,n[u>>2]=(n[u>>2]|0)+1,h=0;break t;case 5:s=Oa(s,o)|0,o=S()|0,n[u>>2]=(n[u>>2]|0)+5,h=0;break t;case 0:return M=9,M|0;default:return M=1,M|0}}else h=0;while(!1);if((c|0)>0){f=0;do s=Na(s,o)|0,o=S()|0,f=f+1|0;while((f|0)!=(c|0))}if((b|0)!=(p|0)){if(!(Ba(p)|0)){if((h|0)!=0|($t(s,o)|0)!=5)break;n[u>>2]=(n[u>>2]|0)+1;break}switch(C&127){case 8:case 118:break e;default:}($t(s,o)|0)!=3&&(n[u>>2]=(n[u>>2]|0)+1)}}else if((c|0)>0){f=0;do s=wn(s,o)|0,o=S()|0,f=f+1|0;while((f|0)!=(c|0))}while(!1);return n[u>>2]=((n[u>>2]|0)+c|0)%6|0,M=l,n[M>>2]=s,n[M+4>>2]=o,M=0,M|0}function ty(s,o,c,u){return s=s|0,o=o|0,c=c|0,u=u|0,xu(s,o,c,u)|0?(an(u|0,0,c*48|0)|0,u=ry(s,o,c,u)|0,u|0):(u=0,u|0)}function xu(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;if(M=I,I=I+16|0,w=M,B=M+8|0,C=w,n[C>>2]=s,n[C+4>>2]=o,(c|0)<0)return B=2,I=M,B|0;if(!c)return B=u,n[B>>2]=s,n[B+4>>2]=o,B=0,I=M,B|0;n[B>>2]=0;e:do if(et(s,o)|0)s=9;else{l=0,C=s;do{if(s=wt(C,o,4,B,w)|0,s|0)break e;if(o=w,C=n[o>>2]|0,o=n[o+4>>2]|0,l=l+1|0,et(C,o)|0){s=9;break e}}while((l|0)<(c|0));b=u,n[b>>2]=C,n[b+4>>2]=o,b=c+-1|0,T=0,s=1;do{if(l=26864+(T<<2)|0,(T|0)==5)for(h=n[l>>2]|0,f=0,l=s;;){if(s=w,s=wt(n[s>>2]|0,n[s+4>>2]|0,h,B,w)|0,s|0)break e;if((f|0)!=(b|0))if(g=w,p=n[g>>2]|0,g=n[g+4>>2]|0,s=u+(l<<3)|0,n[s>>2]=p,n[s+4>>2]=g,!(et(p,g)|0))s=l+1|0;else{s=9;break e}else s=l;if(f=f+1|0,(f|0)>=(c|0))break;l=s}else for(h=w,g=n[l>>2]|0,p=0,l=s,f=n[h>>2]|0,h=n[h+4>>2]|0;;){if(s=wt(f,h,g,B,w)|0,s|0)break e;if(h=w,f=n[h>>2]|0,h=n[h+4>>2]|0,s=u+(l<<3)|0,n[s>>2]=f,n[s+4>>2]=h,s=l+1|0,et(f,h)|0){s=9;break e}if(p=p+1|0,(p|0)>=(c|0))break;l=s}T=T+1|0}while(T>>>0<6);s=w,s=(C|0)==(n[s>>2]|0)&&(o|0)==(n[s+4>>2]|0)?0:9}while(!1);return B=s,I=M,B|0}function ry(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0;if(C=I,I=I+16|0,h=C,!c)return n[u>>2]=s,n[u+4>>2]=o,u=0,I=C,u|0;do if((c|0)>=0){if((c|0)>13780509){if(l=rs(15,h)|0,l|0)break;f=h,l=n[f>>2]|0,f=n[f+4>>2]|0}else l=((c|0)<0)<<31>>31,b=ut(c|0,l|0,3,0)|0,f=S()|0,l=ce(c|0,l|0,1,0)|0,l=ut(b|0,f|0,l|0,S()|0)|0,l=ce(l|0,S()|0,1,0)|0,f=S()|0,b=h,n[b>>2]=l,n[b+4>>2]=f;if(T=zt(l,8)|0,!T)l=13;else{if(b=zt(l,4)|0,!b){fe(T),l=13;break}if(l=Dr(s,o,c,T,b,l,f,0)|0,l|0){fe(T),fe(b);break}if(o=n[h>>2]|0,h=n[h+4>>2]|0,(h|0)>0|(h|0)==0&o>>>0>0){l=0,p=0,g=0;do s=T+(p<<3)|0,f=n[s>>2]|0,s=n[s+4>>2]|0,!((f|0)==0&(s|0)==0)&&(n[b+(p<<2)>>2]|0)==(c|0)&&(w=u+(l<<3)|0,n[w>>2]=f,n[w+4>>2]=s,l=l+1|0),p=ce(p|0,g|0,1,0)|0,g=S()|0;while((g|0)<(h|0)|(g|0)==(h|0)&p>>>0<o>>>0)}fe(T),fe(b),l=0}}else l=2;while(!1);return w=l,I=C,w|0}function $i(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0;for(p=I,I=I+16|0,f=p,h=p+8|0,l=(et(s,o)|0)==0,l=l?1:2;;){if(n[h>>2]=0,T=(wt(s,o,l,h,f)|0)==0,g=f,T&((n[g>>2]|0)==(c|0)?(n[g+4>>2]|0)==(u|0):0)){s=4;break}if(l=l+1|0,l>>>0>=7){l=7,s=4;break}}return(s|0)==4?(I=p,l|0):0}function ny(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0;if(p=I,I=I+48|0,l=p+16|0,f=p+8|0,h=p,c=oi(c)|0,c|0)return h=c,I=p,h|0;if(T=s,g=n[T+4>>2]|0,c=f,n[c>>2]=n[T>>2],n[c+4>>2]=g,Qu(f,l),c=Su(l,o,h)|0,!c){if(o=n[f>>2]|0,f=n[s+8>>2]|0,(f|0)>0){l=n[s+12>>2]|0,c=0;do o=(n[l+(c<<3)>>2]|0)+o|0,c=c+1|0;while((c|0)<(f|0))}c=h,l=n[c>>2]|0,c=n[c+4>>2]|0,f=((o|0)<0)<<31>>31,(c|0)<(f|0)|(c|0)==(f|0)&l>>>0<o>>>0?(c=h,n[c>>2]=o,n[c+4>>2]=f,c=f):o=l,g=ce(o|0,c|0,12,0)|0,T=S()|0,c=h,n[c>>2]=g,n[c+4>>2]=T,c=u,n[c>>2]=g,n[c+4>>2]=T,c=0}return T=c,I=p,T|0}function Cu(s,o,c,u,l,f,h){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0,f=f|0,h=h|0;var p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0,Ge=0,Ue=0,Pt=0,Re=0,He=0,Jt=0;if(Ue=I,I=I+64|0,me=Ue+48|0,ne=Ue+32|0,ae=Ue+24|0,K=Ue+8|0,ee=Ue,g=n[s>>2]|0,(g|0)<=0)return Ge=0,I=Ue,Ge|0;for(z=s+4|0,V=me+8|0,le=ne+8|0,$=K+8|0,p=0,j=0;;){T=n[z>>2]|0,R=T+(j<<4)|0,n[me>>2]=n[R>>2],n[me+4>>2]=n[R+4>>2],n[me+8>>2]=n[R+8>>2],n[me+12>>2]=n[R+12>>2],(j|0)==(g+-1|0)?(n[ne>>2]=n[T>>2],n[ne+4>>2]=n[T+4>>2],n[ne+8>>2]=n[T+8>>2],n[ne+12>>2]=n[T+12>>2]):(R=T+(j+1<<4)|0,n[ne>>2]=n[R>>2],n[ne+4>>2]=n[R+4>>2],n[ne+8>>2]=n[R+8>>2],n[ne+12>>2]=n[R+12>>2]),g=yy(me,ne,u,ae)|0;e:do if(g)T=0,p=g;else if(g=ae,T=n[g>>2]|0,g=n[g+4>>2]|0,(g|0)>0|(g|0)==0&T>>>0>0){H=0,R=0;t:for(;;){if(Re=1/(+(T>>>0)+4294967296*+(g|0)),Jt=+L[me>>3],g=Bt(T|0,g|0,H|0,R|0)|0,He=+(g>>>0)+4294967296*+(S()|0),Pt=+(H>>>0)+4294967296*+(R|0),L[K>>3]=Re*(Jt*He)+Re*(+L[ne>>3]*Pt),L[$>>3]=Re*(+L[V>>3]*He)+Re*(+L[le>>3]*Pt),g=Ga(K,u,ee)|0,g|0){p=g;break}D=ee,P=n[D>>2]|0,D=n[D+4>>2]|0,w=Jr(P|0,D|0,o|0,c|0)|0,b=S()|0,g=h+(w<<3)|0,C=g,T=n[C>>2]|0,C=n[C+4>>2]|0;r:do if((T|0)==0&(C|0)==0)O=g,Ge=16;else for(B=0,M=0;;){if((B|0)>(c|0)|(B|0)==(c|0)&M>>>0>o>>>0){p=1;break t}if((T|0)==(P|0)&(C|0)==(D|0))break r;if(g=ce(w|0,b|0,1,0)|0,w=on(g|0,S()|0,o|0,c|0)|0,b=S()|0,M=ce(M|0,B|0,1,0)|0,B=S()|0,g=h+(w<<3)|0,C=g,T=n[C>>2]|0,C=n[C+4>>2]|0,(T|0)==0&(C|0)==0){O=g,Ge=16;break}}while(!1);if((Ge|0)==16&&(Ge=0,!((P|0)==0&(D|0)==0))&&(M=O,n[M>>2]=P,n[M+4>>2]=D,M=f+(n[l>>2]<<3)|0,n[M>>2]=P,n[M+4>>2]=D,M=l,M=ce(n[M>>2]|0,n[M+4>>2]|0,1,0)|0,P=S()|0,D=l,n[D>>2]=M,n[D+4>>2]=P),H=ce(H|0,R|0,1,0)|0,R=S()|0,g=ae,T=n[g>>2]|0,g=n[g+4>>2]|0,!((g|0)>(R|0)|(g|0)==(R|0)&T>>>0>H>>>0)){T=1;break e}}T=0}else T=1;while(!1);if(j=j+1|0,!T){Ge=21;break}if(g=n[s>>2]|0,(j|0)>=(g|0)){p=0,Ge=21;break}}return(Ge|0)==21?(I=Ue,p|0):0}function Ay(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0,Ge=0,Ue=0,Pt=0,Re=0,He=0;if(He=I,I=I+112|0,Ge=He+80|0,g=He+72|0,Ue=He,Pt=He+56|0,l=oi(c)|0,l|0)return Re=l,I=He,Re|0;if(T=s+8|0,Re=lt((n[T>>2]<<5)+32|0)|0,!Re)return Re=13,I=He,Re|0;if(za(s,Re),l=oi(c)|0,!l){if(ne=s,ae=n[ne+4>>2]|0,l=g,n[l>>2]=n[ne>>2],n[l+4>>2]=ae,Qu(g,Ge),l=Su(Ge,o,Ue)|0,l)ne=0,ae=0;else{if(l=n[g>>2]|0,f=n[T>>2]|0,(f|0)>0){h=n[s+12>>2]|0,c=0;do l=(n[h+(c<<3)>>2]|0)+l|0,c=c+1|0;while((c|0)!=(f|0));c=l}else c=l;l=Ue,f=n[l>>2]|0,l=n[l+4>>2]|0,h=((c|0)<0)<<31>>31,(l|0)<(h|0)|(l|0)==(h|0)&f>>>0<c>>>0?(l=Ue,n[l>>2]=c,n[l+4>>2]=h,l=h):c=f,ne=ce(c|0,l|0,12,0)|0,ae=S()|0,l=Ue,n[l>>2]=ne,n[l+4>>2]=ae,l=0}if(!l){if(c=zt(ne,8)|0,!c)return fe(Re),Re=13,I=He,Re|0;if(p=zt(ne,8)|0,!p)return fe(Re),fe(c),Re=13,I=He,Re|0;$=Ge,n[$>>2]=0,n[$+4>>2]=0,$=s,me=n[$+4>>2]|0,l=g,n[l>>2]=n[$>>2],n[l+4>>2]=me,l=Cu(g,ne,ae,o,Ge,c,p)|0;e:do if(l)fe(c),fe(p),fe(Re);else{t:do if((n[T>>2]|0)>0){for(h=s+12|0,f=0;l=Cu((n[h>>2]|0)+(f<<3)|0,ne,ae,o,Ge,c,p)|0,f=f+1|0,!(l|0);)if((f|0)>=(n[T>>2]|0))break t;fe(c),fe(p),fe(Re);break e}while(!1);(ae|0)>0|(ae|0)==0&ne>>>0>0&&an(p|0,0,ne<<3|0)|0,me=Ge,$=n[me+4>>2]|0;t:do if(($|0)>0|($|0)==0&(n[me>>2]|0)>>>0>0){z=c,V=p,le=c,$=p,me=c,l=c,O=c,K=p,ee=p,c=p;r:for(;;){for(D=0,H=0,R=0,j=0,f=0,h=0;;){p=Ue,g=p+56|0;do n[p>>2]=0,p=p+4|0;while((p|0)<(g|0));if(o=z+(D<<3)|0,T=n[o>>2]|0,o=n[o+4>>2]|0,Eu(T,o,1,Ue,0)|0){p=Ue,g=p+56|0;do n[p>>2]=0,p=p+4|0;while((p|0)<(g|0));p=zt(7,4)|0,p|0&&(Dr(T,o,1,Ue,p,7,0,0)|0,fe(p))}for(P=0;;){M=Ue+(P<<3)|0,B=n[M>>2]|0,M=n[M+4>>2]|0;n:do if((B|0)==0&(M|0)==0)p=f,g=h;else{if(b=Jr(B|0,M|0,ne|0,ae|0)|0,T=S()|0,p=u+(b<<3)|0,o=p,g=n[o>>2]|0,o=n[o+4>>2]|0,!((g|0)==0&(o|0)==0)){C=0,w=0;do{if((C|0)>(ae|0)|(C|0)==(ae|0)&w>>>0>ne>>>0)break r;if((g|0)==(B|0)&(o|0)==(M|0)){p=f,g=h;break n}p=ce(b|0,T|0,1,0)|0,b=on(p|0,S()|0,ne|0,ae|0)|0,T=S()|0,w=ce(w|0,C|0,1,0)|0,C=S()|0,p=u+(b<<3)|0,o=p,g=n[o>>2]|0,o=n[o+4>>2]|0}while(!((g|0)==0&(o|0)==0))}if((B|0)==0&(M|0)==0){p=f,g=h;break}$n(B,M,Pt)|0,Ja(s,Re,Pt)|0&&(w=ce(f|0,h|0,1,0)|0,h=S()|0,C=p,n[C>>2]=B,n[C+4>>2]=M,f=V+(f<<3)|0,n[f>>2]=B,n[f+4>>2]=M,f=w),p=f,g=h}while(!1);if(P=P+1|0,P>>>0>=7)break;f=p,h=g}if(D=ce(D|0,H|0,1,0)|0,H=S()|0,R=ce(R|0,j|0,1,0)|0,j=S()|0,h=Ge,f=n[h>>2]|0,h=n[h+4>>2]|0,(j|0)<(h|0)|(j|0)==(h|0)&R>>>0<f>>>0)f=p,h=g;else break}if((h|0)>0|(h|0)==0&f>>>0>0){f=0,h=0;do j=z+(f<<3)|0,n[j>>2]=0,n[j+4>>2]=0,f=ce(f|0,h|0,1,0)|0,h=S()|0,j=Ge,R=n[j+4>>2]|0;while((h|0)<(R|0)|((h|0)==(R|0)?f>>>0<(n[j>>2]|0)>>>0:0))}if(j=Ge,n[j>>2]=p,n[j+4>>2]=g,(g|0)>0|(g|0)==0&p>>>0>0)P=c,D=ee,H=me,R=K,j=V,c=O,ee=l,K=le,O=P,l=D,me=$,$=H,le=R,V=z,z=j;else break t}fe(le),fe($),fe(Re),l=1;break e}else l=p;while(!1);fe(Re),fe(c),fe(l),l=0}while(!1);return Re=l,I=He,Re|0}}return fe(Re),Re=l,I=He,Re|0}function iy(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0;if(p=I,I=I+16|0,h=p,s=_y(s,o,((o|0)<0)<<31>>31,h)|0,s|0)return h=s,I=p,h|0;if(f=tT(h,c)|0,c=h+4|0,(n[h>>2]|0)>0){o=0;do{if(l=n[c>>2]|0,u=l+(o<<4)+4|0,fe(n[u>>2]|0),n[u>>2]=0,n[l+(o<<4)>>2]=0,u=l+(o<<4)+8|0,l=l+(o<<4)+12|0,(n[u>>2]|0)>0){s=0;do g=n[l>>2]|0,T=g+(s<<3)+4|0,fe(n[T>>2]|0),n[T>>2]=0,n[g+(s<<3)>>2]=0,s=s+1|0;while((s|0)<(n[u>>2]|0))}fe(n[l>>2]|0),n[l>>2]=0,n[u>>2]=0,o=o+1|0}while((o|0)<(n[h>>2]|0))}return fe(n[c>>2]|0),n[c>>2]=0,n[h>>2]=0,T=f,I=p,T|0}function fr(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0;if(h=n[s>>2]|0,(h|0)<=0)return l=0,u=0,h=l<0,u=12.566370614359172-u,u=l+u,l=h?u:l,L[o>>3]=l,0;if(f=n[s+4>>2]|0,s=(h|0)!=1&1,p=+L[f>>3]*.5+.7853981633974483,l=+L[f+(s<<4)>>3]*.5+.7853981633974483,c=+We(+p)*+We(+l),u=+L[f+(s<<4)+8>>3]-+L[f+8>>3],c=+Qt(+(+We(+u)*c),+(+De(+p)*+De(+l)+ +De(+u)*c))*-2,u=c+0,c=u-c,(h|0)==1)return p=u,l=c,h=p<0,l=12.566370614359172-l,l=p+l,p=h?l:p,L[o>>3]=p,0;for(s=1,l=u;b=s,s=s+1|0,C=(s|0)%(h|0)|0,T=+L[f+(b<<4)>>3]*.5+.7853981633974483,g=+L[f+(C<<4)>>3]*.5+.7853981633974483,u=+We(+T)*+We(+g),p=+L[f+(C<<4)+8>>3]-+L[f+(b<<4)+8>>3],c=+Qt(+(+We(+p)*u),+(+De(+T)*+De(+g)+ +De(+p)*u))*-2-c,u=l+c,c=u-l-c,!((s|0)>=(h|0));)l=u;return C=u<0,T=12.566370614359172-c,T=u+T,T=C?T:u,L[o>>3]=T,0}function sy(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0;return h=I,I=I+192|0,u=h+176|0,l=h,f=h+168|0,s=Bn(s,o,l)|0,s|0?(f=s,I=h,f|0):(n[f>>2]=n[l>>2],n[f+4>>2]=l+8,n[u>>2]=n[f>>2],n[u+4>>2]=n[f+4>>2],fr(u,c)|0,f=0,I=h,f|0)}function oy(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0;return h=I,I=I+192|0,u=h+176|0,l=h,f=h+168|0,s=Bn(s,o,l)|0,s?(f=s,I=h,f|0):(n[f>>2]=n[l>>2],n[f+4>>2]=l+8,n[u>>2]=n[f>>2],n[u+4>>2]=n[f+4>>2],fr(u,c)|0,L[c>>3]=+L[c>>3]*40589732.49931477,f=0,I=h,f|0)}function ay(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0;return h=I,I=I+192|0,u=h+176|0,l=h,f=h+168|0,s=Bn(s,o,l)|0,s?(f=s,I=h,f|0):(n[f>>2]=n[l>>2],n[f+4>>2]=l+8,n[u>>2]=n[f>>2],n[u+4>>2]=n[f+4>>2],fr(u,c)|0,L[c>>3]=+L[c>>3]*40589732.49931477*1e6,f=0,I=h,f|0)}function ct(s){return s=s|0,s>>>0>121?(s=0,s|0):(s=n[7696+(s*28|0)+16>>2]|0,s|0)}function Ba(s){return s=s|0,(s|0)==4|(s|0)==117|0}function wu(s){return s=s|0,n[11120+((n[s>>2]|0)*216|0)+((n[s+4>>2]|0)*72|0)+((n[s+8>>2]|0)*24|0)+(n[s+12>>2]<<3)>>2]|0}function cy(s){return s=s|0,n[11120+((n[s>>2]|0)*216|0)+((n[s+4>>2]|0)*72|0)+((n[s+8>>2]|0)*24|0)+(n[s+12>>2]<<3)+4>>2]|0}function ly(s,o){s=s|0,o=o|0,s=7696+(s*28|0)|0,n[o>>2]=n[s>>2],n[o+4>>2]=n[s+4>>2],n[o+8>>2]=n[s+8>>2],n[o+12>>2]=n[s+12>>2]}function uy(s,o){s=s|0,o=o|0;var c=0,u=0;if(o>>>0>20)return o=-1,o|0;do if((n[11120+(o*216|0)>>2]|0)!=(s|0))if((n[11120+(o*216|0)+8>>2]|0)!=(s|0))if((n[11120+(o*216|0)+16>>2]|0)!=(s|0))if((n[11120+(o*216|0)+24>>2]|0)!=(s|0))if((n[11120+(o*216|0)+32>>2]|0)!=(s|0))if((n[11120+(o*216|0)+40>>2]|0)!=(s|0))if((n[11120+(o*216|0)+48>>2]|0)!=(s|0))if((n[11120+(o*216|0)+56>>2]|0)!=(s|0))if((n[11120+(o*216|0)+64>>2]|0)!=(s|0))if((n[11120+(o*216|0)+72>>2]|0)!=(s|0))if((n[11120+(o*216|0)+80>>2]|0)!=(s|0))if((n[11120+(o*216|0)+88>>2]|0)!=(s|0))if((n[11120+(o*216|0)+96>>2]|0)!=(s|0))if((n[11120+(o*216|0)+104>>2]|0)!=(s|0))if((n[11120+(o*216|0)+112>>2]|0)!=(s|0))if((n[11120+(o*216|0)+120>>2]|0)!=(s|0))if((n[11120+(o*216|0)+128>>2]|0)!=(s|0))if((n[11120+(o*216|0)+136>>2]|0)==(s|0))s=2,c=1,u=2;else{if((n[11120+(o*216|0)+144>>2]|0)==(s|0)){s=0,c=2,u=0;break}if((n[11120+(o*216|0)+152>>2]|0)==(s|0)){s=0,c=2,u=1;break}if((n[11120+(o*216|0)+160>>2]|0)==(s|0)){s=0,c=2,u=2;break}if((n[11120+(o*216|0)+168>>2]|0)==(s|0)){s=1,c=2,u=0;break}if((n[11120+(o*216|0)+176>>2]|0)==(s|0)){s=1,c=2,u=1;break}if((n[11120+(o*216|0)+184>>2]|0)==(s|0)){s=1,c=2,u=2;break}if((n[11120+(o*216|0)+192>>2]|0)==(s|0)){s=2,c=2,u=0;break}if((n[11120+(o*216|0)+200>>2]|0)==(s|0)){s=2,c=2,u=1;break}if((n[11120+(o*216|0)+208>>2]|0)==(s|0)){s=2,c=2,u=2;break}else s=-1;return s|0}else s=2,c=1,u=1;else s=2,c=1,u=0;else s=1,c=1,u=2;else s=1,c=1,u=1;else s=1,c=1,u=0;else s=0,c=1,u=2;else s=0,c=1,u=1;else s=0,c=1,u=0;else s=2,c=0,u=2;else s=2,c=0,u=1;else s=2,c=0,u=0;else s=1,c=0,u=2;else s=1,c=0,u=1;else s=1,c=0,u=0;else s=0,c=0,u=2;else s=0,c=0,u=1;else s=0,c=0,u=0;while(!1);return o=n[11120+(o*216|0)+(c*72|0)+(s*24|0)+(u<<3)+4>>2]|0,o|0}function Bu(s,o){return s=s|0,o=o|0,(n[7696+(s*28|0)+20>>2]|0)==(o|0)?(o=1,o|0):(o=(n[7696+(s*28|0)+24>>2]|0)==(o|0),o|0)}function va(s,o){return s=s|0,o=o|0,n[848+(s*28|0)+(o<<2)>>2]|0}function Ma(s,o){return s=s|0,o=o|0,(n[848+(s*28|0)>>2]|0)==(o|0)?(o=0,o|0):(n[848+(s*28|0)+4>>2]|0)==(o|0)?(o=1,o|0):(n[848+(s*28|0)+8>>2]|0)==(o|0)?(o=2,o|0):(n[848+(s*28|0)+12>>2]|0)==(o|0)?(o=3,o|0):(n[848+(s*28|0)+16>>2]|0)==(o|0)?(o=4,o|0):(n[848+(s*28|0)+20>>2]|0)==(o|0)?(o=5,o|0):((n[848+(s*28|0)+24>>2]|0)==(o|0)?6:7)|0}function fy(){return 122}function hy(s){s=s|0;var o=0,c=0,u=0;o=0;do oe(o|0,0,45)|0,u=S()|134225919,c=s+(o<<3)|0,n[c>>2]=-1,n[c+4>>2]=u,o=o+1|0;while((o|0)!=122);return 0}function dy(s){s=s|0;var o=0,c=0,u=0;return u=+L[s+16>>3],c=+L[s+24>>3],o=u-c,+(u<c?o+6.283185307179586:o)}function py(s){return s=s|0,+L[s+16>>3]<+L[s+24>>3]|0}function my(s){return s=s|0,+(+L[s>>3]-+L[s+8>>3])}function vu(s,o){s=s|0,o=o|0;var c=0,u=0,l=0;return c=+L[o>>3],!(c>=+L[s+8>>3])||!(c<=+L[s>>3])?(o=0,o|0):(u=+L[s+16>>3],c=+L[s+24>>3],l=+L[o+8>>3],o=l>=c,s=l<=u&1,u<c?o&&(s=1):o||(s=0),o=(s|0)!=0,o|0)}function Ia(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;return+L[s>>3]<+L[o+8>>3]||+L[s+8>>3]>+L[o>>3]?(u=0,u|0):(f=+L[s+16>>3],c=s+24|0,b=+L[c>>3],h=f<b,u=o+16|0,T=+L[u>>3],l=o+24|0,g=+L[l>>3],p=T<g,o=b-T<g-f,s=h?p|o?1:2:0,o=p?h?1:o?2:1:0,f=+sr(f,s),f<+sr(+L[l>>3],o)||(b=+sr(+L[c>>3],s),b>+sr(+L[u>>3],o))?(p=0,p|0):(p=1,p|0))}function gy(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0;f=+L[s+16>>3],g=+L[s+24>>3],s=f<g,p=+L[o+16>>3],h=+L[o+24>>3],l=p<h,o=g-p<h-f,n[c>>2]=s?l|o?1:2:0,n[u>>2]=l?s?1:o?2:1:0}function Mu(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;return+L[s>>3]<+L[o>>3]||+L[s+8>>3]>+L[o+8>>3]?(u=0,u|0):(u=s+16|0,g=+L[u>>3],f=+L[s+24>>3],h=g<f,c=o+16|0,b=+L[c>>3],l=o+24|0,T=+L[l>>3],p=b<T,o=f-b<T-g,s=h?p|o?1:2:0,o=p?h?1:o?2:1:0,f=+sr(f,s),f<=+sr(+L[l>>3],o)?(b=+sr(+L[u>>3],s),p=b>=+sr(+L[c>>3],o),p|0):(p=0,p|0))}function Iu(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0;l=I,I=I+176|0,u=l,n[u>>2]=4,p=+L[o>>3],L[u+8>>3]=p,f=+L[o+16>>3],L[u+16>>3]=f,L[u+24>>3]=p,p=+L[o+24>>3],L[u+32>>3]=p,h=+L[o+8>>3],L[u+40>>3]=h,L[u+48>>3]=p,L[u+56>>3]=h,L[u+64>>3]=f,o=u+72|0,c=o+96|0;do n[o>>2]=0,o=o+4|0;while((o|0)<(c|0));xr(s|0,u|0,168)|0,I=l}function Su(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0;M=I,I=I+288|0,b=M+264|0,C=M+96|0,T=M,p=T,g=p+96|0;do n[p>>2]=0,p=p+4|0;while((p|0)<(g|0));return o=Ua(o,T)|0,o|0?(B=o,I=M,B|0):(g=T,T=n[g>>2]|0,g=n[g+4>>2]|0,$n(T,g,b)|0,Bn(T,g,C)|0,h=+Ai(b,C+8|0),L[b>>3]=+L[s>>3],g=b+8|0,L[g>>3]=+L[s+16>>3],L[C>>3]=+L[s+8>>3],T=C+8|0,L[T>>3]=+L[s+24>>3],l=+Ai(b,C),D=+L[g>>3]-+L[T>>3],f=+Ct(+D),P=+L[b>>3]-+L[C>>3],u=+Ct(+P),!(D==0|P==0)&&(D=+nf(+f,+u),D=+Yn(+(l*l/+cs(+(D/+cs(+f,+u)),3)/(h*(h*2.59807621135)*.8))),L[it>>3]=D,w=~~D>>>0,B=+Ct(D)>=1?D>0?~~+wa(+Mt(D/4294967296),4294967295)>>>0:~~+Yn((D-+(~~D>>>0))/4294967296)>>>0:0,(n[it+4>>2]&2146435072|0)!=2146435072)?(C=(w|0)==0&(B|0)==0,o=c,n[o>>2]=C?1:w,n[o+4>>2]=C?0:B,o=0):o=1,B=o,I=M,B|0)}function yy(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0;T=I,I=I+288|0,h=T+264|0,p=T+96|0,g=T,l=g,f=l+96|0;do n[l>>2]=0,l=l+4|0;while((l|0)<(f|0));return c=Ua(c,g)|0,c|0?(u=c,I=T,u|0):(c=g,l=n[c>>2]|0,c=n[c+4>>2]|0,$n(l,c,h)|0,Bn(l,c,p)|0,b=+Ai(h,p+8|0),b=+Yn(+(+Ai(s,o)/(b*2))),L[it>>3]=b,c=~~b>>>0,l=+Ct(b)>=1?b>0?~~+wa(+Mt(b/4294967296),4294967295)>>>0:~~+Yn((b-+(~~b>>>0))/4294967296)>>>0:0,(n[it+4>>2]&2146435072|0)==2146435072?(u=1,I=T,u|0):(g=(c|0)==0&(l|0)==0,n[u>>2]=g?1:c,n[u+4>>2]=g?0:l,u=0,I=T,u|0))}function Ty(s,o){s=s|0,o=+o;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;f=s+16|0,h=+L[f>>3],c=s+24|0,l=+L[c>>3],u=h-l,u=h<l?u+6.283185307179586:u,T=+L[s>>3],p=s+8|0,g=+L[p>>3],b=T-g,u=(u*o-u)*.5,o=(b*o-b)*.5,T=T+o,L[s>>3]=T>1.5707963267948966?1.5707963267948966:T,o=g-o,L[p>>3]=o<-1.5707963267948966?-1.5707963267948966:o,o=h+u,o=o>3.141592653589793?o+-6.283185307179586:o,L[f>>3]=o<-3.141592653589793?o+6.283185307179586:o,o=l-u,o=o>3.141592653589793?o+-6.283185307179586:o,L[c>>3]=o<-3.141592653589793?o+6.283185307179586:o}function _y(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0;if(ae=I,I=I+224|0,le=ae,K=ae+48|0,g=(c|0)>0|(c|0)==0&o>>>0>0,g&(c>>>0>0|(c|0)==0&o>>>0>17895697))return ne=14,I=ae,ne|0;if((c|0)<0)return ne=2,I=ae,ne|0;if((o|0)==0&(c|0)==0)return n[u>>2]=0,n[u+4>>2]=0,ne=0,I=ae,ne|0;for(l=s,l=Ra(n[l>>2]|0,n[l+4>>2]|0)|0,h=0,p=0;;){if(f=s+(h<<3)|0,ne=f,!(ts(n[ne>>2]|0,n[ne+4>>2]|0)|0)){l=5,$=159;break}if(ne=f,ne=(Ra(n[ne>>2]|0,n[ne+4>>2]|0)|0)==(l|0),h=ce(h|0,p|0,1,0)|0,p=S()|0,!ne){l=12,$=159;break}if(!((p|0)<(c|0)|(p|0)==(c|0)&h>>>0<o>>>0)){$=8;break}}if(($|0)==8){do if((c|0)>0|(c|0)==0&o>>>0>1){if(l=o<<3,h=lt(l)|0,!h)return ne=13,I=ae,ne|0;for(xr(h|0,s|0,l|0)|0,is(h,o,8,1),l=1,f=0;me=h+(l<<3)|0,ne=h+(l+-1<<3)|0,ne=(n[me>>2]|0)==(n[ne>>2]|0)?(n[me+4>>2]|0)==(n[ne+4>>2]|0):0,l=ce(l|0,f|0,1,0)|0,f=S()|0,!ne;)if(!((f|0)<(c|0)|(f|0)==(c|0)&l>>>0<o>>>0)){$=14;break}if(($|0)==14){fe(h);break}return fe(h),ne=10,I=ae,ne|0}while(!1);if(l=ut(o|0,c|0,6,0)|0,f=S()|0,g){h=0,p=0;do ne=s+(p<<3)|0,ne=((et(n[ne>>2]|0,n[ne+4>>2]|0)|0)!=0)<<31>>31,l=ce(l|0,f|0,ne|0,((ne|0)<0)<<31>>31|0)|0,f=S()|0,p=ce(p|0,h|0,1,0)|0,h=S()|0;while((h|0)<(c|0)|(h|0)==(c|0)&p>>>0<o>>>0);O=l,j=f}else O=l,j=f;if(H=ut(O|0,j|0,10,0)|0,R=S()|0,me=lt(O<<5)|0,!me)return ne=13,I=ae,ne|0;if(ne=zt(H,4)|0,!ne)return fe(me),ne=13,I=ae,ne|0;e:do if(g){for(V=s,Sa(n[V>>2]|0,n[V+4>>2]|0,le)|0,B=me,M=0,P=0,l=0,D=0;;){g=le,g=(n[g>>2]|0)==0&(n[g+4>>2]|0)==0,f=g?26990:26995,h=g?5:6,p=0,g=le+((g&1)<<3)|0,T=ce(h|0,p|0,-1,-1)|0,b=S()|0,C=0,w=0;do z=g+(C<<3)|0,ee=n[z+4>>2]|0,V=B+(C<<5)|0,n[V>>2]=n[z>>2],n[V+4>>2]=ee,W[B+(C<<5)+9>>0]=0,W[B+(C<<5)+8>>0]=0,n[B+(C<<5)+20>>2]=B,V=B+(C<<5)+24|0,n[V>>2]=1,n[V+4>>2]=0,V=W[f+C>>0]|0,ee=ce(T|0,b|0,C|0,w|0)|0,ee=Jr(ee|0,S()|0,h|0,p|0)|0,S()|0,ee=W[f+ee>>0]|0,C=ce(C|0,w|0,1,0)|0,w=S()|0,z=W[f+((C|0)==(h|0)&(w|0)==(p|0)?0:C)>>0]|0,V=V&255,n[B+(V<<5)+16>>2]=B+((ee&255)<<5),n[B+(V<<5)+12>>2]=B+((z&255)<<5);while(w>>>0<p>>>0|(w|0)==(p|0)&C>>>0<h>>>0);if(M=ce(M|0,P|0,1,0)|0,P=S()|0,l=ce(h|0,p|0,l|0,D|0)|0,D=S()|0,!((P|0)<(c|0)|(P|0)==(c|0)&M>>>0<o>>>0))break e;V=s+(M<<3)|0,Sa(n[V>>2]|0,n[V+4>>2]|0,le)|0||(B=me+(l<<5)|0)}Oe(27634,26956,108,26975)}while(!1);if((j|0)>0|(j|0)==0&O>>>0>0){p=0,g=0;do{if(f=me+(p<<5)|0,h=n[f>>2]|0,f=n[f+4>>2]|0,l=te(h|0,f|0,30)|0,f=ut(l^h|0,(S()|0)^f|0,484763065,-1084733587)|0,h=S()|0,l=te(f|0,h|0,27)|0,h=ut(l^f|0,(S()|0)^h|0,321982955,-1798288965)|0,f=S()|0,l=te(h|0,f|0,31)|0,f=Jr(l^h|0,(S()|0)^f|0,H|0,R|0)|0,h=S()|0,l=ne+(f<<2)|0,n[l>>2]|0)do l=ce(f|0,h|0,1,0)|0,f=on(l|0,S()|0,H|0,R|0)|0,h=S()|0,l=ne+(f<<2)|0;while((n[l>>2]|0)!=0);n[l>>2]=me+(p<<5),p=ce(p|0,g|0,1,0)|0,g=S()|0}while((g|0)<(j|0)|(g|0)==(j|0)&p>>>0<O>>>0);C=0,w=0;do{if(p=me+(C<<5)|0,g=me+(C<<5)+9|0,!(W[g>>0]|0)){if(V=p,Lu(n[V>>2]|0,n[V+4>>2]|0,le)|0){$=39;break}b=le,T=n[b>>2]|0,b=n[b+4>>2]|0,f=te(T|0,b|0,30)|0,f=ut(f^T|0,(S()|0)^b|0,484763065,-1084733587)|0,h=S()|0,l=te(f|0,h|0,27)|0,h=ut(l^f|0,(S()|0)^h|0,321982955,-1798288965)|0,f=S()|0,l=te(h|0,f|0,31)|0,f=Jr(l^h|0,(S()|0)^f|0,H|0,R|0)|0,h=S()|0,l=n[ne+(f<<2)>>2]|0;e:do if(l|0){for(;V=l,!((n[V>>2]|0)==(T|0)&&(n[V+4>>2]|0)==(b|0));)if(l=ce(f|0,h|0,1,0)|0,f=on(l|0,S()|0,H|0,R|0)|0,h=S()|0,l=n[ne+(f<<2)>>2]|0,!l)break e;W[g>>0]=1,W[l+9>>0]=1,f=l+16|0,V=me+(C<<5)+12|0,n[(n[V>>2]|0)+16>>2]=n[f>>2],c=l+12|0,z=n[me+(C<<5)+16>>2]|0,n[z+12>>2]=n[c>>2],n[(n[c>>2]|0)+16>>2]=z,n[(n[f>>2]|0)+12>>2]=n[V>>2],f=es(p)|0,V=es(l)|0,l=f+24|0,c=n[l+4>>2]|0,z=V+24|0,ee=n[z+4>>2]|0,z=(c|0)<(ee|0)|((c|0)==(ee|0)?(n[l>>2]|0)>>>0<(n[z>>2]|0)>>>0:0),l=z?f:V,f=z?V:f,(f|0)!=(l|0)&&(ee=l+24|0,V=f+24|0,z=V,ee=ce(n[z>>2]|0,n[z+4>>2]|0,n[ee>>2]|0,n[ee+4>>2]|0)|0,z=S()|0,n[V>>2]=ee,n[V+4>>2]=z,n[l+20>>2]=f)}while(!1)}C=ce(C|0,w|0,1,0)|0,w=S()|0}while((w|0)<(j|0)|(w|0)==(j|0)&C>>>0<O>>>0);($|0)==39&&Oe(27634,26956,258,27001),l=0,f=0;do W[me+(l<<5)+8>>0]=0,l=ce(l|0,f|0,1,0)|0,f=S()|0;while((f|0)<(j|0)|(f|0)==(j|0)&l>>>0<O>>>0);for(T=0,h=0,g=0,b=0;;){if(l=me+(T<<5)|0,(W[me+(T<<5)+8>>0]|0)==0&&(W[me+(T<<5)+9>>0]|0)==0){p=l,f=n[p>>2]|0,p=n[p+4>>2]|0;do W[l+8>>0]=1,l=n[l+12>>2]|0,V=l;while(!((n[V>>2]|0)==(f|0)&&(n[V+4>>2]|0)==(p|0)));h=ce(h|0,g|0,1,0)|0,p=S()|0}else p=g;if(T=ce(T|0,b|0,1,0)|0,b=S()|0,(b|0)<(j|0)|(b|0)==(j|0)&T>>>0<O>>>0)g=p;else break}l=0,f=0;do W[me+(l<<5)+8>>0]=0,l=ce(l|0,f|0,1,0)|0,f=S()|0;while((f|0)<(j|0)|(f|0)==(j|0)&l>>>0<O>>>0);z=h,ee=p,l=1}else z=0,ee=0,l=0;V=lt(z*24|0)|0;e:do if(V|0){t:do if(l){s=0,H=0,c=0,o=0;r:for(;;){if(l=me+(s<<5)|0,(W[me+(s<<5)+8>>0]|0)==0&&(W[me+(s<<5)+9>>0]|0)==0){D=l,P=n[D>>2]|0,D=n[D+4>>2]|0,f=0,h=0;do f=ce(f|0,h|0,2,0)|0,h=S()|0,l=n[l+12>>2]|0,R=l;while(!((n[R>>2]|0)==(P|0)&&(n[R+4>>2]|0)==(D|0)));if(M=lt(f<<4)|0,!M)break;f=P,h=D,B=0,w=0,p=0,g=0;do{if(ei(f,h,K)|0){$=69;break r}if(R=n[K>>2]|0,b=R+-1|0,C=((b|0)<0)<<31>>31,(R|0)>1){h=p,T=0,f=g,p=0;do R=M+(h<<4)|0,g=K+8+(T<<4)|0,n[R>>2]=n[g>>2],n[R+4>>2]=n[g+4>>2],n[R+8>>2]=n[g+8>>2],n[R+12>>2]=n[g+12>>2],h=ce(h|0,f|0,1,0)|0,f=S()|0,T=ce(T|0,p|0,1,0)|0,p=S()|0;while((p|0)<(C|0)|(p|0)==(C|0)&T>>>0<b>>>0);p=h,g=f}B=ce(B|0,w|0,b|0,C|0)|0,w=S()|0,W[l+8>>0]=1,l=n[l+12>>2]|0,h=l,f=n[h>>2]|0,h=n[h+4>>2]|0}while(!((f|0)==(P|0)&(h|0)==(D|0)));if(f=bT(M,B<<4)|0,!f){$=75;break}D=es(l)|0,R=n[D+4>>2]|0,l=V+(c*24|0)|0,n[l>>2]=n[D>>2],n[l+4>>2]=R,l=V+(c*24|0)+16|0,n[l>>2]=B,n[V+(c*24|0)+20>>2]=f,n[le>>2]=n[l>>2],n[le+4>>2]=n[l+4>>2],fr(le,V+(c*24|0)+8|0)|0,f=ce(c|0,H|0,1,0)|0,l=S()|0}else f=c,l=H;if(s=ce(s|0,o|0,1,0)|0,o=S()|0,(o|0)<(j|0)|(o|0)==(j|0)&s>>>0<O>>>0)H=l,c=f;else break t}if(($|0)==69?Oe(27634,26956,351,27016):($|0)==75&&fe(M),(H|0)>0|(H|0)==0&c>>>0>0)for(p=0,g=0,l=c,h=H;f=n[V+(p*24|0)+20>>2]|0,f?(fe(f),f=H,l=c):f=h,p=ce(p|0,g|0,1,0)|0,g=S()|0,(g|0)<(f|0)|(g|0)==(f|0)&p>>>0<l>>>0;)h=f;fe(V);break e}while(!1);is(V,z,24,2);t:do if((z|0)==0&(ee|0)==0){if(R=lt(192)|0,R|0){if(n[R+16>>2]=0,n[R+20>>2]=0,w=R+8|0,n[w>>2]=3,l=lt(48)|0,B=R+12|0,n[B>>2]=l,l|0){n[l>>2]=n[3860],n[l+4>>2]=n[3861],n[l+8>>2]=n[3862],n[l+12>>2]=n[3863],C=l+16|0,n[C>>2]=n[3864],n[C+4>>2]=n[3865],n[C+8>>2]=n[3866],n[C+12>>2]=n[3867],C=l+32|0,n[C>>2]=n[3868],n[C+4>>2]=n[3869],n[C+8>>2]=n[3870],n[C+12>>2]=n[3871],n[le>>2]=n[w>>2],n[le+4>>2]=n[w+4>>2],fr(le,R)|0,n[R+40>>2]=0,n[R+44>>2]=0,C=R+32|0,n[C>>2]=3,l=lt(48)|0,M=R+36|0,n[M>>2]=l;do if(!l)p=0,g=1;else{if(n[l>>2]=n[3872],n[l+4>>2]=n[3873],n[l+8>>2]=n[3874],n[l+12>>2]=n[3875],b=l+16|0,n[b>>2]=n[3876],n[b+4>>2]=n[3877],n[b+8>>2]=n[3878],n[b+12>>2]=n[3879],b=l+32|0,n[b>>2]=n[3880],n[b+4>>2]=n[3881],n[b+8>>2]=n[3882],n[b+12>>2]=n[3883],n[le>>2]=n[C>>2],n[le+4>>2]=n[C+4>>2],fr(le,R+24|0)|0,n[R+64>>2]=0,n[R+68>>2]=0,b=R+56|0,n[b>>2]=3,l=lt(48)|0,P=R+60|0,n[P>>2]=l,!l){p=0,g=2;break}if(n[l>>2]=n[3884],n[l+4>>2]=n[3885],n[l+8>>2]=n[3886],n[l+12>>2]=n[3887],T=l+16|0,n[T>>2]=n[3888],n[T+4>>2]=n[3889],n[T+8>>2]=n[3890],n[T+12>>2]=n[3891],T=l+32|0,n[T>>2]=n[3892],n[T+4>>2]=n[3893],n[T+8>>2]=n[3894],n[T+12>>2]=n[3895],n[le>>2]=n[b>>2],n[le+4>>2]=n[b+4>>2],fr(le,R+48|0)|0,n[R+88>>2]=0,n[R+92>>2]=0,T=R+80|0,n[T>>2]=3,l=lt(48)|0,D=R+84|0,n[D>>2]=l,!l){p=0,g=3;break}if(n[l>>2]=n[3896],n[l+4>>2]=n[3897],n[l+8>>2]=n[3898],n[l+12>>2]=n[3899],g=l+16|0,n[g>>2]=n[3900],n[g+4>>2]=n[3901],n[g+8>>2]=n[3902],n[g+12>>2]=n[3903],g=l+32|0,n[g>>2]=n[3904],n[g+4>>2]=n[3905],n[g+8>>2]=n[3906],n[g+12>>2]=n[3907],n[le>>2]=n[T>>2],n[le+4>>2]=n[T+4>>2],fr(le,R+72|0)|0,n[R+112>>2]=0,n[R+116>>2]=0,g=R+104|0,n[g>>2]=3,l=lt(48)|0,s=R+108|0,n[s>>2]=l,!l){p=0,g=4;break}if(n[l>>2]=n[3908],n[l+4>>2]=n[3909],n[l+8>>2]=n[3910],n[l+12>>2]=n[3911],p=l+16|0,n[p>>2]=n[3912],n[p+4>>2]=n[3913],n[p+8>>2]=n[3914],n[p+12>>2]=n[3915],p=l+32|0,n[p>>2]=n[3916],n[p+4>>2]=n[3917],n[p+8>>2]=n[3918],n[p+12>>2]=n[3919],n[le>>2]=n[g>>2],n[le+4>>2]=n[g+4>>2],fr(le,R+96|0)|0,n[R+136>>2]=0,n[R+140>>2]=0,p=R+128|0,n[p>>2]=3,l=lt(48)|0,o=R+132|0,n[o>>2]=l,!l){p=0,g=5;break}if(n[l>>2]=n[3920],n[l+4>>2]=n[3921],n[l+8>>2]=n[3922],n[l+12>>2]=n[3923],h=l+16|0,n[h>>2]=n[3924],n[h+4>>2]=n[3925],n[h+8>>2]=n[3926],n[h+12>>2]=n[3927],h=l+32|0,n[h>>2]=n[3928],n[h+4>>2]=n[3929],n[h+8>>2]=n[3930],n[h+12>>2]=n[3931],n[le>>2]=n[p>>2],n[le+4>>2]=n[p+4>>2],fr(le,R+120|0)|0,n[R+160>>2]=0,n[R+164>>2]=0,h=R+152|0,n[h>>2]=3,l=lt(48)|0,c=R+156|0,n[c>>2]=l,!l){p=0,g=6;break}if(n[l>>2]=n[3932],n[l+4>>2]=n[3933],n[l+8>>2]=n[3934],n[l+12>>2]=n[3935],f=l+16|0,n[f>>2]=n[3936],n[f+4>>2]=n[3937],n[f+8>>2]=n[3938],n[f+12>>2]=n[3939],f=l+32|0,n[f>>2]=n[3940],n[f+4>>2]=n[3941],n[f+8>>2]=n[3942],n[f+12>>2]=n[3943],n[le>>2]=n[h>>2],n[le+4>>2]=n[h+4>>2],fr(le,R+144|0)|0,n[R+184>>2]=0,n[R+188>>2]=0,f=R+176|0,n[f>>2]=3,l=lt(48)|0,H=R+180|0,n[H>>2]=l,!l){p=0,g=7;break}if(n[l>>2]=n[3944],n[l+4>>2]=n[3945],n[l+8>>2]=n[3946],n[l+12>>2]=n[3947],K=l+16|0,n[K>>2]=n[3948],n[K+4>>2]=n[3949],n[K+8>>2]=n[3950],n[K+12>>2]=n[3951],l=l+32|0,n[l>>2]=n[3952],n[l+4>>2]=n[3953],n[l+8>>2]=n[3954],n[l+12>>2]=n[3955],n[le>>2]=n[f>>2],n[le+4>>2]=n[f+4>>2],fr(le,R+168|0)|0,is(R,8,24,3),l=lt(128)|0,n[u+4>>2]=l,l|0){n[u>>2]=8,n[l>>2]=n[w>>2],n[l+4>>2]=n[w+4>>2],n[l+8>>2]=n[w+8>>2],n[l+12>>2]=n[w+12>>2],$=l+16|0,n[$>>2]=n[C>>2],n[$+4>>2]=n[C+4>>2],n[$+8>>2]=n[C+8>>2],n[$+12>>2]=n[C+12>>2],$=l+32|0,n[$>>2]=n[b>>2],n[$+4>>2]=n[b+4>>2],n[$+8>>2]=n[b+8>>2],n[$+12>>2]=n[b+12>>2],$=l+48|0,n[$>>2]=n[T>>2],n[$+4>>2]=n[T+4>>2],n[$+8>>2]=n[T+8>>2],n[$+12>>2]=n[T+12>>2],$=l+64|0,n[$>>2]=n[g>>2],n[$+4>>2]=n[g+4>>2],n[$+8>>2]=n[g+8>>2],n[$+12>>2]=n[g+12>>2],$=l+80|0,n[$>>2]=n[p>>2],n[$+4>>2]=n[p+4>>2],n[$+8>>2]=n[p+8>>2],n[$+12>>2]=n[p+12>>2],$=l+96|0,n[$>>2]=n[h>>2],n[$+4>>2]=n[h+4>>2],n[$+8>>2]=n[h+8>>2],n[$+12>>2]=n[h+12>>2],$=l+112|0,n[$>>2]=n[f>>2],n[$+4>>2]=n[f+4>>2],n[$+8>>2]=n[f+8>>2],n[$+12>>2]=n[f+12>>2],fe(R),$=158;break t}l=n[B>>2]|0,l|0&&fe(l),l=n[M>>2]|0,l|0&&fe(l),l=n[P>>2]|0,l|0&&fe(l),l=n[D>>2]|0,l|0&&fe(l),l=n[s>>2]|0,l|0&&fe(l),l=n[o>>2]|0,l|0&&fe(l),l=n[c>>2]|0,l|0&&fe(l),l=n[H>>2]|0,l|0&&fe(l),fe(R);break t}while(!1);l=0,h=0;do f=n[R+(l*24|0)+12>>2]|0,f|0&&fe(f),l=ce(l|0,h|0,1,0)|0,h=S()|0;while(h>>>0<p>>>0|(h|0)==(p|0)&l>>>0<g>>>0)}fe(R),$=152}}else{if((ee|0)>0|(ee|0)==0&z>>>0>0){h=0,p=0,g=0,f=0,l=0,T=0;do K=V+(h*24|0)|0,le=p,p=n[K>>2]|0,$=g,g=n[K+4>>2]|0,f=ce(f|0,l|0,((p|0)!=(le|0)|(g|0)!=($|0))&1|0,0)|0,l=S()|0,h=ce(h|0,T|0,1,0)|0,T=S()|0;while((T|0)<(ee|0)|(T|0)==(ee|0)&h>>>0<z>>>0);D=f,P=l}else D=0,P=0;if(s=lt(D*24|0)|0,s){r:do if((ee|0)>=0){for(w=0,B=0,f=0,h=0,M=0,p=0;;){if(!((w|0)==(z|0)&(B|0)==(ee|0))&&(le=V+(f*24|0)|0,$=V+(w*24|0)|0,(n[le>>2]|0)==(n[$>>2]|0)?(n[le+4>>2]|0)==(n[$+4>>2]|0):0))l=M;else{if(b=V+(f*24|0)|0,$=Bt(w|0,B|0,f|0,h|0)|0,le=S()|0,C=ce($|0,le|0,-1,-1)|0,h=S()|0,(le|0)>0|(le|0)==0&$>>>0>1){if(l=lt(C<<3)|0,!l)break;g=0,T=0;do $=g,g=ce(g|0,T|0,1,0)|0,T=S()|0,K=b+(g*24|0)+16|0,le=n[K+4>>2]|0,$=l+($<<3)|0,n[$>>2]=n[K>>2],n[$+4>>2]=le;while((T|0)<(h|0)|(T|0)==(h|0)&g>>>0<C>>>0)}else l=0;le=V+(f*24|0)+16|0,$=n[le+4>>2]|0,h=s+(p*24|0)+8|0,n[h>>2]=n[le>>2],n[h+4>>2]=$,n[s+(p*24|0)+16>>2]=C,n[s+(p*24|0)+20>>2]=l,L[s+(p*24|0)>>3]=+L[V+(f*24|0)+8>>3],p=ce(p|0,M|0,1,0)|0,f=w,h=B,l=S()|0}if($=w,w=ce(w|0,B|0,1,0)|0,le=B,B=S()|0,(le|0)<(ee|0)|(le|0)==(ee|0)&$>>>0<z>>>0)M=l;else break r}if((M|0)>0|(M|0)==0&p>>>0>0){l=0,h=0;do f=n[s+(l*24|0)+20>>2]|0,f|0&&fe(f),l=ce(l|0,h|0,1,0)|0,h=S()|0;while((h|0)<(M|0)|(h|0)==(M|0)&l>>>0<p>>>0)}fe(s),$=152;break t}while(!1);if(is(s,D,24,3),l=lt(D<<4)|0,h=u+4|0,n[h>>2]=l,l){n[u>>2]=D;do if((P|0)>0|(P|0)==0&D>>>0>0){if(u=s+8|0,n[l>>2]=n[u>>2],n[l+4>>2]=n[u+4>>2],n[l+8>>2]=n[u+8>>2],n[l+12>>2]=n[u+12>>2],(D|0)==1&(P|0)==0||(u=l+16|0,$=s+32|0,n[u>>2]=n[$>>2],n[u+4>>2]=n[$+4>>2],n[u+8>>2]=n[$+8>>2],n[u+12>>2]=n[$+12>>2],!((P|0)>0|(P|0)==0&D>>>0>2)))break;l=2,f=0;do u=(n[h>>2]|0)+(l<<4)|0,$=s+(l*24|0)+8|0,n[u>>2]=n[$>>2],n[u+4>>2]=n[$+4>>2],n[u+8>>2]=n[$+8>>2],n[u+12>>2]=n[$+12>>2],l=ce(l|0,f|0,1,0)|0,f=S()|0;while((f|0)<(P|0)|(f|0)==(P|0)&l>>>0<D>>>0)}while(!1);fe(s),$=158;break}else{if((P|0)>0|(P|0)==0&D>>>0>0){l=0,h=0;do f=n[s+(l*24|0)+20>>2]|0,f|0&&fe(f),l=ce(l|0,h|0,1,0)|0,h=S()|0;while((h|0)<(P|0)|(h|0)==(P|0)&l>>>0<D>>>0)}fe(s),$=152;break}}else $=152}while(!1);if(($|0)==158)return fe(me),fe(ne),fe(V),ne=0,I=ae,ne|0;if(($|0)==152&&(ee|0)>0|(ee|0)==0&z>>>0>0)for(p=0,g=0,l=z,h=ee;f=n[V+(p*24|0)+20>>2]|0,f?(fe(f),f=ee,l=z):f=h,p=ce(p|0,g|0,1,0)|0,g=S()|0,(g|0)<(f|0)|(g|0)==(f|0)&p>>>0<l>>>0;)h=f;return fe(V),fe(me),fe(ne),ne=13,I=ae,ne|0}while(!1);return fe(me),fe(ne),ne=13,I=ae,ne|0}else if(($|0)==159)return I=ae,l|0;return 0}function by(s,o){s=s|0,o=o|0;var c=0,u=0;return u=s,s=n[u>>2]|0,u=n[u+4>>2]|0,c=o,o=n[c>>2]|0,c=n[c+4>>2]|0,(u>>>0<c>>>0|(u|0)==(c|0)&s>>>0<o>>>0?-1:(u>>>0>c>>>0|(u|0)==(c|0)&s>>>0>o>>>0)&1)|0}function es(s){s=s|0;var o=0,c=0;return o=s+20|0,c=n[o>>2]|0,(c|0)==(s|0)?s|0:(c=es(c)|0,n[o>>2]=c,c|0)}function Ey(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0;return p=s,h=n[p>>2]|0,p=n[p+4>>2]|0,f=o,l=n[f>>2]|0,f=n[f+4>>2]|0,p>>>0<f>>>0|(p|0)==(f|0)&h>>>0<l>>>0?(o=-1,o|0):p>>>0>f>>>0|(p|0)==(f|0)&h>>>0>l>>>0?(o=1,o|0):(u=+L[s+8>>3],c=+L[o+8>>3],u<c?(o=-1,o|0):(o=u>c&1,o|0))}function xy(s,o){s=s|0,o=o|0;var c=0,u=0;return u=+L[s>>3],c=+L[o>>3],(u>c?-1:u<c&1)|0}function Cy(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0;if(C=I,I=I+64|0,b=C,p=C+56|0,!(!0&(o&2013265920|0)==134217728&(!0&(u&2013265920|0)==134217728)))return l=5,I=C,l|0;if((s|0)==(c|0)&(o|0)==(u|0))return n[l>>2]=0,l=0,I=C,l|0;if(h=te(s|0,o|0,52)|0,S()|0,h=h&15,T=te(c|0,u|0,52)|0,S()|0,(h|0)!=(T&15|0))return l=12,I=C,l|0;if(f=h+-1|0,h>>>0>1){Da(s,o,f,b)|0,Da(c,u,f,p)|0,T=b,g=n[T>>2]|0,T=n[T+4>>2]|0;e:do if((g|0)==(n[p>>2]|0)&&(T|0)==(n[p+4>>2]|0)){h=(h^15)*3|0,f=te(s|0,o|0,h|0)|0,S()|0,f=f&7,h=te(c|0,u|0,h|0)|0,S()|0,h=h&7;do if((f|0)==0|(h|0)==0)n[l>>2]=1,f=0;else if((f|0)==7)f=5;else{if((f|0)==1|(h|0)==1&&et(g,T)|0){f=5;break}if((n[15824+(f<<2)>>2]|0)!=(h|0)&&(n[15856+(f<<2)>>2]|0)!=(h|0))break e;n[l>>2]=1,f=0}while(!1);return l=f,I=C,l|0}while(!1)}f=b,h=f+56|0;do n[f>>2]=0,f=f+4|0;while((f|0)<(h|0));return _u(s,o,1,b)|0,o=b,!((n[o>>2]|0)==(c|0)&&(n[o+4>>2]|0)==(u|0))&&(o=b+8|0,!((n[o>>2]|0)==(c|0)&&(n[o+4>>2]|0)==(u|0)))&&(o=b+16|0,!((n[o>>2]|0)==(c|0)&&(n[o+4>>2]|0)==(u|0)))&&(o=b+24|0,!((n[o>>2]|0)==(c|0)&&(n[o+4>>2]|0)==(u|0)))&&(o=b+32|0,!((n[o>>2]|0)==(c|0)&&(n[o+4>>2]|0)==(u|0)))&&(o=b+40|0,!((n[o>>2]|0)==(c|0)&&(n[o+4>>2]|0)==(u|0)))?(f=b+48|0,f=((n[f>>2]|0)==(c|0)?(n[f+4>>2]|0)==(u|0):0)&1):f=1,n[l>>2]=f,l=0,I=C,l|0}function wy(s,o,c,u,l){return s=s|0,o=o|0,c=c|0,u=u|0,l=l|0,c=$i(s,o,c,u)|0,(c|0)==7?(l=11,l|0):(u=oe(c|0,0,56)|0,o=o&-2130706433|(S()|0)|268435456,n[l>>2]=s|u,n[l+4>>2]=o,l=0,l|0)}function By(s,o,c){return s=s|0,o=o|0,c=c|0,!0&(o&2013265920|0)==268435456?(n[c>>2]=s,n[c+4>>2]=o&-2130706433|134217728,c=0,c|0):(c=6,c|0)}function vy(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0;return l=I,I=I+16|0,u=l,n[u>>2]=0,!0&(o&2013265920|0)==268435456?(f=te(s|0,o|0,56)|0,S()|0,u=wt(s,o&-2130706433|134217728,f&7,u,c)|0,I=l,u|0):(u=6,I=l,u|0)}function Fu(s,o){s=s|0,o=o|0;var c=0;switch(c=te(s|0,o|0,56)|0,S()|0,c&7){case 0:case 7:return c=0,c|0;default:}return c=o&-2130706433|134217728,!(!0&(o&2013265920|0)==268435456)||!0&(o&117440512|0)==16777216&(et(s,c)|0)!=0?(c=0,c|0):(c=ts(s,c)|0,c|0)}function My(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0;return l=I,I=I+16|0,u=l,!0&(o&2013265920|0)==268435456?(f=o&-2130706433|134217728,h=c,n[h>>2]=s,n[h+4>>2]=f,n[u>>2]=0,o=te(s|0,o|0,56)|0,S()|0,u=wt(s,f,o&7,u,c+8|0)|0,I=l,u|0):(u=6,I=l,u|0)}function Sa(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0;return l=(et(s,o)|0)==0,o=o&-2130706433,u=c,n[u>>2]=l?s:0,n[u+4>>2]=l?o|285212672:0,u=c+8|0,n[u>>2]=s,n[u+4>>2]=o|301989888,u=c+16|0,n[u>>2]=s,n[u+4>>2]=o|318767104,u=c+24|0,n[u>>2]=s,n[u+4>>2]=o|335544320,u=c+32|0,n[u>>2]=s,n[u+4>>2]=o|352321536,c=c+40|0,n[c>>2]=s,n[c+4>>2]=o|369098752,0}function ei(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0;return h=I,I=I+16|0,l=h,f=o&-2130706433|134217728,!0&(o&2013265920|0)==268435456?(u=te(s|0,o|0,56)|0,S()|0,u=yT(s,f,u&7)|0,(u|0)==-1?(n[c>>2]=0,f=6,I=h,f|0):(Zn(s,f,l)|0&&Oe(27634,27035,282,27050),o=te(s|0,o|0,52)|0,S()|0,o=o&15,et(s,f)|0?Fa(l,o,u,2,c):La(l,o,u,2,c),f=0,I=h,f|0)):(f=6,I=h,f|0)}function Lu(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0;return h=I,I=I+16|0,u=h+8|0,l=h,f=o&-2130706433|134217728,!0&(o&2013265920|0)==268435456?(n[u>>2]=0,o=te(s|0,o|0,56)|0,S()|0,o=wt(s,f,o&7,u,l)|0,o|0?(c=o,I=h,c|0):(u=n[l>>2]|0,l=n[l+4>>2]|0,o=$i(u,l,s,f)|0,(o|0)==7?(c=11,I=h,c|0):(s=oe(o|0,0,56)|0,f=l&-2130706433|(S()|0)|268435456,n[c>>2]=u|s,n[c+4>>2]=f,c=0,I=h,c|0))):(c=6,I=h,c|0)}function Iy(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0;n[c>>2]=0,T=+L[s>>3],b=+L[s+8>>3],g=+L[s+16>>3],l=0,f=5,u=5,s=0;do P=+L[15888+(l*24|0)>>3]-T,M=+L[15888+(l*24|0)+8>>3]-b,h=+L[15888+(l*24|0)+16>>3]-g,h=P*P+M*M+h*h,h<u&&(n[c>>2]=l,f=h,s=l,u=h),l=l+1|0;while((l|0)!=20);if(f=+Vg(+(1-f*.5)),f<1e-16)g=0,h=0;else{if(O=+L[16368+(s*24|0)>>3],R=+L[15888+(s*24|0)>>3],j=+L[15888+(s*24|0)+8>>3],H=+L[15888+(s*24|0)+16>>3],K=-(H+(R*0+j*0)),h=R*K+0,P=j*K+0,K=H*K+1,D=+pt(+(K*K+(h*h+P*P))),D=D>0?1/D:0,h=h*D,P=P*D,D=K*D,K=-(T*R+b*j+g*H),M=T+R*K,u=b+j*K,T=g+H*K,b=+pt(+(T*T+(M*M+u*u))),b=b>0?1/b:0,M=M*b,u=u*b,b=T*b,u=+ni(O-+ni(+Qt(+(b*(j*h-R*P)+(M*(H*P-j*D)+u*(R*D-H*h))),+(D*b+(h*M+P*u))))),hr(o)|0?h=+ni(u+-.3334731722518321):h=u,u=+Zi(+f)*2.618033988749896,(o|0)>0){s=0;do u=u*2.6457513110645907,s=s+1|0;while((s|0)!=(o|0))}g=+De(+h)*u,h=+We(+h)*u}o=c+4|0,B=c+12|0,n[B>>2]=0,f=+Ct(+h)*1.1547005383792515,u=+Ct(+g)+f*.5,s=~~u,l=~~f,u=u-+(s|0),f=f-+(l|0);do if(u<.5)if(u<.3333333333333333)if(n[o>>2]=s,f<(u+1)*.5){n[c+8>>2]=l;break}else{l=l+1|0,n[c+8>>2]=l;break}else if(K=1-u,l=(!(f<K)&1)+l|0,n[c+8>>2]=l,K<=f&f<u*2){s=s+1|0,n[o>>2]=s;break}else{n[o>>2]=s;break}else{if(!(u<.6666666666666666))if(s=s+1|0,n[o>>2]=s,f<u*.5){n[c+8>>2]=l;break}else{l=l+1|0,n[c+8>>2]=l;break}if(f<1-u){if(n[c+8>>2]=l,u*2+-1<f){n[o>>2]=s;break}}else l=l+1|0,n[c+8>>2]=l;s=s+1|0,n[o>>2]=s}while(!1);do if(g<0)if(l&1){w=(l+1|0)/2|0,w=Bt(s|0,((s|0)<0)<<31>>31|0,w|0,((w|0)<0)<<31>>31|0)|0,s=~~(+(s|0)-((+(w>>>0)+4294967296*+(S()|0))*2+1)),n[o>>2]=s,w=o;break}else{w=(l|0)/2|0,w=Bt(s|0,((s|0)<0)<<31>>31|0,w|0,((w|0)<0)<<31>>31|0)|0,s=~~(+(s|0)-(+(w>>>0)+4294967296*+(S()|0))*2),n[o>>2]=s,w=o;break}else w=o;while(!1);C=c+8|0,o=0-l|0,h<0?(c=s-((l<<1|1)/2|0)|0,n[w>>2]=c,n[C>>2]=o,l=o):c=s,s=l-c|0,o=0-c|0,(c|0)<0?(n[C>>2]=s,n[B>>2]=o,n[w>>2]=0,p=0):(s=l,p=c,o=0),c=p-s|0,l=o-s|0,(s|0)<0?(n[w>>2]=c,n[B>>2]=l,n[C>>2]=0,p=c,s=0):l=o,c=p-l|0,o=s-l|0,(l|0)<0?(n[w>>2]=c,n[C>>2]=o,n[B>>2]=0,l=0):(o=s,c=p),s=(o|0)<(c|0)?o:c,s=(l|0)<(s|0)?l:s,!((s|0)<=0)&&(n[w>>2]=c-s,n[C>>2]=o-s,n[B>>2]=l-s)}function Sy(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0;u=I,I=I+16|0,l=u,h=n[s+12>>2]|0,f=+((n[s+8>>2]|0)-h|0),L[l>>3]=+((n[s+4>>2]|0)-h|0)-f*.5,L[l+8>>3]=f*.8660254037844386,ti(l,n[s>>2]|0,o,0,c),I=u}function ti(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0;if(f=+gT(s),f<1e-16){o=15888+(o*24|0)|0,n[l>>2]=n[o>>2],n[l+4>>2]=n[o+4>>2],n[l+8>>2]=n[o+8>>2],n[l+12>>2]=n[o+12>>2],n[l+16>>2]=n[o+16>>2],n[l+20>>2]=n[o+20>>2];return}if(h=+Qt(+ +L[s+8>>3],+ +L[s>>3]),(c|0)>0){s=0;do f=f*.37796447300922725,s=s+1|0;while((s|0)!=(c|0))}p=f*.3333333333333333,u?(c=(hr(c)|0)==0,f=+yu(+((c?p:p*.37796447300922725)*.381966011250105))):(f=+yu(+(f*.381966011250105)),hr(c)|0&&(h=+ni(h+.3334731722518321))),C=+ni(+L[16368+(o*24|0)>>3]-h),p=+L[15888+(o*24|0)>>3],b=+L[15888+(o*24|0)+8>>3],P=+L[15888+(o*24|0)+16>>3],B=-(P+(p*0+b*0)),T=p*B+0,h=b*B+0,B=P*B+1,w=+pt(+(B*B+(T*T+h*h))),w=w>0?1/w:0,T=T*w,h=h*w,w=B*w,B=+De(+C),C=+We(+C),D=+De(+f),M=+We(+f),g=D*p+M*(B*T+C*(P*h-b*w)),f=D*b+M*(B*h+C*(p*w-P*T)),h=D*P+M*(B*w+C*(b*T-p*h)),p=+pt(+(h*h+(g*g+f*f))),p=p>0?1/p:0,L[l>>3]=g*p,L[l+8>>3]=f*p,L[l+16>>3]=h*p}function Fa(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0,Ge=0,Ue=0,Pt=0,Re=0,He=0,Jt=0,bt=0,ht=0,Et=0,mt=0,er=0,It=0,St=0,pr=0,Dt=0,Xe=0,vn=0;if(er=I,I=I+256|0,f=er+240|0,Ge=er+224|0,ht=er,Et=er+208|0,mt=er+192|0,Ue=er+168|0,Pt=er+152|0,Re=er+136|0,He=er+120|0,Jt=er+104|0,bt=er+80|0,n[f>>2]=o,n[Ge>>2]=n[s>>2],n[Ge+4>>2]=n[s+4>>2],n[Ge+8>>2]=n[s+8>>2],n[Ge+12>>2]=n[s+12>>2],Ru(Ge,f,ht),n[l>>2]=0,Ge=u+c+((u|0)==5&1)|0,(Ge|0)<=(c|0)){I=er;return}O=n[f>>2]|0,j=Et+4|0,H=Et+8|0,R=Et+12|0,K=mt+8|0,ee=c+5|0,z=16848+(O<<2)|0,V=Ue+8|0,le=16928+(O<<2)|0,$=Pt+8|0,me=Re+8|0,ne=He+8|0,ae=mt+8|0,B=Ue+8|0,P=Ue+16|0,M=bt+8|0,D=bt+16|0,w=c,u=0,h=0,p=0,g=0;e:for(;;){C=ht+(((w|0)%5|0)<<4)|0,n[Et>>2]=n[C>>2],n[Et+4>>2]=n[C+4>>2],n[Et+8>>2]=n[C+8>>2],n[Et+12>>2]=n[C+12>>2];do;while((Wn(Et,O,0,1)|0)==2);if((w|0)>(c|0)&(hr(o)|0)!=0){if(C=n[Et>>2]|0,s=n[j>>2]|0,T=n[H>>2]|0,f=n[R>>2]|0,It=+(p-g|0),L[mt>>3]=+(h-g|0)-It*.5,L[K>>3]=It*.8660254037844386,g=n[17008+(C*80|0)+(u<<2)>>2]|0,b=n[18608+(C*80|0)+(g*20|0)>>2]|0,p=n[18608+(C*80|0)+(g*20|0)+16>>2]|0,(p|0)>0){h=0,u=T;do Dt=f+s|0,Xe=(Dt|0)<0,T=u+s-(Xe?Dt:0)|0,pr=(T|0)<0,St=f+u-(Xe?Dt:0)-(pr?T:0)|0,f=(St|0)<0,s=(Xe?0:Dt)-(pr?T:0)-(f?St:0)|0,u=(pr?0:T)-(f?St:0)|0,St=f?0:St,f=(u|0)<(s|0)?u:s,f=(St|0)<(f|0)?St:f,T=(f|0)>0,s=s-(T?f:0)|0,u=u-(T?f:0)|0,f=St-(T?f:0)|0,h=h+1|0;while((h|0)<(p|0))}else u=T;switch(Xe=(n[z>>2]|0)*3|0,St=(Zt(Xe,n[18608+(C*80|0)+(g*20|0)+4>>2]|0)|0)+s|0,T=(Zt(Xe,n[18608+(C*80|0)+(g*20|0)+8>>2]|0)|0)+u|0,Xe=(Zt(Xe,n[18608+(C*80|0)+(g*20|0)+12>>2]|0)|0)+f|0,g=(St|0)<0,T=T-(g?St:0)|0,pr=(T|0)<0,Xe=Xe+(g?0-St|0:0)+(pr?0-T|0:0)|0,Dt=(Xe|0)<0,St=(g?0:St)-(pr?T:0)-(Dt?Xe:0)|0,T=(pr?0:T)-(Dt?Xe:0)|0,Xe=Dt?0:Xe,Dt=(T|0)<(St|0)?T:St,Dt=(Xe|0)<(Dt|0)?Xe:Dt,pr=(Dt|0)>0,Xe=Xe-(pr?Dt:0)|0,It=+(T-(pr?Dt:0)-Xe|0),L[Ue>>3]=+(St-(pr?Dt:0)-Xe|0)-It*.5,L[V>>3]=It*.8660254037844386,It=+(n[le>>2]|0),L[Pt>>3]=It*3,L[$>>3]=0,vn=It*-1.5,L[Re>>3]=vn,L[me>>3]=It*2.598076211353316,L[He>>3]=vn,L[ne>>3]=It*-2.598076211353316,n[17008+(b*80|0)+(C<<2)>>2]|0){case 1:s=Re,u=Pt;break;case 3:s=He,u=Re;break;case 2:s=Pt,u=He;break;default:s=12;break e}qu(mt,Ue,u,s,Jt),ti(Jt,b,O,1,bt),Xe=n[l>>2]|0,It=+$A(+ +L[D>>3]),vn=+Qt(+ +L[M>>3],+ +L[bt>>3]),L[l+8+(Xe<<4)>>3]=It,L[l+8+(Xe<<4)+8>>3]=vn,n[l>>2]=(n[l>>2]|0)+1}if((w|0)<(ee|0)&&(Xe=n[R>>2]|0,It=+((n[H>>2]|0)-Xe|0),L[mt>>3]=+((n[j>>2]|0)-Xe|0)-It*.5,L[ae>>3]=It*.8660254037844386,ti(mt,n[Et>>2]|0,O,1,Ue),Xe=n[l>>2]|0,It=+$A(+ +L[P>>3]),vn=+Qt(+ +L[B>>3],+ +L[Ue>>3]),L[l+8+(Xe<<4)>>3]=It,L[l+8+(Xe<<4)+8>>3]=vn,n[l>>2]=(n[l>>2]|0)+1),w=w+1|0,(w|0)>=(Ge|0)){s=3;break}else u=n[Et>>2]|0,h=n[j>>2]|0,p=n[H>>2]|0,g=n[R>>2]|0}if((s|0)==3){I=er;return}else(s|0)==12&&Oe(27073,27120,599,27130)}function Ru(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;M=I,I=I+128|0,u=M+64|0,l=M,f=u,h=20208,p=f+60|0;do n[f>>2]=n[h>>2],f=f+4|0,h=h+4|0;while((f|0)<(p|0));f=l,h=20272,p=f+60|0;do n[f>>2]=n[h>>2],f=f+4|0,h=h+4|0;while((f|0)<(p|0));if(b=(hr(n[o>>2]|0)|0)==0,b=b?u:l,B=s+4|0,f=n[B>>2]|0,C=s+8|0,u=n[C>>2]|0,w=s+12|0,l=n[w>>2]|0,h=u+(f<<1)|0,n[B>>2]=h,u=l+(u<<1)|0,n[C>>2]=u,f=(l<<1)+f|0,n[w>>2]=f,l=u-h|0,p=f-h|0,(h|0)<0&&(n[C>>2]=l,n[w>>2]=p,n[B>>2]=0,u=l,h=0,f=p),p=h-u|0,l=f-u|0,(u|0)<0?(n[B>>2]=p,n[w>>2]=l,n[C>>2]=0,u=0):(l=f,p=h),h=p-l|0,f=u-l|0,(l|0)<0?(n[B>>2]=h,n[C>>2]=f,n[w>>2]=0,l=0):(f=u,h=p),u=(f|0)<(h|0)?f:h,u=(l|0)<(u|0)?l:u,(u|0)>0&&(l=l-u|0,f=f-u|0,h=h-u|0,n[B>>2]=h,n[C>>2]=f,n[w>>2]=l),g=(f<<1)+h|0,p=l+(h<<1)|0,n[B>>2]=p,n[C>>2]=g,f=(l<<1)+f|0,n[w>>2]=f,u=g-p|0,l=f-p|0,(p|0)<0?(n[C>>2]=u,n[w>>2]=l,n[B>>2]=0,p=0,f=l):u=g,h=p-u|0,l=f-u|0,(u|0)<0?(n[B>>2]=h,n[w>>2]=l,n[C>>2]=0,p=h,u=0):l=f,h=p-l|0,f=u-l|0,(l|0)<0?(n[B>>2]=h,n[C>>2]=f,n[w>>2]=0,l=0):(f=u,h=p),u=(f|0)<(h|0)?f:h,u=(l|0)<(u|0)?l:u,(u|0)>0&&(n[B>>2]=h-u,n[C>>2]=f-u,n[w>>2]=l-u),hr(n[o>>2]|0)|0&&(f=n[B>>2]|0,h=n[C>>2]|0,l=n[w>>2]|0,u=(h*3|0)+f|0,f=l+(f*3|0)|0,n[B>>2]=f,n[C>>2]=u,h=(l*3|0)+h|0,n[w>>2]=h,l=u-f|0,p=h-f|0,(f|0)<0?(n[C>>2]=l,n[w>>2]=p,n[B>>2]=0,u=l,g=0):(g=f,p=h),f=g-u|0,l=p-u|0,(u|0)<0?(n[B>>2]=f,n[w>>2]=l,n[C>>2]=0,g=f,h=0):(h=u,l=p),f=g-l|0,u=h-l|0,(l|0)<0?(n[B>>2]=f,n[C>>2]=u,n[w>>2]=0,h=u,l=0):f=g,u=(h|0)<(f|0)?h:f,u=(l|0)<(u|0)?l:u,(u|0)>0&&(n[B>>2]=f-u,n[C>>2]=h-u,n[w>>2]=l-u),n[o>>2]=(n[o>>2]|0)+1),n[c>>2]=n[s>>2],l=n[C>>2]|0,u=n[w>>2]|0,o=n[b+4>>2]|0,T=n[b+8>>2]|0,h=(n[b>>2]|0)+(n[B>>2]|0)|0,g=c+4|0,n[g>>2]=h,l=o+l|0,o=c+8|0,n[o>>2]=l,u=T+u|0,T=c+12|0,n[T>>2]=u,f=l-h|0,(h|0)<0&&(u=u-h|0,n[o>>2]=f,n[T>>2]=u,n[g>>2]=0,l=f,h=0),(l|0)<0&&(h=h-l|0,n[g>>2]=h,u=u-l|0,n[T>>2]=u,n[o>>2]=0,l=0),p=h-u|0,f=l-u|0,(u|0)<0?(n[g>>2]=p,n[o>>2]=f,n[T>>2]=0,h=p,u=0):f=l,l=(f|0)<(h|0)?f:h,l=(u|0)<(l|0)?u:l,(l|0)>0&&(n[g>>2]=h-l,n[o>>2]=f-l,n[T>>2]=u-l),n[c+16>>2]=n[s>>2],l=n[C>>2]|0,u=n[w>>2]|0,o=n[b+16>>2]|0,T=n[b+20>>2]|0,h=(n[b+12>>2]|0)+(n[B>>2]|0)|0,g=c+20|0,n[g>>2]=h,l=o+l|0,o=c+24|0,n[o>>2]=l,u=T+u|0,T=c+28|0,n[T>>2]=u,f=l-h|0,(h|0)<0&&(u=u-h|0,n[o>>2]=f,n[T>>2]=u,n[g>>2]=0,l=f,h=0),(l|0)<0&&(h=h-l|0,n[g>>2]=h,u=u-l|0,n[T>>2]=u,n[o>>2]=0,l=0),p=h-u|0,f=l-u|0,(u|0)<0?(n[g>>2]=p,n[o>>2]=f,n[T>>2]=0,h=p,u=0):f=l,l=(f|0)<(h|0)?f:h,l=(u|0)<(l|0)?u:l,(l|0)>0&&(n[g>>2]=h-l,n[o>>2]=f-l,n[T>>2]=u-l),n[c+32>>2]=n[s>>2],l=n[C>>2]|0,u=n[w>>2]|0,o=n[b+28>>2]|0,T=n[b+32>>2]|0,h=(n[b+24>>2]|0)+(n[B>>2]|0)|0,g=c+36|0,n[g>>2]=h,l=o+l|0,o=c+40|0,n[o>>2]=l,u=T+u|0,T=c+44|0,n[T>>2]=u,f=l-h|0,(h|0)<0&&(u=u-h|0,n[o>>2]=f,n[T>>2]=u,n[g>>2]=0,l=f,h=0),(l|0)<0&&(h=h-l|0,n[g>>2]=h,u=u-l|0,n[T>>2]=u,n[o>>2]=0,l=0),p=h-u|0,f=l-u|0,(u|0)<0?(n[g>>2]=p,n[o>>2]=f,n[T>>2]=0,h=p,u=0):f=l,l=(f|0)<(h|0)?f:h,l=(u|0)<(l|0)?u:l,(l|0)>0&&(n[g>>2]=h-l,n[o>>2]=f-l,n[T>>2]=u-l),n[c+48>>2]=n[s>>2],l=n[C>>2]|0,u=n[w>>2]|0,o=n[b+40>>2]|0,T=n[b+44>>2]|0,h=(n[b+36>>2]|0)+(n[B>>2]|0)|0,g=c+52|0,n[g>>2]=h,l=o+l|0,o=c+56|0,n[o>>2]=l,u=T+u|0,T=c+60|0,n[T>>2]=u,f=l-h|0,(h|0)<0&&(u=u-h|0,n[o>>2]=f,n[T>>2]=u,n[g>>2]=0,l=f,h=0),(l|0)<0&&(h=h-l|0,n[g>>2]=h,u=u-l|0,n[T>>2]=u,n[o>>2]=0,l=0),p=h-u|0,f=l-u|0,(u|0)<0?(n[g>>2]=p,n[o>>2]=f,n[T>>2]=0,h=p,u=0):f=l,l=(f|0)<(h|0)?f:h,l=(u|0)<(l|0)?u:l,(l|0)>0&&(n[g>>2]=h-l,n[o>>2]=f-l,n[T>>2]=u-l),n[c+64>>2]=n[s>>2],f=n[C>>2]|0,u=n[w>>2]|0,T=n[b+52>>2]|0,g=n[b+56>>2]|0,h=(n[b+48>>2]|0)+(n[B>>2]|0)|0,o=c+68|0,n[o>>2]=h,f=T+f|0,T=c+72|0,n[T>>2]=f,u=g+u|0,g=c+76|0,n[g>>2]=u,l=f-h|0,(h|0)<0?(u=u-h|0,n[T>>2]=l,n[g>>2]=u,n[o>>2]=0,f=0):(l=f,f=h),(l|0)<0&&(f=f-l|0,n[o>>2]=f,u=u-l|0,n[g>>2]=u,n[T>>2]=0,l=0),p=f-u|0,h=l-u|0,(u|0)<0?(n[o>>2]=p,n[T>>2]=h,n[g>>2]=0,f=p,u=0):h=l,l=(h|0)<(f|0)?h:f,l=(u|0)<(l|0)?u:l,(l|0)<=0){I=M;return}n[o>>2]=f-l,n[T>>2]=h-l,n[g>>2]=u-l,I=M}function Wn(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0;if(w=n[16928+(o<<2)>>2]|0,C=(u|0)!=0,w=C?w*3|0:w,b=s+4|0,p=n[b>>2]|0,T=s+8|0,f=n[T>>2]|0,C){if(h=s+12|0,u=n[h>>2]|0,l=f+p+u|0,(l|0)==(w|0))return w=1,w|0;g=h}else g=s+12|0,l=n[g>>2]|0,u=l,l=f+p+l|0;if((l|0)<=(w|0))return w=0,w|0;do if((u|0)>0){if(l=n[s>>2]|0,(f|0)>0){l=18608+(l*80|0)+60|0,h=p;break}l=18608+(l*80|0)+40|0,c?(h=p-w|0,c=f+h|0,B=(c|0)<0,f=u+f-(B?c:0)|0,p=(f|0)<0,u=u+h-(B?c:0)-(p?f:0)|0,h=(u|0)<0,c=(B?0:c)-(p?f:0)-(h?u:0)|0,f=(p?0:f)-(h?u:0)|0,u=h?0:u,h=(f|0)<(c|0)?f:c,h=(u|0)<(h|0)?u:h,p=(h|0)>0,f=f-(p?h:0)|0,u=u-(p?h:0)|0,h=c-(p?h:0)+w|0,n[b>>2]=h,n[T>>2]=f,n[g>>2]=u):h=p}else l=18608+((n[s>>2]|0)*80|0)+20|0,h=p;while(!1);if(n[s>>2]=n[l>>2],p=n[l+16>>2]|0,(p|0)>0){c=0;do B=u+h|0,M=(B|0)<0,H=M?B:0,P=f+h-H|0,D=(P|0)<0,s=D?P:0,h=u+f-H-s|0,f=(h|0)<0,u=f?0:h,h=f?h:0,f=(D?0:P)-h|0,h=(M?0:B)-s-h|0,s=(f|0)<(h|0)?f:h,s=(u|0)<(s|0)?u:s,(s|0)>0&&(h=h-s|0,f=f-s|0,u=u-s|0),c=c+1|0;while((c|0)<(p|0));n[b>>2]=h,n[T>>2]=f,n[g>>2]=u}return P=n[16848+(o<<2)>>2]|0,P=C?P*3|0:P,D=Zt(P,n[l+8>>2]|0)|0,H=Zt(P,n[l+12>>2]|0)|0,h=(Zt(P,n[l+4>>2]|0)|0)+h|0,n[b>>2]=h,f=D+f|0,n[T>>2]=f,u=H+u|0,n[g>>2]=u,l=f-h|0,(h|0)<0?(u=u-h|0,n[T>>2]=l,n[g>>2]=u,n[b>>2]=0,f=0):(l=f,f=h),(l|0)<0?(s=f-l|0,n[b>>2]=s,u=u-l|0,n[g>>2]=u,n[T>>2]=0,h=0):(s=f,h=l),f=s-u|0,l=h-u|0,(u|0)<0?(n[b>>2]=f,n[T>>2]=l,n[g>>2]=0,u=0):(l=h,f=s),h=(l|0)<(f|0)?l:f,h=(u|0)<(h|0)?u:h,(h|0)>0&&(f=f-h|0,l=l-h|0,u=u-h|0,n[b>>2]=f,n[T>>2]=l,n[g>>2]=u),C?(H=(l+f+u|0)==(w|0)?1:2,H|0):(H=2,H|0)}function Fy(s,o){s=s|0,o=o|0;var c=0;do c=Wn(s,o,0,1)|0;while((c|0)==2);return c|0}function La(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0,Ge=0,Ue=0,Pt=0,Re=0,He=0,Jt=0,bt=0,ht=0,Et=0,mt=0;if(bt=I,I=I+272|0,f=bt+256|0,h=bt+240|0,Re=bt,He=bt+224|0,Jt=bt+208|0,$=bt+184|0,me=bt+168|0,ne=bt+152|0,ae=bt+136|0,Ge=bt+120|0,Ue=bt+96|0,n[f>>2]=o,n[h>>2]=n[s>>2],n[h+4>>2]=n[s+4>>2],n[h+8>>2]=n[s+8>>2],n[h+12>>2]=n[s+12>>2],Pu(h,f,Re),n[l>>2]=0,le=u+c+((u|0)==6&1)|0,(le|0)<=(c|0)){I=bt;return}H=n[f>>2]|0,R=c+6|0,j=Jt+8|0,O=$+8|0,K=16928+(H<<2)|0,ee=me+8|0,z=ne+8|0,V=ae+8|0,P=n[h>>2]|0,w=He+4|0,B=He+8|0,M=He+12|0,D=Jt+8|0,g=$+8|0,b=$+16|0,T=Ue+8|0,C=Ue+16|0,h=0,p=c,u=-1;e:for(;;){if(f=(p|0)%6|0,s=Re+(f<<4)|0,n[He>>2]=n[s>>2],n[He+4>>2]=n[s+4>>2],n[He+8>>2]=n[s+8>>2],n[He+12>>2]=n[s+12>>2],s=h,h=Wn(He,H,0,1)|0,(p|0)>(c|0)&(hr(o)|0)!=0&&(Pt=n[He>>2]|0,(s|0)!=1&(Pt|0)!=(u|0))){switch(mt=(f+5|0)%6|0,s=n[Re+(mt<<4)+12>>2]|0,ht=+((n[Re+(mt<<4)+8>>2]|0)-s|0),L[Jt>>3]=+((n[Re+(mt<<4)+4>>2]|0)-s|0)-ht*.5,L[j>>3]=ht*.8660254037844386,s=n[Re+(f<<4)+12>>2]|0,ht=+((n[Re+(f<<4)+8>>2]|0)-s|0),L[$>>3]=+((n[Re+(f<<4)+4>>2]|0)-s|0)-ht*.5,L[O>>3]=ht*.8660254037844386,ht=+(n[K>>2]|0),L[me>>3]=ht*3,L[ee>>3]=0,Et=ht*-1.5,L[ne>>3]=Et,L[z>>3]=ht*2.598076211353316,L[ae>>3]=Et,L[V>>3]=ht*-2.598076211353316,n[17008+(P*80|0)+(((u|0)==(P|0)?Pt:u)<<2)>>2]|0){case 1:s=ne,u=me;break;case 3:s=ae,u=ne;break;case 2:s=me,u=ae;break;default:s=8;break e}qu(Jt,$,u,s,Ge),!(Ku(Jt,Ge)|0)&&!(Ku($,Ge)|0)&&(ti(Ge,P,H,1,Ue),mt=n[l>>2]|0,ht=+$A(+ +L[C>>3]),Et=+Qt(+ +L[T>>3],+ +L[Ue>>3]),L[l+8+(mt<<4)>>3]=ht,L[l+8+(mt<<4)+8>>3]=Et,n[l>>2]=(n[l>>2]|0)+1)}if((p|0)<(R|0)&&(mt=n[M>>2]|0,ht=+((n[B>>2]|0)-mt|0),L[Jt>>3]=+((n[w>>2]|0)-mt|0)-ht*.5,L[D>>3]=ht*.8660254037844386,ti(Jt,n[He>>2]|0,H,1,$),mt=n[l>>2]|0,ht=+$A(+ +L[b>>3]),Et=+Qt(+ +L[g>>3],+ +L[$>>3]),L[l+8+(mt<<4)>>3]=ht,L[l+8+(mt<<4)+8>>3]=Et,n[l>>2]=(n[l>>2]|0)+1),p=p+1|0,(p|0)>=(le|0)){s=3;break}else u=n[He>>2]|0}if((s|0)==3){I=bt;return}else(s|0)==8&&Oe(27157,27120,766,27202)}function Pu(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0;P=I,I=I+160|0,u=P+80|0,l=P,f=u,h=20336,p=f+72|0;do n[f>>2]=n[h>>2],f=f+4|0,h=h+4|0;while((f|0)<(p|0));f=l,h=20416,p=f+72|0;do n[f>>2]=n[h>>2],f=f+4|0,h=h+4|0;while((f|0)<(p|0));C=(hr(n[o>>2]|0)|0)==0,C=C?u:l,M=s+4|0,f=n[M>>2]|0,w=s+8|0,u=n[w>>2]|0,B=s+12|0,l=n[B>>2]|0,h=u+(f<<1)|0,n[M>>2]=h,u=l+(u<<1)|0,n[w>>2]=u,f=(l<<1)+f|0,n[B>>2]=f,l=u-h|0,p=f-h|0,(h|0)<0&&(n[w>>2]=l,n[B>>2]=p,n[M>>2]=0,u=l,h=0,f=p),p=h-u|0,l=f-u|0,(u|0)<0?(n[M>>2]=p,n[B>>2]=l,n[w>>2]=0,u=0):(l=f,p=h),h=p-l|0,f=u-l|0,(l|0)<0?(n[M>>2]=h,n[w>>2]=f,n[B>>2]=0,l=0):(f=u,h=p),u=(f|0)<(h|0)?f:h,u=(l|0)<(u|0)?l:u,(u|0)>0&&(l=l-u|0,f=f-u|0,h=h-u|0,n[M>>2]=h,n[w>>2]=f,n[B>>2]=l),g=(f<<1)+h|0,p=l+(h<<1)|0,n[M>>2]=p,n[w>>2]=g,f=(l<<1)+f|0,n[B>>2]=f,u=g-p|0,l=f-p|0,(p|0)<0?(n[w>>2]=u,n[B>>2]=l,n[M>>2]=0,p=0,f=l):u=g,h=p-u|0,l=f-u|0,(u|0)<0?(n[M>>2]=h,n[B>>2]=l,n[w>>2]=0,p=h,u=0):l=f,h=p-l|0,f=u-l|0,(l|0)<0?(n[M>>2]=h,n[w>>2]=f,n[B>>2]=0,l=0):(f=u,h=p),u=(f|0)<(h|0)?f:h,u=(l|0)<(u|0)?l:u,(u|0)>0&&(n[M>>2]=h-u,n[w>>2]=f-u,n[B>>2]=l-u),hr(n[o>>2]|0)|0&&(f=n[M>>2]|0,h=n[w>>2]|0,l=n[B>>2]|0,u=(h*3|0)+f|0,f=l+(f*3|0)|0,n[M>>2]=f,n[w>>2]=u,h=(l*3|0)+h|0,n[B>>2]=h,l=u-f|0,p=h-f|0,(f|0)<0?(n[w>>2]=l,n[B>>2]=p,n[M>>2]=0,u=l,g=0):(g=f,p=h),f=g-u|0,l=p-u|0,(u|0)<0?(n[M>>2]=f,n[B>>2]=l,n[w>>2]=0,g=f,h=0):(h=u,l=p),f=g-l|0,u=h-l|0,(l|0)<0?(n[M>>2]=f,n[w>>2]=u,n[B>>2]=0,h=u,l=0):f=g,u=(h|0)<(f|0)?h:f,u=(l|0)<(u|0)?l:u,(u|0)>0&&(n[M>>2]=f-u,n[w>>2]=h-u,n[B>>2]=l-u),n[o>>2]=(n[o>>2]|0)+1),g=0;do n[c+(g<<4)>>2]=n[s>>2],l=n[w>>2]|0,u=n[B>>2]|0,T=n[C+(g*12|0)+4>>2]|0,b=n[C+(g*12|0)+8>>2]|0,h=(n[C+(g*12|0)>>2]|0)+(n[M>>2]|0)|0,o=c+(g<<4)+4|0,n[o>>2]=h,l=T+l|0,T=c+(g<<4)+8|0,n[T>>2]=l,u=b+u|0,b=c+(g<<4)+12|0,n[b>>2]=u,f=l-h|0,(h|0)<0&&(u=u-h|0,n[T>>2]=f,n[b>>2]=u,n[o>>2]=0,l=f,h=0),(l|0)<0&&(h=h-l|0,n[o>>2]=h,u=u-l|0,n[b>>2]=u,n[T>>2]=0,l=0),p=h-u|0,f=l-u|0,(u|0)<0?(n[o>>2]=p,n[T>>2]=f,n[b>>2]=0,h=p,u=0):f=l,l=(f|0)<(h|0)?f:h,l=(u|0)<(l|0)?u:l,(l|0)>0&&(n[o>>2]=h-l,n[T>>2]=f-l,n[b>>2]=u-l),g=g+1|0;while((g|0)!=6);I=P}function Ra(s,o){return s=s|0,o=o|0,o=te(s|0,o|0,52)|0,S()|0,o&15|0}function Du(s,o){return s=s|0,o=o|0,o=te(s|0,o|0,45)|0,S()|0,o&127|0}function Ly(s,o,c,u){return s=s|0,o=o|0,c=c|0,u=u|0,(c+-1|0)>>>0>14?(u=4,u|0):(c=te(s|0,o|0,(15-c|0)*3|0)|0,S()|0,n[u>>2]=c&7,u=0,u|0)}function Ry(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0;if(s>>>0>15)return u=4,u|0;if(o>>>0>121)return u=17,u|0;h=oe(s|0,0,52)|0,l=S()|0,p=oe(o|0,0,45)|0,l=l|(S()|0)|134225919;e:do if((s|0)>=1){for(p=1,h=(W[20496+o>>0]|0)!=0,f=-1;;){if(o=n[c+(p+-1<<2)>>2]|0,o>>>0>6){l=18,o=10;break}if(!((o|0)==0|h^1))if((o|0)==1){l=19,o=10;break}else h=0;if(T=(15-p|0)*3|0,g=oe(7,0,T|0)|0,l=l&~(S()|0),o=oe(o|0,((o|0)<0)<<31>>31|0,T|0)|0,f=o|f&~g,l=S()|0|l,(p|0)<(s|0))p=p+1|0;else break e}if((o|0)==10)return l|0}else f=-1;while(!1);return T=u,n[T>>2]=f,n[T+4>>2]=l,T=0,T|0}function ts(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0;return!(!0&(o&-16777216|0)==134217728)||(u=te(s|0,o|0,52)|0,S()|0,u=u&15,c=te(s|0,o|0,45)|0,S()|0,c=c&127,c>>>0>121)?(s=0,s|0):(h=(u^15)*3|0,l=te(s|0,o|0,h|0)|0,h=oe(l|0,S()|0,h|0)|0,l=S()|0,f=Bt(-1227133514,-1171,h|0,l|0)|0,!((h&613566756&f|0)==0&(l&4681&(S()|0)|0)==0)||(h=(u*3|0)+19|0,f=oe(~s|0,~o|0,h|0)|0,h=te(f|0,S()|0,h|0)|0,!((u|0)==15|(h|0)==0&(S()|0)==0))?(h=0,h|0):!(W[20496+c>>0]|0)||(o=o&8191,(s|0)==0&(o|0)==0)?(h=1,h|0):(h=Xa(s|0,o|0,0)|0,S()|0,((63-h|0)%3|0)!=0|0))}function Py(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0;return!0&(o&-16777216|0)==134217728&&(u=te(s|0,o|0,52)|0,S()|0,u=u&15,c=te(s|0,o|0,45)|0,S()|0,c=c&127,c>>>0<=121)&&(h=(u^15)*3|0,l=te(s|0,o|0,h|0)|0,h=oe(l|0,S()|0,h|0)|0,l=S()|0,f=Bt(-1227133514,-1171,h|0,l|0)|0,(h&613566756&f|0)==0&(l&4681&(S()|0)|0)==0)&&(h=(u*3|0)+19|0,f=oe(~s|0,~o|0,h|0)|0,h=te(f|0,S()|0,h|0)|0,(u|0)==15|(h|0)==0&(S()|0)==0)&&(!(W[20496+c>>0]|0)||(c=o&8191,(s|0)==0&(c|0)==0)||(h=Xa(s|0,c|0,0)|0,S()|0,(63-h|0)%3|0))||Fu(s,o)|0?(h=1,h|0):(h=(Xu(s,o)|0)!=0&1,h|0)}function Pa(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0;if(l=oe(o|0,0,52)|0,f=S()|0,c=oe(c|0,0,45)|0,c=f|(S()|0)|134225919,(o|0)<1){f=-1,u=c,o=s,n[o>>2]=f,s=s+4|0,n[s>>2]=u;return}for(f=1,l=-1;h=(15-f|0)*3|0,p=oe(7,0,h|0)|0,c=c&~(S()|0),h=oe(u|0,0,h|0)|0,l=l&~p|h,c=c|(S()|0),(f|0)!=(o|0);)f=f+1|0;p=s,h=p,n[h>>2]=l,p=p+4|0,n[p>>2]=c}function Da(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0;if(f=te(s|0,o|0,52)|0,S()|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 n[u>>2]=s,n[u+4>>2]=o,u=0,u|0;if(l=oe(c|0,0,52)|0,l=l|s,s=S()|0|o&-15728641,(f|0)>(c|0))do o=oe(7,0,(14-c|0)*3|0)|0,c=c+1|0,l=o|l,s=S()|0|s;while((c|0)<(f|0));return n[u>>2]=l,n[u+4>>2]=s,u=0,u|0}function ri(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0;if(f=te(s|0,o|0,52)|0,S()|0,f=f&15,!((c|0)<16&(f|0)<=(c|0)))return u=4,u|0;l=c-f|0,c=te(s|0,o|0,45)|0,S()|0;e:do if(!(ct(c&127)|0))c=An(7,0,l,((l|0)<0)<<31>>31)|0,l=S()|0;else{t:do if(f|0){for(c=1;h=oe(7,0,(15-c|0)*3|0)|0,!!((h&s|0)==0&((S()|0)&o|0)==0);)if(c>>>0<f>>>0)c=c+1|0;else break t;c=An(7,0,l,((l|0)<0)<<31>>31)|0,l=S()|0;break e}while(!1);c=An(7,0,l,((l|0)<0)<<31>>31)|0,c=ut(c|0,S()|0,5,0)|0,c=ce(c|0,S()|0,-5,-1)|0,c=sn(c|0,S()|0,6,0)|0,c=ce(c|0,S()|0,1,0)|0,l=S()|0}while(!1);return h=u,n[h>>2]=c,n[h+4>>2]=l,h=0,h|0}function et(s,o){s=s|0,o=o|0;var c=0,u=0,l=0;if(l=te(s|0,o|0,45)|0,S()|0,!(ct(l&127)|0))return l=0,l|0;l=te(s|0,o|0,52)|0,S()|0,l=l&15;e:do if(!l)c=0;else for(u=1;;){if(c=te(s|0,o|0,(15-u|0)*3|0)|0,S()|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 Dy(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0;if(h=I,I=I+16|0,f=h,Ha(f,s,o,c),o=f,s=n[o>>2]|0,o=n[o+4>>2]|0,(s|0)==0&(o|0)==0)return I=h,0;l=0,c=0;do p=u+(l<<3)|0,n[p>>2]=s,n[p+4>>2]=o,l=ce(l|0,c|0,1,0)|0,c=S()|0,Va(f),p=f,s=n[p>>2]|0,o=n[p+4>>2]|0;while(!((s|0)==0&(o|0)==0));return I=h,0}function Nu(s,o,c,u){return s=s|0,o=o|0,c=c|0,u=u|0,(u|0)<(c|0)?(c=o,u=s,Se(c|0),u|0):(c=oe(-1,-1,((u-c|0)*3|0)+3|0)|0,u=oe(~c|0,~(S()|0)|0,(15-u|0)*3|0)|0,c=~(S()|0)&o,u=~u&s,Se(c|0),u|0)}function Ou(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0;return l=te(s|0,o|0,52)|0,S()|0,l=l&15,(c|0)<16&(l|0)<=(c|0)?((l|0)<(c|0)&&(l=oe(-1,-1,((c+-1-l|0)*3|0)+3|0)|0,l=oe(~l|0,~(S()|0)|0,(15-c|0)*3|0)|0,o=~(S()|0)&o,s=~l&s),l=oe(c|0,0,52)|0,c=o&-15728641|(S()|0),n[u>>2]=s|l,n[u+4>>2]=c,u=0,u|0):(u=4,u|0)}function Ny(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0,ae=0;if((c|0)==0&(u|0)==0)return ae=0,ae|0;if(l=s,f=n[l>>2]|0,l=n[l+4>>2]|0,!0&(l&15728640|0)==0){if(!((u|0)>0|(u|0)==0&c>>>0>0)||(ae=o,n[ae>>2]=f,n[ae+4>>2]=l,(c|0)==1&(u|0)==0))return ae=0,ae|0;l=1,f=0;do me=s+(l<<3)|0,ne=n[me+4>>2]|0,ae=o+(l<<3)|0,n[ae>>2]=n[me>>2],n[ae+4>>2]=ne,l=ce(l|0,f|0,1,0)|0,f=S()|0;while((f|0)<(u|0)|(f|0)==(u|0)&l>>>0<c>>>0);return l=0,l|0}if($=c<<3,ne=lt($)|0,!ne)return ae=13,ae|0;if(xr(ne|0,s|0,$|0)|0,me=zt(c,8)|0,!me)return fe(ne),ae=13,ae|0;e:for(;;){l=ne,T=n[l>>2]|0,l=n[l+4>>2]|0,V=te(T|0,l|0,52)|0,S()|0,V=V&15,le=V+-1|0,z=(V|0)!=0,ee=(u|0)>0|(u|0)==0&c>>>0>0;t:do if(z&ee){if(R=oe(le|0,0,52)|0,j=S()|0,le>>>0>15){if(!((T|0)==0&(l|0)==0)){ae=16;break e}for(f=0,s=0;;){if(f=ce(f|0,s|0,1,0)|0,s=S()|0,!((s|0)<(u|0)|(s|0)==(u|0)&f>>>0<c>>>0))break t;if(h=ne+(f<<3)|0,K=n[h>>2]|0,h=n[h+4>>2]|0,!((K|0)==0&(h|0)==0)){l=h,ae=16;break e}}}for(p=T,s=l,f=0,h=0;;){if(!((p|0)==0&(s|0)==0)){if(!(!0&(s&117440512|0)==0)){ae=21;break e}if(b=te(p|0,s|0,52)|0,S()|0,b=b&15,(b|0)<(le|0)){l=12,ae=27;break e}if((b|0)!=(le|0)&&(p=p|R,s=s&-15728641|j,b>>>0>=V>>>0)){g=le;do K=oe(7,0,(14-g|0)*3|0)|0,g=g+1|0,p=K|p,s=S()|0|s;while(g>>>0<b>>>0)}if(w=Jr(p|0,s|0,c|0,u|0)|0,B=S()|0,g=me+(w<<3)|0,b=g,C=n[b>>2]|0,b=n[b+4>>2]|0,!((C|0)==0&(b|0)==0)){D=0,H=0;do{if((D|0)>(u|0)|(D|0)==(u|0)&H>>>0>c>>>0){ae=31;break e}if((C|0)==(p|0)&(b&-117440513|0)==(s|0)){M=te(C|0,b|0,56)|0,S()|0,M=M&7,P=M+1|0,K=te(C|0,b|0,45)|0,S()|0;r:do if(!(ct(K&127)|0))b=7;else{if(C=te(C|0,b|0,52)|0,S()|0,C=C&15,!C){b=6;break}for(b=1;;){if(K=oe(7,0,(15-b|0)*3|0)|0,!((K&p|0)==0&((S()|0)&s|0)==0)){b=7;break r}if(b>>>0<C>>>0)b=b+1|0;else{b=6;break}}}while(!1);if((M+2|0)>>>0>b>>>0){ae=41;break e}K=oe(P|0,0,56)|0,s=S()|0|s&-117440513,O=g,n[O>>2]=0,n[O+4>>2]=0,p=K|p}else w=ce(w|0,B|0,1,0)|0,w=on(w|0,S()|0,c|0,u|0)|0,B=S()|0;H=ce(H|0,D|0,1,0)|0,D=S()|0,g=me+(w<<3)|0,b=g,C=n[b>>2]|0,b=n[b+4>>2]|0}while(!((C|0)==0&(b|0)==0))}K=g,n[K>>2]=p,n[K+4>>2]=s}if(f=ce(f|0,h|0,1,0)|0,h=S()|0,!((h|0)<(u|0)|(h|0)==(u|0)&f>>>0<c>>>0))break t;s=ne+(f<<3)|0,p=n[s>>2]|0,s=n[s+4>>2]|0}}while(!1);if(K=ce(c|0,u|0,5,0)|0,O=S()|0,O>>>0<0|(O|0)==0&K>>>0<11){ae=85;break}if(K=sn(c|0,u|0,6,0)|0,S()|0,K=zt(K,8)|0,!K){ae=48;break}do if(ee){for(P=0,s=0,M=0,D=0;;){if(b=me+(P<<3)|0,h=b,f=n[h>>2]|0,h=n[h+4>>2]|0,(f|0)==0&(h|0)==0)O=M;else{C=te(f|0,h|0,56)|0,S()|0,C=C&7,p=C+1|0,w=h&-117440513,O=te(f|0,h|0,45)|0,S()|0;t:do if(ct(O&127)|0){if(B=te(f|0,h|0,52)|0,S()|0,B=B&15,B|0)for(g=1;;){if(O=oe(7,0,(15-g|0)*3|0)|0,!((f&O|0)==0&(w&(S()|0)|0)==0))break t;if(g>>>0<B>>>0)g=g+1|0;else break}h=oe(p|0,0,56)|0,f=h|f,h=S()|0|w,p=b,n[p>>2]=f,n[p+4>>2]=h,p=C+2|0}while(!1);(p|0)==7?(O=K+(s<<3)|0,n[O>>2]=f,n[O+4>>2]=h&-117440513,s=ce(s|0,M|0,1,0)|0,O=S()|0):O=M}if(P=ce(P|0,D|0,1,0)|0,D=S()|0,(D|0)<(u|0)|(D|0)==(u|0)&P>>>0<c>>>0)M=O;else break}if(ee){if(H=le>>>0>15,R=oe(le|0,0,52)|0,j=S()|0,!z){for(f=0,g=0,p=0,h=0;(T|0)==0&(l|0)==0||(le=o+(f<<3)|0,n[le>>2]=T,n[le+4>>2]=l,f=ce(f|0,g|0,1,0)|0,g=S()|0),p=ce(p|0,h|0,1,0)|0,h=S()|0,!!((h|0)<(u|0)|(h|0)==(u|0)&p>>>0<c>>>0);)l=ne+(p<<3)|0,T=n[l>>2]|0,l=n[l+4>>2]|0;l=O;break}for(f=0,g=0,h=0,p=0;;){do if(!((T|0)==0&(l|0)==0)){if(B=te(T|0,l|0,52)|0,S()|0,B=B&15,H|(B|0)<(le|0)){ae=80;break e}if((B|0)!=(le|0)){if(b=T|R,C=l&-15728641|j,B>>>0>=V>>>0){w=le;do z=oe(7,0,(14-w|0)*3|0)|0,w=w+1|0,b=z|b,C=S()|0|C;while(w>>>0<B>>>0)}}else b=T,C=l;M=Jr(b|0,C|0,c|0,u|0)|0,w=0,B=0,D=S()|0;do{if((w|0)>(u|0)|(w|0)==(u|0)&B>>>0>c>>>0){ae=81;break e}if(z=me+(M<<3)|0,P=n[z+4>>2]|0,(P&-117440513|0)==(C|0)&&(n[z>>2]|0)==(b|0)){ae=65;break}z=ce(M|0,D|0,1,0)|0,M=on(z|0,S()|0,c|0,u|0)|0,D=S()|0,B=ce(B|0,w|0,1,0)|0,w=S()|0,z=me+(M<<3)|0}while(!((n[z>>2]|0)==(b|0)&&(n[z+4>>2]|0)==(C|0)));if((ae|0)==65&&(ae=0,!0&(P&117440512|0)==100663296))break;z=o+(f<<3)|0,n[z>>2]=T,n[z+4>>2]=l,f=ce(f|0,g|0,1,0)|0,g=S()|0}while(!1);if(h=ce(h|0,p|0,1,0)|0,p=S()|0,!((p|0)<(u|0)|(p|0)==(u|0)&h>>>0<c>>>0))break;l=ne+(h<<3)|0,T=n[l>>2]|0,l=n[l+4>>2]|0}l=O}else f=0,l=O}else f=0,s=0,l=0;while(!1);if(an(me|0,0,$|0)|0,xr(ne|0,K|0,s<<3|0)|0,fe(K),(s|0)==0&(l|0)==0){ae=89;break}else o=o+(f<<3)|0,u=l,c=s}if((ae|0)==16)!0&(l&117440512|0)==0?(l=4,ae=27):ae=21;else if((ae|0)==31)Oe(27634,27225,620,27235);else{if((ae|0)==41)return fe(ne),fe(me),ae=10,ae|0;if((ae|0)==48)return fe(ne),fe(me),ae=13,ae|0;(ae|0)==80?Oe(27634,27225,711,27235):(ae|0)==81?Oe(27634,27225,723,27235):(ae|0)==85&&(xr(o|0,ne|0,c<<3|0)|0,ae=89)}return(ae|0)==21?(fe(ne),fe(me),ae=5,ae|0):(ae|0)==27?(fe(ne),fe(me),ae=l,ae|0):(ae|0)==89?(fe(ne),fe(me),ae=0,ae|0):0}function Oy(s,o,c,u,l,f,h){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0,f=f|0,h=h|0;var p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0;if(P=I,I=I+16|0,M=P,!((c|0)>0|(c|0)==0&o>>>0>0))return M=0,I=P,M|0;if((h|0)>=16)return M=12,I=P,M|0;w=0,B=0,C=0,p=0;e:for(;;){if(T=s+(w<<3)|0,g=n[T>>2]|0,T=n[T+4>>2]|0,b=te(g|0,T|0,52)|0,S()|0,(b&15|0)>(h|0)){p=12,g=11;break}if(Ha(M,g,T,h),b=M,T=n[b>>2]|0,b=n[b+4>>2]|0,(T|0)==0&(b|0)==0)g=C;else{g=C;do{if(!((p|0)<(f|0)|(p|0)==(f|0)&g>>>0<l>>>0)){g=10;break e}C=u+(g<<3)|0,n[C>>2]=T,n[C+4>>2]=b,g=ce(g|0,p|0,1,0)|0,p=S()|0,Va(M),C=M,T=n[C>>2]|0,b=n[C+4>>2]|0}while(!((T|0)==0&(b|0)==0))}if(w=ce(w|0,B|0,1,0)|0,B=S()|0,(B|0)<(c|0)|(B|0)==(c|0)&w>>>0<o>>>0)C=g;else{p=0,g=11;break}}return(g|0)==10?(M=14,I=P,M|0):(g|0)==11?(I=P,p|0):0}function Gy(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0;w=I,I=I+16|0,C=w;e:do if((c|0)>0|(c|0)==0&o>>>0>0){for(T=0,h=0,f=0,b=0;;){if(g=s+(T<<3)|0,p=n[g>>2]|0,g=n[g+4>>2]|0,!((p|0)==0&(g|0)==0)&&(g=(ri(p,g,u,C)|0)==0,p=C,h=ce(n[p>>2]|0,n[p+4>>2]|0,h|0,f|0)|0,f=S()|0,!g)){f=12;break}if(T=ce(T|0,b|0,1,0)|0,b=S()|0,!((b|0)<(c|0)|(b|0)==(c|0)&T>>>0<o>>>0))break e}return I=w,f|0}else h=0,f=0;while(!1);return n[l>>2]=h,n[l+4>>2]=f,l=0,I=w,l|0}function ky(s,o){return s=s|0,o=o|0,o=te(s|0,o|0,52)|0,S()|0,o&1|0}function $t(s,o){s=s|0,o=o|0;var c=0,u=0,l=0;if(l=te(s|0,o|0,52)|0,S()|0,l=l&15,!l)return l=0,l|0;for(u=1;;){if(c=te(s|0,o|0,(15-u|0)*3|0)|0,S()|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 Na(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(b=te(s|0,o|0,52)|0,S()|0,b=b&15,!b)return T=o,b=s,Se(T|0),b|0;for(T=1,c=0;;){switch(u=(15-T|0)*3|0,p=oe(7,0,u|0)|0,g=S()|0,f=s&~p,h=o&~g,s=te(s|0,o|0,u|0)|0,S()|0,s&7){case 1:s=5;break;case 5:s=4;break;case 4:s=6;break;case 6:s=2;break;case 2:s=3;break;case 3:s=1;break;default:s=s&7}u=oe(s|0,0,u|0)|0,l=S()|0,s=u|f,o=l|h;e:do if(!c)if((u&p|0)==0&(l&g|0)==0)c=0;else if(h=te(s|0,o|0,52)|0,S()|0,h=h&15,!h)c=1;else{c=1;t:for(;;){switch(g=te(s|0,o|0,(15-c|0)*3|0)|0,S()|0,g&7){case 1:break t;case 0:break;default:c=1;break e}if(c>>>0<h>>>0)c=c+1|0;else{c=1;break e}}for(f=1;;){switch(l=(15-f|0)*3|0,c=te(s|0,o|0,l|0)|0,S()|0,u=oe(7,0,l|0)|0,u=s&~u,o=o&~(S()|0),c&7){case 1:s=5;break;case 5:s=4;break;case 4:s=6;break;case 6:s=2;break;case 2:s=3;break;case 3:s=1;break;default:s=c&7}if(s=oe(s|0,0,l|0)|0,s=s|u,o=S()|0|o,f>>>0<h>>>0)f=f+1|0;else{c=1;break e}}}while(!1);if(T>>>0<b>>>0)T=T+1|0;else break}return Se(o|0),s|0}function wn(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0;if(h=te(s|0,o|0,52)|0,S()|0,h=h&15,!h)return f=o,h=s,Se(f|0),h|0;for(f=1;;){switch(l=(15-f|0)*3|0,c=te(s|0,o|0,l|0)|0,S()|0,u=oe(7,0,l|0)|0,u=s&~u,o=o&~(S()|0),c&7){case 1:s=5;break;case 5:s=4;break;case 4:s=6;break;case 6:s=2;break;case 2:s=3;break;case 3:s=1;break;default:s=c&7}if(s=oe(s|0,0,l|0)|0,s=s|u,o=S()|0|o,f>>>0<h>>>0)f=f+1|0;else break}return Se(o|0),s|0}function Uy(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(b=te(s|0,o|0,52)|0,S()|0,b=b&15,!b)return T=o,b=s,Se(T|0),b|0;for(T=1,c=0;;){switch(u=(15-T|0)*3|0,p=oe(7,0,u|0)|0,g=S()|0,f=s&~p,h=o&~g,s=te(s|0,o|0,u|0)|0,S()|0,s&7){case 1:s=3;break;case 3:s=2;break;case 2:s=6;break;case 6:s=4;break;case 4:s=5;break;case 5:s=1;break;default:s=s&7}u=oe(s|0,0,u|0)|0,l=S()|0,s=u|f,o=l|h;e:do if(!c)if((u&p|0)==0&(l&g|0)==0)c=0;else if(h=te(s|0,o|0,52)|0,S()|0,h=h&15,!h)c=1;else{c=1;t:for(;;){switch(g=te(s|0,o|0,(15-c|0)*3|0)|0,S()|0,g&7){case 1:break t;case 0:break;default:c=1;break e}if(c>>>0<h>>>0)c=c+1|0;else{c=1;break e}}for(f=1;;){switch(c=(15-f|0)*3|0,u=oe(7,0,c|0)|0,u=s&~u,l=o&~(S()|0),s=te(s|0,o|0,c|0)|0,S()|0,s&7){case 1:s=3;break;case 3:s=2;break;case 2:s=6;break;case 6:s=4;break;case 4:s=5;break;case 5:s=1;break;default:s=s&7}if(s=oe(s|0,0,c|0)|0,s=s|u,o=S()|0|l,f>>>0<h>>>0)f=f+1|0;else{c=1;break e}}}while(!1);if(T>>>0<b>>>0)T=T+1|0;else break}return Se(o|0),s|0}function Oa(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0;if(h=te(s|0,o|0,52)|0,S()|0,h=h&15,!h)return f=o,h=s,Se(f|0),h|0;for(f=1;;){switch(u=(15-f|0)*3|0,c=oe(7,0,u|0)|0,c=s&~c,l=o&~(S()|0),s=te(s|0,o|0,u|0)|0,S()|0,s&7){case 1:s=3;break;case 3:s=2;break;case 2:s=6;break;case 6:s=4;break;case 4:s=5;break;case 5:s=1;break;default:s=s&7}if(s=oe(s|0,0,u|0)|0,s=s|c,o=S()|0|l,f>>>0<h>>>0)f=f+1|0;else break}return Se(o|0),s|0}function Hy(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0;if(O=I,I=I+16|0,j=O,oe(o|0,0,52)|0,c=S()|134225919,!o)return(n[s+4>>2]|0)>2||(n[s+8>>2]|0)>2||(n[s+12>>2]|0)>2?(R=0,j=0,Se(R|0),I=O,j|0):(oe(wu(s)|0,0,45)|0,R=S()|0|c,j=-1,Se(R|0),I=O,j|0);n[j>>2]=n[s>>2],n[j+4>>2]=n[s+4>>2],n[j+8>>2]=n[s+8>>2],n[j+12>>2]=n[s+12>>2],R=j+4|0;e:do if((o|0)>0)for(P=j+8|0,D=j+12|0,M=o,C=n[P>>2]|0,w=n[D>>2]|0,o=-1,b=n[j+4>>2]|0;;){B=M,M=M+-1|0,s=b-w|0,u=C-w|0,B&1?(f=Nr(+((s*3|0)-u|0)*.14285714285714285)|0,n[R>>2]=f,s=Nr(+((u<<1)+s|0)*.14285714285714285)|0,n[P>>2]=s,n[D>>2]=0,u=s-f|0,l=0-f|0,(f|0)<0?(n[P>>2]=u,n[D>>2]=l,n[R>>2]=0,s=u,h=0):(h=f,l=0),f=h-s|0,u=l-s|0,(s|0)<0?(n[R>>2]=f,n[D>>2]=u,n[P>>2]=0,h=f,f=0):(u=l,f=s),s=h-u|0,l=f-u|0,(u|0)<0?(n[R>>2]=s,n[P>>2]=l,n[D>>2]=0,f=0):(l=f,s=h,f=u),u=(l|0)<(s|0)?l:s,u=(f|0)<(u|0)?f:u,(u|0)>0&&(f=f-u|0,l=l-u|0,s=s-u|0,n[R>>2]=s,n[P>>2]=l,n[D>>2]=f),ee=l+(s*3|0)|0,K=(ee|0)<0,T=f+(l*3|0)-(K?ee:0)|0,g=(T|0)<0,u=(f*3|0)+s-(K?ee:0)-(g?T:0)|0,p=(u|0)<0,z=p?0:u,h=(g?0:T)-(p?u:0)|0,u=(K?0:ee)-(g?T:0)-(p?u:0)|0,p=(h|0)<(u|0)?h:u,p=(z|0)<(p|0)?z:p,T=(p|0)>0,g=T?p:0,h=h-(T?p:0)|0,p=z-(T?p:0)|0,T=f):(p=Nr(+((s<<1)+u|0)*.14285714285714285)|0,n[R>>2]=p,l=Nr(+((u*3|0)-s|0)*.14285714285714285)|0,n[P>>2]=l,n[D>>2]=0,u=l-p|0,s=0-p|0,(p|0)<0?(n[P>>2]=u,n[D>>2]=s,n[R>>2]=0,l=u,p=0):s=0,h=p-l|0,u=s-l|0,(l|0)<0?(n[R>>2]=h,n[D>>2]=u,n[P>>2]=0,f=u,l=0):(f=s,h=p),s=h-f|0,u=l-f|0,(f|0)<0?(n[R>>2]=s,n[P>>2]=u,n[D>>2]=0,l=u,f=0):s=h,u=(l|0)<(s|0)?l:s,u=(f|0)<(u|0)?f:u,(u|0)>0&&(f=f-u|0,l=l-u|0,s=s-u|0,n[R>>2]=s,n[P>>2]=l,n[D>>2]=f),ee=f+(s*3|0)|0,z=(ee|0)<0,T=(l*3|0)+s-(z?ee:0)|0,g=(T|0)<0,u=(f*3|0)+l-(z?ee:0)-(g?T:0)|0,p=(u|0)<0,K=p?0:u,h=(g?0:T)-(p?u:0)|0,u=(z?0:ee)-(g?T:0)-(p?u:0)|0,p=(h|0)<(u|0)?h:u,p=(K|0)<(p|0)?K:p,T=(p|0)>0,g=T?p:0,h=h-(T?p:0)|0,p=K-(T?p:0)|0,T=f),u=b+(g-u)|0,f=(u|0)<0,g=C-h-(f?u:0)|0,h=(g|0)<0,w=w-p+(f?0-u|0:0)+(h?0-g|0:0)|0,b=(w|0)<0,p=b?0:w,z=(h?0:g)-(b?w:0)|0,w=(f?0:u)-(h?g:0)-(b?w:0)|0,b=(z|0)<(w|0)?z:w,b=(p|0)<(b|0)?p:b,g=(b|0)>0,w=w-(g?b:0)|0,h=(15-B|0)*3|0,u=oe(7,0,h|0)|0,u=o&~u,f=c&~(S()|0),C=(w|0)<0,ee=C?w:0,z=z-(g?b:0)-ee|0,K=(z|0)<0,ee=(K?0-z|0:0)+(p-(g?b:0)-ee)|0,c=(ee|0)<0,o=c?0:ee,ee=c?ee:0,c=(K?0:z)-ee|0,ee=(C?0:w)-(K?z:0)-ee|0,z=(c|0)<(ee|0)?c:ee,z=(o|0)<(z|0)?o:z,z=(z|0)>0?z:0,o=o-z|0,c=c-z|0;t:do switch(ee-z|0){case 0:switch(c|0){case 0:o=(o|0)==0?0:(o|0)==1?1:7;break t;case 1:o=(o|0)==0?2:(o|0)==1?3:7;break t;default:H=36;break t}case 1:switch(c|0){case 0:o=(o|0)==0?4:(o|0)==1?5:7;break t;case 1:if(o){H=36;break t}else{o=6;break t}default:H=36;break t}default:H=36}while(!1);if((H|0)==36&&(H=0,o=7),o=oe(o|0,0,h|0)|0,o=o|u,c=S()|0|f,(B|0)<=1)break e;C=l,w=T,b=s}else o=-1,s=n[R>>2]|0;while(!1);e:do if((s|0)<=2&&(n[j+8>>2]|0)<=2&&(n[j+12>>2]|0)<=2){if(u=wu(j)|0,s=oe(u|0,0,45)|0,o=s|o,s=S()|0|c&-1040385,g=cy(j)|0,!(ct(u)|0)){if((g|0)<=0)break;for(p=0;;){h=te(o|0,s|0,52)|0,S()|0,h=h&15;t:do if(h)for(f=1;;){switch(l=(15-f|0)*3|0,c=te(o|0,s|0,l|0)|0,S()|0,u=oe(7,0,l|0)|0,o=o&~u,u=s&~(S()|0),c&7){case 1:s=5;break;case 5:s=4;break;case 4:s=6;break;case 6:s=2;break;case 2:s=3;break;case 3:s=1;break;default:s=c&7}if(s=oe(s|0,0,l|0)|0,o=s|o,s=S()|0|u,f>>>0<h>>>0)f=f+1|0;else break t}while(!1);if(p=p+1|0,(p|0)==(g|0))break e}}h=te(o|0,s|0,52)|0,S()|0,h=h&15;t:do if(h){c=1;r:for(;;){switch(z=te(o|0,s|0,(15-c|0)*3|0)|0,S()|0,z&7){case 1:break r;case 0:break;default:break t}if(c>>>0<h>>>0)c=c+1|0;else break t}if(Bu(u,n[j>>2]|0)|0)for(f=1;;){switch(c=(15-f|0)*3|0,u=oe(7,0,c|0)|0,u=o&~u,l=s&~(S()|0),s=te(o|0,s|0,c|0)|0,S()|0,s&7){case 1:s=3;break;case 3:s=2;break;case 2:s=6;break;case 6:s=4;break;case 4:s=5;break;case 5:s=1;break;default:s=s&7}if(o=oe(s|0,0,c|0)|0,o=o|u,s=S()|0|l,f>>>0<h>>>0)f=f+1|0;else break t}else for(f=1;;){switch(l=(15-f|0)*3|0,c=te(o|0,s|0,l|0)|0,S()|0,u=oe(7,0,l|0)|0,o=o&~u,u=s&~(S()|0),c&7){case 1:s=5;break;case 5:s=4;break;case 4:s=6;break;case 6:s=2;break;case 2:s=3;break;case 3:s=1;break;default:s=c&7}if(s=oe(s|0,0,l|0)|0,o=s|o,s=S()|0|u,f>>>0<h>>>0)f=f+1|0;else break t}}while(!1);if((g|0)>0){c=0;do o=Na(o,s)|0,s=S()|0,c=c+1|0;while((c|0)!=(g|0))}}else o=0,s=0;while(!1);return ee=s,z=o,Se(ee|0),I=O,z|0}function hr(s){return s=s|0,(s|0)%2|0}function Ga(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0;if(b=I,I=I+64|0,p=b+24|0,g=b+48|0,T=b,o>>>0>15)return T=4,I=b,T|0;if(f=+L[s>>3],L[it>>3]=f,(n[it+4>>2]&2146435072|0)==2146435072||(u=+L[s+8>>3],L[it>>3]=u,(n[it+4>>2]&2146435072|0)==2146435072))return T=3,I=b,T|0;l=+De(+f),C=l*+De(+u),l=l*+We(+u),u=+We(+f),L[T>>3]=C,L[T+8>>3]=l,L[T+16>>3]=u,L[it>>3]=C;do if((n[it+4>>2]&2146435072|0)!=2146435072&&(L[it>>3]=u,s=n[it+4>>2]|0,L[it>>3]=l,!((n[it+4>>2]&2146435072|0)==2146435072|!0&(s&2146435072|0)==2146435072)))if(n[p>>2]=n[T>>2],n[p+4>>2]=n[T+4>>2],n[p+8>>2]=n[T+8>>2],n[p+12>>2]=n[T+12>>2],n[p+16>>2]=n[T+16>>2],n[p+20>>2]=n[T+20>>2],Iy(p,o,g),g=Hy(g,o)|0,T=S()|0,n[c>>2]=g,n[c+4>>2]=T,(g|0)==0&(T|0)==0)Oe(27634,27225,1073,27248);else{h=0;break}else h=2;while(!1);return T=h,I=b,T|0}function ka(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;if(B=c+4|0,M=te(s|0,o|0,52)|0,S()|0,M=M&15,w=te(s|0,o|0,45)|0,S()|0,u=(M|0)==0,ct(w&127)|0){if(u)return M=1,M|0;u=1}else{if(u)return M=0,M|0;(n[B>>2]|0)==0&&(n[c+8>>2]|0)==0?u=(n[c+12>>2]|0)!=0&1:u=1}for(w=c+8|0,C=c+12|0,b=1,c=n[B>>2]|0,h=n[w>>2]|0,f=n[C>>2]|0;l=c*3|0,p=h*3|0,T=f*3|0,b&1?(g=h+l|0,n[B>>2]=g,f=f+p|0,n[w>>2]=f,l=T+c|0,n[C>>2]=l,c=f-g|0,h=l-g|0,(g|0)<0?(n[w>>2]=c,n[C>>2]=h,n[B>>2]=0,p=0,l=h):(c=f,p=g),h=p-c|0,f=l-c|0,(c|0)<0?(n[B>>2]=h,n[C>>2]=f,n[w>>2]=0,p=h,l=0):(f=l,l=c),c=p-f|0,h=l-f|0,(f|0)<0?(n[B>>2]=c,n[w>>2]=h,n[C>>2]=0,f=0):(h=l,c=p),l=(h|0)<(c|0)?h:c,l=(f|0)<(l|0)?f:l,(l|0)>0&&(f=f-l|0,h=h-l|0,c=c-l|0,n[B>>2]=c,n[w>>2]=h,n[C>>2]=f)):(g=p+c|0,p=f+l|0,n[B>>2]=p,n[w>>2]=g,l=T+h|0,n[C>>2]=l,c=g-p|0,f=l-p|0,(p|0)<0?(n[w>>2]=c,n[C>>2]=f,n[B>>2]=0,p=0,l=f):c=g,h=p-c|0,f=l-c|0,(c|0)<0?(n[B>>2]=h,n[C>>2]=f,n[w>>2]=0,p=h,l=0):(f=l,l=c),c=p-f|0,h=l-f|0,(f|0)<0?(n[B>>2]=c,n[w>>2]=h,n[C>>2]=0,f=0):(h=l,c=p),l=(h|0)<(c|0)?h:c,l=(f|0)<(l|0)?f:l,(l|0)>0&&(f=f-l|0,h=h-l|0,c=c-l|0,n[B>>2]=c,n[w>>2]=h,n[C>>2]=f)),l=te(s|0,o|0,(15-b|0)*3|0)|0,S()|0,l=l&7,(l+-1|0)>>>0<6&&(g=n[22032+(l*12|0)+4>>2]|0,T=n[22032+(l*12|0)+8>>2]|0,p=(n[22032+(l*12|0)>>2]|0)+c|0,n[B>>2]=p,h=g+h|0,n[w>>2]=h,c=T+f|0,n[C>>2]=c,f=h-p|0,l=c-p|0,(p|0)<0&&(n[w>>2]=f,n[C>>2]=l,n[B>>2]=0,p=0,c=l,h=f),l=p-h|0,f=c-h|0,(h|0)<0?(n[B>>2]=l,n[C>>2]=f,n[w>>2]=0,p=l,h=0):f=c,c=p-f|0,l=h-f|0,(f|0)<0?(n[B>>2]=c,n[w>>2]=l,n[C>>2]=0,h=l,f=0):c=p,l=(h|0)<(c|0)?h:c,l=(f|0)<(l|0)?f:l,(l|0)>0&&(f=f-l|0,h=h-l|0,c=c-l|0,n[B>>2]=c,n[w>>2]=h,n[C>>2]=f)),b>>>0<M>>>0;)b=b+1|0;return u|0}function Zn(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;if(M=I,I=I+16|0,C=M,w=te(s|0,o|0,45)|0,S()|0,w=w&127,w>>>0>121)return n[c>>2]=0,n[c+4>>2]=0,n[c+8>>2]=0,n[c+12>>2]=0,B=5,I=M,B|0;e:do if((ct(w)|0)!=0&&(p=te(s|0,o|0,52)|0,S()|0,p=p&15,(p|0)!=0)){u=1;t:for(;;){switch(B=te(s|0,o|0,(15-u|0)*3|0)|0,S()|0,B&7){case 5:break t;case 0:break;default:T=o;break e}if(u>>>0<p>>>0)u=u+1|0;else{T=o;break e}}for(h=1,u=o;;){switch(o=(15-h|0)*3|0,l=oe(7,0,o|0)|0,l=s&~l,f=u&~(S()|0),u=te(s|0,u|0,o|0)|0,S()|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(s=oe(u|0,0,o|0)|0,s=s|l,u=S()|0|f,h>>>0<p>>>0)h=h+1|0;else{T=u;break e}}}else T=o;while(!1);if(B=7696+(w*28|0)|0,n[c>>2]=n[B>>2],n[c+4>>2]=n[B+4>>2],n[c+8>>2]=n[B+8>>2],n[c+12>>2]=n[B+12>>2],!(ka(s,T,c)|0))return B=0,I=M,B|0;if(B=c+4|0,n[C>>2]=n[B>>2],n[C+4>>2]=n[B+4>>2],n[C+8>>2]=n[B+8>>2],g=te(s|0,T|0,52)|0,S()|0,b=g&15,g&1?(f=n[B>>2]|0,p=c+8|0,l=n[p>>2]|0,g=c+12|0,o=n[g>>2]|0,u=(l*3|0)+f|0,f=o+(f*3|0)|0,n[B>>2]=f,n[p>>2]=u,l=(o*3|0)+l|0,n[g>>2]=l,o=u-f|0,h=l-f|0,(f|0)<0&&(n[p>>2]=o,n[g>>2]=h,n[B>>2]=0,u=o,f=0,l=h),h=f-u|0,o=l-u|0,(u|0)<0?(n[B>>2]=h,n[g>>2]=o,n[p>>2]=0,u=0):(o=l,h=f),f=h-o|0,l=u-o|0,(o|0)<0?(n[B>>2]=f,n[p>>2]=l,n[g>>2]=0,o=0):(l=u,f=h),u=(l|0)<(f|0)?l:f,u=(o|0)<(u|0)?o:u,(u|0)>0&&(n[B>>2]=f-u,n[p>>2]=l-u,n[g>>2]=o-u),l=b+1|0):l=b,!(ct(w)|0))u=0;else{e:do if(!b)u=0;else for(o=1;;){if(u=te(s|0,T|0,(15-o|0)*3|0)|0,S()|0,u=u&7,u|0)break e;if(o>>>0<b>>>0)o=o+1|0;else{u=0;break}}while(!1);u=(u|0)==4&1}if(!(Wn(c,l,u,0)|0))(l|0)!=(b|0)&&(n[B>>2]=n[C>>2],n[B+4>>2]=n[C+4>>2],n[B+8>>2]=n[C+8>>2]);else{if(ct(w)|0)do;while((Wn(c,l,0,0)|0)!=0);(l|0)!=(b|0)&&(p=c+12|0,s=n[p>>2]|0,u=(n[B>>2]|0)-s|0,h=c+8|0,s=(n[h>>2]|0)-s|0,o=Nr(+((u<<1)+s|0)*.14285714285714285)|0,n[B>>2]=o,u=Nr(+((s*3|0)-u|0)*.14285714285714285)|0,n[h>>2]=u,n[p>>2]=0,s=u-o|0,l=0-o|0,(o|0)<0?(n[h>>2]=s,n[p>>2]=l,n[B>>2]=0,u=s,o=0):l=0,f=o-u|0,s=l-u|0,(u|0)<0?(n[B>>2]=f,n[p>>2]=s,n[h>>2]=0,o=f,u=0):s=l,f=o-s|0,l=u-s|0,(s|0)<0?(n[B>>2]=f,n[h>>2]=l,n[p>>2]=0,o=f,s=0):l=u,u=(l|0)<(o|0)?l:o,u=(s|0)<(u|0)?s:u,(u|0)>0&&(n[B>>2]=o-u,n[h>>2]=l-u,n[p>>2]=s-u))}return B=0,I=M,B|0}function $n(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0;return h=I,I=I+48|0,u=h+24|0,l=h,f=Zn(s,o,u)|0,f?(I=h,f|0):(f=te(s|0,o|0,52)|0,S()|0,Sy(u,f&15,l),g=+$A(+ +L[l+16>>3]),p=+Qt(+ +L[l+8>>3],+ +L[l>>3]),L[c>>3]=g,L[c+8>>3]=p,f=0,I=h,f|0)}function Bn(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0;if(h=I,I=I+16|0,f=h,u=Zn(s,o,f)|0,u|0)return f=u,I=h,f|0;u=te(s|0,o|0,45)|0,S()|0,u=(ct(u&127)|0)==0,l=te(s|0,o|0,52)|0,S()|0,l=l&15;e:do if(!u){if(l|0)for(u=1;;){if(p=oe(7,0,(15-u|0)*3|0)|0,!((p&s|0)==0&((S()|0)&o|0)==0))break e;if(u>>>0<l>>>0)u=u+1|0;else break}return Fa(f,l,0,5,c),p=0,I=h,p|0}while(!1);return La(f,l,0,6,c),p=0,I=h,p|0}function Vy(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0;if(l=te(s|0,o|0,45)|0,S()|0,!(ct(l&127)|0))return l=2,n[c>>2]=l,0;if(l=te(s|0,o|0,52)|0,S()|0,l=l&15,!l)return l=5,n[c>>2]=l,0;for(u=1;;){if(f=oe(7,0,(15-u|0)*3|0)|0,!((f&s|0)==0&((S()|0)&o|0)==0)){u=2,s=6;break}if(u>>>0<l>>>0)u=u+1|0;else{u=5,s=6;break}}return(s|0)==6&&(n[c>>2]=u),0}function Gu(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0;C=I,I=I+128|0,T=C+112|0,f=C+96|0,b=C,l=te(s|0,o|0,52)|0,S()|0,p=l&15,n[T>>2]=p,h=te(s|0,o|0,45)|0,S()|0,h=h&127;e:do if(ct(h)|0){if(p|0)for(u=1;;){if(g=oe(7,0,(15-u|0)*3|0)|0,!((g&s|0)==0&((S()|0)&o|0)==0)){l=0;break e}if(u>>>0<p>>>0)u=u+1|0;else break}if(l&1)l=1;else return g=oe(p+1|0,0,52)|0,b=S()|0|o&-15728641,T=oe(7,0,(14-p|0)*3|0)|0,b=Gu((g|s)&~T,b&~(S()|0),c)|0,I=C,b|0}else l=0;while(!1);if(u=Zn(s,o,f)|0,!u){l?(Ru(f,T,b),g=5):(Pu(f,T,b),g=6);e:do if(ct(h)|0)if(!p)s=5;else for(u=1;;){if(h=oe(7,0,(15-u|0)*3|0)|0,!((h&s|0)==0&((S()|0)&o|0)==0)){s=2;break e}if(u>>>0<p>>>0)u=u+1|0;else{s=5;break}}else s=2;while(!1);an(c|0,-1,s<<2|0)|0;e:do if(l)for(f=0;;){if(h=b+(f<<4)|0,Fy(h,n[T>>2]|0)|0,h=n[h>>2]|0,p=n[c>>2]|0,(p|0)==-1|(p|0)==(h|0))u=c;else{l=0;do{if(l=l+1|0,l>>>0>=s>>>0){u=1;break e}u=c+(l<<2)|0,p=n[u>>2]|0}while(!((p|0)==-1|(p|0)==(h|0)))}if(n[u>>2]=h,f=f+1|0,f>>>0>=g>>>0){u=0;break}}else for(f=0;;){if(h=b+(f<<4)|0,Wn(h,n[T>>2]|0,0,1)|0,h=n[h>>2]|0,p=n[c>>2]|0,(p|0)==-1|(p|0)==(h|0))u=c;else{l=0;do{if(l=l+1|0,l>>>0>=s>>>0){u=1;break e}u=c+(l<<2)|0,p=n[u>>2]|0}while(!((p|0)==-1|(p|0)==(h|0)))}if(n[u>>2]=h,f=f+1|0,f>>>0>=g>>>0){u=0;break}}while(!1)}return b=u,I=C,b|0}function jy(){return 12}function Ua(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0;if(s>>>0>15)return p=4,p|0;if(oe(s|0,0,52)|0,p=S()|134225919,!s){c=0,u=0;do ct(u)|0&&(oe(u|0,0,45)|0,h=p|(S()|0),s=o+(c<<3)|0,n[s>>2]=-1,n[s+4>>2]=h,c=c+1|0),u=u+1|0;while((u|0)!=122);return c=0,c|0}c=0,h=0;do{if(ct(h)|0){for(oe(h|0,0,45)|0,u=1,l=-1,f=p|(S()|0);g=oe(7,0,(15-u|0)*3|0)|0,l=l&~g,f=f&~(S()|0),(u|0)!=(s|0);)u=u+1|0;g=o+(c<<3)|0,n[g>>2]=l,n[g+4>>2]=f,c=c+1|0}h=h+1|0}while((h|0)!=122);return c=0,c|0}function Qy(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0;if(R=I,I=I+16|0,D=R,H=te(s|0,o|0,52)|0,S()|0,H=H&15,c>>>0>15)return H=4,I=R,H|0;if((H|0)<(c|0))return H=12,I=R,H|0;if((H|0)!=(c|0))if(f=oe(c|0,0,52)|0,f=f|s,p=S()|0|o&-15728641,(H|0)>(c|0)){g=c;do P=oe(7,0,(14-g|0)*3|0)|0,g=g+1|0,f=P|f,p=S()|0|p;while((g|0)<(H|0));P=f}else P=f;else P=s,p=o;M=te(P|0,p|0,45)|0,S()|0;e:do if(ct(M&127)|0){if(g=te(P|0,p|0,52)|0,S()|0,g=g&15,g|0)for(f=1;;){if(M=oe(7,0,(15-f|0)*3|0)|0,!((M&P|0)==0&((S()|0)&p|0)==0)){T=33;break e}if(f>>>0<g>>>0)f=f+1|0;else break}if(M=u,n[M>>2]=0,n[M+4>>2]=0,(H|0)>(c|0)){for(M=o&-15728641,B=H;;){if(w=B,B=B+-1|0,B>>>0>15|(H|0)<(B|0)){T=19;break}if((H|0)!=(B|0))if(f=oe(B|0,0,52)|0,f=f|s,g=S()|0|M,(H|0)<(w|0))C=f;else{T=B;do C=oe(7,0,(14-T|0)*3|0)|0,T=T+1|0,f=C|f,g=S()|0|g;while((T|0)<(H|0));C=f}else C=s,g=o;if(b=te(C|0,g|0,45)|0,S()|0,!(ct(b&127)|0))f=0;else{b=te(C|0,g|0,52)|0,S()|0,b=b&15;t:do if(!b)f=0;else for(T=1;;){if(f=te(C|0,g|0,(15-T|0)*3|0)|0,S()|0,f=f&7,f|0)break t;if(T>>>0<b>>>0)T=T+1|0;else{f=0;break}}while(!1);f=(f|0)==0&1}if(g=te(s|0,o|0,(15-w|0)*3|0)|0,S()|0,g=g&7,(g|0)==7){l=5,T=42;break}if(f=(f|0)!=0,(g|0)==1&f){l=5,T=42;break}if(C=g+(((g|0)!=0&f)<<31>>31)|0,C|0&&(T=H-w|0,T=An(7,0,T,((T|0)<0)<<31>>31)|0,b=S()|0,f?(f=ut(T|0,b|0,5,0)|0,f=ce(f|0,S()|0,-5,-1)|0,f=sn(f|0,S()|0,6,0)|0,f=ce(f|0,S()|0,1,0)|0,g=S()|0):(f=T,g=b),w=C+-1|0,w=ut(T|0,b|0,w|0,((w|0)<0)<<31>>31|0)|0,w=ce(f|0,g|0,w|0,S()|0)|0,C=S()|0,b=u,b=ce(w|0,C|0,n[b>>2]|0,n[b+4>>2]|0)|0,C=S()|0,w=u,n[w>>2]=b,n[w+4>>2]=C),(B|0)<=(c|0)){T=37;break}}if((T|0)==19)Oe(27634,27225,1407,27259);else if((T|0)==37){h=u,l=n[h+4>>2]|0,h=n[h>>2]|0;break}else if((T|0)==42)return I=R,l|0}else l=0,h=0}else T=33;while(!1);e:do if((T|0)==33)if(M=u,n[M>>2]=0,n[M+4>>2]=0,(H|0)>(c|0)){for(f=H;;){if(l=te(s|0,o|0,(15-f|0)*3|0)|0,S()|0,l=l&7,(l|0)==7){l=5;break}if(h=H-f|0,h=An(7,0,h,((h|0)<0)<<31>>31)|0,l=ut(h|0,S()|0,l|0,0)|0,h=S()|0,M=u,h=ce(n[M>>2]|0,n[M+4>>2]|0,l|0,h|0)|0,l=S()|0,M=u,n[M>>2]=h,n[M+4>>2]=l,f=f+-1|0,(f|0)<=(c|0))break e}return I=R,l|0}else l=0,h=0;while(!1);return ri(P,p,H,D)|0&&Oe(27634,27225,1367,27274),H=D,D=n[H+4>>2]|0,((l|0)>-1|(l|0)==-1&h>>>0>4294967295)&((D|0)>(l|0)|((D|0)==(l|0)?(n[H>>2]|0)>>>0>h>>>0:0))?(H=0,I=R,H|0):(Oe(27634,27225,1447,27259),0)}function zy(s,o,c,u,l,f){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0,f=f|0;var h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0;if(C=I,I=I+16|0,h=C,l>>>0>15)return f=4,I=C,f|0;if(p=te(c|0,u|0,52)|0,S()|0,p=p&15,(p|0)>(l|0))return f=12,I=C,f|0;if(ri(c,u,l,h)|0&&Oe(27634,27225,1367,27274),b=h,T=n[b+4>>2]|0,!(((o|0)>-1|(o|0)==-1&s>>>0>4294967295)&((T|0)>(o|0)|((T|0)==(o|0)?(n[b>>2]|0)>>>0>s>>>0:0))))return f=2,I=C,f|0;b=l-p|0,l=oe(l|0,0,52)|0,g=S()|0|u&-15728641,T=f,n[T>>2]=l|c,n[T+4>>2]=g,T=te(c|0,u|0,45)|0,S()|0;e:do if(ct(T&127)|0){if(p|0)for(h=1;;){if(T=oe(7,0,(15-h|0)*3|0)|0,!((T&c|0)==0&((S()|0)&u|0)==0))break e;if(h>>>0<p>>>0)h=h+1|0;else break}if((b|0)<1)return f=0,I=C,f|0;for(T=p^15,u=-1,g=1,h=1;;){p=b-g|0,p=An(7,0,p,((p|0)<0)<<31>>31)|0,c=S()|0;do if(h)if(h=ut(p|0,c|0,5,0)|0,h=ce(h|0,S()|0,-5,-1)|0,h=sn(h|0,S()|0,6,0)|0,l=S()|0,(o|0)>(l|0)|(o|0)==(l|0)&s>>>0>h>>>0){o=ce(s|0,o|0,-1,-1)|0,o=Bt(o|0,S()|0,h|0,l|0)|0,h=S()|0,w=f,M=n[w>>2]|0,w=n[w+4>>2]|0,P=(T+u|0)*3|0,B=oe(7,0,P|0)|0,w=w&~(S()|0),u=sn(o|0,h|0,p|0,c|0)|0,s=S()|0,l=ce(u|0,s|0,2,0)|0,P=oe(l|0,S()|0,P|0)|0,w=S()|0|w,l=f,n[l>>2]=P|M&~B,n[l+4>>2]=w,s=ut(u|0,s|0,p|0,c|0)|0,s=Bt(o|0,h|0,s|0,S()|0)|0,h=0,o=S()|0;break}else{P=f,B=n[P>>2]|0,P=n[P+4>>2]|0,M=oe(7,0,(T+u|0)*3|0)|0,P=P&~(S()|0),h=f,n[h>>2]=B&~M,n[h+4>>2]=P,h=1;break}else B=f,l=n[B>>2]|0,B=n[B+4>>2]|0,u=(T+u|0)*3|0,w=oe(7,0,u|0)|0,B=B&~(S()|0),P=sn(s|0,o|0,p|0,c|0)|0,h=S()|0,u=oe(P|0,h|0,u|0)|0,B=S()|0|B,M=f,n[M>>2]=u|l&~w,n[M+4>>2]=B,h=ut(P|0,h|0,p|0,c|0)|0,s=Bt(s|0,o|0,h|0,S()|0)|0,h=0,o=S()|0;while(!1);if((b|0)>(g|0))u=~g,g=g+1|0;else{o=0;break}}return I=C,o|0}while(!1);if((b|0)<1)return P=0,I=C,P|0;for(l=p^15,h=1;;)if(M=b-h|0,M=An(7,0,M,((M|0)<0)<<31>>31)|0,P=S()|0,g=f,c=n[g>>2]|0,g=n[g+4>>2]|0,p=(l-h|0)*3|0,u=oe(7,0,p|0)|0,g=g&~(S()|0),w=sn(s|0,o|0,M|0,P|0)|0,B=S()|0,p=oe(w|0,B|0,p|0)|0,g=S()|0|g,T=f,n[T>>2]=p|c&~u,n[T+4>>2]=g,P=ut(w|0,B|0,M|0,P|0)|0,s=Bt(s|0,o|0,P|0,S()|0)|0,o=S()|0,(b|0)<=(h|0)){o=0;break}else h=h+1|0;return I=C,o|0}function Ha(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0;l=te(o|0,c|0,52)|0,S()|0,l=l&15,(o|0)==0&(c|0)==0|((u|0)>15|(l|0)>(u|0))?(f=-1,o=-1,c=0,l=0):(o=Nu(o,c,l+1|0,u)|0,h=(S()|0)&-15728641,c=oe(u|0,0,52)|0,c=o|c,h=h|(S()|0),o=(et(c,h)|0)==0,f=l,o=o?-1:u,l=h),h=s,n[h>>2]=c,n[h+4>>2]=l,n[s+8>>2]=f,n[s+12>>2]=o}function ku(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0;if(l=te(s|0,o|0,52)|0,S()|0,l=l&15,f=u+8|0,n[f>>2]=l,(s|0)==0&(o|0)==0|((c|0)>15|(l|0)>(c|0))){c=u,n[c>>2]=0,n[c+4>>2]=0,n[f>>2]=-1,n[u+12>>2]=-1;return}if(s=Nu(s,o,l+1|0,c)|0,f=(S()|0)&-15728641,l=oe(c|0,0,52)|0,l=s|l,f=f|(S()|0),s=u,n[s>>2]=l,n[s+4>>2]=f,s=u+12|0,et(l,f)|0){n[s>>2]=c;return}else{n[s>>2]=-1;return}}function Va(s){s=s|0;var o=0,c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0;if(c=s,o=n[c>>2]|0,c=n[c+4>>2]|0,!((o|0)==0&(c|0)==0)&&(u=te(o|0,c|0,52)|0,S()|0,u=u&15,p=oe(1,0,(u^15)*3|0)|0,o=ce(p|0,S()|0,o|0,c|0)|0,c=S()|0,p=s,n[p>>2]=o,n[p+4>>2]=c,p=s+8|0,h=n[p>>2]|0,!((u|0)<(h|0)))){for(g=s+12|0,f=u;;){if((f|0)==(h|0)){u=5;break}if(T=(f|0)==(n[g>>2]|0),l=(15-f|0)*3|0,u=te(o|0,c|0,l|0)|0,S()|0,u=u&7,T&((u|0)==1&!0)){u=7;break}if(!((u|0)==7&!0)){u=10;break}if(T=oe(1,0,l|0)|0,o=ce(o|0,c|0,T|0,S()|0)|0,c=S()|0,T=s,n[T>>2]=o,n[T+4>>2]=c,(f|0)>(h|0))f=f+-1|0;else{u=10;break}}if((u|0)==5){T=s,n[T>>2]=0,n[T+4>>2]=0,n[p>>2]=-1,n[g>>2]=-1;return}else if((u|0)==7){h=oe(1,0,l|0)|0,h=ce(o|0,c|0,h|0,S()|0)|0,p=S()|0,T=s,n[T>>2]=h,n[T+4>>2]=p,n[g>>2]=f+-1;return}else if((u|0)==10)return}}function ni(s){s=+s;var o=0;return o=s<0?s+6.283185307179586:s,+(s>=6.283185307179586?o+-6.283185307179586:o)}function sr(s,o){switch(s=+s,o=o|0,o|0){case 1:s=s<0?s+6.283185307179586:s;break;case 2:s=s>0?s+-6.283185307179586:s;break;default:}return+s}function Jy(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0;return l=+L[o>>3],u=+L[s>>3],f=+We(+((l-u)*.5)),c=+We(+((+L[o+8>>3]-+L[s+8>>3])*.5)),c=f*f+c*(+De(+l)*+De(+u)*c),+(+Qt(+ +pt(+c),+ +pt(+(1-c)))*2)}function Ai(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0;return l=+L[o>>3],u=+L[s>>3],f=+We(+((l-u)*.5)),c=+We(+((+L[o+8>>3]-+L[s+8>>3])*.5)),c=f*f+c*(+De(+l)*+De(+u)*c),+(+Qt(+ +pt(+c),+ +pt(+(1-c)))*2*6371.007180918475)}function qy(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0;return l=+L[o>>3],u=+L[s>>3],f=+We(+((l-u)*.5)),c=+We(+((+L[o+8>>3]-+L[s+8>>3])*.5)),c=f*f+c*(+De(+l)*+De(+u)*c),+(+Qt(+ +pt(+c),+ +pt(+(1-c)))*2*6371.007180918475*1e3)}function Uu(s,o){return s=s|0,o=o|0,s>>>0>15?(o=4,o|0):(L[o>>3]=+L[20624+(s<<3)>>3],o=0,o|0)}function Ky(s,o){return s=s|0,o=o|0,s>>>0>15?(o=4,o|0):(L[o>>3]=+L[20752+(s<<3)>>3],o=0,o|0)}function Xy(s,o){return s=s|0,o=o|0,s>>>0>15?(o=4,o|0):(L[o>>3]=+L[20880+(s<<3)>>3],o=0,o|0)}function Yy(s,o){return s=s|0,o=o|0,s>>>0>15?(o=4,o|0):(L[o>>3]=+L[21008+(s<<3)>>3],o=0,o|0)}function rs(s,o){s=s|0,o=o|0;var c=0;return s>>>0>15?(o=4,o|0):(c=An(7,0,s,((s|0)<0)<<31>>31)|0,c=ut(c|0,S()|0,120,0)|0,s=S()|0,n[o>>2]=c|2,n[o+4>>2]=s,o=0,o|0)}function Wy(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(p=I,I=I+176|0,h=p,s=ei(s,o,h)|0,s|0)return h=s,I=p,h|0;if(L[c>>3]=0,s=n[h>>2]|0,(s|0)<=1)return h=0,I=p,h|0;o=s+-1|0,s=0,u=+L[h+8>>3],l=+L[h+16>>3],f=0;do s=s+1|0,T=u,u=+L[h+8+(s<<4)>>3],b=+We(+((u-T)*.5)),g=l,l=+L[h+8+(s<<4)+8>>3],g=+We(+((l-g)*.5)),g=b*b+g*(+De(+u)*+De(+T)*g),f=f+ +Qt(+ +pt(+g),+ +pt(+(1-g)))*2;while((s|0)<(o|0));return L[c>>3]=f,h=0,I=p,h|0}function Zy(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(p=I,I=I+176|0,h=p,s=ei(s,o,h)|0,s|0)return h=s,f=+L[c>>3],f=f*6371.007180918475,L[c>>3]=f,I=p,h|0;if(L[c>>3]=0,s=n[h>>2]|0,(s|0)<=1)return h=0,f=0,f=f*6371.007180918475,L[c>>3]=f,I=p,h|0;o=s+-1|0,s=0,u=+L[h+8>>3],l=+L[h+16>>3],f=0;do s=s+1|0,T=u,u=+L[h+8+(s<<4)>>3],b=+We(+((u-T)*.5)),g=l,l=+L[h+8+(s<<4)+8>>3],g=+We(+((l-g)*.5)),g=b*b+g*(+De(+T)*+De(+u)*g),f=f+ +Qt(+ +pt(+g),+ +pt(+(1-g)))*2;while((s|0)!=(o|0));return L[c>>3]=f,h=0,b=f,b=b*6371.007180918475,L[c>>3]=b,I=p,h|0}function $y(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(p=I,I=I+176|0,h=p,s=ei(s,o,h)|0,s|0)return h=s,f=+L[c>>3],f=f*6371.007180918475,f=f*1e3,L[c>>3]=f,I=p,h|0;if(L[c>>3]=0,s=n[h>>2]|0,(s|0)<=1)return h=0,f=0,f=f*6371.007180918475,f=f*1e3,L[c>>3]=f,I=p,h|0;o=s+-1|0,s=0,u=+L[h+8>>3],l=+L[h+16>>3],f=0;do s=s+1|0,T=u,u=+L[h+8+(s<<4)>>3],b=+We(+((u-T)*.5)),g=l,l=+L[h+8+(s<<4)+8>>3],g=+We(+((l-g)*.5)),g=b*b+g*(+De(+T)*+De(+u)*g),f=f+ +Qt(+ +pt(+g),+ +pt(+(1-g)))*2;while((s|0)!=(o|0));return L[c>>3]=f,h=0,b=f,b=b*6371.007180918475,b=b*1e3,L[c>>3]=b,I=p,h|0}function eT(s){s=s|0;var o=0,c=0,u=0,l=0,f=0,h=0,p=0;if(s)for(f=s+4|0,h=s+8|0,u=1,l=s;;){if(o=n[l>>2]|0,o|0)do{if(c=n[o>>2]|0,c|0)do p=c,c=n[c+16>>2]|0,fe(p);while((c|0)!=0);p=o,o=n[o+8>>2]|0,fe(p)}while((o|0)!=0);if(o=l,l=n[l+8>>2]|0,u?(n[s>>2]=0,n[f>>2]=0,n[h>>2]=0):fe(o),l)u=0;else break}}function tT(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0;if(n[o>>2]=0,D=o+4|0,n[D>>2]=0,H=o+8|0,n[H>>2]=0,P=n[s>>2]|0,(P|0)<=0)return o=0,o|0;M=s+4|0,s=o,B=0;e:for(;;){if(B){if(c=zt(1,12)|0,!c){c=5;break}n[s+8>>2]=c,s=c}if(g=n[M>>2]|0,T=zt(1,12)|0,!T){s=13,c=37;break}if(w=s+4|0,u=n[w>>2]|0,n[((u|0)==0?s:u+8|0)>>2]=T,n[w>>2]=T,u=n[g+(B<<4)>>2]|0,(u|0)<3){s=1,c=37;break}l=g+(B<<4)+4|0,f=T+4|0,c=0,h=0;do{if(p=h,h=lt(24)|0,!h){s=13,c=37;break e}Ya(h|0,(n[l>>2]|0)+(c<<4)|0,16)|0,n[h+16>>2]=0,p?n[p+16>>2]=h:n[T>>2]=h,n[f>>2]=h,c=c+1|0}while((c|0)<(u|0));if(C=n[g+(B<<4)+8>>2]|0,(C|0)>0){b=g+(B<<4)+12|0,g=0;do{if(u=n[b>>2]|0,c=T,T=zt(1,12)|0,!T){s=13,c=37;break e}if(n[c+8>>2]=T,n[w>>2]=T,p=n[u+(g<<3)>>2]|0,(p|0)<3){s=1,c=37;break e}u=u+(g<<3)+4|0,l=T+4|0,c=0,f=0;do{if(h=f,f=lt(24)|0,!f){s=13,c=37;break e}Ya(f|0,(n[u>>2]|0)+(c<<4)|0,16)|0,n[f+16>>2]=0,h?n[h+16>>2]=f:n[T>>2]=f,n[l>>2]=f,c=c+1|0}while((c|0)<(p|0));g=g+1|0}while((g|0)<(C|0))}if(B=B+1|0,(B|0)>=(P|0)){s=0,c=50;break}}if((c|0)==5){if(!o)return o=13,o|0;for(u=1,l=o;;){if(s=n[l>>2]|0,s|0)do{if(c=n[s>>2]|0,c|0)do P=c,c=n[c+16>>2]|0,fe(P);while((c|0)!=0);P=s,s=n[s+8>>2]|0,fe(P)}while((s|0)!=0);if(s=l,l=n[l+8>>2]|0,u?(n[o>>2]=0,n[D>>2]=0,n[H>>2]=0):fe(s),l)u=0;else{s=13;break}}return s|0}else if((c|0)==37){if(!o)return o=s,o|0;for(l=1,f=o;;){if(c=n[f>>2]|0,c|0)do{if(u=n[c>>2]|0,u|0)do P=u,u=n[u+16>>2]|0,fe(P);while((u|0)!=0);P=c,c=n[c+8>>2]|0,fe(P)}while((c|0)!=0);if(c=f,f=n[f+8>>2]|0,l?(n[o>>2]=0,n[D>>2]=0,n[H>>2]=0):fe(c),f)l=0;else break}return s|0}else if((c|0)==50)return s|0;return 0}function ii(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0;if(H=I,I=I+16|0,D=H,b=te(s|0,o|0,52)|0,S()|0,b=b&15,B=te(c|0,u|0,52)|0,S()|0,(b|0)!=(B&15|0))return D=12,I=H,D|0;if(g=te(s|0,o|0,45)|0,S()|0,g=g&127,T=te(c|0,u|0,45)|0,S()|0,T=T&127,g>>>0>121|T>>>0>121)return D=5,I=H,D|0;if(B=(g|0)!=(T|0),B){if(h=Ma(g,T)|0,(h|0)==7)return D=1,I=H,D|0;p=Ma(T,g)|0,(p|0)==7?Oe(27291,27315,164,27325):(P=h,f=p)}else P=0,f=0;C=ct(g)|0,w=ct(T)|0,n[D>>2]=0,n[D+4>>2]=0,n[D+8>>2]=0,n[D+12>>2]=0;do if(P){T=n[4272+(g*28|0)+(P<<2)>>2]|0,h=(T|0)>0;e:do if(w)if(h)for(g=0,p=c,h=u;;){switch(p=Uy(p,h)|0,h=S()|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)==(T|0)){T=f,g=p,p=h;break e}}else T=f,g=c,p=u;else if(h)for(g=0,p=c,h=u;;){switch(p=Oa(p,h)|0,h=S()|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)==(T|0)){T=f,g=p,p=h;break e}}else T=f,g=c,p=u;while(!1);if(ka(g,p,D)|0,B||Oe(27340,27315,194,27325),h=(C|0)!=0,f=(w|0)!=0,h&f&&Oe(27367,27315,195,27325),h){if(f=$t(s,o)|0,(f|0)==7){f=5;break}if(W[21968+(f*7|0)+P>>0]|0){f=1;break}w=n[21136+(f*28|0)+(P<<2)>>2]|0,B=w}else if(f){if(f=$t(g,p)|0,(f|0)==7){f=5;break}if(W[21968+(f*7|0)+T>>0]|0){f=1;break}B=0,w=n[21136+(T*28|0)+(f<<2)>>2]|0}else B=0,w=0;if((B|w|0)>=0){if((w|0)>0){c=D+4|0,u=D+8|0,C=D+12|0,T=0,p=n[c>>2]|0,h=n[u>>2]|0,f=n[C>>2]|0;do M=h+p|0,o=(M|0)<0,R=o?M:0,h=f+h-R|0,s=(h|0)<0,g=s?h:0,p=f+p-R-g|0,R=(p|0)<0,f=R?0:p,p=R?p:0,h=(s?0:h)-p|0,p=(o?0:M)-g-p|0,g=(h|0)<(p|0)?h:p,g=(f|0)<(g|0)?f:g,(g|0)>0&&(p=p-g|0,h=h-g|0,f=f-g|0),T=T+1|0;while((T|0)!=(w|0));n[c>>2]=p,n[u>>2]=h,n[C>>2]=f}if((P+-1|0)>>>0<6?(f=n[22032+(P*12|0)>>2]|0,p=n[22032+(P*12|0)+4>>2]|0,R=n[22032+(P*12|0)+8>>2]|0,h=(p|0)<(f|0)?p:f,h=(R|0)<(h|0)?R:h,h=(h|0)>0?h:0,f=f-h|0,p=p-h|0,h=R-h|0):(f=0,p=0,h=0),b)for(;;)if(g=f*3|0,T=p*3|0,c=h*3|0,hr(b)|0?(o=g+p|0,s=(o|0)<0,R=T+h-(s?o:0)|0,M=(R|0)<0,p=f+c-(s?o:0)-(M?R:0)|0,h=(p|0)<0,P=h?0:p,g=(M?0:R)-(h?p:0)|0,p=(s?0:o)-(M?R:0)-(h?p:0)|0,h=(g|0)<(p|0)?g:p,h=(P|0)<(h|0)?P:h,R=(h|0)>0,f=R?h:0,g=g-(R?h:0)|0,h=P-(R?h:0)|0):(M=g+h|0,o=(M|0)<0,R=T+f-(o?M:0)|0,f=(R|0)<0,p=c+p-(o?M:0)-(f?R:0)|0,h=(p|0)<0,P=h?0:p,g=(f?0:R)-(h?p:0)|0,p=(o?0:M)-(f?R:0)-(h?p:0)|0,h=(g|0)<(p|0)?g:p,h=(P|0)<(h|0)?P:h,R=(h|0)>0,f=R?h:0,g=g-(R?h:0)|0,h=P-(R?h:0)|0),f=p-f|0,(b|0)>1)b=b+-1|0,p=g;else{p=g;break}if((B|0)>0){g=0;do o=f+p|0,s=(o|0)<0,R=p+h-(s?o:0)|0,M=(R|0)<0,P=f+h-(s?o:0)-(M?R:0)|0,f=(P|0)<0,h=f?0:P,p=(M?0:R)-(f?P:0)|0,P=(s?0:o)-(M?R:0)-(f?P:0)|0,f=(p|0)<(P|0)?p:P,f=(h|0)<(f|0)?h:f,R=(f|0)>0,h=h-(R?f:0)|0,p=p-(R?f:0)|0,f=P-(R?f:0)|0,g=g+1|0;while((g|0)!=(B|0))}c=D+4|0,b=D+8|0,P=n[b>>2]|0,u=D+12|0,R=n[u>>2]|0,g=(n[c>>2]|0)+f|0,n[c>>2]=g,p=P+p|0,n[b>>2]=p,f=R+h|0,n[u>>2]=f,h=p-g|0,(g|0)<0?(f=f-g|0,n[b>>2]=h,n[u>>2]=f,n[c>>2]=0,p=0):(h=p,p=g),(h|0)<0&&(p=p-h|0,n[c>>2]=p,f=f-h|0,n[u>>2]=f,n[b>>2]=0,h=0),T=p-f|0,g=h-f|0,(f|0)<0?(n[c>>2]=T,n[b>>2]=g,n[u>>2]=0,p=T,f=0):g=h,h=(g|0)<(p|0)?g:p,h=(f|0)<(h|0)?f:h,(h|0)>0&&(n[c>>2]=p-h,n[b>>2]=g-h,n[u>>2]=f-h),M=77}else f=5}else if(ka(c,u,D)|0,(C|0)!=0&(w|0)!=0)if((T|0)!=(g|0)&&Oe(27398,27315,264,27325),h=$t(s,o)|0,f=$t(c,u)|0,(h|0)==7|(f|0)==7)f=5;else if(W[21968+(h*7|0)+f>>0]|0)f=1;else if(c=n[21136+(h*28|0)+(f<<2)>>2]|0,(c|0)>0){b=D+4|0,u=D+8|0,C=D+12|0,T=0,p=n[b>>2]|0,h=n[u>>2]|0,f=n[C>>2]|0;do P=h+p|0,M=(P|0)<0,s=M?P:0,h=f+h-s|0,o=(h|0)<0,g=o?h:0,p=f+p-s-g|0,s=(p|0)<0,f=s?0:p,p=s?p:0,h=(o?0:h)-p|0,p=(M?0:P)-g-p|0,g=(h|0)<(p|0)?h:p,g=(f|0)<(g|0)?f:g,(g|0)>0&&(p=p-g|0,h=h-g|0,f=f-g|0),T=T+1|0;while((T|0)!=(c|0));n[b>>2]=p,n[u>>2]=h,n[C>>2]=f,M=77}else M=77;else M=77;while(!1);return(M|0)==77&&(f=D+4|0,n[l>>2]=n[f>>2],n[l+4>>2]=n[f+4>>2],n[l+8>>2]=n[f+8>>2],f=0),R=f,I=H,R|0}function Hu(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0;if(f=te(s|0,o|0,52)|0,S()|0,f=f&15,O=te(s|0,o|0,45)|0,S()|0,O=O&127,O>>>0>121)return u=5,u|0;if(D=ct(O)|0,oe(f|0,0,52)|0,p=S()|134225919,h=u,n[h>>2]=-1,n[h+4>>2]=p,h=n[c>>2]|0,p=n[c+4>>2]|0,c=n[c+8>>2]|0,!f){o=(h|0)<0,H=o?h:0,j=p-H|0,D=(j|0)<0,H=(D?0-j|0:0)+(c-H)|0,c=(H|0)<0,l=c?0:H,H=c?H:0,c=(D?0:j)-H|0,H=(o?0:h)-(D?j:0)-H|0,j=(c|0)<(H|0)?c:H,j=(l|0)<(j|0)?l:j,j=(j|0)>0?j:0,l=l-j|0,c=c-j|0;e:do switch(H-j|0){case 0:switch(c|0){case 0:if(l){l=(l|0)==1?1:7,R=11;break e}else{l=0;break e}case 1:if(l){l=(l|0)==1?3:7,R=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,R=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(R|0)==11&&(l|0)==7||(l=va(O,l)|0,(l|0)==127)?(u=1,u|0):(j=oe(l|0,0,45)|0,O=S()|0,R=u,O=n[R+4>>2]&-1040385|O,n[u>>2]=n[R>>2]|j,n[u+4>>2]=O,u=0,u|0)}for(;;){if(P=f,f=f+-1|0,M=h-c|0,B=p-c|0,g=M>>>0>715827881|B>>>0>715827881,hr(P)|0){if(g){if(b=(M|0)>0,C=2147483647-M|0,w=-2147483648-M|0,b?(C|0)<(M|0):(w|0)>(M|0)){l=1,R=107;break}if(V=M<<1,b?(2147483647-V|0)<(M|0):(-2147483648-V|0)>(M|0)){l=1,R=107;break}if((B|0)>0?(2147483647-B|0)<(B|0):(-2147483648-B|0)>(B|0)){l=1,R=107;break}if(g=M*3|0,T=B<<1,(b?(C|0)<(T|0):(w|0)>(T|0))||((M|0)>-1?(g|-2147483648)>=(B|0):(g^-2147483648|0)<(B|0))){l=1,R=107;break}}else g=M*3|0,T=B<<1;if(C=Nr(+(g-B|0)*.14285714285714285)|0,b=Nr(+(T+M|0)*.14285714285714285)|0,T=(b|0)<(C|0),g=T?C:b,T=T?b:C,(T|0)<0){if((T|0)==-2147483648||((g|0)>0?(2147483647-g|0)<(T|0):(-2147483648-g|0)>(T|0))){R=24;break}if((g|0)>-1?(g|-2147483648)>=(T|0):(g^-2147483648|0)<(T|0)){R=24;break}}w=(C|0)<0,B=b-(w?C:0)|0,ee=(B|0)<0,K=(w?0-C|0:0)-(ee?B:0)|0,M=(K|0)<0,w=(w?0:C)-(ee?B:0)-(M?K:0)|0,B=(ee?0:B)-(M?K:0)|0,K=M?0:K,M=(B|0)<(w|0)?B:w,M=(K|0)<(M|0)?K:M,ee=(M|0)>0,w=w-(ee?M:0)|0,B=B-(ee?M:0)|0,M=K-(ee?M:0)|0,ee=(w*3|0)+B|0,K=(ee|0)<0,V=(B*3|0)+M-(K?ee:0)|0,g=(V|0)<0,C=(M*3|0)+w-(K?ee:0)-(g?V:0)|0,b=(C|0)<0,z=b?0:C,T=(g?0:V)-(b?C:0)|0,C=(K?0:ee)-(g?V:0)-(b?C:0)|0,b=(T|0)<(C|0)?T:C,b=(z|0)<(b|0)?z:b,V=(b|0)>0,g=V?b:0,T=T-(V?b:0)|0,b=z-(V?b:0)|0}else{if(g){if(T=(M|0)>0,T?(2147483647-M|0)<(M|0):(-2147483648-M|0)>(M|0)){l=1,R=107;break}if(g=M<<1,b=(B|0)>0,b?(2147483647-B|0)<(B|0):(-2147483648-B|0)>(B|0)){l=1,R=107;break}if(w=B<<1,b?(2147483647-w|0)<(B|0):(-2147483648-w|0)>(B|0)){l=1,R=107;break}if(T?(2147483647-g|0)<(B|0):(-2147483648-g|0)>(B|0)){l=1,R=107;break}if(T=B*3|0,(B|0)>-1?(T|-2147483648)>=(M|0):(T^-2147483648|0)<(M|0)){l=1,R=107;break}}else g=M<<1,T=B*3|0;if(C=Nr(+(g+B|0)*.14285714285714285)|0,b=Nr(+(T-M|0)*.14285714285714285)|0,T=(b|0)<(C|0),g=T?C:b,T=T?b:C,(T|0)<0){if((T|0)==-2147483648||((g|0)>0?(2147483647-g|0)<(T|0):(-2147483648-g|0)>(T|0))){R=36;break}if((g|0)>-1?(g|-2147483648)>=(T|0):(g^-2147483648|0)<(T|0)){R=36;break}}w=(C|0)<0,B=b-(w?C:0)|0,z=(B|0)<0,V=(w?0-C|0:0)-(z?B:0)|0,M=(V|0)<0,w=(w?0:C)-(z?B:0)-(M?V:0)|0,B=(z?0:B)-(M?V:0)|0,V=M?0:V,M=(B|0)<(w|0)?B:w,M=(V|0)<(M|0)?V:M,z=(M|0)>0,w=w-(z?M:0)|0,B=B-(z?M:0)|0,M=V-(z?M:0)|0,z=(w*3|0)+M|0,V=(z|0)<0,K=(B*3|0)+w-(V?z:0)|0,g=(K|0)<0,C=(M*3|0)+B-(V?z:0)-(g?K:0)|0,b=(C|0)<0,ee=b?0:C,T=(g?0:K)-(b?C:0)|0,C=(V?0:z)-(g?K:0)-(b?C:0)|0,b=(T|0)<(C|0)?T:C,b=(ee|0)<(b|0)?ee:b,K=(b|0)>0,g=K?b:0,T=T-(K?b:0)|0,b=ee-(K?b:0)|0}g=h+(g-C)|0,z=(g|0)<0,T=p-T-(z?g:0)|0,C=(T|0)<0,K=c-b+(z?0-g|0:0)+(C?0-T|0:0)|0,h=(K|0)<0,b=h?0:K,V=(C?0:T)-(h?K:0)|0,K=(z?0:g)-(C?T:0)-(h?K:0)|0,h=(V|0)<(K|0)?V:K,h=(b|0)<(h|0)?b:h,c=(h|0)>0,K=K-(c?h:0)|0,T=u,C=n[T>>2]|0,T=n[T+4>>2]|0,p=(15-P|0)*3|0,g=oe(7,0,p|0)|0,g=C&~g,T=T&~(S()|0),C=(K|0)<0,z=C?K:0,V=V-(c?h:0)-z|0,ee=(V|0)<0,z=(ee?0-V|0:0)+(b-(c?h:0)-z)|0,h=(z|0)<0,c=h?0:z,z=h?z:0,h=(ee?0:V)-z|0,z=(C?0:K)-(ee?V:0)-z|0,V=(h|0)<(z|0)?h:z,V=(c|0)<(V|0)?c:V,V=(V|0)>0?V:0,c=c-V|0,h=h-V|0;e:do switch(z-V|0){case 0:switch(h|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:R=45;break e}case 1:switch(h|0){case 0:c=(c|0)==0?4:(c|0)==1?5:7;break e;case 1:if(c){R=45;break e}else{c=6;break e}default:R=45;break e}default:R=45}while(!1);if((R|0)==45&&(R=0,c=7),ee=oe(c|0,0,p|0)|0,z=S()|0|T,V=u,n[V>>2]=ee|g,n[V+4>>2]=z,(P|0)<=1){R=47;break}else h=w,p=B,c=M}if((R|0)==24)Oe(27634,27425,416,27447);else if((R|0)==36)Oe(27634,27425,464,27461);else if((R|0)==47){if((w|0)>1|(B|0)>1|(M|0)>1)return V=1,V|0;K=(w|0)<0,z=K?w:0,V=B-z|0,ee=(V|0)<0,z=(ee?0-V|0:0)+(M-z)|0,f=(z|0)<0,c=f?0:z,z=f?z:0,f=(ee?0:V)-z|0,z=(K?0:w)-(ee?V:0)-z|0,V=(f|0)<(z|0)?f:z,V=(c|0)<(V|0)?c:V,V=(V|0)>0?V:0,c=c-V|0,f=f-V|0;e:do switch(z-V|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:R=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){R=55;break e}else{f=6;break e}default:R=55;break e}default:R=55}while(!1);(R|0)==55&&(f=7),p=va(O,f)|0,(p|0)==127?T=0:T=ct(p)|0;e:do if(f){if(D){if(c=$t(s,o)|0,(c|0)==7)return V=5,V|0;h=n[21344+(c*28|0)+(f<<2)>>2]|0;t:do if((h|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)==(h|0))break t}else c=f;while(!1);if((c|0)==1)return V=9,V|0;f=va(O,c)|0,(f|0)==127&&Oe(27476,27315,415,27506),ct(f)|0?Oe(27521,27315,416,27506):(l=f,j=h,H=c)}else l=p,j=0,H=f;if(g=n[4272+(O*28|0)+(H<<2)>>2]|0,(g|0)<=-1&&Oe(27552,27315,423,27506),!T){if((j|0)<0)return V=5,V|0;if(j|0){h=u,c=0,f=n[h>>2]|0,h=n[h+4>>2]|0;do f=wn(f,h)|0,h=S()|0,V=u,n[V>>2]=f,n[V+4>>2]=h,c=c+1|0;while((c|0)<(j|0))}if((g|0)<=0){R=104;break}for(h=u,c=0,f=n[h>>2]|0,h=n[h+4>>2]|0;;)if(f=wn(f,h)|0,h=S()|0,V=u,n[V>>2]=f,n[V+4>>2]=h,c=c+1|0,(c|0)==(g|0)){R=104;break e}}if(p=Ma(l,O)|0,(p|0)==7&&Oe(27291,27315,432,27506),c=u,f=n[c>>2]|0,c=n[c+4>>2]|0,(g|0)>0){h=0;do f=wn(f,c)|0,c=S()|0,V=u,n[V>>2]=f,n[V+4>>2]=c,h=h+1|0;while((h|0)!=(g|0))}if(c=$t(f,c)|0,(c|0)==7&&Oe(27634,27315,444,27506),f=Ba(l)|0,f=n[(f?21760:21552)+(p*28|0)+(c<<2)>>2]|0,(f|0)<0&&Oe(27634,27315,458,27506),!f)R=104;else{p=u,c=0,h=n[p>>2]|0,p=n[p+4>>2]|0;do h=Na(h,p)|0,p=S()|0,V=u,n[V>>2]=h,n[V+4>>2]=p,c=c+1|0;while((c|0)<(f|0));R=104}}else if((D|0)!=0&(T|0)!=0){if(l=$t(s,o)|0,c=u,c=$t(n[c>>2]|0,n[c+4>>2]|0)|0,(l|0)==7|(c|0)==7||(c=n[21344+(l*28|0)+(c<<2)>>2]|0,(c|0)<0))return V=5,V|0;if(!c)l=p,R=105;else{h=u,l=0,f=n[h>>2]|0,h=n[h+4>>2]|0;do f=wn(f,h)|0,h=S()|0,V=u,n[V>>2]=f,n[V+4>>2]=h,l=l+1|0;while((l|0)<(c|0));l=p,R=104}}else l=p,R=104;while(!1);return(R|0)==104&&T&&(R=105),(R|0)==105&&(V=u,($t(n[V>>2]|0,n[V+4>>2]|0)|0)==1)?(V=9,V|0):(z=u,K=n[z>>2]|0,z=n[z+4>>2]&-1040385,ee=oe(l|0,0,45)|0,z=z|(S()|0),V=u,n[V>>2]=K|ee,n[V+4>>2]=z,V=0,V|0)}else if((R|0)==107)return l|0;return 0}function rT(s,o,c,u,l,f){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0,f=f|0;var h=0,p=0;return p=I,I=I+16|0,h=p,l|0?(h=15,I=p,h|0):(s=ii(s,o,c,u,h)|0,s||(l=n[h+4>>2]|0,s=n[h+8>>2]|0,n[f>>2]=(n[h>>2]|0)-s,n[f+4>>2]=l-s,s=0),h=s,I=p,h|0)}function nT(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0;return C=I,I=I+16|0,b=C,u|0?(b=15,I=C,b|0):(p=n[c>>2]|0,h=n[c+4>>2]|0,n[b>>2]=p,g=b+4|0,n[g>>2]=h,T=b+8|0,n[T>>2]=0,c=(h|0)<(p|0),u=c?p:h,c=c?h:p,(c|0)<0?!((c|0)==-2147483648||((u|0)>0?(2147483647-u|0)<(c|0):(-2147483648-u|0)>(c|0)))&&!((u|0)>-1?(u|-2147483648)>=(c|0):(u^-2147483648|0)<(c|0))?f=5:u=1:f=5,(f|0)==5&&(u=h-p|0,f=0-p|0,(p|0)<0?(n[g>>2]=u,n[T>>2]=f,n[b>>2]=0,p=0):(u=h,f=0),h=p-u|0,c=f-u|0,(u|0)<0?(n[b>>2]=h,n[T>>2]=c,n[g>>2]=0,p=h,u=0):c=f,h=p-c|0,f=u-c|0,(c|0)<0?(n[b>>2]=h,n[g>>2]=f,n[T>>2]=0,c=0):(f=u,h=p),u=(f|0)<(h|0)?f:h,u=(c|0)<(u|0)?c:u,(u|0)>0&&(n[b>>2]=h-u,n[g>>2]=f-u,n[T>>2]=c-u),u=Hu(s,o,b,l)|0),b=u,I=C,b|0)}function ja(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0;return g=I,I=I+32|0,h=g+12|0,p=g,f=ii(s,o,s,o,h)|0,f|0?(p=f,I=g,p|0):(s=ii(s,o,c,u,p)|0,s|0?(p=s,I=g,p|0):(s=(n[h>>2]|0)-(n[p>>2]|0)|0,T=(s|0)<0,u=T?0-s|0:0,c=u+((n[h+4>>2]|0)-(n[p+4>>2]|0))|0,o=(c|0)<0,u=(n[h+8>>2]|0)-(n[p+8>>2]|0)+u+(o?0-c|0:0)|0,f=(u|0)<0,h=f?0:u,u=f?u:0,f=(o?0:c)-u|0,u=(T?0:s)-(o?c:0)-u|0,p=(f|0)<(u|0)?f:u,p=(h|0)<(p|0)?h:p,p=(p|0)>0?p:0,h=h-p|0,f=f-p|0,p=u-p|0,p=(p|0)>-1?p:0-p|0,f=(f|0)>-1?f:0-f|0,h=(h|0)>-1?h:0-h|0,h=(f|0)>(h|0)?f:h,h=(p|0)>(h|0)?p:h,p=l,n[p>>2]=h,n[p+4>>2]=((h|0)<0)<<31>>31,p=0,I=g,p|0))}function AT(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0;return h=I,I=I+16|0,f=h,s=ja(s,o,c,u,f)|0,s|0?(f=s,I=h,f|0):(c=f,c=ce(n[c>>2]|0,n[c+4>>2]|0,1,0)|0,u=S()|0,f=l,n[f>>2]=c,n[f+4>>2]=u,f=0,I=h,f|0)}function iT(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0;return g=I,I=I+16|0,f=g,h=ja(s,o,c,u,f)|0,h|0?(l=h,I=g,l|0):(h=f,f=n[h>>2]|0,h=n[h+4>>2]|0,(f|0)==0&(h|0)==0?(n[l>>2]=s,n[l+4>>2]=o,l=0,I=g,l|0):(p=Vu(s,o,c,u,f,h,l,0,0,1,0)|0,p?(l=(Vu(c,u,s,o,f,h,l,f,h,-1,-1)|0)==0,l=l?0:p,I=g,l|0):(l=0,I=g,l|0)))}function Vu(s,o,c,u,l,f,h,p,g,T,b){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0,f=f|0,h=h|0,p=p|0,g=g|0,T=T|0,b=b|0;var C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0,le=0,$=0,me=0,ne=0;if(me=I,I=I+48|0,C=me+24|0,w=me+12|0,$=me,n[C>>2]=0,n[C+4>>2]=0,n[C+8>>2]=0,n[w>>2]=0,n[w+4>>2]=0,n[w+8>>2]=0,ii(s,o,s,o,C)|0&&Oe(27634,27315,696,27575),ii(s,o,c,u,w)|0&&Oe(27634,27315,701,27575),P=C+8|0,u=n[P>>2]|0,c=u-(n[C>>2]|0)|0,n[C>>2]=c,le=C+4|0,u=(n[le>>2]|0)-u|0,n[le>>2]=u,le=u+c|0,C=0-le|0,n[P>>2]=C,P=w+8|0,R=n[P>>2]|0,H=R-(n[w>>2]|0)|0,n[w>>2]=H,V=w+4|0,R=(n[V>>2]|0)-R|0,n[V>>2]=R,V=R+H|0,n[P>>2]=0-V,z=1/(+(l>>>0)+4294967296*+(f|0)),K=z*+(H-c|0),ee=z*+(R-u|0),z=z*+(le-V|0),n[$>>2]=c,V=$+4|0,n[V>>2]=u,le=$+8|0,n[le>>2]=C,(f|0)<0)return T=0,I=me,T|0;for(O=+(c|0),j=+(u|0),D=+(C|0),H=0,R=0;;){if(M=+(H>>>0)+4294967296*+(R|0),ne=K*M+O,B=ee*M+j,M=z*M+D,u=~~+ls(+ne),C=~~+ls(+B),c=~~+ls(+M),ne=+Ct(+(+(u|0)-ne)),B=+Ct(+(+(C|0)-B)),M=+Ct(+(+(c|0)-M)),ne>B&ne>M?(w=c+C|0,u=0-w|0):(w=0-u|0,B>M&&(C=w-c|0)),n[V>>2]=C,n[$>>2]=w,n[le>>2]=0,c=u+C|0,(u|0)>0?(n[V>>2]=c,n[le>>2]=u,n[$>>2]=0,w=0):(c=C,u=0),(c|0)<0?(C=w-c|0,n[$>>2]=C,u=u-c|0,n[le>>2]=u,n[V>>2]=0,w=C-u|0,c=0-u|0,(u|0)<0?(n[$>>2]=w,n[V>>2]=c,n[le>>2]=0,P=c,u=0):(P=0,w=C)):P=c,c=(P|0)<(w|0)?P:w,c=(u|0)<(c|0)?u:c,(c|0)>0&&(n[$>>2]=w-c,n[V>>2]=P-c,n[le>>2]=u-c),c=ut(H|0,R|0,T|0,b|0)|0,c=ce(c|0,S()|0,p|0,g|0)|0,S()|0,c=Hu(s,o,$,h+(c<<3)|0)|0,c|0){u=20;break}if(P=H,H=ce(H|0,R|0,1,0)|0,w=R,R=S()|0,!((w|0)<(f|0)|(w|0)==(f|0)&P>>>0<l>>>0)){c=0,u=20;break}}return(u|0)==20?(I=me,c|0):0}function An(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0;if((c|0)==0&(u|0)==0)return l=0,f=1,Se(l|0),f|0;f=s,l=o,s=1,o=0;do h=(c&1|0)==0&!0,s=ut((h?1:f)|0,(h?0:l)|0,s|0,o|0)|0,o=S()|0,c=rf(c|0,u|0,1)|0,u=S()|0,f=ut(f|0,l|0,f|0,l|0)|0,l=S()|0;while(!((c|0)==0&(u|0)==0));return Se(o|0),s|0}function Qa(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0;p=I,I=I+16|0,f=p,h=te(s|0,o|0,52)|0,S()|0,h=h&15;do if(h){if(l=$n(s,o,f)|0,!l){T=+L[f>>3],g=1/+De(+T),b=+L[26032+(h<<3)>>3],L[c>>3]=T+b,L[c+8>>3]=T-b,T=+L[f+8>>3],g=b*g,L[c+16>>3]=g+T,L[c+24>>3]=T-g;break}return h=l,I=p,h|0}else{if(l=te(s|0,o|0,45)|0,S()|0,l=l&127,l>>>0>121)return h=5,I=p,h|0;f=22128+(l<<5)|0,n[c>>2]=n[f>>2],n[c+4>>2]=n[f+4>>2],n[c+8>>2]=n[f+8>>2],n[c+12>>2]=n[f+12>>2],n[c+16>>2]=n[f+16>>2],n[c+20>>2]=n[f+20>>2],n[c+24>>2]=n[f+24>>2],n[c+28>>2]=n[f+28>>2];break}while(!1);return Ty(c,u?1.4:1.1),u=26160+(h<<3)|0,(n[u>>2]|0)==(s|0)&&(n[u+4>>2]|0)==(o|0)&&(L[c>>3]=1.5707963267948966),h=26288+(h<<3)|0,(n[h>>2]|0)==(s|0)&&(n[h+4>>2]|0)==(o|0)&&(L[c+8>>3]=-1.5707963267948966),+L[c>>3]!=1.5707963267948966&&+L[c+8>>3]!=-1.5707963267948966?(h=0,I=p,h|0):(L[c+16>>3]=3.141592653589793,L[c+24>>3]=-3.141592653589793,h=0,I=p,h|0)}function sT(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0;T=I,I=I+48|0,h=T+32|0,f=T+40|0,p=T,Pa(h,0,0,0),g=n[h>>2]|0,h=n[h+4>>2]|0;do if(c>>>0<=15){if(l=oi(u)|0,l|0){u=p,n[u>>2]=0,n[u+4>>2]=0,n[p+8>>2]=l,n[p+12>>2]=-1,u=p+16|0,g=p+29|0,n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,W[u+12>>0]=0,W[g>>0]=W[f>>0]|0,W[g+1>>0]=W[f+1>>0]|0,W[g+2>>0]=W[f+2>>0]|0;break}if(l=zt((n[o+8>>2]|0)+1|0,32)|0,l){za(o,l),b=p,n[b>>2]=g,n[b+4>>2]=h,n[p+8>>2]=0,n[p+12>>2]=c,n[p+16>>2]=u,n[p+20>>2]=o,n[p+24>>2]=l,W[p+28>>0]=0,g=p+29|0,W[g>>0]=W[f>>0]|0,W[g+1>>0]=W[f+1>>0]|0,W[g+2>>0]=W[f+2>>0]|0;break}else{u=p,n[u>>2]=0,n[u+4>>2]=0,n[p+8>>2]=13,n[p+12>>2]=-1,u=p+16|0,g=p+29|0,n[u>>2]=0,n[u+4>>2]=0,n[u+8>>2]=0,W[u+12>>0]=0,W[g>>0]=W[f>>0]|0,W[g+1>>0]=W[f+1>>0]|0,W[g+2>>0]=W[f+2>>0]|0;break}}else g=p,n[g>>2]=0,n[g+4>>2]=0,n[p+8>>2]=4,n[p+12>>2]=-1,g=p+16|0,b=p+29|0,n[g>>2]=0,n[g+4>>2]=0,n[g+8>>2]=0,W[g+12>>0]=0,W[b>>0]=W[f>>0]|0,W[b+1>>0]=W[f+1>>0]|0,W[b+2>>0]=W[f+2>>0]|0;while(!1);ns(p),n[s>>2]=n[p>>2],n[s+4>>2]=n[p+4>>2],n[s+8>>2]=n[p+8>>2],n[s+12>>2]=n[p+12>>2],n[s+16>>2]=n[p+16>>2],n[s+20>>2]=n[p+20>>2],n[s+24>>2]=n[p+24>>2],n[s+28>>2]=n[p+28>>2],I=T}function ns(s){s=s|0;var o=0,c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0;if(O=I,I=I+336|0,B=O+168|0,M=O,u=s,c=n[u>>2]|0,u=n[u+4>>2]|0,(c|0)==0&(u|0)==0){I=O;return}if(o=s+28|0,W[o>>0]|0?(c=ju(c,u)|0,u=S()|0):W[o>>0]=1,j=s+20|0,!(n[n[j>>2]>>2]|0)){o=s+24|0,c=n[o>>2]|0,c|0&&fe(c),R=s,n[R>>2]=0,n[R+4>>2]=0,n[s+8>>2]=0,n[j>>2]=0,n[s+12>>2]=-1,n[s+16>>2]=0,n[o>>2]=0,I=O;return}R=s+16|0,o=n[R>>2]|0,l=o&15;e:do if((c|0)==0&(u|0)==0)H=s+24|0;else{P=s+12|0,C=(l|0)==3,b=o&255,g=(l|1)==3,w=s+24|0,T=(l+-1|0)>>>0<3,h=(l|2)==3,p=M+8|0;t:for(;;){if(f=te(c|0,u|0,52)|0,S()|0,f=f&15,(f|0)==(n[P>>2]|0)){switch(b&15){case 0:case 2:case 3:if(l=$n(c,u,B)|0,l|0){D=15;break t}if(Ja(n[j>>2]|0,n[w>>2]|0,B)|0){D=19;break t}break;default:}if(g&&(l=n[(n[j>>2]|0)+4>>2]|0,n[B>>2]=n[l>>2],n[B+4>>2]=n[l+4>>2],n[B+8>>2]=n[l+8>>2],n[B+12>>2]=n[l+12>>2],vu(26896,B)|0)){if(Ga(n[(n[j>>2]|0)+4>>2]|0,f,M)|0){D=25;break}if(l=M,(n[l>>2]|0)==(c|0)&&(n[l+4>>2]|0)==(u|0)){D=29;break}}if(T){if(l=Bn(c,u,B)|0,l|0){D=32;break}if(Qa(c,u,M,0)|0){D=36;break}if(h&&zu(n[j>>2]|0,n[w>>2]|0,B,M)|0){D=42;break}if(g&&Ju(n[j>>2]|0,n[w>>2]|0,B,M)|0){D=42;break}}if(C){if(o=Qa(c,u,B,1)|0,l=n[w>>2]|0,o|0){D=45;break}if(Ia(l,B)|0){if(Iu(M,B),Mu(B,n[w>>2]|0)|0){D=53;break}if(Ja(n[j>>2]|0,n[w>>2]|0,p)|0){D=53;break}if(Ju(n[j>>2]|0,n[w>>2]|0,M,B)|0){D=53;break}}}}do if((f|0)<(n[P>>2]|0)){if(o=Qa(c,u,B,1)|0,l=n[w>>2]|0,o|0){D=58;break t}if(!(Ia(l,B)|0)){D=73;break}if(Mu(n[w>>2]|0,B)|0&&(Iu(M,B),zu(n[j>>2]|0,n[w>>2]|0,M,B)|0)){D=65;break t}if(c=Ou(c,u,f+1|0,M)|0,c|0){D=67;break t}u=M,c=n[u>>2]|0,u=n[u+4>>2]|0}else D=73;while(!1);if((D|0)==73&&(D=0,c=ju(c,u)|0,u=S()|0),(c|0)==0&(u|0)==0){H=w;break e}}switch(D|0){case 15:o=n[w>>2]|0,o|0&&fe(o),D=s,n[D>>2]=0,n[D+4>>2]=0,n[j>>2]=0,n[P>>2]=-1,n[R>>2]=0,n[w>>2]=0,n[s+8>>2]=l,D=20;break;case 19:n[s>>2]=c,n[s+4>>2]=u,D=20;break;case 25:Oe(27634,27600,470,27611);break;case 29:n[s>>2]=c,n[s+4>>2]=u,I=O;return;case 32:o=n[w>>2]|0,o|0&&fe(o),H=s,n[H>>2]=0,n[H+4>>2]=0,n[j>>2]=0,n[P>>2]=-1,n[R>>2]=0,n[w>>2]=0,n[s+8>>2]=l,I=O;return;case 36:Oe(27634,27600,493,27611);break;case 42:n[s>>2]=c,n[s+4>>2]=u,I=O;return;case 45:l|0&&fe(l),D=s,n[D>>2]=0,n[D+4>>2]=0,n[j>>2]=0,n[P>>2]=-1,n[R>>2]=0,n[w>>2]=0,n[s+8>>2]=o,D=55;break;case 53:n[s>>2]=c,n[s+4>>2]=u,D=55;break;case 58:l|0&&fe(l),D=s,n[D>>2]=0,n[D+4>>2]=0,n[j>>2]=0,n[P>>2]=-1,n[R>>2]=0,n[w>>2]=0,n[s+8>>2]=o,D=71;break;case 65:n[s>>2]=c,n[s+4>>2]=u,D=71;break;case 67:o=n[w>>2]|0,o|0&&fe(o),H=s,n[H>>2]=0,n[H+4>>2]=0,n[j>>2]=0,n[P>>2]=-1,n[R>>2]=0,n[w>>2]=0,n[s+8>>2]=c,I=O;return}if((D|0)==20){I=O;return}else if((D|0)==55){I=O;return}else if((D|0)==71){I=O;return}}while(!1);o=n[H>>2]|0,o|0&&fe(o),D=s,n[D>>2]=0,n[D+4>>2]=0,n[s+8>>2]=0,n[j>>2]=0,n[s+12>>2]=-1,n[R>>2]=0,n[H>>2]=0,I=O}function ju(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0;C=I,I=I+16|0,b=C,u=te(s|0,o|0,52)|0,S()|0,u=u&15,c=te(s|0,o|0,45)|0,S()|0;do if(u){for(;c=oe(u+4095|0,0,52)|0,l=S()|0|o&-15728641,f=(15-u|0)*3|0,h=oe(7,0,f|0)|0,p=S()|0,c=c|s|h,l=l|p,g=te(s|0,o|0,f|0)|0,S()|0,g=g&7,u=u+-1|0,!(g>>>0<6);)if(u)o=l,s=c;else{T=4;break}if((T|0)==4){c=te(c|0,l|0,45)|0,S()|0;break}return b=(g|0)==0&(et(c,l)|0)!=0,b=oe((b?2:1)+g|0,0,f|0)|0,T=S()|0|o&~p,b=b|s&~h,Se(T|0),I=C,b|0}while(!1);return c=c&127,c>>>0>120?(T=0,b=0,Se(T|0),I=C,b|0):(Pa(b,0,c+1|0,0),T=n[b+4>>2]|0,b=n[b>>2]|0,Se(T|0),I=C,b|0)}function oT(s,o,c,u,l,f){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0,f=f|0;var h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0;D=I,I=I+160|0,C=D+80|0,p=D+64|0,w=D+112|0,P=D,sT(C,s,o,c),T=C,Ha(p,n[T>>2]|0,n[T+4>>2]|0,o),T=p,g=n[T>>2]|0,T=n[T+4>>2]|0,h=n[C+8>>2]|0,B=w+4|0,n[B>>2]=n[C>>2],n[B+4>>2]=n[C+4>>2],n[B+8>>2]=n[C+8>>2],n[B+12>>2]=n[C+12>>2],n[B+16>>2]=n[C+16>>2],n[B+20>>2]=n[C+20>>2],n[B+24>>2]=n[C+24>>2],n[B+28>>2]=n[C+28>>2],B=P,n[B>>2]=g,n[B+4>>2]=T,B=P+8|0,n[B>>2]=h,s=P+12|0,o=w,c=s+36|0;do n[s>>2]=n[o>>2],s=s+4|0,o=o+4|0;while((s|0)<(c|0));if(w=P+48|0,n[w>>2]=n[p>>2],n[w+4>>2]=n[p+4>>2],n[w+8>>2]=n[p+8>>2],n[w+12>>2]=n[p+12>>2],(g|0)==0&(T|0)==0)return P=h,I=D,P|0;c=P+16|0,b=P+24|0,C=P+28|0,h=0,p=0,o=g,s=T;do{if(!((h|0)<(l|0)|(h|0)==(l|0)&p>>>0<u>>>0)){M=4;break}if(T=p,p=ce(p|0,h|0,1,0)|0,h=S()|0,T=f+(T<<3)|0,n[T>>2]=o,n[T+4>>2]=s,Va(w),s=w,o=n[s>>2]|0,s=n[s+4>>2]|0,(o|0)==0&(s|0)==0){if(ns(c),o=c,s=n[o>>2]|0,o=n[o+4>>2]|0,(s|0)==0&(o|0)==0){M=10;break}ku(s,o,n[C>>2]|0,w),s=w,o=n[s>>2]|0,s=n[s+4>>2]|0}T=P,n[T>>2]=o,n[T+4>>2]=s}while(!((o|0)==0&(s|0)==0));return(M|0)==4?(s=P+40|0,o=n[s>>2]|0,o|0&&fe(o),M=P+16|0,n[M>>2]=0,n[M+4>>2]=0,n[b>>2]=0,n[P+36>>2]=0,n[C>>2]=-1,n[P+32>>2]=0,n[s>>2]=0,ku(0,0,0,w),n[P>>2]=0,n[P+4>>2]=0,n[B>>2]=0,P=14,I=D,P|0):((M|0)==10&&(n[P>>2]=0,n[P+4>>2]=0,n[B>>2]=n[b>>2]),P=n[B>>2]|0,I=D,P|0)}function aT(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0;if(C=I,I=I+48|0,g=C+32|0,p=C+40|0,T=C,!(n[s>>2]|0))return b=u,n[b>>2]=0,n[b+4>>2]=0,b=0,I=C,b|0;Pa(g,0,0,0),h=g,l=n[h>>2]|0,h=n[h+4>>2]|0;do if(o>>>0>15)b=T,n[b>>2]=0,n[b+4>>2]=0,n[T+8>>2]=4,n[T+12>>2]=-1,b=T+16|0,c=T+29|0,n[b>>2]=0,n[b+4>>2]=0,n[b+8>>2]=0,W[b+12>>0]=0,W[c>>0]=W[p>>0]|0,W[c+1>>0]=W[p+1>>0]|0,W[c+2>>0]=W[p+2>>0]|0,c=4,b=9;else{if(c=oi(c)|0,c|0){g=T,n[g>>2]=0,n[g+4>>2]=0,n[T+8>>2]=c,n[T+12>>2]=-1,g=T+16|0,b=T+29|0,n[g>>2]=0,n[g+4>>2]=0,n[g+8>>2]=0,W[g+12>>0]=0,W[b>>0]=W[p>>0]|0,W[b+1>>0]=W[p+1>>0]|0,W[b+2>>0]=W[p+2>>0]|0,b=9;break}if(c=zt((n[s+8>>2]|0)+1|0,32)|0,!c){b=T,n[b>>2]=0,n[b+4>>2]=0,n[T+8>>2]=13,n[T+12>>2]=-1,b=T+16|0,c=T+29|0,n[b>>2]=0,n[b+4>>2]=0,n[b+8>>2]=0,W[b+12>>0]=0,W[c>>0]=W[p>>0]|0,W[c+1>>0]=W[p+1>>0]|0,W[c+2>>0]=W[p+2>>0]|0,c=13,b=9;break}za(s,c),B=T,n[B>>2]=l,n[B+4>>2]=h,h=T+8|0,n[h>>2]=0,n[T+12>>2]=o,n[T+20>>2]=s,n[T+24>>2]=c,W[T+28>>0]=0,l=T+29|0,W[l>>0]=W[p>>0]|0,W[l+1>>0]=W[p+1>>0]|0,W[l+2>>0]=W[p+2>>0]|0,n[T+16>>2]=3,w=+my(c),w=w*+dy(c),f=+Ct(+ +L[c>>3]),f=w/+De(+ +cs(+f,+ +Ct(+ +L[c+8>>3])))*6371.007180918475*6371.007180918475,l=T+12|0,c=n[l>>2]|0;e:do if((c|0)>0)do{if(Uu(c+-1|0,g)|0,!(f/+L[g>>3]>10))break e;B=n[l>>2]|0,c=B+-1|0,n[l>>2]=c}while((B|0)>1);while(!1);if(ns(T),l=u,n[l>>2]=0,n[l+4>>2]=0,l=T,c=n[l>>2]|0,l=n[l+4>>2]|0,!((c|0)==0&(l|0)==0))do ri(c,l,o,g)|0,p=g,s=u,p=ce(n[s>>2]|0,n[s+4>>2]|0,n[p>>2]|0,n[p+4>>2]|0)|0,s=S()|0,B=u,n[B>>2]=p,n[B+4>>2]=s,ns(T),B=T,c=n[B>>2]|0,l=n[B+4>>2]|0;while(!((c|0)==0&(l|0)==0));c=n[h>>2]|0}while(!1);return B=c,I=C,B|0}function si(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0;if(!(vu(o,c)|0)||(o=py(o)|0,u=+L[c>>3],l=+L[c+8>>3],l=o&l<0?l+6.283185307179586:l,w=n[s>>2]|0,(w|0)<=0))return w=0,w|0;if(C=n[s+4>>2]|0,o){o=0,b=l,c=-1,s=0;e:for(;;){for(T=s;h=+L[C+(T<<4)>>3],l=+L[C+(T<<4)+8>>3],s=(c+2|0)%(w|0)|0,f=+L[C+(s<<4)>>3],p=+L[C+(s<<4)+8>>3],h>f?(g=h,h=p):(g=f,f=h,h=l,l=p),u=u==f|u==g?u+2220446049250313e-31:u,!!(u<f|u>g);)if(c=T+1|0,(c|0)>=(w|0)){c=22;break e}else s=T,T=c,c=s;if(p=h<0?h+6.283185307179586:h,h=l<0?l+6.283185307179586:l,b=p==b|h==b?b+-2220446049250313e-31:b,g=p+(h-p)*((u-f)/(g-f)),(g<0?g+6.283185307179586:g)>b&&(o=o^1),s=T+1|0,(s|0)>=(w|0)){c=22;break}else c=T}if((c|0)==22)return o|0}else{o=0,b=l,c=-1,s=0;e:for(;;){for(T=s;h=+L[C+(T<<4)>>3],l=+L[C+(T<<4)+8>>3],s=(c+2|0)%(w|0)|0,f=+L[C+(s<<4)>>3],p=+L[C+(s<<4)+8>>3],h>f?(g=h,h=p):(g=f,f=h,h=l,l=p),u=u==f|u==g?u+2220446049250313e-31:u,!!(u<f|u>g);)if(c=T+1|0,(c|0)>=(w|0)){c=22;break e}else s=T,T=c,c=s;if(b=h==b|l==b?b+-2220446049250313e-31:b,h+(l-h)*((u-f)/(g-f))>b&&(o=o^1),s=T+1|0,(s|0)>=(w|0)){c=22;break}else c=T}if((c|0)==22)return o|0}return 0}function Qu(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0;if(M=n[s>>2]|0,!M){n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[o+12>>2]=0,n[o+16>>2]=0,n[o+20>>2]=0,n[o+24>>2]=0,n[o+28>>2]=0;return}if(P=o+8|0,L[P>>3]=17976931348623157e292,D=o+24|0,L[D>>3]=17976931348623157e292,L[o>>3]=-17976931348623157e292,H=o+16|0,L[H>>3]=-17976931348623157e292,!((M|0)<=0)){for(w=n[s+4>>2]|0,T=17976931348623157e292,b=-17976931348623157e292,C=0,s=-1,f=17976931348623157e292,h=17976931348623157e292,g=-17976931348623157e292,u=-17976931348623157e292,B=0;c=+L[w+(B<<4)>>3],p=+L[w+(B<<4)+8>>3],s=s+2|0,l=+L[w+(((s|0)==(M|0)?0:s)<<4)+8>>3],c<f&&(L[P>>3]=c,f=c),p<h&&(L[D>>3]=p,h=p),c>g?L[o>>3]=c:c=g,p>u&&(L[H>>3]=p,u=p),T=p>0&p<T?p:T,b=p<0&p>b?p:b,C=C|+Ct(+(p-l))>3.141592653589793,s=B+1|0,(s|0)!=(M|0);)R=B,g=c,B=s,s=R;C&&(L[H>>3]=b,L[D>>3]=T)}}function oi(s){return s=s|0,(s>>>0<4?0:15)|0}function za(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0;if(M=n[s>>2]|0,M){if(P=o+8|0,L[P>>3]=17976931348623157e292,D=o+24|0,L[D>>3]=17976931348623157e292,L[o>>3]=-17976931348623157e292,H=o+16|0,L[H>>3]=-17976931348623157e292,(M|0)>0){for(l=n[s+4>>2]|0,w=17976931348623157e292,B=-17976931348623157e292,u=0,c=-1,g=17976931348623157e292,T=17976931348623157e292,C=-17976931348623157e292,h=-17976931348623157e292,R=0;f=+L[l+(R<<4)>>3],b=+L[l+(R<<4)+8>>3],ee=c+2|0,p=+L[l+(((ee|0)==(M|0)?0:ee)<<4)+8>>3],f<g&&(L[P>>3]=f,g=f),b<T&&(L[D>>3]=b,T=b),f>C?L[o>>3]=f:f=C,b>h&&(L[H>>3]=b,h=b),w=b>0&b<w?b:w,B=b<0&b>B?b:B,u=u|+Ct(+(b-p))>3.141592653589793,c=R+1|0,(c|0)!=(M|0);)ee=R,C=f,R=c,c=ee;u&&(L[H>>3]=B,L[D>>3]=w)}}else n[o>>2]=0,n[o+4>>2]=0,n[o+8>>2]=0,n[o+12>>2]=0,n[o+16>>2]=0,n[o+20>>2]=0,n[o+24>>2]=0,n[o+28>>2]=0;if(ee=s+8|0,c=n[ee>>2]|0,!((c|0)<=0)){K=s+12|0,O=0;do if(l=n[K>>2]|0,u=O,O=O+1|0,D=o+(O<<5)|0,H=n[l+(u<<3)>>2]|0,H){if(R=o+(O<<5)+8|0,L[R>>3]=17976931348623157e292,s=o+(O<<5)+24|0,L[s>>3]=17976931348623157e292,L[D>>3]=-17976931348623157e292,j=o+(O<<5)+16|0,L[j>>3]=-17976931348623157e292,(H|0)>0){for(M=n[l+(u<<3)+4>>2]|0,w=17976931348623157e292,B=-17976931348623157e292,l=0,u=-1,P=0,g=17976931348623157e292,T=17976931348623157e292,b=-17976931348623157e292,h=-17976931348623157e292;f=+L[M+(P<<4)>>3],C=+L[M+(P<<4)+8>>3],u=u+2|0,p=+L[M+(((u|0)==(H|0)?0:u)<<4)+8>>3],f<g&&(L[R>>3]=f,g=f),C<T&&(L[s>>3]=C,T=C),f>b?L[D>>3]=f:f=b,C>h&&(L[j>>3]=C,h=C),w=C>0&C<w?C:w,B=C<0&C>B?C:B,l=l|+Ct(+(C-p))>3.141592653589793,u=P+1|0,(u|0)!=(H|0);)z=P,P=u,b=f,u=z;l&&(L[j>>3]=B,L[s>>3]=w)}}else n[D>>2]=0,n[D+4>>2]=0,n[D+8>>2]=0,n[D+12>>2]=0,n[D+16>>2]=0,n[D+20>>2]=0,n[D+24>>2]=0,n[D+28>>2]=0,c=n[ee>>2]|0;while((O|0)<(c|0))}}function Ja(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0;if(!(si(s,o,c)|0))return l=0,l|0;if(l=s+8|0,(n[l>>2]|0)<=0)return l=1,l|0;for(u=s+12|0,s=0;;){if(f=s,s=s+1|0,si((n[u>>2]|0)+(f<<3)|0,o+(s<<5)|0,c)|0){s=0,u=6;break}if((s|0)>=(n[l>>2]|0)){s=1,u=6;break}}return(u|0)==6?s|0:0}function zu(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(T=I,I=I+16|0,p=T,h=c+8|0,!(si(s,o,h)|0))return g=0,I=T,g|0;g=s+8|0;e:do if((n[g>>2]|0)>0){for(f=s+12|0,l=0;;){if(b=l,l=l+1|0,si((n[f>>2]|0)+(b<<3)|0,o+(l<<5)|0,h)|0){l=0;break}if((l|0)>=(n[g>>2]|0))break e}return I=T,l|0}while(!1);if(As(s,o,c,u)|0)return b=0,I=T,b|0;n[p>>2]=n[c>>2],n[p+4>>2]=h,l=n[g>>2]|0;e:do if((l|0)>0)for(s=s+12|0,h=0,f=l;;){if(l=n[s>>2]|0,(n[l+(h<<3)>>2]|0)>0){if(si(p,u,n[l+(h<<3)+4>>2]|0)|0){l=0;break e}if(l=h+1|0,As((n[s>>2]|0)+(h<<3)|0,o+(l<<5)|0,c,u)|0){l=0;break e}f=n[g>>2]|0}else l=h+1|0;if((l|0)<(f|0))h=l;else{l=1;break}}else l=1;while(!1);return b=l,I=T,b|0}function As(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0,ee=0,z=0,V=0;if(ee=I,I=I+176|0,R=ee+172|0,l=ee+168|0,j=ee,!(Ia(o,u)|0))return s=0,I=ee,s|0;if(gy(o,u,R,l),xr(j|0,c|0,168)|0,(n[c>>2]|0)>0){o=0;do z=j+8+(o<<4)+8|0,H=+sr(+L[z>>3],n[l>>2]|0),L[z>>3]=H,o=o+1|0;while((o|0)<(n[c>>2]|0))}P=+L[u>>3],D=+L[u+8>>3],H=+sr(+L[u+16>>3],n[l>>2]|0),B=+sr(+L[u+24>>3],n[l>>2]|0);e:do if((n[s>>2]|0)>0){if(u=s+4|0,l=n[j>>2]|0,(l|0)<=0){for(o=0;;)if(o=o+1|0,(o|0)>=(n[s>>2]|0)){o=0;break e}}for(c=0;;){if(o=n[u>>2]|0,w=+L[o+(c<<4)>>3],M=+sr(+L[o+(c<<4)+8>>3],n[R>>2]|0),o=n[u>>2]|0,c=c+1|0,z=(c|0)%(n[s>>2]|0)|0,f=+L[o+(z<<4)>>3],h=+sr(+L[o+(z<<4)+8>>3],n[R>>2]|0),!(w>=P)|!(f>=P)&&!(w<=D)|!(f<=D)&&!(M<=B)|!(h<=B)&&!(M>=H)|!(h>=H)){C=f-w,T=h-M,o=0;do if(V=o,o=o+1|0,z=(o|0)==(l|0)?0:o,f=+L[j+8+(V<<4)+8>>3],h=+L[j+8+(z<<4)+8>>3]-f,p=+L[j+8+(V<<4)>>3],g=+L[j+8+(z<<4)>>3]-p,b=C*h-T*g,b!=0&&(O=M-f,K=w-p,g=(O*g-h*K)/b,!(g<0|g>1))&&(b=(C*O-T*K)/b,b>=0&b<=1)){o=1;break e}while((o|0)<(l|0))}if((c|0)>=(n[s>>2]|0)){o=0;break}}}else o=0;while(!1);return V=o,I=ee,V|0}function Ju(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0;if(As(s,o,c,u)|0)return f=1,f|0;if(f=s+8|0,(n[f>>2]|0)<=0)return f=0,f|0;for(l=s+12|0,s=0;;){if(h=s,s=s+1|0,As((n[l>>2]|0)+(h<<3)|0,o+(s<<5)|0,c,u)|0){s=1,l=6;break}if((s|0)>=(n[f>>2]|0)){s=0,l=6;break}}return(l|0)==6?s|0:0}function cT(){return 8}function lT(){return 16}function uT(){return 168}function fT(){return 8}function hT(){return 16}function dT(){return 12}function pT(){return 8}function mT(s){return s=s|0,+(+((n[s>>2]|0)>>>0)+4294967296*+(n[s+4>>2]|0))}function gT(s){s=s|0;var o=0,c=0;return c=+L[s>>3],o=+L[s+8>>3],+ +pt(+(c*c+o*o))}function qu(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0;T=+L[s>>3],g=+L[o>>3]-T,p=+L[s+8>>3],h=+L[o+8>>3]-p,C=+L[c>>3],f=+L[u>>3]-C,w=+L[c+8>>3],b=+L[u+8>>3]-w,f=(f*(p-w)-(T-C)*b)/(g*b-h*f),L[l>>3]=T+g*f,L[l+8>>3]=p+h*f}function Ku(s,o){return s=s|0,o=o|0,+Ct(+(+L[s>>3]-+L[o>>3]))<1.1920928955078125e-7?(o=+Ct(+(+L[s+8>>3]-+L[o+8>>3]))<1.1920928955078125e-7,o|0):(o=0,o|0)}function yT(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0;if(f=I,I=I+16|0,l=f,u=et(s,o)|0,(c+-1|0)>>>0>5||(u=(u|0)!=0,(c|0)==1&u))return l=-1,I=f,l|0;do if(ai(s,o,l)|0)u=-1;else if(u){u=((n[26416+(c<<2)>>2]|0)+5-(n[l>>2]|0)|0)%5|0;break}else{u=((n[26448+(c<<2)>>2]|0)+6-(n[l>>2]|0)|0)%6|0;break}while(!1);return l=u,I=f,l|0}function ai(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0;if(b=I,I=I+32|0,p=b+16|0,g=b,u=Zn(s,o,p)|0,u|0)return c=u,I=b,c|0;f=Du(s,o)|0,T=$t(s,o)|0,ly(f,g),u=uy(f,n[p>>2]|0)|0;do if(ct(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:Oe(27634,27636,75,27645)}while(!1);if(h=n[26480+(l*24|0)+8>>2]|0,o=n[26480+(l*24|0)+16>>2]|0,s=n[p>>2]|0,(s|0)!=(n[g>>2]|0)&&(g=Ba(f)|0,s=n[p>>2]|0,g|(s|0)==(o|0)&&(u=(u+1|0)%6|0)),(T|0)==3&(s|0)==(o|0)){u=(u+5|0)%6|0;break}(T|0)==5&(s|0)==(h|0)&&(u=(u+1|0)%6|0)}while(!1);return n[c>>2]=u,c=0,I=b,c|0}function dr(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0;if(j=I,I=I+32|0,R=j+24|0,D=j+20|0,M=j+8|0,B=j+16|0,w=j,g=(et(s,o)|0)==0,g=g?6:5,b=te(s|0,o|0,52)|0,S()|0,b=b&15,g>>>0<=c>>>0)return u=2,I=j,u|0;C=(b|0)==0,!C&&(P=oe(7,0,(b^15)*3|0)|0,(P&s|0)==0&((S()|0)&o|0)==0)?l=c:f=4;e:do if((f|0)==4){if(l=(et(s,o)|0)!=0,((l?4:5)|0)<(c|0)||ai(s,o,R)|0||(f=(n[R>>2]|0)+c|0,l?l=26768+(((f|0)%5|0)<<2)|0:l=26800+(((f|0)%6|0)<<2)|0,P=n[l>>2]|0,(P|0)==7))return u=1,I=j,u|0;n[D>>2]=0,l=wt(s,o,P,D,M)|0;do if(!l){if(p=M,T=n[p>>2]|0,p=n[p+4>>2]|0,h=p>>>0<o>>>0|(p|0)==(o|0)&T>>>0<s>>>0,f=h?T:s,h=h?p:o,!C&&(C=oe(7,0,(b^15)*3|0)|0,(T&C|0)==0&(p&(S()|0)|0)==0))l=c;else{if(p=(c+-1+g|0)%(g|0)|0,l=et(s,o)|0,(p|0)<0&&Oe(27634,27636,248,27661),g=(l|0)!=0,((g?4:5)|0)<(p|0)&&Oe(27634,27636,248,27661),ai(s,o,R)|0&&Oe(27634,27636,248,27661),l=(n[R>>2]|0)+p|0,g?l=26768+(((l|0)%5|0)<<2)|0:l=26800+(((l|0)%6|0)<<2)|0,p=n[l>>2]|0,(p|0)==7&&Oe(27634,27636,248,27661),n[B>>2]=0,l=wt(s,o,p,B,w)|0,l|0)break;T=w,g=n[T>>2]|0,T=n[T+4>>2]|0;do if(T>>>0<h>>>0|(T|0)==(h|0)&g>>>0<f>>>0){if(et(g,T)|0?f=$i(g,T,s,o)|0:f=n[26864+((((n[B>>2]|0)+(n[26832+(p<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,l=et(g,T)|0,(f+-1|0)>>>0>5){l=-1,f=g,h=T;break}if(l=(l|0)!=0,(f|0)==1&l){l=-1,f=g,h=T;break}do if(ai(g,T,R)|0)l=-1;else if(l){l=((n[26416+(f<<2)>>2]|0)+5-(n[R>>2]|0)|0)%5|0;break}else{l=((n[26448+(f<<2)>>2]|0)+6-(n[R>>2]|0)|0)%6|0;break}while(!1);f=g,h=T}else l=c;while(!1);p=M,T=n[p>>2]|0,p=n[p+4>>2]|0}if((f|0)==(T|0)&(h|0)==(p|0)){if(g=(et(T,p)|0)!=0,g?s=$i(T,p,s,o)|0:s=n[26864+((((n[D>>2]|0)+(n[26832+(P<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,l=et(T,p)|0,(s+-1|0)>>>0<=5&&(H=(l|0)!=0,!((s|0)==1&H)))do if(ai(T,p,R)|0)l=-1;else if(H){l=((n[26416+(s<<2)>>2]|0)+5-(n[R>>2]|0)|0)%5|0;break}else{l=((n[26448+(s<<2)>>2]|0)+6-(n[R>>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}o=h,s=f;break e}while(!1);return u=l,I=j,u|0}while(!1);return H=oe(l|0,0,56)|0,R=S()|0|o&-2130706433|536870912,n[u>>2]=H|s,n[u+4>>2]=R,u=0,I=j,u|0}function TT(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0;return f=(et(s,o)|0)==0,u=dr(s,o,0,c)|0,l=(u|0)==0,f?!l||(u=dr(s,o,1,c+8|0)|0,u|0)||(u=dr(s,o,2,c+16|0)|0,u|0)||(u=dr(s,o,3,c+24|0)|0,u|0)||(u=dr(s,o,4,c+32|0)|0,u)?(f=u,f|0):dr(s,o,5,c+40|0)|0:!l||(u=dr(s,o,1,c+8|0)|0,u|0)||(u=dr(s,o,2,c+16|0)|0,u|0)||(u=dr(s,o,3,c+24|0)|0,u|0)||(u=dr(s,o,4,c+32|0)|0,u|0)?(f=u,f|0):(f=c+40|0,n[f>>2]=0,n[f+4>>2]=0,f=0,f|0)}function _T(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0,g=0;return g=I,I=I+192|0,l=g,f=g+168|0,h=te(s|0,o|0,56)|0,S()|0,h=h&7,p=o&-2130706433|134217728,u=Zn(s,p,f)|0,u|0?(p=u,I=g,p|0):(o=te(s|0,o|0,52)|0,S()|0,o=o&15,et(s,p)|0?Fa(f,o,h,1,l):La(f,o,h,1,l),p=l+8|0,n[c>>2]=n[p>>2],n[c+4>>2]=n[p+4>>2],n[c+8>>2]=n[p+8>>2],n[c+12>>2]=n[p+12>>2],p=0,I=g,p|0)}function Xu(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0;return l=I,I=I+16|0,c=l,!(!0&(o&2013265920|0)==536870912)||(u=o&-2130706433|134217728,!(ts(s,u)|0))?(u=0,I=l,u|0):(f=te(s|0,o|0,56)|0,S()|0,f=(dr(s,u,f&7,c)|0)==0,u=c,u=f&((n[u>>2]|0)==(s|0)?(n[u+4>>2]|0)==(o|0):0)&1,I=l,u|0)}function Yu(){return 27680}function is(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0;C=I,I=I+208|0,g=C,T=C+192|0,h=Zt(c,o)|0,p=T,n[p>>2]=1,n[p+4>>2]=0;e:do if(h|0){for(p=0-c|0,n[g+4>>2]=c,n[g>>2]=c,l=2,o=c,f=c;o=o+c+f|0,n[g+(l<<2)>>2]=o,o>>>0<h>>>0;)w=f,l=l+1|0,f=o,o=w;if(f=s+h+p|0,f>>>0>s>>>0){h=f,l=1,o=1;do{do if((o&3|0)!=3)if(o=l+-1|0,(n[g+(o<<2)>>2]|0)>>>0<(h-s|0)>>>0?qa(s,c,u,l,g):os(s,c,u,T,l,0,g),(l|0)==1){as(T,1),l=0;break}else{as(T,o),l=1;break}else qa(s,c,u,l,g),ss(T,2),l=l+2|0;while(!1);o=n[T>>2]|1,n[T>>2]=o,s=s+c|0}while(s>>>0<f>>>0)}else l=1,o=1;for(os(s,c,u,T,l,0,g),f=T+4|0;;){if((l|0)==1&(o|0)==1)if(n[f>>2]|0)b=19;else break e;else(l|0)<2?b=19:(as(T,2),w=l+-2|0,n[T>>2]=n[T>>2]^7,ss(T,1),os(s+(0-(n[g+(w<<2)>>2]|0))+p|0,c,u,T,l+-1|0,1,g),as(T,1),o=n[T>>2]|1,n[T>>2]=o,s=s+p|0,os(s,c,u,T,w,1,g),l=w);(b|0)==19&&(b=0,o=Wu(T)|0,ss(T,o),s=s+p|0,l=o+l|0,o=n[T>>2]|0)}}while(!1);I=C}function qa(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0;C=I,I=I+240|0,b=C,n[b>>2]=s;e:do if((u|0)>1)for(T=0-o|0,p=s,f=u,u=1,h=s;;){if(p=p+T|0,g=f+-2|0,s=p+(0-(n[l+(g<<2)>>2]|0))|0,(ln[c&3](h,s)|0)>-1&&(ln[c&3](h,p)|0)>-1||(h=b+(u<<2)|0,(ln[c&3](s,p)|0)>-1?(n[h>>2]=s,f=f+-1|0):(n[h>>2]=p,s=p,f=g),u=u+1|0,(f|0)<=1))break e;p=s,h=n[b>>2]|0}else u=1;while(!1);$u(o,b,u),I=C}function ss(s,o){s=s|0,o=o|0;var c=0,u=0,l=0;l=s+4|0,o>>>0>31?(u=n[l>>2]|0,n[s>>2]=u,n[l>>2]=0,o=o+-32|0,c=0):(c=n[l>>2]|0,u=n[s>>2]|0),n[s>>2]=c<<32-o|u>>>o,n[l>>2]=c>>>o}function os(s,o,c,u,l,f,h){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0,f=f|0,h=h|0;var p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;B=I,I=I+240|0,C=B+232|0,w=B,M=n[u>>2]|0,n[C>>2]=M,g=n[u+4>>2]|0,T=C+4|0,n[T>>2]=g,n[w>>2]=s;e:do if((M|0)!=1|(g|0)!=0&&(b=0-o|0,p=s+(0-(n[h+(l<<2)>>2]|0))|0,(ln[c&3](p,s)|0)>=1))for(u=1,f=(f|0)==0,g=p;;){if(f&(l|0)>1){if(f=s+b|0,p=n[h+(l+-2<<2)>>2]|0,(ln[c&3](f,g)|0)>-1){p=10;break e}if((ln[c&3](f+(0-p)|0,g)|0)>-1){p=10;break e}}if(f=u+1|0,n[w+(u<<2)>>2]=g,M=Wu(C)|0,ss(C,M),l=M+l|0,!((n[C>>2]|0)!=1|(n[T>>2]|0)!=0)){u=f,s=g,p=10;break e}if(s=g+(0-(n[h+(l<<2)>>2]|0))|0,(ln[c&3](s,n[w>>2]|0)|0)<1){s=g,u=f,f=0,p=9;break}else M=g,u=f,f=1,g=s,s=M}else u=1,p=9;while(!1);(p|0)==9&&!(f|0)&&(p=10),(p|0)==10&&($u(o,w,u),qa(s,o,c,l,h)),I=B}function as(s,o){s=s|0,o=o|0;var c=0,u=0,l=0;l=s+4|0,o>>>0>31?(u=n[s>>2]|0,n[l>>2]=u,n[s>>2]=0,o=o+-32|0,c=0):(c=n[s>>2]|0,u=n[l>>2]|0),n[l>>2]=c>>>(32-o|0)|u<<o,n[s>>2]=c<<o}function Wu(s){s=s|0;var o=0;return o=Zu((n[s>>2]|0)+-1|0)|0,o?o|0:(o=Zu(n[s+4>>2]|0)|0,((o|0)==0?0:o+32|0)|0)}function Zu(s){s=s|0;var o=0;if(s)if(s&1)s=0;else for(o=s,s=0;s=s+1|0,!(o&2);)o=o>>>1;else s=32;return s|0}function $u(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0,p=0;h=I,I=I+256|0,u=h;e:do if((c|0)>=2&&(f=o+(c<<2)|0,n[f>>2]=u,s|0))for(;;){l=s>>>0<256?s:256,xr(u|0,n[o>>2]|0,l|0)|0,u=0;do p=o+(u<<2)|0,u=u+1|0,xr(n[p>>2]|0,n[o+(u<<2)>>2]|0,l|0)|0,n[p>>2]=(n[p>>2]|0)+l;while((u|0)!=(c|0));if(s=s-l|0,!s)break e;u=n[f>>2]|0}while(!1);I=h}function Nr(s){return s=+s,~~+Af(+s)|0}function lt(s){s=s|0;var o=0,c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0,P=0,D=0,H=0,R=0,j=0,O=0,K=0;K=I,I=I+16|0,w=K;do if(s>>>0<245){if(T=s>>>0<11?16:s+11&-8,s=T>>>3,C=n[6921]|0,c=C>>>s,c&3|0)return o=(c&1^1)+s|0,s=27724+(o<<1<<2)|0,c=s+8|0,u=n[c>>2]|0,l=u+8|0,f=n[l>>2]|0,(f|0)==(s|0)?n[6921]=C&~(1<<o):(n[f+12>>2]=s,n[c>>2]=f),O=o<<3,n[u+4>>2]=O|3,O=u+O+4|0,n[O>>2]=n[O>>2]|1,O=l,I=K,O|0;if(b=n[6923]|0,T>>>0>b>>>0){if(c|0)return o=2<<s,o=c<<s&(o|0-o),o=(o&0-o)+-1|0,p=o>>>12&16,o=o>>>p,c=o>>>5&8,o=o>>>c,f=o>>>2&4,o=o>>>f,s=o>>>1&2,o=o>>>s,u=o>>>1&1,u=(c|p|f|s|u)+(o>>>u)|0,o=27724+(u<<1<<2)|0,s=o+8|0,f=n[s>>2]|0,p=f+8|0,c=n[p>>2]|0,(c|0)==(o|0)?(s=C&~(1<<u),n[6921]=s):(n[c+12>>2]=o,n[s>>2]=c,s=C),O=u<<3,h=O-T|0,n[f+4>>2]=T|3,l=f+T|0,n[l+4>>2]=h|1,n[f+O>>2]=h,b|0&&(u=n[6926]|0,o=b>>>3,c=27724+(o<<1<<2)|0,o=1<<o,s&o?(s=c+8|0,o=n[s>>2]|0):(n[6921]=s|o,o=c,s=c+8|0),n[s>>2]=u,n[o+12>>2]=u,n[u+8>>2]=o,n[u+12>>2]=c),n[6923]=h,n[6926]=l,O=p,I=K,O|0;if(f=n[6922]|0,f){for(c=(f&0-f)+-1|0,l=c>>>12&16,c=c>>>l,u=c>>>5&8,c=c>>>u,h=c>>>2&4,c=c>>>h,p=c>>>1&2,c=c>>>p,g=c>>>1&1,g=n[27988+((u|l|h|p|g)+(c>>>g)<<2)>>2]|0,c=g,p=g,g=(n[g+4>>2]&-8)-T|0;s=n[c+16>>2]|0,!(!s&&(s=n[c+20>>2]|0,!s));)h=(n[s+4>>2]&-8)-T|0,l=h>>>0<g>>>0,c=s,p=l?s:p,g=l?h:g;if(h=p+T|0,h>>>0>p>>>0){l=n[p+24>>2]|0,o=n[p+12>>2]|0;do if((o|0)==(p|0)){if(s=p+20|0,o=n[s>>2]|0,!o&&(s=p+16|0,o=n[s>>2]|0,!o)){c=0;break}for(;;)if(u=o+20|0,c=n[u>>2]|0,c)o=c,s=u;else if(u=o+16|0,c=n[u>>2]|0,c)o=c,s=u;else break;n[s>>2]=0,c=o}else c=n[p+8>>2]|0,n[c+12>>2]=o,n[o+8>>2]=c,c=o;while(!1);do if(l|0){if(o=n[p+28>>2]|0,s=27988+(o<<2)|0,(p|0)==(n[s>>2]|0)){if(n[s>>2]=c,!c){n[6922]=f&~(1<<o);break}}else if(O=l+16|0,n[((n[O>>2]|0)==(p|0)?O:l+20|0)>>2]=c,!c)break;n[c+24>>2]=l,o=n[p+16>>2]|0,o|0&&(n[c+16>>2]=o,n[o+24>>2]=c),o=n[p+20>>2]|0,o|0&&(n[c+20>>2]=o,n[o+24>>2]=c)}while(!1);return g>>>0<16?(O=g+T|0,n[p+4>>2]=O|3,O=p+O+4|0,n[O>>2]=n[O>>2]|1):(n[p+4>>2]=T|3,n[h+4>>2]=g|1,n[h+g>>2]=g,b|0&&(u=n[6926]|0,o=b>>>3,c=27724+(o<<1<<2)|0,o=1<<o,o&C?(s=c+8|0,o=n[s>>2]|0):(n[6921]=o|C,o=c,s=c+8|0),n[s>>2]=u,n[o+12>>2]=u,n[u+8>>2]=o,n[u+12>>2]=c),n[6923]=g,n[6926]=h),O=p+8|0,I=K,O|0}else C=T}else C=T}else C=T}else if(s>>>0<=4294967231)if(s=s+11|0,T=s&-8,u=n[6922]|0,u){l=0-T|0,s=s>>>8,s?T>>>0>16777215?g=31:(C=(s+1048320|0)>>>16&8,P=s<<C,p=(P+520192|0)>>>16&4,P=P<<p,g=(P+245760|0)>>>16&2,g=14-(p|C|g)+(P<<g>>>15)|0,g=T>>>(g+7|0)&1|g<<1):g=0,c=n[27988+(g<<2)>>2]|0;e:do if(!c)c=0,s=0,P=61;else for(s=0,p=T<<((g|0)==31?0:25-(g>>>1)|0),f=0;;){if(h=(n[c+4>>2]&-8)-T|0,h>>>0<l>>>0)if(h)s=c,l=h;else{s=c,l=0,P=65;break e}if(P=n[c+20>>2]|0,c=n[c+16+(p>>>31<<2)>>2]|0,f=(P|0)==0|(P|0)==(c|0)?f:P,c)p=p<<1;else{c=f,P=61;break}}while(!1);if((P|0)==61){if((c|0)==0&(s|0)==0){if(s=2<<g,s=(s|0-s)&u,!s){C=T;break}C=(s&0-s)+-1|0,h=C>>>12&16,C=C>>>h,f=C>>>5&8,C=C>>>f,p=C>>>2&4,C=C>>>p,g=C>>>1&2,C=C>>>g,c=C>>>1&1,s=0,c=n[27988+((f|h|p|g|c)+(C>>>c)<<2)>>2]|0}c?P=65:(p=s,h=l)}if((P|0)==65)for(f=c;;)if(C=(n[f+4>>2]&-8)-T|0,c=C>>>0<l>>>0,l=c?C:l,s=c?f:s,c=n[f+16>>2]|0,c||(c=n[f+20>>2]|0),c)f=c;else{p=s,h=l;break}if((p|0)!=0&&h>>>0<((n[6923]|0)-T|0)>>>0&&(b=p+T|0,b>>>0>p>>>0)){f=n[p+24>>2]|0,o=n[p+12>>2]|0;do if((o|0)==(p|0)){if(s=p+20|0,o=n[s>>2]|0,!o&&(s=p+16|0,o=n[s>>2]|0,!o)){o=0;break}for(;;)if(l=o+20|0,c=n[l>>2]|0,c)o=c,s=l;else if(l=o+16|0,c=n[l>>2]|0,c)o=c,s=l;else break;n[s>>2]=0}else O=n[p+8>>2]|0,n[O+12>>2]=o,n[o+8>>2]=O;while(!1);do if(f){if(s=n[p+28>>2]|0,c=27988+(s<<2)|0,(p|0)==(n[c>>2]|0)){if(n[c>>2]=o,!o){u=u&~(1<<s),n[6922]=u;break}}else if(O=f+16|0,n[((n[O>>2]|0)==(p|0)?O:f+20|0)>>2]=o,!o)break;n[o+24>>2]=f,s=n[p+16>>2]|0,s|0&&(n[o+16>>2]=s,n[s+24>>2]=o),s=n[p+20>>2]|0,s&&(n[o+20>>2]=s,n[s+24>>2]=o)}while(!1);e:do if(h>>>0<16)O=h+T|0,n[p+4>>2]=O|3,O=p+O+4|0,n[O>>2]=n[O>>2]|1;else{if(n[p+4>>2]=T|3,n[b+4>>2]=h|1,n[b+h>>2]=h,o=h>>>3,h>>>0<256){c=27724+(o<<1<<2)|0,s=n[6921]|0,o=1<<o,s&o?(s=c+8|0,o=n[s>>2]|0):(n[6921]=s|o,o=c,s=c+8|0),n[s>>2]=b,n[o+12>>2]=b,n[b+8>>2]=o,n[b+12>>2]=c;break}if(o=h>>>8,o?h>>>0>16777215?c=31:(j=(o+1048320|0)>>>16&8,O=o<<j,R=(O+520192|0)>>>16&4,O=O<<R,c=(O+245760|0)>>>16&2,c=14-(R|j|c)+(O<<c>>>15)|0,c=h>>>(c+7|0)&1|c<<1):c=0,o=27988+(c<<2)|0,n[b+28>>2]=c,s=b+16|0,n[s+4>>2]=0,n[s>>2]=0,s=1<<c,!(u&s)){n[6922]=u|s,n[o>>2]=b,n[b+24>>2]=o,n[b+12>>2]=b,n[b+8>>2]=b;break}o=n[o>>2]|0;t:do if((n[o+4>>2]&-8|0)!=(h|0)){for(u=h<<((c|0)==31?0:25-(c>>>1)|0);c=o+16+(u>>>31<<2)|0,s=n[c>>2]|0,!!s;)if((n[s+4>>2]&-8|0)==(h|0)){o=s;break t}else u=u<<1,o=s;n[c>>2]=b,n[b+24>>2]=o,n[b+12>>2]=b,n[b+8>>2]=b;break e}while(!1);j=o+8|0,O=n[j>>2]|0,n[O+12>>2]=b,n[j>>2]=b,n[b+8>>2]=O,n[b+12>>2]=o,n[b+24>>2]=0}while(!1);return O=p+8|0,I=K,O|0}else C=T}else C=T;else C=-1;while(!1);if(c=n[6923]|0,c>>>0>=C>>>0)return o=c-C|0,s=n[6926]|0,o>>>0>15?(O=s+C|0,n[6926]=O,n[6923]=o,n[O+4>>2]=o|1,n[s+c>>2]=o,n[s+4>>2]=C|3):(n[6923]=0,n[6926]=0,n[s+4>>2]=c|3,O=s+c+4|0,n[O>>2]=n[O>>2]|1),O=s+8|0,I=K,O|0;if(h=n[6924]|0,h>>>0>C>>>0)return R=h-C|0,n[6924]=R,O=n[6927]|0,j=O+C|0,n[6927]=j,n[j+4>>2]=R|1,n[O+4>>2]=C|3,O=O+8|0,I=K,O|0;if(n[7039]|0?s=n[7041]|0:(n[7041]=4096,n[7040]=4096,n[7042]=-1,n[7043]=-1,n[7044]=0,n[7032]=0,n[7039]=w&-16^1431655768,s=4096),p=C+48|0,g=C+47|0,f=s+g|0,l=0-s|0,T=f&l,T>>>0<=C>>>0||(s=n[7031]|0,s|0&&(b=n[7029]|0,w=b+T|0,w>>>0<=b>>>0|w>>>0>s>>>0)))return O=0,I=K,O|0;e:do if(n[7032]&4)o=0,P=143;else{c=n[6927]|0;t:do if(c){for(u=28132;w=n[u>>2]|0,!(w>>>0<=c>>>0&&(w+(n[u+4>>2]|0)|0)>>>0>c>>>0);)if(s=n[u+8>>2]|0,s)u=s;else{P=128;break t}if(o=f-h&l,o>>>0<2147483647)if(s=cn(o|0)|0,(s|0)==((n[u>>2]|0)+(n[u+4>>2]|0)|0)){if((s|0)!=-1){h=o,f=s,P=145;break e}}else u=s,P=136;else o=0}else P=128;while(!1);do if((P|0)==128)if(c=cn(0)|0,(c|0)!=-1&&(o=c,B=n[7040]|0,M=B+-1|0,o=((M&o|0)==0?0:(M+o&0-B)-o|0)+T|0,B=n[7029]|0,M=o+B|0,o>>>0>C>>>0&o>>>0<2147483647)){if(w=n[7031]|0,w|0&&M>>>0<=B>>>0|M>>>0>w>>>0){o=0;break}if(s=cn(o|0)|0,(s|0)==(c|0)){h=o,f=c,P=145;break e}else u=s,P=136}else o=0;while(!1);do if((P|0)==136){if(c=0-o|0,!(p>>>0>o>>>0&(o>>>0<2147483647&(u|0)!=-1)))if((u|0)==-1){o=0;break}else{h=o,f=u,P=145;break e}if(s=n[7041]|0,s=g-o+s&0-s,s>>>0>=2147483647){h=o,f=u,P=145;break e}if((cn(s|0)|0)==-1){cn(c|0)|0,o=0;break}else{h=s+o|0,f=u,P=145;break e}}while(!1);n[7032]=n[7032]|4,P=143}while(!1);if((P|0)==143&&T>>>0<2147483647&&(R=cn(T|0)|0,M=cn(0)|0,D=M-R|0,H=D>>>0>(C+40|0)>>>0,!((R|0)==-1|H^1|R>>>0<M>>>0&((R|0)!=-1&(M|0)!=-1)^1))&&(h=H?D:o,f=R,P=145),(P|0)==145){o=(n[7029]|0)+h|0,n[7029]=o,o>>>0>(n[7030]|0)>>>0&&(n[7030]=o),g=n[6927]|0;e:do if(g){for(o=28132;;){if(s=n[o>>2]|0,c=n[o+4>>2]|0,(f|0)==(s+c|0)){P=154;break}if(u=n[o+8>>2]|0,u)o=u;else break}if((P|0)==154&&(j=o+4|0,(n[o+12>>2]&8|0)==0)&&f>>>0>g>>>0&s>>>0<=g>>>0){n[j>>2]=c+h,O=(n[6924]|0)+h|0,R=g+8|0,R=(R&7|0)==0?0:0-R&7,j=g+R|0,R=O-R|0,n[6927]=j,n[6924]=R,n[j+4>>2]=R|1,n[g+O+4>>2]=40,n[6928]=n[7043];break}for(f>>>0<(n[6925]|0)>>>0&&(n[6925]=f),c=f+h|0,o=28132;;){if((n[o>>2]|0)==(c|0)){P=162;break}if(s=n[o+8>>2]|0,s)o=s;else break}if((P|0)==162&&(n[o+12>>2]&8|0)==0){n[o>>2]=f,b=o+4|0,n[b>>2]=(n[b>>2]|0)+h,b=f+8|0,b=f+((b&7|0)==0?0:0-b&7)|0,o=c+8|0,o=c+((o&7|0)==0?0:0-o&7)|0,T=b+C|0,p=o-b-C|0,n[b+4>>2]=C|3;t:do if((g|0)==(o|0))O=(n[6924]|0)+p|0,n[6924]=O,n[6927]=T,n[T+4>>2]=O|1;else{if((n[6926]|0)==(o|0)){O=(n[6923]|0)+p|0,n[6923]=O,n[6926]=T,n[T+4>>2]=O|1,n[T+O>>2]=O;break}if(s=n[o+4>>2]|0,(s&3|0)==1){h=s&-8,u=s>>>3;r:do if(s>>>0<256)if(s=n[o+8>>2]|0,c=n[o+12>>2]|0,(c|0)==(s|0)){n[6921]=n[6921]&~(1<<u);break}else{n[s+12>>2]=c,n[c+8>>2]=s;break}else{f=n[o+24>>2]|0,s=n[o+12>>2]|0;do if((s|0)==(o|0)){if(c=o+16|0,u=c+4|0,s=n[u>>2]|0,s)c=u;else if(s=n[c>>2]|0,!s){s=0;break}for(;;)if(l=s+20|0,u=n[l>>2]|0,u)s=u,c=l;else if(l=s+16|0,u=n[l>>2]|0,u)s=u,c=l;else break;n[c>>2]=0}else O=n[o+8>>2]|0,n[O+12>>2]=s,n[s+8>>2]=O;while(!1);if(!f)break;c=n[o+28>>2]|0,u=27988+(c<<2)|0;do if((n[u>>2]|0)!=(o|0)){if(O=f+16|0,n[((n[O>>2]|0)==(o|0)?O:f+20|0)>>2]=s,!s)break r}else{if(n[u>>2]=s,s|0)break;n[6922]=n[6922]&~(1<<c);break r}while(!1);if(n[s+24>>2]=f,c=o+16|0,u=n[c>>2]|0,u|0&&(n[s+16>>2]=u,n[u+24>>2]=s),c=n[c+4>>2]|0,!c)break;n[s+20>>2]=c,n[c+24>>2]=s}while(!1);o=o+h|0,l=h+p|0}else l=p;if(o=o+4|0,n[o>>2]=n[o>>2]&-2,n[T+4>>2]=l|1,n[T+l>>2]=l,o=l>>>3,l>>>0<256){c=27724+(o<<1<<2)|0,s=n[6921]|0,o=1<<o,s&o?(s=c+8|0,o=n[s>>2]|0):(n[6921]=s|o,o=c,s=c+8|0),n[s>>2]=T,n[o+12>>2]=T,n[T+8>>2]=o,n[T+12>>2]=c;break}o=l>>>8;do if(!o)u=0;else{if(l>>>0>16777215){u=31;break}j=(o+1048320|0)>>>16&8,O=o<<j,R=(O+520192|0)>>>16&4,O=O<<R,u=(O+245760|0)>>>16&2,u=14-(R|j|u)+(O<<u>>>15)|0,u=l>>>(u+7|0)&1|u<<1}while(!1);if(o=27988+(u<<2)|0,n[T+28>>2]=u,s=T+16|0,n[s+4>>2]=0,n[s>>2]=0,s=n[6922]|0,c=1<<u,!(s&c)){n[6922]=s|c,n[o>>2]=T,n[T+24>>2]=o,n[T+12>>2]=T,n[T+8>>2]=T;break}o=n[o>>2]|0;r:do if((n[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,s=n[c>>2]|0,!!s;)if((n[s+4>>2]&-8|0)==(l|0)){o=s;break r}else u=u<<1,o=s;n[c>>2]=T,n[T+24>>2]=o,n[T+12>>2]=T,n[T+8>>2]=T;break t}while(!1);j=o+8|0,O=n[j>>2]|0,n[O+12>>2]=T,n[j>>2]=T,n[T+8>>2]=O,n[T+12>>2]=o,n[T+24>>2]=0}while(!1);return O=b+8|0,I=K,O|0}for(o=28132;s=n[o>>2]|0,!(s>>>0<=g>>>0&&(O=s+(n[o+4>>2]|0)|0,O>>>0>g>>>0));)o=n[o+8>>2]|0;l=O+-47|0,s=l+8|0,s=l+((s&7|0)==0?0:0-s&7)|0,l=g+16|0,s=s>>>0<l>>>0?g:s,o=s+8|0,c=h+-40|0,R=f+8|0,R=(R&7|0)==0?0:0-R&7,j=f+R|0,R=c-R|0,n[6927]=j,n[6924]=R,n[j+4>>2]=R|1,n[f+c+4>>2]=40,n[6928]=n[7043],c=s+4|0,n[c>>2]=27,n[o>>2]=n[7033],n[o+4>>2]=n[7034],n[o+8>>2]=n[7035],n[o+12>>2]=n[7036],n[7033]=f,n[7034]=h,n[7036]=0,n[7035]=o,o=s+24|0;do j=o,o=o+4|0,n[o>>2]=7;while((j+8|0)>>>0<O>>>0);if((s|0)!=(g|0)){if(f=s-g|0,n[c>>2]=n[c>>2]&-2,n[g+4>>2]=f|1,n[s>>2]=f,o=f>>>3,f>>>0<256){c=27724+(o<<1<<2)|0,s=n[6921]|0,o=1<<o,s&o?(s=c+8|0,o=n[s>>2]|0):(n[6921]=s|o,o=c,s=c+8|0),n[s>>2]=g,n[o+12>>2]=g,n[g+8>>2]=o,n[g+12>>2]=c;break}if(o=f>>>8,o?f>>>0>16777215?u=31:(j=(o+1048320|0)>>>16&8,O=o<<j,R=(O+520192|0)>>>16&4,O=O<<R,u=(O+245760|0)>>>16&2,u=14-(R|j|u)+(O<<u>>>15)|0,u=f>>>(u+7|0)&1|u<<1):u=0,c=27988+(u<<2)|0,n[g+28>>2]=u,n[g+20>>2]=0,n[l>>2]=0,o=n[6922]|0,s=1<<u,!(o&s)){n[6922]=o|s,n[c>>2]=g,n[g+24>>2]=c,n[g+12>>2]=g,n[g+8>>2]=g;break}o=n[c>>2]|0;t:do if((n[o+4>>2]&-8|0)!=(f|0)){for(u=f<<((u|0)==31?0:25-(u>>>1)|0);c=o+16+(u>>>31<<2)|0,s=n[c>>2]|0,!!s;)if((n[s+4>>2]&-8|0)==(f|0)){o=s;break t}else u=u<<1,o=s;n[c>>2]=g,n[g+24>>2]=o,n[g+12>>2]=g,n[g+8>>2]=g;break e}while(!1);j=o+8|0,O=n[j>>2]|0,n[O+12>>2]=g,n[j>>2]=g,n[g+8>>2]=O,n[g+12>>2]=o,n[g+24>>2]=0}}else O=n[6925]|0,(O|0)==0|f>>>0<O>>>0&&(n[6925]=f),n[7033]=f,n[7034]=h,n[7036]=0,n[6930]=n[7039],n[6929]=-1,n[6934]=27724,n[6933]=27724,n[6936]=27732,n[6935]=27732,n[6938]=27740,n[6937]=27740,n[6940]=27748,n[6939]=27748,n[6942]=27756,n[6941]=27756,n[6944]=27764,n[6943]=27764,n[6946]=27772,n[6945]=27772,n[6948]=27780,n[6947]=27780,n[6950]=27788,n[6949]=27788,n[6952]=27796,n[6951]=27796,n[6954]=27804,n[6953]=27804,n[6956]=27812,n[6955]=27812,n[6958]=27820,n[6957]=27820,n[6960]=27828,n[6959]=27828,n[6962]=27836,n[6961]=27836,n[6964]=27844,n[6963]=27844,n[6966]=27852,n[6965]=27852,n[6968]=27860,n[6967]=27860,n[6970]=27868,n[6969]=27868,n[6972]=27876,n[6971]=27876,n[6974]=27884,n[6973]=27884,n[6976]=27892,n[6975]=27892,n[6978]=27900,n[6977]=27900,n[6980]=27908,n[6979]=27908,n[6982]=27916,n[6981]=27916,n[6984]=27924,n[6983]=27924,n[6986]=27932,n[6985]=27932,n[6988]=27940,n[6987]=27940,n[6990]=27948,n[6989]=27948,n[6992]=27956,n[6991]=27956,n[6994]=27964,n[6993]=27964,n[6996]=27972,n[6995]=27972,O=h+-40|0,R=f+8|0,R=(R&7|0)==0?0:0-R&7,j=f+R|0,R=O-R|0,n[6927]=j,n[6924]=R,n[j+4>>2]=R|1,n[f+O+4>>2]=40,n[6928]=n[7043];while(!1);if(o=n[6924]|0,o>>>0>C>>>0)return R=o-C|0,n[6924]=R,O=n[6927]|0,j=O+C|0,n[6927]=j,n[j+4>>2]=R|1,n[O+4>>2]=C|3,O=O+8|0,I=K,O|0}return O=Yu()|0,n[O>>2]=12,O=0,I=K,O|0}function fe(s){s=s|0;var o=0,c=0,u=0,l=0,f=0,h=0,p=0,g=0;if(s){c=s+-8|0,l=n[6925]|0,s=n[s+-4>>2]|0,o=s&-8,g=c+o|0;do if(s&1)p=c,h=c;else{if(u=n[c>>2]|0,!(s&3)||(h=c+(0-u)|0,f=u+o|0,h>>>0<l>>>0))return;if((n[6926]|0)==(h|0)){if(s=g+4|0,o=n[s>>2]|0,(o&3|0)!=3){p=h,o=f;break}n[6923]=f,n[s>>2]=o&-2,n[h+4>>2]=f|1,n[h+f>>2]=f;return}if(c=u>>>3,u>>>0<256)if(s=n[h+8>>2]|0,o=n[h+12>>2]|0,(o|0)==(s|0)){n[6921]=n[6921]&~(1<<c),p=h,o=f;break}else{n[s+12>>2]=o,n[o+8>>2]=s,p=h,o=f;break}l=n[h+24>>2]|0,s=n[h+12>>2]|0;do if((s|0)==(h|0)){if(o=h+16|0,c=o+4|0,s=n[c>>2]|0,s)o=c;else if(s=n[o>>2]|0,!s){s=0;break}for(;;)if(u=s+20|0,c=n[u>>2]|0,c)s=c,o=u;else if(u=s+16|0,c=n[u>>2]|0,c)s=c,o=u;else break;n[o>>2]=0}else p=n[h+8>>2]|0,n[p+12>>2]=s,n[s+8>>2]=p;while(!1);if(l){if(o=n[h+28>>2]|0,c=27988+(o<<2)|0,(n[c>>2]|0)==(h|0)){if(n[c>>2]=s,!s){n[6922]=n[6922]&~(1<<o),p=h,o=f;break}}else if(p=l+16|0,n[((n[p>>2]|0)==(h|0)?p:l+20|0)>>2]=s,!s){p=h,o=f;break}n[s+24>>2]=l,o=h+16|0,c=n[o>>2]|0,c|0&&(n[s+16>>2]=c,n[c+24>>2]=s),o=n[o+4>>2]|0,o?(n[s+20>>2]=o,n[o+24>>2]=s,p=h,o=f):(p=h,o=f)}else p=h,o=f}while(!1);if(!(h>>>0>=g>>>0)&&(s=g+4|0,u=n[s>>2]|0,!!(u&1))){if(u&2)n[s>>2]=u&-2,n[p+4>>2]=o|1,n[h+o>>2]=o,l=o;else{if((n[6927]|0)==(g|0)){if(g=(n[6924]|0)+o|0,n[6924]=g,n[6927]=p,n[p+4>>2]=g|1,(p|0)!=(n[6926]|0))return;n[6926]=0,n[6923]=0;return}if((n[6926]|0)==(g|0)){g=(n[6923]|0)+o|0,n[6923]=g,n[6926]=h,n[p+4>>2]=g|1,n[h+g>>2]=g;return}l=(u&-8)+o|0,c=u>>>3;do if(u>>>0<256)if(o=n[g+8>>2]|0,s=n[g+12>>2]|0,(s|0)==(o|0)){n[6921]=n[6921]&~(1<<c);break}else{n[o+12>>2]=s,n[s+8>>2]=o;break}else{f=n[g+24>>2]|0,s=n[g+12>>2]|0;do if((s|0)==(g|0)){if(o=g+16|0,c=o+4|0,s=n[c>>2]|0,s)o=c;else if(s=n[o>>2]|0,!s){c=0;break}for(;;)if(u=s+20|0,c=n[u>>2]|0,c)s=c,o=u;else if(u=s+16|0,c=n[u>>2]|0,c)s=c,o=u;else break;n[o>>2]=0,c=s}else c=n[g+8>>2]|0,n[c+12>>2]=s,n[s+8>>2]=c,c=s;while(!1);if(f|0){if(s=n[g+28>>2]|0,o=27988+(s<<2)|0,(n[o>>2]|0)==(g|0)){if(n[o>>2]=c,!c){n[6922]=n[6922]&~(1<<s);break}}else if(u=f+16|0,n[((n[u>>2]|0)==(g|0)?u:f+20|0)>>2]=c,!c)break;n[c+24>>2]=f,s=g+16|0,o=n[s>>2]|0,o|0&&(n[c+16>>2]=o,n[o+24>>2]=c),s=n[s+4>>2]|0,s|0&&(n[c+20>>2]=s,n[s+24>>2]=c)}}while(!1);if(n[p+4>>2]=l|1,n[h+l>>2]=l,(p|0)==(n[6926]|0)){n[6923]=l;return}}if(s=l>>>3,l>>>0<256){c=27724+(s<<1<<2)|0,o=n[6921]|0,s=1<<s,o&s?(o=c+8|0,s=n[o>>2]|0):(n[6921]=o|s,s=c,o=c+8|0),n[o>>2]=p,n[s+12>>2]=p,n[p+8>>2]=s,n[p+12>>2]=c;return}s=l>>>8,s?l>>>0>16777215?u=31:(h=(s+1048320|0)>>>16&8,g=s<<h,f=(g+520192|0)>>>16&4,g=g<<f,u=(g+245760|0)>>>16&2,u=14-(f|h|u)+(g<<u>>>15)|0,u=l>>>(u+7|0)&1|u<<1):u=0,s=27988+(u<<2)|0,n[p+28>>2]=u,n[p+20>>2]=0,n[p+16>>2]=0,o=n[6922]|0,c=1<<u;e:do if(!(o&c))n[6922]=o|c,n[s>>2]=p,n[p+24>>2]=s,n[p+12>>2]=p,n[p+8>>2]=p;else{s=n[s>>2]|0;t:do if((n[s+4>>2]&-8|0)!=(l|0)){for(u=l<<((u|0)==31?0:25-(u>>>1)|0);c=s+16+(u>>>31<<2)|0,o=n[c>>2]|0,!!o;)if((n[o+4>>2]&-8|0)==(l|0)){s=o;break t}else u=u<<1,s=o;n[c>>2]=p,n[p+24>>2]=s,n[p+12>>2]=p,n[p+8>>2]=p;break e}while(!1);h=s+8|0,g=n[h>>2]|0,n[g+12>>2]=p,n[h>>2]=p,n[p+8>>2]=g,n[p+12>>2]=s,n[p+24>>2]=0}while(!1);if(g=(n[6929]|0)+-1|0,n[6929]=g,!(g|0)){for(s=28140;s=n[s>>2]|0,s;)s=s+8|0;n[6929]=-1}}}}function zt(s,o){s=s|0,o=o|0;var c=0;return s?(c=Zt(o,s)|0,(o|s)>>>0>65535&&(c=((c>>>0)/(s>>>0)|0)==(o|0)?c:-1)):c=0,s=lt(c)|0,!s||!(n[s+-4>>2]&3)||an(s|0,0,c|0)|0,s|0}function bT(s,o){s=s|0,o=o|0;var c=0,u=0;return s?o>>>0>4294967231?(o=Yu()|0,n[o>>2]=12,o=0,o|0):(c=ET(s+-8|0,o>>>0<11?16:o+11&-8)|0,c|0?(o=c+8|0,o|0):(c=lt(o)|0,c?(u=n[s+-4>>2]|0,u=(u&-8)-((u&3|0)==0?8:4)|0,xr(c|0,s|0,(u>>>0<o>>>0?u:o)|0)|0,fe(s),o=c,o|0):(o=0,o|0))):(o=lt(o)|0,o|0)}function ET(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0,g=0,T=0,b=0,C=0;if(b=s+4|0,C=n[b>>2]|0,c=C&-8,p=s+c|0,!(C&3))return o>>>0<256?(s=0,s|0):(c>>>0>=(o+4|0)>>>0&&(c-o|0)>>>0<=n[7041]<<1>>>0||(s=0),s|0);if(c>>>0>=o>>>0)return c=c-o|0,c>>>0<=15||(T=s+o|0,n[b>>2]=C&1|o|2,n[T+4>>2]=c|3,C=p+4|0,n[C>>2]=n[C>>2]|1,ef(T,c)),s|0;if((n[6927]|0)==(p|0))return T=(n[6924]|0)+c|0,c=T-o|0,u=s+o|0,T>>>0<=o>>>0?(s=0,s|0):(n[b>>2]=C&1|o|2,n[u+4>>2]=c|1,n[6927]=u,n[6924]=c,s|0);if((n[6926]|0)==(p|0))return u=(n[6923]|0)+c|0,u>>>0<o>>>0?(s=0,s|0):(c=u-o|0,c>>>0>15?(T=s+o|0,u=s+u|0,n[b>>2]=C&1|o|2,n[T+4>>2]=c|1,n[u>>2]=c,u=u+4|0,n[u>>2]=n[u>>2]&-2,u=T):(n[b>>2]=C&1|u|2,u=s+u+4|0,n[u>>2]=n[u>>2]|1,u=0,c=0),n[6923]=c,n[6926]=u,s|0);if(u=n[p+4>>2]|0,u&2|0||(g=(u&-8)+c|0,g>>>0<o>>>0))return s=0,s|0;T=g-o|0,l=u>>>3;do if(u>>>0<256)if(u=n[p+8>>2]|0,c=n[p+12>>2]|0,(c|0)==(u|0)){n[6921]=n[6921]&~(1<<l);break}else{n[u+12>>2]=c,n[c+8>>2]=u;break}else{h=n[p+24>>2]|0,c=n[p+12>>2]|0;do if((c|0)==(p|0)){if(u=p+16|0,l=u+4|0,c=n[l>>2]|0,c)u=l;else if(c=n[u>>2]|0,!c){l=0;break}for(;;)if(f=c+20|0,l=n[f>>2]|0,l)c=l,u=f;else if(f=c+16|0,l=n[f>>2]|0,l)c=l,u=f;else break;n[u>>2]=0,l=c}else l=n[p+8>>2]|0,n[l+12>>2]=c,n[c+8>>2]=l,l=c;while(!1);if(h|0){if(c=n[p+28>>2]|0,u=27988+(c<<2)|0,(n[u>>2]|0)==(p|0)){if(n[u>>2]=l,!l){n[6922]=n[6922]&~(1<<c);break}}else if(f=h+16|0,n[((n[f>>2]|0)==(p|0)?f:h+20|0)>>2]=l,!l)break;n[l+24>>2]=h,c=p+16|0,u=n[c>>2]|0,u|0&&(n[l+16>>2]=u,n[u+24>>2]=l),c=n[c+4>>2]|0,c|0&&(n[l+20>>2]=c,n[c+24>>2]=l)}}while(!1);return T>>>0<16?(n[b>>2]=C&1|g|2,C=s+g+4|0,n[C>>2]=n[C>>2]|1,s|0):(p=s+o|0,n[b>>2]=C&1|o|2,n[p+4>>2]=T|3,C=s+g+4|0,n[C>>2]=n[C>>2]|1,ef(p,T),s|0)}function ef(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0,h=0,p=0;p=s+o|0,c=n[s+4>>2]|0;do if(c&1)h=s;else{if(l=n[s>>2]|0,!(c&3))return;if(h=s+(0-l)|0,o=l+o|0,(n[6926]|0)==(h|0)){if(s=p+4|0,c=n[s>>2]|0,(c&3|0)!=3)break;n[6923]=o,n[s>>2]=c&-2,n[h+4>>2]=o|1,n[p>>2]=o;return}if(u=l>>>3,l>>>0<256)if(s=n[h+8>>2]|0,c=n[h+12>>2]|0,(c|0)==(s|0)){n[6921]=n[6921]&~(1<<u);break}else{n[s+12>>2]=c,n[c+8>>2]=s;break}f=n[h+24>>2]|0,s=n[h+12>>2]|0;do if((s|0)==(h|0)){if(c=h+16|0,u=c+4|0,s=n[u>>2]|0,s)c=u;else if(s=n[c>>2]|0,!s){s=0;break}for(;;)if(l=s+20|0,u=n[l>>2]|0,u)s=u,c=l;else if(l=s+16|0,u=n[l>>2]|0,u)s=u,c=l;else break;n[c>>2]=0}else l=n[h+8>>2]|0,n[l+12>>2]=s,n[s+8>>2]=l;while(!1);if(f){if(c=n[h+28>>2]|0,u=27988+(c<<2)|0,(n[u>>2]|0)==(h|0)){if(n[u>>2]=s,!s){n[6922]=n[6922]&~(1<<c);break}}else if(l=f+16|0,n[((n[l>>2]|0)==(h|0)?l:f+20|0)>>2]=s,!s)break;n[s+24>>2]=f,c=h+16|0,u=n[c>>2]|0,u|0&&(n[s+16>>2]=u,n[u+24>>2]=s),c=n[c+4>>2]|0,c&&(n[s+20>>2]=c,n[c+24>>2]=s)}}while(!1);if(s=p+4|0,u=n[s>>2]|0,u&2)n[s>>2]=u&-2,n[h+4>>2]=o|1,n[h+o>>2]=o,l=o;else{if((n[6927]|0)==(p|0)){if(p=(n[6924]|0)+o|0,n[6924]=p,n[6927]=h,n[h+4>>2]=p|1,(h|0)!=(n[6926]|0))return;n[6926]=0,n[6923]=0;return}if((n[6926]|0)==(p|0)){p=(n[6923]|0)+o|0,n[6923]=p,n[6926]=h,n[h+4>>2]=p|1,n[h+p>>2]=p;return}l=(u&-8)+o|0,c=u>>>3;do if(u>>>0<256)if(s=n[p+8>>2]|0,o=n[p+12>>2]|0,(o|0)==(s|0)){n[6921]=n[6921]&~(1<<c);break}else{n[s+12>>2]=o,n[o+8>>2]=s;break}else{f=n[p+24>>2]|0,o=n[p+12>>2]|0;do if((o|0)==(p|0)){if(s=p+16|0,c=s+4|0,o=n[c>>2]|0,o)s=c;else if(o=n[s>>2]|0,!o){c=0;break}for(;;)if(u=o+20|0,c=n[u>>2]|0,c)o=c,s=u;else if(u=o+16|0,c=n[u>>2]|0,c)o=c,s=u;else break;n[s>>2]=0,c=o}else c=n[p+8>>2]|0,n[c+12>>2]=o,n[o+8>>2]=c,c=o;while(!1);if(f|0){if(o=n[p+28>>2]|0,s=27988+(o<<2)|0,(n[s>>2]|0)==(p|0)){if(n[s>>2]=c,!c){n[6922]=n[6922]&~(1<<o);break}}else if(u=f+16|0,n[((n[u>>2]|0)==(p|0)?u:f+20|0)>>2]=c,!c)break;n[c+24>>2]=f,o=p+16|0,s=n[o>>2]|0,s|0&&(n[c+16>>2]=s,n[s+24>>2]=c),o=n[o+4>>2]|0,o|0&&(n[c+20>>2]=o,n[o+24>>2]=c)}}while(!1);if(n[h+4>>2]=l|1,n[h+l>>2]=l,(h|0)==(n[6926]|0)){n[6923]=l;return}}if(o=l>>>3,l>>>0<256){c=27724+(o<<1<<2)|0,s=n[6921]|0,o=1<<o,s&o?(s=c+8|0,o=n[s>>2]|0):(n[6921]=s|o,o=c,s=c+8|0),n[s>>2]=h,n[o+12>>2]=h,n[h+8>>2]=o,n[h+12>>2]=c;return}if(o=l>>>8,o?l>>>0>16777215?u=31:(f=(o+1048320|0)>>>16&8,p=o<<f,c=(p+520192|0)>>>16&4,p=p<<c,u=(p+245760|0)>>>16&2,u=14-(c|f|u)+(p<<u>>>15)|0,u=l>>>(u+7|0)&1|u<<1):u=0,o=27988+(u<<2)|0,n[h+28>>2]=u,n[h+20>>2]=0,n[h+16>>2]=0,s=n[6922]|0,c=1<<u,!(s&c)){n[6922]=s|c,n[o>>2]=h,n[h+24>>2]=o,n[h+12>>2]=h,n[h+8>>2]=h;return}o=n[o>>2]|0;e:do if((n[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,s=n[c>>2]|0,!!s;)if((n[s+4>>2]&-8|0)==(l|0)){o=s;break e}else u=u<<1,o=s;n[c>>2]=h,n[h+24>>2]=o,n[h+12>>2]=h,n[h+8>>2]=h;return}while(!1);f=o+8|0,p=n[f>>2]|0,n[p+12>>2]=h,n[f>>2]=h,n[h+8>>2]=p,n[h+12>>2]=o,n[h+24>>2]=0}function ce(s,o,c,u){return s=s|0,o=o|0,c=c|0,u=u|0,c=s+c>>>0,Se(o+u+(c>>>0<s>>>0|0)>>>0|0),c|0}function Bt(s,o,c,u){return s=s|0,o=o|0,c=c|0,u=u|0,u=o-u-(c>>>0>s>>>0|0)>>>0,Se(u|0),s-c>>>0|0}function tf(s){return s=s|0,(s?31-(zr(s^s-1)|0)|0:32)|0}function Ka(s,o,c,u,l){s=s|0,o=o|0,c=c|0,u=u|0,l=l|0;var f=0,h=0,p=0,g=0,T=0,b=0,C=0,w=0,B=0,M=0;if(b=s,g=o,T=g,h=c,w=u,p=w,!T)return f=(l|0)!=0,p?f?(n[l>>2]=s|0,n[l+4>>2]=o&0,w=0,l=0,Se(w|0),l|0):(w=0,l=0,Se(w|0),l|0):(f&&(n[l>>2]=(b>>>0)%(h>>>0),n[l+4>>2]=0),w=0,l=(b>>>0)/(h>>>0)>>>0,Se(w|0),l|0);f=(p|0)==0;do if(h){if(!f){if(f=(zr(p|0)|0)-(zr(T|0)|0)|0,f>>>0<=31){C=f+1|0,p=31-f|0,o=f-31>>31,h=C,s=b>>>(C>>>0)&o|T<<p,o=T>>>(C>>>0)&o,f=0,p=b<<p;break}return l?(n[l>>2]=s|0,n[l+4>>2]=g|o&0,w=0,l=0,Se(w|0),l|0):(w=0,l=0,Se(w|0),l|0)}if(f=h-1|0,f&h|0){p=(zr(h|0)|0)+33-(zr(T|0)|0)|0,M=64-p|0,C=32-p|0,g=C>>31,B=p-32|0,o=B>>31,h=p,s=C-1>>31&T>>>(B>>>0)|(T<<C|b>>>(p>>>0))&o,o=o&T>>>(p>>>0),f=b<<M&g,p=(T<<M|b>>>(B>>>0))&g|b<<C&p-33>>31;break}return l|0&&(n[l>>2]=f&b,n[l+4>>2]=0),(h|0)==1?(B=g|o&0,M=s|0,Se(B|0),M|0):(M=tf(h|0)|0,B=T>>>(M>>>0)|0,M=T<<32-M|b>>>(M>>>0)|0,Se(B|0),M|0)}else{if(f)return l|0&&(n[l>>2]=(T>>>0)%(h>>>0),n[l+4>>2]=0),B=0,M=(T>>>0)/(h>>>0)>>>0,Se(B|0),M|0;if(!b)return l|0&&(n[l>>2]=0,n[l+4>>2]=(T>>>0)%(p>>>0)),B=0,M=(T>>>0)/(p>>>0)>>>0,Se(B|0),M|0;if(f=p-1|0,!(f&p))return l|0&&(n[l>>2]=s|0,n[l+4>>2]=f&T|o&0),B=0,M=T>>>((tf(p|0)|0)>>>0),Se(B|0),M|0;if(f=(zr(p|0)|0)-(zr(T|0)|0)|0,f>>>0<=30){o=f+1|0,p=31-f|0,h=o,s=T<<p|b>>>(o>>>0),o=T>>>(o>>>0),f=0,p=b<<p;break}return l?(n[l>>2]=s|0,n[l+4>>2]=g|o&0,B=0,M=0,Se(B|0),M|0):(B=0,M=0,Se(B|0),M|0)}while(!1);if(!h)T=p,g=0,p=0;else{C=c|0,b=w|u&0,T=ce(C|0,b|0,-1,-1)|0,c=S()|0,g=p,p=0;do u=g,g=f>>>31|g<<1,f=p|f<<1,u=s<<1|u>>>31|0,w=s>>>31|o<<1|0,Bt(T|0,c|0,u|0,w|0)|0,M=S()|0,B=M>>31|((M|0)<0?-1:0)<<1,p=B&1,s=Bt(u|0,w|0,B&C|0,(((M|0)<0?-1:0)>>31|((M|0)<0?-1:0)<<1)&b|0)|0,o=S()|0,h=h-1|0;while((h|0)!=0);T=g,g=0}return h=0,l|0&&(n[l>>2]=s,n[l+4>>2]=o),B=(f|0)>>>31|(T|h)<<1|(h<<1|f>>>31)&0|g,M=(f<<1|0)&-2|p,Se(B|0),M|0}function sn(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0;return T=o>>31|((o|0)<0?-1:0)<<1,g=((o|0)<0?-1:0)>>31|((o|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,p=Bt(T^s|0,g^o|0,T|0,g|0)|0,h=S()|0,s=f^T,o=l^g,Bt((Ka(p,h,Bt(f^c|0,l^u|0,f|0,l|0)|0,S()|0,0)|0)^s|0,(S()|0)^o|0,s|0,o|0)|0}function xT(s,o){s=s|0,o=o|0;var c=0,u=0,l=0,f=0;return f=s&65535,l=o&65535,c=Zt(l,f)|0,u=s>>>16,s=(c>>>16)+(Zt(l,u)|0)|0,l=o>>>16,o=Zt(l,f)|0,Se((s>>>16)+(Zt(l,u)|0)+(((s&65535)+o|0)>>>16)|0),s+o<<16|c&65535|0}function ut(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0;return l=s,f=c,c=xT(l,f)|0,s=S()|0,Se((Zt(o,f)|0)+(Zt(u,l)|0)+s|s&0|0),c|0}function on(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0,h=0,p=0,g=0,T=0;return l=I,I=I+16|0,p=l|0,h=o>>31|((o|0)<0?-1:0)<<1,f=((o|0)<0?-1:0)>>31|((o|0)<0?-1:0)<<1,T=u>>31|((u|0)<0?-1:0)<<1,g=((u|0)<0?-1:0)>>31|((u|0)<0?-1:0)<<1,s=Bt(h^s|0,f^o|0,h|0,f|0)|0,o=S()|0,Ka(s,o,Bt(T^c|0,g^u|0,T|0,g|0)|0,S()|0,p)|0,u=Bt(n[p>>2]^h|0,n[p+4>>2]^f|0,h|0,f|0)|0,c=S()|0,I=l,Se(c|0),u|0}function Jr(s,o,c,u){s=s|0,o=o|0,c=c|0,u=u|0;var l=0,f=0;return f=I,I=I+16|0,l=f|0,Ka(s,o,c,u,l)|0,I=f,Se(n[l+4>>2]|0),n[l>>2]|0}function rf(s,o,c){return s=s|0,o=o|0,c=c|0,(c|0)<32?(Se(o>>c|0),s>>>c|(o&(1<<c)-1)<<32-c):(Se(((o|0)<0?-1:0)|0),o>>c-32|0)}function te(s,o,c){return s=s|0,o=o|0,c=c|0,(c|0)<32?(Se(o>>>c|0),s>>>c|(o&(1<<c)-1)<<32-c):(Se(0),o>>>c-32|0)}function oe(s,o,c){return s=s|0,o=o|0,c=c|0,(c|0)<32?(Se(o<<c|(s&(1<<c)-1<<32-c)>>>32-c|0),s<<c):(Se(s<<c-32|0),0)}function Xa(s,o,c){return s=s|0,o=o|0,c=c|0,o=zr(o)|0,(o|0)==32&&(o=o+(zr(s)|0)|0),Se(0),o|0}function nf(s,o){return s=+s,o=+o,s!=s?+o:o!=o?+s:+jg(+s,+o)}function cs(s,o){return s=+s,o=+o,s!=s?+o:o!=o?+s:+wa(+s,+o)}function ls(s){return s=+s,s>=0?+Mt(s+.5):+Yn(s-.5)}function xr(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0;if((c|0)>=8192)return Jg(s|0,o|0,c|0)|0,s|0;if(f=s|0,l=s+c|0,(s&3)==(o&3)){for(;s&3;){if(!c)return f|0;W[s>>0]=W[o>>0]|0,s=s+1|0,o=o+1|0,c=c-1|0}for(c=l&-4|0,u=c-64|0;(s|0)<=(u|0);)n[s>>2]=n[o>>2],n[s+4>>2]=n[o+4>>2],n[s+8>>2]=n[o+8>>2],n[s+12>>2]=n[o+12>>2],n[s+16>>2]=n[o+16>>2],n[s+20>>2]=n[o+20>>2],n[s+24>>2]=n[o+24>>2],n[s+28>>2]=n[o+28>>2],n[s+32>>2]=n[o+32>>2],n[s+36>>2]=n[o+36>>2],n[s+40>>2]=n[o+40>>2],n[s+44>>2]=n[o+44>>2],n[s+48>>2]=n[o+48>>2],n[s+52>>2]=n[o+52>>2],n[s+56>>2]=n[o+56>>2],n[s+60>>2]=n[o+60>>2],s=s+64|0,o=o+64|0;for(;(s|0)<(c|0);)n[s>>2]=n[o>>2],s=s+4|0,o=o+4|0}else for(c=l-4|0;(s|0)<(c|0);)W[s>>0]=W[o>>0]|0,W[s+1>>0]=W[o+1>>0]|0,W[s+2>>0]=W[o+2>>0]|0,W[s+3>>0]=W[o+3>>0]|0,s=s+4|0,o=o+4|0;for(;(s|0)<(l|0);)W[s>>0]=W[o>>0]|0,s=s+1|0,o=o+1|0;return f|0}function Ya(s,o,c){s=s|0,o=o|0,c=c|0;var u=0;if((o|0)<(s|0)&(s|0)<(o+c|0)){for(u=s,o=o+c|0,s=s+c|0;(c|0)>0;)s=s-1|0,o=o-1|0,c=c-1|0,W[s>>0]=W[o>>0]|0;s=u}else xr(s,o,c)|0;return s|0}function an(s,o,c){s=s|0,o=o|0,c=c|0;var u=0,l=0,f=0,h=0;if(f=s+c|0,o=o&255,(c|0)>=67){for(;s&3;)W[s>>0]=o,s=s+1|0;for(u=f&-4|0,h=o|o<<8|o<<16|o<<24,l=u-64|0;(s|0)<=(l|0);)n[s>>2]=h,n[s+4>>2]=h,n[s+8>>2]=h,n[s+12>>2]=h,n[s+16>>2]=h,n[s+20>>2]=h,n[s+24>>2]=h,n[s+28>>2]=h,n[s+32>>2]=h,n[s+36>>2]=h,n[s+40>>2]=h,n[s+44>>2]=h,n[s+48>>2]=h,n[s+52>>2]=h,n[s+56>>2]=h,n[s+60>>2]=h,s=s+64|0;for(;(s|0)<(u|0);)n[s>>2]=h,s=s+4|0}for(;(s|0)<(f|0);)W[s>>0]=o,s=s+1|0;return f-c|0}function Af(s){return s=+s,s>=0?+Mt(s+.5):+Yn(s-.5)}function cn(s){s=s|0;var o=0,c=0,u=0;return u=zg()|0,c=n[Wt>>2]|0,o=c+s|0,(s|0)>0&(o|0)<(c|0)|(o|0)<0?(Kg(o|0)|0,Tu(12),-1):(o|0)>(u|0)&&!(qg(o|0)|0)?(Tu(12),-1):(n[Wt>>2]=o,c|0)}function CT(s,o,c){return s=s|0,o=o|0,c=c|0,ln[s&3](o|0,c|0)|0}function wT(s,o){return s=s|0,o=o|0,Qg(0),0}var ln=[wT,by,Ey,xy];return{___divdi3:sn,___muldi3:ut,___remdi3:on,___uremdi3:Jr,_areNeighborCells:Cy,_bitshift64Ashr:rf,_bitshift64Lshr:te,_bitshift64Shl:oe,_calloc:zt,_cellAreaKm2:oy,_cellAreaM2:ay,_cellAreaRads2:sy,_cellToBoundary:Bn,_cellToCenterChild:Ou,_cellToChildPos:Qy,_cellToChildren:Dy,_cellToChildrenSize:ri,_cellToLatLng:$n,_cellToLocalIj:rT,_cellToParent:Da,_cellToVertex:dr,_cellToVertexes:TT,_cellsToDirectedEdge:wy,_cellsToLinkedMultiPolygon:iy,_childPosToCell:zy,_compactCells:Ny,_constructCell:Ry,_destroyLinkedMultiPolygon:eT,_directedEdgeToBoundary:ei,_directedEdgeToCells:My,_edgeLengthKm:Zy,_edgeLengthM:$y,_edgeLengthRads:Wy,_emscripten_replace_memory:Xg,_free:fe,_getBaseCellNumber:Du,_getDirectedEdgeDestination:vy,_getDirectedEdgeOrigin:By,_getHexagonAreaAvgKm2:Uu,_getHexagonAreaAvgM2:Ky,_getHexagonEdgeLengthAvgKm:Xy,_getHexagonEdgeLengthAvgM:Yy,_getIcosahedronFaces:Gu,_getIndexDigit:Ly,_getNumCells:rs,_getPentagons:Ua,_getRes0Cells:hy,_getResolution:Ra,_greatCircleDistanceKm:Ai,_greatCircleDistanceM:qy,_greatCircleDistanceRads:Jy,_gridDisk:_u,_gridDiskDistances:bu,_gridDistance:ja,_gridPathCells:iT,_gridPathCellsSize:AT,_gridRing:ty,_gridRingUnsafe:xu,_i64Add:ce,_i64Subtract:Bt,_isPentagon:et,_isResClassIII:ky,_isValidCell:ts,_isValidDirectedEdge:Fu,_isValidIndex:Py,_isValidVertex:Xu,_latLngToCell:Ga,_llvm_ctlz_i64:Xa,_llvm_maxnum_f64:nf,_llvm_minnum_f64:cs,_llvm_round_f64:ls,_localIjToCell:nT,_malloc:lt,_maxFaceCount:Vy,_maxGridDiskSize:ey,_maxPolygonToCellsSize:ny,_maxPolygonToCellsSizeExperimental:aT,_memcpy:xr,_memmove:Ya,_memset:an,_originToDirectedEdges:Sa,_pentagonCount:jy,_polygonToCells:Ay,_polygonToCellsExperimental:oT,_readInt64AsDoubleFromPointer:mT,_res0CellCount:fy,_reverseDirectedEdge:Lu,_round:Af,_sbrk:cn,_sizeOfCellBoundary:uT,_sizeOfCoordIJ:pT,_sizeOfGeoLoop:fT,_sizeOfGeoPolygon:hT,_sizeOfH3Index:cT,_sizeOfLatLng:lT,_sizeOfLinkedGeoPolygon:dT,_uncompactCells:Oy,_uncompactCellsSize:Gy,_vertexToLatLng:_T,dynCall_iii:CT,establishStackSpace:$g,stackAlloc:Yg,stackRestore:Zg,stackSave:Wg}})({Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},{a:Cn,b:x,c:v,d:Sg,e:Lg,f:fu,g:Fg,h:Pg,i:Rg,j:Mg,k:lu,l:hu,m:uu,n:Ig,o:vg,p:iu},Ie);e.___divdi3=ie.___divdi3;e.___muldi3=ie.___muldi3;e.___remdi3=ie.___remdi3;e.___uremdi3=ie.___uremdi3;e._areNeighborCells=ie._areNeighborCells;e._bitshift64Ashr=ie._bitshift64Ashr;e._bitshift64Lshr=ie._bitshift64Lshr;e._bitshift64Shl=ie._bitshift64Shl;e._calloc=ie._calloc;e._cellAreaKm2=ie._cellAreaKm2;e._cellAreaM2=ie._cellAreaM2;e._cellAreaRads2=ie._cellAreaRads2;e._cellToBoundary=ie._cellToBoundary;e._cellToCenterChild=ie._cellToCenterChild;e._cellToChildPos=ie._cellToChildPos;e._cellToChildren=ie._cellToChildren;e._cellToChildrenSize=ie._cellToChildrenSize;e._cellToLatLng=ie._cellToLatLng;e._cellToLocalIj=ie._cellToLocalIj;e._cellToParent=ie._cellToParent;e._cellToVertex=ie._cellToVertex;e._cellToVertexes=ie._cellToVertexes;e._cellsToDirectedEdge=ie._cellsToDirectedEdge;e._cellsToLinkedMultiPolygon=ie._cellsToLinkedMultiPolygon;e._childPosToCell=ie._childPosToCell;e._compactCells=ie._compactCells;e._constructCell=ie._constructCell;e._destroyLinkedMultiPolygon=ie._destroyLinkedMultiPolygon;e._directedEdgeToBoundary=ie._directedEdgeToBoundary;e._directedEdgeToCells=ie._directedEdgeToCells;e._edgeLengthKm=ie._edgeLengthKm;e._edgeLengthM=ie._edgeLengthM;e._edgeLengthRads=ie._edgeLengthRads;var kg=e._emscripten_replace_memory=ie._emscripten_replace_memory;e._free=ie._free;e._getBaseCellNumber=ie._getBaseCellNumber;e._getDirectedEdgeDestination=ie._getDirectedEdgeDestination;e._getDirectedEdgeOrigin=ie._getDirectedEdgeOrigin;e._getHexagonAreaAvgKm2=ie._getHexagonAreaAvgKm2;e._getHexagonAreaAvgM2=ie._getHexagonAreaAvgM2;e._getHexagonEdgeLengthAvgKm=ie._getHexagonEdgeLengthAvgKm;e._getHexagonEdgeLengthAvgM=ie._getHexagonEdgeLengthAvgM;e._getIcosahedronFaces=ie._getIcosahedronFaces;e._getIndexDigit=ie._getIndexDigit;e._getNumCells=ie._getNumCells;e._getPentagons=ie._getPentagons;e._getRes0Cells=ie._getRes0Cells;e._getResolution=ie._getResolution;e._greatCircleDistanceKm=ie._greatCircleDistanceKm;e._greatCircleDistanceM=ie._greatCircleDistanceM;e._greatCircleDistanceRads=ie._greatCircleDistanceRads;e._gridDisk=ie._gridDisk;e._gridDiskDistances=ie._gridDiskDistances;e._gridDistance=ie._gridDistance;e._gridPathCells=ie._gridPathCells;e._gridPathCellsSize=ie._gridPathCellsSize;e._gridRing=ie._gridRing;e._gridRingUnsafe=ie._gridRingUnsafe;e._i64Add=ie._i64Add;e._i64Subtract=ie._i64Subtract;e._isPentagon=ie._isPentagon;e._isResClassIII=ie._isResClassIII;e._isValidCell=ie._isValidCell;e._isValidDirectedEdge=ie._isValidDirectedEdge;e._isValidIndex=ie._isValidIndex;e._isValidVertex=ie._isValidVertex;e._latLngToCell=ie._latLngToCell;e._llvm_ctlz_i64=ie._llvm_ctlz_i64;e._llvm_maxnum_f64=ie._llvm_maxnum_f64;e._llvm_minnum_f64=ie._llvm_minnum_f64;e._llvm_round_f64=ie._llvm_round_f64;e._localIjToCell=ie._localIjToCell;e._malloc=ie._malloc;e._maxFaceCount=ie._maxFaceCount;e._maxGridDiskSize=ie._maxGridDiskSize;e._maxPolygonToCellsSize=ie._maxPolygonToCellsSize;e._maxPolygonToCellsSizeExperimental=ie._maxPolygonToCellsSizeExperimental;e._memcpy=ie._memcpy;e._memmove=ie._memmove;e._memset=ie._memset;e._originToDirectedEdges=ie._originToDirectedEdges;e._pentagonCount=ie._pentagonCount;e._polygonToCells=ie._polygonToCells;e._polygonToCellsExperimental=ie._polygonToCellsExperimental;e._readInt64AsDoubleFromPointer=ie._readInt64AsDoubleFromPointer;e._res0CellCount=ie._res0CellCount;e._reverseDirectedEdge=ie._reverseDirectedEdge;e._round=ie._round;e._sbrk=ie._sbrk;e._sizeOfCellBoundary=ie._sizeOfCellBoundary;e._sizeOfCoordIJ=ie._sizeOfCoordIJ;e._sizeOfGeoLoop=ie._sizeOfGeoLoop;e._sizeOfGeoPolygon=ie._sizeOfGeoPolygon;e._sizeOfH3Index=ie._sizeOfH3Index;e._sizeOfLatLng=ie._sizeOfLatLng;e._sizeOfLinkedGeoPolygon=ie._sizeOfLinkedGeoPolygon;e._uncompactCells=ie._uncompactCells;e._uncompactCellsSize=ie._uncompactCellsSize;e._vertexToLatLng=ie._vertexToLatLng;e.establishStackSpace=ie.establishStackSpace;var du=e.stackAlloc=ie.stackAlloc,Ug=e.stackRestore=ie.stackRestore,Hg=e.stackSave=ie.stackSave;e.dynCall_iii=ie.dynCall_iii;if(e.asm=ie,e.cwrap=_e,e.setValue=N,e.getValue=U,Qr){cu(Qr)||(Qr=d(Qr));wg(`memory initializer`);var xa=function(J){J.byteLength&&(J=new Uint8Array(J)),ke.set(J,F),e.memoryInitializerRequest&&delete e.memoryInitializerRequest.response,Bg(`memory initializer`)},pu=function(){m(Qr,xa,function(){throw`could not load memory initializer `+Qr})},mu=Ea(Qr);if(mu)xa(mu.buffer);else if(e.memoryInitializerRequest){var gu=function(){var J=e.memoryInitializerRequest,re=J.response;if(J.status!==200&&J.status!==0){var pe=Ea(e.memoryInitializerRequestURL);if(pe)re=pe.buffer;else{console.warn(`a problem seems to have happened with Module.memoryInitializerRequest, status: `+J.status+`, retrying `+Qr),pu();return}}xa(re)};e.memoryInitializerRequest.response?setTimeout(gu,0):e.memoryInitializerRequest.addEventListener(`load`,gu)}else pu()}var Wi;ZA=function J(){Wi||Ca(),Wi||(ZA=J)};function Ca(J){if(J=J||i,xn>0||(pg(),xn>0))return;function re(){Wi||(Wi=!0,!q&&(mg(),gg(),e.onRuntimeInitialized&&e.onRuntimeInitialized(),yg()))}e.setStatus?(e.setStatus(`Running...`),setTimeout(function(){setTimeout(function(){e.setStatus(``)},1),re()},1)):re()}e.run=Ca;function Cn(J){throw e.onAbort&&e.onAbort(J),J+=``,y(J),_(J),q=!0,`abort(`+J+`). Build with -s ASSERTIONS=1 for more info.`}if(e.abort=Cn,e.preInit)for(typeof e.preInit==`function`&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return Ca(),t})(typeof ze==`object`?ze:{});var Ce=`number`;var xe=Ce;var hA=Ce;var we=Ce;var Be=Ce;var Ft=Ce;var ye=Ce;var tx=[[`sizeOfH3Index`,Ce],[`sizeOfLatLng`,Ce],[`sizeOfCellBoundary`,Ce],[`sizeOfGeoLoop`,Ce],[`sizeOfGeoPolygon`,Ce],[`sizeOfLinkedGeoPolygon`,Ce],[`sizeOfCoordIJ`,Ce],[`readInt64AsDoubleFromPointer`,Ce],[`isValidCell`,hA,[we,Be]],[`isValidIndex`,hA,[we,Be]],[`latLngToCell`,xe,[Ce,Ce,Ft,ye]],[`cellToLatLng`,xe,[we,Be,ye]],[`cellToBoundary`,xe,[we,Be,ye]],[`maxGridDiskSize`,xe,[Ce,ye]],[`gridDisk`,xe,[we,Be,Ce,ye]],[`gridDiskDistances`,xe,[we,Be,Ce,ye,ye]],[`gridRing`,xe,[we,Be,Ce,ye]],[`gridRingUnsafe`,xe,[we,Be,Ce,ye]],[`maxPolygonToCellsSize`,xe,[ye,Ft,Ce,ye]],[`polygonToCells`,xe,[ye,Ft,Ce,ye]],[`maxPolygonToCellsSizeExperimental`,xe,[ye,Ft,Ce,ye]],[`polygonToCellsExperimental`,xe,[ye,Ft,Ce,Ce,Ce,ye]],[`cellsToLinkedMultiPolygon`,xe,[ye,Ce,ye]],[`destroyLinkedMultiPolygon`,null,[ye]],[`compactCells`,xe,[ye,ye,Ce,Ce]],[`uncompactCells`,xe,[ye,Ce,Ce,ye,Ce,Ft]],[`uncompactCellsSize`,xe,[ye,Ce,Ce,Ft,ye]],[`isPentagon`,hA,[we,Be]],[`isResClassIII`,hA,[we,Be]],[`getBaseCellNumber`,Ce,[we,Be]],[`getResolution`,Ce,[we,Be]],[`getIndexDigit`,Ce,[we,Be,Ce]],[`constructCell`,xe,[Ce,Ce,ye,ye]],[`maxFaceCount`,xe,[we,Be,ye]],[`getIcosahedronFaces`,xe,[we,Be,ye]],[`cellToParent`,xe,[we,Be,Ft,ye]],[`cellToChildren`,xe,[we,Be,Ft,ye]],[`cellToCenterChild`,xe,[we,Be,Ft,ye]],[`cellToChildrenSize`,xe,[we,Be,Ft,ye]],[`cellToChildPos`,xe,[we,Be,Ft,ye]],[`childPosToCell`,xe,[Ce,Ce,we,Be,Ft,ye]],[`areNeighborCells`,xe,[we,Be,we,Be,ye]],[`cellsToDirectedEdge`,xe,[we,Be,we,Be,ye]],[`getDirectedEdgeOrigin`,xe,[we,Be,ye]],[`getDirectedEdgeDestination`,xe,[we,Be,ye]],[`isValidDirectedEdge`,hA,[we,Be]],[`directedEdgeToCells`,xe,[we,Be,ye]],[`originToDirectedEdges`,xe,[we,Be,ye]],[`directedEdgeToBoundary`,xe,[we,Be,ye]],[`reverseDirectedEdge`,xe,[we,Be,ye]],[`gridDistance`,xe,[we,Be,we,Be,ye]],[`gridPathCells`,xe,[we,Be,we,Be,ye]],[`gridPathCellsSize`,xe,[we,Be,we,Be,ye]],[`cellToLocalIj`,xe,[we,Be,we,Be,Ce,ye]],[`localIjToCell`,xe,[we,Be,ye,Ce,ye]],[`getHexagonAreaAvgM2`,xe,[Ft,ye]],[`getHexagonAreaAvgKm2`,xe,[Ft,ye]],[`getHexagonEdgeLengthAvgM`,xe,[Ft,ye]],[`getHexagonEdgeLengthAvgKm`,xe,[Ft,ye]],[`greatCircleDistanceM`,Ce,[ye,ye]],[`greatCircleDistanceKm`,Ce,[ye,ye]],[`greatCircleDistanceRads`,Ce,[ye,ye]],[`cellAreaM2`,xe,[we,Be,ye]],[`cellAreaKm2`,xe,[we,Be,ye]],[`cellAreaRads2`,xe,[we,Be,ye]],[`edgeLengthM`,xe,[we,Be,ye]],[`edgeLengthKm`,xe,[we,Be,ye]],[`edgeLengthRads`,xe,[we,Be,ye]],[`getNumCells`,xe,[Ft,ye]],[`getRes0Cells`,xe,[ye]],[`res0CellCount`,Ce],[`getPentagons`,xe,[Ce,ye]],[`pentagonCount`,Ce],[`cellToVertex`,xe,[we,Be,Ce,ye]],[`cellToVertexes`,xe,[we,Be,ye]],[`vertexToLatLng`,xe,[we,Be,ye]],[`isValidVertex`,hA,[we,Be]]];var rx=0;var nx=1;var Ax=2;var ix=3;var fd=4;var sx=5;var ox=6;var ax=7;var cx=8;var lx=9;var ux=10;var fx=11;var hx=12;var dx=13;var px=14;var mx=15;var gx=16;var yx=17;var Tx=18;var _x=19;var gt={};gt[rx]=`Success`;gt[nx]=`The operation failed but a more specific error is not available`;gt[Ax]=`Argument was outside of acceptable range`;gt[ix]=`Latitude or longitude arguments were outside of acceptable range`;gt[fd]=`Resolution argument was outside of acceptable range`;gt[sx]=`Cell argument was not valid`;gt[ox]=`Directed edge argument was not valid`;gt[ax]=`Undirected edge argument was not valid`;gt[cx]=`Vertex argument was not valid`;gt[lx]=`Pentagon distortion was encountered`;gt[ux]=`Duplicate input`;gt[fx]=`Cell arguments were not neighbors`;gt[hx]=`Cell arguments had incompatible resolutions`;gt[dx]=`Memory allocation failed`;gt[px]=`Bounds of provided memory were insufficient`;gt[mx]=`Mode or flags argument was not valid`;gt[gx]=`Index argument was not valid`;gt[yx]=`Base cell number was outside of acceptable range`;gt[Tx]=`Child indexing digits invalid`;gt[_x]=`Child indexing digits refer to a deleted subsequence`;var hd=1e3;var bx=1001;var dd=1002;var ks={};ks[hd]=`Unknown unit`;ks[bx]=`Array length out of bounds`;ks[dd]=`Got unexpected null value for H3 index`;var Ex=`Unknown error`;function pd(t,e,r){var A=r&&`value`in r,i=new Error((t[e]||Ex)+` (code: `+e+(A?`, value: `+r.value:``)+`)`);return i.code=e,i}function md(t,e){return pd(gt,t,arguments.length===2?{value:e}:{})}function gd(t,e){return pd(ks,t,arguments.length===2?{value:e}:{})}function Pn(t){if(t!==0)throw md(t)}var xt={};tx.forEach(function(e){xt[e[0]]=ze.cwrap.apply(ze,e)});var dA=16;var yd=4;var cd=4;var dn=8;var xx=8;var Os=xt.sizeOfH3Index();var Td=xt.sizeOfLatLng();var Cx=xt.sizeOfCellBoundary();xt.sizeOfGeoPolygon();xt.sizeOfGeoLoop();var wx=xt.sizeOfLinkedGeoPolygon();xt.sizeOfCoordIJ();var ld={m:`m`,m2:`m2`,km:`km`,km2:`km2`,rads:`rads`,rads2:`rads2`};function Bx(t){if(typeof t!=`number`||t<0||t>15||Math.floor(t)!==t)throw md(fd,t);return t}function vx(t){if(!t)throw gd(dd);return t}Math.pow(2,32)-1;Math.pow(2,31)-1;var Mx=/[^0-9a-fA-F]/;function Dn(t){if(Array.isArray(t)&&t.length===2&&Number.isInteger(t[0])&&Number.isInteger(t[1]))return t;if(typeof t!=`string`||Mx.test(t))return[0,0];var e=parseInt(t.substring(0,t.length-8),dA);return[parseInt(t.substring(t.length-8),dA),e]}function ud(t){if(t>=0)return t.toString(dA);t=t&2147483647;var e=_d(8,t.toString(dA));return e=(parseInt(e[0],dA)+8).toString(dA)+e.substring(1),e}function Ix(t,e){return ud(e)+_d(8,ud(t))}function _d(t,e){for(var r=t-e.length,A=``,i=0;i<r;i++)A+=`0`;return A=A+e,A}function Sx(t,e){e===void 0&&(e=0);var r=ze.getValue(t+Os*e,`i32`),A=ze.getValue(t+Os*e+yd,`i32`);return A?Ix(r,A):null}function Fx(t,e){return e===void 0&&(e=0),ze.getValue(t+dn*e,`double`)}function Lx(t){return xt.readInt64AsDoubleFromPointer(t)}function Rx(t,e,r){ze.HEAPU32.set(Dn(t),e/yd+2*r)}function Px(t,e){for(var r=e.length,A=0;A<r;A++)Rx(e[A],t,A)}function Gs(t){return Gx(ze.getValue(t,`double`))}function B0(t){return[Gs(t),Gs(t+dn)]}function bd(t){return[Gs(t+dn),Gs(t)]}function Dx(t,e,r){for(var A=ze.getValue(t,`i32`),i=t+dn,a=[],d=e?bd:B0,m=0;m<A*2;m+=2)a.push(d(i+dn*m));return r&&a.push(a[0]),a}function Nx(t,e){for(var r=[],A=e?bd:B0,i,a,d,m;t;){for(r.push(i=[]),a=ze.getValue(t,`i8*`);a;){for(i.push(d=[]),m=ze.getValue(a,`i8*`);m;)d.push(A(m)),m=ze.getValue(m+dn*2,`i8*`);e&&d.push(d[0]),a=ze.getValue(a+cd*2,`i8*`)}t=ze.getValue(t+cd*2,`i8*`)}return r}function Ed(t){var e=Dn(t),r=e[0],A=e[1];return!!xt.isPentagon(r,A)}function xd(t){var e=Dn(t),r=e[0],A=e[1];return xt.isValidCell(r,A)?xt.getResolution(r,A):-1}function Cd(t,e,r){var A=ze._malloc(Td);ze.HEAPF64.set([t,e].map(Ox),A/dn);var i=ze._malloc(Os);try{return Pn(xt.latLngToCell(A,r,i)),vx(Sx(i))}finally{ze._free(i),ze._free(A)}}function gi(t){var e=ze._malloc(Td),r=Dn(t),A=r[0],i=r[1];try{return Pn(xt.cellToLatLng(A,i,e)),B0(e)}finally{ze._free(e)}}function wd(t,e){var r=ze._malloc(Cx),A=Dn(t),i=A[0],a=A[1];try{return Pn(xt.cellToBoundary(i,a,r)),Dx(r,e,e)}finally{ze._free(r)}}function Bd(t,e){if(!t||!t.length)return[];var r=t.length,A=ze._calloc(r,Os);Px(A,t);var i=ze._calloc(wx);try{return Pn(xt.cellsToLinkedMultiPolygon(A,r,i)),Nx(i,e)}finally{xt.destroyLinkedMultiPolygon(i),ze._free(i),ze._free(A)}}function vd(t,e){var r=Dn(t),A=r[0],i=r[1],a=Dn(e),d=a[0],m=a[1],y=ze._malloc(xx);try{return Pn(xt.gridDistance(A,i,d,m,y)),Lx(y)}finally{ze._free(y)}}function Md(t,e){Bx(t);var r=ze._malloc(dn);try{switch(e){case ld.m:Pn(xt.getHexagonEdgeLengthAvgM(t,r));break;case ld.km:Pn(xt.getHexagonEdgeLengthAvgKm(t,r));break;default:throw gd(hd,e)}return Fx(r)}finally{ze._free(r)}}function Ox(t){return t*Math.PI/180}function Gx(t){return t*180/Math.PI}function Us(t,e){e=e===void 0?t[0][0]:e;for(let r of t){let A=r[0]-e;A>180?r[0]-=360:A<-180&&(r[0]+=360)}}function kx(t,e,r){let[A,i]=gi(t),a=e.length;Us(e,i);let d=e[0]===e[a-1]?a-1:a;for(let m=0;m<d;m++)e[m][0]=ht(i,e[m][0],r),e[m][1]=ht(A,e[m][1],r)}function Id(t,e,r){let[i,a]=gi(t(e,r));return[a,i]}function v0(t,e=1){let r=wd(t,!0);return e!==1?kx(t,r,e):Us(r),r}function Hs(t){let e=new Float64Array(t.length*2),r=0;for(let A of t)e[r++]=A[0],e[r++]=A[1];return e}var Ux={getPentagon:{type:`accessor`,value:t=>t.pentagon}};var Vx=(()=>{class t extends Ir{indexToBounds(){let{data:r,getPentagon:A}=this.props;return{data:r,_normalize:!1,_windingOrder:`CCW`,positionFormat:`XY`,getPolygon:(i,a)=>{let d=A(i,a);return Hs(id(typeof d==`string`?sd(d):d,{closedRing:!0,segments:`auto`}))}}}}return t.layerName=`A5Layer`,t.defaultProps=Ux,t})();function jx(t){return typeof t==`string`?t.charAt(0).toLowerCase()+t.slice(1):t}function Vs(t){if(Array.isArray(t))return t.map(e=>Vs(e));if(t&&typeof t==`object`){let e={};for(let[r,A]of Object.entries(t))e[jx(r)]=Vs(A);return e}return t}var Sd=`: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`;var Qx=Sd+`\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040`;var zx=`[`+Sd+`][`+Qx+`]*`;var Jx=new RegExp(`^`+zx+`$`);function js(t,e){let r=[],A=e.exec(t);for(;A;){let i=[];i.startIndex=e.lastIndex-A[0].length;let a=A.length;for(let d=0;d<a;d++)i.push(A[d]);r.push(i),A=e.exec(t)}return r}var M0=function(t){let e=Jx.exec(t);return!(e===null||typeof e>`u`)};function Fd(t){return typeof t<`u`}var yi=[`hasOwnProperty`,`toString`,`valueOf`,`__defineGetter__`,`__defineSetter__`,`__lookupGetter__`,`__lookupSetter__`];var Qs=[`__proto__`,`constructor`,`prototype`];var qx={allowBooleanAttributes:!1,unpairedTags:[]};function Nd(t,e){e=Object.assign({},qx,e);let r=[],A=!1,i=!1;t[0]===``&&(t=t.substr(1));for(let a=0;a<t.length;a++)if(t[a]===`<`&&t[a+1]===`?`){if(a+=2,a=Rd(t,a),a.err)return a}else if(t[a]===`<`){let d=a;if(a++,t[a]===`!`){a=Pd(t,a);continue}else{let m=!1;t[a]===`/`&&(m=!0,a++);let y=``;for(;a<t.length&&t[a]!==`>`&&t[a]!==` `&&t[a]!==` `&&t[a]!==`
|
|
3
|
-
`&&t[a]!==`\r`;a++)y+=t[a];if(y=y.trim(),y[y.length-1]===`/`&&(y=y.substring(0,y.length-1),a--),!tC(y)){let x;return y.trim().length===0?x=`Invalid space after '<'.`:x=`Tag '`+y+`' is an invalid name.`,yt(`InvalidTag`,x,Kt(t,a))}let _=Yx(t,a);if(_===!1)return yt(`InvalidAttr`,`Attributes for '`+y+`' have open quote.`,Kt(t,a));let E=_.value;if(a=_.index,E[E.length-1]===`/`){let x=a-E.length;E=E.substring(0,E.length-1);let v=Dd(E,e);if(v===!0)A=!0;else return yt(v.err.code,v.err.msg,Kt(t,x+v.err.line))}else if(m)if(_.tagClosed){if(E.trim().length>0)return yt(`InvalidTag`,`Closing tag '`+y+`' can't have attributes or invalid starting.`,Kt(t,d));if(r.length===0)return yt(`InvalidTag`,`Closing tag '`+y+`' has not been opened.`,Kt(t,d));{let x=r.pop();if(y!==x.tagName){let v=Kt(t,x.tagStartPos);return yt(`InvalidTag`,`Expected closing tag '`+x.tagName+`' (opened in line `+v.line+`, col `+v.col+`) instead of closing tag '`+y+`'.`,Kt(t,d))}r.length==0&&(i=!0)}}else return yt(`InvalidTag`,`Closing tag '`+y+`' doesn't have proper closing.`,Kt(t,a));else{let x=Dd(E,e);if(x!==!0)return yt(x.err.code,x.err.msg,Kt(t,a-E.length+x.err.line));if(i===!0)return yt(`InvalidXml`,`Multiple possible root nodes found.`,Kt(t,a));e.unpairedTags.indexOf(y)!==-1||r.push({tagName:y,tagStartPos:d}),A=!0}for(a++;a<t.length;a++)if(t[a]===`<`)if(t[a+1]===`!`){a++,a=Pd(t,a);continue}else if(t[a+1]===`?`){if(a=Rd(t,++a),a.err)return a}else break;else if(t[a]===`&`){let x=$x(t,a);if(x==-1)return yt(`InvalidChar`,`char '&' is not expected.`,Kt(t,a));a=x}else if(i===!0&&!Ld(t[a]))return yt(`InvalidXml`,`Extra text at the end`,Kt(t,a));t[a]===`<`&&a--}}else{if(Ld(t[a]))continue;return yt(`InvalidChar`,`char '`+t[a]+`' is not expected.`,Kt(t,a))}if(A){if(r.length==1)return yt(`InvalidTag`,`Unclosed tag '`+r[0].tagName+`'.`,Kt(t,r[0].tagStartPos));if(r.length>0)return yt(`InvalidXml`,`Invalid '`+JSON.stringify(r.map(a=>a.tagName),null,4).replace(/\r?\n/g,``)+`' found.`,{line:1,col:1})}else return yt(`InvalidXml`,`Start tag expected.`,1);return!0}function Ld(t){return t===` `||t===` `||t===`
|
|
4
|
-
`||t===`\r`}function Rd(t,e){let r=e;for(;e<t.length;e++)if(t[e]==`?`||t[e]==` `){let A=t.substr(r,e-r);if(e>5&&A===`xml`)return yt(`InvalidXml`,`XML declaration allowed only at the start of the document.`,Kt(t,e));if(t[e]==`?`&&t[e+1]==`>`){e++;break}else continue}return e}function Pd(t,e){if(t.length>e+5&&t[e+1]===`-`&&t[e+2]===`-`){for(e+=3;e<t.length;e++)if(t[e]===`-`&&t[e+1]===`-`&&t[e+2]===`>`){e+=2;break}}else if(t.length>e+8&&t[e+1]===`D`&&t[e+2]===`O`&&t[e+3]===`C`&&t[e+4]===`T`&&t[e+5]===`Y`&&t[e+6]===`P`&&t[e+7]===`E`){let r=1;for(e+=8;e<t.length;e++)if(t[e]===`<`)r++;else if(t[e]===`>`&&(r--,r===0))break}else if(t.length>e+9&&t[e+1]===`[`&&t[e+2]===`C`&&t[e+3]===`D`&&t[e+4]===`A`&&t[e+5]===`T`&&t[e+6]===`A`&&t[e+7]===`[`){for(e+=8;e<t.length;e++)if(t[e]===`]`&&t[e+1]===`]`&&t[e+2]===`>`){e+=2;break}}return e}var Kx=`"`;var Xx=`'`;function Yx(t,e){let r=``,A=``,i=!1;for(;e<t.length;e++){if(t[e]===Kx||t[e]===Xx)A===``?A=t[e]:A!==t[e]||(A=``);else if(t[e]===`>`&&A===``){i=!0;break}r+=t[e]}return A!==``?!1:{value:r,index:e,tagClosed:i}}var Wx=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,`g`);function Dd(t,e){let r=js(t,Wx),A={};for(let i=0;i<r.length;i++){if(r[i][1].length===0)return yt(`InvalidAttr`,`Attribute '`+r[i][2]+`' has no space in starting.`,Ti(r[i]));if(r[i][3]!==void 0&&r[i][4]===void 0)return yt(`InvalidAttr`,`Attribute '`+r[i][2]+`' is without value.`,Ti(r[i]));if(r[i][3]===void 0&&!e.allowBooleanAttributes)return yt(`InvalidAttr`,`boolean attribute '`+r[i][2]+`' is not allowed.`,Ti(r[i]));let a=r[i][2];if(!eC(a))return yt(`InvalidAttr`,`Attribute '`+a+`' is an invalid name.`,Ti(r[i]));if(!Object.prototype.hasOwnProperty.call(A,a))A[a]=1;else return yt(`InvalidAttr`,`Attribute '`+a+`' is repeated.`,Ti(r[i]))}return!0}function Zx(t,e){let r=/\d/;for(t[e]===`x`&&(e++,r=/[\da-fA-F]/);e<t.length;e++){if(t[e]===`;`)return e;if(!t[e].match(r))break}return-1}function $x(t,e){if(e++,t[e]===`;`)return-1;if(t[e]===`#`)return e++,Zx(t,e);let r=0;for(;e<t.length;e++,r++)if(!(t[e].match(/\w/)&&r<20)){if(t[e]===`;`)break;return-1}return e}function yt(t,e,r){return{err:{code:t,msg:e,line:r.line||r,col:r.col}}}function eC(t){return M0(t)}function tC(t){return M0(t)}function Kt(t,e){let r=t.substring(0,e).split(/\r?\n/);return{line:r.length,col:r[r.length-1].length+1}}function Ti(t){return t.startIndex+t[1].length}var I0={cent:`¢`,pound:`£`,curren:`¤`,yen:`¥`,euro:`€`,dollar:`$`,fnof:`ƒ`,inr:`₹`,af:`؋`,birr:`ብር`,peso:`₱`,rub:`₽`,won:`₩`,yuan:`¥`,cedil:`¸`};var _i={amp:`&`,apos:`'`,gt:`>`,lt:`<`,quot:`"`};var S0={nbsp:`\xA0`,copy:`©`,reg:`®`,trade:`™`,mdash:`—`,ndash:`–`,hellip:`…`,laquo:`«`,raquo:`»`,lsquo:`‘`,rsquo:`’`,ldquo:`“`,rdquo:`”`,bull:`•`,para:`¶`,sect:`§`,deg:`°`,frac12:`½`,frac14:`¼`,frac34:`¾`};var pA=Object.freeze({ALLOW:`allow`,BLOCK:`block`,THROW:`throw`});var rC=new Set(`!?\\\\/[]$%{}^&*()<>|+`);function Od(t){if(t[0]===`#`)throw new Error(`[EntityReplacer] Invalid character '#' in entity name: "${t}"`);for(let e of t)if(rC.has(e))throw new Error(`[EntityReplacer] Invalid character '${e}' in entity name: "${t}"`);return t}function bi(...t){let e=Object.create(null);for(let r of t)if(r)for(let A of Object.keys(r)){let i=r[A];if(typeof i==`string`)e[A]=i;else if(i&&typeof i==`object`&&i.val!==void 0){let a=i.val;typeof a==`string`&&(e[A]=a)}}return e}var Nn=`external`;var zs=`base`;var F0=`all`;function nC(t){return!t||t===Nn?new Set([Nn]):t===F0?new Set([F0]):t===zs?new Set([zs]):Array.isArray(t)?new Set(t):new Set([Nn])}var rr=Object.freeze({allow:0,leave:1,remove:2,throw:3});var AC=new Set([9,10,13]);function iC(t){if(!t)return{xmlVersion:1,onLevel:rr.allow,nullLevel:rr.remove};let e=t.xmlVersion===1.1?1.1:1,r=rr[t.onNCR]??rr.allow,A=rr[t.nullNCR]??rr.remove;return{xmlVersion:e,onLevel:r,nullLevel:Math.max(A,rr.remove)}}var Ei=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:A=>A,this._limitTiers=nC(this._limit.applyLimitsTo??Nn),this._numericAllowed=e.numericAllowed??!0,this._baseMap=bi(_i,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 r=iC(e.ncr);this._ncrXmlVersion=r.xmlVersion,this._ncrOnLevel=r.onLevel,this._ncrNullLevel=r.nullLevel,this._onExternalEntity=typeof e.onExternalEntity==`function`?e.onExternalEntity:null,this._onInputEntity=typeof e.onInputEntity==`function`?e.onInputEntity:null}_applyRegistrationHook(e,r,A,i){if(!e)return!0;let a=e(r,A);if(a===pA.BLOCK)return!1;if(a===pA.THROW)throw new Error(`[EntityDecoder] Registration of ${i} entity "&${r};" was rejected by hook`);return!0}setExternalEntities(e){if(e)for(let i of Object.keys(e))Od(i);if(!this._onExternalEntity){this._externalMap=bi(e);return}let r=bi(e),A=Object.create(null);for(let[i,a]of Object.entries(r))this._applyRegistrationHook(this._onExternalEntity,i,a,`external`)&&(A[i]=a);this._externalMap=A}addExternalEntity(e,r){Od(e),typeof r==`string`&&r.indexOf(`&`)===-1&&this._applyRegistrationHook(this._onExternalEntity,e,r,`external`)&&(this._externalMap[e]=r)}addInputEntities(e){if(this._totalExpansions=0,this._expandedLength=0,!this._onInputEntity){this._inputMap=bi(e);return}let r=bi(e),A=Object.create(null);for(let[i,a]of Object.entries(r))this._applyRegistrationHook(this._onInputEntity,i,a,`input`)&&(A[i]=a);this._inputMap=A}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 r=e,A=[],i=e.length,a=0,d=0,m=this._maxTotalExpansions>0,y=this._maxExpandedLength>0,_=m||y;for(;d<i;){if(e.charCodeAt(d)!==38){d++;continue}let x=d+1;for(;x<i&&e.charCodeAt(x)!==59&&x-d<=32;)x++;if(x>=i||e.charCodeAt(x)!==59){d++;continue}let v=e.slice(d+1,x);if(v.length===0){d++;continue}let F,N;if(this._removeSet.has(v))F=``,N===void 0&&(N=Nn);else if(this._leaveSet.has(v)){d++;continue}else if(v.charCodeAt(0)===35){let U=this._resolveNCR(v);if(U===void 0){d++;continue}F=U,N=zs}else{let U=this._resolveName(v);F=U?.value,N=U?.tier}if(F===void 0){d++;continue}if(d>a&&A.push(e.slice(a,d)),A.push(F),a=x+1,d=a,_&&this._tierCounts(N)){if(m&&(this._totalExpansions++,this._totalExpansions>this._maxTotalExpansions))throw new Error(`[EntityReplacer] Entity expansion count limit exceeded: ${this._totalExpansions} > ${this._maxTotalExpansions}`);if(y){let U=F.length-(v.length+2);if(U>0&&(this._expandedLength+=U,this._expandedLength>this._maxExpandedLength))throw new Error(`[EntityReplacer] Expanded content length limit exceeded: ${this._expandedLength} > ${this._maxExpandedLength}`)}}}a<i&&A.push(e.slice(a));let E=A.length===0?e:A.join(``);return this._postCheck(E,r)}_tierCounts(e){return this._limitTiers.has(F0)?!0:this._limitTiers.has(e)}_resolveName(e){if(e in this._inputMap)return{value:this._inputMap[e],tier:Nn};if(e in this._externalMap)return{value:this._externalMap[e],tier:Nn};if(e in this._baseMap)return{value:this._baseMap[e],tier:zs}}_classifyNCR(e){return e===0?this._ncrNullLevel:e>=55296&&e<=57343||this._ncrXmlVersion===1&&e>=1&&e<=31&&!AC.has(e)?rr.remove:-1}_applyNCRAction(e,r,A){switch(e){case rr.allow:return String.fromCodePoint(A);case rr.remove:return``;case rr.leave:return;case rr.throw:throw new Error(`[EntityDecoder] Prohibited numeric character reference &${r}; (U+${A.toString(16).toUpperCase().padStart(4,`0`)})`);default:return String.fromCodePoint(A)}}_resolveNCR(e){let r=e.charCodeAt(1),A;if(r===120||r===88?A=parseInt(e.slice(2),16):A=parseInt(e.slice(1),10),Number.isNaN(A)||A<0||A>1114111)return;let i=this._classifyNCR(A);if(!this._numericAllowed&&i<rr.remove)return;let a=i===-1?this._ncrOnLevel:Math.max(this._ncrOnLevel,i);return this._applyNCRAction(a,e,A)}};var Gd=t=>yi.includes(t)?`__`+t:t;var sC={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(t,e){return e},attributeValueProcessor:function(t,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(t,e,r){return t},captureMetaData:!1,maxNestedTags:100,strictReservedNames:!0,jPath:!0,onDangerousProperty:Gd};function oC(t,e){if(typeof t!=`string`)return;let r=t.toLowerCase();if(yi.some(A=>r===A.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);if(Qs.some(A=>r===A.toLowerCase()))throw new Error(`[SECURITY] Invalid ${e}: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`)}function kd(t,e){return typeof t==`boolean`?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:1e4,maxTotalExpansions:Infinity,maxExpandedLength:1e5,maxEntityCount:1e3,allowedTags:null,tagFilter:null,appliesTo:`all`}:typeof t==`object`&&t!==null?{enabled:t.enabled!==!1,maxEntitySize:Math.max(1,t.maxEntitySize??1e4),maxExpansionDepth:Math.max(1,t.maxExpansionDepth??1e4),maxTotalExpansions:Math.max(1,t.maxTotalExpansions??Infinity),maxExpandedLength:Math.max(1,t.maxExpandedLength??1e5),maxEntityCount:Math.max(1,t.maxEntityCount??1e3),allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null,appliesTo:t.appliesTo??`all`}:kd(!0)}var Ud=function(t){let e=Object.assign({},sC,t),r=[{value:e.attributeNamePrefix,name:`attributeNamePrefix`},{value:e.attributesGroupName,name:`attributesGroupName`},{value:e.textNodeName,name:`textNodeName`},{value:e.cdataPropName,name:`cdataPropName`},{value:e.commentPropName,name:`commentPropName`}];for(let{value:A,name:i}of r)A&&oC(A,i);return e.onDangerousProperty===null&&(e.onDangerousProperty=Gd),e.processEntities=kd(e.processEntities,e.htmlEntities),e.unpairedTagsSet=new Set(e.unpairedTags),e.stopNodes&&Array.isArray(e.stopNodes)&&(e.stopNodes=e.stopNodes.map(A=>typeof A==`string`&&A.startsWith(`*.`)?`..`+A.substring(2):A)),e};var Js;typeof Symbol!=`function`?Js=`@@xmlMetadata`:Js=Symbol(`XML Node Metadata`);var ar=class{constructor(e){this.tagname=e,this.child=[],this[`:@`]=Object.create(null)}add(e,r){e===`__proto__`&&(e=`#__proto__`),this.child.push({[e]:r})}addChild(e,r){e.tagname===`__proto__`&&(e.tagname=`#__proto__`),e[`:@`]&&Object.keys(e[`:@`]).length>0?this.child.push({[e.tagname]:e.child,":@":e[`:@`]}):this.child.push({[e.tagname]:e.child}),r!==void 0&&(this.child[this.child.length-1][Js]={startIndex:r})}static getMetaDataSymbol(){return Js}};var Hd=`:A-Za-z_À-ÖØ-öø-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�`;var aC=Hd+`\\-\\.\\d·̀-ͯ‿-⁀`;var Vd=`:A-Za-z_À-˿Ͱ-ͽͿ-҆҈--⁰-Ⰰ-、-豈-﷏ﷰ-�𐀀-`;var cC=Vd+`\\-\\.\\d·̀-ͯ҇‿-⁀`;var L0=(t,e,r=``)=>{let a=`[${t.replace(`:`,``)}][${e.replace(`:`,``)}]*`;return{name:new RegExp(`^[${t}][${e}]*$`,r),ncName:new RegExp(`^${a}$`,r),qName:new RegExp(`^${a}(?::${a})?$`,r),nmToken:new RegExp(`^[${e}]+$`,r),nmTokens:new RegExp(`^[${e}]+(?:\\s+[${e}]+)*$`,r)}};var lC=L0(Hd,aC);var uC=L0(Vd,cC,`u`);var jd=`:A-Za-z_`;var hC=L0(jd,jd+`\\-\\.\\d`);var dC=(t=`1.0`,e=!1)=>e?hC:t===`1.1`?uC:lC;var R0=(t,{xmlVersion:e=`1.0`,asciiOnly:r=!1}={})=>dC(e,r).qName.test(t);var qs=class{constructor(e,r){this.suppressValidationErr=!e,this.options=e,this.xmlVersion=r||1}setXmlVersion(e=1){this.xmlVersion=e}readDocType(e,r){let A=Object.create(null),i=0;if(e[r+3]===`O`&&e[r+4]===`C`&&e[r+5]===`T`&&e[r+6]===`Y`&&e[r+7]===`P`&&e[r+8]===`E`){r=r+9;let a=1,d=!1,m=!1,y=``;for(;r<e.length;r++)if(e[r]===`<`&&!m){if(d&&On(e,`!ENTITY`,r)){r+=7;let _,E;if([_,E,r]=this.readEntityExp(e,r+1,this.suppressValidationErr),E.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})`);A[_]=E,i++}}else if(d&&On(e,`!ELEMENT`,r)){r+=8;let{index:_}=this.readElementExp(e,r+1);r=_}else if(d&&On(e,`!ATTLIST`,r))r+=8;else if(d&&On(e,`!NOTATION`,r)){r+=9;let{index:_}=this.readNotationExp(e,r+1,this.suppressValidationErr);r=_}else if(On(e,`!--`,r))m=!0;else throw new Error(`Invalid DOCTYPE`);a++,y=``}else if(e[r]===`>`){if(m?e[r-1]===`-`&&e[r-2]===`-`&&(m=!1,a--):a--,a===0)break}else e[r]===`[`?d=!0:y+=e[r];if(a!==0)throw new Error(`Unclosed DOCTYPE`)}else throw new Error(`Invalid Tag instead of DOCTYPE`);return{entities:A,i:r}}readEntityExp(e,r){r=nr(e,r);let A=r;for(;r<e.length&&!/\s/.test(e[r])&&e[r]!==`"`&&e[r]!==`'`;)r++;let i=e.substring(A,r);if(xi(i,{xmlVersion:this.xmlVersion}),r=nr(e,r),!this.suppressValidationErr){if(e.substring(r,r+6).toUpperCase()===`SYSTEM`)throw new Error(`External entities are not supported`);if(e[r]===`%`)throw new Error(`Parameter entities are not supported`)}let a=``;if([r,a]=this.readIdentifierVal(e,r,`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 r--,[i,a,r]}readNotationExp(e,r){r=nr(e,r);let A=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let i=e.substring(A,r);!this.suppressValidationErr&&xi(i,{xmlVersion:this.xmlVersion}),r=nr(e,r);let a=e.substring(r,r+6).toUpperCase();if(!this.suppressValidationErr&&a!==`SYSTEM`&&a!==`PUBLIC`)throw new Error(`Expected SYSTEM or PUBLIC, found "${a}"`);r+=a.length,r=nr(e,r);let d=null,m=null;if(a===`PUBLIC`)[r,d]=this.readIdentifierVal(e,r,`publicIdentifier`),r=nr(e,r),(e[r]===`"`||e[r]===`'`)&&([r,m]=this.readIdentifierVal(e,r,`systemIdentifier`));else if(a===`SYSTEM`&&([r,m]=this.readIdentifierVal(e,r,`systemIdentifier`),!this.suppressValidationErr&&!m))throw new Error(`Missing mandatory system identifier for SYSTEM notation`);return{notationName:i,publicIdentifier:d,systemIdentifier:m,index:--r}}readIdentifierVal(e,r,A){let i=``,a=e[r];if(a!==`"`&&a!==`'`)throw new Error(`Expected quoted string, found "${a}"`);r++;let d=r;for(;r<e.length&&e[r]!==a;)r++;if(i=e.substring(d,r),e[r]!==a)throw new Error(`Unterminated ${A} value`);return r++,[r,i]}readElementExp(e,r){r=nr(e,r);let A=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let i=e.substring(A,r);if(!this.suppressValidationErr&&!R0(i,{xmlVersion:this.xmlVersion}))throw new Error(`Invalid element name: "${i}"`);r=nr(e,r);let a=``;if(e[r]===`E`&&On(e,`MPTY`,r))r+=4;else if(e[r]===`A`&&On(e,`NY`,r))r+=2;else if(e[r]===`(`){r++;let d=r;for(;r<e.length&&e[r]!==`)`;)r++;if(a=e.substring(d,r),e[r]!==`)`)throw new Error(`Unterminated content model`)}else if(!this.suppressValidationErr)throw new Error(`Invalid Element Expression, found "${e[r]}"`);return{elementName:i,contentModel:a.trim(),index:r}}readAttlistExp(e,r){r=nr(e,r);let A=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;let i=e.substring(A,r);for(xi(i,{xmlVersion:this.xmlVersion}),r=nr(e,r),A=r;r<e.length&&!/\s/.test(e[r]);)r++;let a=e.substring(A,r);if(!xi(a,{xmlVersion:this.xmlVersion}))throw new Error(`Invalid attribute name: "${a}"`);r=nr(e,r);let d=``;if(e.substring(r,r+8).toUpperCase()===`NOTATION`){if(d=`NOTATION`,r+=8,r=nr(e,r),e[r]!==`(`)throw new Error(`Expected '(', found "${e[r]}"`);r++;let y=[];for(;r<e.length&&e[r]!==`)`;){let _=r;for(;r<e.length&&e[r]!==`|`&&e[r]!==`)`;)r++;let E=e.substring(_,r);if(E=E.trim(),!xi(E,{xmlVersion:this.xmlVersion}))throw new Error(`Invalid notation name: "${E}"`);y.push(E),e[r]===`|`&&(r++,r=nr(e,r))}if(e[r]!==`)`)throw new Error(`Unterminated list of notations`);r++,d+=` (`+y.join(`|`)+`)`}else{let y=r;for(;r<e.length&&!/\s/.test(e[r]);)r++;d+=e.substring(y,r);if(!this.suppressValidationErr&&![`CDATA`,`ID`,`IDREF`,`IDREFS`,`ENTITY`,`ENTITIES`,`NMTOKEN`,`NMTOKENS`].includes(d.toUpperCase()))throw new Error(`Invalid attribute type: "${d}"`)}r=nr(e,r);let m=``;return e.substring(r,r+8).toUpperCase()===`#REQUIRED`?(m=`#REQUIRED`,r+=8):e.substring(r,r+7).toUpperCase()===`#IMPLIED`?(m=`#IMPLIED`,r+=7):[r,m]=this.readIdentifierVal(e,r,`ATTLIST`),{elementName:i,attributeName:a,attributeType:d,defaultValue:m,index:r}}};var nr=(t,e)=>{for(;e<t.length&&/\s/.test(t[e]);)e++;return e};function On(t,e,r){for(let A=0;A<e.length;A++)if(e[A]!==t[r+A+1])return!1;return!0}function xi(t,e){if(R0(t,{xmlVersion:e}))return t;throw new Error(`Invalid entity name ${t}`)}var pC=[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];var Ks=255;var Xs=new Map;var Qd=65535;var zd=1632;var mA=zd;var mC=Qd-zd+1;var Ys=new Uint8Array(mC).fill(Ks);for(let t of pC)for(let e=0;e<10;e++){let r=t+e;r<=Qd?Ys[r-mA]=e:Xs.set(r,e)}var Jd=48;var qd=57;var Kd=45;var Ws=new Set([8722,65293,65123]);function gC(t){if(typeof t!=`string`)return t;let e=t.length;if(e===0)return t;let r=-1;for(let i=0;i<e;i++){let a=t.charCodeAt(i);if(!(a>=Jd&&a<=qd||a===Kd)){if(a<mA){if(Ws.has(a)){r=i;break}continue}if(a>=55296&&a<=56319){if(i+1<e){let d=t.charCodeAt(i+1);if(d>=56320&&d<=57343){let m=65536+(a-55296<<10)+(d-56320);if(Xs.has(m)){r=i;break}}}continue}if(Ys[a-mA]!==Ks||Ws.has(a)){r=i;break}}}if(r===-1)return t;let A=[];r>0&&A.push(t.slice(0,r));for(let i=r;i<e;i++){let a=t.charCodeAt(i);if(a>=Jd&&a<=qd||a===Kd){A.push(t[i]);continue}if(a<mA){A.push(Ws.has(a)?`-`:t[i]);continue}if(a>=55296&&a<=56319){if(i+1<e){let m=t.charCodeAt(i+1);if(m>=56320&&m<=57343){let y=65536+(a-55296<<10)+(m-56320),_=Xs.get(y);if(_!==void 0){A.push(String.fromCharCode(_+48)),i++;continue}}}A.push(t[i]);continue}if(Ws.has(a)){A.push(`-`);continue}let d=Ys[a-mA];A.push(d!==Ks?String.fromCharCode(d+48):t[i])}return A.join(``)}var Xd=gC;var yC=/^[-+]?0x[a-fA-F0-9]+$/;var TC=/^0b[01]+$/;var _C=/^0o[0-7]+$/;var bC=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/;var EC={hex:!0,binary:!1,octal:!1,leadingZeros:!0,decimalPoint:`.`,eNotation:!0,infinity:`original`,unicode:!1};function D0(t,e={}){if(e=Object.assign({},EC,e),!t||typeof t!=`string`)return t;let r=t.trim();if(r.length===0)return t;if(e.skipLike!==void 0&&e.skipLike.test(r))return t;if(r===`0`||e.unicode&&(r=Xd(r),r===`0`))return 0;if(e.hex&&yC.test(r))return P0(r,16);if(e.binary&&TC.test(r))return P0(r,2);if(e.octal&&_C.test(r))return P0(r,8);if(isFinite(r)){if(r.includes(`e`)||r.includes(`E`))return CC(t,r,e);{let A=bC.exec(r);if(A){let i=A[1]||``,a=A[2],d=wC(A[3]),m=i?t[a.length+1]===`.`:t[a.length]===`.`;if(!e.leadingZeros&&(a.length>1||a.length===1&&!m))return t;{let y=Number(r),_=String(y);if(y===0)return y;if(_.search(/[eE]/)!==-1)return e.eNotation?y:t;if(r.indexOf(`.`)!==-1)return _===`0`||_===d||_===`${i}${d}`?y:t;let E=a?d:r;return a?E===_||i+E===_?y:t:E===_||E===i+_?y:t}}else return t}}else return BC(t,Number(r),e)}var xC=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/;function CC(t,e,r){if(!r.eNotation)return t;let A=e.match(xC);if(A){let i=A[1]||``,a=A[3].indexOf(`e`)===-1?`E`:`e`,d=A[2],m=i?t[d.length+1]===a:t[d.length]===a;return d.length>1&&m?t:d.length===1&&(A[3].startsWith(`.${a}`)||A[3][0]===a)?Number(e):d.length>0?r.leadingZeros&&!m?(e=(A[1]||``)+A[3],Number(e)):t:Number(e)}else return t}function wC(t){if(t&&t.indexOf(`.`)!==-1){let e=t.length;for(;e>0&&t.charCodeAt(e-1)===48;)e--;return t=t.slice(0,e),t===`.`?t=`0`:t[0]===`.`?t=`0`+t:t[t.length-1]===`.`&&(t=t.substring(0,t.length-1)),t}return t}function P0(t,e){let r=t.trim();if((e===2||e===8)&&(t=r.substring(2)),parseInt)return parseInt(t,e);if(Number.parseInt)return Number.parseInt(t,e);if(window&&window.parseInt)return window.parseInt(t,e);throw new Error(`parseInt, Number.parseInt, window.parseInt are not supported`)}function BC(t,e,r){let A=e===Infinity;switch(r.infinity.toLowerCase()){case`null`:return null;case`infinity`:return e;case`string`:return A?`Infinity`:`-Infinity`;default:return t}}function N0(t){return typeof t==`function`?t:Array.isArray(t)?e=>{for(let r of t)if(typeof r==`string`&&e===r||r instanceof RegExp&&r.test(e))return!0}:()=>!1}var gA=class{constructor(e,r={},A){this.pattern=e,this.separator=r.separator||`.`,this.segments=this._parse(e),this.data=A,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 r=[],A=0,i=``;for(;A<e.length;)e[A]===this.separator?A+1<e.length&&e[A+1]===this.separator?(i.trim()&&(r.push(this._parseSegment(i.trim())),i=``),r.push({type:`deep-wildcard`}),A+=2):(i.trim()&&r.push(this._parseSegment(i.trim())),i=``,A++):(i+=e[A],A++);return i.trim()&&r.push(this._parseSegment(i.trim())),r}_parseSegment(e){let r={type:`tag`},A=null,i=e,a=e.match(/^([^\[]+)(\[[^\]]*\])(.*)$/);if(a&&(i=a[1]+a[3],a[2])){let E=a[2].slice(1,-1);E&&(A=E)}let d,m=i;if(i.includes(`::`)){let E=i.indexOf(`::`);if(d=i.substring(0,E).trim(),m=i.substring(E+2).trim(),!d)throw new Error(`Invalid namespace in pattern: ${e}`)}let y,_=null;if(m.includes(`:`)){let E=m.lastIndexOf(`:`),x=m.substring(0,E).trim(),v=m.substring(E+1).trim();[`first`,`last`,`odd`,`even`].includes(v)||/^nth\(\d+\)$/.test(v)?(y=x,_=v):y=m}else y=m;if(!y)throw new Error(`Invalid segment pattern: ${e}`);if(r.tag=y,d&&(r.namespace=d),A)if(A.includes(`=`)){let E=A.indexOf(`=`);r.attrName=A.substring(0,E).trim(),r.attrValue=A.substring(E+1).trim()}else r.attrName=A.trim();if(_){let E=_.match(/^nth\((\d+)\)$/);E?(r.position=`nth`,r.positionValue=parseInt(E[1],10)):r.position=_}return r}get length(){return this.segments.length}hasDeepWildcard(){return this._hasDeepWildcard}hasAttributeCondition(){return this._hasAttributeCondition}hasPositionSelector(){return this._hasPositionSelector}toString(){return this.pattern}};var Ci=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 d=a.tag;this._deepByTerminalTag.has(d)||this._deepByTerminalTag.set(d,[]),this._deepByTerminalTag.get(d).push(e)}else this._deepWildcards.push(e);return this}let r=e.length,i=e.segments[e.segments.length-1]?.tag;if(!i||i===`*`)this._wildcardByDepth.has(r)||this._wildcardByDepth.set(r,[]),this._wildcardByDepth.get(r).push(e);else{let a=`${r}:${i}`;this._byDepthAndTag.has(a)||this._byDepthAndTag.set(a,[]),this._byDepthAndTag.get(a).push(e)}return this}addAll(e){for(let r of e)this.add(r);return this}has(e){return this._patterns.has(e.pattern)}get size(){return this._patterns.size}seal(){return this._sealed=!0,this}get isSealed(){return this._sealed}matchesAny(e){return this.findMatch(e)!==null}findMatch(e){let r=e.getDepth(),A=e.getCurrentTag(),i=`${r}:${A}`,a=this._byDepthAndTag.get(i);if(a){for(let y=0;y<a.length;y++)if(e.matches(a[y]))return a[y]}let d=this._wildcardByDepth.get(r);if(d){for(let y=0;y<d.length;y++)if(e.matches(d[y]))return d[y]}let m=this._deepByTerminalTag.get(A);if(m){for(let y=0;y<m.length;y++)if(e.matches(m[y]))return m[y]}for(let y=0;y<this._deepWildcards.length;y++)if(e.matches(this._deepWildcards[y]))return this._deepWildcards[y];return null}};var O0=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 r=this._matcher.path;if(r.length!==0)return r[r.length-1].values?.[e]}hasAttr(e){let r=this._matcher.path;if(r.length===0)return!1;let A=r[r.length-1];return A.values!==void 0&&e in A.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,r=!0){return this._matcher.toString(e,r)}toArray(){return this._matcher.path.map(e=>e.tag)}matches(e){return this._matcher.matches(e)}matchesAny(e){return e.matchesAny(this._matcher)}};var wi=class{constructor(e={}){this.separator=e.separator||`.`,this.path=[],this.siblingStacks=[],this._pathStringCache=null,this._view=new O0(this),this._keptAttrs=[]}push(e,r=null,A=null,i=null){this._pathStringCache=null,this.path.length>0&&(this.path[this.path.length-1].values=void 0);let a=this.path.length,d=this.siblingStacks[a];d||(d={counts:new Map,total:0},this.siblingStacks[a]=d);let m=A?`${A}:${e}`:e,y=d.counts.get(m)||0,_=d.total;d.counts.set(m,y+1),d.total++;let E={tag:e,position:_,counter:y};A!=null&&(E.namespace=A),r!=null&&(E.values=r),this.path.push(E);let x=this.path.length,v=i!==null?i.keep:null;if(v!=null&&v.length>0&&r)for(let F=0;F<v.length;F++){let N=v[F];r[N]!==void 0&&this._keptAttrs.push({depth:x,name:N,value:r[N]})}}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 r=this.path.length+1;for(;this._keptAttrs.length>0&&this._keptAttrs[this._keptAttrs.length-1].depth>=r;)this._keptAttrs.pop();return e}updateCurrent(e){if(this.path.length>0){let r=this.path[this.path.length-1];e!=null&&(r.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 r=this.path[this.path.length-1];return r.values!==void 0&&e in r.values}getAnyParentAttr(e){let r=this._keptAttrs;for(let A=r.length-1;A>=0;A--)if(r[A].name===e)return r[A].value}hasAnyParentAttr(e){let r=this._keptAttrs;for(let A=r.length-1;A>=0;A--)if(r[A].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,r=!0){let A=e||this.separator;if(A===this.separator&&r===!0){if(this._pathStringCache!==null)return this._pathStringCache;let a=this.path.map(d=>d.namespace?`${d.namespace}:${d.tag}`:d.tag).join(A);return this._pathStringCache=a,a}return this.path.map(a=>r&&a.namespace?`${a.namespace}:${a.tag}`:a.tag).join(A)}toArray(){return this.path.map(e=>e.tag)}reset(){this._pathStringCache=null,this.path=[],this.siblingStacks=[],this._keptAttrs=[]}matches(e){let r=e.segments;return r.length===0?!1:e.hasDeepWildcard()?this._matchWithDeepWildcard(r):this._matchSimple(r)}_matchSimple(e){if(this.path.length!==e.length)return!1;for(let r=0;r<e.length;r++)if(!this._matchSegment(e[r],this.path[r],r===this.path.length-1))return!1;return!0}_matchWithDeepWildcard(e){let r=this.path.length-1,A=e.length-1;for(;A>=0&&r>=0;){let i=e[A];if(i.type===`deep-wildcard`){if(A--,A<0)return!0;let a=e[A],d=!1;for(let m=r;m>=0;m--)if(this._matchSegment(a,this.path[m],m===this.path.length-1)){r=m-1,A--,d=!0;break}if(!d)return!1}else{if(!this._matchSegment(i,this.path[r],r===this.path.length-1))return!1;r--,A--}}return A<0}_matchSegment(e,r,A){if(e.tag!==`*`&&e.tag!==r.tag||e.namespace!==void 0&&e.namespace!==`*`&&e.namespace!==r.namespace||e.attrName!==void 0&&(!A||!r.values||!(e.attrName in r.values)||e.attrValue!==void 0&&String(r.values[e.attrName])!==String(e.attrValue)))return!1;if(e.position!==void 0){if(!A)return!1;let i=r.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)}snapshot(){return{path:this.path.map(e=>r({},e)),siblingStacks:this.siblingStacks.map(e=>e&&{counts:new Map(e.counts),total:e.total}),keptAttrs:this._keptAttrs.map(e=>r({},e))}}restore(e){this._pathStringCache=null,this.path=e.path.map(r$2=>r({},r$2)),this.siblingStacks=e.siblingStacks.map(r=>r&&{counts:new Map(r.counts),total:r.total}),this._keptAttrs=(e.keptAttrs||[]).map(r$3=>r({},r$3))}readOnly(){return this._view}};var yA=[{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 — 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 — 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 — 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() — 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= — can hijack all relative URLs on a page`,pattern:/<base[\s>]/i},{id:`html-meta-refresh`,description:`<meta http-equiv="refresh" — 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 — 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 — can be used for phishing / credential harvesting injection`,pattern:/<form[\s>/]/i}];var TA=[{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 — can define entities`,pattern:/<!DOCTYPE(?:[\s[]|$)/i},{id:`xml-entity-system`,description:`SYSTEM keyword — used in external entity declarations (XXE)`,pattern:/\bSYSTEM\s+["']/i},{id:`xml-entity-public`,description:`PUBLIC keyword — used in external entity declarations (XXE)`,pattern:/\bPUBLIC\s+["']/i},{id:`xml-entity-declaration`,description:`<!ENTITY declaration — 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 — can redefine namespaces to confuse parsers`,pattern:/\bxmlns\s*(?::\w{1,40})?\s*=/i},{id:`xml-comment-injection`,description:`<!-- comment injection — 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:/\?>/}];var G0=[{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: — classic SVG XSS via <a> or <use>`,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 — 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" — 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:..." — 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= — filter primitive that can load external resources`,pattern:/<feImage[\s\S]{0,80}(?: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}];var Bi=[{id:`sql-block-comment-open`,description:`SQL block comment open: /* ... */ — unusual in legitimate user text`,pattern:/\/\*/},{id:`sql-union-select`,description:`UNION SELECT — 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 — destructive DDL injection`,pattern:/\bDROP\s{1,20}TABLE\b/i},{id:`sql-drop-database`,description:`DROP DATABASE — destructive DDL injection`,pattern:/\bDROP\s{1,20}DATABASE\b/i},{id:`sql-insert-into`,description:`INSERT INTO — data injection`,pattern:/\bINSERT\s{1,20}INTO\b/i},{id:`sql-delete-from`,description:`DELETE FROM — data deletion injection`,pattern:/\bDELETE\s{1,20}FROM\b/i},{id:`sql-update-set`,description:`UPDATE ... SET — data modification injection`,pattern:/\bUPDATE\b[\s\S]{1,60}\bSET\b/i},{id:`sql-exec-xp`,description:`EXEC xp_ — 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 — used to obfuscate injected strings`,pattern:/\bCHAR\s*\(\s*\d{1,3}/i},{id:`sql-information-schema`,description:`INFORMATION_SCHEMA — reconnaissance query for table/column enumeration`,pattern:/\bINFORMATION_SCHEMA\b/i}];var k0=[{id:`shell-path-traversal-unix`,description:`Unix path traversal: ../ — climbing the directory tree`,pattern:/\.\.\//},{id:`shell-path-traversal-windows`,description:`Windows path traversal: ..\\ — 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 — 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} — can be abused for injection",pattern:/\$\{/},{id:`shell-redirect-out`,description:`Output redirection: cmd > file or cmd >> file`,pattern:/>{1,2}/},{id:`shell-redirect-in`,description:`Input redirection: cmd < file`,pattern:/</},{id:`shell-newline-injection`,description:`Newline injection: \\n or \\r — can inject new shell commands`,pattern:/[\n\r]/},{id:`shell-glob-star`,description:`Glob expansion: * or ? — 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 — can exfiltrate data or download payloads`,pattern:/\b(?:curl|wget)\s+(?:https?:\/\/|ftp:\/\/|-)/i}];var U0=[{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*)+ — catastrophic backtracking`,pattern:/\([^)]*\*[^)]*\)[*+]/},{id:`redos-nested-groups`,description:`Doubly nested quantified groups: ((a+)+) — guaranteed catastrophic`,pattern:/\(\([^)]{0,40}\)[+*]\)[+*]/},{id:`redos-alternation-overlap`,description:`Overlapping alternation under quantifier: (a|a)+ — ambiguous NFA paths`,pattern:/\(([^|()]{1,20})\|(?:\1)(?:\|[^|()]{1,20}){0,5}\)[+*?]{1,2}/},{id:`redos-star-plus-concat`,description:`(x*x)+ pattern — triggers super-linear backtracking`,pattern:/\([^)]{0,10}\*[^)]{0,10}\)[+*]/},{id:`redos-dot-star-greedy`,description:`(.*){n,} or (.+){n,} — repeated greedy dot quantifiers`,pattern:/\(\.[*+]\)\{?\d/},{id:`redos-large-repetition`,description:`Very large fixed or range repetition count {1000,} or {1000,n} — denial of service via backtracking`,pattern:/\{\d{4,}(?:,\d*)?\}/},{id:`redos-catastrophic-alternation`,description:`Long alternation with many similar branches — polynomial backtracking risk`,pattern:/\([^)]{0,200}(?:\|[^|)]{0,50}){9,}\)/}];var cr=`["'\\s]*:`;var H0=[{id:`nosql-where-operator`,description:`$where — executes arbitrary JavaScript server-side in MongoDB`,pattern:new RegExp(`\\$where${cr}`,`i`)},{id:`nosql-ne-operator`,description:`$ne — "not equal" operator used to bypass equality checks`,pattern:new RegExp(`\\$ne${cr}`,`i`)},{id:`nosql-gt-operator`,description:`$gt — "greater than" used to bypass password/value checks`,pattern:new RegExp(`\\$gte?${cr}`,`i`)},{id:`nosql-lt-operator`,description:`$lt / $lte — "less than" bypass variants`,pattern:new RegExp(`\\$lte?${cr}`,`i`)},{id:`nosql-regex-operator`,description:`$regex — can be used to extract data character by character (blind injection)`,pattern:new RegExp(`\\$regex${cr}`,`i`)},{id:`nosql-or-operator`,description:`$or — logical OR; used to create always-true conditions`,pattern:new RegExp(`\\$or${cr}\\s*\\[`,`i`)},{id:`nosql-and-operator`,description:`$and — logical AND operator injection`,pattern:new RegExp(`\\$and${cr}\\s*\\[`,`i`)},{id:`nosql-nor-operator`,description:`$nor — logical NOR operator injection`,pattern:new RegExp(`\\$nor${cr}\\s*\\[`,`i`)},{id:`nosql-exists-operator`,description:`$exists — can enumerate fields to determine schema`,pattern:new RegExp(`\\$exists${cr}`,`i`)},{id:`nosql-in-operator`,description:`$in — matches any value in a list; can enumerate values`,pattern:new RegExp(`\\$in${cr}\\s*\\[`,`i`)},{id:`nosql-expr-operator`,description:`$expr — allows aggregation expressions in queries (MongoDB 3.6+)`,pattern:new RegExp(`\\$expr${cr}`,`i`)},{id:`nosql-function-operator`,description:`$function — executes arbitrary JavaScript in MongoDB 4.4+`,pattern:new RegExp(`\\$function${cr}`,`i`)},{id:`nosql-accumulator-operator`,description:`$accumulator — custom aggregation with arbitrary JS execution`,pattern:new RegExp(`\\$accumulator${cr}`,`i`)},{id:`nosql-proto-pollution`,description:`__proto__ — prototype pollution via object key injection`,pattern:/__proto__/},{id:`nosql-constructor-prototype`,description:`constructor.prototype — alternative prototype pollution vector (dot notation or JSON key)`,pattern:/constructor[\s"':.,{\[]*prototype/i},{id:`nosql-proto-bracket`,description:`["__proto__"] — bracket-notation prototype pollution`,pattern:/\[["']__proto__["']\]/}];var V0=[{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 — 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:...} — 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}} — Jinja2, Twig, Handlebars, etc.`,pattern:/\{\{[\s\S]{0,80}\}\}/},{id:`log-ssti-hash-brace`,description:`SSTI hash-brace: #{expression} — Thymeleaf, Velocity, Ruby ERB`,pattern:/#\{[\s\S]{0,80}\}/},{id:`log-ssti-dollar-brace`,description:"SSTI/EL injection: ${expression with operators or method calls} — 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 %> — Ruby ERB, ASP`,pattern:/<%=[\s\S]{0,80}%>/},{id:`log-null-byte`,description:`Null byte: \\x00 or %00 — can truncate log entries in C-backed loggers`,pattern:/\x00|%00/},{id:`log-ansi-escape`,description:`ANSI escape sequence: ESC[ — can manipulate terminal output when logs are tailed`,pattern:/\x1b\[/}];var DC=[{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}];var j0=[...Bi,...DC];yA.label=`HTML`;TA.label=`XML`;G0.label=`SVG`;Bi.label=`SQL`;j0.label=`SQL-STRICT`;k0.label=`SHELL`;U0.label=`REDOS`;H0.label=`NOSQL`;V0.label=`LOG`;Object.freeze({HTML:yA,XML:TA,SVG:G0,SQL:Bi,"SQL-STRICT":j0,SHELL:k0,REDOS:U0,NOSQL:H0,LOG:V0});function OC(t){if(typeof t!=`string`)throw new TypeError(`is-unsafe: first argument must be a string, got ${typeof t}`)}function GC(t){if(!(t instanceof RegExp)){if(Array.isArray(t)){if(t.length===0)throw new TypeError(`is-unsafe: context must not be an empty array`);if(Array.isArray(t[0])){for(let e of t)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 t}`)}}function kC(t){return t instanceof RegExp?{lists:null,regex:t}:Array.isArray(t[0])?{lists:t,regex:null}:{lists:[t],regex:null}}function UC(t,e){let r=e.label??`CUSTOM`;for(let A of e)if(A.pattern.test(t))return{context:r,id:A.id,description:A.description,pattern:A.pattern};return null}function Yd(t,e){OC(t),GC(e);let{lists:r,regex:A}=kC(e);if(A)return A.test(t);for(let i of r)if(UC(t,i)!==null)return!0;return!1}function HC(t,e){if(!t)return{};let r=e.attributesGroupName?t[e.attributesGroupName]:t;if(!r)return{};let A={};for(let i in r)if(i.startsWith(e.attributeNamePrefix)){let a=i.substring(e.attributeNamePrefix.length);A[a]=r[i]}else A[i]=r[i];return A}function VC(t){if(!t||typeof t!=`string`)return;let e=t.indexOf(`:`);if(e!==-1&&e>0){let r=t.substring(0,e);if(r!==`xmlns`)return r}}var Zs=class{constructor(e,r$4){this.options=e,this.currentNode=null,this.tagsNodeStack=[],this.parseXml=qC,this.parseTextData=jC,this.resolveNameSpace=QC,this.buildAttributesMap=JC,this.isItStopNode=WC,this.replaceEntitiesValue=XC,this.readStopNodeData=ew,this.saveTextToParentTag=YC,this.addChild=KC,this.ignoreAttributesFn=N0(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.doctypefound=!1;let A=r({},_i);this.options.entityDecoder?this.entityDecoder=this.options.entityDecoder:(typeof this.options.htmlEntities==`object`?A=this.options.htmlEntities:this.options.htmlEntities===!0&&(A=r(r({},S0),I0)),this.entityDecoder=new Ei({namedEntities:r(r({},A),r$4),numericAllowed:this.options.htmlEntities,limit:{maxTotalExpansions:this.options.processEntities.maxTotalExpansions,maxExpandedLength:this.options.processEntities.maxExpandedLength,applyLimitsTo:this.options.processEntities.appliesTo},onInputEntity:(a,d)=>Yd(d,[yA,TA])?pA.BLOCK:pA.ALLOW})),this.matcher=new wi,this.readonlyMatcher=this.matcher.readOnly(),this.isCurrentNodeStopNode=!1,this.stopNodeExpressionsSet=new Ci;let i=this.options.stopNodes;if(i&&i.length>0){for(let a=0;a<i.length;a++){let d=i[a];typeof d==`string`?this.stopNodeExpressionsSet.add(new gA(d)):d instanceof gA&&this.stopNodeExpressionsSet.add(d)}this.stopNodeExpressionsSet.seal()}}};function jC(t,e,r,A,i,a,d){let m=this.options;if(t!==void 0&&(m.trimValues&&!A&&(t=t.trim()),t.length>0)){d||(t=this.replaceEntitiesValue(t,e,r));let y=m.jPath?r.toString():r,_=m.tagValueProcessor(e,t,y,i,a);return _==null?t:typeof _!=typeof t||_!==t?_:m.trimValues||t.trim()===t?J0(t,m.parseTagValue,m.numberParseOptions):t}}function QC(t){if(this.options.removeNSPrefix){let e=t.split(`:`),r=t.charAt(0)===`/`?`/`:``;if(e[0]===`xmlns`)return``;e.length===2&&(t=r+e[1])}return t}var zC=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,`gm`);function JC(t,e,r,A=!1){let i=this.options;if(A===!0||i.ignoreAttributes!==!0&&typeof t==`string`){let a=js(t,zC),d=a.length,m={},y=new Array(d),_=!1,E={};for(let F=0;F<d;F++){let N=this.resolveNameSpace(a[F][1]),U=a[F][4];if(N.length&&U!==void 0){let q=U;i.trimValues&&(q=q.trim()),q=this.replaceEntitiesValue(q,r,this.readonlyMatcher),y[F]=q,E[N]=q,_=!0}}_&&typeof e==`object`&&e.updateCurrent&&e.updateCurrent(E);let x=i.jPath?e.toString():this.readonlyMatcher,v=!1;for(let F=0;F<d;F++){let N=this.resolveNameSpace(a[F][1]);if(this.ignoreAttributesFn(N,x))continue;let U=i.attributeNamePrefix+N;if(N.length)if(i.transformAttributeName&&(U=i.transformAttributeName(U)),U=Wd(U,i),a[F][4]!==void 0){let q=y[F],X=i.attributeValueProcessor(N,q,x);X==null?m[U]=q:typeof X!=typeof q||X!==q?m[U]=X:m[U]=J0(q,i.parseAttributeValue,i.numberParseOptions),v=!0}else i.allowBooleanAttributes&&(m[U]=!0,v=!0)}if(!v)return;if(i.attributesGroupName&&!i.preserveOrder){let F={};return F[i.attributesGroupName]=m,F}return m}}var qC=function(t){t=t.replace(/\r\n?/g,`
|
|
5
|
-
`);let e=new ar(`!xml`),r=e,A=``;this.matcher.reset(),this.entityDecoder.reset(),this.entityExpansionCount=0,this.currentExpandedLength=0,this.doctypefound=!1;let i=this.options,a=new qs(i.processEntities),d=t.length;for(let m=0;m<d;m++)if(t[m]===`<`){let _=t.charCodeAt(m+1);if(_===47){let E=_A(t,`>`,m,`Closing Tag is not closed.`),x=t.substring(m+2,E).trim();if(i.removeNSPrefix){let F=x.indexOf(`:`);F!==-1&&(x=x.substr(F+1))}x=Q0(i.transformTagName,x,``,i).tagName,r&&(A=this.saveTextToParentTag(A,r,this.readonlyMatcher));let v=this.matcher.getCurrentTag();if(x&&i.unpairedTagsSet.has(x))throw new Error(`Unpaired tag can not be used as closing tag: </${x}>`);v&&i.unpairedTagsSet.has(v)&&(this.matcher.pop(),this.tagsNodeStack.pop()),this.matcher.pop(),this.isCurrentNodeStopNode=!1,r=this.tagsNodeStack.pop(),A=``,m=E}else if(_===63){let E=z0(t,m,!1,`?>`);if(!E)throw new Error(`Pi Tag is not closed.`);A=this.saveTextToParentTag(A,r,this.readonlyMatcher);let x=this.buildAttributesMap(E.tagExp,this.matcher,E.tagName,!0);if(x){let v=x[this.options.attributeNamePrefix+`version`];this.entityDecoder.setXmlVersion(Number(v)||1),a.setXmlVersion(Number(v)||1)}if(!(i.ignoreDeclaration&&E.tagName===`?xml`||i.ignorePiTags)){let v=new ar(E.tagName);v.add(i.textNodeName,``),E.tagName!==E.tagExp&&E.attrExpPresent&&i.ignoreAttributes!==!0&&(v[`:@`]=x),this.addChild(r,v,this.readonlyMatcher,m)}m=E.closeIndex+1}else if(_===33&&t.charCodeAt(m+2)===45&&t.charCodeAt(m+3)===45){let E=_A(t,`-->`,m+4,`Comment is not closed.`);if(i.commentPropName){let x=t.substring(m+4,E-2);A=this.saveTextToParentTag(A,r,this.readonlyMatcher),r.add(i.commentPropName,[{[i.textNodeName]:x}])}m=E}else if(_===33&&t.charCodeAt(m+2)===68){if(this.doctypefound)throw new Error(`Multiple DOCTYPE declarations found.`);this.doctypefound=!0;let E=a.readDocType(t,m);this.entityDecoder.addInputEntities(E.entities),m=E.i}else if(_===33&&t.charCodeAt(m+2)===91){let E=_A(t,`]]>`,m,`CDATA is not closed.`)-2,x=t.substring(m+9,E);A=this.saveTextToParentTag(A,r,this.readonlyMatcher);let v=this.parseTextData(x,r.tagname,this.readonlyMatcher,!0,!1,!0,!0);v??=``,i.cdataPropName?r.add(i.cdataPropName,[{[i.textNodeName]:x}]):r.add(i.textNodeName,v),m=E+2}else{let E=z0(t,m,i.removeNSPrefix);if(!E){let Te=t.substring(Math.max(0,m-50),Math.min(d,m+50));throw new Error(`readTagExp returned undefined at position ${m}. Context: "${Te}"`)}let x=E.tagName,v=E.rawTagName,F=E.tagExp,N=E.attrExpPresent,U=E.closeIndex;if({tagName:x,tagExp:F}=Q0(i.transformTagName,x,F,i),i.strictReservedNames&&(x===i.commentPropName||x===i.cdataPropName||x===i.textNodeName||x===i.attributesGroupName))throw new Error(`Invalid tag name: ${x}`);r&&A&&r.tagname!==`!xml`&&(A=this.saveTextToParentTag(A,r,this.readonlyMatcher,!1));let q=r;q&&i.unpairedTagsSet.has(q.tagname)&&(r=this.tagsNodeStack.pop(),this.matcher.pop());let X=!1;F.length>0&&F.lastIndexOf(`/`)===F.length-1&&(X=!0,x[x.length-1]===`/`?(x=x.substr(0,x.length-1),F=x):F=F.substr(0,F.length-1),N=x!==F);let Z=null,_e;_e=VC(v),x!==e.tagname&&this.matcher.push(x,{},_e),x!==F&&N&&(Z=this.buildAttributesMap(F,this.matcher,x),Z&&HC(Z,i)),x!==e.tagname&&(this.isCurrentNodeStopNode=this.isItStopNode());let be=m;if(this.isCurrentNodeStopNode){let Te=``;if(X)m=E.closeIndex;else if(i.unpairedTagsSet.has(x))m=E.closeIndex;else{let se=this.readStopNodeData(t,v,U+1);if(!se)throw new Error(`Unexpected end of ${v}`);m=se.i,Te=se.tagContent}let Ee=new ar(x);Z&&(Ee[`:@`]=Z),Ee.add(i.textNodeName,Te),this.matcher.pop(),this.isCurrentNodeStopNode=!1,this.addChild(r,Ee,this.readonlyMatcher,be)}else{if(X){({tagName:x,tagExp:F}=Q0(i.transformTagName,x,F,i));let Te=new ar(x);Z&&(Te[`:@`]=Z),this.addChild(r,Te,this.readonlyMatcher,be),this.matcher.pop(),this.isCurrentNodeStopNode=!1}else if(i.unpairedTagsSet.has(x)){let Te=new ar(x);Z&&(Te[`:@`]=Z),this.addChild(r,Te,this.readonlyMatcher,be),this.matcher.pop(),this.isCurrentNodeStopNode=!1,m=E.closeIndex;continue}else{let Te=new ar(x);if(this.tagsNodeStack.length>i.maxNestedTags)throw new Error(`Maximum nested tags exceeded`);this.tagsNodeStack.push(r),Z&&(Te[`:@`]=Z),this.addChild(r,Te,this.readonlyMatcher,be),r=Te}A=``,m=U}}}else A+=t[m];return e.child};function KC(t,e,r,A){this.options.captureMetaData||(A=void 0);let i=this.options.jPath?r.toString():r,a=this.options.updateTag(e.tagname,i,e[`:@`]);a===!1||(typeof a==`string`&&(e.tagname=a),t.addChild(e,A))}function XC(t,e,r){let A=this.options.processEntities;if(!A||!A.enabled)return t;if(A.allowedTags){let i=this.options.jPath?r.toString():r;if(!(Array.isArray(A.allowedTags)?A.allowedTags.includes(e):A.allowedTags(e,i)))return t}if(A.tagFilter){let i=this.options.jPath?r.toString():r;if(!A.tagFilter(e,i))return t}return this.entityDecoder.decode(t)}function YC(t,e,r,A){return t&&(A===void 0&&(A=e.child.length===0),t=this.parseTextData(t,e.tagname,r,!1,e[`:@`]?Object.keys(e[`:@`]).length!==0:!1,A),t!==void 0&&t!==``&&e.add(this.options.textNodeName,t),t=``),t}function WC(){return this.stopNodeExpressionsSet.size===0?!1:this.matcher.matchesAny(this.stopNodeExpressionsSet)}function ZC(t,e,r=`>`){let A=0,i=t.length,a=r.charCodeAt(0),d=r.length>1?r.charCodeAt(1):-1,m=``,y=e;for(let _=e;_<i;_++){let E=t.charCodeAt(_);if(A)E===A&&(A=0);else if(E===34||E===39)A=E;else if(E===a)if(d!==-1){if(t.charCodeAt(_+1)===d)return m+=t.substring(y,_),{data:m,index:_}}else return m+=t.substring(y,_),{data:m,index:_};else E===9&&!A&&(m+=t.substring(y,_)+` `,y=_+1)}}function _A(t,e,r,A){let i=t.indexOf(e,r);if(i===-1)throw new Error(A);return i+e.length-1}function $C(t,e,r,A){let i=t.indexOf(e,r);if(i===-1)throw new Error(A);return i}function z0(t,e,r,A=`>`){let i=ZC(t,e+1,A);if(!i)return;let a=i.data,d=i.index,m=a.search(/\s/),y=a,_=!0;m!==-1&&(y=a.substring(0,m),a=a.substring(m+1).trimStart());let E=y;if(r){let x=y.indexOf(`:`);x!==-1&&(y=y.substr(x+1),_=y!==i.data.substr(x+1))}return{tagName:y,tagExp:a,closeIndex:d,attrExpPresent:_,rawTagName:E}}function ew(t,e,r){let A=r,i=1,a=t.length;for(;r<a;r++)if(t[r]===`<`){let d=t.charCodeAt(r+1);if(d===47){let m=$C(t,`>`,r,`${e} is not closed`);if(t.substring(r+2,m).trim()===e&&(i--,i===0))return{tagContent:t.substring(A,r),i:m};r=m}else if(d===63)r=_A(t,`?>`,r+1,`StopNode is not closed.`);else if(d===33&&t.charCodeAt(r+2)===45&&t.charCodeAt(r+3)===45)r=_A(t,`-->`,r+3,`StopNode is not closed.`);else if(d===33&&t.charCodeAt(r+2)===91)r=_A(t,`]]>`,r,`StopNode is not closed.`)-2;else{let m=z0(t,r,!1);m&&((m&&m.tagName)===e&&m.tagExp[m.tagExp.length-1]!==`/`&&i++,r=m.closeIndex)}}}function J0(t,e,r){if(e&&typeof t==`string`){let A=t.trim();return A===`true`?!0:A===`false`?!1:D0(t,r)}else return Fd(t)?t:``}function Q0(t,e,r,A){if(t){let i=t(e);r===e&&(r=i),e=i}return e=Wd(e,A),{tagName:e,tagExp:r}}function Wd(t,e){if(Qs.includes(t))throw new Error(`[SECURITY] Invalid name: "${t}" is a reserved JavaScript keyword that could cause prototype pollution`);return yi.includes(t)?e.onDangerousProperty(t):t}var q0=ar.getMetaDataSymbol();function tw(t,e){if(!t||typeof t!=`object`)return{};if(!e)return t;let r={};for(let A in t)if(A.startsWith(e)){let i=A.substring(e.length);r[i]=t[A]}else r[A]=t[A];return r}function K0(t,e,r,A){return Zd(t,e,r,A)}function Zd(t,e,r,A){let i,a={};for(let d=0;d<t.length;d++){let m=t[d],y=rw(m);if(y!==void 0&&y!==e.textNodeName){let _=tw(m[`:@`]||{},e.attributeNamePrefix);r.push(y,_)}if(y===e.textNodeName)i===void 0?i=m[y]:i+=``+m[y];else{if(y===void 0)continue;if(m[y]){let _=Zd(m[y],e,r,A),E=Aw(_,e);if(Object.keys(_).length===0&&e.alwaysCreateTextNode&&(_[e.textNodeName]=``),m[`:@`]?nw(_,m[`:@`],A,e):Object.keys(_).length===1&&_[e.textNodeName]!==void 0&&!e.alwaysCreateTextNode?_=_[e.textNodeName]:Object.keys(_).length===0&&(e.alwaysCreateTextNode?_[e.textNodeName]=``:_=``),m[q0]!==void 0&&typeof _==`object`&&_!==null&&(_[q0]=m[q0]),a[y]!==void 0&&Object.prototype.hasOwnProperty.call(a,y))Array.isArray(a[y])||(a[y]=[a[y]]),a[y].push(_);else{let x=e.jPath?A.toString():A;e.isArray(y,x,E)?a[y]=[_]:a[y]=_}y!==void 0&&y!==e.textNodeName&&r.pop()}}}return typeof i==`string`?i.length>0&&(a[e.textNodeName]=i):i!==void 0&&(a[e.textNodeName]=i),a}function rw(t){let e=Object.keys(t);for(let r=0;r<e.length;r++){let A=e[r];if(A!==`:@`)return A}}function nw(t,e,r,A){if(e){let i=Object.keys(e),a=i.length;for(let d=0;d<a;d++){let m=i[d],y=m.startsWith(A.attributeNamePrefix)?m.substring(A.attributeNamePrefix.length):m,_=A.jPath?r.toString()+`.`+y:r;A.isArray(m,_,!0,!0)?t[m]=[e[m]]:t[m]=e[m]}}}function Aw(t,e){let{textNodeName:r}=e,A=Object.keys(t).length;return!!(A===0||A===1&&(t[r]||typeof t[r]==`boolean`||t[r]===0))}var vi=class{constructor(e){this.externalEntities={},this.options=Ud(e)}parse(e,r){if(typeof e!=`string`&&e.toString)e=e.toString();else if(typeof e!=`string`)throw new Error(`XML data is accepted in String or Bytes[] form.`);if(r){r===!0&&(r={});let a=Nd(e,r);if(a!==!0)throw Error(`${a.err.msg}:${a.err.line}:${a.err.col}`)}let A=new Zs(this.options,this.externalEntities),i=A.parseXml(e);return this.options.preserveOrder||i===void 0?i:K0(i,this.options,A.matcher,A.readonlyMatcher)}addEntity(e,r){if(r.indexOf(`&`)!==-1)throw new Error(`Entity value can't have '&'`);if(e.indexOf(`&`)!==-1||e.indexOf(`;`)!==-1)throw new Error(`An entity must be set without '&' and ';'. Eg. use '#xD' for '
'`);if(r===`&`)throw new Error(`An entity with value '&' is not permitted`);this.externalEntities[e]=r}static getMetaDataSymbol(){return ar.getMetaDataSymbol()}};function X0(t,e){if(e?._parser&&e._parser!==`fast-xml-parser`)throw new Error(e?._parser);let A=iw(t,r({allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(i,a,d,m)=>!!e?.arrayPaths?.some(_=>a===_)},e?._fastXML));return e?.uncapitalizeKeys?Vs(A):A}function iw(t,e){return new vi(r({ignoreAttributes:!1,attributeNamePrefix:``},e)).parse(t)}var Fr={dataType:null,batchType:null,name:`XML`,id:`xml`,module:`xml`,version:`4.4.4`,worker:!1,extensions:[`xml`],mimeTypes:[`application/xml`,`text/xml`],testText:ow,options:{xml:{_parser:`fast-xml-parser`,uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:`value`,arrayPaths:[]}},parse:async(t,e)=>X0(new TextDecoder().decode(t),r(r({},Fr.options.xml),e?.xml)),parseTextSync:(t,e)=>X0(t,r(r({},Fr.options.xml),e?.xml))};function ow(t){return t.startsWith(`<?xml`)}function $d(t,e){let r=Fr.parseTextSync?.(t,e),A=r?.ServiceExceptionReport?.ServiceException||r?.[`ogc:ServiceExceptionReport`]?.[`ogc:ServiceException`];return typeof A==`string`?A:A.value||A.code||`Unknown error`}var Mi={dataType:null,batchType:null,id:`wms-error`,name:`WMS Error`,module:`wms`,version:`4.4.4`,worker:!1,extensions:[`xml`],mimeTypes:[`application/vnd.ogc.se_xml`,`application/xml`,`text/xml`],testText:cw,options:{wms:{throwOnError:!1}},parse:async(t,e)=>Y0(new TextDecoder().decode(t),e),parseSync:(t,e)=>Y0(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Y0(t,e)};function cw(t){return t.startsWith(`<?xml`)}function Y0(t,e){let r$5=r(r({},Mi.options.wms),e?.wms),A=$d(t,r$5),i=r$5.minimalErrors?A:`WMS Service error: ${A}`;if(r$5.throwOnError)throw new Error(i);return i}function Gn(t){return Array.isArray(t)?t:t?[t]:[]}function Ii(t){let e=Gn(t);return e.length>0&&e.every(r=>typeof r==`string`)?e:[]}function Si(t,e=void 0){switch(typeof t){case`number`:return t;case`string`:return parseFloat(t);default:return}}function $s(t,e=void 0){switch(typeof t){case`number`:return t;case`string`:return parseInt(t,10);default:return}}function kn(t){switch(t){case`true`:return!0;case`false`:return!1;case`1`:return!0;case`0`:return!1;default:return!1}}function W0(t,e){let r=Fr.parseTextSync?.(t,e),A=r.WMT_MS_Capabilities||r.WMS_Capabilities||r,i=lw(A);if(e?.inheritedLayerProps)for(let a of i.layers)tp(a,null);return e?.includeRawJSON&&(i.json=A),e?.includeXMLText&&(i.xml=t),i}function lw(t){let e={version:String(t.version||``),name:String(t.Service?.Name||`unnamed`),title:t.Service?.Title?String(t.Service?.Title):void 0,abstract:t.Service?.Abstract?String(t.Service?.Abstract):void 0,keywords:Ii(t.Service?.KeywordList?.Keyword),fees:t.Service?.Fees?JSON.stringify(t.Service?.Fees):void 0,accessConstraints:t.Service?.AccessConstraints?JSON.stringify(t.Service?.AccessConstraints):void 0,layerLimit:$s(t.Service?.LayerLimit),maxWidth:$s(t.Service?.maxWidth),maxHeight:$s(t.Service?.maxHeight),layers:[],requests:uw(t.Capability?.Request),exceptions:fw(t.Exception)},r=Gn(t.Capability?.Layer);for(let A of r)e.layers.push(ep(A));for(let[A,i]of Object.entries(e))i===void 0&&delete e[A];return e}function uw(t){let e={};for(let[r,A]of Object.entries(t||{}))e[r]={mimeTypes:Ii(A?.Format)};return e}function fw(t){if(Gn(t?.Format).length>0)return{mimeTypes:Ii(t)}}function ep(t){let e={title:String(t?.Title||``),name:t?.Name&&String(t?.Name),abstract:t?.Name&&String(t?.Abstract),keywords:Ii(t.KeywordList?.Keyword)},r=t?.CRS||t?.SRS;r&&Array.isArray(r)&&r.every(_=>typeof _==`string`)&&(e.crs=r);let A=t?.EX_GeographicBoundingBox&&hw(t?.EX_GeographicBoundingBox);A&&(e.geographicBoundingBox=A),A=t?.LatLonBoundingBox&&dw(t?.LatLonBoundingBox),A&&(e.geographicBoundingBox=A);let i=t?.BoundingBox&&pw(t?.BoundingBox);i&&i.length>0&&(e.boundingBoxes=i);let d=Gn(t?.Dimension).map(_=>gw(_));d.length&&(e.dimensions=d),t?.opaque&&(e.opaque=kn(t?.opaque)),t?.cascaded&&(e.cascaded=kn(t?.cascaded)),t?.queryable&&(e.queryable=kn(t?.queryable));let m=Gn(t?.Layer),y=[];for(let _ of m)y.push(ep(_));y.length>0&&(e.layers=y);for(let[_,E]of Object.entries(e))E===void 0&&delete e[_];return e}function hw(t){let{westBoundLongitude:e,northBoundLatitude:r,eastBoundLongitude:A,southBoundLatitude:i}=t;return[[e,i],[A,r]]}function dw(t){let{minx:e,miny:r,maxx:A,maxy:i}=t;return[[e,r],[A,i]]}function pw(t){return Gn(t).map(r=>mw(r))}function mw(t){let{CRS:e,SRS:r,minx:A,miny:i,maxx:a,maxy:d,resx:m,resy:y}=t,_={crs:e||r,boundingBox:[[Si(A),Si(i)],[Si(a),Si(d)]]};return m&&(_.xResolution=m),y&&(_.yResolution=y),_}function gw(t){let{name:e,units:r,value:A}=t,i={name:e,units:r,extent:A};return t.unitSymbol&&(i.unitSymbol=t.unitSymbol),t.default&&(i.defaultValue=t.default),t.multipleValues&&(i.multipleValues=kn(t.multipleValues)),t.nearestValue&&(i.nearestValue=kn(t.nearestValue)),t.current&&(i.current=kn(t.current)),i}function tp(t,e){e?.geographicBoundingBox&&!t.geographicBoundingBox&&(t.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!t.crs&&(t.crs=[...e.crs]),e?.boundingBoxes&&!t.boundingBoxes&&(t.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!t.dimensions&&(t.dimensions=[...e.dimensions]);for(let r of t.layers||[])tp(r,t)}var bA={dataType:null,batchType:null,id:`wms-capabilities`,name:`WMS Capabilities`,module:`wms`,version:`4.4.4`,worker:!1,extensions:[`xml`],mimeTypes:[`application/vnd.ogc.wms_xml`,`application/xml`,`text/xml`],testText:Tw,options:{wms:{}},parse:async(t,e)=>W0(new TextDecoder().decode(t),e?.wms),parseTextSync:(t,e)=>W0(t,e?.wms)};function Tw(t){return t.startsWith(`<?xml`)}function Z0(t,e){let A=(Fr.parseTextSync?.(t,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(A)?A:[A]).map(a=>_w(a))}}function _w(t){return{attributes:t||{},type:``,bounds:{bottom:0,top:0,left:0,right:0}}}var rp=s(r({},bA),{dataType:null,id:`wms-feature-info`,name:`WMS FeatureInfo`,parse:async(t,e)=>Z0(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>Z0(t,e)});function $0(t,e){return Fr.parseTextSync?.(t,e)}var np=s(r({},bA),{dataType:null,id:`wms-layer-description`,name:`WMS DescribeLayer`,parse:async(t,e)=>$0(new TextDecoder().decode(t),e),parseTextSync:(t,e)=>$0(t,e)});var to={name:`Web Map Service (OGC WMS)`,id:`wms`,module:`wms`,version:`0.0.0`,extensions:[],mimeTypes:[],type:`wms`,fromUrl:!0,fromBlob:!1,defaultOptions:{wms:{}},testURL:t=>t.toLowerCase().includes(`wms`),createDataSource:(t,e)=>new eo(t,e)};var eo=class extends xd$1{substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e,r$6){super(e,r$6,to.defaultOptions),this.substituteCRS84=r$6.wms?.substituteCRS84??!1,this.flipCRS=[`EPSG:4326`],this.wmsParameters=r(r({layers:void 0,query_layers:void 0,styles:void 0,version:`1.3.0`,crs:`EPSG:4326`,format:`image/png`,info_format:`text/plain`,transparent:void 0,time:void 0,elevation:void 0},r$6.wmsParameters),r$6.wms?.wmsParameters),this.vendorParameters=r$6.wms?.vendorParameters||r$6.vendorParameters||{}}async getMetadata(){let e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){let d=e,{boundingBox:r$7,bbox:A}=d,i=u(d,[`boundingBox`,`bbox`]),a=r({bbox:r$7?[...r$7[0],...r$7[1]]:A},i);return await this.getMap(a)}normalizeMetadata(e){return e}async getCapabilities(e,r){let A=this.getCapabilitiesURL(e,r),i=await this.fetch(A),a=await i.arrayBuffer();this._checkResponse(i,a);let d=await bA.parse(a,this.loadOptions);return this.capabilities=d,d}async getMap(e,r){let A=this.getMapURL(e,r),i=await this.fetch(A),a=await i.arrayBuffer();this._checkResponse(i,a);try{return await oc$1.parse(a,this.loadOptions)}catch{throw this._parseError(a)}}async getFeatureInfo(e,r){let A=this.getFeatureInfoURL(e,r),i=await this.fetch(A),a=await i.arrayBuffer();return this._checkResponse(i,a),await rp.parse(a,this.loadOptions)}async getFeatureInfoText(e,r){let A=this.getFeatureInfoURL(e,r),i=await this.fetch(A),a=await i.arrayBuffer();return this._checkResponse(i,a),new TextDecoder().decode(a)}async describeLayer(e,r){let A=this.describeLayerURL(e,r),i=await this.fetch(A),a=await i.arrayBuffer();return this._checkResponse(i,a),await np.parse(a,this.loadOptions)}async getLegendGraphic(e,r){let A=this.getLegendGraphicURL(e,r),i=await this.fetch(A),a=await i.arrayBuffer();this._checkResponse(i,a);try{return await oc$1.parse(a,this.loadOptions)}catch{throw this._parseError(a)}}getCapabilitiesURL(e,r$8){let A=r({version:this.wmsParameters.version},e);return this._getWMSUrl(`GetCapabilities`,A,r$8)}getMapURL(e,r$9){e=this._getWMS130Parameters(e);let A=r({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`,A,r$9)}getFeatureInfoURL(e,r$10){e=this._getWMS130Parameters(e);let{boundingBox:A,bbox:i}=e;e.bbox=A?[...A[0],...A[1]]:i;let a=r({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,r$10)}describeLayerURL(e,r$11){let A=r({version:this.wmsParameters.version},e);return this._getWMSUrl(`DescribeLayer`,A,r$11)}getLegendGraphicURL(e,r$12){let A=r({version:this.wmsParameters.version},e);return this._getWMSUrl(`GetLegendGraphic`,A,r$12)}_parseWMSUrl(e){let[r,A]=e.split(`?`),i=A.split(`&`),a={};for(let d of i){let[m,y]=d.split(`=`);a[m]=y}return{url:r,parameters:a}}_getWMSUrl(e,r$13,A){let i=this.url,a=!0,d=r(r(r({service:`WMS`,version:r$13.version,request:e},r$13),this.vendorParameters),A),m=[`transparent`,`time`,`elevation`];for(let[y,_]of Object.entries(d))(!m.includes(y)||_)&&(i+=a?`?`:`&`,a=!1,i+=this._getURLParameter(y,_,r$13));return encodeURI(i)}_getWMS130Parameters(e){let r$14=r({},e);return r$14.srs&&(r$14.crs=r$14.crs||r$14.srs,delete r$14.srs),r$14}_getURLParameter(e,r,A){switch(e){case`crs`:A.version!==`1.3.0`?e=`srs`:this.substituteCRS84&&r===`EPSG:4326`&&(r=`CRS:84`);break;case`srs`:A.version===`1.3.0`&&(e=`crs`);break;case`bbox`:let i=this._flipBoundingBox(r,A);i&&(r=i);break;case`x`:A.version===`1.3.0`&&(e=`i`);break;case`y`:A.version===`1.3.0`&&(e=`j`);break;default:}return e=e.toUpperCase(),Array.isArray(r)?`${e}=${r.join(`,`)}`:`${e}=${r?String(r):``}`}_flipBoundingBox(e,r){if(!Array.isArray(e)||e.length!==4)return null;let A=r.version===`1.3.0`&&this.flipCRS.includes(r.crs||``)&&!(this.substituteCRS84&&r.crs===`EPSG:4326`),i=e;return A?[i[1],i[0],i[3],i[2]]:i}async _fetchArrayBuffer(e){let r=await this.fetch(e),A=await r.arrayBuffer();return this._checkResponse(r,A),A}_checkResponse(e,r){let A=e.headers[`content-type`];if(!e.ok||Mi.mimeTypes.includes(A)){let i=ur$1(this.loadOptions,{wms:{throwOnError:!0}}),a=Mi.parseSync?.(r,i);throw new Error(a)}}_parseError(e){let r=Mi.parseSync?.(e,this.options.core?.loadOptions);return new Error(r)}};var Ap=6378137*Math.PI;function ec(t){let e=ue$1(t);return e[0]=(e[0]/256-1)*Ap,e[1]=(e[1]/256-1)*Ap,e}var bw={id:`imagery-layer`,data:``,serviceType:`auto`,srs:`auto`,layers:{type:`array`,compare:!0,value:[]},onMetadataLoad:{type:`function`,value:()=>{}},onMetadataLoadError:{type:`function`,value:console.error},onImageLoadStart:{type:`function`,value:()=>{}},onImageLoad:{type:`function`,value:()=>{}},onImageLoadError:{type:`function`,compare:!1,value:(t,e)=>console.error(e,t)}};var Ew=(()=>{class t extends Dv$1{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:r,props:A,oldProps:i}){let{viewport:a}=this.context;r.dataChanged||A.serviceType!==i.serviceType?(this.state.imageSource=this._createImageSource(A),this._loadMetadata(),this.debounce(()=>this.loadImage(a,`image source changed`),0)):q(A.layers,i.layers,1)?r.viewportChanged&&this.debounce(()=>this.loadImage(a,`viewport changed`)):this.debounce(()=>this.loadImage(a,`layers changed`),0)}finalizeState(){}renderLayers(){let{bounds:r$15,image:A,lastRequestParameters:i}=this.state;return A&&new Ho$1(s(r({},this.getSubLayerProps({id:`bitmap`})),{_imageCoordinateSystem:i.srs===`EPSG:4326`?da.LNGLAT:da.CARTESIAN,bounds:r$15,image:A}))}async getFeatureInfoText(r$16,A){let{lastRequestParameters:i}=this.state;return i?await this.state.imageSource.getFeatureInfoText?.(s(r({},i),{query_layers:i.layers,x:r$16,y:A,info_format:`application/vnd.ogc.gml`})):``}_createImageSource(r){if(r.data instanceof Ao$1)return r.data;if(typeof r.data==`string`)return Jd$1(r.data,[to],{core:{type:r.serviceType,loadOptions:r.loadOptions}});throw new Error(`invalid image source in props.data`)}async _loadMetadata(){let{imageSource:r}=this.state;try{this.state.loadCounter++;let A=await r.getMetadata();this.state.imageSource===r&&this.getCurrentLayer()?.props.onMetadataLoad(A)}catch(A){this.getCurrentLayer()?.props.onMetadataLoadError(A)}finally{this.state.loadCounter--}}async loadImage(r,A){let{layers:i,serviceType:a}=this.props;if(a===`wms`&&i.length===0)return;let d=r.getBounds(),{width:m,height:y}=r,_=this.getRequestId(),{srs:E}=this.props;E===`auto`&&(E=r.resolution?`EPSG:4326`:`EPSG:3857`);let x={width:m,height:y,boundingBox:[[d[0],d[1]],[d[2],d[3]]],layers:i,crs:E};if(E===`EPSG:3857`)x.boundingBox=[ec([d[0],d[1]]),ec([d[2],d[3]])];try{this.state.loadCounter++,this.props.onImageLoadStart(_);let v=await this.state.imageSource.getImage(x);this.state.lastRequestId<_&&(this.getCurrentLayer()?.props.onImageLoad(_),this.setState({image:v,bounds:d,lastRequestParameters:x,lastRequestId:_}))}catch(v){this.raiseError(v,`Load image`),this.getCurrentLayer()?.props.onImageLoadError(_,v)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(r,A=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>r(),A)}}return t.layerName=`WMSLayer`,t.defaultProps=bw,t})();var xw={getHeight:{type:`accessor`,value:0},greatCircle:!0};var ww=(()=>{class t extends Bo$1{}return t.layerName=`GreatCircleLayer`,t.defaultProps=xw,t})();var ro=x(tc(),1);var Bw=3;var Mw=61;var sp=180/Math.PI;function ap(t,e,r){let A=1<<e;return[(t[0]+r[0])/A,(t[1]+r[1])/A]}function op(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function cp(t){return[op(t[0]),op(t[1])]}function lp(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error(`Invalid face`)}}function up([t,e,r]){let A=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*sp,A*sp]}function fp(t){let e=ro.default.fromString(t,!0,10).toString(2);for(;e.length<Bw+Mw;)e=`0`+e;let r=e.lastIndexOf(`1`),A=e.substring(0,3),i=e.substring(3,r),a=i.length/2,d=ro.default.fromString(A,!0,2).toString(10),m=ro.default.fromString(i,!0,2).toString(4);for(;m.length<a;)m=`0`+m;return`${d}/${m}`}function Iw(t,e,r,A){if(A===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let i=e[0];e[0]=e[1],e[1]=i}}function hp(t){let e=t.split(`/`),r=parseInt(e[0],10),A=e[1],i=A.length,a=[0,0],d;for(let m=i-1;m>=0;m--){d=i-m;let y=A[m],_=0,E=0;y===`1`?E=1:y===`2`?(_=1,E=1):y===`3`&&(_=1);let x=Math.pow(2,d-1);Iw(x,a,_,E),a[0]+=x*_,a[1]+=x*E}if(r%2===1){let m=a[0];a[0]=a[1],a[1]=m}return{face:r,ij:a,level:d}}var dp=x(tc(),1);function Sw(t){let e=t.padEnd(16,`0`);return dp.default.fromString(e,16)}var Fw=100;function Lw({face:t,ij:e,level:r}){let A=[[0,0],[0,1],[1,1],[1,0],[0,0]],i=Math.max(1,Math.ceil(Fw*Math.pow(2,-r))),a=new Float64Array(4*i*2+2),d=0,m=0;for(let y=0;y<4;y++){let _=A[y].slice(0),E=A[y+1],x=(E[0]-_[0])/i,v=(E[1]-_[1])/i;for(let F=0;F<i;F++){_[0]+=x,_[1]+=v;let X=up(lp(t,cp(ap(e,r,_))));Math.abs(X[1])>89.999&&(X[0]=m);let Z=X[0]-m;X[0]+=Z>180?-360:Z<-180?360:0,a[d++]=X[0],a[d++]=X[1],m=X[0]}}return a[d++]=a[0],a[d++]=a[1],a}function Rw(t){if(typeof t==`string`){if(t.indexOf(`/`)>0)return t;t=Sw(t)}return fp(t.toString())}function pp(t){return Lw(hp(Rw(t)))}var Pw={getS2Token:{type:`accessor`,value:t=>t.token}};var Nw=(()=>{class t extends Ir{indexToBounds(){let{data:r,getS2Token:A}=this.props;return{data:r,_normalize:!1,positionFormat:`XY`,getPolygon:(i,a)=>pp(A(i,a))}}}return t.layerName=`S2Layer`,t.defaultProps=Pw,t})();var rc=512;function Ow(t,e){let r=0,A=0,i=1<<t.length,a=i/rc;for(let d=0;d<t.length;d++){i>>=1;let m=parseInt(t[d]);m%2&&(r|=i),m>1&&(A|=i)}return[[r/a,rc-A/a],[(r+e)/a,rc-(A+e)/a]]}function mp(t,e=1){let[r,A]=Ow(t,e),[i,a]=ne(r),[d,m]=ne(A);return[d,a,d,m,i,m,i,a,d,a]}var Gw={getQuadkey:{type:`accessor`,value:t=>t.quadkey}};var Uw=(()=>{class t extends Ir{indexToBounds(){let{data:r,extruded:A,getQuadkey:i}=this.props,a=A?.99:1;return{data:r,_normalize:!1,positionFormat:`XY`,getPolygon:(d,m)=>mp(i(d,m),a),updateTriggers:{getPolygon:a}}}}return t.layerName=`QuadkeyLayer`,t.defaultProps=Gw,t})();var EA=class{constructor(e){this.index=e,this.isVisible=!1,this.isSelected=!1,this.parent=null,this.children=[],this.content=null,this._loader=void 0,this._abortController=null,this._loaderId=0,this._isLoaded=!1,this._isCancelled=!1,this._needsReload=!1}get bbox(){return this._bbox}set bbox(e){this._bbox||(this._bbox=e,`west`in e?this.boundingBox=[[e.west,e.south],[e.east,e.north]]:this.boundingBox=[[e.left,e.top],[e.right,e.bottom]])}get data(){return this.isLoading&&this._loader?this._loader.then(()=>this.data):this.content}get isLoaded(){return this._isLoaded&&!this._needsReload}get isLoading(){return!!this._loader&&!this._isCancelled}get needsReload(){return this._needsReload||this._isCancelled}get byteLength(){let e=this.content?this.content.byteLength:0;return Number.isFinite(e)||console.error(`byteLength not defined in tile data`),e}async _loadData({getData:e,requestScheduler:r,onLoad:A,onError:i}){let{index:a,id:d,bbox:m,userData:y,zoom:_}=this,E=this._loaderId;this._abortController=new AbortController;let{signal:x}=this._abortController,v=await r.scheduleRequest(this,U=>U.isSelected?1:-1);if(!v){this._isCancelled=!0;return}if(this._isCancelled){v.done();return}let F=null,N;try{F=await e({index:a,id:d,bbox:m,userData:y,zoom:_,signal:x})}catch(U){N=U||!0}finally{v.done()}if(E===this._loaderId){if(this._loader=void 0,this.content=F,this._isCancelled&&!F){this._isLoaded=!1;return}this._isLoaded=!0,this._isCancelled=!1,N?i(N,this):A(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 gp=new H;var Hw=new H;var xA=class t{constructor(e=[0,0,0],r=[0,0,0],A){A=A||gp.copy(e).add(r).scale(.5),this.center=new H(A),this.halfDiagonal=new H(r).subtract(this.center),this.minimum=new H(e),this.maximum=new H(r)}clone(){return new t(this.minimum,this.maximum,this.center)}equals(e){return this===e||!!e&&this.minimum.equals(e.minimum)&&this.maximum.equals(e.maximum)}transform(e){return this.center.transformAsPoint(e),this.halfDiagonal.transform(e),this.minimum.transform(e),this.maximum.transform(e),this}intersectPlane(e){let{halfDiagonal:r}=this,A=Hw.from(e.normal),i=r.x*Math.abs(A.x)+r.y*Math.abs(A.y)+r.z*Math.abs(A.z),a=this.center.dot(A)+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 r=gp.from(e).subtract(this.center),{halfDiagonal:A}=this,i=0,a;return a=Math.abs(r.x)-A.x,a>0&&(i+=a*a),a=Math.abs(r.y)-A.y,a>0&&(i+=a*a),a=Math.abs(r.z)-A.z,a>0&&(i+=a*a),i}};var Li=new H;var yp=new H;var kr=class t{constructor(e=[0,0,0],r=0){this.radius=-0,this.center=new H,this.fromCenterRadius(e,r)}fromCenterRadius(e,r){return this.center.from(e),this.radius=r,this}fromCornerPoints(e,r){return r=Li.from(r),this.center=new H().from(e).add(r).scale(.5),this.radius=this.center.distance(r),this}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new t(this.center,this.radius)}union(e){let r=this.center,A=this.radius,i=e.center,a=e.radius,d=Li.copy(i).subtract(r),m=d.magnitude();if(A>=m+a)return this.clone();if(a>=m+A)return e.clone();let y=(A+m+a)*.5;return yp.copy(d).scale((-A+y)/m).add(r),this.center.copy(yp),this.radius=y,this}expand(e){let A=Li.from(e).subtract(this.center).magnitude();return A>this.radius&&(this.radius=A),this}transform(e){this.center.transform(e);let r=Z.getScaling(Li,e);return this.radius=Math.max(r[0],Math.max(r[1],r[2]))*this.radius,this}distanceSquaredTo(e){let r=this.distanceTo(e);return r*r}distanceTo(e){let A=Li.from(e).subtract(this.center);return Math.max(0,A.len()-this.radius)}intersectPlane(e){let r=this.center,A=this.radius,a=e.normal.dot(r)+e.distance;return a<-A?Tt.OUTSIDE:a<A?Tt.INTERSECTING:Tt.INSIDE}};var Vw=new H;var jw=new H;var no=new H;var Ao=new H;var io=new H;var Qw=new H;var zw=new H;var Yr={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8};var Wr=class t{constructor(e=[0,0,0],r=[0,0,0,0,0,0,0,0,0]){this.center=new H().from(e),this.halfAxes=new Tr$1(r)}get halfSize(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),A=this.halfAxes.getColumn(2);return[new H(e).len(),new H(r).len(),new H(A).len()]}get quaternion(){let e=this.halfAxes.getColumn(0),r=this.halfAxes.getColumn(1),A=this.halfAxes.getColumn(2),i=new H(e).normalize(),a=new H(r).normalize(),d=new H(A).normalize();return new zs$1().fromMatrix3(new Tr$1([...i,...a,...d]))}fromCenterHalfSizeQuaternion(e,r,A){let i=new zs$1(A),a=new Tr$1().fromQuaternion(i);return a[0]=a[0]*r[0],a[1]=a[1]*r[0],a[2]=a[2]*r[0],a[3]=a[3]*r[1],a[4]=a[4]*r[1],a[5]=a[5]*r[1],a[6]=a[6]*r[2],a[7]=a[7]*r[2],a[8]=a[8]*r[2],this.center=new H().from(e),this.halfAxes=a,this}clone(){return new t(this.center,this.halfAxes)}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new kr){let r=this.halfAxes,A=r.getColumn(0,no),i=r.getColumn(1,Ao),a=r.getColumn(2,io),d=Vw.copy(A).add(i).add(a);return e.center.copy(this.center),e.radius=d.magnitude(),e}intersectPlane(e){let r=this.center,A=e.normal,i=this.halfAxes,a=A.x,d=A.y,m=A.z,y=Math.abs(a*i[Yr.COLUMN0ROW0]+d*i[Yr.COLUMN0ROW1]+m*i[Yr.COLUMN0ROW2])+Math.abs(a*i[Yr.COLUMN1ROW0]+d*i[Yr.COLUMN1ROW1]+m*i[Yr.COLUMN1ROW2])+Math.abs(a*i[Yr.COLUMN2ROW0]+d*i[Yr.COLUMN2ROW1]+m*i[Yr.COLUMN2ROW2]),_=A.dot(r)+e.distance;return _<=-y?Tt.OUTSIDE:_>=y?Tt.INSIDE:Tt.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){let r=jw.from(e).subtract(this.center),A=this.halfAxes,i=A.getColumn(0,no),a=A.getColumn(1,Ao),d=A.getColumn(2,io),m=i.magnitude(),y=a.magnitude(),_=d.magnitude();i.normalize(),a.normalize(),d.normalize();let E=0,x;return x=Math.abs(r.dot(i))-m,x>0&&(E+=x*x),x=Math.abs(r.dot(a))-y,x>0&&(E+=x*x),x=Math.abs(r.dot(d))-_,x>0&&(E+=x*x),E}computePlaneDistances(e,r,A=[-0,-0]){let i=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY,d=this.center,m=this.halfAxes,y=m.getColumn(0,no),_=m.getColumn(1,Ao),E=m.getColumn(2,io),x=Qw.copy(y).add(_).add(E).add(d),v=zw.copy(x).subtract(e),F=r.dot(v);return i=Math.min(F,i),a=Math.max(F,a),x.copy(d).add(y).add(_).subtract(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),a=Math.max(F,a),x.copy(d).add(y).subtract(_).add(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),a=Math.max(F,a),x.copy(d).add(y).subtract(_).subtract(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),a=Math.max(F,a),d.copy(x).subtract(y).add(_).add(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),a=Math.max(F,a),d.copy(x).subtract(y).add(_).subtract(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),a=Math.max(F,a),d.copy(x).subtract(y).subtract(_).add(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),a=Math.max(F,a),d.copy(x).subtract(y).subtract(_).subtract(E),v.copy(x).subtract(e),F=r.dot(v),i=Math.min(F,i),a=Math.max(F,a),A[0]=i,A[1]=a,A}transform(e){this.center.transformAsPoint(e);let r=this.halfAxes.getColumn(0,no);r.transformAsPoint(e);let A=this.halfAxes.getColumn(1,Ao);A.transformAsPoint(e);let i=this.halfAxes.getColumn(2,io);return i.transformAsPoint(e),this.halfAxes=new Tr$1([...r,...A,...i]),this}getTransform(){throw new Error(`not implemented`)}};var Tp=new H;var _p=new H;var Ht=class t{constructor(e=[0,0,1],r=0){this.normal=new H,this.distance=-0,this.fromNormalDistance(e,r)}fromNormalDistance(e,r){return ji$1(Number.isFinite(r)),this.normal.from(e).normalize(),this.distance=r,this}fromPointNormal(e,r){e=Tp.from(e),this.normal.from(r).normalize();let A=-this.normal.dot(e);return this.distance=A,this}fromCoefficients(e,r,A,i){return this.normal.set(e,r,A),ji$1(De(this.normal.len(),1)),this.distance=i,this}clone(){return new t(this.normal,this.distance)}equals(e){return De(this.distance,e.distance)&&De(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){let r=_p.copy(this.normal).transformAsVector(e).normalize(),A=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(A,r)}projectPointOntoPlane(e,r=[0,0,0]){let A=Tp.from(e),i=this.getPointDistance(A),a=_p.copy(this.normal).scale(i);return A.subtract(a).to(r)}};var bp=[new H([1,0,0]),new H([0,1,0]),new H([0,0,1])];var Ep=new H;var Jw=new H;var Ur=(()=>{class t{constructor(r=[]){this.planes=r}fromBoundingSphere(r){this.planes.length=2*bp.length;let A=r.center,i=r.radius,a=0;for(let d of bp){let m=this.planes[a],y=this.planes[a+1];m||(m=this.planes[a]=new Ht),y||(y=this.planes[a+1]=new Ht);let _=Ep.copy(d).scale(-i).add(A);m.fromPointNormal(_,d);let E=Ep.copy(d).scale(i).add(A),x=Jw.copy(d).negate();y.fromPointNormal(E,x),a+=2}return this}computeVisibility(r){let A=Tt.INSIDE;for(let i of this.planes)switch(r.intersectPlane(i)){case Tt.OUTSIDE:return Tt.OUTSIDE;case Tt.INTERSECTING:A=Tt.INTERSECTING;break;default:}return A}computeVisibilityWithPlaneMask(r,A){if(ji$1(Number.isFinite(A),`parentPlaneMask is required.`),A===t.MASK_OUTSIDE||A===t.MASK_INSIDE)return A;let i=t.MASK_INSIDE,a=this.planes;for(let d=0;d<this.planes.length;++d){let m=d<31?1<<d:0;if(d<31&&(A&m)===0)continue;let y=a[d],_=r.intersectPlane(y);if(_===Tt.OUTSIDE)return t.MASK_OUTSIDE;_===Tt.INTERSECTING&&(i|=m)}return i}}return t.MASK_OUTSIDE=4294967295,t.MASK_INSIDE=0,t.MASK_INDETERMINATE=2147483647,t})();new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;new H;var Hr=new Tr$1;var Kw=new Tr$1;var Xw=new Tr$1;var so=new Tr$1;var xp=new Tr$1;function ic(t,e={}){let r=Nf.EPSILON20,A=10,i=0,a=0,d=Kw,m=Xw;d.identity(),m.copy(t);let y=r*Yw(m);for(;a<A&&Ww(m)>y;)Zw(m,so),xp.copy(so).transpose(),m.multiplyRight(so),m.multiplyLeft(xp),d.multiplyRight(so),++i>2&&(++a,i=0);return e.unitary=d.toTarget(e.unitary),e.diagonal=m.toTarget(e.diagonal),e}function Yw(t){let e=0;for(let r=0;r<9;++r){let A=t[r];e+=A*A}return Math.sqrt(e)}var nc=[1,0,0];var Ac=[2,2,1];function Ww(t){let e=0;for(let r=0;r<3;++r){let A=t[Hr.getElementIndex(Ac[r],nc[r])];e+=2*A*A}return Math.sqrt(e)}function Zw(t,e){let r=Nf.EPSILON15,A=0,i=1;for(let _=0;_<3;++_){let E=Math.abs(t[Hr.getElementIndex(Ac[_],nc[_])]);E>A&&(i=_,A=E)}let a=nc[i],d=Ac[i],m=1,y=0;if(Math.abs(t[Hr.getElementIndex(d,a)])>r){let _=t[Hr.getElementIndex(d,d)],E=t[Hr.getElementIndex(a,a)],x=t[Hr.getElementIndex(d,a)],v=(_-E)/2/x,F;v<0?F=-1/(-v+Math.sqrt(1+v*v)):F=1/(v+Math.sqrt(1+v*v)),m=1/Math.sqrt(1+F*F),y=F*m}return Tr$1.IDENTITY.to(e),e[Hr.getElementIndex(a,a)]=e[Hr.getElementIndex(d,d)]=m,e[Hr.getElementIndex(d,a)]=y,e[Hr.getElementIndex(a,d)]=-y,e}var pn=new H;var $w=new H;var eB=new H;var tB=new H;var rB=new H;var nB=new Tr$1;var AB={diagonal:new Tr$1,unitary:new Tr$1};function Ri(t,e=new Wr){if(!t||t.length===0)return e.halfAxes=new Tr$1([0,0,0,0,0,0,0,0,0]),e.center=new H,e;let r=t.length,A=new H(0,0,0);for(let Y of t)A.add(Y);let i=1/r;A.multiplyByScalar(i);let a=0,d=0,m=0,y=0,_=0,E=0;for(let Y of t){let k=pn.copy(Y).subtract(A);a+=k.x*k.x,d+=k.x*k.y,m+=k.x*k.z,y+=k.y*k.y,_+=k.y*k.z,E+=k.z*k.z}a*=i,d*=i,m*=i,y*=i,_*=i,E*=i;let x=nB;x[0]=a,x[1]=d,x[2]=m,x[3]=d,x[4]=y,x[5]=_,x[6]=m,x[7]=_,x[8]=E;let{unitary:v}=ic(x,AB),F=e.halfAxes.copy(v),N=F.getColumn(0,eB),U=F.getColumn(1,tB),q=F.getColumn(2,rB),X=-Number.MAX_VALUE,Z=-Number.MAX_VALUE,he=-Number.MAX_VALUE,_e=Number.MAX_VALUE,be=Number.MAX_VALUE,Te=Number.MAX_VALUE;for(let Y of t)pn.copy(Y),X=Math.max(pn.dot(N),X),Z=Math.max(pn.dot(U),Z),he=Math.max(pn.dot(q),he),_e=Math.min(pn.dot(N),_e),be=Math.min(pn.dot(U),be),Te=Math.min(pn.dot(q),Te);N=N.multiplyByScalar(.5*(_e+X)),U=U.multiplyByScalar(.5*(be+Z)),q=q.multiplyByScalar(.5*(Te+he)),e.center.copy(N).add(U).add(q);let Ee=$w.set(X-_e,Z-be,he-Te).multiplyByScalar(.5),se=new Tr$1([Ee[0],0,0,0,Ee[1],0,0,0,Ee[2]]);return e.halfAxes.multiplyRight(se),e}var CA=512;var Cp=3;var wp=[[.5,.5],[0,0],[0,1],[1,0],[1,1]];var Bp=wp.concat([[0,.5],[.5,0],[1,.5],[.5,1]]);var iB=Bp.concat([[.25,.5],[.75,.5]]);var sc=class t{constructor(e,r,A){this.x=e,this.y=r,this.z=A}get children(){if(!this._children){let e=this.x*2,r=this.y*2,A=this.z+1;this._children=[new t(e,r,A),new t(e,r+1,A),new t(e+1,r,A),new t(e+1,r+1,A)]}return this._children}update(e){let{viewport:r,cullingVolume:A,elevationBounds:i,minZ:a,maxZ:d,bounds:m,offset:y,project:_}=e,E=this.getBoundingVolume(i,y,_);if(m&&!this.insideBounds(m)||A.computeVisibility(E)<0)return!1;if(!this.childVisible){let{z:v}=this;if(v<d&&v>=a){let F=E.distanceTo(r.cameraPosition)*r.scale/r.height;v+=Math.floor(Math.log2(F))}if(v>=d)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(let v of this.children)v.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(let r of this._children)r.getSelected(e);return e}insideBounds([e,r,A,i]){let d=CA/Math.pow(2,this.z);return this.x*d<A&&this.y*d<i&&(this.x+1)*d>e&&(this.y+1)*d>r}getBoundingVolume(e,r,A){if(A){let y=this.z<1?iB:this.z<2?Bp:wp,_=[];for(let E of y){let x=oo(this.x+E[0],this.y+E[1],this.z);x[2]=e[0],_.push(A(x)),e[0]!==e[1]&&(x[2]=e[1],_.push(A(x)))}return Ri(_)}let a=CA/Math.pow(2,this.z),d=this.x*a+r*CA,m=CA-(this.y+1)*a;return new xA([d,m,e[0]],[d+a,m+a,e[1]])}};function vp(t,e,r,A){let i=t instanceof ri&&t.resolution?t.projectPosition:null,d=new Ur(Object.values(t.getFrustumPlanes()).map(({normal:F,distance:N})=>new Ht(F.clone().negate(),N))),m=t.distanceScales.unitsPerMeter[2],y=r&&r[0]*m||0,_=r&&r[1]*m||0,E=t instanceof At&&t.pitch<=60?e:0;if(A){let[F,N,U,q]=A,X=ue$1([F,q]),Z=ue$1([U,N]);A=[X[0],CA-X[1],Z[0],CA-Z[1]]}let x=new sc(0,0,0),v={viewport:t,project:i,cullingVolume:d,elevationBounds:[y,_],minZ:E,maxZ:e,bounds:A,offset:0};if(x.update(v),t instanceof At&&t.subViewports&&t.subViewports.length>1){for(v.offset=-1;x.update(v)&&!(--v.offset<-Cp););for(v.offset=1;x.update(v)&&!(++v.offset>Cp););}return x.getSelected()}var Zr=512;var sB=[-Infinity,-Infinity,Infinity,Infinity];var mn={type:`object`,value:null,validate:(t,e)=>e.optional&&t===null||typeof t==`string`||Array.isArray(t)&&t.every(r=>typeof r==`string`),equal:(t,e)=>{if(t===e)return!0;if(!Array.isArray(t)||!Array.isArray(e))return!1;let r=t.length;if(r!==e.length)return!1;for(let A=0;A<r;A++)if(t[A]!==e[A])return!1;return!0}};function ao(t,e){let r=[e.transformAsPoint([t[0],t[1]]),e.transformAsPoint([t[2],t[1]]),e.transformAsPoint([t[0],t[3]]),e.transformAsPoint([t[2],t[3]])];return[Math.min(...r.map(i=>i[0])),Math.min(...r.map(i=>i[1])),Math.max(...r.map(i=>i[0])),Math.max(...r.map(i=>i[1]))]}function oB(t){return Math.abs(t.split(``).reduce((e,r)=>(e<<5)-e+r.charCodeAt(0)|0,0))}function $r(t,e){if(!t||!t.length)return null;let{index:r,id:A}=e;if(Array.isArray(t)){let a=oB(A)%t.length;t=t[a]}let i=t;for(let a of Object.keys(r)){let d=new RegExp(`{${a}}`,`g`);i=i.replace(d,String(r[a]))}return Number.isInteger(r.y)&&Number.isInteger(r.z)&&(i=i.replace(/\{-y\}/g,String(Math.pow(2,r.z)-r.y-1))),i}function aB(t,e,r){let A;if(e&&e.length===2){let[i,a]=e,d=t.getBounds({z:i}),m=t.getBounds({z:a});A=[Math.min(d[0],m[0]),Math.min(d[1],m[1]),Math.max(d[2],m[2]),Math.max(d[3],m[3])]}else A=t.getBounds();return t.isGeospatial?[Math.max(A[0],r[0]),Math.max(A[1],r[1]),Math.min(A[2],r[2]),Math.min(A[3],r[3])]:[Math.max(Math.min(A[0],r[2]),r[0]),Math.max(Math.min(A[1],r[3]),r[1]),Math.min(Math.max(A[2],r[0]),r[2]),Math.min(Math.max(A[3],r[1]),r[3])]}function Ip({viewport:t,z:e,cullRect:r}){return(t.subViewports||[t]).map(i=>oc(i,e||0,r))}function oc(t,e,r){if(!Array.isArray(e)){let a=r.x-t.x,d=r.y-t.y,{width:m,height:y}=r,_={targetZ:e},E=t.unproject([a,d],_),x=t.unproject([a+m,d],_),v=t.unproject([a,d+y],_),F=t.unproject([a+m,d+y],_);return[Math.min(E[0],x[0],v[0],F[0]),Math.min(E[1],x[1],v[1],F[1]),Math.max(E[0],x[0],v[0],F[0]),Math.max(E[1],x[1],v[1],F[1])]}let A=oc(t,e[0],r),i=oc(t,e[1],r);return[Math.min(A[0],i[0]),Math.min(A[1],i[1]),Math.max(A[2],i[2]),Math.max(A[3],i[3])]}function cB(t,e,r){return r?ao(t,r).map(i=>i*e/Zr):t.map(A=>A*e/Zr)}function ac(t,e){return Math.pow(2,t)*Zr/e}function oo(t,e,r){let A=ac(r,Zr),i=t/A*360-180,a=Math.PI-2*Math.PI*e/A;return[i,180/Math.PI*Math.atan(.5*(Math.exp(a)-Math.exp(-a)))]}function Mp(t,e,r,A){let i=ac(r,A);return[t/i*Zr,e/i*Zr]}function cc(t,e,r,A,i=Zr){if(t.isGeospatial){let[_,E]=oo(e,r,A),[x,v]=oo(e+1,r+1,A);return{west:_,north:E,east:x,south:v}}let[a,d]=Mp(e,r,A,i),[m,y]=Mp(e+1,r+1,A,i);return{left:a,top:d,right:m,bottom:y}}function lB(t,e,r,A,i){let[m,y,_,E]=cB(aB(t,null,A),ac(e,r),i),x=[];for(let v=Math.floor(m);v<_;v++)for(let F=Math.floor(y);F<E;F++)x.push({x:v,y:F,z:e});return x}function lc({viewport:t,maxZoom:e,minZoom:r,zRange:A,extent:i,tileSize:a=Zr,modelMatrix:d,modelMatrixInverse:m,zoomOffset:y=0,visibleMinZoom:_,visibleMaxZoom:E}){let x=t.isGeospatial?Math.round(t.zoom+Math.log2(Zr/a)+y):Math.ceil(t.zoom+y);if(typeof r==`number`&&Number.isFinite(r)&&x<r){if(!i)return[];x=r}if(typeof e==`number`&&Number.isFinite(e)&&x>e&&(x=e),_!=null&&t.zoom<_)return[];if(E!=null&&t.zoom>E)return[];let v=i;return d&&m&&i&&!t.isGeospatial&&(v=ao(i,d)),t.isGeospatial?vp(t,x,A,i):lB(t,x,a,v||sB,m)}function uc(t){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(t)}function fc(t){return Number.isFinite(t.west)&&Number.isFinite(t.north)&&Number.isFinite(t.east)&&Number.isFinite(t.south)}function Sp(t){let e={},r;return A=>{for(let i in A)if(!uB(A[i],e[i])){r=t(A),e=A;break}return r}}function uB(t,e){if(t===e)return!0;if(Array.isArray(t)){let r=t.length;if(!e||e.length!==r)return!1;for(let A=0;A<r;A++)if(t[A]!==e[A])return!1;return!0}return!1}var Fp=1;var co=2;var fB=`never`;var hB=`no-overlap`;var Pi=`best-available`;var dB=5;var pB={[Pi]:gB,[hB]:yB,[fB]:()=>{}};var mB={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:()=>{}};var wA=class{constructor(e){this._getCullBounds=Sp(Ip),this.opts=r(r({},mB),e),this.setOptions(this.opts),this.onTileLoad=r=>{this.opts.onTileLoad?.(r),this.opts.maxCacheByteSize!==null&&(this._cacheByteSize+=r.byteLength,this._resizeCache())},this._requestScheduler=new Mo$1({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 D,this._modelMatrixInverse=new D}get tiles(){return this._tiles}get selectedTiles(){return this._selectedTiles}get isLoaded(){return this._selectedTiles!==null&&this._selectedTiles.every(e=>e.isLoaded)}get needsReload(){return this._selectedTiles!==null&&this._selectedTiles.some(e=>e.needsReload)}setOptions(e){Object.assign(this.opts,e),Number.isFinite(e.maxZoom)&&(this._maxZoom=Math.floor(e.maxZoom)),Number.isFinite(e.minZoom)&&(this._minZoom=Math.ceil(e.minZoom)),this._viewport=null}finalize(){for(let e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(let e of this._cache.keys()){let r=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(r)?this._cache.delete(e):r.setNeedsReload()}}update(e,{zRange:r,modelMatrix:A}={zRange:null,modelMatrix:null}){let i=A?new D(A):new D,a=!i.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!De(this._zRange,r)||a){a&&(this._modelMatrixInverse=i.clone().invert(),this._modelMatrix=i),this._viewport=e,this._zRange=r;let m=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:r,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=m.map(y=>this._getTile(y,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(m=>this._getTile(m.index,!0)));let d=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),d&&this._frameNumber++,this._frameNumber}isTileVisible(e,r,A){if(!e.isVisible)return!1;if(r&&this._viewport){let i=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:r}),{bbox:a}=e;for(let[d,m,y,_]of i){let E;if(`west`in a)E=a.west<y&&a.east>d&&a.south<_&&a.north>m;else{if(A&&!D.IDENTITY.equals(A)){let[F,N,U,q]=ao([a.left,a.top,a.right,a.bottom],A);a={left:F,top:N,right:U,bottom:q}}let x=Math.min(a.top,a.bottom),v=Math.max(a.top,a.bottom);E=a.left<y&&a.right>d&&x<_&&v>m}if(E)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:r,minZoom:A,zRange:i,modelMatrix:a,modelMatrixInverse:d}){let{tileSize:m,extent:y,zoomOffset:_,visibleMinZoom:E,visibleMaxZoom:x}=this.opts;return lc({viewport:e,maxZoom:r,minZoom:A,zRange:i,tileSize:m,extent:y,modelMatrix:a,modelMatrixInverse:d,zoomOffset:_,visibleMinZoom:E,visibleMaxZoom:x})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){let{tileSize:r}=this.opts;return{bbox:cc(this._viewport,e.x,e.y,e.z,r)}}getParentIndex(e){return{x:Math.floor(e.x/2),y:Math.floor(e.y/2),z:e.z-1}}updateTileStates(){let e=this.opts.refinementStrategy||Pi,r=new Array(this._cache.size),A=0;for(let i of this._cache.values())r[A++]=i.isVisible,i.isSelected=!1,i.isVisible=!1;for(let i of this._selectedTiles)i.isSelected=!0,i.isVisible=!0;(typeof e==`function`?e:pB[e])(Array.from(this._cache.values())),A=0;for(let i of this._cache.values())if(r[A++]!==i.isVisible)return!0;return!1}_pruneRequests(){let{maxRequests:e=0}=this.opts,r=[],A=0;for(let i of this._cache.values())i.isLoading&&(A++,!i.isSelected&&!i.isVisible&&r.push(i));for(;e>0&&A>e&&r.length>0;)r.shift().abort(),A--}_rebuildTree(){let{_cache:e}=this;for(let r of e.values())r.parent=null,r.children&&(r.children.length=0);for(let r of e.values()){let A=this._getNearestAncestor(r);r.parent=A,A?.children&&A.children.push(r)}}_resizeCache(){let{_cache:e,opts:r}=this,A=r.maxCacheSize??(r.maxCacheByteSize!==null?Infinity:dB*this.selectedTiles.length),i=r.maxCacheByteSize??Infinity;if(e.size>A||this._cacheByteSize>i){for(let[d,m]of e)if(!m.isVisible&&!m.isSelected&&(this._cacheByteSize-=r.maxCacheByteSize!==null?m.byteLength:0,e.delete(d),this.opts.onTileUnload?.(m)),e.size<=A&&this._cacheByteSize<=i)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((d,m)=>d.zoom-m.zoom),this._dirty=!1)}_getTile(e,r){let A=this.getTileId(e),i=this._cache.get(A),a=!1;return!i&&r?(i=new EA(e),Object.assign(i,this.getTileMetadata(i.index)),Object.assign(i,{id:A,zoom:this.getTileZoom(i.index)}),a=!0,this._cache.set(A,i),this._dirty=!0):i&&i.needsReload&&(a=!0),i&&a&&i.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),i}_getNearestAncestor(e){let{_minZoom:r=0}=this,A=e.index;for(;this.getTileZoom(A)>r;){A=this.getParentIndex(A);let i=this._getTile(A);if(i)return i}return null}};function gB(t){for(let e of t)e.state=0;for(let e of t)e.isSelected&&!Lp(e)&&hc(e);for(let e of t)e.isVisible=!!(e.state&co)}function yB(t){for(let r of t)r.state=0;for(let r of t)r.isSelected&&Lp(r);let e=Array.from(t).sort((r,A)=>r.zoom-A.zoom);for(let r of e)if(r.isVisible=!!(r.state&co),r.children&&(r.isVisible||r.state&Fp))for(let A of r.children)A.state=Fp;else r.isSelected&&hc(r)}function Lp(t){let e=t;for(;e;){if(e.isLoaded||e.content)return e.state|=co,!0;e=e.parent}return!1}function hc(t){for(let e of t.children)e.isLoaded||e.content?e.state|=co:hc(e)}var TB={TilesetClass:wA,data:{type:`data`,value:[]},dataComparator:mn.equal,renderSubLayers:{type:`function`,value:t=>new Ks$1(t)},getTileData:{type:`function`,optional:!0,value:null},onViewportLoad:{type:`function`,optional:!0,value:null},onTileLoad:{type:`function`,value:t=>{}},onTileUnload:{type:`function`,value:t=>{}},onTileError:{type:`function`,value:t=>console.error(t)},extent:{type:`array`,optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:Pi,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,visibleMinZoom:null,visibleMaxZoom:null};var BA=(()=>{class t extends Dv$1{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return!!this.state?.tileset?.selectedTiles?.every(r=>r.isLoaded&&(!r.content||!r.layers||r.layers.every(A=>A.isLoaded)))}shouldUpdateState({changeFlags:r}){return r.somethingChanged}updateState({changeFlags:r}){let{tileset:A}=this.state,i=r.propsOrDataChanged||r.updateTriggersChanged,a=r.dataChanged||r.updateTriggersChanged&&(r.updateTriggersChanged.all||r.updateTriggersChanged.getTileData);A?i&&(A.setOptions(this._getTilesetOptions()),a?A.reloadAll():A.tiles.forEach(d=>{d.layers=null})):(A=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:A})),this._updateTileset()}_getTilesetOptions(){let{tileSize:r,maxCacheSize:A,maxCacheByteSize:i,refinementStrategy:a,extent:d,maxZoom:m,minZoom:y,maxRequests:_,debounceTime:E,zoomOffset:x,visibleMinZoom:v,visibleMaxZoom:F}=this.props;return{maxCacheSize:A,maxCacheByteSize:i,maxZoom:m,minZoom:y,tileSize:r,refinementStrategy:a,extent:d,maxRequests:_,debounceTime:E,zoomOffset:x,visibleMinZoom:v,visibleMaxZoom:F,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){let r=this.state.tileset,{zRange:A,modelMatrix:i}=this.props,a=r.update(this.context.viewport,{zRange:A,modelMatrix:i}),{isLoaded:d}=r,m=this.state.isLoaded!==d,y=this.state.frameNumber!==a;d&&(m||y)&&this._onViewportLoad(),y&&this.setState({frameNumber:a}),this.state.isLoaded=d}_onViewportLoad(){let{tileset:r}=this.state,{onViewportLoad:A}=this.props;A&&A(r.selectedTiles)}_onTileLoad(r){this.props.onTileLoad(r),r.layers=null,this.setNeedsUpdate()}_onTileError(r,A){this.props.onTileError(r),A.layers=null,this.setNeedsUpdate()}_onTileUnload(r){this.props.onTileUnload(r)}getTileData(r){let{data:A,getTileData:i,fetch:a}=this.props,{signal:d}=r;return r.url=typeof A==`string`||Array.isArray(A)?$r(A,r):null,i?i(r):a&&r.url?a(r.url,{propName:`data`,layer:this,signal:d}):null}renderSubLayers(r){return this.props.renderSubLayers(r)}getSubLayerPropsByTile(r){return null}getPickingInfo(r){let A=r.sourceLayer,i=A.props.tile,a=r.info;return a.picked&&(a.tile=i),a.sourceTile=i,a.sourceTileSubLayer=A,a}_updateAutoHighlight(r){r.sourceTileSubLayer.updateAutoHighlight(r)}renderLayers(){let{visibleMinZoom:r$17,visibleMaxZoom:A,minZoom:i,extent:a}=this.props,d=this.context.viewport.zoom;if(r$17!=null&&d<r$17||A!=null&&d>A||i!=null&&!a&&d<i){for(let y of this.state.tileset.tiles)y.layers=null;return[]}return this.state.tileset.tiles.map(y=>{let _=this.getSubLayerPropsByTile(y);if(!(!y.isLoaded&&!y.content))if(y.layers)_&&y.layers[0]&&Object.keys(_).some(E=>y.layers[0].props[E]!==_[E])&&(y.layers=y.layers.map(E=>E.clone(_)));else y.layers=Mt(this.renderSubLayers(s(r(r({},this.props),this.getSubLayerProps({id:y.id,updateTriggers:this.props.updateTriggers})),{data:y.content,_offset:0,tile:y})),Boolean).map(x=>x.clone(r({tile:y},_)));return y.layers})}filterSubLayer({layer:r,cullRect:A}){let{tile:i}=r.props,{modelMatrix:a}=this.props;return this.state.tileset.isTileVisible(i,A,a?new D(a):null)}}return t.defaultProps=TB,t.layerName=`TileLayer`,t})();var Rp=`layout(std140) uniform tripsUniforms {
|
|
6
|
-
bool fadeTrail;
|
|
7
|
-
float trailLength;
|
|
8
|
-
float currentTime;
|
|
9
|
-
} trips;
|
|
10
|
-
`;var Pp={name:`trips`,vs:Rp,fs:Rp,uniformTypes:{fadeTrail:`f32`,trailLength:`f32`,currentTime:`f32`}};var bB={fadeTrail:!0,trailLength:{type:`number`,value:120,min:0},currentTime:{type:`number`,value:0,min:0},getTimestamps:{type:`accessor`,value:t=>t.timestamps}};var xB=(()=>{class t extends ye$2{getShaders(){let r=super.getShaders();return r.inject={"vs:#decl":`in float instanceTimestamps;
|
|
11
|
-
in float instanceNextTimestamps;
|
|
12
|
-
out float vTime;
|
|
13
|
-
`,"vs:#main-end":`vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength;
|
|
14
|
-
`,"fs:#decl":`in float vTime;
|
|
15
|
-
`,"fs:#main-start":`if(vTime > trips.currentTime || (trips.fadeTrail && (vTime < trips.currentTime - trips.trailLength))) {
|
|
16
|
-
discard;
|
|
17
|
-
}
|
|
18
|
-
`,"fs:DECKGL_FILTER_COLOR":`if(trips.fadeTrail) {
|
|
19
|
-
color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength;
|
|
20
|
-
}
|
|
21
|
-
`},r.modules=[...r.modules,Pp],r}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:`getTimestamps`,shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw(r){let{fadeTrail:A,trailLength:i,currentTime:a}=this.props,d={fadeTrail:A,trailLength:i,currentTime:a};this.state.model.shaderInputs.setProps({trips:d}),super.draw(r)}}return t.layerName=`TripsLayer`,t.defaultProps=bB,t})();var CB=10;function wB(t,e){let r$18;return t==null?r$18=e:typeof t==`object`?r$18=s(r({},t),{coverage:e}):r$18={getHexagon:t,coverage:e},r$18}var BB=s(r({},_s$1.defaultProps),{highPrecision:`auto`,coverage:{type:`number`,min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:`accessor`,value:t=>t.hexagon},extruded:!0});var vA=class t extends Dv$1{initializeState(){t._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:e}){return this._shouldUseHighPrecision()?e.propsOrDataChanged:e.somethingChanged}updateState({props:e,changeFlags:r}){if(e.highPrecision!==!0&&(r.dataChanged||r.updateTriggersChanged&&r.updateTriggersChanged.getHexagon)){let A=this._calculateH3DataProps();this.setState(A)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let e=-1,r=!1,A=!1,{iterable:i,objectInfo:a}=fi(this.props.data);for(let d of i){a.index++;let m=this.props.getHexagon(d,a),y=xd(m);if(e<0){if(e=y,!this.props.highPrecision)break}else if(e!==y){A=!0;break}if(Ed(m)){r=!0;break}}return{resolution:e,edgeLengthKM:e>=0?Md(e,`km`):0,hasMultipleRes:A,hasPentagon:r}}_shouldUseHighPrecision(){if(this.props.highPrecision===`auto`){let{resolution:e,hasPentagon:r,hasMultipleRes:A}=this.state,{viewport:i}=this.context;return!!i?.resolution||A||r||e>=0&&e<=5}return this.props.highPrecision}_updateVertices(e){if(this._shouldUseHighPrecision())return;let{resolution:r,edgeLengthKM:A,centerHex:i}=this.state;if(r<0)return;let a=this.props.centerHexagon||Cd(e.latitude,e.longitude,r);if(i===a)return;if(i)try{if(vd(i,a)*A<CB)return}catch{}let{unitsPerMeter:d}=e.distanceScales,m=v0(a),[y,_]=gi(a),[E,x]=e.projectFlat([_,y]);m=m.map(v=>{let F=e.projectFlat(v);return[(F[0]-E)/d[0],(F[1]-x)/d[1]]}),this.setState({centerHex:a,vertices:m})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){let{elevationScale:e,material:r,coverage:A,extruded:i,wireframe:a,stroked:d,filled:m,lineWidthUnits:y,lineWidthScale:_,lineWidthMinPixels:E,lineWidthMaxPixels:x,getFillColor:v,getElevation:F,getLineColor:N,getLineWidth:U,transitions:q,updateTriggers:X}=this.props;return{elevationScale:e,extruded:i,coverage:A,wireframe:a,stroked:d,filled:m,lineWidthUnits:y,lineWidthScale:_,lineWidthMinPixels:E,lineWidthMaxPixels:x,material:r,getElevation:F,getFillColor:v,getLineColor:N,getLineWidth:U,transitions:q,updateTriggers:{getFillColor:X.getFillColor,getElevation:X.getElevation,getLineColor:X.getLineColor,getLineWidth:X.getLineWidth}}}_renderPolygonLayer(){let{data:e,getHexagon:r,updateTriggers:A,coverage:i}=this.props,a=this.getSubLayerClass(`hexagon-cell-hifi`,_s$1),d=this._getForwardProps();return d.updateTriggers.getPolygon=wB(A.getHexagon,i),new a(d,this.getSubLayerProps({id:`hexagon-cell-hifi`,updateTriggers:d.updateTriggers}),{data:e,_normalize:!1,_windingOrder:`CCW`,positionFormat:`XY`,getPolygon:(m,y)=>{return Hs(v0(r(m,y),i))}})}_renderColumnLayer(){let{data:e,getHexagon:r,updateTriggers:A}=this.props,i=this.getSubLayerClass(`hexagon-cell`,dt$1),a=this._getForwardProps();return a.updateTriggers.getPosition=A.getHexagon,new i(a,this.getSubLayerProps({id:`hexagon-cell`,flatShading:!0,updateTriggers:a.updateTriggers}),{data:e,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:Id.bind(null,r)})}};vA.defaultProps=BB;vA.layerName=`H3HexagonLayer`;vA._checkH3Lib=()=>{};var dc=vA;var vB={getHexagons:{type:`accessor`,value:t=>t.hexagons}};var IB=(()=>{class t extends Ir{initializeState(){dc._checkH3Lib()}updateState({props:r,changeFlags:A}){if(A.dataChanged||A.updateTriggersChanged&&A.updateTriggersChanged.getHexagons){let{data:i,getHexagons:a}=r,d=[],{iterable:m,objectInfo:y}=fi(i);for(let _ of m){y.index++;let x=Bd(a(_,y),!0);for(let v of x){for(let F of v)Us(F);d.push(this.getSubLayerRow({polygon:v},_,y.index))}}this.setState({polygons:d})}}indexToBounds(){let{getElevation:r,getFillColor:A,getLineColor:i,getLineWidth:a}=this.props;return{data:this.state.polygons,getPolygon:d=>d.polygon,getElevation:this.getSubLayerAccessor(r),getFillColor:this.getSubLayerAccessor(A),getLineColor:this.getSubLayerAccessor(i),getLineWidth:this.getSubLayerAccessor(a)}}}return t.layerName=`H3ClusterLayer`,t.defaultProps=vB,t})();var pc=Math.PI/180;var lo=new Float32Array(16);var Dp=new Float32Array(12);function Np(t,e,r){let A=e[0]*pc,i=e[1]*pc,a=e[2]*pc,d=Math.sin(a),m=Math.sin(A),y=Math.sin(i),_=Math.cos(a),E=Math.cos(A),x=Math.cos(i),v=r[0],F=r[1],N=r[2];t[0]=v*x*E,t[1]=v*y*E,t[2]=v*-m,t[3]=F*(-y*_+x*m*d),t[4]=F*(x*_+y*m*d),t[5]=F*E*d,t[6]=N*(y*d+x*m*_),t[7]=N*(-x*d+y*m*_),t[8]=N*E*_}function Op(t){return t[0]=t[0],t[1]=t[1],t[2]=t[2],t[3]=t[4],t[4]=t[5],t[5]=t[6],t[6]=t[8],t[7]=t[9],t[8]=t[10],t[9]=t[12],t[10]=t[13],t[11]=t[14],t.subarray(0,12)}var uo={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(t,{startRow:e,endRow:r}){let{data:A,getOrientation:i,getScale:a,getTranslation:d,getTransformMatrix:m}=this.props,y=Array.isArray(m),_=y&&m.length===16,E=Array.isArray(a),x=Array.isArray(i),v=Array.isArray(d),F=_||!y&&!!m(A[0]);F?t.constant=_:t.constant=x&&E&&v;let N=t.value;if(t.constant){let U;F?(lo.set(m),U=Op(lo)):(U=Dp,Np(U,i,a),U.set(d,9)),t.value=new Float32Array(U)}else{let U=e*t.size,{iterable:q,objectInfo:X}=fi(A,e,r);for(let Z of q){X.index++;let he;if(F)lo.set(_?m:m(Z,X)),he=Op(lo);else{he=Dp;let _e=x?i:i(Z,X),be=E?a:a(Z,X);Np(he,_e,be),he.set(v?d:d(Z,X),9)}N[U++]=he[0],N[U++]=he[1],N[U++]=he[2],N[U++]=he[3],N[U++]=he[4],N[U++]=he[5],N[U++]=he[6],N[U++]=he[7],N[U++]=he[8],N[U++]=he[9],N[U++]=he[10],N[U++]=he[11]}}}};function fo(t,e){return e===`cartesian`||e===`meter-offsets`||e==="default"&&!t.isGeospatial}var Gp=`layout(std140) uniform simpleMeshUniforms {
|
|
22
|
-
float sizeScale;
|
|
23
|
-
bool composeModelMatrix;
|
|
24
|
-
bool hasTexture;
|
|
25
|
-
bool flatShading;
|
|
26
|
-
} simpleMesh;
|
|
27
|
-
`;var kp={name:`simpleMesh`,vs:Gp,fs:Gp,uniformTypes:{sizeScale:`f32`,composeModelMatrix:`f32`,hasTexture:`f32`,flatShading:`f32`}};var Up=`#version 300 es
|
|
28
|
-
#define SHADER_NAME simple-mesh-layer-vs
|
|
29
|
-
in vec3 positions;
|
|
30
|
-
in vec3 normals;
|
|
31
|
-
in vec3 colors;
|
|
32
|
-
in vec2 texCoords;
|
|
33
|
-
in vec3 instancePositions;
|
|
34
|
-
in vec3 instancePositions64Low;
|
|
35
|
-
in vec4 instanceColors;
|
|
36
|
-
in vec3 instancePickingColors;
|
|
37
|
-
in vec3 instanceModelMatrixCol0;
|
|
38
|
-
in vec3 instanceModelMatrixCol1;
|
|
39
|
-
in vec3 instanceModelMatrixCol2;
|
|
40
|
-
in vec3 instanceTranslation;
|
|
41
|
-
out vec2 vTexCoord;
|
|
42
|
-
out vec3 cameraPosition;
|
|
43
|
-
out vec3 normals_commonspace;
|
|
44
|
-
out vec4 position_commonspace;
|
|
45
|
-
out vec4 vColor;
|
|
46
|
-
void main(void) {
|
|
47
|
-
geometry.worldPosition = instancePositions;
|
|
48
|
-
geometry.uv = texCoords;
|
|
49
|
-
geometry.pickingColor = instancePickingColors;
|
|
50
|
-
vTexCoord = texCoords;
|
|
51
|
-
cameraPosition = project.cameraPosition;
|
|
52
|
-
vColor = vec4(colors * instanceColors.rgb, instanceColors.a);
|
|
53
|
-
mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);
|
|
54
|
-
vec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale + instanceTranslation;
|
|
55
|
-
if (simpleMesh.composeModelMatrix) {
|
|
56
|
-
DECKGL_FILTER_SIZE(pos, geometry);
|
|
57
|
-
normals_commonspace = project_normal(instanceModelMatrix * normals);
|
|
58
|
-
geometry.worldPosition += pos;
|
|
59
|
-
gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace);
|
|
60
|
-
geometry.position = position_commonspace;
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
pos = project_size(pos);
|
|
64
|
-
DECKGL_FILTER_SIZE(pos, geometry);
|
|
65
|
-
gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace);
|
|
66
|
-
geometry.position = position_commonspace;
|
|
67
|
-
normals_commonspace = project_normal(instanceModelMatrix * normals);
|
|
68
|
-
}
|
|
69
|
-
geometry.normal = normals_commonspace;
|
|
70
|
-
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
71
|
-
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
72
|
-
}
|
|
73
|
-
`;var Hp=`#version 300 es
|
|
74
|
-
#define SHADER_NAME simple-mesh-layer-fs
|
|
75
|
-
precision highp float;
|
|
76
|
-
uniform sampler2D sampler;
|
|
77
|
-
in vec2 vTexCoord;
|
|
78
|
-
in vec3 cameraPosition;
|
|
79
|
-
in vec3 normals_commonspace;
|
|
80
|
-
in vec4 position_commonspace;
|
|
81
|
-
in vec4 vColor;
|
|
82
|
-
out vec4 fragColor;
|
|
83
|
-
void main(void) {
|
|
84
|
-
geometry.uv = vTexCoord;
|
|
85
|
-
vec3 normal;
|
|
86
|
-
if (simpleMesh.flatShading) {
|
|
87
|
-
normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));
|
|
88
|
-
} else {
|
|
89
|
-
normal = normals_commonspace;
|
|
90
|
-
}
|
|
91
|
-
vec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor;
|
|
92
|
-
DECKGL_FILTER_COLOR(color, geometry);
|
|
93
|
-
vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);
|
|
94
|
-
fragColor = vec4(lightColor, color.a * layer.opacity);
|
|
95
|
-
}
|
|
96
|
-
`;function mc(t){let e=Infinity,r=Infinity,A=Infinity,i=-Infinity,a=-Infinity,d=-Infinity,m=t.POSITION?t.POSITION.value:[],y=m&&m.length;for(let _=0;_<y;_+=3){let E=m[_],x=m[_+1],v=m[_+2];e=E<e?E:e,r=x<r?x:r,A=v<A?v:A,i=E>i?E:i,a=x>a?x:a,d=v>d?v:d}return[[e,r,A],[i,a,d]]}function gc(t){let e=t.positions||t.POSITION;C.assert(e,`no "postions" or "POSITION" attribute in mesh`);let r=e.value.length/e.size,A=t.COLOR_0||t.colors;A||(A={size:3,value:new Float32Array(r*3).fill(1)});let i=t.NORMAL||t.normals;i||(i={size:3,value:new Float32Array(r*3).fill(0)});let a=t.TEXCOORD_0||t.texCoords;return a||(a={size:2,value:new Float32Array(r*2).fill(0)}),{positions:e,colors:A,normals:i,texCoords:a}}function Vp(t){return t instanceof Zr$1?(t.attributes=gc(t.attributes),t):t.attributes?new Zr$1(s(r({},t),{topology:`triangle-list`,attributes:gc(t.attributes)})):new Zr$1({topology:`triangle-list`,attributes:gc(t)})}var FB={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:t=>t.position},getColor:{type:`accessor`,value:[0,0,0,255]},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}};var MA=(()=>{class t extends gc$1{getShaders(){return super.getShaders({vs:Up,fs:Hp,modules:[Qh$1,rn$1,ou,kp]})}getBounds(){if(this.props._instanced)return super.getBounds();let r=this.state.positionBounds;if(r)return r;let{mesh:A}=this.props;if(!A)return null;if(r=A.header?.boundingBox,!r){let{attributes:i}=Vp(A);i.POSITION=i.POSITION||i.positions,r=mc(i)}return this.state.positionBounds=r,r}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:uo}),this.setState({emptyTexture:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})})}updateState(r){super.updateState(r);let{props:A,oldProps:i,changeFlags:a}=r;if(A.mesh!==i.mesh||a.extensionsChanged){if(this.state.positionBounds=null,this.state.model?.destroy(),A.mesh){this.state.model=this.getModel(A.mesh);let d=A.mesh.attributes||A.mesh;this.setState({hasNormals:!!(d.NORMAL||d.normals)})}this.getAttributeManager().invalidateAll()}A.texture!==i.texture&&A.texture instanceof N&&this.setTexture(A.texture),this.state.model&&this.state.model.setTopology(this.props.wireframe?`line-strip`:`triangle-list`)}finalizeState(r){super.finalizeState(r),this.state.emptyTexture.delete()}draw({uniforms:r}){let{model:A}=this.state;if(!A)return;let{viewport:i,renderPass:a}=this.context,{sizeScale:d,coordinateSystem:m,_instanced:y}=this.props,_={sizeScale:d,composeModelMatrix:!y||fo(i,m),flatShading:!this.state.hasNormals};A.shaderInputs.setProps({simpleMesh:_}),A.draw(a)}get isLoaded(){return!!(this.state?.model&&super.isLoaded)}getModel(r$19){let A=new Kt$1(this.context.device,s(r({},this.getShaders()),{id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:Vp(r$19),isInstanced:!0})),{texture:i}=this.props,{emptyTexture:a}=this.state,d={sampler:i||a,hasTexture:!!i};return A.shaderInputs.setProps({simpleMesh:d}),A}setTexture(r){let{emptyTexture:A,model:i}=this.state;if(i){let a={sampler:r||A,hasTexture:!!r};i.shaderInputs.setProps({simpleMesh:a})}}}return t.defaultProps=FB,t.layerName=`SimpleMeshLayer`,t})();var jp=`4.4.4`;var ho={TRANSCODER:`basis_transcoder.js`,TRANSCODER_WASM:`basis_transcoder.wasm`,ENCODER:`basis_encoder.js`,ENCODER_WASM:`basis_encoder.wasm`};var Qp;async function Tc(t){Nc$1(t.modules);return Kp$1(`basis`)||(Qp||=RB(t),await Qp)}async function RB(t){let e=null,r=null;return[e,r]=await Promise.all([await id$1(ho.TRANSCODER,`textures`,t),await id$1(ho.TRANSCODER_WASM,`textures`,t)]),e=e||globalThis.BASIS,await PB(e,r)}function PB(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(A=>{t(r).then(i=>{let{BasisFile:a,initializeBasis:d}=i;d(),A({BasisFile:a})})})}var yc;async function _c(t){let e=t.modules||{};return e.basisEncoder?e.basisEncoder:(yc=yc||DB(t),await yc)}async function DB(t){let e=null,r=null;return[e,r]=await Promise.all([await id$1(ho.ENCODER,`textures`,t),await id$1(ho.ENCODER_WASM,`textures`,t)]),e=e||globalThis.BASIS,await NB(e,r)}function NB(t,e){let r={};return e&&(r.wasmBinary=e),new Promise(A=>{t(r).then(i=>{let{BasisFile:a,KTX2File:d,initializeBasis:m,BasisEncoder:y}=i;m(),A({BasisFile:a,KTX2File:d,BasisEncoder:y})})})}var OB=[``,`WEBKIT_`,`MOZ_`];var zp={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 po=null;function Jp(t){if(!po){t=t||GB()||void 0,po=new Set;for(let e of OB)for(let r in zp)if(t&&t.getExtension(`${e}${r}`))for(let A of zp[r])po.add(A)}return po}function GB(){try{return document.createElement(`canvas`).getContext(`webgl`)}catch{return null}}var lr=[171,75,84,88,32,50,48,187,13,10,26,10];function qp(t){let e=new Uint8Array(t);return!(e.byteLength<lr.length||e[0]!==lr[0]||e[1]!==lr[1]||e[2]!==lr[2]||e[3]!==lr[3]||e[4]!==lr[4]||e[5]!==lr[5]||e[6]!==lr[6]||e[7]!==lr[7]||e[8]!==lr[8]||e[9]!==lr[9]||e[10]!==lr[10]||e[11]!==lr[11])}var Kp=Promise.resolve();var Yp={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`}};Object.freeze(Object.keys(Yp));async function HB(t){let e=Kp,r;Kp=new Promise(A=>{r=A}),await e;try{return await t()}finally{r()}}async function Wp(t,e={}){let r=rd$1(e);return await HB(async()=>{if(!e.basis?.containerFormat||e.basis.containerFormat===`auto`){if(qp(t))return Xp((await _c(r)).KTX2File,t,e);let{BasisFile:A}=await Tc(r);return bc(A,t,e)}if(e.basis.module===`encoder`){let A=await _c(r);return e.basis.containerFormat===`ktx2`?Xp(A.KTX2File,t,e):bc(A.BasisFile,t,e)}else{let{BasisFile:i}=await Tc(r);return bc(i,t,e)}})}function bc(t,e,r){let A=new t(new Uint8Array(e));try{if(!A.startTranscoding())throw new Error(`Failed to start basis transcoding`);let i=A.getNumImages(),a=[];for(let d=0;d<i;d++){let m=A.getNumLevels(d),y=[];for(let _=0;_<m;_++)y.push(VB(A,d,_,r));a.push(y)}return a}finally{A.close(),A.delete()}}function VB(t,e,r$20,A){let i=t.getImageWidth(e,r$20),a=t.getImageHeight(e,r$20),d=t.getHasAlpha(),{compressed:m,format:y,basisFormat:_,textureFormat:E}=Zp(A,d),x=t.getImageTranscodedSizeInBytes(e,r$20,_),v=new Uint8Array(x);if(!t.transcodeImage(v,e,r$20,_,0,0))throw new Error(`failed to start Basis transcoding`);return s(r(r({shape:`texture-level`,width:i,height:a,data:v,compressed:m},y!==void 0?{format:y}:{}),E!==void 0?{textureFormat:E}:{}),{hasAlpha:d})}function Xp(t,e,r){let A=new t(new Uint8Array(e));try{if(!A.startTranscoding())throw new Error(`failed to start KTX2 transcoding`);let i=A.getLevels(),a=[];for(let d=0;d<i;d++)a.push(jB(A,d,r));return[a]}finally{A.close(),A.delete()}}function jB(t,e,r$21){let{alphaFlag:A,height:i,width:a}=t.getImageLevelInfo(e,0,0),{compressed:d,format:m,basisFormat:y,textureFormat:_}=Zp(r$21,A),E=t.getImageTranscodedSizeInBytes(e,0,0,y),x=new Uint8Array(E);if(!t.transcodeImage(x,e,0,0,y,0,-1,-1))throw new Error(`Failed to transcode KTX2 image`);return s(r(r({shape:`texture-level`,width:a,height:i,data:x,compressed:d},m!==void 0?{format:m}:{}),_!==void 0?{textureFormat:_}:{}),{levelSize:E,hasAlpha:A})}function Zp(t,e){let r=t.basis?.format||`auto`;r===`auto`&&(r=t.basis?.supportedTextureFormats?Di(t.basis.supportedTextureFormats):Di()),typeof r==`object`&&(r=e?r.alpha:r.noAlpha);let i=Yp[r.toLowerCase()];if(!i)throw new Error(`Unknown Basis format ${r}`);return i}function Di(t=Jp()){let e=new Set(t);return IA(e,[`astc-4x4-unorm`,`astc-4x4-unorm-srgb`])?`astc-4x4`:IA(e,[`bc7-rgba-unorm`,`bc7-rgba-unorm-srgb`])?{alpha:`bc7-m5`,noAlpha:`bc7-m6-opaque-only`}:IA(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`}:IA(e,[`pvrtc-rgb4unorm-webgl`,`pvrtc-rgba4unorm-webgl`,`pvrtc-rgb2unorm-webgl`,`pvrtc-rgba2unorm-webgl`])?{alpha:`pvrtc1-4-rgba`,noAlpha:`pvrtc1-4-rgb`}:IA(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`:IA(e,[`atc-rgb-unorm-webgl`,`atc-rgba-unorm-webgl`,`atc-rgbai-unorm-webgl`])?{alpha:`atc-rgba-interpolated-alpha`,noAlpha:`atc-rgb`}:`rgb565`}function IA(t,e){return e.some(r=>t.has(r))}var Ec=s(r({},{dataType:null,batchType:null,name:`Basis`,id:`basis`,module:`textures`,version:jp,worker:!0,extensions:[`basis`,`ktx2`],mimeTypes:[`application/octet-stream`,`image/ktx2`],tests:[`sB`],binary:!0,options:{basis:{format:`auto`,containerFormat:`auto`,module:`transcoder`}}}),{parse:Wp});var Ze=(function(t){return t[t.POINTS=0]=`POINTS`,t[t.LINES=1]=`LINES`,t[t.LINE_LOOP=2]=`LINE_LOOP`,t[t.LINE_STRIP=3]=`LINE_STRIP`,t[t.TRIANGLES=4]=`TRIANGLES`,t[t.TRIANGLE_STRIP=5]=`TRIANGLE_STRIP`,t[t.TRIANGLE_FAN=6]=`TRIANGLE_FAN`,t[t.ONE=1]=`ONE`,t[t.SRC_ALPHA=770]=`SRC_ALPHA`,t[t.ONE_MINUS_SRC_ALPHA=771]=`ONE_MINUS_SRC_ALPHA`,t[t.FUNC_ADD=32774]=`FUNC_ADD`,t[t.LINEAR=9729]=`LINEAR`,t[t.NEAREST=9728]=`NEAREST`,t[t.NEAREST_MIPMAP_NEAREST=9984]=`NEAREST_MIPMAP_NEAREST`,t[t.LINEAR_MIPMAP_NEAREST=9985]=`LINEAR_MIPMAP_NEAREST`,t[t.NEAREST_MIPMAP_LINEAR=9986]=`NEAREST_MIPMAP_LINEAR`,t[t.LINEAR_MIPMAP_LINEAR=9987]=`LINEAR_MIPMAP_LINEAR`,t[t.TEXTURE_MIN_FILTER=10241]=`TEXTURE_MIN_FILTER`,t[t.TEXTURE_WRAP_S=10242]=`TEXTURE_WRAP_S`,t[t.TEXTURE_WRAP_T=10243]=`TEXTURE_WRAP_T`,t[t.REPEAT=10497]=`REPEAT`,t[t.CLAMP_TO_EDGE=33071]=`CLAMP_TO_EDGE`,t[t.MIRRORED_REPEAT=33648]=`MIRRORED_REPEAT`,t[t.UNPACK_FLIP_Y_WEBGL=37440]=`UNPACK_FLIP_Y_WEBGL`,t})(Ze||{});function tm(t){return r({addressModeU:em(t.wrapS),addressModeV:em(t.wrapT),magFilter:QB(t.magFilter)},zB(t.minFilter))}function em(t){switch(t){case Ze.CLAMP_TO_EDGE:return`clamp-to-edge`;case Ze.REPEAT:return`repeat`;case Ze.MIRRORED_REPEAT:return`mirror-repeat`;default:return}}function QB(t){switch(t){case Ze.NEAREST:return`nearest`;case Ze.LINEAR:return`linear`;default:return}}function zB(t){switch(t){case Ze.NEAREST:return{minFilter:`nearest`};case Ze.LINEAR:return{minFilter:`linear`};case Ze.NEAREST_MIPMAP_NEAREST:return{minFilter:`nearest`,mipmapFilter:`nearest`};case Ze.LINEAR_MIPMAP_NEAREST:return{minFilter:`linear`,mipmapFilter:`nearest`};case Ze.NEAREST_MIPMAP_LINEAR:return{minFilter:`nearest`,mipmapFilter:`linear`};case Ze.LINEAR_MIPMAP_LINEAR:return{minFilter:`linear`,mipmapFilter:`linear`};default:return{}}}var xc=[Gt(`baseColor`,`pbr_baseColorSampler`,`baseColorTexture`,[`pbrMetallicRoughness`,`baseColorTexture`]),Gt(`metallicRoughness`,`pbr_metallicRoughnessSampler`,`metallicRoughnessTexture`,[`pbrMetallicRoughness`,`metallicRoughnessTexture`]),Gt(`normal`,`pbr_normalSampler`,`normalTexture`,[`normalTexture`]),Gt(`occlusion`,`pbr_occlusionSampler`,`occlusionTexture`,[`occlusionTexture`]),Gt(`emissive`,`pbr_emissiveSampler`,`emissiveTexture`,[`emissiveTexture`]),Gt(`specularColor`,`pbr_specularColorSampler`,`KHR_materials_specular.specularColorTexture`,[`extensions`,`KHR_materials_specular`,`specularColorTexture`]),Gt(`specularIntensity`,`pbr_specularIntensitySampler`,`KHR_materials_specular.specularTexture`,[`extensions`,`KHR_materials_specular`,`specularTexture`]),Gt(`transmission`,`pbr_transmissionSampler`,`KHR_materials_transmission.transmissionTexture`,[`extensions`,`KHR_materials_transmission`,`transmissionTexture`]),Gt(`thickness`,`pbr_thicknessSampler`,`KHR_materials_volume.thicknessTexture`,[`extensions`,`KHR_materials_volume`,`thicknessTexture`]),Gt(`clearcoat`,`pbr_clearcoatSampler`,`KHR_materials_clearcoat.clearcoatTexture`,[`extensions`,`KHR_materials_clearcoat`,`clearcoatTexture`]),Gt(`clearcoatRoughness`,`pbr_clearcoatRoughnessSampler`,`KHR_materials_clearcoat.clearcoatRoughnessTexture`,[`extensions`,`KHR_materials_clearcoat`,`clearcoatRoughnessTexture`]),Gt(`clearcoatNormal`,`pbr_clearcoatNormalSampler`,`KHR_materials_clearcoat.clearcoatNormalTexture`,[`extensions`,`KHR_materials_clearcoat`,`clearcoatNormalTexture`]),Gt(`sheenColor`,`pbr_sheenColorSampler`,`KHR_materials_sheen.sheenColorTexture`,[`extensions`,`KHR_materials_sheen`,`sheenColorTexture`]),Gt(`sheenRoughness`,`pbr_sheenRoughnessSampler`,`KHR_materials_sheen.sheenRoughnessTexture`,[`extensions`,`KHR_materials_sheen`,`sheenRoughnessTexture`]),Gt(`iridescence`,`pbr_iridescenceSampler`,`KHR_materials_iridescence.iridescenceTexture`,[`extensions`,`KHR_materials_iridescence`,`iridescenceTexture`]),Gt(`iridescenceThickness`,`pbr_iridescenceThicknessSampler`,`KHR_materials_iridescence.iridescenceThicknessTexture`,[`extensions`,`KHR_materials_iridescence`,`iridescenceThicknessTexture`]),Gt(`anisotropy`,`pbr_anisotropySampler`,`KHR_materials_anisotropy.anisotropyTexture`,[`extensions`,`KHR_materials_anisotropy`,`anisotropyTexture`])];var JB=new Map(xc.map(t=>[t.slot,t]));function Gt(t,e,r,A){return{slot:t,binding:e,displayName:r,pathSegments:A,uvSetUniform:`${t}UVSet`,uvTransformUniform:`${t}UVTransform`}}function rm(){return xc}function go(t){let e=JB.get(t);if(!e)throw new Error(`Unknown PBR texture transform slot ${t}`);return e}function yo(t){let e=t?.extensions?.KHR_texture_transform;return{offset:e?.offset?[e.offset[0],e.offset[1]]:[0,0],rotation:e?.rotation??0,scale:e?.scale?[e.scale[0],e.scale[1]]:[1,1]}}function Cc(t){return t?.extensions?.KHR_texture_transform?.texCoord??t?.texCoord??0}function nm(t){return xc.find(e=>e.pathSegments.length===t.length&&e.pathSegments.every((r,A)=>t[A]===r))||null}function mo(t){let e=new Tr$1().set(1,0,0,0,1,0,t.offset[0],t.offset[1],1),r=new Tr$1().set(Math.cos(t.rotation),Math.sin(t.rotation),0,-Math.sin(t.rotation),Math.cos(t.rotation),0,0,0,1),A=new Tr$1().set(t.scale[0],0,0,0,t.scale[1],0,0,0,1);return Array.from(e.multiplyRight(r).multiplyRight(A))}function Am(t,e){let r=new Tr$1(mo(t)),A=new Tr$1(mo(e)),i=new Tr$1(r).invert();return Array.from(A.multiplyRight(i))}function SA(t,e,r,A){let i={defines:{MANUAL_SRGB:!0,SRGB_FAST_APPROXIMATION:!0},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};i.defines.USE_TEX_LOD=!0;let{imageBasedLightingEnvironment:a}=A;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]),A?.pbrDebug&&(i.defines.PBR_DEBUG=!0,i.uniforms.scaleDiffBaseMR=[0,0,0,0],i.uniforms.scaleFGDSpec=[0,0,0,0]),r.NORMAL&&(i.defines.HAS_NORMALS=!0),r.TANGENT&&A?.useTangents&&(i.defines.HAS_TANGENTS=!0),r.TEXCOORD_0&&(i.defines.HAS_UV=!0),r.TEXCOORD_1&&(i.defines.HAS_UV_1=!0),r.JOINTS_0&&r.WEIGHTS_0&&(i.defines.HAS_SKIN=!0),r.COLOR_0&&(i.defines.HAS_COLORS=!0),A?.imageBasedLightingEnvironment&&(i.defines.USE_IBL=!0),A?.lights&&(i.defines.USE_LIGHTS=!0),e&&(A.validateAttributes!==!1&&qB(e,r),XB(t,e,i,r,A.gltf)),i}function qB(t,e){let r=im(t,0);r.length>0&&!e.TEXCOORD_0&&d.warn(`glTF material uses ${r.join(`, `)} but primitive is missing TEXCOORD_0; textured shading will sample the default UV coordinates`)();let A=im(t,1);if(A.length>0&&!e.TEXCOORD_1&&d.warn(`glTF material uses ${A.join(`, `)} with TEXCOORD_1 but primitive is missing TEXCOORD_1; those textures will be skipped`)(),!!(t.unlit||t.extensions?.KHR_materials_unlit)||e.NORMAL)return;let a=t.normalTexture?`lit PBR shading with normalTexture`:`lit PBR shading`;d.warn(`glTF primitive is missing NORMAL while using ${a}; shading will fall back to geometric normals`)()}function im(t,e){let r=[];for(let A of rm()){let i=KB(t,A.pathSegments);i&&Cc(i)===e&&r.push(A.displayName)}return r}function KB(t,e){let r=t;for(let A of e)if(r=r?.[A],!r)return null;return r}function XB(t,e,r,A,i){if(r.uniforms.unlit=!!(e.unlit||e.extensions?.KHR_materials_unlit),e.pbrMetallicRoughness&&ZB(t,e.pbrMetallicRoughness,r,A,i),e.normalTexture){kt(t,e.normalTexture,`pbr_normalSampler`,r,{featureOptions:{define:`HAS_NORMALMAP`,enabledUniformName:`normalMapEnabled`},gltf:i,attributes:A,textureTransformSlot:`normal`});let{scale:a=1}=e.normalTexture;r.uniforms.normalScale=a}if(e.occlusionTexture){kt(t,e.occlusionTexture,`pbr_occlusionSampler`,r,{featureOptions:{define:`HAS_OCCLUSIONMAP`,enabledUniformName:`occlusionMapEnabled`},gltf:i,attributes:A,textureTransformSlot:`occlusion`});let{strength:a=1}=e.occlusionTexture;r.uniforms.occlusionStrength=a}switch(r.uniforms.emissiveFactor=e.emissiveFactor||[0,0,0],e.emissiveTexture&&kt(t,e.emissiveTexture,`pbr_emissiveSampler`,r,{featureOptions:{define:`HAS_EMISSIVEMAP`,enabledUniformName:`emissiveMapEnabled`},gltf:i,attributes:A,textureTransformSlot:`emissive`}),$B(t,e.extensions,r,i,A),e.alphaMode||`OPAQUE`){case`OPAQUE`:break;case`MASK`:{let{alphaCutoff:a=.5}=e;r.defines.ALPHA_CUTOFF=!0,r.uniforms.alphaCutoffEnabled=!0,r.uniforms.alphaCutoff=a;break}case`BLEND`:d.warn(`glTF BLEND alphaMode might not work well because it requires mesh sorting`)(),YB(r);break}}function YB(t){t.parameters.blend=!0,t.parameters.blendColorOperation=`add`,t.parameters.blendColorSrcFactor=`src-alpha`,t.parameters.blendColorDstFactor=`one-minus-src-alpha`,t.parameters.blendAlphaOperation=`add`,t.parameters.blendAlphaSrcFactor=`one`,t.parameters.blendAlphaDstFactor=`one-minus-src-alpha`,t.glParameters.blend=!0,t.glParameters.blendEquation=Ze.FUNC_ADD,t.glParameters.blendFunc=[Ze.SRC_ALPHA,Ze.ONE_MINUS_SRC_ALPHA,Ze.ONE,Ze.ONE_MINUS_SRC_ALPHA]}function WB(t){t.parameters.blend=!0,t.parameters.depthWriteEnabled=!1,t.parameters.blendColorOperation=`add`,t.parameters.blendColorSrcFactor=`one`,t.parameters.blendColorDstFactor=`one-minus-src-alpha`,t.parameters.blendAlphaOperation=`add`,t.parameters.blendAlphaSrcFactor=`one`,t.parameters.blendAlphaDstFactor=`one-minus-src-alpha`,t.glParameters.blend=!0,t.glParameters.depthMask=!1,t.glParameters.blendEquation=Ze.FUNC_ADD,t.glParameters.blendFunc=[Ze.ONE,Ze.ONE_MINUS_SRC_ALPHA,Ze.ONE,Ze.ONE_MINUS_SRC_ALPHA]}function ZB(t,e,r,A,i){e.baseColorTexture&&kt(t,e.baseColorTexture,`pbr_baseColorSampler`,r,{featureOptions:{define:`HAS_BASECOLORMAP`,enabledUniformName:`baseColorMapEnabled`},gltf:i,attributes:A,textureTransformSlot:`baseColor`}),r.uniforms.baseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&kt(t,e.metallicRoughnessTexture,`pbr_metallicRoughnessSampler`,r,{featureOptions:{define:`HAS_METALROUGHNESSMAP`,enabledUniformName:`metallicRoughnessMapEnabled`},gltf:i,attributes:A,textureTransformSlot:`metallicRoughness`});let{metallicFactor:a=1,roughnessFactor:d=1}=e;r.uniforms.metallicRoughnessValues=[a,d]}function $B(t,e,r,A,i={}){e&&(e3(e)&&(r.defines.USE_MATERIAL_EXTENSIONS=!0),t3(t,e.KHR_materials_specular,r,A,i),r3(e.KHR_materials_ior,r),n3(t,e.KHR_materials_transmission,r,A,i),A3(t,e.KHR_materials_volume,r,A,i),i3(t,e.KHR_materials_clearcoat,r,A,i),s3(t,e.KHR_materials_sheen,r,A,i),o3(t,e.KHR_materials_iridescence,r,A,i),a3(t,e.KHR_materials_anisotropy,r,A,i),c3(e.KHR_materials_emissive_strength,r))}function e3(t){return!!(t.KHR_materials_specular||t.KHR_materials_ior||t.KHR_materials_transmission||t.KHR_materials_volume||t.KHR_materials_clearcoat||t.KHR_materials_sheen||t.KHR_materials_iridescence||t.KHR_materials_anisotropy)}function t3(t,e,r,A,i={}){e&&(e.specularColorFactor&&(r.uniforms.specularColorFactor=e.specularColorFactor),e.specularFactor!==void 0&&(r.uniforms.specularIntensityFactor=e.specularFactor),e.specularColorTexture&&kt(t,e.specularColorTexture,`pbr_specularColorSampler`,r,{featureOptions:{define:`HAS_SPECULARCOLORMAP`,enabledUniformName:`specularColorMapEnabled`},gltf:A,attributes:i,textureTransformSlot:`specularColor`}),e.specularTexture&&kt(t,e.specularTexture,`pbr_specularIntensitySampler`,r,{featureOptions:{define:`HAS_SPECULARINTENSITYMAP`,enabledUniformName:`specularIntensityMapEnabled`},gltf:A,attributes:i,textureTransformSlot:`specularIntensity`}))}function r3(t,e){t?.ior!==void 0&&(e.uniforms.ior=t.ior)}function n3(t,e,r,A,i={}){e&&(e.transmissionFactor!==void 0&&(r.uniforms.transmissionFactor=e.transmissionFactor),e.transmissionTexture&&kt(t,e.transmissionTexture,`pbr_transmissionSampler`,r,{featureOptions:{define:`HAS_TRANSMISSIONMAP`,enabledUniformName:`transmissionMapEnabled`},gltf:A,attributes:i,textureTransformSlot:`transmission`}),((e.transmissionFactor??0)>0||e.transmissionTexture)&&(d.warn(`KHR_materials_transmission uses a premultiplied-alpha blending approximation and may require mesh sorting`)(),WB(r)))}function A3(t,e,r,A,i={}){e&&(e.thicknessFactor!==void 0&&(r.uniforms.thicknessFactor=e.thicknessFactor),e.thicknessTexture&&kt(t,e.thicknessTexture,`pbr_thicknessSampler`,r,{featureOptions:{define:`HAS_THICKNESSMAP`},gltf:A,attributes:i,textureTransformSlot:`thickness`}),e.attenuationDistance!==void 0&&(r.uniforms.attenuationDistance=e.attenuationDistance),e.attenuationColor&&(r.uniforms.attenuationColor=e.attenuationColor))}function i3(t,e,r,A,i={}){e&&(e.clearcoatFactor!==void 0&&(r.uniforms.clearcoatFactor=e.clearcoatFactor),e.clearcoatRoughnessFactor!==void 0&&(r.uniforms.clearcoatRoughnessFactor=e.clearcoatRoughnessFactor),e.clearcoatTexture&&kt(t,e.clearcoatTexture,`pbr_clearcoatSampler`,r,{featureOptions:{define:`HAS_CLEARCOATMAP`,enabledUniformName:`clearcoatMapEnabled`},gltf:A,attributes:i,textureTransformSlot:`clearcoat`}),e.clearcoatRoughnessTexture&&kt(t,e.clearcoatRoughnessTexture,`pbr_clearcoatRoughnessSampler`,r,{featureOptions:{define:`HAS_CLEARCOATROUGHNESSMAP`,enabledUniformName:`clearcoatRoughnessMapEnabled`},gltf:A,attributes:i,textureTransformSlot:`clearcoatRoughness`}),e.clearcoatNormalTexture&&kt(t,e.clearcoatNormalTexture,`pbr_clearcoatNormalSampler`,r,{featureOptions:{define:`HAS_CLEARCOATNORMALMAP`},gltf:A,attributes:i,textureTransformSlot:`clearcoatNormal`}))}function s3(t,e,r,A,i={}){e&&(e.sheenColorFactor&&(r.uniforms.sheenColorFactor=e.sheenColorFactor),e.sheenRoughnessFactor!==void 0&&(r.uniforms.sheenRoughnessFactor=e.sheenRoughnessFactor),e.sheenColorTexture&&kt(t,e.sheenColorTexture,`pbr_sheenColorSampler`,r,{featureOptions:{define:`HAS_SHEENCOLORMAP`,enabledUniformName:`sheenColorMapEnabled`},gltf:A,attributes:i,textureTransformSlot:`sheenColor`}),e.sheenRoughnessTexture&&kt(t,e.sheenRoughnessTexture,`pbr_sheenRoughnessSampler`,r,{featureOptions:{define:`HAS_SHEENROUGHNESSMAP`,enabledUniformName:`sheenRoughnessMapEnabled`},gltf:A,attributes:i,textureTransformSlot:`sheenRoughness`}))}function o3(t,e,r,A,i={}){e&&(e.iridescenceFactor!==void 0&&(r.uniforms.iridescenceFactor=e.iridescenceFactor),e.iridescenceIor!==void 0&&(r.uniforms.iridescenceIor=e.iridescenceIor),(e.iridescenceThicknessMinimum!==void 0||e.iridescenceThicknessMaximum!==void 0)&&(r.uniforms.iridescenceThicknessRange=[e.iridescenceThicknessMinimum??100,e.iridescenceThicknessMaximum??400]),e.iridescenceTexture&&kt(t,e.iridescenceTexture,`pbr_iridescenceSampler`,r,{featureOptions:{define:`HAS_IRIDESCENCEMAP`,enabledUniformName:`iridescenceMapEnabled`},gltf:A,attributes:i,textureTransformSlot:`iridescence`}),e.iridescenceThicknessTexture&&kt(t,e.iridescenceThicknessTexture,`pbr_iridescenceThicknessSampler`,r,{featureOptions:{define:`HAS_IRIDESCENCETHICKNESSMAP`},gltf:A,attributes:i,textureTransformSlot:`iridescenceThickness`}))}function a3(t,e,r,A,i={}){e&&(e.anisotropyStrength!==void 0&&(r.uniforms.anisotropyStrength=e.anisotropyStrength),e.anisotropyRotation!==void 0&&(r.uniforms.anisotropyRotation=e.anisotropyRotation),e.anisotropyTexture&&kt(t,e.anisotropyTexture,`pbr_anisotropySampler`,r,{featureOptions:{define:`HAS_ANISOTROPYMAP`,enabledUniformName:`anisotropyMapEnabled`},gltf:A,attributes:i,textureTransformSlot:`anisotropy`}))}function c3(t,e){t?.emissiveStrength!==void 0&&(e.uniforms.emissiveStrength=t.emissiveStrength)}function kt(t,e,r$22,A,i={}){let{featureOptions:a={},gltf:d$1,attributes:m={},textureTransformSlot:y}=i,{define:_,enabledUniformName:E}=a,x=Cc(e);if(x>1){d.warn(`Skipping ${String(r$22)} because ${x} is not supported; only TEXCOORD_0 and TEXCOORD_1 are currently available`)();return}if(x===1&&!m.TEXCOORD_1){d.warn(`Skipping ${String(r$22)} because it requires TEXCOORD_1 but the primitive does not provide TEXCOORD_1`)();return}let v=l3(e,d$1),F=v.texture?.source?.image;if(!F){d.warn(`Skipping unresolved glTF texture for ${String(r$22)}`)();return}let N=r({wrapS:10497,wrapT:10497,minFilter:9729,magFilter:9729},v?.texture?.sampler),U={id:v.uniformName||v.id,sampler:tm(N)},q;if(F.compressed)q=f3(t,F,U);else{let{width:X,height:Z}=t.getExternalImageSize(F);q=t.createTexture(s(r({},U),{width:X,height:Z,data:F}))}if(A.bindings[r$22]=q,_&&(A.defines[_]=!0),E&&(A.uniforms[E]=!0),y){let X=go(y);A.uniforms[X.uvSetUniform]=x,A.uniforms[X.uvTransformUniform]=mo(yo(e))}A.generatedTextures.push(q)}function l3(t,e){if(t.texture||t.index===void 0||!e?.textures)return t;let r$23=e.textures[t.index];return r$23?`texture`in r$23&&r$23.texture?s(r(r({},r$23),t),{texture:r$23.texture}):`source`in r$23?s(r({},t),{texture:r$23}):t:t}function wc(t,e){return t.createTexture(s(r({},e),{format:`rgba8unorm`,width:1,height:1,mipLevels:1}))}function sm(t){return t.textureFormat}function u3(t,e,r){let{blockWidth:A=1,blockHeight:i=1}=I.getInfo(r),a=1;for(let d=1;;d++){let m=Math.max(1,t>>d),y=Math.max(1,e>>d);if(m<A||y<i)break;a++}return a}function f3(t,e,r$24){let A;if(Array.isArray(e.data)&&e.data[0]?.data?A=e.data:`mipmaps`in e&&Array.isArray(e.mipmaps)?A=e.mipmaps:A=[],A.length===0||!A[0]?.data)return d.warn(`createCompressedTexture: compressed image has no valid mip levels, creating fallback`)(),wc(t,r$24);let i=A[0],a=i.width??e.width??0,d$2=i.height??e.height??0;if(a<=0||d$2<=0)return d.warn(`createCompressedTexture: base level has invalid dimensions, creating fallback`)(),wc(t,r$24);let m=sm(i);if(!m)return d.warn(`createCompressedTexture: compressed image has no textureFormat, creating fallback`)(),wc(t,r$24);let y=u3(a,d$2,m),_=Math.min(A.length,y),E=1;for(let v=1;v<_;v++){let F=A[v];if(!F.data||F.width<=0||F.height<=0){d.warn(`createCompressedTexture: mip level ${v} has invalid data/dimensions, truncating`)();break}let N=sm(F);if(N&&N!==m){d.warn(`createCompressedTexture: mip level ${v} format '${N}' differs from base '${m}', truncating`)();break}let U=Math.max(1,a>>v),q=Math.max(1,d$2>>v);if(F.width!==U||F.height!==q){d.warn(`createCompressedTexture: mip level ${v} dimensions ${F.width}x${F.height} don't match expected ${U}x${q}, truncating`)();break}E++}let x=t.createTexture(s(r({},r$24),{format:m,usage:N.TEXTURE|N.COPY_DST,width:a,height:d$2,mipLevels:E,data:i.data}));for(let v=1;v<E;v++)x.writeData(A[v].data,{width:A[v].width,height:A[v].height,mipLevel:v});return x}function om(t,e={}){let r=t.lights||t.extensions?.KHR_lights_punctual?.lights;if(!r||!Array.isArray(r)||r.length===0)return[];let A=[],i=g3(t.nodes||[]),a=new Map;for(let d of t.nodes||[]){let m=d.light??d.extensions?.KHR_lights_punctual?.light;if(typeof m!=`number`)continue;let y=r[m];if(!y)continue;let _=h3(y.color||[1,1,1],e.useByteColors??!0),E=y.intensity??1,x=y.range,v=am(d,i,a);switch(y.type){case`directional`:A.push(p3(v,_,E));break;case`point`:A.push(d3(v,_,E,x));break;case`spot`:A.push(m3(v,_,E,x,y.spot));break;default:break}}return A}function h3(t,e){return e?t.map(r=>r*255):Xi$1(t,!1)}function d3(t,e,r,A){let i=cm(t),a=[1,0,0];return A!==void 0&&A>0&&(a=[1,0,1/(A*A)]),{type:`point`,position:i,color:e,intensity:r,attenuation:a}}function p3(t,e,r){return{type:`directional`,direction:lm(t),color:e,intensity:r}}function m3(t,e,r,A,i={}){let a=cm(t),d=lm(t),m=[1,0,0];return A!==void 0&&A>0&&(m=[1,0,1/(A*A)]),{type:`spot`,position:a,direction:d,color:e,intensity:r,attenuation:m,innerConeAngle:i.innerConeAngle??0,outerConeAngle:i.outerConeAngle??Math.PI/4}}function g3(t){let e=new Map;for(let r of t)for(let A of r.children||[])e.set(A.id,r);return e}function am(t,e,r){let A=r.get(t.id);if(A)return A;let i=y3(t),a=e.get(t.id),d=a?new D(am(a,e,r)).multiplyRight(i):i;return r.set(t.id,d),d}function y3(t){if(t.matrix)return new D(t.matrix);let e=new D;return t.translation&&e.translate(t.translation),t.rotation&&e.multiplyRight(new D().fromQuaternion(t.rotation)),t.scale&&e.scale(t.scale),e}function cm(t){return t.transformAsPoint([0,0,0])}function lm(t){return t.transformDirection([0,0,-1])}function um(t){switch(t){case Ze.POINTS:return`point-list`;case Ze.LINES:return`line-list`;case Ze.LINE_STRIP:return`line-strip`;case Ze.TRIANGLES:return`triangle-list`;case Ze.TRIANGLE_STRIP:return`triangle-strip`;default:throw new Error(String(t))}}var T3=`
|
|
97
|
-
struct VertexInputs {
|
|
98
|
-
@location(0) positions: vec3f,
|
|
99
|
-
#ifdef HAS_NORMALS
|
|
100
|
-
@location(1) normals: vec3f,
|
|
101
|
-
#endif
|
|
102
|
-
#ifdef HAS_TANGENTS
|
|
103
|
-
@location(2) TANGENT: vec4f,
|
|
104
|
-
#endif
|
|
105
|
-
#ifdef HAS_UV
|
|
106
|
-
@location(3) texCoords: vec2f,
|
|
107
|
-
#endif
|
|
108
|
-
#ifdef HAS_UV_1
|
|
109
|
-
@location(4) texCoords1: vec2f,
|
|
110
|
-
#endif
|
|
111
|
-
#ifdef HAS_SKIN
|
|
112
|
-
@location(5) JOINTS_0: vec4u,
|
|
113
|
-
@location(6) WEIGHTS_0: vec4f,
|
|
114
|
-
#endif
|
|
115
|
-
};
|
|
116
|
-
|
|
117
|
-
struct FragmentInputs {
|
|
118
|
-
@builtin(position) position: vec4f,
|
|
119
|
-
@location(0) pbrPosition: vec3f,
|
|
120
|
-
@location(1) pbrUV0: vec2f,
|
|
121
|
-
@location(2) pbrUV1: vec2f,
|
|
122
|
-
@location(3) pbrNormal: vec3f,
|
|
123
|
-
#ifdef HAS_TANGENTS
|
|
124
|
-
@location(4) pbrTangent: vec4f,
|
|
125
|
-
#endif
|
|
126
|
-
};
|
|
127
|
-
|
|
128
|
-
@vertex
|
|
129
|
-
fn vertexMain(inputs: VertexInputs) -> FragmentInputs {
|
|
130
|
-
var outputs: FragmentInputs;
|
|
131
|
-
var position = vec4f(inputs.positions, 1.0);
|
|
132
|
-
var normal = vec3f(0.0, 0.0, 1.0);
|
|
133
|
-
var tangent = vec4f(1.0, 0.0, 0.0, 1.0);
|
|
134
|
-
var uv0 = vec2f(0.0, 0.0);
|
|
135
|
-
var uv1 = vec2f(0.0, 0.0);
|
|
136
|
-
|
|
137
|
-
#ifdef HAS_NORMALS
|
|
138
|
-
normal = inputs.normals;
|
|
139
|
-
#endif
|
|
140
|
-
#ifdef HAS_UV
|
|
141
|
-
uv0 = inputs.texCoords;
|
|
142
|
-
#endif
|
|
143
|
-
#ifdef HAS_UV_1
|
|
144
|
-
uv1 = inputs.texCoords1;
|
|
145
|
-
#endif
|
|
146
|
-
#ifdef HAS_TANGENTS
|
|
147
|
-
tangent = inputs.TANGENT;
|
|
148
|
-
#endif
|
|
149
|
-
#ifdef HAS_SKIN
|
|
150
|
-
let skinMatrix = getSkinMatrix(inputs.WEIGHTS_0, inputs.JOINTS_0);
|
|
151
|
-
position = skinMatrix * position;
|
|
152
|
-
normal = normalize((skinMatrix * vec4f(normal, 0.0)).xyz);
|
|
153
|
-
#ifdef HAS_TANGENTS
|
|
154
|
-
tangent = vec4f(normalize((skinMatrix * vec4f(tangent.xyz, 0.0)).xyz), tangent.w);
|
|
155
|
-
#endif
|
|
156
|
-
#endif
|
|
157
|
-
|
|
158
|
-
let worldPosition = pbrProjection.modelMatrix * position;
|
|
159
|
-
|
|
160
|
-
#ifdef HAS_NORMALS
|
|
161
|
-
normal = normalize((pbrProjection.normalMatrix * vec4f(normal, 0.0)).xyz);
|
|
162
|
-
#endif
|
|
163
|
-
#ifdef HAS_TANGENTS
|
|
164
|
-
let worldTangent = normalize((pbrProjection.modelMatrix * vec4f(tangent.xyz, 0.0)).xyz);
|
|
165
|
-
outputs.pbrTangent = vec4f(worldTangent, tangent.w);
|
|
166
|
-
#endif
|
|
167
|
-
|
|
168
|
-
outputs.position = pbrProjection.modelViewProjectionMatrix * position;
|
|
169
|
-
outputs.pbrPosition = worldPosition.xyz / worldPosition.w;
|
|
170
|
-
outputs.pbrUV0 = uv0;
|
|
171
|
-
outputs.pbrUV1 = uv1;
|
|
172
|
-
outputs.pbrNormal = normal;
|
|
173
|
-
return outputs;
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
@fragment
|
|
177
|
-
fn fragmentMain(inputs: FragmentInputs) -> @location(0) vec4f {
|
|
178
|
-
fragmentInputs.pbr_vPosition = inputs.pbrPosition;
|
|
179
|
-
fragmentInputs.pbr_vUV0 = inputs.pbrUV0;
|
|
180
|
-
fragmentInputs.pbr_vUV1 = inputs.pbrUV1;
|
|
181
|
-
fragmentInputs.pbr_vNormal = inputs.pbrNormal;
|
|
182
|
-
#ifdef HAS_TANGENTS
|
|
183
|
-
let tangent = normalize(inputs.pbrTangent.xyz);
|
|
184
|
-
let bitangent = normalize(cross(inputs.pbrNormal, tangent)) * inputs.pbrTangent.w;
|
|
185
|
-
fragmentInputs.pbr_vTBN = mat3x3f(tangent, bitangent, inputs.pbrNormal);
|
|
186
|
-
#endif
|
|
187
|
-
return pbr_filterColor(vec4f(1.0));
|
|
188
|
-
}
|
|
189
|
-
`;var _3=`#version 300 es
|
|
190
|
-
|
|
191
|
-
// in vec4 POSITION;
|
|
192
|
-
in vec4 positions;
|
|
193
|
-
|
|
194
|
-
#ifdef HAS_NORMALS
|
|
195
|
-
// in vec4 NORMAL;
|
|
196
|
-
in vec4 normals;
|
|
197
|
-
#endif
|
|
198
|
-
|
|
199
|
-
#ifdef HAS_TANGENTS
|
|
200
|
-
in vec4 TANGENT;
|
|
201
|
-
#endif
|
|
202
|
-
|
|
203
|
-
#ifdef HAS_UV
|
|
204
|
-
// in vec2 TEXCOORD_0;
|
|
205
|
-
in vec2 texCoords;
|
|
206
|
-
#endif
|
|
207
|
-
|
|
208
|
-
#ifdef HAS_UV_1
|
|
209
|
-
in vec2 texCoords1;
|
|
210
|
-
#endif
|
|
211
|
-
|
|
212
|
-
#ifdef HAS_SKIN
|
|
213
|
-
in uvec4 JOINTS_0;
|
|
214
|
-
in vec4 WEIGHTS_0;
|
|
215
|
-
#endif
|
|
216
|
-
|
|
217
|
-
void main(void) {
|
|
218
|
-
vec4 _NORMAL = vec4(0.);
|
|
219
|
-
vec4 _TANGENT = vec4(0.);
|
|
220
|
-
vec2 _TEXCOORD_0 = vec2(0.);
|
|
221
|
-
vec2 _TEXCOORD_1 = vec2(0.);
|
|
222
|
-
|
|
223
|
-
#ifdef HAS_NORMALS
|
|
224
|
-
_NORMAL = normals;
|
|
225
|
-
#endif
|
|
226
|
-
|
|
227
|
-
#ifdef HAS_TANGENTS
|
|
228
|
-
_TANGENT = TANGENT;
|
|
229
|
-
#endif
|
|
230
|
-
|
|
231
|
-
#ifdef HAS_UV
|
|
232
|
-
_TEXCOORD_0 = texCoords;
|
|
233
|
-
#endif
|
|
234
|
-
|
|
235
|
-
#ifdef HAS_UV_1
|
|
236
|
-
_TEXCOORD_1 = texCoords1;
|
|
237
|
-
#endif
|
|
238
|
-
|
|
239
|
-
vec4 pos = positions;
|
|
240
|
-
|
|
241
|
-
#ifdef HAS_SKIN
|
|
242
|
-
mat4 skinMat = getSkinMatrix(WEIGHTS_0, JOINTS_0);
|
|
243
|
-
pos = skinMat * pos;
|
|
244
|
-
_NORMAL = skinMat * _NORMAL;
|
|
245
|
-
_TANGENT = vec4((skinMat * vec4(_TANGENT.xyz, 0.)).xyz, _TANGENT.w);
|
|
246
|
-
#endif
|
|
247
|
-
|
|
248
|
-
pbr_setPositionNormalTangentUV(pos, _NORMAL, _TANGENT, _TEXCOORD_0, _TEXCOORD_1);
|
|
249
|
-
gl_Position = pbrProjection.modelViewProjectionMatrix * pos;
|
|
250
|
-
}
|
|
251
|
-
`;var b3=`#version 300 es
|
|
252
|
-
out vec4 fragmentColor;
|
|
253
|
-
|
|
254
|
-
void main(void) {
|
|
255
|
-
vec3 pos = pbr_vPosition;
|
|
256
|
-
fragmentColor = pbr_filterColor(vec4(1.0));
|
|
257
|
-
}
|
|
258
|
-
`;function Bc(t,e){let r$25=e.materialFactory||new Jr(t,{modules:[mb$1]}),A=r({},e.parsedPPBRMaterial.uniforms);delete A.camera;let i=Object.fromEntries(Object.entries(r(r({},A),e.parsedPPBRMaterial.bindings)).filter(([d,m])=>r$25.ownsBinding(d)&&E3(m))),a=r$25.createMaterial({id:e.id,bindings:i});return a.setProps({pbrMaterial:A}),a}function fm(t,e){let{id:r$26,geometry:A,parsedPPBRMaterial:i,vertexCount:a,modelOptions:d$3={}}=e;d.info(4,`createGLTFModel defines: `,i.defines)();let m=[],_=s(r({id:r$26,source:T3,vs:_3,fs:b3,geometry:A,topology:A.topology,vertexCount:a,modules:[mb$1,ub$1]},d$3),{defines:r(r({},i.defines),d$3.defines),parameters:r(r(r({},{depthWriteEnabled:!0,depthCompare:`less`,depthFormat:`depth24plus`,cullMode:`back`}),i.parameters),d$3.parameters)}),E=e.material||Bc(t,{id:r$26?`${r$26}-material`:void 0,parsedPPBRMaterial:i});_.material=E;let x=new Kt$1(t,_),v=r(r(r(r({},i.uniforms),d$3.uniforms),i.bindings),d$3.bindings),F=x3(x.shaderInputs.getModules(),E,v);return x.shaderInputs.setProps(F),new Va({managedResources:m,model:x})}function E3(t){return t instanceof y||t instanceof xe$1||t instanceof te||t instanceof N||t instanceof ye$1}function x3(t,e,r){let A=new Map;for(let a of t){for(let d of Object.keys(a.uniformTypes||{}))A.set(d,a.name);for(let d of a.bindingLayout||[])A.set(d.name,a.name)}let i={};for(let[a,d]of Object.entries(r)){if(d===void 0)continue;let m=A.get(a);!m||e.ownsModule(m)||(i[m]||={},i[m][a]=d)}return i}var C3={modelOptions:{},pbrDebug:!1,imageBasedLightingEnvironment:void 0,lights:!0,useTangents:!1,useByteColors:!0};function hm(t,e,r$27={}){let A=r(r({},C3),r$27),i=new Jr(t,{modules:[mb$1]}),a=(e.materials||[]).map((x,v)=>Bc(t,{id:S3(x,v),parsedPPBRMaterial:SA(t,x,{},s(r({},A),{gltf:e,validateAttributes:!1})),materialFactory:i})),d=new Map;(e.materials||[]).forEach((x,v)=>{d.set(x.id,a[v])});let m=new Map;e.meshes.forEach((x,v)=>{let F=B3(t,x,e,d,A);m.set(x.id,F)});let y=new Map,_=new Map;return e.nodes.forEach((x,v)=>{let F=w3(t,x,A);y.set(v,F),_.set(x.id,F)}),e.nodes.forEach((x,v)=>{if(y.get(v).add((x.children??[]).map(({id:F})=>{let N=_.get(F);if(!N)throw new Error(`Cannot find child ${F} of node ${v}`);return N})),x.mesh){let F=m.get(x.mesh.id);if(!F)throw new Error(`Cannot find mesh child ${x.mesh.id} of node ${v}`);y.get(v).add(F)}}),{scenes:e.scenes.map(x=>{let v=(x.nodes||[]).map(({id:F})=>{let N=_.get(F);if(!N)throw new Error(`Cannot find child ${F} of scene ${x.name||x.id}`);return N});return new Fa({id:x.name||x.id,children:v})}),materials:a,gltfMeshIdToNodeMap:m,gltfNodeIdToNodeMap:_,gltfNodeIndexToNodeMap:y}}function w3(t,e,r){return new Fa({id:e.name||e.id,children:[],matrix:e.matrix,position:e.translation,rotation:e.rotation,scale:e.scale})}function B3(t,e,r,A,i){let d=(e.primitives||[]).map((y,_)=>v3({device:t,gltfPrimitive:y,primitiveIndex:_,gltfMesh:e,gltf:r,gltfMaterialIdToMaterialMap:A,options:i}));return new Fa({id:e.name||e.id,children:d})}function v3({device:t,gltfPrimitive:e,primitiveIndex:r$28,gltfMesh:A,gltf:i,gltfMaterialIdToMaterialMap:a,options:d}){let m=e.name||`${A.name||A.id}-primitive-${r$28}`,y=um(e.mode??4),_=e.indices?e.indices.count:M3(e.attributes),E=I3(m,e,y),x=SA(t,e.material,E.attributes,s(r({},d),{gltf:i})),v=fm(t,{id:m,geometry:E,material:e.material&&a.get(e.material.id)||null,parsedPPBRMaterial:x,modelOptions:d.modelOptions,vertexCount:_});return v.bounds=[e.attributes.POSITION.min,e.attributes.POSITION.max],v}function M3(t){let e=Infinity;for(let r of Object.values(t))if(r){let{value:A,size:i,components:a}=r,d=i??a;A?.length!==void 0&&d>=1&&(e=Math.min(e,A.length/d))}if(!Number.isFinite(e))throw new Error(`Could not determine vertex count from attributes`);return e}function I3(t,e,r){let A={};for(let[i,a]of Object.entries(e.attributes)){let{components:d,size:m,value:y,normalized:_}=a;A[i]={size:m??d,value:y,normalized:_}}return new Zr$1({id:t,topology:r,indices:e.indices?.value,attributes:A})}function S3(t,e){return t.name||t.id||`material-${e}`}function F3(t,e,r){switch(e){case`translation`:return t.setPosition(r).updateMatrix();case`rotation`:return t.setRotation(r).updateMatrix();case`scale`:return t.setScale(r).updateMatrix();default:return d.warn(`Bad animation path ${e}`)(),null}}function dm(t,{input:e,interpolation:r,output:A},i,a){let d=vc(t,{input:e,interpolation:r,output:A},a);d&&F3(i,a,d)}function vc(t,{input:e,interpolation:r,output:A},i){let a=e[e.length-1];if(!Number.isFinite(a)||a<=0)return A[0]||null;let d$4=t%a,m=e.findIndex(x=>x>=d$4);if(m<0)return A[A.length-1]||null;let y=Math.max(0,m-1),_=e[y],E=e[m];switch(r){case`STEP`:return A[y];case`LINEAR`:if(E>_){let x=(d$4-_)/(E-_);return L3(i,A[y],A[m],x)}return A[y]||null;case`CUBICSPLINE`:if(E>_){let x=(d$4-_)/(E-_),v=E-_,F=A[3*y+1],N=A[3*y+2],U=A[3*m+0],q=A[3*m+1];return R3({p0:F,outTangent0:N,inTangent1:U,p1:q,tDiff:v,ratio:x})}return A[3*y+1]||null;default:return d.warn(`Interpolation ${r} not supported`)(),null}}function L3(t,e,r,A){if(t===`rotation`)return new zs$1().slerp({start:e,target:r,ratio:A});let i=[];for(let a=0;a<e.length;a++)i[a]=A*r[a]+(1-A)*e[a];return i}function R3({p0:t,outTangent0:e,inTangent1:r,p1:A,tDiff:i,ratio:a}){let d=[];for(let m=0;m<t.length;m++){let y=e[m]*i,_=r[m]*i;d[m]=(2*Math.pow(a,3)-3*Math.pow(a,2)+1)*t[m]+(Math.pow(a,3)-2*Math.pow(a,2)+a)*y+(-2*Math.pow(a,3)+3*Math.pow(a,2))*A[m]+(Math.pow(a,3)-Math.pow(a,2))*_}return d}var Mc=class{animation;gltfNodeIdToNodeMap;materials;startTime=0;playing=!0;speed=1;materialTextureTransformState=new Map;constructor(e){if(this.animation=e.animation,this.gltfNodeIdToNodeMap=e.gltfNodeIdToNodeMap,this.materials=e.materials||[],this.animation.name||=`unnamed`,Object.assign(this,e),this.animation.channels.some(r=>r.type!==`node`)&&!this.materials.length)throw new Error(`Animation ${this.animation.name} targets materials, but GLTFAnimator was created without a materials array`)}setTime(e){if(!this.playing)return;let A=(e/1e3-this.startTime)*this.speed;this.animation.channels.forEach(i=>{if(i.type===`node`){let{sampler:m,targetNodeId:y,path:_}=i,E=this.gltfNodeIdToNodeMap.get(y);if(!E)throw new Error(`Cannot find animation target node ${y}`);dm(A,m,E,_);return}let a=this.materials[i.targetMaterialIndex];if(!a)throw new Error(`Cannot find animation target material ${i.targetMaterialIndex} for ${i.pointer}`);let d=vc(A,i.sampler);d&&(i.type===`material`?P3(a,i,d):O3(a,i,d,this.materialTextureTransformState))})}};var To=class{animations;constructor(e){this.animations=e.animations.map((r,A)=>{let i=r.name||`Animation-${A}`;return new Mc({gltfNodeIdToNodeMap:e.gltfNodeIdToNodeMap,materials:e.materials,animation:{name:i,channels:r.channels}})})}animate(e){d.warn(`GLTFAnimator#animate is deprecated. Use GLTFAnimator#setTime instead`)(),this.setTime(e)}setTime(e){this.animations.forEach(r=>r.setTime(e))}getAnimations(){return this.animations}};function P3(t,e,r){let A=e.component!==void 0?{[e.property]:N3(D3(t,e.property),e.component,r[0])}:{[e.property]:r.length===1?r[0]:r};t.setProps({pbrMaterial:A})}function D3(t,e){let A=t.shaderInputs.getUniformValues().pbrMaterial?.[e];return Array.isArray(A)?[...A]:[]}function N3(t,e,r){let A=[...t];return A[e]=r,A}function O3(t,e,r,A){let i=go(e.textureSlot),a=G3(A,t,e);switch(e.path){case`offset`:e.component!==void 0?a.offset[e.component]=r[0]:a.offset=[r[0],r[1]];break;case`rotation`:a.rotation=r[0];break;case`scale`:e.component!==void 0?a.scale[e.component]=r[0]:a.scale=[r[0],r[1]];break}t.setProps({pbrMaterial:{[i.uvTransformUniform]:Am(e.baseTransform,a)}})}function G3(t,e,r){let A=t.get(e)||{},i=A[r.textureSlot];return i||(i={offset:[...r.baseTransform.offset],rotation:r.baseTransform.rotation,scale:[...r.baseTransform.scale]},A[r.textureSlot]=i,t.set(e,A)),i}var k3={supportLevel:`none`,comment:`Not currently listed in the luma.gl glTF extension support registry.`};var pm={KHR_draco_mesh_compression:{supportLevel:`built-in`,comment:`Decoded by loaders.gl before luma.gl builds the scenegraph.`},EXT_meshopt_compression:{supportLevel:`built-in`,comment:`Meshopt-compressed primitives are decoded during load.`},KHR_mesh_quantization:{supportLevel:`built-in`,comment:`Quantized accessors are unpacked before geometry creation.`},KHR_lights_punctual:{supportLevel:`built-in`,comment:`Parsed into luma.gl Light objects.`},KHR_materials_unlit:{supportLevel:`built-in`,comment:`Unlit materials bypass the default lighting path.`},KHR_materials_emissive_strength:{supportLevel:`built-in`,comment:`Applied by the stock PBR shader.`},KHR_texture_basisu:{supportLevel:`built-in`,comment:`BasisU / KTX2 textures pass through when the device supports them.`},KHR_texture_transform:{supportLevel:`built-in`,comment:`UV transforms are applied during load.`},EXT_texture_webp:{supportLevel:`loader-only`,comment:`Texture source is resolved during load; final support depends on browser and device decode support.`},EXT_texture_avif:{supportLevel:`loader-only`,comment:`Texture source is resolved during load; final support depends on browser and device decode support.`},KHR_materials_specular:{supportLevel:`built-in`,comment:`The stock shader now applies specular factors and textures to the dielectric F0 term.`},KHR_materials_ior:{supportLevel:`built-in`,comment:`The stock shader now drives dielectric reflectance from the glTF IOR value.`},KHR_materials_transmission:{supportLevel:`built-in`,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`,comment:`Thickness and attenuation now tint transmitted light in the stock shader.`},KHR_materials_clearcoat:{supportLevel:`built-in`,comment:`The stock shader now adds a secondary clearcoat specular lobe.`},KHR_materials_sheen:{supportLevel:`built-in`,comment:`The stock shader now adds a sheen lobe for cloth-like materials.`},KHR_materials_iridescence:{supportLevel:`built-in`,comment:`The stock shader now tints specular response with a view-dependent thin-film iridescence approximation.`},KHR_materials_anisotropy:{supportLevel:`built-in`,comment:`The stock shader now shapes highlights and IBL response with an anisotropy-direction approximation.`},KHR_materials_pbrSpecularGlossiness:{supportLevel:`loader-only`,comment:`Extension data can be loaded, but it is not translated into the default metallic-roughness material path.`},KHR_materials_variants:{supportLevel:`loader-only`,comment:`Variant metadata can be loaded, but applications must choose and apply variants.`},EXT_mesh_gpu_instancing:{supportLevel:`none`,comment:`GPU instancing data is not yet converted into luma.gl instanced draw setup.`},KHR_node_visibility:{supportLevel:`none`,comment:`Node-visibility animations and toggles are not mapped onto runtime scenegraph state.`},KHR_animation_pointer:{supportLevel:`parsed-and-wired`,comment:`Selected node TRS, material factor, and KHR_texture_transform offset/rotation/scale pointers are wired to runtime updates; unsupported targets are skipped.`},KHR_materials_diffuse_transmission:{supportLevel:`none`,comment:`Diffuse-transmission shading is not implemented in the stock PBR shader.`},KHR_materials_dispersion:{supportLevel:`none`,comment:`Chromatic dispersion is not implemented in the stock PBR shader.`},KHR_materials_volume_scatter:{supportLevel:`none`,comment:`Volume scattering is not implemented in the stock PBR shader.`},KHR_xmp:{supportLevel:`none`,comment:`Metadata payloads remain in the loaded glTF, but luma.gl does not interpret them.`},KHR_xmp_json_ld:{supportLevel:`none`,comment:`Metadata is preserved in the glTF, but luma.gl does not interpret it.`},EXT_lights_image_based:{supportLevel:`none`,comment:`Use loadPBREnvironment() or custom environment setup instead.`},EXT_texture_video:{supportLevel:`none`,comment:`Video textures are not created automatically by the stock pipeline.`},MSFT_lod:{supportLevel:`none`,comment:`Level-of-detail switching is not implemented in the stock scenegraph loader.`}};function mm(t){let r=Array.from(U3(t)).sort().map(A=>{let i=pm[A]||k3;return[A,{extensionName:A,supported:i.supportLevel===`built-in`||i.supportLevel===`parsed-and-wired`,supportLevel:i.supportLevel,comment:i.comment}]});return new Map(r)}function Ic(t){return pm[t]||null}function U3(t){let e=t,r=new Set;return _o(r,t.extensionsUsed),_o(r,t.extensionsRequired),_o(r,e.extensionsRemoved),_o(r,Object.keys(t.extensions||{})),(e.lights?.length||(t.nodes||[]).some(A=>`light`in A))&&r.add(`KHR_lights_punctual`),(t.materials||[]).some(A=>{let i=A;return i.unlit||i.extensions?.KHR_materials_unlit})&&r.add(`KHR_materials_unlit`),r}function _o(t,e=[]){for(let r of e)t.add(r)}var H3={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16};var V3={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function Sc(t){let e=V3[t.componentType],r=H3[t.type],A=r*t.count,{buffer:i,byteOffset:a=0}=t.bufferView?.data??{};return{typedArray:new e(i,a+(t.byteOffset||0),A),components:r}}function gm(t){let e=t.animations||[],r=new Map,A=new Map;return e.flatMap((i,a)=>{let d=i.name||`Animation-${a}`,m=new Map,y=i.channels.flatMap(({sampler:_,target:E})=>{let x=m.get(_);if(!x){let F=i.samplers[_];if(!F)throw new Error(`Cannot find animation sampler ${_}`);let{input:N,interpolation:U=`LINEAR`,output:q}=F;x={input:Z3(t.accessors[N],r),interpolation:U,output:$3(t.accessors[q],A)},m.set(_,x)}let v=j3(t,E,x);return v?[v]:[]});return y.length?[{name:d,channels:y}]:[]})}function j3(t,e,r){if(e.path===`pointer`)return Q3(t,e,r);let A=ym(e.path);if(!A)return null;let i=t.nodes[e.node??0];if(!i)throw new Error(`Cannot find animation target ${e.node}`);return{type:`node`,sampler:r,targetNodeId:i.id,path:A}}function Q3(t,e,r){let A=e.extensions?.KHR_animation_pointer?.pointer;if(typeof A!=`string`||!A.startsWith(`/`))return d.warn(`KHR_animation_pointer channel is missing a valid JSON pointer and will be skipped`)(),null;let i=Y3(A);switch(i[0]){case`nodes`:return z3(t,i,r,A);case`materials`:return J3(t,i,r,A);default:return Ni(A,`top-level target "${i[0]}" has no runtime animation mapping`),null}}function z3(t,e,r,A){if(e.length!==3)return Ni(A,`node pointers must use /nodes/{index}/{translation|rotation|scale|weights}`),null;let i=Number(e[1]),a=t.nodes[i];if(!Number.isInteger(i)||!a)return d.warn(`KHR_animation_pointer target ${A} references a missing node and will be skipped`)(),null;let d$5=ym(e[2]);return d$5?d$5===`weights`?(d.warn(`KHR_animation_pointer target ${A} will be skipped because morph weights are not implemented in GLTFAnimator`)(),null):{type:`node`,sampler:r,targetNodeId:a.id,path:d$5}:(Ni(A,`node property "${e[2]}" has no runtime animation mapping`),null)}function J3(t,e,r$29,A){if(e.length<3)return Ni(A,`material pointers must include a material index and target property path`),null;let i=Number(e[1]),a=t.materials[i];if(!Number.isInteger(i)||!a)return d.warn(`KHR_animation_pointer target ${A} references a missing material and will be skipped`)(),null;let d$6=q3(a,e.slice(2));return`reason`in d$6?(Ni(A,d$6.reason),null):r({sampler:r$29,pointer:A,targetMaterialIndex:i},d$6)}function ym(t){switch(t){case`translation`:case`rotation`:case`scale`:case`weights`:return t;default:return null}}function q3(t,e){let r=K3(t,e);if(!(`reason`in r)||r.reason!==`not-a-texture-transform-target`)return r;switch(e.join(`/`)){case`pbrMetallicRoughness/baseColorFactor`:return t.pbrMetallicRoughness?{type:`material`,property:`baseColorFactor`}:{reason:ft(e)};case`pbrMetallicRoughness/metallicFactor`:return t.pbrMetallicRoughness?{type:`material`,property:`metallicRoughnessValues`,component:0}:{reason:ft(e)};case`pbrMetallicRoughness/roughnessFactor`:return t.pbrMetallicRoughness?{type:`material`,property:`metallicRoughnessValues`,component:1}:{reason:ft(e)};case`normalTexture/scale`:return t.normalTexture?{type:`material`,property:`normalScale`}:{reason:ft(e)};case`occlusionTexture/strength`:return t.occlusionTexture?{type:`material`,property:`occlusionStrength`}:{reason:ft(e)};case`emissiveFactor`:return{type:`material`,property:`emissiveFactor`};case`alphaCutoff`:return{type:`material`,property:`alphaCutoff`};case`extensions/KHR_materials_specular/specularFactor`:return t.extensions?.KHR_materials_specular?{type:`material`,property:`specularIntensityFactor`}:{reason:ft(e)};case`extensions/KHR_materials_specular/specularColorFactor`:return t.extensions?.KHR_materials_specular?{type:`material`,property:`specularColorFactor`}:{reason:ft(e)};case`extensions/KHR_materials_ior/ior`:return t.extensions?.KHR_materials_ior?{type:`material`,property:`ior`}:{reason:ft(e)};case`extensions/KHR_materials_transmission/transmissionFactor`:return t.extensions?.KHR_materials_transmission?{type:`material`,property:`transmissionFactor`}:{reason:ft(e)};case`extensions/KHR_materials_volume/thicknessFactor`:return t.extensions?.KHR_materials_volume?{type:`material`,property:`thicknessFactor`}:{reason:ft(e)};case`extensions/KHR_materials_volume/attenuationDistance`:return t.extensions?.KHR_materials_volume?{type:`material`,property:`attenuationDistance`}:{reason:ft(e)};case`extensions/KHR_materials_volume/attenuationColor`:return t.extensions?.KHR_materials_volume?{type:`material`,property:`attenuationColor`}:{reason:ft(e)};case`extensions/KHR_materials_clearcoat/clearcoatFactor`:return t.extensions?.KHR_materials_clearcoat?{type:`material`,property:`clearcoatFactor`}:{reason:ft(e)};case`extensions/KHR_materials_clearcoat/clearcoatRoughnessFactor`:return t.extensions?.KHR_materials_clearcoat?{type:`material`,property:`clearcoatRoughnessFactor`}:{reason:ft(e)};case`extensions/KHR_materials_sheen/sheenColorFactor`:return t.extensions?.KHR_materials_sheen?{type:`material`,property:`sheenColorFactor`}:{reason:ft(e)};case`extensions/KHR_materials_sheen/sheenRoughnessFactor`:return t.extensions?.KHR_materials_sheen?{type:`material`,property:`sheenRoughnessFactor`}:{reason:ft(e)};case`extensions/KHR_materials_iridescence/iridescenceFactor`:return t.extensions?.KHR_materials_iridescence?{type:`material`,property:`iridescenceFactor`}:{reason:ft(e)};case`extensions/KHR_materials_iridescence/iridescenceIor`:return t.extensions?.KHR_materials_iridescence?{type:`material`,property:`iridescenceIor`}:{reason:ft(e)};case`extensions/KHR_materials_iridescence/iridescenceThicknessMinimum`:return t.extensions?.KHR_materials_iridescence?{type:`material`,property:`iridescenceThicknessRange`,component:0}:{reason:ft(e)};case`extensions/KHR_materials_iridescence/iridescenceThicknessMaximum`:return t.extensions?.KHR_materials_iridescence?{type:`material`,property:`iridescenceThicknessRange`,component:1}:{reason:ft(e)};case`extensions/KHR_materials_anisotropy/anisotropyStrength`:return t.extensions?.KHR_materials_anisotropy?{type:`material`,property:`anisotropyStrength`}:{reason:ft(e)};case`extensions/KHR_materials_anisotropy/anisotropyRotation`:return t.extensions?.KHR_materials_anisotropy?{type:`material`,property:`anisotropyRotation`}:{reason:ft(e)};case`extensions/KHR_materials_emissive_strength/emissiveStrength`:return t.extensions?.KHR_materials_emissive_strength?{type:`material`,property:`emissiveStrength`}:{reason:ft(e)};default:return{reason:ft(e)}}}function K3(t,e){let r=e.lastIndexOf(`extensions`);if(r<0||e[r+1]!==`KHR_texture_transform`||r<1)return{reason:`not-a-texture-transform-target`};let A=nm(e.slice(0,r));if(!A)return{reason:W3(e.slice(0,r))};let i=X3(t,A.pathSegments);if(!i)return{reason:`texture-transform target "${e.slice(0,r).join(`/`)}" does not exist on the referenced material`};let a=e[r+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 d=e[r+3];if(e.length>r+4)return{reason:`KHR_texture_transform.${a} does not support nested property paths`};let m;if(d!==void 0){if(m=Number(d),a===`rotation`)return{reason:`KHR_texture_transform.rotation does not support component indices`};if(!Number.isInteger(m)||m<0||m>1)return{reason:`KHR_texture_transform.${a} component index "${d}" is invalid; only 0 and 1 are supported`}}return{type:`textureTransform`,textureSlot:A.slot,path:a,component:m,baseTransform:yo(i)}}function X3(t,e){let r=t;for(let A of e)if(r=r?.[A],!r)return null;return r}function Y3(t){return t.slice(1).split(`/`).map(e=>e.replace(/~1/g,`/`).replace(/~0/g,`~`))}function ft(t){let e=Tm(t);if(e){let r=Ic(e);if(r?.supportLevel===`none`)return`${e} is referenced by this pointer, but ${r.comment.charAt(0).toLowerCase()}${r.comment.slice(1)}`}return`no runtime target exists for material property "${t.join(`/`)}"`}function W3(t){let e=Tm(t);if(e){let r=Ic(e);if(r?.supportLevel===`none`)return`${e} is referenced by this pointer, but ${r.comment.charAt(0).toLowerCase()}${r.comment.slice(1)}`}return`texture-transform target "${t.join(`/`)}" has no runtime texture-slot mapping`}function Tm(t){let e=t.indexOf(`extensions`),r=t[e+1];return e>=0&&r?r:null}function Ni(t,e){d.warn(`KHR_animation_pointer target ${t} will be skipped because ${e}`)()}function Z3(t,e){if(e.has(t))return e.get(t);let{typedArray:r,components:A}=Sc(t);_m(A===1,`accessorToJsArray1D must have exactly 1 component`);let i=Array.from(r);return e.set(t,i),i}function $3(t,e){if(e.has(t))return e.get(t);let{typedArray:r,components:A}=Sc(t);_m(A>=1,`accessorToJsArray2D must have at least 1 component`);let i=[];for(let a=0;a<r.length;a+=A)i.push(Array.from(r.slice(a,a+A)));return e.set(t,i),i}function _m(t,e){if(!t)throw new Error(e)}function Fc(t,e,r){let{scenes:A,materials:i,gltfMeshIdToNodeMap:a,gltfNodeIdToNodeMap:d,gltfNodeIndexToNodeMap:m}=hm(t,e,r),_=new To({animations:gm(e),gltfNodeIdToNodeMap:d,materials:i}),E=om(e,{useByteColors:r?.useByteColors??!0}),x=mm(e),v=A.map(N=>bm(N.getBounds()));return{scenes:A,materials:i,animator:_,lights:E,extensionSupport:x,sceneBounds:v,modelBounds:ev(v),gltfMeshIdToNodeMap:a,gltfNodeIdToNodeMap:d,gltfNodeIndexToNodeMap:m,gltf:e}}function bm(t){if(!t)return{bounds:null,center:[0,0,0],size:[0,0,0],radius:.5,recommendedOrbitDistance:1};let e=[[t[0][0],t[0][1],t[0][2]],[t[1][0],t[1][1],t[1][2]]],r=[e[1][0]-e[0][0],e[1][1]-e[0][1],e[1][2]-e[0][2]],A=[e[0][0]+r[0]*.5,e[0][1]+r[1]*.5,e[0][2]+r[2]*.5],i=Math.max(r[0],r[1],r[2])*.5,a=Math.max(.5*Math.hypot(r[0],r[1],r[2]),.001);return{bounds:e,center:A,size:r,radius:a,recommendedOrbitDistance:Math.max(Math.max(i,.001)/Math.tan(Math.PI/6)*1.15,a*1.1)}}function ev(t){let e=null;for(let r of t)if(r.bounds){if(!e){e=[[...r.bounds[0]],[...r.bounds[1]]];continue}for(let A=0;A<3;A++)e[0][A]=Math.min(e[0][A],r.bounds[0][A]),e[1][A]=Math.max(e[1][A],r.bounds[1][A])}return bm(e)}var Lc={};w(Lc,{createExtMeshFeatures:()=>gv,decode:()=>fv,encode:()=>hv,name:()=>uv});function vt(t,e){if(!t)throw new Error(e||`assert failed: gltf`)}var bo={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16};var Eo={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var tv=1.33;var Em=[`SCALAR`,`VEC2`,`VEC3`,`VEC4`];var nv=new Map([[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]]);var Av={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16};var iv={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var sv={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function xo(t){return Em[t-1]||Em[0]}function gn(t){let e=nv.get(t.constructor);if(!e)throw new Error(`Illegal typed array`);return e}function FA(t,e){let r=sv[t.componentType],A=Av[t.type],i=iv[t.componentType],a=t.count*A,d=t.count*A*i;vt(d>=0&&d<=e.byteLength);return{ArrayType:r,length:a,byteLength:d,componentByteSize:Eo[t.componentType],numberOfComponentsInElement:bo[t.type]}}function Oi(t){let{images:e,bufferViews:r}=t;e=e||[],r=r||[];let A=e.map(d=>d.bufferView);r=r.filter(d=>!A.includes(d));let i=r.reduce((d,m)=>d+m.byteLength,0),a=e.reduce((d,m)=>{let{width:y,height:_}=m.image;return d+y*_},0);return i+Math.ceil(4*a*tv)}function xm(t,e,r){let A=t.bufferViews[r];vt(A);let a=e[A.buffer];vt(a);let d=(A.byteOffset||0)+a.byteOffset;return new Uint8Array(a.arrayBuffer,d,A.byteLength)}function Cm(t,e,r){let A=typeof r==`number`?t.accessors?.[r]:r;if(!A)throw new Error(`No gltf accessor ${JSON.stringify(r)}`);let i=t.bufferViews?.[A.bufferView||0];if(!i)throw new Error(`No gltf buffer view for accessor ${i}`);let{arrayBuffer:a,byteOffset:d}=e[i.buffer],m=(d||0)+(A.byteOffset||0)+(i.byteOffset||0),{ArrayType:y,length:_,componentByteSize:E,numberOfComponentsInElement:x}=FA(A,i),v=E*x,F=i.byteStride||v;if(typeof i.byteStride>`u`||i.byteStride===v)return new y(a,m,_);let N=new y(_);for(let U=0;U<A.count;U++){let q=new y(a,m+U*F,x);N.set(q,U*x)}return N}function ov(){return{asset:{version:`2.0`,generator:`loaders.gl`},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}var Je=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||ov(),buffers:e?.buffers||[],images:e?.images||[]},this.sourceBuffers=[],this.byteLength=0,this.gltf.buffers&&this.gltf.buffers[0]&&(this.byteLength=this.gltf.buffers[0].byteLength,this.sourceBuffers=[this.gltf.buffers[0]])}get json(){return this.gltf.json}getApplicationData(e){return this.json[e]}getExtraData(e){return(this.json.extras||{})[e]}hasExtension(e){let r=this.getUsedExtensions().find(i=>i===e),A=this.getRequiredExtensions().find(i=>i===e);return typeof r==`string`||typeof A==`string`}getExtension(e){let r=this.getUsedExtensions().find(i=>i===e),A=this.json.extensions||{};return r?A[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(A=>A===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,r){return(e.extensions||{})[r]}getScene(e){return this.getObject(`scenes`,e)}getNode(e){return this.getObject(`nodes`,e)}getSkin(e){return this.getObject(`skins`,e)}getMesh(e){return this.getObject(`meshes`,e)}getMaterial(e){return this.getObject(`materials`,e)}getAccessor(e){return this.getObject(`accessors`,e)}getTexture(e){return this.getObject(`textures`,e)}getSampler(e){return this.getObject(`samplers`,e)}getImage(e){return this.getObject(`images`,e)}getBufferView(e){return this.getObject(`bufferViews`,e)}getBuffer(e){return this.getObject(`buffers`,e)}getObject(e,r){if(typeof r==`object`)return r;let A=this.json[e]&&this.json[e][r];if(!A)throw new Error(`glTF file error: Could not find ${e}[${r}]`);return A}getTypedArrayForBufferView(e){e=this.getBufferView(e);let r=e.buffer,A=this.gltf.buffers[r];vt(A);let i=(e.byteOffset||0)+A.byteOffset;return new Uint8Array(A.arrayBuffer,i,e.byteLength)}getTypedArrayForAccessor(e){let r=this.getAccessor(e);return Cm(this.gltf.json,this.gltf.buffers,r)}getTypedArrayForImageData(e){e=this.getAccessor(e);let r=this.getBufferView(e.bufferView),i=this.getBuffer(r.buffer).data,a=r.byteOffset||0;return new Uint8Array(i,a,r.byteLength)}addApplicationData(e,r){return this.json[e]=r,this}addExtraData(e,r){return this.json.extras=this.json.extras||{},this.json.extras[e]=r,this}addObjectExtension(e,r,A){return e.extensions=e.extensions||{},e.extensions[r]=A,this.registerUsedExtension(r),this}setObjectExtension(e,r,A){let i=e.extensions||{};i[r]=A}removeObjectExtension(e,r){let A=e?.extensions||{};if(A[r]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let i=this.json.extensionsRemoved;i.includes(r)||i.push(r)}delete A[r]}addExtension(e,r={}){return vt(r),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=r,this.registerUsedExtension(e),r}addRequiredExtension(e,r={}){return vt(r),this.addExtension(e,r),this.registerRequiredExtension(e),r}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(r=>r===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(r=>r===e)||this.json.extensionsRequired.push(e)}removeExtension(e){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];let r=this.json.extensionsRemoved;r.includes(e)||r.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){let{nodeIndices:r}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:r}),this.json.scenes.length-1}addNode(e){let{meshIndex:r,matrix:A}=e;this.json.nodes=this.json.nodes||[];let i={mesh:r};return A&&(i.matrix=A),this.json.nodes.push(i),this.json.nodes.length-1}addMesh(e){let{attributes:r,indices:A,material:i,mode:a=4}=e,m={primitives:[{attributes:this._addAttributes(r),mode:a}]};if(A){let y=this._addIndices(A);m.primitives[0].indices=y}return Number.isFinite(i)&&(m.primitives[0].material=i),this.json.meshes=this.json.meshes||[],this.json.meshes.push(m),this.json.meshes.length-1}addPointCloud(e){let A={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(A),this.json.meshes.length-1}addImage(e,r){let A=ci(e),i=r||A?.mimeType,d={bufferView:this.addBufferView(e),mimeType:i};return this.json.images=this.json.images||[],this.json.images.push(d),this.json.images.length-1}addBufferView(e,r=0,A=this.byteLength){let i=e.byteLength;vt(Number.isFinite(i)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);let a={buffer:r,byteOffset:A,byteLength:i};return this.byteLength+=Hc$1(i,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(a),this.json.bufferViews.length-1}addAccessor(e,r){let A={bufferView:e,type:xo(r.size),componentType:r.componentType,count:r.count,max:r.max,min:r.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(A),this.json.accessors.length-1}addBinaryBuffer(e,r={size:3}){let A=this.addBufferView(e),i={min:r.min,max:r.max};(!i.min||!i.max)&&(i=this._getAccessorMinMax(e,r.size));let a={size:r.size,componentType:gn(e),count:Math.round(e.length/r.size),min:i.min,max:i.max};return this.addAccessor(A,Object.assign(a,r))}addTexture(e){let{imageIndex:r}=e,A={source:r};return this.json.textures=this.json.textures||[],this.json.textures.push(A),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){let e=this.byteLength,r=new ArrayBuffer(e),A=new Uint8Array(r),i=0;for(let a of this.sourceBuffers||[])i=ud$1(a,A,i);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=r,this.sourceBuffers=[r],this.gltf.buffers=[{arrayBuffer:r,byteOffset:0,byteLength:r.byteLength}]}_removeStringFromArray(e,r){let A=!0;for(;A;){let i=e.indexOf(r);i>-1?e.splice(i,1):A=!1}}_addAttributes(e={}){let r={};for(let A in e){let i=e[A],a=this._getGltfAttributeName(A);r[a]=this.addBinaryBuffer(i.value,i)}return r}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case`position`:case`positions`:case`vertices`:return`POSITION`;case`normal`:case`normals`:return`NORMAL`;case`color`:case`colors`:return`COLOR_0`;case`texcoord`:case`texcoords`:return`TEXCOORD_0`;default:return e}}_getAccessorMinMax(e,r){let A={min:null,max:null};if(e.length<r)return A;A.min=[],A.max=[];let i=e.subarray(0,r);for(let a of i)A.min.push(a),A.max.push(a);for(let a=r;a<e.length;a+=r)for(let d=0;d<r;d++)A.min[0+d]=Math.min(A.min[0+d],e[a+d]),A.max[0+d]=Math.max(A.max[0+d],e[a+d]);return A}};function wm(t){return(t%1+1)%1}var Bm={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1};var av={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array};var vm={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function Gi(t,e){return vm[e]*Bm[t]}function LA(t,e,r,A){if(r!==`UINT8`&&r!==`UINT16`&&r!==`UINT32`&&r!==`UINT64`)return null;let a=RA(t.getTypedArrayForBufferView(e),`SCALAR`,r,A+1);return a instanceof BigInt64Array||a instanceof BigUint64Array?null:a}function RA(t,e,r,A=1){let i=Bm[e],a=av[r],d=vm[r],m=A*i,y=m*d,_=t.buffer,E=t.byteOffset;return E%d!==0&&(_=new Uint8Array(_).slice(E,E+y).buffer,E=0),new a(mr(_),E,m)}function PA(t,e,r){let A=`TEXCOORD_${e.texCoord||0}`,i=r.attributes[A],a=t.getTypedArrayForAccessor(i),d=t.gltf.json,m=e.index,y=d.textures?.[m]?.source;if(typeof y<`u`){let _=d.images?.[y]?.mimeType,E=t.gltf.images?.[y];if(E&&typeof E.width<`u`){let x=[];for(let v=0;v<a.length;v+=2){let F=cv(E,_,a,v,e.channels);x.push(F)}return x}}return[]}function Co(t,e,r,A,i){if(!r?.length)return;let a=[];for(let E of r){let x=A.findIndex(v=>v===E);x===-1&&(x=A.push(E)-1),a.push(x)}let d=new Uint32Array(a),m=t.gltf.buffers.push({arrayBuffer:d.buffer,byteOffset:d.byteOffset,byteLength:d.byteLength})-1,y=t.addBufferView(d,m,0),_=t.addAccessor(y,{size:1,componentType:gn(d),count:d.length});i.attributes[e]=_}function cv(t,e,r,A,i=[0]){let a={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},d=r[A],m=r[A+1],y=1;e&&(e.indexOf(`image/jpeg`)!==-1||e.indexOf(`image/png`)!==-1)&&(y=4);let _=lv(d,m,t,y),E=0;for(let x of i){let v=typeof x==`number`?Object.values(a)[x]:a[x],F=_+v.offset,N=ic$1(t);if(N.data.length<=F)throw new Error(`${N.data.length} <= ${F}`);let U=N.data[F];E|=U<<v.shift}return E}function lv(t,e,r,A=1){let i=r.width,a=wm(t)*(i-1),d=Math.round(a),m=r.height,y=wm(e)*(m-1),_=Math.round(y),E=r.components?r.components:A;return(_*i+d)*E}function wo(t,e,r,A,i){let a=[];for(let d=0;d<e;d++){let m=r[d],y=r[d+1]-r[d];if(y+m>A)break;let _=m/i,E=y/i;a.push(t.slice(_,_+E))}return a}function Bo(t,e,r){let A=[];for(let i=0;i<e;i++){let a=i*r;A.push(t.slice(a,a+r))}return A}function vo(t,e,r,A){if(r)throw new Error(`Not implemented - arrayOffsets for strings is specified`);if(A){let i=[],a=new TextDecoder(`utf8`),d=0;for(let m=0;m<t;m++){let y=A[m+1]-A[m];if(y+d<=e.length){let _=e.subarray(d,y+d),E=a.decode(_);i.push(E),d+=y}}return i}return[]}var DA=`EXT_mesh_features`;var uv=DA;async function fv(t,e){dv(new Je(t),e)}function hv(t,e){let r=new Je(t);return mv(r,e),r.createBinaryChunk(),r.gltf}function dv(t,e){let r=t.gltf.json;if(r.meshes)for(let A of r.meshes)for(let i of A.primitives)pv(t,i,e)}function pv(t,e,r){if(!r?.gltf?.loadBuffers)return;let i=e.extensions?.[DA]?.featureIds;if(i)for(let a of i){let d;if(typeof a.attribute<`u`){let m=`_FEATURE_ID_${a.attribute}`,y=e.attributes[m];d=t.getTypedArrayForAccessor(y)}else typeof a.texture<`u`&&r?.gltf?.loadImages?d=PA(t,a.texture,e):d=[];a.data=d}}function mv(t,e){let r=t.gltf.json.meshes;if(r)for(let A of r)for(let i of A.primitives)yv(t,i)}function gv(t,e,r,A){e.extensions||(e.extensions={});let i=e.extensions[DA];i||(i={featureIds:[]},e.extensions[DA]=i);let{featureIds:a}=i,d={featureCount:r.length,propertyTable:A,data:r};a.push(d),t.addObjectExtension(e,DA,i)}function yv(t,e){let r=e.extensions?.[DA];if(!r)return;let A=r.featureIds;A.forEach((i,a)=>{if(i.data){let{accessorKey:d,index:m}=Tv(e.attributes),y=new Uint32Array(i.data);A[a]={featureCount:y.length,propertyTable:i.propertyTable,attribute:m},t.gltf.buffers.push({arrayBuffer:y.buffer,byteOffset:y.byteOffset,byteLength:y.byteLength});let _=t.addBufferView(y),E=t.addAccessor(_,{size:1,componentType:gn(y),count:y.length});e.attributes[d]=E}})}function Tv(t){let e=`_FEATURE_ID_`,r=Object.keys(t).filter(a=>a.indexOf(e)===0),A=-1;for(let a of r){let d=Number(a.substring(12));d>A&&(A=d)}return A++,{accessorKey:`${e}${A}`,index:A}}var Dc={};w(Dc,{createExtStructuralMetadata:()=>Hv,decode:()=>bv,encode:()=>Ev,name:()=>_v});var NA=`EXT_structural_metadata`;var _v=NA;async function bv(t,e){xv(new Je(t),e)}function Ev(t,e){let r=new Je(t);return kv(r,e),r.createBinaryChunk(),r.gltf}function xv(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(NA);r&&(e.gltf?.loadImages&&Cv(t,r),wv(t,r))}function Cv(t,e){let r=e.propertyTextures,A=t.gltf.json;if(r&&A.meshes)for(let i of A.meshes)for(let a of i.primitives)vv(t,r,a,e)}function wv(t,e){let r=e.schema;if(!r)return;let A=r.classes,i=e.propertyTables;if(A&&i)for(let a in A){let d=Bv(i,a);d&&Iv(t,r,d)}}function Bv(t,e){for(let r of t)if(r.class===e)return r;return null}function vv(t,e,r,A){if(!e)return;let a=r.extensions?.[NA]?.propertyTextures;if(a)for(let d of a){let m=e[d];Mv(t,m,r,A)}}function Mv(t,e,r,A){if(!e.properties)return;A.dataAttributeNames||(A.dataAttributeNames=[]);let i=e.class;for(let a in e.properties){let d=`${i}_${a}`,m=e.properties?.[a];if(!m)continue;m.data||(m.data=[]);let y=m.data,_=PA(t,m,r);_!==null&&(Co(t,d,_,y,r),m.data=y,A.dataAttributeNames.push(d))}}function Iv(t,e,r){let A=e.classes?.[r.class];if(!A)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let a in A.properties){let d=A.properties[a],m=r.properties?.[a];if(m)m.data=Sv(t,e,d,i,m)}}function Sv(t,e,r,A,i){let a=[],d=i.values,m=t.getTypedArrayForBufferView(d),y=Fv(t,r,i,A),_=Lv(t,i,A);switch(r.type){case`SCALAR`:case`VEC2`:case`VEC3`:case`VEC4`:case`MAT2`:case`MAT3`:case`MAT4`:a=Rv(r,A,m,y);break;case`BOOLEAN`:throw new Error(`Not implemented - classProperty.type=${r.type}`);case`STRING`:a=vo(A,m,y,_);break;case`ENUM`:a=Pv(e,r,A,m,y);break;default:throw new Error(`Unknown classProperty type ${r.type}`)}return a}function Fv(t,e,r,A){return e.array&&typeof e.count>`u`&&typeof r.arrayOffsets<`u`?LA(t,r.arrayOffsets,r.arrayOffsetType||`UINT32`,A):null}function Lv(t,e,r){return typeof e.stringOffsets<`u`?LA(t,e.stringOffsets,e.stringOffsetType||`UINT32`,r):null}function Rv(t,e,r,A){let i=t.array,a=t.count,d=Gi(t.type,t.componentType),m=r.byteLength/d,y;return t.componentType?y=RA(r,t.type,t.componentType,m):y=r,i?A?wo(y,e,A,r.length,d):a?Bo(y,e,a):[]:y}function Pv(t,e,r,A,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 d=t.enums?.[a];if(!d)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${a}`);let m=d.valueType||`UINT16`,y=Gi(e.type,m),_=A.byteLength/y,E=RA(A,e.type,m,_);if(E||(E=A),e.array){if(i)return Dv({valuesData:E,numberOfElements:r,arrayOffsets:i,valuesDataBytesLength:A.length,elementSize:y,enumEntry:d});let x=e.count;return x?Nv(E,r,x,d):[]}return Pc(E,0,r,d)}function Dv(t){let{valuesData:e,numberOfElements:r,arrayOffsets:A,valuesDataBytesLength:i,elementSize:a,enumEntry:d}=t,m=[];for(let y=0;y<r;y++){let _=A[y],E=A[y+1]-A[y];if(E+_>i)break;let F=Pc(e,_/a,E/a,d);m.push(F)}return m}function Nv(t,e,r,A){let i=[];for(let a=0;a<e;a++){let m=Pc(t,r*a,r,A);i.push(m)}return i}function Pc(t,e,r,A){let i=[];for(let a=0;a<r;a++)if(t instanceof BigInt64Array||t instanceof BigUint64Array)i.push(``);else{let d=t[e+a],m=Ov(A,d);m?i.push(m.name):i.push(``)}return i}function Ov(t,e){for(let r of t.values)if(r.value===e)return r;return null}var Gv=`schemaClassId`;function kv(t,e){let r=t.getExtension(NA);if(r&&r.propertyTables)for(let A of r.propertyTables){let i=A.class,a=r.schema?.classes?.[i];A.properties&&a&&Uv(A,a,t)}}function Uv(t,e,r){for(let A in t.properties){let i=t.properties[A].data;if(i){let a=e.properties[A];if(a){let d=Qv(i,a,r);t.properties[A]=d}}}}function Hv(t,e,r=Gv){let A=t.getExtension(NA);A||(A=t.addExtension(NA)),A.schema=Vv(e,r,A.schema);let i=jv(e,r,A.schema);return A.propertyTables||(A.propertyTables=[]),A.propertyTables.push(i)-1}function Vv(t,e,r){let A=r??{id:`schema_id`},i={properties:{}};for(let a of t){let d={type:a.elementType,componentType:a.componentType};i.properties[a.name]=d}return A.classes={},A.classes[e]=i,A}function jv(t,e,r){let A={class:e,count:0},i=0,a=r.classes?.[e];for(let d of t){if(i===0&&(i=d.values.length),i!==d.values.length&&d.values.length)throw new Error(`Illegal values in attributes`);a?.properties[d.name]&&(A.properties||(A.properties={}),A.properties[d.name]={values:0,data:d.values})}return A.count=i,A}function Qv(t,e,r){let A={values:0};if(e.type===`STRING`){let{stringData:i,stringOffsets:a}=qv(t);A.stringOffsets=Rc(a,r),A.values=Rc(i,r)}else if(e.type===`SCALAR`&&e.componentType)A.values=Rc(Jv(t,e.componentType),r);return A}var zv={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function Jv(t,e){let r=[];for(let i of t)r.push(Number(i));let A=zv[e];if(!A)throw new Error(`Illegal component type`);return new A(r)}function qv(t){let e=new TextEncoder,r=[],A=0;for(let y of t){let _=e.encode(y);A+=_.length,r.push(_)}let i=new Uint8Array(A),a=[],d=0;for(let y of r)i.set(y,d),a.push(d),d+=y.length;a.push(d);return{stringData:i,stringOffsets:new Uint32Array(a)}}function Rc(t,e){return e.gltf.buffers.push({arrayBuffer:mr(t.buffer),byteOffset:t.byteOffset,byteLength:t.byteLength}),e.addBufferView(t)}var Nc={};w(Nc,{decode:()=>Xv,name:()=>Kv});var Mm=`EXT_feature_metadata`;var Kv=Mm;async function Xv(t,e){Yv(new Je(t),e)}function Yv(t,e){if(!e.gltf?.loadBuffers)return;let r=t.getExtension(Mm);r&&(e.gltf?.loadImages&&Wv(t,r),Zv(t,r))}function Wv(t,e){let r=e.schema;if(!r)return;let A=r.classes,{featureTextures:i}=e;if(A&&i)for(let a in A){let d=A[a],m=eM(i,a);m&&rM(t,m,d)}}function Zv(t,e){let r=e.schema;if(!r)return;let A=r.classes,i=e.featureTables;if(A&&i)for(let a in A){let d=$v(i,a);d&&tM(t,r,d)}}function $v(t,e){for(let r in t){let A=t[r];if(A.class===e)return A}return null}function eM(t,e){for(let r in t){let A=t[r];if(A.class===e)return A}return null}function tM(t,e,r){if(!r.class)return;let A=e.classes?.[r.class];if(!A)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${r.class}`);let i=r.count;for(let a in A.properties){let d=A.properties[a],m=r.properties?.[a];if(m)m.data=nM(t,e,d,i,m)}}function rM(t,e,r){let A=e.class;for(let i in r.properties){let a=e?.properties?.[i];if(a)a.data=aM(t,a,A)}}function nM(t,e,r,A,i){let a=[],d=i.bufferView,m=t.getTypedArrayForBufferView(d),y=AM(t,r,i,A),_=iM(t,r,i,A);return r.type===`STRING`||r.componentType===`STRING`?a=vo(A,m,y,_):sM(r)&&(a=oM(r,A,m,y)),a}function AM(t,e,r,A){return e.type===`ARRAY`&&typeof e.componentCount>`u`&&typeof r.arrayOffsetBufferView<`u`?LA(t,r.arrayOffsetBufferView,r.offsetType||`UINT32`,A):null}function iM(t,e,r,A){return typeof r.stringOffsetBufferView<`u`?LA(t,r.stringOffsetBufferView,r.offsetType||`UINT32`,A):null}function sM(t){let e=[`UINT8`,`INT16`,`UINT16`,`INT32`,`UINT32`,`INT64`,`UINT64`,`FLOAT32`,`FLOAT64`];return e.includes(t.type)||typeof t.componentType<`u`&&e.includes(t.componentType)}function oM(t,e,r,A){let i=t.type===`ARRAY`,a=t.componentCount,d=`SCALAR`,m=t.componentType||t.type,y=Gi(d,m),E=RA(r,d,m,r.byteLength/y);return i?A?wo(E,e,A,r.length,y):a?Bo(E,e,a):[]:E}function aM(t,e,r){let A=t.gltf.json;if(!A.meshes)return[];let i=[];for(let a of A.meshes)for(let d of a.primitives)cM(t,r,e,i,d);return i}function cM(t,e,r$30,A,i){let d=PA(t,r({channels:r$30.channels},r$30.texture),i);d&&Co(t,e,d,A,i)}var Im=`4.4.4`;var OA=!0;var Sm=1735152710;var kc=12;var Mo=8;var lM=1313821514;var uM=5130562;var fM=0;var hM=0;var dM=1;function pM(t,e=0){return`${String.fromCharCode(t.getUint8(e+0))}${String.fromCharCode(t.getUint8(e+1))}${String.fromCharCode(t.getUint8(e+2))}${String.fromCharCode(t.getUint8(e+3))}`}function Fm(t,e=0,r={}){let A=new DataView(t),{magic:i=Sm}=r,a=A.getUint32(e,!1);return a===i||a===Sm}function Lm(t,e,r=0,A={}){let i=new DataView(e),a=pM(i,r+0),d=i.getUint32(r+4,OA),m=i.getUint32(r+8,OA);switch(Object.assign(t,{header:{byteOffset:r,byteLength:m,hasBinChunk:!1},type:a,version:d,json:{},binChunks:[]}),r+=kc,t.version){case 1:return mM(t,i,r);case 2:return gM(t,i,r,A={});default:throw new Error(`Invalid GLB version ${t.version}. Only supports version 1 and 2.`)}}function mM(t,e,r){ge(t.header.byteLength>kc+Mo);let A=e.getUint32(r+0,OA),i=e.getUint32(r+4,OA);return r+=Mo,ge(i===fM),Oc(t,e,r,A),r+=A,r+=Gc(t,e,r,t.header.byteLength),r}function gM(t,e,r,A){return ge(t.header.byteLength>kc+Mo),yM(t,e,r,A),r+t.header.byteLength}function yM(t,e,r,A){for(;r+8<=t.header.byteLength;){let i=e.getUint32(r+0,OA),a=e.getUint32(r+4,OA);switch(r+=Mo,a){case lM:Oc(t,e,r,i);break;case uM:Gc(t,e,r,i);break;case hM:A.strict||Oc(t,e,r,i);break;case dM:A.strict||Gc(t,e,r,i);break;default:break}r+=Hc$1(i,4)}return r}function Oc(t,e,r,A){let i=new Uint8Array(e.buffer,r,A),d=new TextDecoder(`utf8`).decode(i);return t.json=JSON.parse(d),Hc$1(A,4)}function Gc(t,e,r,A){return t.header.hasBinChunk=!0,t.binChunks.push({byteOffset:r,byteLength:A,arrayBuffer:e.buffer}),Hc$1(A,4)}function Uc(t,e,r){if(t.startsWith(`data:`)||t.startsWith(`http:`)||t.startsWith(`https:`))return t;let i=r?.baseUrl||TM(e?.core?.baseUrl);if(!i)throw new Error(`'baseUrl' must be provided to resolve relative url ${t}`);return i.endsWith(`/`)?`${i}${t}`:`${i}/${t}`}function TM(t){if(!t)return;if(t.endsWith(`/`))return t;let e=t.lastIndexOf(`/`);return e>=0?t.slice(0,e+1):``}var Vc={};w(Vc,{decode:()=>FM,name:()=>SM});var _M=`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`;var bM=`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`;var EM=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]);var xM=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]);var CM={0:``,1:`meshopt_decodeFilterOct`,2:`meshopt_decodeFilterQuat`,3:`meshopt_decodeFilterExp`,NONE:``,OCTAHEDRAL:`meshopt_decodeFilterOct`,QUATERNION:`meshopt_decodeFilterQuat`,EXPONENTIAL:`meshopt_decodeFilterExp`};var wM={0:`meshopt_decodeVertexBuffer`,1:`meshopt_decodeIndexBuffer`,2:`meshopt_decodeIndexSequence`,ATTRIBUTES:`meshopt_decodeVertexBuffer`,TRIANGLES:`meshopt_decodeIndexBuffer`,INDICES:`meshopt_decodeIndexSequence`};async function Rm(t,e,r,A,i,a=`NONE`){let d=await BM();IM(d,d.exports[wM[i]],t,e,r,A,d.exports[CM[a||`NONE`]])}var Hc;async function BM(){return Hc||(Hc=vM()),Hc}async function vM(){let t=_M;WebAssembly.validate(EM)&&(t=bM,console.log(`Warning: meshopt_decoder is using experimental SIMD support`));let e=await WebAssembly.instantiate(MM(t),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function MM(t){let e=new Uint8Array(t.length);for(let A=0;A<t.length;++A){let i=t.charCodeAt(A);e[A]=i>96?i-71:i>64?i-65:i>47?i+4:i>46?63:62}let r=0;for(let A=0;A<t.length;++A)e[r++]=e[A]<60?xM[e[A]]:(e[A]-60)*64+e[++A];return e.buffer.slice(0,r)}function IM(t,e,r,A,i,a,d){let m=t.exports.sbrk,y=A+3&-4,_=m(y*i),E=m(a.length),x=new Uint8Array(t.exports.memory.buffer);x.set(a,E);let v=e(_,A,i,E,a.length);if(v===0&&d&&d(_,y,i),r.set(x.subarray(_,_+A*i)),m(_-m(0)),v!==0)throw new Error(`Malformed buffer data: ${v}`)}var Io=`EXT_meshopt_compression`;var SM=Io;async function FM(t,e){let r=new Je(t);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;let A=[];for(let i of t.json.bufferViews||[])A.push(LM(r,i));await Promise.all(A),r.removeExtension(Io)}async function LM(t,e){let r=t.getObjectExtension(e,Io);if(r){let{byteOffset:A=0,byteLength:i=0,byteStride:a,count:d,mode:m,filter:y=`NONE`,buffer:_}=r,E=t.gltf.buffers[_],x=new Uint8Array(E.arrayBuffer,E.byteOffset+A,i);await Rm(new Uint8Array(t.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength),d,a,x,m,y),t.removeObjectExtension(e,Io)}}var jc={};w(jc,{name:()=>RM,preprocess:()=>PM});var GA=`EXT_texture_webp`;var RM=GA;function PM(t,e){let r=new Je(t);if(!Mx$1(`image/webp`)){if(r.getRequiredExtensions().includes(GA))throw new Error(`gltf: Required extension ${GA} not supported by browser`);return}let{json:A}=r;for(let i of A.textures||[]){let a=r.getObjectExtension(i,GA);a&&(i.source=a.source),r.removeObjectExtension(i,GA)}r.removeExtension(GA)}var Qc={};w(Qc,{name:()=>DM,preprocess:()=>NM});var So=`KHR_texture_basisu`;var DM=So;function NM(t,e){let r=new Je(t),{json:A}=r;for(let i of A.textures||[]){let a=r.getObjectExtension(i,So);a&&(i.source=a.source,r.removeObjectExtension(i,So))}r.removeExtension(So)}var Kc={};w(Kc,{decode:()=>ZM,encode:()=>$M,name:()=>YM,preprocess:()=>WM});var OM=`1.5.6`;var GM=`1.4.1`;var zc=`https://www.gstatic.com/draco/versioned/decoders/${OM}`;var Lt={DECODER:`draco_wasm_wrapper.js`,DECODER_WASM:`draco_decoder.wasm`,FALLBACK_DECODER:`draco_decoder.js`,ENCODER:`draco_encoder.js`};var ki={[Lt.DECODER]:`${zc}/${Lt.DECODER}`,[Lt.DECODER_WASM]:`${zc}/${Lt.DECODER_WASM}`,[Lt.FALLBACK_DECODER]:`${zc}/${Lt.FALLBACK_DECODER}`,[Lt.ENCODER]:`https://raw.githubusercontent.com/google/draco/${GM}/javascript/${Lt.ENCODER}`};var Jc;async function Dm(t={},e){let r=t.modules||{};return r.draco3d?Jc||=r.draco3d.createDecoderModule({}).then(A=>({draco:A})):Jc||=kM(t,e),await Jc}function Pm(t,e){if(t&&typeof t==`object`){if(t.default)return t.default;if(t[e])return t[e]}return t}async function kM(t,e){let r$31,A;switch(e){case`js`:r$31=await id$1(ki[Lt.FALLBACK_DECODER],`draco`,t,Lt.FALLBACK_DECODER);break;default:try{[r$31,A]=await Promise.all([await id$1(ki[Lt.DECODER],`draco`,t,Lt.DECODER),await id$1(ki[Lt.DECODER_WASM],`draco`,t,Lt.DECODER_WASM)])}catch{r$31=null,A=null}}return r$31=Pm(r$31,`DracoDecoderModule`),r$31=r$31||globalThis.DracoDecoderModule,!r$31&&!J&&([r$31,A]=await Promise.all([await id$1(ki[Lt.DECODER],`draco`,s(r({},t),{useLocalLibraries:!0}),Lt.DECODER),await id$1(ki[Lt.DECODER_WASM],`draco`,s(r({},t),{useLocalLibraries:!0}),Lt.DECODER_WASM)]),r$31=Pm(r$31,`DracoDecoderModule`),r$31=r$31||globalThis.DracoDecoderModule),await UM(r$31,A)}function UM(t,e){if(typeof t!=`function`)throw new Error(`DracoDecoderModule could not be loaded`);let r$32={};return e&&(r$32.wasmBinary=e),new Promise(A=>{t(s(r({},r$32),{onModuleLoaded:i=>A({draco:i})}))})}var Nm=`4.4.4`;function Gm(t,e,r){let A=km(e.metadata),i=[],a=HM(e.attributes);for(let d in t){let m=t[d],y=Om(d,m,a[d]);i.push(y)}if(r){let d=Om(`indices`,r);i.push(d)}return{fields:i,metadata:A}}function HM(t){let e={};for(let r in t){let A=t[r];e[A.name||`undefined`]=A}return e}function Om(t,e,r){return o0(t,e,r?km(r.metadata):void 0)}function km(t){Object.entries(t);let e={};for(let r in t)e[`${r}.string`]=JSON.stringify(t[r]);return e}var Um={POSITION:`POSITION`,NORMAL:`NORMAL`,COLOR:`COLOR_0`,TEX_COORD:`TEXCOORD_0`};var VM={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array};var jM=4;var Fo=class{draco;decoder;metadataQuerier;constructor(e){this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e,r$33={}){let A=new this.draco.DecoderBuffer;A.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(r$33);let i=this.decoder.GetEncodedGeometryType(A),a=i===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let d;switch(i){case this.draco.TRIANGULAR_MESH:d=this.decoder.DecodeBufferToMesh(A,a);break;case this.draco.POINT_CLOUD:d=this.decoder.DecodeBufferToPointCloud(A,a);break;default:throw new Error(`DRACO: Unknown geometry type.`)}if(!d.ok()||!a.ptr){let v=`DRACO decompression failed: ${d.error_msg()}`;throw new Error(v)}let m=this._getDracoLoaderData(a,i,r$33),y=this._getMeshData(a,m,r$33),_=Sn(y.attributes),E=Gm(y.attributes,m,y.indices);return s(r({loader:`draco`,loaderData:m,header:{vertexCount:a.num_points(),boundingBox:_}},y),{schema:E})}finally{this.draco.destroy(A),a&&this.draco.destroy(a)}}_getDracoLoaderData(e,r,A){let i=this._getTopLevelMetadata(e),a=this._getDracoAttributes(e,A);return{geometry_type:r,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:i,attributes:a}}_getDracoAttributes(e,r){let A={};for(let i=0;i<e.num_attributes();i++){let a=this.decoder.GetAttribute(e,i),d=this._getAttributeMetadata(e,i);A[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:d};let m=this._getQuantizationTransform(a,r);m&&(A[a.unique_id()].quantization_transform=m);let y=this._getOctahedronTransform(a,r);y&&(A[a.unique_id()].octahedron_transform=y)}return A}_getMeshData(e,r,A){let i=this._getMeshAttributes(r,e,A);if(!i.POSITION)throw new Error(`DRACO: No position attribute found.`);return e instanceof this.draco.Mesh?A.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,r,A){let i={};for(let a of Object.values(e.attributes)){let d=this._deduceAttributeName(a,A);a.name=d;let m=this._getAttributeValues(r,a);if(m){let{value:y,size:_}=m;i[d]={value:y,size:_,byteOffset:a.byte_offset,byteStride:a.byte_stride,normalized:a.normalized}}}return i}_getTriangleListIndices(e){let A=e.num_faces()*3,i=A*jM,a=this.draco._malloc(i);try{return this.decoder.GetTrianglesUInt32Array(e,i,a),new Uint32Array(this.draco.HEAPF32.buffer,a,A).slice()}finally{this.draco._free(a)}}_getTriangleStripIndices(e){let r=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,r),JM(r)}finally{this.draco.destroy(r)}}_getAttributeValues(e,r){let A=VM[r.data_type];if(!A)return console.warn(`DRACO: Unsupported attribute type ${r.data_type}`),null;let i=r.num_components,d=e.num_points()*i,m=d*A.BYTES_PER_ELEMENT,y=QM(this.draco,A),_,E=this.draco._malloc(m);try{let x=this.decoder.GetAttribute(e,r.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,x,y,m,E),_=new A(this.draco.HEAPF32.buffer,E,d).slice()}finally{this.draco._free(E)}return{value:_,size:i}}_deduceAttributeName(e,r){let A=e.unique_id;for(let[d,m]of Object.entries(r.extraAttributes||{}))if(m===A)return d;let i=e.attribute_type;for(let d in Um)if(this.draco[d]===i)return Um[d];let a=r.attributeNameEntry||`name`;return e.metadata[a]?e.metadata[a].string:`CUSTOM_ATTRIBUTE_${A}`}_getTopLevelMetadata(e){let r=this.decoder.GetMetadata(e);return this._getDracoMetadata(r)}_getAttributeMetadata(e,r){let A=this.decoder.GetAttributeMetadata(e,r);return this._getDracoMetadata(A)}_getDracoMetadata(e){if(!e||!e.ptr)return{};let r={},A=this.metadataQuerier.NumEntries(e);for(let i=0;i<A;i++){let a=this.metadataQuerier.GetEntryName(e,i);r[a]=this._getDracoMetadataField(e,a)}return r}_getDracoMetadataField(e,r){let A=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,r,A);let i=zM(A);return{int:this.metadataQuerier.GetIntEntry(e,r),string:this.metadataQuerier.GetStringEntry(e,r),double:this.metadataQuerier.GetDoubleEntry(e,r),intArray:i}}finally{this.draco.destroy(A)}}_disableAttributeTransforms(e){let{quantizedAttributes:r=[],octahedronAttributes:A=[]}=e,i=[...r,...A];for(let a of i)this.decoder.SkipAttributeTransform(this.draco[a])}_getQuantizationTransform(e,r){let{quantizedAttributes:A=[]}=r,i=e.attribute_type();if(A.map(d=>this.decoder[d]).includes(i)){let d=new this.draco.AttributeQuantizationTransform;try{if(d.InitFromAttribute(e))return{quantization_bits:d.quantization_bits(),range:d.range(),min_values:new Float32Array([1,2,3]).map(m=>d.min_value(m))}}finally{this.draco.destroy(d)}}return null}_getOctahedronTransform(e,r){let{octahedronAttributes:A=[]}=r,i=e.attribute_type();if(A.map(d=>this.decoder[d]).includes(i)){let d=new this.draco.AttributeQuantizationTransform;try{if(d.InitFromAttribute(e))return{quantization_bits:d.quantization_bits()}}finally{this.draco.destroy(d)}}return null}};function QM(t,e){switch(e){case Float32Array:return t.DT_FLOAT32;case Int8Array:return t.DT_INT8;case Int16Array:return t.DT_INT16;case Int32Array:return t.DT_INT32;case Uint8Array:return t.DT_UINT8;case Uint16Array:return t.DT_UINT16;case Uint32Array:return t.DT_UINT32;default:return t.DT_INVALID}}function zM(t){let e=t.size(),r=new Int32Array(e);for(let A=0;A<e;A++)r[A]=t.GetValue(A);return r}function JM(t){let e=t.size(),r=new Int32Array(e);for(let A=0;A<e;A++)r[A]=t.GetValue(A);return r}var Ui=s(r({},{dataType:null,batchType:null,name:`Draco`,id:`draco`,module:`draco`,version:Nm,worker:!0,extensions:[`drc`],mimeTypes:[`application/octet-stream`],binary:!0,tests:[`DRACO`],options:{draco:{decoderType:typeof WebAssembly==`object`?`wasm`:`js`,extraAttributes:{},attributeNameEntry:void 0}}}),{parse:qM});async function qM(t,e){let{draco:r}=await Dm(rd$1(e),e?.draco?.decoderType||`wasm`),A=new Fo(r);try{return A.parseSync(t,e?.draco)}finally{A.destroy()}}function Vm(t){let e={};for(let r in t){let A=t[r];if(r!==`indices`)e[r]=qc(A)}return e}function qc(t){let{buffer:e,size:r,count:A}=KM(t);return{value:e,size:r,byteOffset:0,count:A,type:xo(r),componentType:gn(e)}}function KM(t){let e=t,r=1,A=0;return t&&t.value&&(e=t.value,r=t.size||1),e&&(ArrayBuffer.isView(e)||(e=XM(e,Float32Array)),A=e.length/r),{buffer:e,size:r,count:A}}function XM(t,e,r=!1){return t?Array.isArray(t)?new e(t):r&&!(t instanceof e)?new e(t):t:null}var yn=`KHR_draco_mesh_compression`;var YM=yn;function WM(t,e,r){let A=new Je(t);for(let i of jm(A))A.getObjectExtension(i,yn)}async function ZM(t,e,r){if(!e?.gltf?.decompressMeshes)return;let A=new Je(t),i=[];for(let a of jm(A))A.getObjectExtension(a,yn)&&i.push(e4(A,a,e,r));await Promise.all(i),A.removeExtension(yn)}function $M(t,e={}){let r=new Je(t);for(let A of r.json.meshes||[])t4(A,e),r.addRequiredExtension(yn)}async function e4(t,e,r$34,A){let i=t.getObjectExtension(e,yn);if(!i)return;let a=t.getTypedArrayForBufferView(i.bufferView),d=hd$1(a.buffer,a.byteOffset),m=r({},r$34);delete m[`3d-tiles`];let y=await jp$1(d,Ui,m,A),_=Vm(y.attributes);for(let[E,x]of Object.entries(_))if(E in e.attributes){let v=e.attributes[E],F=t.getAccessor(v);F?.min&&F?.max&&(x.min=F.min,x.max=F.max)}e.attributes=_,y.indices&&(e.indices=qc(y.indices)),t.removeObjectExtension(e,yn),r4(e)}function t4(t,e,r=4,A,i){if(!A.DracoWriter)throw new Error(`options.gltf.DracoWriter not provided`);let a=A.DracoWriter.encodeSync({attributes:t}),d=i?.parseSync?.({attributes:t}),m=A._addFauxAttributes(d.attributes),y=A.addBufferView(a);return{primitives:[{attributes:m,mode:r,extensions:{[yn]:{bufferView:y,attributes:m}}}]}}function r4(t){if(!t.attributes&&Object.keys(t.attributes).length>0)throw new Error(`glTF: Empty primitive detected: Draco decompression failure?`)}function*jm(t){for(let e of t.json.meshes||[])for(let r of e.primitives)yield r}var Xc={};w(Xc,{decode:()=>s4,name:()=>n4});var Ro=`KHR_texture_transform`;var n4=Ro;var Lo=new H;var A4=new Tr$1;var i4=new Tr$1;async function s4(t,e){if(!new Je(t).hasExtension(Ro)||!e.gltf?.loadBuffers)return;let i=t.json.materials||[];for(let a=0;a<i.length;a++)o4(a,t)}function o4(t,e){let r=e.json.materials?.[t],A=[r?.pbrMetallicRoughness?.baseColorTexture,r?.emissiveTexture,r?.normalTexture,r?.occlusionTexture,r?.pbrMetallicRoughness?.metallicRoughnessTexture],i=[];for(let a of A)a&&a?.extensions?.[Ro]&&a4(e,t,a,i)}function a4(t,e,r,A){let i=c4(r,A);if(!i)return;let a=t.json.meshes||[];for(let d of a)for(let m of d.primitives){let y=m.material;Number.isFinite(y)&&e===y&&l4(t,m,i)}}function c4(t,e){let r=t.extensions?.[Ro],{texCoord:A=0}=t,{texCoord:i=A}=r;if(!(e.findIndex(([d,m])=>d===A&&m===i)!==-1)){let d=h4(r);return A!==i&&(t.texCoord=i),e.push([A,i]),{originalTexCoord:A,texCoord:i,matrix:d}}return null}function l4(t,e,r){let{originalTexCoord:A,texCoord:i,matrix:a}=r,d=e.attributes[`TEXCOORD_${A}`];if(Number.isFinite(d)){let m=t.json.accessors?.[d];if(m&&m.bufferView!==void 0){let y=t.json.bufferViews?.[m.bufferView];if(y){let{arrayBuffer:_,byteOffset:E}=t.buffers[y.buffer],x=(E||0)+(m.byteOffset||0)+(y.byteOffset||0),{ArrayType:v,length:F}=FA(m,y),N=Eo[m.componentType],U=bo[m.type],q=y.byteStride||N*U,X=new Float32Array(F);for(let Z=0;Z<m.count;Z++){let he=new v(_,x+Z*q,2);Lo.set(he[0],he[1],1),Lo.transformByMatrix3(a),X.set([Lo[0],Lo[1]],Z*U)}A===i?u4(m,t,X,m.bufferView):f4(i,m,e,t,X)}}}}function u4(t,e,r,A){t.componentType=5126,t.byteOffset=0;let d=(e.json.accessors||[]).reduce((_,E)=>E.bufferView===A?_+1:_,0)>1;e.buffers.push({arrayBuffer:mr(r.buffer),byteOffset:0,byteLength:r.buffer.byteLength});let m=e.buffers.length-1;if(e.json.bufferViews=e.json.bufferViews||[],d){e.json.bufferViews.push({buffer:m,byteLength:r.buffer.byteLength,byteOffset:0}),t.bufferView=e.json.bufferViews.length-1;return}let y=e.json.bufferViews[A];y&&(y.buffer=m,y.byteOffset=0,y.byteLength=r.buffer.byteLength,y.byteStride!==void 0&&delete y.byteStride)}function f4(t,e,r,A,i){A.buffers.push({arrayBuffer:mr(i.buffer),byteOffset:0,byteLength:i.buffer.byteLength}),A.json.bufferViews=A.json.bufferViews||[];let a=A.json.bufferViews;a.push({buffer:A.buffers.length-1,byteLength:i.buffer.byteLength,byteOffset:0});let d=A.json.accessors;d&&(d.push({bufferView:a?.length-1,byteOffset:0,componentType:5126,count:e.count,type:`VEC2`}),r.attributes[`TEXCOORD_${t}`]=d.length-1)}function h4(t){let{offset:e=[0,0],rotation:r=0,scale:A=[1,1]}=t,i=new Tr$1().set(1,0,0,0,1,0,e[0],e[1],1),a=A4.set(Math.cos(r),Math.sin(r),0,-Math.sin(r),Math.cos(r),0,0,0,1),d=i4.set(A[0],0,0,0,A[1],0,0,0,1);return i.multiplyRight(a).multiplyRight(d)}var Yc={};w(Yc,{decode:()=>p4,encode:()=>m4,name:()=>d4});var Un=`KHR_lights_punctual`;var d4=Un;async function p4(t){let e=new Je(t),{json:r}=e,A=e.getExtension(Un);A&&(e.json.lights=A.lights,e.removeExtension(Un));for(let i of r.nodes||[]){let a=e.getObjectExtension(i,Un);a&&(i.light=a.light),e.removeObjectExtension(i,Un)}}async function m4(t){let e=new Je(t),{json:r}=e;if(r.lights){let A=e.addExtension(Un);vt(!A.lights),A.lights=r.lights,delete r.lights}if(e.json.lights){for(let A of e.json.lights){let i=A.node;e.addObjectExtension(i,Un,A)}delete e.json.lights}}var Wc={};w(Wc,{decode:()=>y4,encode:()=>T4,name:()=>g4});var Hi=`KHR_materials_unlit`;var g4=Hi;async function y4(t){let e=new Je(t),{json:r}=e;for(let A of r.materials||[])A.extensions&&A.extensions.KHR_materials_unlit&&(A.unlit=!0),e.removeObjectExtension(A,Hi);e.removeExtension(Hi)}function T4(t){let e=new Je(t),{json:r}=e;if(e.materials)for(let A of r.materials||[])A.unlit&&(delete A.unlit,e.addObjectExtension(A,Hi,{}),e.addExtension(Hi))}var Zc={};w(Zc,{decode:()=>b4,encode:()=>E4,name:()=>_4});var Vi=`KHR_techniques_webgl`;var _4=Vi;async function b4(t){let e=new Je(t),{json:r}=e,A=e.getExtension(Vi);if(A){let i=x4(A,e);for(let a of r.materials||[]){let d=e.getObjectExtension(a,Vi);d&&(a.technique=Object.assign({},d,i[d.technique]),a.technique.values=C4(a.technique,e)),e.removeObjectExtension(a,Vi)}e.removeExtension(Vi)}}async function E4(t,e){}function x4(t,e){let{programs:r=[],shaders:A=[],techniques:i=[]}=t,a=new TextDecoder;return A.forEach(d=>{if(Number.isFinite(d.bufferView))d.code=a.decode(e.getTypedArrayForBufferView(d.bufferView));else throw new Error(`KHR_techniques_webgl: no shader code`)}),r.forEach(d=>{d.fragmentShader=A[d.fragmentShader],d.vertexShader=A[d.vertexShader]}),i.forEach(d=>{d.program=r[d.program]}),i}function C4(t,e){let r=Object.assign({},t.values);return Object.keys(t.uniforms||{}).forEach(A=>{t.uniforms[A].value&&!(A in r)&&(r[A]=t.uniforms[A].value)}),Object.keys(r).forEach(A=>{typeof r[A]==`object`&&r[A].index!==void 0&&(r[A].texture=e.getTexture(r[A].index))}),r}var Qm=[Dc,Lc,Vc,jc,Qc,Kc,Yc,Wc,Zc,Xc,Nc];function zm(t,e={},r){let A=Qm.filter(i=>qm(i.name,e));for(let i of A)i.preprocess?.(t,e,r)}async function Jm(t,e={},r){let A=Qm.filter(i=>qm(i.name,e));for(let i of A)await i.decode?.(t,e,r)}function qm(t,e){let r=e?.gltf?.excludeExtensions||{};return!(t in r&&!r[t])}var $c=`KHR_binary_glTF`;function Km(t){let e=new Je(t),{json:r}=e;for(let A of r.images||[]){let i=e.getObjectExtension(A,$c);i&&Object.assign(A,i),e.removeObjectExtension(A,$c)}r.buffers&&r.buffers[0]&&delete r.buffers[0].uri,e.removeExtension($c)}var Xm={accessors:`accessor`,animations:`animation`,buffers:`buffer`,bufferViews:`bufferView`,images:`image`,materials:`material`,meshes:`mesh`,nodes:`node`,samplers:`sampler`,scenes:`scene`,skins:`skin`,textures:`texture`};var B4={accessor:`accessors`,animations:`animation`,buffer:`buffers`,bufferView:`bufferViews`,image:`images`,material:`materials`,mesh:`meshes`,node:`nodes`,sampler:`samplers`,scene:`scenes`,skin:`skins`,texture:`textures`};var el=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,r){this.json=e.json;let A=e.json;switch(A.asset&&A.asset.version){case`2.0`:return;case void 0:case`1.0`:break;default:console.warn(`glTF: Unknown version ${A.asset.version}`);return}if(!r.normalize)throw new Error(`glTF v1 is not supported.`);console.warn(`Converting glTF v1 to glTF v2 format. This is experimental and may fail.`),this._addAsset(A),this._convertTopLevelObjectsToArrays(A),Km(e),this._convertObjectIdsToArrayIndices(A),this._updateObjects(A),this._updateMaterial(A)}_addAsset(e){e.asset=e.asset||{},e.asset.version=`2.0`,e.asset.generator=e.asset.generator||`Normalized to glTF 2.0 by loaders.gl`}_convertTopLevelObjectsToArrays(e){for(let r in Xm)this._convertTopLevelObjectToArray(e,r)}_convertTopLevelObjectToArray(e,r){let A=e[r];if(!(!A||Array.isArray(A))){e[r]=[];for(let i in A){let a=A[i];a.id=a.id||i;let d=e[r].length;e[r].push(a),this.idToIndexMap[r][i]=d}}}_convertObjectIdsToArrayIndices(e){for(let r in Xm)this._convertIdsToIndices(e,r);`scene`in e&&(e.scene=this._convertIdToIndex(e.scene,`scene`));for(let r of e.textures)this._convertTextureIds(r);for(let r of e.meshes)this._convertMeshIds(r);for(let r of e.nodes)this._convertNodeIds(r);for(let r of e.scenes)this._convertSceneIds(r)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,`image`))}_convertMeshIds(e){for(let r of e.primitives){let{attributes:A,indices:i,material:a}=r;for(let d in A)A[d]=this._convertIdToIndex(A[d],`accessor`);i&&(r.indices=this._convertIdToIndex(i,`accessor`)),a&&(r.material=this._convertIdToIndex(a,`material`))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(r=>this._convertIdToIndex(r,`node`))),e.meshes&&(e.meshes=e.meshes.map(r=>this._convertIdToIndex(r,`mesh`)))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(r=>this._convertIdToIndex(r,`node`)))}_convertIdsToIndices(e,r){e[r]||(console.warn(`gltf v1: json doesn't contain attribute ${r}`),e[r]=[]);for(let A of e[r])for(let i in A){let a=A[i];A[i]=this._convertIdToIndex(a,i)}}_convertIdToIndex(e,r){let A=B4[r];if(A in this.idToIndexMap){let i=this.idToIndexMap[A][e];if(!Number.isFinite(i))throw new Error(`gltf v1: failed to resolve ${r} with id ${e}`);return i}return e}_updateObjects(e){for(let r of this.json.buffers)delete r.type}_updateMaterial(e){for(let r of e.materials){r.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};let A=r.values?.tex||r.values?.texture2d_0||r.values?.diffuseTex,i=e.textures.findIndex(a=>a.id===A);i!==-1&&(r.pbrMetallicRoughness.baseColorTexture={index:i})}}};function Ym(t,e={}){return new el().normalize(t,e)}function v4(t,e){let r$35=t.basis,A=r$35?.format;return s(r({},t),{core:s(r({},t.core),{mimeType:e}),basis:s(r({},r$35),{format:A&&A!==`auto`?A:Di(r$35?.supportedTextureFormats)})})}async function Wm(t,e,r=0,A,i){return M4(t,e,r,A),Ym(t,{normalize:A?.gltf?.normalize}),zm(t,A,i),A?.gltf?.loadBuffers&&t.json.buffers&&await I4(t,A,i),A?.gltf?.loadImages&&await S4(t,A,i),await Jm(t,A,i),t}function M4(t,e,r,A){if(A.core?.baseUrl&&(t.baseUri=A.core?.baseUrl),e instanceof ArrayBuffer&&!Fm(e,r,A.glb)&&(e=new TextDecoder().decode(e)),typeof e==`string`)t.json=ld$1(e);else if(e instanceof ArrayBuffer){let d={};r=Lm(d,e,r,A.glb),vt(d.type===`glTF`,`Invalid GLB magic string ${d.type}`),t._glb=d,t.json=d.json}else vt(!1,`GLTF: must be ArrayBuffer or string`);let i=t.json.buffers||[];if(t.buffers=new Array(i.length).fill(null),t._glb&&t._glb.header.hasBinChunk){let{binChunks:d}=t._glb;t.buffers[0]={arrayBuffer:d[0].arrayBuffer,byteOffset:d[0].byteOffset,byteLength:d[0].byteLength}}let a=t.json.images||[];t.images=new Array(a.length).fill({})}async function I4(t,e,r){let A=t.json.buffers||[];for(let i=0;i<A.length;++i){let a=A[i];if(a.uri){let{fetch:d}=r;vt(d);let m=Uc(a.uri,e,r),_=await(await r?.fetch?.(m))?.arrayBuffer?.();t.buffers[i]={arrayBuffer:_,byteOffset:0,byteLength:_.byteLength},delete a.uri}else t.buffers[i]===null&&(t.buffers[i]={arrayBuffer:new ArrayBuffer(a.byteLength),byteOffset:0,byteLength:a.byteLength})}}async function S4(t,e,r){let A=F4(t),i=t.json.images||[],a=[];for(let d of A)a.push(L4(t,i[d],d,e,r));return await Promise.all(a)}function F4(t){let e=new Set,r=t.json.textures||[];for(let A of r)A.source!==void 0&&e.add(A.source);return Array.from(e).sort()}async function L4(t,e,r,A,i){let a;if(e.uri&&!e.hasOwnProperty(`bufferView`)){let y=Uc(e.uri,A,i),{fetch:_}=i;a=await(await _(y)).arrayBuffer(),e.bufferView={data:a}}if(Number.isFinite(e.bufferView)){let y=xm(t.json,t.buffers,e.bufferView);a=hd$1(y.buffer,y.byteOffset,y.byteLength)}vt(a,`glTF image has no data`);let d=v4(A,e.mimeType),m=await jp$1(a,[oc$1,Ec],d,i);m&&m[0]&&(m={compressed:!0,mipmaps:!1,width:m[0].width,height:m[0].height,data:m[0]}),t.images=t.images||[],t.images[r]=m}var en={dataType:null,batchType:null,name:`glTF`,id:`gltf`,module:`gltf`,version:Im,extensions:[`gltf`,`glb`],mimeTypes:[`model/gltf+json`,`model/gltf-binary`],text:!0,binary:!0,tests:[`glTF`],parse:R4,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0}}};async function R4(t,e={},r$36){let A=r(r({},en.options),e);A.gltf=r(r({},en.options.gltf),A.gltf);return await Wm({},t,e?.glb?.byteOffset||0,A,r$36)}var P4={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16};var D4={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4};var Tr={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986};var N4={magFilter:Tr.TEXTURE_MAG_FILTER,minFilter:Tr.TEXTURE_MIN_FILTER,wrapS:Tr.TEXTURE_WRAP_S,wrapT:Tr.TEXTURE_WRAP_T};var O4={[Tr.TEXTURE_MAG_FILTER]:Tr.LINEAR,[Tr.TEXTURE_MIN_FILTER]:Tr.NEAREST_MIPMAP_LINEAR,[Tr.TEXTURE_WRAP_S]:Tr.REPEAT,[Tr.TEXTURE_WRAP_T]:Tr.REPEAT};function G4(){return{id:`default-sampler`,parameters:O4}}function k4(t){return D4[t]}function U4(t){return P4[t]}var tl=class{baseUri=``;jsonUnprocessed;json;buffers=[];images=[];postProcess(e,r={}){let{json:A,buffers:i=[],images:a=[]}=e,{baseUri:d=``}=e;return vt(A),this.baseUri=d,this.buffers=i,this.images=a,this.jsonUnprocessed=A,this.json=this._resolveTree(e.json,r),this.json}_resolveTree(e,r$37={}){let A=r({},e);return this.json=A,e.bufferViews&&(A.bufferViews=e.bufferViews.map((i,a)=>this._resolveBufferView(i,a))),e.images&&(A.images=e.images.map((i,a)=>this._resolveImage(i,a))),e.samplers&&(A.samplers=e.samplers.map((i,a)=>this._resolveSampler(i,a))),e.textures&&(A.textures=e.textures.map((i,a)=>this._resolveTexture(i,a))),e.accessors&&(A.accessors=e.accessors.map((i,a)=>this._resolveAccessor(i,a))),e.materials&&(A.materials=e.materials.map((i,a)=>this._resolveMaterial(i,a))),e.meshes&&(A.meshes=e.meshes.map((i,a)=>this._resolveMesh(i,a))),e.nodes&&(A.nodes=e.nodes.map((i,a)=>this._resolveNode(i,a)),A.nodes=A.nodes.map((i,a)=>this._resolveNodeChildren(i))),e.skins&&(A.skins=e.skins.map((i,a)=>this._resolveSkin(i,a))),e.scenes&&(A.scenes=e.scenes.map((i,a)=>this._resolveScene(i,a))),typeof this.json.scene==`number`&&A.scenes&&(A.scene=A.scenes[this.json.scene]),A}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,r){if(typeof r==`object`)return r;let A=e&&e[r];return A||console.warn(`glTF file error: Could not find ${e}[${r}]`),A}_resolveScene(e,r$38){return s(r({},e),{id:e.id||`scene-${r$38}`,nodes:(e.nodes||[]).map(A=>this.getNode(A))})}_resolveNode(e,r$39){let A=s(r({},e),{id:e?.id||`node-${r$39}`});return e.mesh!==void 0&&(A.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(A.camera=this.getCamera(e.camera)),e.skin!==void 0&&(A.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(A.mesh=e.meshes.reduce((i,a)=>{let d=this.getMesh(a);return i.id=d.id,i.primitives=i.primitives.concat(d.primitives),i},{primitives:[]})),A}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(r=>this.getNode(r))),e}_resolveSkin(e,r$40){let A=typeof e.inverseBindMatrices==`number`?this.getAccessor(e.inverseBindMatrices):void 0;return s(r({},e),{id:e.id||`skin-${r$40}`,inverseBindMatrices:A})}_resolveMesh(e,r$41){let A=s(r({},e),{id:e.id||`mesh-${r$41}`,primitives:[]});return e.primitives&&(A.primitives=e.primitives.map(i=>{let a=s(r({},i),{attributes:{},indices:void 0,material:void 0}),d=i.attributes;for(let m in d)a.attributes[m]=this.getAccessor(d[m]);return i.indices!==void 0&&(a.indices=this.getAccessor(i.indices)),i.material!==void 0&&(a.material=this.getMaterial(i.material)),a})),A}_resolveMaterial(e,r$42){let A=s(r({},e),{id:e.id||`material-${r$42}`});if(A.normalTexture&&(A.normalTexture=r({},A.normalTexture),A.normalTexture.texture=this.getTexture(A.normalTexture.index)),A.occlusionTexture&&(A.occlusionTexture=r({},A.occlusionTexture),A.occlusionTexture.texture=this.getTexture(A.occlusionTexture.index)),A.emissiveTexture&&(A.emissiveTexture=r({},A.emissiveTexture),A.emissiveTexture.texture=this.getTexture(A.emissiveTexture.index)),A.emissiveFactor||(A.emissiveFactor=A.emissiveTexture?[1,1,1]:[0,0,0]),A.pbrMetallicRoughness){A.pbrMetallicRoughness=r({},A.pbrMetallicRoughness);let i=A.pbrMetallicRoughness;i.baseColorTexture&&(i.baseColorTexture=r({},i.baseColorTexture),i.baseColorTexture.texture=this.getTexture(i.baseColorTexture.index)),i.metallicRoughnessTexture&&(i.metallicRoughnessTexture=r({},i.metallicRoughnessTexture),i.metallicRoughnessTexture.texture=this.getTexture(i.metallicRoughnessTexture.index))}return A}_resolveAccessor(e,r$43){let A=k4(e.componentType),i=U4(e.type),a=A*i,d=s(r({},e),{id:e.id||`accessor-${r$43}`,bytesPerComponent:A,components:i,bytesPerElement:a,value:void 0,bufferView:void 0,sparse:void 0});if(e.bufferView!==void 0&&(d.bufferView=this.getBufferView(e.bufferView)),d.bufferView){let m=d.bufferView.buffer,{ArrayType:y,byteLength:_}=FA(d,d.bufferView),E=(d.bufferView.byteOffset||0)+(d.byteOffset||0)+m.byteOffset,x=Mi$1(m.arrayBuffer,E,_);d.bufferView.byteStride&&(x=this._getValueFromInterleavedBuffer(m,E,d.bufferView.byteStride,d.bytesPerElement,d.count)),d.value=new y(x)}return d}_getValueFromInterleavedBuffer(e,r,A,i,a){let d=new Uint8Array(a*i);for(let m=0;m<a;m++){let y=r+m*A;d.set(new Uint8Array(e.arrayBuffer.slice(y,y+i)),m*i)}return d.buffer}_resolveTexture(e,r$44){return s(r({},e),{id:e.id||`texture-${r$44}`,sampler:typeof e.sampler==`number`?this.getSampler(e.sampler):G4(),source:typeof e.source==`number`?this.getImage(e.source):void 0})}_resolveSampler(e,r$45){let A=s(r({id:e.id||`sampler-${r$45}`},e),{parameters:{}});for(let i in A){let a=this._enumSamplerParameter(i);a!==void 0&&(A.parameters[a]=A[i])}return A}_enumSamplerParameter(e){return N4[e]}_resolveImage(e,r$46){let A=s(r({},e),{id:e.id||`image-${r$46}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0}),i=this.images[r$46];return i&&(A.image=i),A}_resolveBufferView(e,r$47){let A=e.buffer,i=this.buffers[A].arrayBuffer,a=this.buffers[A].byteOffset||0;return e.byteOffset&&(a+=e.byteOffset),s(r({id:`bufferView-${r$47}`},e),{buffer:this.buffers[A],data:new Uint8Array(i,a,e.byteLength)})}_resolveCamera(e,r$48){let A=s(r({},e),{id:e.id||`camera-${r$48}`});return A.perspective,A.orthographic,A}};function Hn(t,e){return new tl().postProcess(t,e)}async function Zm(t){let e=[];return t.scenes.forEach(r=>{r.traverse(A=>{})}),await H4(()=>e.some(r=>!r.loaded))}async function H4(t){for(;t();)await new Promise(e=>requestAnimationFrame(e))}var $m=`layout(std140) uniform scenegraphUniforms {
|
|
259
|
-
float sizeScale;
|
|
260
|
-
float sizeMinPixels;
|
|
261
|
-
float sizeMaxPixels;
|
|
262
|
-
mat4 sceneModelMatrix;
|
|
263
|
-
bool composeModelMatrix;
|
|
264
|
-
} scenegraph;
|
|
265
|
-
`;var e2={name:`scenegraph`,vs:$m,fs:$m,uniformTypes:{sizeScale:`f32`,sizeMinPixels:`f32`,sizeMaxPixels:`f32`,sceneModelMatrix:`mat4x4<f32>`,composeModelMatrix:`f32`}};var t2=`#version 300 es
|
|
266
|
-
#define SHADER_NAME scenegraph-layer-vertex-shader
|
|
267
|
-
in vec3 instancePositions;
|
|
268
|
-
in vec3 instancePositions64Low;
|
|
269
|
-
in vec4 instanceColors;
|
|
270
|
-
in vec3 instancePickingColors;
|
|
271
|
-
in vec3 instanceModelMatrixCol0;
|
|
272
|
-
in vec3 instanceModelMatrixCol1;
|
|
273
|
-
in vec3 instanceModelMatrixCol2;
|
|
274
|
-
in vec3 instanceTranslation;
|
|
275
|
-
in vec3 positions;
|
|
276
|
-
#ifdef HAS_UV
|
|
277
|
-
in vec2 texCoords;
|
|
278
|
-
#endif
|
|
279
|
-
#ifdef LIGHTING_PBR
|
|
280
|
-
#ifdef HAS_NORMALS
|
|
281
|
-
in vec3 normals;
|
|
282
|
-
#endif
|
|
283
|
-
#endif
|
|
284
|
-
out vec4 vColor;
|
|
285
|
-
#ifndef LIGHTING_PBR
|
|
286
|
-
#ifdef HAS_UV
|
|
287
|
-
out vec2 vTEXCOORD_0;
|
|
288
|
-
#endif
|
|
289
|
-
#endif
|
|
290
|
-
void main(void) {
|
|
291
|
-
#if defined(HAS_UV) && !defined(LIGHTING_PBR)
|
|
292
|
-
vTEXCOORD_0 = texCoords;
|
|
293
|
-
geometry.uv = texCoords;
|
|
294
|
-
#endif
|
|
295
|
-
geometry.worldPosition = instancePositions;
|
|
296
|
-
geometry.pickingColor = instancePickingColors;
|
|
297
|
-
mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);
|
|
298
|
-
vec3 normal = vec3(0.0, 0.0, 1.0);
|
|
299
|
-
#ifdef LIGHTING_PBR
|
|
300
|
-
#ifdef HAS_NORMALS
|
|
301
|
-
normal = instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4(normals, 0.0)).xyz;
|
|
302
|
-
#endif
|
|
303
|
-
#endif
|
|
304
|
-
float originalSize = project_size_to_pixel(scenegraph.sizeScale);
|
|
305
|
-
float clampedSize = clamp(originalSize, scenegraph.sizeMinPixels, scenegraph.sizeMaxPixels);
|
|
306
|
-
vec3 pos = (instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4(positions, 1.0)).xyz) * scenegraph.sizeScale * (clampedSize / originalSize) + instanceTranslation;
|
|
307
|
-
if(scenegraph.composeModelMatrix) {
|
|
308
|
-
DECKGL_FILTER_SIZE(pos, geometry);
|
|
309
|
-
geometry.normal = project_normal(normal);
|
|
310
|
-
geometry.worldPosition += pos;
|
|
311
|
-
gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), geometry.position);
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
pos = project_size(pos);
|
|
315
|
-
DECKGL_FILTER_SIZE(pos, geometry);
|
|
316
|
-
gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, geometry.position);
|
|
317
|
-
geometry.normal = project_normal(normal);
|
|
318
|
-
}
|
|
319
|
-
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
320
|
-
#ifdef LIGHTING_PBR
|
|
321
|
-
pbr_vPosition = geometry.position.xyz;
|
|
322
|
-
#ifdef HAS_NORMALS
|
|
323
|
-
pbr_vNormal = geometry.normal;
|
|
324
|
-
#endif
|
|
325
|
-
#ifdef HAS_UV
|
|
326
|
-
pbr_vUV0 = texCoords;
|
|
327
|
-
#else
|
|
328
|
-
pbr_vUV0 = vec2(0., 0.);
|
|
329
|
-
#endif
|
|
330
|
-
pbr_vUV1 = vec2(0., 0.);
|
|
331
|
-
geometry.uv = pbr_vUV0;
|
|
332
|
-
#endif
|
|
333
|
-
vColor = instanceColors;
|
|
334
|
-
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
335
|
-
}
|
|
336
|
-
`;var r2=`#version 300 es
|
|
337
|
-
#define SHADER_NAME scenegraph-layer-fragment-shader
|
|
338
|
-
in vec4 vColor;
|
|
339
|
-
out vec4 fragColor;
|
|
340
|
-
#ifndef LIGHTING_PBR
|
|
341
|
-
#if defined(HAS_UV) && defined(HAS_BASECOLORMAP)
|
|
342
|
-
in vec2 vTEXCOORD_0;
|
|
343
|
-
uniform sampler2D pbr_baseColorSampler;
|
|
344
|
-
#endif
|
|
345
|
-
#endif
|
|
346
|
-
void main(void) {
|
|
347
|
-
#ifdef LIGHTING_PBR
|
|
348
|
-
fragColor = vColor * pbr_filterColor(vec4(0));
|
|
349
|
-
geometry.uv = pbr_vUV0;
|
|
350
|
-
#else
|
|
351
|
-
#if defined(HAS_UV) && defined(HAS_BASECOLORMAP)
|
|
352
|
-
fragColor = vColor * texture(pbr_baseColorSampler, vTEXCOORD_0);
|
|
353
|
-
geometry.uv = vTEXCOORD_0;
|
|
354
|
-
#else
|
|
355
|
-
fragColor = vColor;
|
|
356
|
-
#endif
|
|
357
|
-
#endif
|
|
358
|
-
fragColor.a *= layer.opacity;
|
|
359
|
-
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
360
|
-
}
|
|
361
|
-
`;var n2=[255,255,255,255];var V4={scenegraph:{type:`object`,value:null,async:!0},getScene:t=>t&&t.scenes?typeof t.scene==`object`?t.scene:t.scenes[t.scene||0]:t,getAnimator:t=>t&&t.animator,_animations:null,onFirstDraw:{type:`function`,value:()=>{}},sizeScale:{type:`number`,value:1,min:0},sizeMinPixels:{type:`number`,min:0,value:0},sizeMaxPixels:{type:`number`,min:0,value:Number.MAX_SAFE_INTEGER},getPosition:{type:`accessor`,value:t=>t.position},getColor:{type:`accessor`,value:n2},_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:[en]};var rl=(()=>{class t extends gc$1{getShaders(){let r={},A;this.props._lighting===`pbr`?(A=mb$1,r.LIGHTING_PBR=1):A={name:`pbrMaterial`};let i=[Qh$1,ou,e2,A];return super.getShaders({defines:r,vs:t2,fs:r2,modules:i})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:`float64`,fp64:this.use64bitPositions(),accessor:`getPosition`,transition:!0},instanceColors:{type:`unorm8`,size:this.props.colorFormat.length,accessor:`getColor`,defaultValue:n2,transition:!0},instanceModelMatrix:uo})}updateState(r){super.updateState(r);let{props:A,oldProps:i}=r;A.scenegraph!==i.scenegraph?this._updateScenegraph():A._animations!==i._animations&&this._applyAnimationsProp(this.state.animator,A._animations)}finalizeState(r){super.finalizeState(r),this._destroyScenegraphAssets()}get isLoaded(){return!!(this.state?.scenegraph&&super.isLoaded)}_updateScenegraph(){let r=this.props,{device:A}=this.context,i=null;if(r.scenegraph instanceof nt)i={scenes:[r.scenegraph]};else if(r.scenegraph&&typeof r.scenegraph==`object`){let y=r.scenegraph,E=Fc(A,y.json?Hn(y):y,this._getModelOptions());i=E,Zm(E).then(()=>this.setNeedsRedraw()).catch(x=>{this.raiseError(x,`loading glTF`)})}let a={layer:this,device:this.context.device},d=r.getScene(i,a),m=r.getAnimator(i,a);if(d instanceof Fa){this._destroyScenegraphAssets(),this._applyAnimationsProp(m,r._animations);let y=[];d.traverse(_=>{_ instanceof Va&&y.push(_.model)}),this.setState({scenegraph:d,animator:m,materials:i?.materials||null,models:y,firstDrawSignaled:!1}),this.getAttributeManager().invalidateAll()}else d!==null&&C.warn(`invalid scenegraph:`,d)()}_destroyScenegraphAssets(){this.state.scenegraph?.destroy(),this.state.materials?.forEach(r=>r.destroy()),this.state.scenegraph=null,this.state.animator=null,this.state.materials=null,this.state.models=[]}_applyAnimationsProp(r,A){if(!r||!A)return;let i=r.getAnimations();Object.keys(A).sort().forEach(a=>{let d=A[a];if(a===`*`)i.forEach(m=>{Object.assign(m,d)});else if(Number.isFinite(Number(a))){let m=Number(a);m>=0&&m<i.length?Object.assign(i[m],d):C.warn(`animation ${a} not found`)()}else{let m=i.find(({animation:y})=>y.name===a);m?Object.assign(m,d):C.warn(`animation ${a} not found`)()}})}_getModelOptions(){let{_imageBasedLightingEnvironment:r$49}=this.props,A;return r$49&&(typeof r$49==`function`?A=r$49({gl:this.context.gl,layer:this}):A=r$49),{imageBasedLightingEnvironment:A,modelOptions:r({id:this.props.id,isInstanced:!0,bufferLayout:this.getAttributeManager().getBufferLayouts()},this.getShaders()),useTangents:!1}}draw({context:r}){if(!this.state.scenegraph)return;this.props._animations&&this.state.animator&&(this.state.animator.setTime(r.timeline.getTime()),this.setNeedsRedraw());let{viewport:A,renderPass:i}=this.context,{sizeScale:a,sizeMinPixels:d,sizeMaxPixels:m,coordinateSystem:y}=this.props,_={camera:A.cameraPosition},E=this.getNumInstances();this.state.scenegraph.traverse((x,{worldMatrix:v})=>{if(x instanceof Va){let{model:F}=x;F.setInstanceCount(E);let N={sizeScale:a,sizeMinPixels:d,sizeMaxPixels:m,composeModelMatrix:fo(A,y),sceneModelMatrix:v};F.shaderInputs.setProps({pbrProjection:_,scenegraph:N}),F.draw(i)}}),this.state.firstDrawSignaled||(this.state.firstDrawSignaled=!0,this.props.onFirstDraw?.())}}return t.defaultProps=V4,t.layerName=`ScenegraphLayer`,t})();var A2=`layout(std140) uniform meshUniforms {
|
|
362
|
-
bool pickFeatureIds;
|
|
363
|
-
} mesh;
|
|
364
|
-
`;var i2={name:`mesh`,vs:A2,fs:A2,uniformTypes:{pickFeatureIds:`f32`}};var s2=`#version 300 es
|
|
365
|
-
#define SHADER_NAME simple-mesh-layer-vs
|
|
366
|
-
in vec3 positions;
|
|
367
|
-
in vec3 normals;
|
|
368
|
-
in vec3 colors;
|
|
369
|
-
in vec2 texCoords;
|
|
370
|
-
in vec4 uvRegions;
|
|
371
|
-
in vec3 featureIdsPickingColors;
|
|
372
|
-
in vec4 instanceColors;
|
|
373
|
-
in vec3 instancePickingColors;
|
|
374
|
-
in vec3 instanceModelMatrixCol0;
|
|
375
|
-
in vec3 instanceModelMatrixCol1;
|
|
376
|
-
in vec3 instanceModelMatrixCol2;
|
|
377
|
-
out vec2 vTexCoord;
|
|
378
|
-
out vec3 cameraPosition;
|
|
379
|
-
out vec3 normals_commonspace;
|
|
380
|
-
out vec4 position_commonspace;
|
|
381
|
-
out vec4 vColor;
|
|
382
|
-
vec2 applyUVRegion(vec2 uv) {
|
|
383
|
-
#ifdef HAS_UV_REGIONS
|
|
384
|
-
return fract(uv) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy;
|
|
385
|
-
#else
|
|
386
|
-
return uv;
|
|
387
|
-
#endif
|
|
388
|
-
}
|
|
389
|
-
void main(void) {
|
|
390
|
-
vec2 uv = applyUVRegion(texCoords);
|
|
391
|
-
geometry.uv = uv;
|
|
392
|
-
if (mesh.pickFeatureIds) {
|
|
393
|
-
geometry.pickingColor = featureIdsPickingColors;
|
|
394
|
-
} else {
|
|
395
|
-
geometry.pickingColor = instancePickingColors;
|
|
396
|
-
}
|
|
397
|
-
mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2);
|
|
398
|
-
vTexCoord = uv;
|
|
399
|
-
cameraPosition = project.cameraPosition;
|
|
400
|
-
vColor = vec4(colors * instanceColors.rgb, instanceColors.a);
|
|
401
|
-
vec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale;
|
|
402
|
-
vec3 projectedPosition = project_position(positions);
|
|
403
|
-
position_commonspace = vec4(projectedPosition, 1.0);
|
|
404
|
-
gl_Position = project_common_position_to_clipspace(position_commonspace);
|
|
405
|
-
geometry.position = position_commonspace;
|
|
406
|
-
normals_commonspace = project_normal(instanceModelMatrix * normals);
|
|
407
|
-
geometry.normal = normals_commonspace;
|
|
408
|
-
DECKGL_FILTER_GL_POSITION(gl_Position, geometry);
|
|
409
|
-
#ifdef MODULE_PBRMATERIAL
|
|
410
|
-
pbr_vPosition = geometry.position.xyz;
|
|
411
|
-
#ifdef HAS_NORMALS
|
|
412
|
-
pbr_vNormal = geometry.normal;
|
|
413
|
-
#endif
|
|
414
|
-
#ifdef HAS_UV
|
|
415
|
-
pbr_vUV0 = uv;
|
|
416
|
-
#else
|
|
417
|
-
pbr_vUV0 = vec2(0., 0.);
|
|
418
|
-
#endif
|
|
419
|
-
pbr_vUV1 = vec2(0., 0.);
|
|
420
|
-
geometry.uv = pbr_vUV0;
|
|
421
|
-
#endif
|
|
422
|
-
DECKGL_FILTER_COLOR(vColor, geometry);
|
|
423
|
-
}
|
|
424
|
-
`;var o2=`#version 300 es
|
|
425
|
-
#define SHADER_NAME simple-mesh-layer-fs
|
|
426
|
-
precision highp float;
|
|
427
|
-
uniform sampler2D sampler;
|
|
428
|
-
in vec2 vTexCoord;
|
|
429
|
-
in vec3 cameraPosition;
|
|
430
|
-
in vec3 normals_commonspace;
|
|
431
|
-
in vec4 position_commonspace;
|
|
432
|
-
in vec4 vColor;
|
|
433
|
-
out vec4 fragColor;
|
|
434
|
-
void main(void) {
|
|
435
|
-
#ifdef MODULE_PBRMATERIAL
|
|
436
|
-
fragColor = vColor * pbr_filterColor(vec4(0));
|
|
437
|
-
geometry.uv = pbr_vUV0;
|
|
438
|
-
fragColor.a *= layer.opacity;
|
|
439
|
-
#else
|
|
440
|
-
geometry.uv = vTexCoord;
|
|
441
|
-
vec3 normal;
|
|
442
|
-
if (simpleMesh.flatShading) {
|
|
443
|
-
normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz)));
|
|
444
|
-
} else {
|
|
445
|
-
normal = normals_commonspace;
|
|
446
|
-
}
|
|
447
|
-
vec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor;
|
|
448
|
-
vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal);
|
|
449
|
-
fragColor = vec4(lightColor, color.a * layer.opacity);
|
|
450
|
-
#endif
|
|
451
|
-
DECKGL_FILTER_COLOR(fragColor, geometry);
|
|
452
|
-
}
|
|
453
|
-
`;function Q4(t){let e=t.positions||t.POSITION,r=e.value.length/e.size;t.COLOR_0||t.colors||(t.colors={size:4,value:new Uint8Array(r*4).fill(255),normalized:!0})}var z4={pbrMaterial:{type:`object`,value:null},featureIds:{type:`array`,value:null,optional:!0}};var a2=(()=>{class t extends MA{getShaders(){let r$50=super.getShaders();return r$50.modules.push(mb$1,i2),s(r({},r$50),{vs:s2,fs:o2})}initializeState(){let{featureIds:r}=this.props;super.initializeState();let A=this.getAttributeManager();r&&A.add({featureIdsPickingColors:{type:`uint8`,size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(r){super.updateState(r);let{props:A,oldProps:i}=r;A.pbrMaterial!==i.pbrMaterial&&this.updatePbrMaterialUniforms(A.pbrMaterial)}draw(r){let{featureIds:A}=this.props,{model:i}=this.state;if(!i)return;let a={pickFeatureIds:!!A},d={camera:this.context.viewport.cameraPosition};i.shaderInputs.setProps({pbrProjection:d,mesh:a}),super.draw(r)}getModel(r$51){let{id:A}=this.props,i=this.parseMaterial(this.props.pbrMaterial,r$51);this.setState({parsedPBRMaterial:i});let a=this.getShaders();return Q4(r$51.attributes),new Kt$1(this.context.device,s(r({},this.getShaders()),{id:A,geometry:r$51,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:s(r(r({},a.defines),i?.defines),{HAS_UV_REGIONS:r$51.attributes.uvRegions?1:0}),parameters:i?.parameters,isInstanced:!0}))}updatePbrMaterialUniforms(r$52){let{model:A}=this.state;if(A){let{mesh:a}=this.props,d=this.parseMaterial(r$52,a);this.setState({parsedPBRMaterial:d});let{pbr_baseColorSampler:m}=d.bindings,{emptyTexture:y}=this.state,_={sampler:m||y,hasTexture:!!m},i=r(r({},d.bindings),d.uniforms),{camera:E}=i,x=u(i,[`camera`]);A.shaderInputs.setProps({simpleMesh:_,pbrMaterial:x})}}parseMaterial(r$53,A){let i=!!(r$53.pbrMetallicRoughness&&r$53.pbrMetallicRoughness.baseColorTexture);return SA(this.context.device,r({unlit:i},r$53),{NORMAL:A.attributes.normals,TEXCOORD_0:A.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(r){let A=this.props.featureIds,i=new Uint8ClampedArray(A.length*r.size),a=[];for(let d=0;d<A.length;d++)this.encodePickingColor(A[d],a),i[d*3]=a[0],i[d*3+1]=a[1],i[d*3+2]=a[2];r.value=i}finalizeState(r){super.finalizeState(r),this.state.parsedPBRMaterial?.generatedTextures.forEach(A=>A.destroy()),this.setState({parsedPBRMaterial:null})}}return t.layerName=`MeshLayer`,t.defaultProps=z4,t})();var tn=6356752.314245179;tn*tn,1/tn,1/(tn*tn);function Po(t){return t}new H;function K4(t,e=[],r=Po){return`longitude`in t?(e[0]=r(t.longitude),e[1]=r(t.latitude),e[2]=t.height):`x`in t?(e[0]=r(t.x),e[1]=r(t.y),e[2]=t.z):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function c2(t,e=[]){return K4(t,e,W._cartographicRadians?Po:om$1)}function X4(t,e,r=Po){return`longitude`in e?(e.longitude=r(t[0]),e.latitude=r(t[1]),e.height=t[2]):`x`in e?(e.x=r(t[0]),e.y=r(t[1]),e.z=t[2]):(e[0]=r(t[0]),e[1]=r(t[1]),e[2]=t[2]),e}function l2(t,e){return X4(t,e,W._cartographicRadians?Po:sm$1)}var u2=1e-14;var Y4=new H;var f2={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`}};var nl={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]};var ji={east:new H,north:new H,up:new H,west:new H,south:new H,down:new H};var W4=new H;var Z4=new H;var $4=new H;function Al(t,e,r,A,i,a){let d=f2[e]&&f2[e][r];ji$1(d&&(!A||A===d));let m,y,_,E=Y4.copy(i);if(De(E.x,0,u2)&&De(E.y,0,u2)){let v=Math.sign(E.z);m=W4.fromArray(nl[e]),e!==`east`&&e!==`west`&&m.scale(v),y=Z4.fromArray(nl[r]),r!==`east`&&r!==`west`&&y.scale(v),_=$4.fromArray(nl[A]),A!==`east`&&A!==`west`&&_.scale(v)}else{let{up:v,east:F,north:N}=ji;F.set(-E.y,E.x,0).normalize(),t.geodeticSurfaceNormal(E,v),N.copy(v).cross(F);let{down:U,west:q,south:X}=ji;U.copy(v).scale(-1),q.copy(F).scale(-1),X.copy(N).scale(-1),m=ji[e],y=ji[r],_=ji[A]}return a[0]=m.x,a[1]=m.y,a[2]=m.z,a[3]=0,a[4]=y.x,a[5]=y.y,a[6]=y.z,a[7]=0,a[8]=_.x,a[9]=_.y,a[10]=_.z,a[11]=0,a[12]=E.x,a[13]=E.y,a[14]=E.z,a[15]=1,a}var kA=new H;var eI=new H;var tI=new H;function h2(t,e,r=[]){let{oneOverRadii:A,oneOverRadiiSquared:i,centerToleranceSquared:a}=e;kA.from(t);let d=kA.x,m=kA.y,y=kA.z,_=A.x,E=A.y,x=A.z,v=d*d*_*_,F=m*m*E*E,N=y*y*x*x,U=v+F+N,q=Math.sqrt(1/U);if(!Number.isFinite(q))return;let X=eI;if(X.copy(t).scale(q),U<a)return X.to(r);let Z=i.x,he=i.y,_e=i.z,be=tI;be.set(X.x*Z*2,X.y*he*2,X.z*_e*2);let Te=(1-q)*kA.len()/(.5*be.len()),Ee=0,se,Y,k,ge;do{Te-=Ee,se=1/(1+Te*Z),Y=1/(1+Te*he),k=1/(1+Te*_e);let Me=se*se,Ie=Y*Y,ve=k*k,ke=Me*se,rt=Ie*Y,qe=ve*k;ge=v*Me+F*Ie+N*ve-1;let at=-2*(v*ke*Z+F*rt*he+N*qe*_e);Ee=ge/at}while(Math.abs(ge)>Nf.EPSILON12);return kA.scale([se,Y,k]).to(r)}var Do=new H;var d2=new H;var AI=new H;var Lr=new H;var iI=new H;var No=new H;var Ne=class{constructor(e=0,r=0,A=0){this.centerToleranceSquared=Nf.EPSILON1,ji$1(e>=0),ji$1(r>=0),ji$1(A>=0),this.radii=new H(e,r,A),this.radiiSquared=new H(e*e,r*r,A*A),this.radiiToTheFourth=new H(e*e*e*e,r*r*r*r,A*A*A*A),this.oneOverRadii=new H(e===0?0:1/e,r===0?0:1/r,A===0?0:1/A),this.oneOverRadiiSquared=new H(e===0?0:1/(e*e),r===0?0:1/(r*r),A===0?0:1/(A*A)),this.minimumRadius=Math.min(e,r,A),this.maximumRadius=Math.max(e,r,A),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||!!(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,r=[0,0,0]){let A=d2,i=AI,[,,a]=e;this.geodeticSurfaceNormalCartographic(e,A),i.copy(this.radiiSquared).scale(A);let d=Math.sqrt(A.dot(i));return i.scale(1/d),A.scale(a),i.add(A),i.to(r)}cartesianToCartographic(e,r=[0,0,0]){No.from(e);let A=this.scaleToGeodeticSurface(No,Lr);if(!A)return;let i=this.geodeticSurfaceNormal(A,d2),a=iI;a.copy(No).subtract(A);return l2([Math.atan2(i.y,i.x),Math.asin(i.z),Math.sign(re.dot(a,No))*re.length(a)],r)}eastNorthUpToFixedFrame(e,r=new D){return Al(this,`east`,`north`,`up`,e,r)}localFrameToFixedFrame(e,r,A,i,a=new D){return Al(this,e,r,A,i,a)}geocentricSurfaceNormal(e,r=[0,0,0]){return Do.from(e).normalize().to(r)}geodeticSurfaceNormalCartographic(e,r=[0,0,0]){let A=c2(e),i=A[0],a=A[1],d=Math.cos(a);return Do.set(d*Math.cos(i),d*Math.sin(i),Math.sin(a)).normalize(),Do.to(r)}geodeticSurfaceNormal(e,r=[0,0,0]){return Do.from(e).scale(this.oneOverRadiiSquared).normalize().to(r)}scaleToGeodeticSurface(e,r){return h2(e,this,r)}scaleToGeocentricSurface(e,r=[0,0,0]){Lr.from(e);let A=Lr.x,i=Lr.y,a=Lr.z,d=this.oneOverRadiiSquared,m=1/Math.sqrt(A*A*d.x+i*i*d.y+a*a*d.z);return Lr.multiplyScalar(m).to(r)}transformPositionToScaledSpace(e,r=[0,0,0]){return Lr.from(e).scale(this.oneOverRadii).to(r)}transformPositionFromScaledSpace(e,r=[0,0,0]){return Lr.from(e).scale(this.radii).to(r)}getSurfaceNormalIntersectionWithZAxis(e,r=0,A=[0,0,0]){ji$1(De(this.radii.x,this.radii.y,Nf.EPSILON15)),ji$1(this.radii.z>0),Lr.from(e);let i=Lr.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(i)>=this.radii.z-r))return Lr.set(0,0,i).to(A)}};Ne.WGS84=new Ne(6378137,6378137,tn);var Oo=class{item;previous;next;constructor(e,r,A){this.item=e,this.previous=r,this.next=A}};var Go=class{head=null;tail=null;_length=0;get length(){return this._length}add(e){let r=new Oo(e,this.tail,null);return this.tail?(this.tail.next=r,this.tail=r):(this.head=r,this.tail=r),++this._length,r}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,r){e!==r&&(this.remove(r),this._insert(e,r))}_insert(e,r){let A=e.next;e.next=r,this.tail===e?this.tail=r:A.previous=r,r.next=A,r.previous=e,++this._length}};var ko=class{_list;_sentinel;_trimTiles;constructor(){this._list=new Go,this._sentinel=this._list.add(`sentinel`),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){let r=e._cacheNode;r&&this._list.splice(this._sentinel,r)}add(e,r,A){r._cacheNode||(r._cacheNode=this._list.add(r),A&&A(e,r))}unloadTile(e,r,A){let i=r._cacheNode;i&&(this._list.remove(i),r._cacheNode=null,A&&A(e,r))}unloadTiles(e,r){let A=this._trimTiles;this._trimTiles=!1;let i=this._list,a=e.maximumMemoryUsage*1024*1024,d=this._sentinel,m=i.head;for(;m!==d&&(e.gpuMemoryUsageInBytes>a||A);){let y=m.item;m=m.next,this.unloadTile(e,y,r)}}trim(){this._trimTiles=!0}};function p2(t,e){ge(t),ge(e);let{rtcCenter:r,gltfUpAxis:A}=e,{computedTransform:i,boundingVolume:{center:a}}=t,d=new D(i);switch(r&&d.translate(r),A){case`Z`:break;case`Y`:let v=new D().rotateX(Math.PI/2);d=d.multiplyRight(v);break;case`X`:let F=new D().rotateY(-Math.PI/2);d=d.multiplyRight(F);break;default:break}e.isQuantized&&d.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);let m=new H(a);e.cartesianModelMatrix=d,e.cartesianOrigin=m;let y=Ne.WGS84.cartesianToCartographic(m,new H);e.cartographicModelMatrix=Ne.WGS84.eastNorthUpToFixedFrame(m).invert().multiplyRight(d),e.cartographicOrigin=y;let x=oI(e);x&&(e.cartesianModelMatrix=new D(d).multiplyRight(x.matrix),e.cartographicModelMatrix.multiplyRight(x.matrix),x.matrix=D.IDENTITY),e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}var sI=1e6**2;function oI(t){let e=t.gltf;if(!e)return null;let r=typeof e.scene==`number`?e.scene:0,i=e.scenes?.[r]?.nodes?.[0];if(!i?.matrix)return null;let a=i.matrix;return a[12]*a[12]+a[13]*a[13]+a[14]*a[14]<=sI?null:i}var m2=new H;var il=new H;var sl=new Ur([new Ht,new Ht,new Ht,new Ht,new Ht,new Ht]);function y2(t,e){let{cameraDirection:r,cameraUp:A,height:i}=t,{metersPerUnit:a}=t.distanceScales,d=Uo(t,t.center),m=Ne.WGS84.eastNorthUpToFixedFrame(d),y=t.unprojectPosition(t.cameraPosition),_=Ne.WGS84.cartographicToCartesian(y,new H),E=new H(m.transformAsVector(new H(r).scale(a))).normalize(),x=new H(m.transformAsVector(new H(A).scale(a))).normalize();aI(t);let v=t.constructor,{longitude:F,latitude:N,width:U,bearing:q,zoom:X}=t,Z=new v({longitude:F,latitude:N,height:i,width:U,bearing:q,zoom:X,pitch:0});return{camera:{position:_,direction:E,up:x},viewport:t,topDownViewport:Z,height:i,cullingVolume:sl,frameNumber:e,sseDenominator:1.15}}function T2(t,e,r){if(r===0||t.length<=r)return[t,[]];let A=[],{longitude:i,latitude:a}=e.viewport;for(let[_,E]of t.entries()){let[x,v]=E.header.mbs,F=Math.abs(i-x),N=Math.abs(a-v),U=Math.sqrt(N*N+F*F);A.push([_,U])}let d=A.sort((_,E)=>_[1]-E[1]),m=[];for(let _=0;_<r;_++)m.push(t[d[_][0]]);let y=[];for(let _=r;_<d.length;_++)y.push(t[d[_][0]]);return[m,y]}function aI(t){let e=t.getFrustumPlanes(),r=g2(e.near,t.cameraPosition),A=Uo(t,r),i=Uo(t,t.cameraPosition,il),a=0;sl.planes[a++].fromPointNormal(A,m2.copy(A).subtract(i));for(let d in e){if(d===`near`)continue;let m=e[d],_=Uo(t,g2(m,r,il),il);sl.planes[a++].fromPointNormal(_,m2.copy(A).subtract(_))}}function g2(t,e,r=new H){let A=t.normal.dot(e);return r.copy(t.normal).scale(t.distance-A).add(e),r}function Uo(t,e,r=new H){let A=t.unprojectPosition(e);return Ne.WGS84.cartographicToCartesian(A,r)}var cI=6378137;var lI=6378137;var ol=6356752.314245179;var UA=new H;function _2(t,e){if(t instanceof Wr){let{halfAxes:r}=t,A=uI(r);return Math.log2(ol/(A+e[2]))}else if(t instanceof kr){let{radius:r}=t;return Math.log2(ol/(r+e[2]))}else if(t.width&&t.height){let{width:r,height:A}=t;return(Math.log2(cI/r)+Math.log2(lI/A))/2}return 1}function al(t,e,r){Ne.WGS84.cartographicToCartesian([t.xmax,t.ymax,t.zmax],UA);let A=Math.sqrt(Math.pow(UA[0]-r[0],2)+Math.pow(UA[1]-r[1],2)+Math.pow(UA[2]-r[2],2));return Math.log2(ol/(A+e[2]))}function b2(t,e,r){let[A,i,a,d]=t;return al({xmin:A,xmax:a,ymin:i,ymax:d,zmin:0,zmax:0},e,r)}function uI(t){t.getColumn(0,UA);let e=t.getColumn(1),r=t.getColumn(2);return UA.add(e).add(r).len()}var Xt={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5};var Yt=(function(t){return t[t.ADD=1]=`ADD`,t[t.REPLACE=2]=`REPLACE`,t})(Yt||{});var Rr=(function(t){return t.EMPTY=`empty`,t.SCENEGRAPH=`scenegraph`,t.POINTCLOUD=`pointcloud`,t.MESH=`mesh`,t})(Rr||{});var Ut=(function(t){return t.I3S=`I3S`,t.TILES3D=`TILES3D`,t})(Ut||{});var Tn=(function(t){return t.GEOMETRIC_ERROR=`geometricError`,t.MAX_SCREEN_THRESHOLD=`maxScreenThreshold`,t})(Tn||{});var E2={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0};function B2(t){return t!=null}var Vt=new H;var Ho=new H;var fI=new H;var hI=new H;var Vn=new H;var x2=new H;var C2=new H;var w2=new H;function Vo(t,e,r){if(ge(t,`3D Tile: boundingVolume must be defined`),t.box)return M2(t.box,e,r);if(t.region)return pI(t.region);if(t.sphere)return dI(t.sphere,e,r);throw new Error(`3D Tile: boundingVolume must contain a sphere, region, or box`)}function v2(t,e){if(t.box)return mI(e);if(t.region){let[r,A,i,a,d,m]=t.region;return[[Al$1(r),Al$1(A),d],[Al$1(i),Al$1(a),m]]}if(t.sphere)return gI(e);throw new Error(`Unkown boundingVolume type`)}function M2(t,e,r){let A=new H(t[0],t[1],t[2]);e.transform(A,A);let i=[];if(t.length===10){let _=t.slice(3,6),E=new zs$1;E.fromArray(t,6);let x=new H([1,0,0]),v=new H([0,1,0]),F=new H([0,0,1]);x.transformByQuaternion(E),x.scale(_[0]),v.transformByQuaternion(E),v.scale(_[1]),F.transformByQuaternion(E),F.scale(_[2]),i=[...x.toArray(),...v.toArray(),...F.toArray()]}else i=[...t.slice(3,6),...t.slice(6,9),...t.slice(9,12)];let a=e.transformAsVector(i.slice(0,3)),d=e.transformAsVector(i.slice(3,6)),m=e.transformAsVector(i.slice(6,9)),y=new Tr$1([a[0],a[1],a[2],d[0],d[1],d[2],m[0],m[1],m[2]]);return B2(r)?(r.center=A,r.halfAxes=y,r):new Wr(A,y)}function dI(t,e,r){let A=new H(t[0],t[1],t[2]);e.transform(A,A);let i=e.getScale(Ho),a=Math.max(Math.max(i[0],i[1]),i[2]),d=t[3]*a;return B2(r)?(r.center=A,r.radius=d,r):new kr(A,d)}function pI(t){let[e,r,A,i,a,d]=t,m=Ne.WGS84.cartographicToCartesian([Al$1(e),Al$1(i),a],fI),y=Ne.WGS84.cartographicToCartesian([Al$1(A),Al$1(r),d],hI),_=new H().addVectors(m,y).multiplyByScalar(.5);return Ne.WGS84.cartesianToCartographic(_,Vn),Ne.WGS84.cartographicToCartesian([Al$1(A),Vn[1],Vn[2]],x2),Ne.WGS84.cartographicToCartesian([Vn[0],Al$1(i),Vn[2]],C2),Ne.WGS84.cartographicToCartesian([Vn[0],Vn[1],d],w2),M2([..._,...x2.subtract(_),...C2.subtract(_),...w2.subtract(_)],new D)}function mI(t){let e=I2(),{halfAxes:r}=t,A=new H(r.getColumn(0)),i=new H(r.getColumn(1)),a=new H(r.getColumn(2));for(let d=0;d<2;d++){for(let m=0;m<2;m++){for(let y=0;y<2;y++)Vt.copy(t.center),Vt.add(A),Vt.add(i),Vt.add(a),S2(e,Vt),a.negate();i.negate()}A.negate()}return e}function gI(t){let e=I2(),{center:r,radius:A}=t,i=Ne.WGS84.scaleToGeodeticSurface(r,Vt),a;i?a=Ne.WGS84.geodeticSurfaceNormal(i):a=new H(0,0,1);let d=new H(a[2],-a[1],0);d.len()>0?d.normalize():d=new H(0,1,0);let m=d.clone().cross(a);for(let y of[d,m,a]){Ho.copy(y).scale(A);for(let _=0;_<2;_++)Vt.copy(r),Vt.add(Ho),S2(e,Vt),Ho.negate()}return e}function I2(){return[[Infinity,Infinity,Infinity],[-Infinity,-Infinity,-Infinity]]}function S2(t,e){Ne.WGS84.cartesianToCartographic(e,Vt),t[0][0]=Math.min(t[0][0],Vt[0]),t[0][1]=Math.min(t[0][1],Vt[1]),t[0][2]=Math.min(t[0][2],Vt[2]),t[1][0]=Math.max(t[1][0],Vt[0]),t[1][1]=Math.max(t[1][1],Vt[1]),t[1][2]=Math.max(t[1][2],Vt[2])}new H;new H;new D;new H;new H;new H;function yI(t,e){let r=t*e;return 1-Math.exp(-(r*r))}function TI(t,e){if(t.dynamicScreenSpaceError&&t.dynamicScreenSpaceErrorComputedDensity){let r=t.dynamicScreenSpaceErrorComputedDensity,A=t.dynamicScreenSpaceErrorFactor;return yI(e,r)*A}return 0}function F2(t,e,r){let A=t.tileset,i=t.parent&&t.parent.lodMetricValue||t.lodMetricValue,a=r?i:t.lodMetricValue;if(a===0)return 0;let d=Math.max(t._distanceToCamera,1e-7),{height:m,sseDenominator:y}=e,{viewDistanceScale:_}=A.options,E=a*m*(_||1)/(d*y);return E-=TI(A,d),E}var cl=new H;var L2=new H;var _n=new H;var R2=new H;var _I=new H;var ll=new D;var P2=new D;function D2(t,e){if(t.lodMetricValue===0||isNaN(t.lodMetricValue))return`DIG`;let r=2*ul(t,e);return r<2?`OUT`:!t.header.children||r<=t.lodMetricValue?`DRAW`:t.header.children?`DIG`:`OUT`}function ul(t,e){let{topDownViewport:r}=e,A=t.header.mbs[1],i=t.header.mbs[0],a=t.header.mbs[2],d=t.header.mbs[3],m=[...t.boundingVolume.center],y=r.unprojectPosition(r.cameraPosition);Ne.WGS84.cartographicToCartesian(y,cl),L2.copy(cl).subtract(m).normalize(),Ne.WGS84.eastNorthUpToFixedFrame(m,ll),P2.copy(ll).invert(),_n.copy(cl).transform(P2);let _=Math.sqrt(_n[0]*_n[0]+_n[1]*_n[1]),E=_*_/_n[2];R2.copy([_n[0],_n[1],E]);let v=R2.transform(ll).subtract(m).normalize(),N=L2.cross(v).normalize().scale(d).add(m),U=Ne.WGS84.cartesianToCartographic(N),q=r.project([i,A,a]),X=r.project(U);return _I.copy(q).subtract(X).magnitude()}function N2(t){return{assetGltfUpAxis:t.asset&&t.asset.gltfUpAxis||`Y`}}var Qi=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 ge(e<this._array.length),this._array[e]}set(e,r){ge(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=r,this._map.set(r,e)}delete(e){let r=this._map.get(e);r>=0&&(this._array.splice(r,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){let r=this.length++;this._array[r]=e,this._map.set(e,r)}}pop(){let e=this._array[--this.length];return this._map.delete(e),e}reserve(e){ge(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){ge(e>=0),this.length=e}trim(e){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 bI={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:``};var Vr=class{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new Qi;_emptyTraversalStack=new Qi;_frameNumber=null;traversalFinished(e){return!0}constructor(e){this.options=r(r({},bI),e)}traverse(e,r$54,A){this.root=e,this.options=r(r({},this.options),A),this.reset(),this.updateTile(e,r$54),this._frameNumber=r$54.frameNumber,this.executeTraversal(e,r$54)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,r){let A=this._traversalStack;for(e._selectionDepth=1,A.push(e);A.length>0;){let a=A.pop(),d=!1;this.canTraverse(a,r)&&(this.updateChildTiles(a,r),d=this.updateAndPushChildren(a,r,A,a.hasRenderContent?a._selectionDepth+1:a._selectionDepth));let m=a.parent,y=!!(!m||m._shouldRefine),_=!d;a.hasRenderContent?a.refine===Yt.ADD?(this.loadTile(a,r),this.selectTile(a,r)):a.refine===Yt.REPLACE&&(this.loadTile(a,r),_&&this.selectTile(a,r)):(this.emptyTiles[a.id]=a,this.loadTile(a,r),_&&this.selectTile(a,r)),this.touchTile(a,r),a._shouldRefine=d&&y}let i=new Date().getTime();(this.traversalFinished(r)||i-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=i,this.options.onTraversalEnd(r))}updateChildTiles(e,r){let A=e.children;for(let i of A)this.updateTile(i,r)}updateAndPushChildren(e,r,A,i){let{loadSiblings:a,skipLevelOfDetail:d}=this.options,m=e.children;m.sort(this.compareDistanceToCamera.bind(this));let y=e.refine===Yt.REPLACE&&e.hasRenderContent&&!d,_=!1,E=!0;for(let x of m)if(x._selectionDepth=i,x.isVisibleAndInRequestVolume?(A.find(x)&&A.delete(x),A.push(x),_=!0):(y||a)&&(this.loadTile(x,r),this.touchTile(x,r)),y){let v;if(x._inRequestVolume?x.hasRenderContent?v=x.contentAvailable:v=this.executeEmptyTraversal(x,r):v=!1,E=E&&v,!E)return!1}return _||(E=!1),E}updateTile(e,r){this.updateTileVisibility(e,r)}selectTile(e,r){this.shouldSelectTile(e)&&(e._selectedFrame=r.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,r){this.shouldLoadTile(e)&&(e._requestedFrame=r.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,r){e.tileset._cache.touch(e),e._touchedFrame=r.frameNumber}canTraverse(e,r){return e.hasChildren?e.hasTilesetContent?!e.contentExpired:this.shouldRefine(e,r):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,r,A=!1){let i=e._screenSpaceError;return A&&(i=e.getScreenSpaceError(r,!0)),i>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,r){let A=[];if(this.options.viewportTraversersMap)for(let i in this.options.viewportTraversersMap)this.options.viewportTraversersMap[i]===r.viewport.id&&A.push(i);else A.push(r.viewport.id);e.updateVisibility(r,A)}compareDistanceToCamera(e,r){return e._distanceToCamera-r._distanceToCamera}anyChildrenVisible(e,r){let A=!1;for(let i of e.children)i.updateVisibility(r),A=A||i.isVisibleAndInRequestVolume;return A}executeEmptyTraversal(e,r){let A=!0,i=this._emptyTraversalStack;for(i.push(e);i.length>0;){let a=i.pop(),d=!a.hasRenderContent&&this.canTraverse(a,r),m=!a.hasRenderContent&&a.children.length===0;if(!d&&!a.contentAvailable&&!m&&(A=!1),this.updateTile(a,r),a.isVisibleAndInRequestVolume||(this.loadTile(a,r),this.touchTile(a,r)),d){let y=a.children;for(let _ of y)i.push(_)}}return e.hasEmptyContent||A}};var O2=new H;function EI(t){return t!=null}var jn=class{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType=`geometricError`;lodMetricValue=0;boundingVolume=null;content=null;contentState=Xt.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new D;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new Vr({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new D;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;tileDrawn=!0;constructor(e,r,A,i=``){this.header=r,this.tileset=e,this.id=i||r.id,this.url=r.url,this.parent=A,this.refine=this._getRefine(r.refine),this.type=r.type,this.contentUrl=r.contentUrl,this._initializeLodMetric(r),this._initializeTransforms(r),this._initializeBoundingVolumes(r),this._initializeContent(r),this._initializeRenderingState(r),Object.seal(this)}destroy(){this.header=null}isDestroyed(){return this.header===null}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===Xt.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===Xt.UNLOADED}get contentExpired(){return this.contentState===Xt.EXPIRED}get contentFailed(){return this.contentState===Xt.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=v2(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,r){switch(this.tileset.type){case Ut.I3S:return ul(this,e);case Ut.TILES3D:return F2(this,e,r);default:throw new Error(`Unsupported tileset type`)}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){let e=this.tileset._traverser,{skipLevelOfDetail:r}=e.options,A=this.refine===Yt.ADD||r;if(A&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===Xt.UNLOADED)return-1;let i=this.parent,d=i&&(!A||this._screenSpaceError===0||i.hasTilesetContent)?i._screenSpaceError:this._screenSpaceError,m=e.root?e.root._screenSpaceError:0;return Math.max(m-d,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=Xt.LOADING;let r$55=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!r$55)return this.contentState=Xt.UNLOADED,!1;try{let A=this.tileset.getTileUrl(this.contentUrl),i=this.tileset.loader,a=this.tileset.loadOptions[i.id]||{},d=s(r({},this.tileset.loadOptions),{[i.id]:r(s(r({},a),{isTileset:this.type===`json`}),this._getLoaderSpecificOptions(i.id))});return this.content=await Nt$1(A,i,d),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=Xt.READY,this._onContentLoaded(),!0}catch(A){throw this.contentState=Xt.FAILED,A}finally{r$55.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=Xt.UNLOADED,this.tileDrawn=!0,!0}updateVisibility(e,r){if(this._frameNumber===e.frameNumber)return;let A=this.parent,i=A?A._visibilityPlaneMask:Ur.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){let a=A?A.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!==Ur.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=r}visibility(e,r){let{cullingVolume:A}=e,{boundingVolume:i}=this;return A.computeVisibilityWithPlaneMask(i,r)}contentVisibility(){return!0}distanceToTile(e){let r=this.boundingVolume;return Math.sqrt(Math.max(r.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth({camera:e}){let r=this.boundingVolume;return O2.subVectors(r.center,e.position),e.direction.dot(O2)}insideViewerRequestVolume(e){let r=this._viewerRequestVolume;return!r||r.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(EI(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){let e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=Xt.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 D(e.transform):new D;let r=this.parent,A=this.tileset,i=r&&r.computedTransform?r.computedTransform.clone():A.modelMatrix.clone();this.computedTransform=new D(i).multiplyRight(this.transform);let a=r&&r._initialTransform?r._initialTransform.clone():new D;this._initialTransform=new D(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=Xt.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=Ur.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||Yt.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=Vo(e.boundingVolume,this.computedTransform,this.boundingVolume);let r=e.content;r&&(r.boundingVolume&&(this._contentBoundingVolume=Vo(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=Vo(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(e=new D){let r=e.clone().multiplyRight(this.transform);r.equals(this.computedTransform)||(this.computedTransform=r,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){return e===`i3s`?s(r({},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}):N2(this.tileset.tileset)}};var jo=class extends Vr{compareDistanceToCamera(e,r){return r._distanceToCamera===0&&e._distanceToCamera===0?r._centerZDepth-e._centerZDepth:r._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,r){if(super.updateTileVisibility(e,r),!e.isVisibleAndInRequestVolume)return;let A=e.children.length>0;if(e.hasTilesetContent&&A){let d=e.children[0];this.updateTileVisibility(d,r),e._visible=d._visible;return}if(this.meetsScreenSpaceErrorEarly(e,r)){e._visible=!1;return}let i=e.refine===Yt.REPLACE,a=e._optimChildrenWithinParent===E2.USE_OPTIMIZATION;if(i&&a&&A&&!this.anyChildrenVisible(e,r)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,r){let{parent:A}=e;return!A||A.hasTilesetContent||A.refine!==Yt.ADD?!1:!this.shouldRefine(e,r,!0)}};var Qo=class{frameNumberMap=new Map;register(e,r){let A=this.frameNumberMap.get(e)||new Map,i=A.get(r)||0;A.set(r,i+1),this.frameNumberMap.set(e,A)}deregister(e,r){let A=this.frameNumberMap.get(e);if(!A)return;let i=A.get(r)||1;A.set(r,i-1)}isZero(e,r){return(this.frameNumberMap.get(e)?.get(r)||0)===0}};var fl={REQUESTED:`REQUESTED`,COMPLETED:`COMPLETED`,ERROR:`ERROR`};var zo=class{_statusMap;pendingTilesRegister=new Qo;constructor(){this._statusMap={}}add(e,r,A,i){if(!this._statusMap[r]){let{frameNumber:a,viewport:{id:d}}=i;this._statusMap[r]={request:e,callback:A,key:r,frameState:i,status:fl.REQUESTED},this.pendingTilesRegister.register(d,a),e().then(m=>{this._statusMap[r].status=fl.COMPLETED;let{frameNumber:y,viewport:{id:_}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(_,y),this._statusMap[r].callback(m,i)}).catch(m=>{this._statusMap[r].status=fl.ERROR;let{frameNumber:y,viewport:{id:_}}=this._statusMap[r].frameState;this.pendingTilesRegister.deregister(_,y),A(m)})}}update(e,r){if(this._statusMap[e]){let{frameNumber:A,viewport:{id:i}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(i,A);let{frameNumber:a,viewport:{id:d}}=r;this.pendingTilesRegister.register(d,a),this._statusMap[e].frameState=r}}find(e){return this._statusMap[e]}hasPendingTiles(e,r){return!this.pendingTilesRegister.isZero(e,r)}};var Jo=class extends Vr{_tileManager;constructor(e){super(e),this._tileManager=new zo}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,r){return e._lodJudge=D2(e,r),e._lodJudge===`DIG`}updateChildTiles(e,r){let A=e.header.children||[],i=e.children,a=e.tileset;for(let d of A){let m=`${d.id}-${r.viewport.id}`,y=i&&i.find(_=>_.id===m);if(y)y&&this.updateTile(y,r);else{let _=()=>this._loadTile(d.id,a);this._tileManager.find(m)?this._tileManager.update(m,r):(a.tileset.nodePages&&(_=()=>a.tileset.nodePagesTile.formTileFromNodePages(d.id)),this._tileManager.add(_,m,x=>this._onTileLoad(x,e,m),r))}}return!1}async _loadTile(e,r$56){let{loader:A}=r$56;return await Nt$1(r$56.getTileUrl(`${r$56.url}/nodes/${e}`),A,s(r({},r$56.loadOptions),{i3s:s(r({},r$56.loadOptions.i3s),{isTileHeader:!0})}))}_onTileLoad(e,r,A){let i=new jn(r.tileset,e,r,A);r.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 xI={description:``,ellipsoid:Ne.WGS84,modelMatrix:new D,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:t=>t,onUpdate:()=>{},contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:``,i3s:{}};var qo=`Tiles In Tileset(s)`;var hl=`Tiles In Memory`;var G2=`Tiles In View`;var k2=`Tiles To Render`;var U2=`Tiles Loaded`;var dl=`Tiles Loading`;var H2=`Tiles Unloaded`;var V2=`Failed Tile Loads`;var j2=`Points/Vertices`;var pl=`Tile Memory Use`;var Q2=`Maximum Screen Space Error`;var zi=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 ko;_requestScheduler;_heldTiles=new Set;updatePromise=null;tilesetInitializationPromise;constructor(e,r$57){this.options=r(r({},xI),r$57),this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||Ue.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 Mo$1({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 Ae({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=r(r({},this.options),e)}getTileUrl(e){if(e.startsWith(`data:`))return e;let A=e;return this.queryParams.length&&(A=`${e}${e.includes(`?`)?`&`:`?`}${this.queryParams}`),A}hasExtension(e){return this._extensionsUsed.indexOf(e)>-1}update(e=null){this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(e=null){return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(r=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),r(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(e){if(`loadTiles`in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;let r=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=r.length;let A=[];for(let i of r){let a=i.id;this._needTraverse(a)?A.push(a):this.traverseCounter--}for(let i of r){let a=i.id;if(this.roots[a]||(this.roots[a]=this._initializeTileHeaders(this.tileset,null)),!A.includes(a))continue;let d=y2(i,this._frameNumber);this._traverser.traverse(this.roots[a],d,this.options)}}_needTraverse(e){let r=e;return this.options.viewportTraversersMap&&(r=this.options.viewportTraversersMap[e]),r===e}_onTraversalEnd(e){let r=e.viewport.id;this.frameStateData[r]||(this.frameStateData[r]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});let A=this.frameStateData[r],[a,d]=T2(Object.values(this._traverser.selectedTiles),e,this.options.maximumTilesSelected);A.selectedTiles=a;for(let m of d)m.unselect();A._requestedTiles=Object.values(this._traverser.requestedTiles),A._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 d=this.frameStateData[a];this.selectedTiles=this.selectedTiles.concat(d.selectedTiles),this._requestedTiles=this._requestedTiles.concat(d._requestedTiles),this._emptyTiles=this._emptyTiles.concat(d._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);let r=new Set(this.selectedTiles.map(a=>a.id)),A=this.selectedTiles.some(a=>!a.tileDrawn),i=0;if(A){for(let a of r)this._heldTiles.add(a);for(let a of this._heldTiles){if(r.has(a))continue;let d=this._tiles[a];d&&d.contentAvailable?(d._selectedFrame=this._frameNumber,this.selectedTiles.push(d),i++):this._heldTiles.delete(a)}}else this._heldTiles=r;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,r){if(e.length!==r.length)return!0;let A=new Set(e.map(d=>d.id)),i=new Set(r.map(d=>d.id)),a=e.filter(d=>!i.has(d.id)).length>0;return a=a||r.filter(d=>!A.has(d.id)).length>0,a}_loadTiles(){this._requestedTiles.sort((e,r)=>e._priority-r._priority);for(let e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,r)=>e._unloadTile(r))}_updateStats(){let e=0,r=0;for(let A of this.selectedTiles)A.contentAvailable&&A.content&&(e++,A.content.pointCount?r+=A.content.pointCount:r+=A.content.vertexCount);this.stats.get(G2).count=this.selectedTiles.length,this.stats.get(k2).count=e,this.stats.get(j2).count=r,this.stats.get(Q2).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===Ut.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===Ut.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===Ut.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){let e=this.tileset.fullExtent;if(e){let{xmin:A,xmax:i,ymin:a,ymax:d,zmin:m,zmax:y}=e;this.cartographicCenter=new H(A+(i-A)/2,a+(d-a)/2,m+(y-m)/2),this.cartesianCenter=new H,Ne.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=al(e,this.cartographicCenter,this.cartesianCenter);return}let r=this.tileset.store?.extent;if(r){let[A,i,a,d]=r;this.cartographicCenter=new H(A+(a-A)/2,i+(d-i)/2,0),this.cartesianCenter=new H,Ne.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=b2(r,this.cartographicCenter,this.cartesianCenter);return}console.warn(`Extent is not defined in the tileset header`),this.cartographicCenter=new H,this.zoom=1}calculateViewPropsTiles3D(){let e=this.root,{center:r}=e.boundingVolume;if(!r){console.warn(`center was not pre-calculated for the root tile`),this.cartographicCenter=new H,this.zoom=1;return}r[0]!==0||r[1]!==0||r[2]!==0?(this.cartographicCenter=new H,Ne.WGS84.cartesianToCartographic(r,this.cartographicCenter)):this.cartographicCenter=new H(0,0,-Ne.WGS84.radii[0]),this.cartesianCenter=r,this.zoom=_2(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(qo),this.stats.get(dl),this.stats.get(hl),this.stats.get(G2),this.stats.get(k2),this.stats.get(U2),this.stats.get(H2),this.stats.get(V2),this.stats.get(j2),this.stats.get(pl,`memory`),this.stats.get(Q2)}_initializeTileHeaders(e,r){let A=new jn(this,e.root,r);if(r&&(r.children.push(A),A.depth=r.depth+1),this.type===Ut.TILES3D){let i=[];for(i.push(A);i.length>0;){let a=i.pop();this.stats.get(qo).incrementCount();let d=a.header.children||[];for(let m of d){let y=new jn(this,m,a);if(y.contentUrl?.includes(`?session=`)){let E=new URL(y.contentUrl).searchParams.get(`session`);E&&(this._queryParams.session=E)}a.children.push(y),y.depth=a.depth+1,i.push(y)}}}return A}_initializeTraverser(){let e;switch(this.type){case Ut.TILES3D:e=jo;break;case Ut.I3S:e=Jo;break;default:e=Vr}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let r;try{this._onStartTileLoading(),r=await e.loadContent()}catch(A){this._onTileLoadError(e,A instanceof Error?A:new Error(`load failed`))}finally{this._onEndTileLoading(),this._onTileLoad(e,r)}}_onTileLoadError(e,r){this.stats.get(V2).incrementCount();let A=r.message||r.toString(),i=e.url;console.error(`A 3D tile failed to load: ${e.url} ${A}`),this.options.onTileError(e,A,i)}_onTileLoad(e,r){if(r){if(this.type===Ut.I3S){let A=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(qo).reset(),this.stats.get(qo).addCount(A)}e&&e.content&&p2(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===Ut.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===Ut.TILES3D){let{extensionsRemoved:r=[]}=e.content?.gltf||{};r.includes(`KHR_draco_mesh_compression`)&&(this.contentFormats.draco=!0),r.includes(`EXT_meshopt_compression`)&&(this.contentFormats.meshopt=!0),r.includes(`KHR_texture_basisu`)&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(dl).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(dl).decrementCount()}_addTileToCache(e){this._cache.add(this,e,r=>r._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(U2).incrementCount(),this.stats.get(hl).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(pl).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(hl).decrementCount(),this.stats.get(H2).incrementCount(),this.stats.get(pl).count=this.gpuMemoryUsageInBytes,this.options.onTileUnload(e),e.unloadContent()}_destroy(){let e=[];for(this.root&&e.push(this.root);e.length>0;){let r=e.pop();for(let A of r.children)e.push(A);this._destroyTile(r)}this.root=null}_destroySubtree(e){let r=e,A=[];for(A.push(r);A.length>0;){e=A.pop();for(let i of e.children)A.push(i);e!==r&&this._destroyTile(e)}r.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){let r$58=new URLSearchParams(e.queryString),A=Object.fromEntries(r$58.entries());this._queryParams=r(r({},this._queryParams),A)}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 Ko=`4.4.4`;var Qn={COMPOSITE:`cmpt`,POINT_CLOUD:`pnts`,BATCHED_3D_MODEL:`b3dm`,INSTANCED_3D_MODEL:`i3dm`,GEOMETRY:`geom`,VECTOR:`vect`,GLTF:`glTF`};Object.keys(Qn);function ml(t,e,r){ge(t instanceof ArrayBuffer);let A=new TextDecoder(`utf8`),i=new Uint8Array(t,e,r);return A.decode(i)}function z2(t,e=0){let r=new DataView(t);return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}var CI={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6};var _t={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130};var Pe=r(r({},CI),_t);var gl={[_t.DOUBLE]:Float64Array,[_t.FLOAT]:Float32Array,[_t.UNSIGNED_SHORT]:Uint16Array,[_t.UNSIGNED_INT]:Uint32Array,[_t.UNSIGNED_BYTE]:Uint8Array,[_t.BYTE]:Int8Array,[_t.SHORT]:Int16Array,[_t.INT]:Int32Array};var wI={DOUBLE:_t.DOUBLE,FLOAT:_t.FLOAT,UNSIGNED_SHORT:_t.UNSIGNED_SHORT,UNSIGNED_INT:_t.UNSIGNED_INT,UNSIGNED_BYTE:_t.UNSIGNED_BYTE,BYTE:_t.BYTE,SHORT:_t.SHORT,INT:_t.INT};var yl=`Failed to convert GL type`;var ur=class t{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(let r in gl)if(gl[r]===e)return r;throw new Error(yl)}static fromName(e){let r=wI[e];if(!r)throw new Error(yl);return r}static getArrayType(e){switch(e){case _t.UNSIGNED_SHORT_5_6_5:case _t.UNSIGNED_SHORT_4_4_4_4:case _t.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:let r=gl[e];if(!r)throw new Error(yl);return r}}static getByteSize(e){return t.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return!!t.getArrayType(e)}static createTypedArray(e,r,A=0,i){i===void 0&&(i=(r.byteLength-A)/t.getByteSize(e));let a=ArrayBuffer.isView(r)?r.buffer:r;return new(t.getArrayType(e))(a,A,i)}};function J2(t,e){if(!t)throw new Error(`math.gl assertion failed. ${e}`)}function Tl(t,e=[0,0,0]){let r=t>>11&31,A=t>>5&63,i=t&31;return e[0]=r<<3,e[1]=A<<2,e[2]=i<<3,e}new Ns$1;new H;new Ns$1;new Ns$1;function q2(t,e=255){return Y(t,0,e)/e*2-1}function K2(t){return t<0?-1:1}function X2(t,e,r,A){if(J2(A),t<0||t>r||e<0||e>r)throw new Error(`x and y must be unsigned normalized integers between 0 and ${r}`);if(A.x=q2(t,r),A.y=q2(e,r),A.z=1-(Math.abs(A.x)+Math.abs(A.y)),A.z<0){let i=A.x;A.x=(1-Math.abs(A.y))*K2(i),A.y=(1-Math.abs(i))*K2(A.y)}return A.normalize()}function _l(t,e,r){return X2(t,e,255,r)}var bn=class{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(e,r){this.json=e,this.buffer=r}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return!!this.json[e]}getGlobalProperty(e,r=Pe.UNSIGNED_INT,A=1){let i=this.json[e];return i&&Number.isFinite(i.byteOffset)?this._getTypedArrayFromBinary(e,r,A,1,i.byteOffset):i}getPropertyArray(e,r,A){let i=this.json[e];return i&&Number.isFinite(i.byteOffset)?(`componentType`in i&&(r=ur.fromName(i.componentType)),this._getTypedArrayFromBinary(e,r,A,this.featuresLength,i.byteOffset)):this._getTypedArrayFromArray(e,r,i)}getProperty(e,r,A,i,a){let d=this.json[e];if(!d)return d;let m=this.getPropertyArray(e,r,A);if(A===1)return m[i];for(let y=0;y<A;++y)a[y]=m[A*i+y];return a}_getTypedArrayFromBinary(e,r,A,i,a){let d=this._cachedTypedArrays,m=d[e];return m||(m=ur.createTypedArray(r,this.buffer.buffer,this.buffer.byteOffset+a,i*A),d[e]=m),m}_getTypedArrayFromArray(e,r,A){let i=this._cachedTypedArrays,a=i[e];if(!a){if(ArrayBuffer.isView(A)){let d=A.byteOffset,y=A.byteLength/ur.getByteSize(r);a=ur.createTypedArray(r,A.buffer,d,y)}else if(A instanceof ArrayBuffer)a=ur.createTypedArray(r,A);else a=new(ur.getArrayType(r))(A);i[e]=a}return a}};var BI={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16};var vI={SCALAR:(t,e)=>t[e],VEC2:(t,e)=>[t[2*e+0],t[2*e+1]],VEC3:(t,e)=>[t[3*e+0],t[3*e+1],t[3*e+2]],VEC4:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT2:(t,e)=>[t[4*e+0],t[4*e+1],t[4*e+2],t[4*e+3]],MAT3:(t,e)=>[t[9*e+0],t[9*e+1],t[9*e+2],t[9*e+3],t[9*e+4],t[9*e+5],t[9*e+6],t[9*e+7],t[9*e+8]],MAT4:(t,e)=>[t[16*e+0],t[16*e+1],t[16*e+2],t[16*e+3],t[16*e+4],t[16*e+5],t[16*e+6],t[16*e+7],t[16*e+8],t[16*e+9],t[16*e+10],t[16*e+11],t[16*e+12],t[16*e+13],t[16*e+14],t[16*e+15]]};var MI={SCALAR:(t,e,r)=>{e[r]=t},VEC2:(t,e,r)=>{e[2*r+0]=t[0],e[2*r+1]=t[1]},VEC3:(t,e,r)=>{e[3*r+0]=t[0],e[3*r+1]=t[1],e[3*r+2]=t[2]},VEC4:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT2:(t,e,r)=>{e[4*r+0]=t[0],e[4*r+1]=t[1],e[4*r+2]=t[2],e[4*r+3]=t[3]},MAT3:(t,e,r)=>{e[9*r+0]=t[0],e[9*r+1]=t[1],e[9*r+2]=t[2],e[9*r+3]=t[3],e[9*r+4]=t[4],e[9*r+5]=t[5],e[9*r+6]=t[6],e[9*r+7]=t[7],e[9*r+8]=t[8],e[9*r+9]=t[9]},MAT4:(t,e,r)=>{e[16*r+0]=t[0],e[16*r+1]=t[1],e[16*r+2]=t[2],e[16*r+3]=t[3],e[16*r+4]=t[4],e[16*r+5]=t[5],e[16*r+6]=t[6],e[16*r+7]=t[7],e[16*r+8]=t[8],e[16*r+9]=t[9],e[16*r+10]=t[10],e[16*r+11]=t[11],e[16*r+12]=t[12],e[16*r+13]=t[13],e[16*r+14]=t[14],e[16*r+15]=t[15]}};function Y2(t,e,r,A){let{componentType:i}=t;ge(t.componentType);let a=typeof i==`string`?ur.fromName(i):i,d=BI[t.type],m=vI[t.type],y=MI[t.type];return r+=t.byteOffset,{values:ur.createTypedArray(a,e,r,d*A),type:a,size:d,unpacker:m,packer:y}}var jr=t=>t!==void 0;function W2(t,e,r){if(!e)return null;let A=t.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,A=i),A?II(A,r):null}function II(t,e){let r,A,i,a=t.instancesLength,d=t.classes,m=t.classIds,y=t.parentCounts,_=t.parentIds,E=a;jr(m.byteOffset)&&(m.componentType=defaultValue(m.componentType,GL.UNSIGNED_SHORT),m.type=AttributeType.SCALAR,i=getBinaryAccessor(m),m=i.createArrayBufferView(e.buffer,e.byteOffset+m.byteOffset,a));let x;if(jr(y))for(jr(y.byteOffset)&&(y.componentType=defaultValue(y.componentType,GL.UNSIGNED_SHORT),y.type=AttributeType.SCALAR,i=getBinaryAccessor(y),y=i.createArrayBufferView(e.buffer,e.byteOffset+y.byteOffset,a)),x=new Uint16Array(a),E=0,r=0;r<a;++r)x[r]=E,E+=y[r];jr(_)&&jr(_.byteOffset)&&(_.componentType=defaultValue(_.componentType,GL.UNSIGNED_SHORT),_.type=AttributeType.SCALAR,i=getBinaryAccessor(_),_=i.createArrayBufferView(e.buffer,e.byteOffset+_.byteOffset,E));let v=d.length;for(r=0;r<v;++r){let q=d[r].length,X=d[r].instances,Z=getBinaryProperties(q,X,e);d[r].instances=combine(Z,X)}let F=new Array(v).fill(0),N=new Uint16Array(a);for(r=0;r<a;++r)A=m[r],N[r]=F[A],++F[A];let U={classes:d,classIds:m,classIndexes:N,parentCounts:y,parentIndexes:x,parentIds:_};return LI(U),U}function HA(t,e,r){if(!t)return;let A=t.parentCounts;return t.parentIds?r(t,e):A>0?SI(t,e,r):FI(t,e,r)}function SI(t,e,r){let A=t.classIds,i=t.parentCounts,a=t.parentIds,d=t.parentIndexes,m=A.length,y=scratchVisited;y.length=Math.max(y.length,m);let _=++marker,E=scratchStack;for(E.length=0,E.push(e);E.length>0;){if(e=E.pop(),y[e]===_)continue;y[e]=_;let x=r(t,e);if(jr(x))return x;let v=i[e],F=d[e];for(let N=0;N<v;++N){let U=a[F+N];U!==e&&E.push(U)}}return null}function FI(t,e,r){let A=!0;for(;A;){let i=r(t,e);if(jr(i))return i;let a=t.parentIds[e];A=a!==e,e=a}throw new Error(`traverseHierarchySingleParent`)}function LI(t){let A=t.classIds.length;for(let i=0;i<A;++i)Z2(t,i,stack)}function Z2(t,e,r){let A=t.parentCounts,i=t.parentIds,a=t.parentIndexes,m=t.classIds.length;if(!jr(i))return;assert(e<m,`Parent index ${e} exceeds the total number of instances: ${m}`),assert(r.indexOf(e)===-1,`Circular dependency detected in the batch table hierarchy.`),r.push(e);let y=jr(A)?A[e]:1,_=jr(A)?a[e]:e;for(let E=0;E<y;++E){let x=i[_+E];x!==e&&Z2(t,x,r)}r.pop(e)}function Ar(t){return t!=null}var Xo=(t,e)=>t;var RI={HIERARCHY:!0,extensions:!0,extras:!0};var VA=class{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,r,A,i={}){ge(A>=0),this.json=e||{},this.binary=r,this.featureCount=A,this._extensions=this.json?.extensions||{},this._properties={};for(let a in this.json)RI[a]||(this._properties[a]=this.json[a]);this._binaryProperties=this._initializeBinaryProperties(),i[`3DTILES_batch_table_hierarchy`]&&(this._hierarchy=W2(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,r){if(this._checkBatchId(e),ge(typeof r==`string`,r),this._hierarchy)return Ar(HA(this._hierarchy,e,(i,a)=>{let d=i.classIds[a];return i.classes[d].name===r}));return!1}isExactClass(e,r){return ge(typeof r==`string`,r),this.getExactClassName(e)===r}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){let r=this._hierarchy.classIds[e];return this._hierarchy.classes[r].name}}hasProperty(e,r){return this._checkBatchId(e),ge(typeof r==`string`,r),Ar(this._properties[r])||this._hasPropertyInHierarchy(e,r)}getPropertyNames(e,r){this._checkBatchId(e),r=Ar(r)?r:[],r.length=0;let A=Object.keys(this._properties);return r.push(...A),this._hierarchy&&this._getPropertyNamesInHierarchy(e,r),r}getProperty(e,r){if(this._checkBatchId(e),ge(typeof r==`string`,r),this._binaryProperties){let i=this._binaryProperties[r];if(Ar(i))return this._getBinaryProperty(i,e)}let A=this._properties[r];if(Ar(A))return Xo(A[e],!0);if(this._hierarchy){let i=this._getHierarchyProperty(e,r);if(Ar(i))return i}}setProperty(e,r,A){let i=this.featureCount;if(this._checkBatchId(e),ge(typeof r==`string`,r),this._binaryProperties){let d=this._binaryProperties[r];if(d){this._setBinaryProperty(d,e,A);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,r,A))return;let a=this._properties[r];Ar(a)||(this._properties[r]=new Array(i),a=this._properties[r]),a[e]=Xo(A,!0)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error(`batchId not in range [0, featureCount - 1].`)}_getBinaryProperty(e,r){return e.unpack(e.typedArray,r)}_setBinaryProperty(e,r,A){e.pack(A,e.typedArray,r)}_initializeBinaryProperties(){let e=null;for(let r in this._properties){let A=this._properties[r],i=this._initializeBinaryProperty(r,A);i&&(e=e||{},e[r]=i)}return e}_initializeBinaryProperty(e,r){if(`byteOffset`in r){let A=r;ge(this.binary,`Property ${e} requires a batch table binary.`),ge(A.type,`Property ${e} requires a type.`);let i=Y2(A,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,r){if(!this._hierarchy)return!1;return Ar(HA(this._hierarchy,e,(i,a)=>{let d=i.classIds[a],m=i.classes[d].instances;return Ar(m[r])}))}_getPropertyNamesInHierarchy(e,r){HA(this._hierarchy,e,(A,i)=>{let a=A.classIds[i],d=A.classes[a].instances;for(let m in d)d.hasOwnProperty(m)&&r.indexOf(m)===-1&&r.push(m)})}_getHierarchyProperty(e,r){return HA(this._hierarchy,e,(A,i)=>{let a=A.classIds[i],d=A.classes[a],m=A.classIndexes[i],y=d.instances[r];return Ar(y)?Ar(y.typedArray)?this._getBinaryProperty(y,m):Xo(y[m],!0):null})}_setHierarchyProperty(e,r,A,i){return Ar(HA(this._hierarchy,r,(d,m)=>{let y=d.classIds[m],_=d.classes[y],E=d.classIndexes[m],x=_.instances[A];return Ar(x)?(ge(m===r,`Inherited property "${A}" is read-only.`),Ar(x.typedArray)?this._setBinaryProperty(x,E,i):x[E]=Xo(i,!0),!0):!1}))}};function En(t,e,r=0){let A=new DataView(e);if(t.magic=A.getUint32(r,!0),r+=4,t.version=A.getUint32(r,!0),r+=4,t.byteLength=A.getUint32(r,!0),r+=4,t.version!==1)throw new Error(`3D Tile Version ${t.version} not supported`);return r}var jA=4;var $2=`b3dm tile in legacy format.`;function QA(t,e,r){let A=new DataView(e),i;t.header=t.header||{};let a=A.getUint32(r,!0);r+=jA;let d=A.getUint32(r,!0);r+=jA;let m=A.getUint32(r,!0);r+=jA;let y=A.getUint32(r,!0);return r+=jA,m>=570425344?(r-=jA*2,i=a,m=d,y=0,a=0,d=0,console.warn($2)):y>=570425344&&(r-=jA,i=m,m=a,y=d,a=0,d=0,console.warn($2)),t.header.featureTableJsonByteLength=a,t.header.featureTableBinaryByteLength=d,t.header.batchTableJsonByteLength=m,t.header.batchTableBinaryByteLength=y,t.header.batchLength=i,r}function zA(t,e,r,A){return r=PI(t,e,r,A),r=DI(t,e,r,A),r}function PI(t,e,r,A){let{featureTableJsonByteLength:i,featureTableBinaryByteLength:a,batchLength:d}=t.header||{};if(t.featureTableJson={BATCH_LENGTH:d||0},i&&i>0){let m=ml(e,r,i);t.featureTableJson=JSON.parse(m)}return r+=i||0,t.featureTableBinary=new Uint8Array(e,r,a),r+=a||0,r}function DI(t,e,r,A){let{batchTableJsonByteLength:i,batchTableBinaryByteLength:a}=t.header||{};if(i&&i>0){let d=ml(e,r,i);t.batchTableJson=JSON.parse(d),r+=i,a&&a>0&&(t.batchTableBinary=new Uint8Array(e,r,a),t.batchTableBinary=new Uint8Array(t.batchTableBinary),r+=a)}return r}function bl(t,e,r){if(!e&&(!t||!t.batchIds||!r))return null;let{batchIds:A,isRGB565:i,pointCount:a=0}=t;if(A&&r){let d=new Uint8ClampedArray(a*3);for(let m=0;m<a;m++){let y=A[m],E=r.getProperty(y,`dimensions`).map(x=>x*255);d[m*3]=E[0],d[m*3+1]=E[1],d[m*3+2]=E[2]}return{type:Pe.UNSIGNED_BYTE,value:d,size:3,normalized:!0}}if(e&&i){let d=new Uint8ClampedArray(a*3);for(let m=0;m<a;m++){let y=Tl(e[m]);d[m*3]=y[0],d[m*3+1]=y[1],d[m*3+2]=y[2]}return{type:Pe.UNSIGNED_BYTE,value:d,size:3,normalized:!0}}return e&&e.length===a*3?{type:Pe.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:Pe.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}var e1=new H;function t1(t,e){if(!e)return null;if(t.isOctEncoded16P){let r=new Float32Array((t.pointsLength||0)*3);for(let A=0;A<(t.pointsLength||0);A++)_l(e[A*2],e[A*2+1],e1),e1.toArray(r,A*3);return{type:Pe.FLOAT,size:2,value:r}}return{type:Pe.FLOAT,size:2,value:e}}function r1(t,e,r){return t.isQuantized?r[`3d-tiles`]&&r[`3d-tiles`].decodeQuantizedPositions?(t.isQuantized=!1,NI(t,e)):{type:Pe.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function NI(t,e){let r=new H,A=new Float32Array(t.pointCount*3);for(let i=0;i<t.pointCount;i++)r.set(e[i*3],e[i*3+1],e[i*3+2]).scale(1/t.quantizedRange).multiply(t.quantizedVolumeScale).add(t.quantizedVolumeOffset).toArray(A,i*3);return A}async function n1(t,e,r,A,i){r=En(t,e,r),r=QA(t,e,r),r=zA(t,e,r,A),OI(t);let{featureTable:a,batchTable:d}=GI(t);return await jI(t,a,d,A,i),kI(t,a,A),UI(t,a,d),HI(t,a),r}function OI(t){t.attributes={positions:null,colors:null,normals:null,batchIds:null},t.isQuantized=!1,t.isTranslucent=!1,t.isRGB565=!1,t.isOctEncoded16P=!1}function GI(t){let e=new bn(t.featureTableJson,t.featureTableBinary),r=e.getGlobalProperty(`POINTS_LENGTH`);if(!Number.isFinite(r))throw new Error(`POINTS_LENGTH must be defined`);e.featuresLength=r,t.featuresLength=r,t.pointsLength=r,t.pointCount=r,t.rtcCenter=e.getGlobalProperty(`RTC_CENTER`,Pe.FLOAT,3);return{featureTable:e,batchTable:VI(t,e)}}function kI(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.positions){if(e.hasProperty(`POSITION`))t.attributes.positions=e.getPropertyArray(`POSITION`,Pe.FLOAT,3);else if(e.hasProperty(`POSITION_QUANTIZED`)){let A=e.getPropertyArray(`POSITION_QUANTIZED`,Pe.UNSIGNED_SHORT,3);if(t.isQuantized=!0,t.quantizedRange=65535,t.quantizedVolumeScale=e.getGlobalProperty(`QUANTIZED_VOLUME_SCALE`,Pe.FLOAT,3),!t.quantizedVolumeScale)throw new Error(`QUANTIZED_VOLUME_SCALE must be defined for quantized positions.`);if(t.quantizedVolumeOffset=e.getGlobalProperty(`QUANTIZED_VOLUME_OFFSET`,Pe.FLOAT,3),!t.quantizedVolumeOffset)throw new Error(`QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.`);t.attributes.positions=r1(t,A,r)}}if(!t.attributes.positions)throw new Error(`Either POSITION or POSITION_QUANTIZED must be defined.`)}function UI(t,e,r){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.colors){let A=null;e.hasProperty(`RGBA`)?(A=e.getPropertyArray(`RGBA`,Pe.UNSIGNED_BYTE,4),t.isTranslucent=!0):e.hasProperty(`RGB`)?A=e.getPropertyArray(`RGB`,Pe.UNSIGNED_BYTE,3):e.hasProperty(`RGB565`)&&(A=e.getPropertyArray(`RGB565`,Pe.UNSIGNED_SHORT,1),t.isRGB565=!0),t.attributes.colors=bl(t,A,r)}e.hasProperty(`CONSTANT_RGBA`)&&(t.constantRGBA=e.getGlobalProperty(`CONSTANT_RGBA`,Pe.UNSIGNED_BYTE,4))}function HI(t,e){if(t.attributes=t.attributes||{positions:null,colors:null,normals:null,batchIds:null},!t.attributes.normals){let r=null;e.hasProperty(`NORMAL`)?r=e.getPropertyArray(`NORMAL`,Pe.FLOAT,3):e.hasProperty(`NORMAL_OCT16P`)&&(r=e.getPropertyArray(`NORMAL_OCT16P`,Pe.UNSIGNED_BYTE,2),t.isOctEncoded16P=!0),t.attributes.normals=t1(t,r)}}function VI(t,e){let r=null;if(!t.batchIds&&e.hasProperty(`BATCH_ID`)&&(t.batchIds=e.getPropertyArray(`BATCH_ID`,Pe.UNSIGNED_SHORT,1),t.batchIds)){let A=e.getGlobalProperty(`BATCH_LENGTH`);if(!A)throw new Error(`Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.`);let{batchTableJson:i,batchTableBinary:a}=t;r=new VA(i,a,A)}return r}async function jI(t,e,r$59,A,i){let a,d,m,y=t.batchTableJson&&t.batchTableJson.extensions&&t.batchTableJson.extensions[`3DTILES_draco_point_compression`];y&&(m=y.properties);let _=e.getExtension(`3DTILES_draco_point_compression`);if(_){d=_.properties;let x=_.byteOffset,v=_.byteLength;if(!d||!Number.isFinite(x)||!v)throw new Error(`Draco properties, byteOffset, and byteLength must be defined`);a=(t.featureTableBinary||[]).slice(x,x+v),t.hasPositions=Number.isFinite(d.POSITION),t.hasColors=Number.isFinite(d.RGB)||Number.isFinite(d.RGBA),t.hasNormals=Number.isFinite(d.NORMAL),t.hasBatchIds=Number.isFinite(d.BATCH_ID),t.isTranslucent=Number.isFinite(d.RGBA)}if(!a)return!0;return await QI(t,{buffer:a,properties:r(r({},d),m),featureTableProperties:d,batchTableProperties:m,dequantizeInShader:!1},A,i)}async function QI(t,e,r$60,A){if(!A)return;let i=s(r({},r$60),{draco:s(r({},r$60?.draco),{extraAttributes:e.batchTableProperties||{}})});delete i[`3d-tiles`];let a=await jp$1(e.buffer,Ui,i,A),d=a.attributes.POSITION&&a.attributes.POSITION.value,m=a.attributes.COLOR_0&&a.attributes.COLOR_0.value,y=a.attributes.NORMAL&&a.attributes.NORMAL.value,_=a.attributes.BATCH_ID&&a.attributes.BATCH_ID.value,E=d&&a.attributes.POSITION.value.quantization,x=y&&a.attributes.NORMAL.value.quantization;if(E){let F=a.POSITION.data.quantization,N=F.range;t.quantizedVolumeScale=new H(N,N,N),t.quantizedVolumeOffset=new H(F.minValues),t.quantizedRange=(1<<F.quantizationBits)-1,t.isQuantizedDraco=!0}x&&(t.octEncodedRange=(1<<a.NORMAL.data.quantization.quantizationBits)-1,t.isOctEncodedDraco=!0);let v={};if(e.batchTableProperties)for(let F of Object.keys(e.batchTableProperties))a.attributes[F]&&a.attributes[F].value&&(v[F.toLowerCase()]=a.attributes[F].value);t.attributes=r({positions:d,colors:bl(t,m,void 0),normals:y,batchIds:_},v)}var Yo={URI:0,EMBEDDED:1};function Wo(t,e,r,A){t.rotateYtoZ=!0;let i=(t.byteOffset||0)+(t.byteLength||0)-r;if(i===0)throw new Error(`glTF byte length must be greater than 0.`);return t.gltfUpAxis=A?.[`3d-tiles`]&&A[`3d-tiles`].assetGltfUpAxis?A[`3d-tiles`].assetGltfUpAxis:`Y`,t.gltfArrayBuffer=hd$1(e,r,i),t.gltfByteOffset=0,t.gltfByteLength=i,r%4===0||console.warn(`${t.type}: embedded glb is not aligned to a 4-byte boundary.`),(t.byteOffset||0)+(t.byteLength||0)}async function Zo(t,e,r,A){let i=r?.[`3d-tiles`]||{};if(zI(t,e,r),i.loadGLTF){if(!A)return;if(t.gltfUrl){let{fetch:a}=A;t.gltfArrayBuffer=await(await a(t.gltfUrl,r?.core)).arrayBuffer(),t.gltfByteOffset=0}if(t.gltfArrayBuffer)t.gltf=Hn(await jp$1(t.gltfArrayBuffer,en,r,A)),t.gpuMemoryUsageInBytes=Oi(t.gltf),delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength}}function zI(t,e,r){switch(e){case Yo.URI:if(t.gltfArrayBuffer){let A=new Uint8Array(t.gltfArrayBuffer,t.gltfByteOffset);t.gltfUrl=new TextDecoder().decode(A).replace(/[\s\0]+$/,``)}delete t.gltfArrayBuffer,delete t.gltfByteOffset,delete t.gltfByteLength;break;case Yo.EMBEDDED:break;default:throw new Error(`b3dm: Illegal glTF format field`)}}async function A1(t,e,r,A,i){r=JI(t,e,r,A,i),await Zo(t,Yo.EMBEDDED,A,i);let a=t?.gltf?.extensions;return a&&a.CESIUM_RTC&&(t.rtcCenter=a.CESIUM_RTC.center),r}function JI(t,e,r,A,i){r=En(t,e,r),r=QA(t,e,r),r=zA(t,e,r,A),r=Wo(t,e,r,A);return t.rtcCenter=new bn(t.featureTableJson,t.featureTableBinary).getGlobalProperty(`RTC_CENTER`,Pe.FLOAT,3),r}async function i1(t,e,r,A,i){return r=qI(t,e,r,A,i),await Zo(t,t.gltfFormat||0,A,i),r}function qI(t,e,r,A,i){if(r=En(t,e,r),t.version!==1)throw new Error(`Instanced 3D Model version ${t.version} is not supported`);r=QA(t,e,r);if(t.gltfFormat=new DataView(e).getUint32(r,!0),r+=4,r=zA(t,e,r,A),r=Wo(t,e,r,A),!t?.header?.featureTableJsonByteLength||t.header.featureTableJsonByteLength===0)throw new Error(`i3dm parser: featureTableJsonByteLength is zero.`);let d=new bn(t.featureTableJson,t.featureTableBinary),m=d.getGlobalProperty(`INSTANCES_LENGTH`);if(d.featuresLength=m,!Number.isFinite(m))throw new Error(`i3dm parser: INSTANCES_LENGTH must be defined`);t.eastNorthUp=d.getGlobalProperty(`EAST_NORTH_UP`),t.rtcCenter=d.getGlobalProperty(`RTC_CENTER`,Pe.FLOAT,3);return KI(t,d,new VA(t.batchTableJson,t.batchTableBinary,m),m),r}function KI(t,e,r,A){let i=new Array(A),a=new H;new H;new H;new H;let _=new Tr$1,E=new zs$1,x=new H,v={},F=new D,N=[],U=[],q=[],X=[];for(let Z=0;Z<A;Z++){let he;if(e.hasProperty(`POSITION`))he=e.getProperty(`POSITION`,Pe.FLOAT,3,Z,a);else if(e.hasProperty(`POSITION_QUANTIZED`)){he=e.getProperty(`POSITION_QUANTIZED`,Pe.UNSIGNED_SHORT,3,Z,a);let k=e.getGlobalProperty(`QUANTIZED_VOLUME_OFFSET`,Pe.FLOAT,3);if(!k)throw new Error(`i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.`);let ge=e.getGlobalProperty(`QUANTIZED_VOLUME_SCALE`,Pe.FLOAT,3);if(!ge)throw new Error(`i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.`);let Me=65535;for(let Ie=0;Ie<3;Ie++)he[Ie]=he[Ie]/Me*ge[Ie]+k[Ie]}if(!he)throw new Error(`i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.`);a.copy(he),v.translation=a,t.normalUp=e.getProperty(`NORMAL_UP`,Pe.FLOAT,3,Z,N),t.normalRight=e.getProperty(`NORMAL_RIGHT`,Pe.FLOAT,3,Z,U);if(t.normalUp){if(!t.normalRight)throw new Error(`i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.`);t.hasCustomOrientation=!0}else{if(t.octNormalUp=e.getProperty(`NORMAL_UP_OCT32P`,Pe.UNSIGNED_SHORT,2,Z,N),t.octNormalRight=e.getProperty(`NORMAL_RIGHT_OCT32P`,Pe.UNSIGNED_SHORT,2,Z,U),t.octNormalUp)throw t.octNormalRight?new Error(`i3dm: oct-encoded orientation not implemented`):new Error(`i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P`);t.eastNorthUp?(Ne.WGS84.eastNorthUpToFixedFrame(a,F),F.getRotationMatrix3(_)):_.identity()}E.fromMatrix3(_),v.rotation=E,x.set(1,1,1);let be=e.getProperty(`SCALE`,Pe.FLOAT,1,Z,q);Number.isFinite(be)&&x.multiplyByScalar(be);let Te=e.getProperty(`SCALE_NON_UNIFORM`,Pe.FLOAT,3,Z,N);Te&&x.scale(Te),v.scale=x;let Ee=e.getProperty(`BATCH_ID`,Pe.UNSIGNED_SHORT,1,Z,X);Ee===void 0&&(Ee=Z);let se=new D().fromQuaternion(v.rotation);F.identity(),F.translate(v.translation),F.multiplyRight(se),F.scale(v.scale);i[Z]={modelMatrix:F.clone(),batchId:Ee}}t.instances=i}async function s1(t,e,r,A,i,a){r=En(t,e,r);for(t.tilesLength=new DataView(e).getUint32(r,!0),r+=4,t.tiles=[];t.tiles.length<t.tilesLength&&(t.byteLength||0)-r>12;){let m={shape:`tile3d`};t.tiles.push(m),r=await a(e,r,A,i,m)}return r}async function o1(t,e,r,A){if(t.rotateYtoZ=!0,t.gltfUpAxis=r?.[`3d-tiles`]?.assetGltfUpAxis?r[`3d-tiles`].assetGltfUpAxis:`Y`,r?.[`3d-tiles`]?.loadGLTF){if(!A)return e.byteLength;t.gltf=Hn(await jp$1(e,en,r,A)),t.gpuMemoryUsageInBytes=Oi(t.gltf)}else t.gltfArrayBuffer=e;return e.byteLength}async function El(t,e=0,r,A,i={shape:`tile3d`}){switch(i.byteOffset=e,i.type=z2(t,e),i.type){case Qn.COMPOSITE:return await s1(i,t,e,r,A,El);case Qn.BATCHED_3D_MODEL:return await A1(i,t,e,r,A);case Qn.GLTF:return await o1(i,t,r,A);case Qn.INSTANCED_3D_MODEL:return await i1(i,t,e,r,A);case Qn.POINT_CLOUD:return await n1(i,t,e,r,A);default:throw new Error(`3DTileLoader: unknown type ${i.type}`)}}async function xl(t,e,r){if(new Uint32Array(t.slice(0,4))[0]!==1952609651)throw new Error(`Wrong subtree file magic number`);if(new Uint32Array(t.slice(4,8))[0]!==1)throw new Error(`Wrong subtree file verson, must be 1`);let a=a1(t.slice(8,16)),d=new Uint8Array(t,24,a),y=new TextDecoder(`utf8`).decode(d),_=JSON.parse(y),E=a1(t.slice(16,24)),x=new ArrayBuffer(0);if(E&&(x=t.slice(24+a)),await $o(_,_.tileAvailability,x,r),Array.isArray(_.contentAvailability))for(let v of _.contentAvailability)await $o(_,v,x,r);else await $o(_,_.contentAvailability,x,r);return await $o(_,_.childSubtreeAvailability,x,r),_}async function $o(t,e,r,A){let i=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof i!=`number`)return;let a=t.bufferViews[i],d=t.buffers[a.buffer];if(!A?.baseUrl)throw new Error(`Url is not provided`);if(!A.fetch)throw new Error(`fetch is not provided`);if(d.uri){let y=`${A?.baseUrl||``}/${d.uri}`,E=await(await A.fetch(y)).arrayBuffer();e.explicitBitstream=new Uint8Array(E,a.byteOffset,a.byteLength);return}let m=t.buffers.slice(0,a.buffer).reduce((y,_)=>y+_.byteLength,0);e.explicitBitstream=new Uint8Array(r.slice(m,m+d.byteLength),a.byteOffset,a.byteLength)}function a1(t){let e=new DataView(t);return e.getUint32(0,!0)+2**32*e.getUint32(4,!0)}var ea={dataType:null,batchType:null,id:`3d-tiles-subtree`,name:`3D Tiles Subtree`,module:`3d-tiles`,version:Ko,extensions:[`subtree`],mimeTypes:[`application/octet-stream`],tests:[`subtree`],parse:xl,options:{}};var _r=null;try{_r=new WebAssembly.Instance(new WebAssembly.Module(new Uint8Array([0,97,115,109,1,0,0,0,1,13,2,96,0,1,127,96,4,127,127,127,127,1,127,3,7,6,0,1,1,1,1,1,6,6,1,127,1,65,0,11,7,50,6,3,109,117,108,0,1,5,100,105,118,95,115,0,2,5,100,105,118,95,117,0,3,5,114,101,109,95,115,0,4,5,114,101,109,95,117,0,5,8,103,101,116,95,104,105,103,104,0,0,10,191,1,6,4,0,35,0,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,126,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,127,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,128,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,129,34,4,66,32,135,167,36,0,32,4,167,11,36,1,1,126,32,0,173,32,1,173,66,32,134,132,32,2,173,32,3,173,66,32,134,132,130,34,4,66,32,135,167,36,0,32,4,167,11])),{}).exports}catch{}function tt(t,e,r){this.low=t|0,this.high=e|0,this.unsigned=!!r}tt.prototype.__isLong__;Object.defineProperty(tt.prototype,"__isLong__",{value:!0});function jt(t){return(t&&t.__isLong__)===!0}function c1(t){var e=Math.clz32(t&-t);return t?31-e:e}tt.isLong=jt;var l1={};var u1={};function zn(t,e){var r,A,i;return e?(t>>>=0,(i=0<=t&&t<256)&&(A=u1[t],A)?A:(r=Qe(t,0,!0),i&&(u1[t]=r),r)):(t|=0,(i=-128<=t&&t<128)&&(A=l1[t],A)?A:(r=Qe(t,t<0?-1:0,!1),i&&(l1[t]=r),r))}tt.fromInt=zn;function br(t,e){if(isNaN(t))return e?rn:Pr;if(e){if(t<0)return rn;if(t>=p1)return y1}else{if(t<=-h1)return ir;if(t+1>=h1)return g1}return t<0?br(-t,e).neg():Qe(t%qA|0,t/qA|0,e)}tt.fromNumber=br;function Qe(t,e,r){return new tt(t,e,r)}tt.fromBits=Qe;var ta=Math.pow;function wl(t,e,r){if(t.length===0)throw Error(`empty string`);if(typeof e==`number`?(r=e,e=!1):e=!!e,t===`NaN`||t===`Infinity`||t===`+Infinity`||t===`-Infinity`)return e?rn:Pr;if(r=r||10,r<2||36<r)throw RangeError(`radix`);var A;if((A=t.indexOf(`-`))>0)throw Error(`interior hyphen`);if(A===0)return wl(t.substring(1),e,r).neg();for(var i=br(ta(r,8)),a=Pr,d=0;d<t.length;d+=8){var m=Math.min(8,t.length-d),y=parseInt(t.substring(d,d+m),r);if(m<8){var _=br(ta(r,m));a=a.mul(_).add(br(y))}else a=a.mul(i),a=a.add(br(y))}return a.unsigned=e,a}tt.fromString=wl;function Er(t,e){return typeof t==`number`?br(t,e):typeof t==`string`?wl(t,e):Qe(t.low,t.high,typeof e==`boolean`?e:t.unsigned)}tt.fromValue=Er;var f1=65536;var XI=1<<24;var qA=f1*f1;var p1=qA*qA;var h1=p1/2;var d1=zn(XI);var Pr=zn(0);tt.ZERO=Pr;var rn=zn(0,!0);tt.UZERO=rn;var JA=zn(1);tt.ONE=JA;var m1=zn(1,!0);tt.UONE=m1;var Cl=zn(-1);tt.NEG_ONE=Cl;var g1=Qe(-1,2147483647,!1);tt.MAX_VALUE=g1;var y1=Qe(-1,-1,!0);tt.MAX_UNSIGNED_VALUE=y1;var ir=Qe(0,-2147483648,!1);tt.MIN_VALUE=ir;var ue=tt.prototype;ue.toInt=function(){return this.unsigned?this.low>>>0:this.low};ue.toNumber=function(){return this.unsigned?(this.high>>>0)*qA+(this.low>>>0):this.high*qA+(this.low>>>0)};ue.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(ir)){var r=br(e),A=this.div(r),i=A.mul(r).sub(this);return A.toString(e)+i.toInt().toString(e)}else return`-`+this.neg().toString(e);for(var a=br(ta(e,6),this.unsigned),d=this,m=``;;){var y=d.div(a),E=(d.sub(y.mul(a)).toInt()>>>0).toString(e);if(d=y,d.isZero())return E+m;for(;E.length<6;)E=`0`+E;m=``+E+m}};ue.getHighBits=function(){return this.high};ue.getHighBitsUnsigned=function(){return this.high>>>0};ue.getLowBits=function(){return this.low};ue.getLowBitsUnsigned=function(){return this.low>>>0};ue.getNumBitsAbs=function(){if(this.isNegative())return this.eq(ir)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,r=31;r>0&&(e&1<<r)==0;r--);return this.high!=0?r+33:r+1};ue.isSafeInteger=function(){var e=this.high>>21;return e?this.unsigned?!1:e===-1&&!(this.low===0&&this.high===-2097152):!0};ue.isZero=function(){return this.high===0&&this.low===0};ue.eqz=ue.isZero;ue.isNegative=function(){return!this.unsigned&&this.high<0};ue.isPositive=function(){return this.unsigned||this.high>=0};ue.isOdd=function(){return(this.low&1)===1};ue.isEven=function(){return(this.low&1)===0};ue.equals=function(e){return jt(e)||(e=Er(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};ue.eq=ue.equals;ue.notEquals=function(e){return!this.eq(e)};ue.neq=ue.notEquals;ue.ne=ue.notEquals;ue.lessThan=function(e){return this.comp(e)<0};ue.lt=ue.lessThan;ue.lessThanOrEqual=function(e){return this.comp(e)<=0};ue.lte=ue.lessThanOrEqual;ue.le=ue.lessThanOrEqual;ue.greaterThan=function(e){return this.comp(e)>0};ue.gt=ue.greaterThan;ue.greaterThanOrEqual=function(e){return this.comp(e)>=0};ue.gte=ue.greaterThanOrEqual;ue.ge=ue.greaterThanOrEqual;ue.compare=function(e){if(jt(e)||(e=Er(e)),this.eq(e))return 0;var r=this.isNegative(),A=e.isNegative();return r&&!A?-1:!r&&A?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};ue.comp=ue.compare;ue.negate=function(){return!this.unsigned&&this.eq(ir)?ir:this.not().add(JA)};ue.neg=ue.negate;ue.add=function(e){jt(e)||(e=Er(e));var r=this.high>>>16,A=this.high&65535,i=this.low>>>16,a=this.low&65535,d=e.high>>>16,m=e.high&65535,y=e.low>>>16,_=e.low&65535,E=0,x=0,v=0,F=0;return F+=a+_,v+=F>>>16,F&=65535,v+=i+y,x+=v>>>16,v&=65535,x+=A+m,E+=x>>>16,x&=65535,E+=r+d,E&=65535,Qe(v<<16|F,E<<16|x,this.unsigned)};ue.subtract=function(e){return jt(e)||(e=Er(e)),this.add(e.neg())};ue.sub=ue.subtract;ue.multiply=function(e){if(this.isZero())return this;if(jt(e)||(e=Er(e)),_r)return Qe(_r.mul(this.low,this.high,e.low,e.high),_r.get_high(),this.unsigned);if(e.isZero())return this.unsigned?rn:Pr;if(this.eq(ir))return e.isOdd()?ir:Pr;if(e.eq(ir))return this.isOdd()?ir:Pr;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(d1)&&e.lt(d1))return br(this.toNumber()*e.toNumber(),this.unsigned);var A=this.high>>>16,i=this.high&65535,a=this.low>>>16,d=this.low&65535,m=e.high>>>16,y=e.high&65535,_=e.low>>>16,E=e.low&65535,x=0,v=0,F=0,N=0;return N+=d*E,F+=N>>>16,N&=65535,F+=a*E,v+=F>>>16,F&=65535,F+=d*_,v+=F>>>16,F&=65535,v+=i*E,x+=v>>>16,v&=65535,v+=a*_,x+=v>>>16,v&=65535,v+=d*y,x+=v>>>16,v&=65535,x+=A*E+i*_+a*y+d*m,x&=65535,Qe(F<<16|N,x<<16|v,this.unsigned)};ue.mul=ue.multiply;ue.divide=function(e){if(jt(e)||(e=Er(e)),e.isZero())throw Error(`division by zero`);if(_r){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;return Qe((this.unsigned?_r.div_u:_r.div_s)(this.low,this.high,e.low,e.high),_r.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?rn:Pr;var A,i,a;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return rn;if(e.gt(this.shru(1)))return m1;a=rn}else{if(this.eq(ir)){if(e.eq(JA)||e.eq(Cl))return ir;if(e.eq(ir))return JA;return A=this.shr(1).div(e).shl(1),A.eq(Pr)?e.isNegative()?JA:Cl:(i=this.sub(e.mul(A)),a=A.add(i.div(e)),a)}else if(e.eq(ir))return this.unsigned?rn:Pr;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=Pr}for(i=this;i.gte(e);){A=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var m=Math.ceil(Math.log(A)/Math.LN2),y=m<=48?1:ta(2,m-48),_=br(A),E=_.mul(e);E.isNegative()||E.gt(i);)A-=y,_=br(A,this.unsigned),E=_.mul(e);_.isZero()&&(_=JA),a=a.add(_),i=i.sub(E)}return a};ue.div=ue.divide;ue.modulo=function(e){if(jt(e)||(e=Er(e)),_r)return Qe((this.unsigned?_r.rem_u:_r.rem_s)(this.low,this.high,e.low,e.high),_r.get_high(),this.unsigned);return this.sub(this.div(e).mul(e))};ue.mod=ue.modulo;ue.rem=ue.modulo;ue.not=function(){return Qe(~this.low,~this.high,this.unsigned)};ue.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};ue.clz=ue.countLeadingZeros;ue.countTrailingZeros=function(){return this.low?c1(this.low):c1(this.high)+32};ue.ctz=ue.countTrailingZeros;ue.and=function(e){return jt(e)||(e=Er(e)),Qe(this.low&e.low,this.high&e.high,this.unsigned)};ue.or=function(e){return jt(e)||(e=Er(e)),Qe(this.low|e.low,this.high|e.high,this.unsigned)};ue.xor=function(e){return jt(e)||(e=Er(e)),Qe(this.low^e.low,this.high^e.high,this.unsigned)};ue.shiftLeft=function(e){return jt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Qe(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):Qe(0,this.low<<e-32,this.unsigned)};ue.shl=ue.shiftLeft;ue.shiftRight=function(e){return jt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Qe(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):Qe(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};ue.shr=ue.shiftRight;ue.shiftRightUnsigned=function(e){return jt(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?Qe(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?Qe(this.high,0,this.unsigned):Qe(this.high>>>e-32,0,this.unsigned)};ue.shru=ue.shiftRightUnsigned;ue.shr_u=ue.shiftRightUnsigned;ue.rotateLeft=function(e){var r;return jt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?Qe(this.high,this.low,this.unsigned):e<32?(r=32-e,Qe(this.low<<e|this.high>>>r,this.high<<e|this.low>>>r,this.unsigned)):(e-=32,r=32-e,Qe(this.high<<e|this.low>>>r,this.low<<e|this.high>>>r,this.unsigned))};ue.rotl=ue.rotateLeft;ue.rotateRight=function(e){var r;return jt(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?Qe(this.high,this.low,this.unsigned):e<32?(r=32-e,Qe(this.high<<r|this.low>>>e,this.low<<r|this.high>>>e,this.unsigned)):(e-=32,r=32-e,Qe(this.low<<r|this.high>>>e,this.high<<r|this.low>>>e,this.unsigned))};ue.rotr=ue.rotateRight;ue.toSigned=function(){return this.unsigned?Qe(this.low,this.high,!1):this};ue.toUnsigned=function(){return this.unsigned?this:Qe(this.low,this.high,!0)};ue.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};ue.toBytesLE=function(){var e=this.high,r=this.low;return[r&255,r>>>8&255,r>>>16&255,r>>>24,e&255,e>>>8&255,e>>>16&255,e>>>24]};ue.toBytesBE=function(){var e=this.high,r=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,r>>>24,r>>>16&255,r>>>8&255,r&255]};tt.fromBytes=function(e,r,A){return A?tt.fromBytesLE(e,r):tt.fromBytesBE(e,r)};tt.fromBytesLE=function(e,r){return new tt(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,r)};tt.fromBytesBE=function(e,r){return new tt(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],r)};typeof BigInt==`function`&&(tt.fromBigInt=function(e,r){return Qe(Number(BigInt.asIntN(32,e)),Number(BigInt.asIntN(32,e>>BigInt(32))),r)},tt.fromValue=function(e,r){return typeof e==`bigint`?tt.fromBigInt(e,r):Er(e,r)},ue.toBigInt=function(){var e=BigInt(this.low>>>0);return BigInt(this.unsigned?this.high>>>0:this.high)<<BigInt(32)|e});var KA=tt;var YI=16;function Ji(t){t===`X`&&(t=``);let e=t.padEnd(YI,`0`);return KA.fromString(e,!0,16)}function Bl(t){if(t.isZero())return`X`;let e=t.countTrailingZeros(),r=e%4;e=(e-r)/4;let A=e;e*=4;let a=t.shiftRightUnsigned(e).toString(16).replace(/0+$/,``);return Array(17-A-a.length).join(`0`)+a}function vl(t,e){let r=WI(t).shiftRightUnsigned(2);return t.add(KA.fromNumber(2*e+1-4).multiply(r))}function WI(t){return t.and(t.not().add(1))}var ZI=3;var eS=61;var T1=180/Math.PI;function b1(t){if(t.length===0)throw new Error(`Invalid Hilbert quad key ${t}`);let e=t.split(`/`),r=parseInt(e[0],10),A=e[1],i=A.length,a=0,d=[0,0];for(let m=i-1;m>=0;m--){a=i-m;let y=A[m],_=0,E=0;y===`1`?E=1:y===`2`?(_=1,E=1):y===`3`&&(_=1);let x=Math.pow(2,a-1);tS(x,d,_,E),d[0]+=x*_,d[1]+=x*E}if(r%2===1){let m=d[0];d[0]=d[1],d[1]=m}return{face:r,ij:d,level:a}}function E1(t){if(t.isZero())return``;let e=t.toString(2);for(;e.length<ZI+eS;)e=`0`+e;let r=e.lastIndexOf(`1`),A=e.substring(0,3),i=e.substring(3,r),a=i.length/2,d=KA.fromString(A,!0,2).toString(10),m=``;if(a!==0)for(m=KA.fromString(i,!0,2).toString(4);m.length<a;)m=`0`+m;return`${d}/${m}`}function Ml(t,e,r){let A=1<<e;return[(t[0]+r[0])/A,(t[1]+r[1])/A]}function _1(t){return t>=.5?1/3*(4*t*t-1):1/3*(1-4*(1-t)*(1-t))}function Il(t){return[_1(t[0]),_1(t[1])]}function Sl(t,[e,r]){switch(t){case 0:return[1,e,r];case 1:return[-e,1,r];case 2:return[-e,-r,1];case 3:return[-1,-r,-e];case 4:return[r,-1,-e];case 5:return[r,e,-1];default:throw new Error(`Invalid face`)}}function Fl([t,e,r]){let A=Math.atan2(r,Math.sqrt(t*t+e*e));return[Math.atan2(e,t)*T1,A*T1]}function tS(t,e,r,A){if(A===0){r===1&&(e[0]=t-1-e[0],e[1]=t-1-e[1]);let i=e[0];e[0]=e[1],e[1]=i}}function x1(t){let r=Il(Ml(t.ij,t.level,[.5,.5]));return Fl(Sl(t.face,r))}var rS=100;function Ll(t){let{face:e,ij:r,level:A}=t,i=[[0,0],[0,1],[1,1],[1,0],[0,0]],a=Math.max(1,Math.ceil(rS*Math.pow(2,-A))),d=new Float64Array(4*a*2+2),m=0,y=0;for(let _=0;_<4;_++){let E=i[_].slice(0),x=i[_+1],v=(x[0]-E[0])/a,F=(x[1]-E[1])/a;for(let N=0;N<a;N++){E[0]+=v,E[1]+=F;let Z=Fl(Sl(e,Il(Ml(r,A,E))));Math.abs(Z[1])>89.999&&(Z[0]=y);let he=Z[0]-y;Z[0]+=he>180?-360:he<-180?360:0,d[m++]=Z[0],d[m++]=Z[1],y=Z[0]}}return d[m++]=d[0],d[m++]=d[1],d}function XA(t){return b1(nS(t))}function nS(t){if(t.indexOf(`/`)>0)return t;return E1(Ji(t))}function Rl(t){return x1(XA(t))}function w1(t){let e;if(t.face===2||t.face===5){let r=null,A=0;for(let i=0;i<4;i++){let m=Ll(XA(`${t.face}/${i}`));(typeof r>`u`||r===null)&&(r=new Float64Array(4*m.length)),r.set(m,A),A+=m.length}e=C1(r)}else e=C1(Ll(t));return e}function C1(t){if(t.length%2!==0)throw new Error(`Invalid corners`);let e=[],r=[];for(let A=0;A<t.length;A+=2)e.push(t[A]),r.push(t[A+1]);return e.sort((A,i)=>A-i),r.sort((A,i)=>A-i),{west:e[0],east:e[e.length-1],north:r[r.length-1],south:r[0]}}function Pl(t,e){let r=e?.minimumHeight||0,A=e?.maximumHeight||0,a=w1(XA(t)),d=a.west,m=a.south,y=a.east,_=a.north,E=[];return E.push(new H(d,_,r)),E.push(new H(y,_,r)),E.push(new H(y,m,r)),E.push(new H(d,m,r)),E.push(new H(d,_,A)),E.push(new H(y,_,A)),E.push(new H(y,m,A)),E.push(new H(d,m,A)),E}function ra(t){let e=t.token,r={minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight},A=Pl(e,r),i=Rl(e),a=i[0],d=i[1],m=Ne.WGS84.cartographicToCartesian([a,d,r.maximumHeight]),y=new H(m[0],m[1],m[2]);A.push(y);let _=Ri(A);return[..._.center,..._.halfAxes]}var sS={QUADTREE:4,OCTREE:8};function oS(t,e,r$61){if(t?.box){let a=Bl(vl(Ji(t.s2VolumeInfo.token),e)),d=r({},t.s2VolumeInfo);if(d.token=a,r$61===`OCTREE`){let _=t.s2VolumeInfo,E=_.maximumHeight-_.minimumHeight,x=E/2,v=_.minimumHeight+E/2;_.minimumHeight=v-x,_.maximumHeight=v+x}return{box:ra(d),s2VolumeInfo:d}}}async function Nl(t){let{subtree:e,subtreeData:r={level:0,x:0,y:0,z:0},parentData:A={mortonIndex:0,localLevel:-1,localX:0,localY:0,localZ:0},childIndex:i=0,implicitOptions:a,loaderOptions:d,s2VolumeBox:m}=t,{subdivisionScheme:y,subtreeLevels:_,maximumLevel:E,contentUrlTemplate:x,subtreesUriTemplate:v,basePath:F}=a,N={children:[],lodMetricValue:0,contentUrl:``};if(typeof E!=`number`||!Number.isFinite(E))return ka.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${x} won't be loaded...`),N;let U=A.localLevel+1,q=r.level+U;if(q>E)return N;let X=sS[y],Z=Math.log2(X),he=i&1,_e=i>>1&1,be=i>>2&1,Te=Jn(A.localX,he,1),Ee=Jn(A.localY,_e,1),se=Jn(A.localZ,be,1),Y=Jn(r.x,Te,U),k=Jn(r.y,Ee,U),ge=Jn(r.z,se,U),Me=Jn(A.mortonIndex,i,Z),Ie=U===_&&Dl(e.childSubtreeAvailability,Me),ve,ke,rt,qe;if(Ie)ve=await Nt$1(na(`${F}/${v}`,q,Y,k,ge),ea,d),qe=0,ke={level:q,x:Y,y:k,z:ge},rt={mortonIndex:0,localLevel:0,localX:0,localY:0,localZ:0};else ve=e,qe=(X**U-1)/(X-1)+Me,ke=r,rt={mortonIndex:Me,localLevel:U,localX:Te,localY:Ee,localZ:se};if(!Dl(ve.tileAvailability,qe))return N;Dl(ve.contentAvailability,qe)&&(N.contentUrl=na(x,q,Y,k,ge));for(let Ve=0;Ve<X;Ve++){let nt=oS(m,Ve,y),Rt=await Nl({subtree:ve,subtreeData:ke,parentData:rt,childIndex:Ve,implicitOptions:a,loaderOptions:d,s2VolumeBox:nt});(Rt.contentUrl||Rt.children.length)&&N.children.push(Rt)}return N.contentUrl||N.children.length?aS(N,{level:q,x:Y,y:k,z:ge},a,m):N}function Dl(t,e){let r;return Array.isArray(t)?(r=t[0],t.length>1&&ka.once(`Not supported extension "3DTILES_multiple_contents" has been detected`)):r=t,`constant`in r?!!r.constant:r.explicitBitstream?uS(e,r.explicitBitstream):!1}function aS(t,e,r,A){let{basePath:i,refine:a,getRefine:d,lodMetricType:m,getTileType:y,rootLodMetricValue:_,rootBoundingVolume:E}=r,x=t.contentUrl&&t.contentUrl.replace(`${i}/`,``),v=_/2**e.level,N=cS(A?.box?{box:A.box}:E,e,r.subdivisionScheme);return{children:t.children,contentUrl:t.contentUrl,content:{uri:x},id:t.contentUrl,refine:d(a),type:y(t),lodMetricType:m,lodMetricValue:v,geometricError:v,transform:t.transform,boundingVolume:N}}function cS(t,e,r){if(t.region){let{level:A,x:i,y:a,z:d}=e,[m,y,_,E,x,v]=t.region,F=2**A,N=(_-m)/F,[U,q]=[m+N*i,m+N*(i+1)],X=(E-y)/F,[Z,he]=[y+X*a,y+X*(a+1)],_e,be;if(r===`OCTREE`){let Te=(v-x)/F;[_e,be]=[x+Te*d,x+Te*(d+1)]}else[_e,be]=[x,v];return{region:[U,Z,q,he,_e,be]}}if(t.box)return t;throw new Error(`Unsupported bounding volume type ${JSON.stringify(t)}`)}function Jn(t,e,r){return(t<<r)+e}function na(t,e,r,A,i){let a=lS({level:e,x:r,y:A,z:i});return t.replace(/{level}|{x}|{y}|{z}/gi,d=>a[d])}function lS(t){let e={};for(let r in t)e[`{${r}}`]=t[r];return e}function uS(t,e){let r=Math.floor(t/8),A=t%8;return(e[r]>>A&1)===1}function Gl(t,e=``){if(!e)return Rr.EMPTY;let A=e.split(`?`)[0].split(`.`).pop();switch(A){case`pnts`:return Rr.POINTCLOUD;case`i3dm`:case`b3dm`:case`glb`:case`gltf`:return Rr.SCENEGRAPH;default:return A||Rr.EMPTY}}function kl(t){switch(t){case`REPLACE`:case`replace`:return Yt.REPLACE;case`ADD`:case`add`:return Yt.ADD;default:return t}}function Ol(t,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){let A=new URL(t,`${e}/`);return decodeURI(A.toString())}else if(t.startsWith(`/`))return t;return Ue.resolve(e,t)}function B1(t,e){if(!t)return null;let r$62;if(t.content){let i=t.content.uri||t.content?.url;typeof i<`u`&&(r$62=Ol(i,e))}return s(r({},t),{id:r$62,contentUrl:r$62,lodMetricType:Tn.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:Gl(t,r$62),refine:kl(t.refine)})}async function I1(t,e,r){let A=null,i=M1(t.root);i&&t.root?A=await v1(t.root,t,e,i,r):A=B1(t.root,e);let a=[];for(a.push(A);a.length>0;){let d=a.pop()||{},m=d.children||[],y=[];for(let _ of m){let E=M1(_),x;E?x=await v1(_,t,e,E,r):x=B1(_,e),x&&(y.push(x),a.push(x))}d.children=y}return A}async function v1(t,e,r,A,i){let{subdivisionScheme:a,maximumLevel:d,availableLevels:m,subtreeLevels:y,subtrees:{uri:_}}=A,v=await Nt$1(Ol(na(_,0,0,0,0),r),ea,i),F=t.content?.uri,N=F?Ol(F,r):``,U=e?.root?.refine,q=t.geometricError,X=t.boundingVolume.extensions?.[`3DTILES_bounding_volume_S2`];if(X)t.boundingVolume={box:ra(X),s2VolumeInfo:X};let Z=t.boundingVolume;return await fS(t,r,v,{contentUrlTemplate:N,subtreesUriTemplate:_,subdivisionScheme:a,subtreeLevels:y,maximumLevel:Number.isFinite(m)?m-1:d,refine:U,basePath:r,lodMetricType:Tn.GEOMETRIC_ERROR,rootLodMetricValue:q,rootBoundingVolume:Z,getTileType:Gl,getRefine:kl},i)}async function fS(t,e,r$63,A,i){if(!t)return null;let{children:a,contentUrl:d}=await Nl({subtree:r$63,implicitOptions:A,loaderOptions:i}),m,y=null;return d&&(m=d,y={uri:d.replace(`${e}/`,``)}),s(r({},t),{id:m,contentUrl:m,lodMetricType:Tn.GEOMETRIC_ERROR,lodMetricValue:t.geometricError,transformMatrix:t.transform,type:Gl(t,m),refine:kl(t.refine),content:y||t.content,children:a})}function M1(t){return t?.extensions?.[`3DTILES_implicit_tiling`]||t?.implicitTiling}var Aa={dataType:null,batchType:null,id:`3d-tiles`,name:`3D Tiles`,module:`3d-tiles`,version:Ko,extensions:[`cmpt`,`pnts`,`b3dm`,`i3dm`],mimeTypes:[`application/octet-stream`],tests:[`cmpt`,`pnts`,`b3dm`,`i3dm`],parse:hS,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:`auto`,assetGltfUpAxis:null}}};async function hS(t,e={},r){let A=e[`3d-tiles`]||{},i;return A.isTileset===`auto`?i=r?.url&&r.url.indexOf(`.json`)!==-1:i=A.isTileset,i?dS(t,e,r):pS(t,e,r)}async function dS(t,e,r$64){let A=JSON.parse(new TextDecoder().decode(t)),i=r$64?.url||``,a=mS(i),d=await I1(A,a,e||{});return s(r({},A),{shape:`tileset3d`,loader:Aa,url:i,queryString:r$64?.queryString||``,basePath:a,root:d||A.root,type:Ut.TILES3D,lodMetricType:Tn.GEOMETRIC_ERROR,lodMetricValue:A.root?.geometricError||0})}async function pS(t,e,r){let A={content:{shape:`tile3d`,featureIds:null}};return await El(t,0,e,r,A.content),A.content}function mS(t){return Ue.dirname(t)}var S1=[0];var gS={getPointColor:{type:`accessor`,value:[0,0,0,255]},pointSize:1,data:``,loader:Aa,onTilesetLoad:{type:`function`,value:t=>{}},onTileLoad:{type:`function`,value:t=>{}},onTileUnload:{type:`function`,value:t=>{}},onTileError:{type:`function`,value:(t,e,r)=>{}},_getMeshColor:{type:`function`,value:t=>[255,255,255]}};var TS=(()=>{class t extends Dv$1{initializeState(){`onTileLoadFail`in this.props&&C.removed(`onTileLoadFail`,`onTileError`)(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return!!(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:r}){return r.somethingChanged}updateState({props:r,oldProps:A,changeFlags:i}){if(r.data&&r.data!==A.data&&this._loadTileset(r.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 d in a)a[d].needsUpdate=!0}}finalizeState(r){this.state.tileset3d?.destroy(),this.state.tileset3d=null,this.state.layerMap={},this.state.activeViewports={},this.state.lastUpdatedViewports=null,super.finalizeState(r)}activateViewport(r){let{activeViewports:A,lastUpdatedViewports:i}=this.state;this.internalState.viewport=r,A[r.id]=r;let a=i?.[r.id];(!a||!r.equals(a))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:r,sourceLayer:A}){let i=A&&A.props.tile;return r.picked&&(r.object=i),r.sourceTile=i,r}filterSubLayer({layer:r,viewport:A,cullRect:i,isPicking:a}){let{tile:d}=r.props,{id:m}=A;if(!d.selected||!d.viewportIds.includes(m))return!1;if(a&&i&&d.content?.cartographicOrigin){let[y,_]=A.project(d.content.cartographicOrigin),E=i.x+i.width/2,x=i.y+i.height/2,v=Math.max(A.width,A.height)/4,F=y-E,N=_-x;if(F*F+N*N>v*v)return!1}return!0}_updateAutoHighlight(r){let A=r.sourceTile,i=this.state.layerMap[A?.id];i&&i.layer&&i.layer.updateAutoHighlight(r)}async _loadTileset(r$65){let A=this.props.loadOptions||{},i=this.props.loaders?.length?this.props.loaders:this.props.loader,a=Array.isArray(i)?i[0]:i,v=A,{tileset:d}=v,y=r({loadOptions:r({},u(v,[`tileset`]))},d),_=r$65;if(`preload`in a&&typeof a.preload==`function`){let F=await a.preload(r$65,A);F.url&&(_=F.url),F.headers&&(y.loadOptions.core=s(r({},y.loadOptions.core),{fetch:s(r({},y.loadOptions.core?.fetch),{headers:F.headers})})),Object.assign(y,F)}let x=new zi(await Nt$1(_,a,y.loadOptions),r({onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,onUpdate:()=>this.setNeedsUpdate()},y));this.setState({tileset3d:x,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(x)}_onTileLoad(r){let{lastUpdatedViewports:A}=this.state;r.tileDrawn=!1,this.props.onTileLoad(r),this._updateTileset(A),this.setNeedsUpdate()}_onTileUnload(r){delete this.state.layerMap[r.id],this.props.onTileUnload(r)}_updateTileset(r){if(!r)return;let{tileset3d:A}=this.state,{timeline:i}=this.context,a=Object.keys(r).length;!i||!a||!A||A.selectTiles(Object.values(r)).then(d=>{this.state.frameNumber!==d&&this.setState({frameNumber:d})})}_getSubLayer(r,A){if(!r.content)return null;switch(r.type){case Rr.POINTCLOUD:return this._makePointCloudLayer(r,A);case Rr.SCENEGRAPH:return this._make3DModelLayer(r);case Rr.MESH:return this._makeSimpleMeshLayer(r,A);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${r.content.type}`)}}_makePointCloudLayer(r,A){let{attributes:i,pointCount:a,constantRGBA:d,cartographicOrigin:m,modelMatrix:y}=r.content,{positions:_,normals:E,colors:x}=i;if(!_)return null;let v=A&&A.props.data||{header:{vertexCount:a},attributes:{POSITION:_,NORMAL:E,COLOR_0:x}},{pointSize:F,getPointColor:N}=this.props;return new(this.getSubLayerClass(`pointcloud`,dn$1))({pointSize:F},this.getSubLayerProps({id:`pointcloud`}),{id:`${this.id}-pointcloud-${r.id}`,tile:r,data:v,coordinateSystem:da.METER_OFFSETS,coordinateOrigin:m,modelMatrix:y,getColor:d||N,_offset:0})}_make3DModelLayer(r){let{gltf:A,instances:i,cartographicOrigin:a,modelMatrix:d}=r.content;return new(this.getSubLayerClass(`scenegraph`,rl))({_lighting:`pbr`},this.getSubLayerProps({id:`scenegraph`}),{id:`${this.id}-scenegraph-${r.id}`,tile:r,data:i||S1,scenegraph:A,coordinateSystem:da.METER_OFFSETS,coordinateOrigin:a,modelMatrix:d,getTransformMatrix:y=>y.modelMatrix,getPosition:[0,0,0],_offset:0,onFirstDraw:()=>{r.tileDrawn=!0}})}_makeSimpleMeshLayer(r,A){let{attributes:a,indices:d,modelMatrix:m,cartographicOrigin:y,coordinateSystem:_=da.METER_OFFSETS,material:E,featureIds:x}=r.content,{_getMeshColor:v}=this.props,F=A&&A.props.mesh||new Zr$1({topology:`triangle-list`,attributes:_S(a),indices:d});return new(this.getSubLayerClass(`mesh`,a2))(this.getSubLayerProps({id:`mesh`}),{id:`${this.id}-mesh-${r.id}`,tile:r,mesh:F,data:S1,getColor:v(r),pbrMaterial:E,modelMatrix:m,coordinateOrigin:y,coordinateSystem:_,featureIds:x,_offset:0})}renderLayers(){let{tileset3d:r,layerMap:A}=this.state;return r?r.tiles.map(i=>{let a=A[i.id]=A[i.id]||{tile:i},{layer:d}=a;return i.selected&&(d?a.needsUpdate&&(d=this._getSubLayer(i,d),a.needsUpdate=!1):d=this._getSubLayer(i)),a.layer=d,d}).filter(Boolean):null}}return t.defaultProps=gS,t.layerName=`Tile3DLayer`,t})();function _S(t){let e={};return e.positions=s(r({},t.positions),{value:new Float32Array(t.positions.value)}),t.normals&&(e.normals=t.normals),t.texCoords&&(e.texCoords=t.texCoords),t.colors&&(e.colors=t.colors),t.uvRegions&&(e.uvRegions=t.uvRegions),e}var bS=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 Ul(t){return t>>1^-(t&1)}function ES(t){let e=0,r={};for(let[A,i]of bS)r[A]=(i===8?t.getFloat64:t.getFloat32).call(t,e,!0),e+=i;return{header:r,headerEndPosition:e}}function xS(t,e){let r=e,A=3,i=t.getUint32(r,!0),a=new Uint16Array(i*A);r+=Uint32Array.BYTES_PER_ELEMENT;let d=Uint16Array.BYTES_PER_ELEMENT,m=i*d,y=r,_=y+m,E=_+m,x=0,v=0,F=0;for(let N=0;N<i;N++)x+=Ul(t.getUint16(y+d*N,!0)),v+=Ul(t.getUint16(_+d*N,!0)),F+=Ul(t.getUint16(E+d*N,!0)),a[N]=x,a[N+i]=v,a[N+i*2]=F;return r+=m*3,{vertexData:a,vertexDataEndPosition:r}}function qi(t,e,r,A,i=!0){let a;if(A===2?a=new Uint16Array(t,e,r):a=new Uint32Array(t,e,r),!i)return a;let d=0;for(let m=0;m<a.length;++m){let y=a[m];a[m]=d-y,y===0&&++d}return a}function CS(t,e,r){let A=r,d=e.length/3>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT;A%d!==0&&(A+=d-A%d);let m=t.getUint32(A,!0);A+=Uint32Array.BYTES_PER_ELEMENT;let y=m*3,_=qi(t.buffer,A,y,d);return A+=y*d,{triangleIndicesEndPosition:A,triangleIndices:_}}function wS(t,e,r){let A=r,d=e.length/3>65536?Uint32Array.BYTES_PER_ELEMENT:Uint16Array.BYTES_PER_ELEMENT,m=t.getUint32(A,!0);A+=Uint32Array.BYTES_PER_ELEMENT;let y=qi(t.buffer,A,m,d,!1);A+=m*d;let _=t.getUint32(A,!0);A+=Uint32Array.BYTES_PER_ELEMENT;let E=qi(t.buffer,A,_,d,!1);A+=_*d;let x=t.getUint32(A,!0);A+=Uint32Array.BYTES_PER_ELEMENT;let v=qi(t.buffer,A,x,d,!1);A+=x*d;let F=t.getUint32(A,!0);A+=Uint32Array.BYTES_PER_ELEMENT;let N=qi(t.buffer,A,F,d,!1);return A+=F*d,{edgeIndicesEndPosition:A,westIndices:y,southIndices:E,eastIndices:v,northIndices:N}}function BS(t){return new Uint8Array(t.buffer,t.byteOffset,t.byteLength)}function vS(t){return t.buffer.slice(t.byteOffset,t.byteOffset+t.byteLength)}function MS(t,e){let r={};if(t.byteLength<=e)return{extensions:r,extensionsEndPosition:e};let A=e;for(;A<t.byteLength;){let i=t.getUint8(A,!0);A+=Uint8Array.BYTES_PER_ELEMENT;let a=t.getUint32(A,!0);A+=Uint32Array.BYTES_PER_ELEMENT;let d=new DataView(t.buffer,A,a);switch(i){case 1:r.vertexNormals=BS(d);break;case 2:r.waterMask=vS(d);break;default:}A+=a}return{extensions:r,extensionsEndPosition:A}}var qn={header:0,vertices:1,triangleIndices:2,edgeIndices:3,extensions:4};var IS={maxDecodingStep:qn.extensions};function Hl(t,e){let r=Object.assign({},IS,e),A=new DataView(t),{header:i,headerEndPosition:a}=ES(A);if(r.maxDecodingStep<qn.vertices)return{header:i};let{vertexData:d,vertexDataEndPosition:m}=xS(A,a);if(r.maxDecodingStep<qn.triangleIndices)return{header:i,vertexData:d};let{triangleIndices:y,triangleIndicesEndPosition:_}=CS(A,d,m);if(r.maxDecodingStep<qn.edgeIndices)return{header:i,vertexData:d,triangleIndices:y};let{westIndices:E,southIndices:x,eastIndices:v,northIndices:F,edgeIndicesEndPosition:N}=wS(A,d,_);if(r.maxDecodingStep<qn.extensions)return{header:i,vertexData:d,triangleIndices:y,westIndices:E,northIndices:F,eastIndices:v,southIndices:x};let{extensions:U}=MS(A,N);return{header:i,vertexData:d,triangleIndices:y,westIndices:E,northIndices:F,eastIndices:v,southIndices:x,extensions:U}}function ia(t,e,r,A){let i=A?FS(A,t.POSITION.value):SS(e),a=new t.POSITION.value.constructor(i.length*6),d=new t.TEXCOORD_0.value.constructor(i.length*4),m=new e.constructor(i.length*6);for(let _=0;_<i.length;_++){let E=i[_];LS({edge:E,edgeIndex:_,attributes:t,skirtHeight:r,newPosition:a,newTexcoord0:d,newTriangles:m})}t.POSITION.value=fd$1(t.POSITION.value,a),t.TEXCOORD_0.value=fd$1(t.TEXCOORD_0.value,d);return{attributes:t,triangles:e instanceof Array?e.concat(m):fd$1(e,m)}}function SS(t){let e=[];for(let i=0;i<t.length;i+=3)e.push([t[i],t[i+1]]),e.push([t[i+1],t[i+2]]),e.push([t[i+2],t[i]]);e.sort((i,a)=>Math.min(...i)-Math.min(...a)||Math.max(...i)-Math.max(...a));let r=[],A=0;for(;A<e.length;)e[A][0]===e[A+1]?.[1]&&e[A][1]===e[A+1]?.[0]?A+=2:(r.push(e[A]),A++);return r}function FS(t,e){t.westIndices.sort((A,i)=>e[3*A+1]-e[3*i+1]),t.eastIndices.sort((A,i)=>e[3*i+1]-e[3*A+1]),t.southIndices.sort((A,i)=>e[3*i]-e[3*A]),t.northIndices.sort((A,i)=>e[3*A]-e[3*i]);let r=[];for(let A in t){let i=t[A];for(let a=0;a<i.length-1;a++)r.push([i[a],i[a+1]])}return r}function LS({edge:t,edgeIndex:e,attributes:r,skirtHeight:A,newPosition:i,newTexcoord0:a,newTriangles:d}){let m=r.POSITION.value.length,y=e*2,_=e*2+1;i.set(r.POSITION.value.subarray(t[0]*3,t[0]*3+3),y*3),i[y*3+2]=i[y*3+2]-A,i.set(r.POSITION.value.subarray(t[1]*3,t[1]*3+3),_*3),i[_*3+2]=i[_*3+2]-A,a.set(r.TEXCOORD_0.value.subarray(t[0]*2,t[0]*2+2),y*2),a.set(r.TEXCOORD_0.value.subarray(t[1]*2,t[1]*2+2),_*2);let E=e*2*3;d[E]=t[0],d[E+1]=m/3+_,d[E+2]=t[1],d[E+3]=m/3+_,d[E+4]=t[0],d[E+5]=m/3+y}function Vl(t,e={}){let{bounds:r}=e,{header:A,vertexData:i,triangleIndices:a,westIndices:d,northIndices:m,eastIndices:y,southIndices:_}=Hl(t,qn.triangleIndices),E=a,x=RS(i,A,r),v=Sn(x);if(e?.skirtHeight){let{attributes:F,triangles:N}=ia(x,E,e.skirtHeight,{westIndices:d,northIndices:m,eastIndices:y,southIndices:_});x=F,E=N}return{loaderData:{header:{}},header:{vertexCount:E.length,boundingBox:v},schema:void 0,topology:`triangle-list`,mode:4,indices:{value:E,size:1},attributes:x}}function RS(t,e,r){let{minHeight:A,maxHeight:i}=e,[a,d,m,y]=r||[0,0,1,1],_=m-a,E=y-d,x=i-A,v=t.length/3,F=new Float32Array(v*3),N=new Float32Array(v*2);for(let U=0;U<v;U++){let q=t[U]/32767,X=t[U+v]/32767,Z=t[U+v*2]/32767;F[3*U+0]=q*_+a,F[3*U+1]=X*E+d,F[3*U+2]=Z*x+A,N[2*U+0]=q,N[2*U+1]=X}return{POSITION:{value:F,size:3},TEXCOORD_0:{value:N,size:2}}}var sa=class{constructor(e=257){this.gridSize=e;let r=e-1;if(r&r-1)throw new Error(`Expected grid size to be 2^n+1, got ${e}.`);this.numTriangles=r*r*2-2,this.numParentTriangles=this.numTriangles-r*r,this.indices=new Uint32Array(this.gridSize*this.gridSize),this.coords=new Uint16Array(this.numTriangles*4);for(let A=0;A<this.numTriangles;A++){let i=A+2,a=0,d=0,m=0,y=0,_=0,E=0;for(i&1?m=y=_=r:a=d=E=r;(i>>=1)>1;){let v=a+m>>1,F=d+y>>1;i&1?(m=a,y=d,a=_,d=E):(a=m,d=y,m=_,y=E),_=v,E=F}let x=A*4;this.coords[x+0]=a,this.coords[x+1]=d,this.coords[x+2]=m,this.coords[x+3]=y}}createTile(e){return new jl(e,this)}};var jl=class{constructor(e,r){let A=r.gridSize;if(e.length!==A*A)throw new Error(`Expected terrain data of length ${A*A} (${A} x ${A}), got ${e.length}.`);this.terrain=e,this.martini=r,this.errors=new Float32Array(e.length),this.update()}update(){let{numTriangles:e,numParentTriangles:r,coords:A,gridSize:i}=this.martini,{terrain:a,errors:d}=this;for(let m=e-1;m>=0;m--){let y=m*4,_=A[y+0],E=A[y+1],x=A[y+2],v=A[y+3],F=_+x>>1,N=E+v>>1,U=F+N-E,q=N+_-F,X=(a[E*i+_]+a[v*i+x])/2,Z=N*i+F,he=Math.abs(X-a[Z]);if(d[Z]=Math.max(d[Z],he),m<r){let _e=(E+q>>1)*i+(_+U>>1),be=(v+q>>1)*i+(x+U>>1);d[Z]=Math.max(d[Z],d[_e],d[be])}}}getMesh(e=0){let{gridSize:r,indices:A}=this.martini,{errors:i}=this,a=0,d=0,m=r-1;A.fill(0);function y(F,N,U,q,X,Z){let he=F+U>>1,_e=N+q>>1;Math.abs(F-X)+Math.abs(N-Z)>1&&i[_e*r+he]>e?(y(X,Z,F,N,he,_e),y(U,q,X,Z,he,_e)):(A[N*r+F]=A[N*r+F]||++a,A[q*r+U]=A[q*r+U]||++a,A[Z*r+X]=A[Z*r+X]||++a,d++)}y(0,0,m,m,m,0),y(m,m,0,0,0,m);let _=new Uint16Array(a*2),E=new Uint32Array(d*3),x=0;function v(F,N,U,q,X,Z){let he=F+U>>1,_e=N+q>>1;if(Math.abs(F-X)+Math.abs(N-Z)>1&&i[_e*r+he]>e)v(X,Z,F,N,he,_e),v(U,q,X,Z,he,_e);else{let be=A[N*r+F]-1,Te=A[q*r+U]-1,Ee=A[Z*r+X]-1;_[2*be]=F,_[2*be+1]=N,_[2*Te]=U,_[2*Te+1]=q,_[2*Ee]=X,_[2*Ee+1]=Z,E[x++]=be,E[x++]=Te,E[x++]=Ee}}return v(0,0,m,m,m,0),v(m,m,0,0,0,m),{vertices:_,triangles:E}}};var oa=class{constructor(e,r,A=r){this.data=e,this.width=r,this.height=A,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=r-1,a=A-1,d=this._addPoint(0,0),m=this._addPoint(i,0),y=this._addPoint(0,a),_=this._addPoint(i,a),E=this._addTriangle(_,d,y,-1,-1,-1);this._addTriangle(d,_,m,E,-1,-1),this._flush()}run(e=1){for(;this.getMaxError()>e;)this.refine()}refine(){this._step(),this._flush()}getMaxError(){return this._errors[0]}getRMSD(){return this._rmsSum>0?Math.sqrt(this._rmsSum/(this.width*this.height)):0}heightAt(e,r){return this.data[this.width*r+e]}_flush(){let e=this.coords;for(let r=0;r<this._pendingLen;r++){let A=this._pending[r],i=2*this.triangles[A*3+0],a=2*this.triangles[A*3+1],d=2*this.triangles[A*3+2];this._findCandidate(e[i],e[i+1],e[a],e[a+1],e[d],e[d+1],A)}this._pendingLen=0}_findCandidate(e,r,A,i,a,d,m){let y=Math.min(e,A,a),_=Math.min(r,i,d),E=Math.max(e,A,a),x=Math.max(r,i,d),v=Kn(A,i,a,d,y,_),F=Kn(a,d,e,r,y,_),N=Kn(e,r,A,i,y,_),U=i-r,q=e-A,X=d-i,Z=A-a,he=r-d,_e=a-e,be=Kn(e,r,A,i,a,d),Te=this.heightAt(e,r)/be,Ee=this.heightAt(A,i)/be,se=this.heightAt(a,d)/be,Y=0,k=0,ge=0,Me=0;for(let Ie=_;Ie<=x;Ie++){let ve=0;v<0&&X!==0&&(ve=Math.max(ve,Math.floor(-v/X))),F<0&&he!==0&&(ve=Math.max(ve,Math.floor(-F/he))),N<0&&U!==0&&(ve=Math.max(ve,Math.floor(-N/U)));let ke=v+X*ve,rt=F+he*ve,qe=N+U*ve,$e=!1;for(let at=y+ve;at<=E;at++){if(ke>=0&&rt>=0&&qe>=0){$e=!0;let Ve=Te*ke+Ee*rt+se*qe,nt=Math.abs(Ve-this.heightAt(at,Ie));Me+=nt*nt,nt>Y&&(Y=nt,k=at,ge=Ie)}else if($e)break;ke+=X,rt+=he,qe+=U}v+=Z,F+=_e,N+=q}(k===e&&ge===r||k===A&&ge===i||k===a&&ge===d)&&(Y=0),this._candidates[2*m]=k,this._candidates[2*m+1]=ge,this._rms[m]=Me,this._queuePush(m,Y,Me)}_step(){let e=this._queuePop(),r=e*3+0,A=e*3+1,i=e*3+2,a=this.triangles[r],d=this.triangles[A],m=this.triangles[i],y=this.coords[2*a],_=this.coords[2*a+1],E=this.coords[2*d],x=this.coords[2*d+1],v=this.coords[2*m],F=this.coords[2*m+1],N=this._candidates[2*e],U=this._candidates[2*e+1],q=this._addPoint(N,U);if(Kn(y,_,E,x,N,U)===0)this._handleCollinear(q,r);else if(Kn(E,x,v,F,N,U)===0)this._handleCollinear(q,A);else if(Kn(v,F,y,_,N,U)===0)this._handleCollinear(q,i);else{let X=this._halfedges[r],Z=this._halfedges[A],he=this._halfedges[i],_e=this._addTriangle(a,d,q,X,-1,-1,r),be=this._addTriangle(d,m,q,Z,-1,_e+1),Te=this._addTriangle(m,a,q,he,_e+2,be+1);this._legalize(_e),this._legalize(be),this._legalize(Te)}}_addPoint(e,r){let A=this.coords.length>>1;return this.coords.push(e,r),A}_addTriangle(e,r,A,i,a,d,m=this.triangles.length){let y=m/3;return this.triangles[m+0]=e,this.triangles[m+1]=r,this.triangles[m+2]=A,this._halfedges[m+0]=i,this._halfedges[m+1]=a,this._halfedges[m+2]=d,i>=0&&(this._halfedges[i]=m+0),a>=0&&(this._halfedges[a]=m+1),d>=0&&(this._halfedges[d]=m+2),this._candidates[2*y+0]=0,this._candidates[2*y+1]=0,this._queueIndices[y]=-1,this._rms[y]=0,this._pending[this._pendingLen++]=y,m}_legalize(e){let r=this._halfedges[e];if(r<0)return;let A=e-e%3,i=r-r%3,a=A+(e+1)%3,d=A+(e+2)%3,m=i+(r+2)%3,y=i+(r+1)%3,_=this.triangles[d],E=this.triangles[e],x=this.triangles[a],v=this.triangles[m],F=this.coords;if(!PS(F[2*_],F[2*_+1],F[2*E],F[2*E+1],F[2*x],F[2*x+1],F[2*v],F[2*v+1]))return;let N=this._halfedges[a],U=this._halfedges[d],q=this._halfedges[m],X=this._halfedges[y];this._queueRemove(A/3),this._queueRemove(i/3);let Z=this._addTriangle(_,v,x,-1,q,N,A),he=this._addTriangle(v,_,E,Z,U,X,i);this._legalize(Z+1),this._legalize(he+2)}_handleCollinear(e,r){let A=r-r%3,i=A+(r+1)%3,a=A+(r+2)%3,d=this.triangles[a],m=this.triangles[r],y=this.triangles[i],_=this._halfedges[i],E=this._halfedges[a],x=this._halfedges[r];if(x<0){let Te=this._addTriangle(e,d,m,-1,E,-1,A),Ee=this._addTriangle(d,e,y,Te,-1,_);this._legalize(Te+1),this._legalize(Ee+2);return}let v=x-x%3,F=v+(x+2)%3,N=v+(x+1)%3,U=this.triangles[F],q=this._halfedges[F],X=this._halfedges[N];this._queueRemove(v/3);let Z=this._addTriangle(d,m,e,E,-1,-1,A),he=this._addTriangle(m,U,e,X,-1,Z+1,v),_e=this._addTriangle(U,y,e,q,-1,he+1),be=this._addTriangle(y,d,e,_,Z+2,_e+1);this._legalize(Z),this._legalize(he),this._legalize(_e),this._legalize(be)}_queuePush(e,r,A){let i=this._queue.length;this._queueIndices[e]=i,this._queue.push(e),this._errors.push(r),this._rmsSum+=A,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 r=this._queueIndices[e];if(r<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 A=this._queue.length-1;A!==r&&(this._queueSwap(r,A),this._queueDown(r,A)||this._queueUp(r)),this._queuePopBack()}_queueLess(e,r){return this._errors[e]>this._errors[r]}_queueSwap(e,r){let A=this._queue[e],i=this._queue[r];this._queue[e]=i,this._queue[r]=A,this._queueIndices[A]=r,this._queueIndices[i]=e;let a=this._errors[e];this._errors[e]=this._errors[r],this._errors[r]=a}_queueUp(e){let r=e;for(;;){let A=r-1>>1;if(A===r||!this._queueLess(r,A))break;this._queueSwap(A,r),r=A}}_queueDown(e,r){let A=e;for(;;){let i=2*A+1;if(i>=r||i<0)break;let a=i+1,d=i;if(a<r&&this._queueLess(a,i)&&(d=a),!this._queueLess(d,A))break;this._queueSwap(A,d),A=d}return A>e}};function Kn(t,e,r,A,i,a){return(r-i)*(e-a)-(A-a)*(t-i)}function PS(t,e,r,A,i,a,d,m){let y=t-d,_=e-m,E=r-d,x=A-m,v=i-d,F=a-m,N=y*y+_*_,U=E*E+x*x,q=v*v+F*F;return y*(x*q-U*F)-_*(E*q-U*v)+N*(E*F-x*v)<0}function R1(t,e){let{meshMaxError:r,bounds:A,elevationDecoder:i}=e,{data:a,width:d,height:m}=t,y,_;switch(e.tesselator){case`martini`:y=aa(a,d,m,i,e.tesselator),_=F1(r,d,y);break;case`delatin`:y=aa(a,d,m,i,e.tesselator),_=L1(r,d,m,y);break;default:d===m&&!(m&d-1)?(y=aa(a,d,m,i,`martini`),_=F1(r,d,y)):(y=aa(a,d,m,i,`delatin`),_=L1(r,d,m,y));break}let{vertices:E}=_,{triangles:x}=_,v=DS(E,y,d,m,A),F=Sn(v);if(e.skirtHeight){let{attributes:N,triangles:U}=ia(v,x,e.skirtHeight);v=N,x=U}return{loaderData:{header:{}},header:{vertexCount:x.length,boundingBox:F},mode:4,indices:{value:Uint32Array.from(x),size:1},attributes:v}}function F1(t,e,r){let{vertices:d,triangles:m}=new sa(e+1).createTile(r).getMesh(t);return{vertices:d,triangles:m}}function L1(t,e,r,A){let i=new oa(A,e+1,r+1);i.run(t);let{coords:a,triangles:d}=i;return{vertices:a,triangles:d}}function aa(t,e,r,A,i){let{rScaler:a,bScaler:d,gScaler:m,offset:y}=A,_=new Float32Array((e+1)*(r+1));for(let E=0,x=0;x<r;x++)for(let v=0;v<e;v++,E++){let F=E*4,N=t[F+0],U=t[F+1],q=t[F+2];_[E+x]=N*a+U*m+q*d+y}if(i===`martini`){for(let E=(e+1)*e,x=0;x<e;x++,E++)_[E]=_[E-e-1];for(let E=r,x=0;x<r+1;x++,E+=r+1)_[E]=_[E-1]}return _}function DS(t,e,r,A,i){let a=r+1,d=t.length/2,m=new Float32Array(d*3),y=new Float32Array(d*2),[_,E,x,v]=i||[0,0,r,A],F=(x-_)/r,N=(v-E)/A;for(let U=0;U<d;U++){let q=t[U*2],X=t[U*2+1],Z=X*a+q;m[3*U+0]=q*F+_,m[3*U+1]=-X*N+v,m[3*U+2]=e[Z],y[2*U+0]=q/r,y[2*U+1]=X/A}return{POSITION:{value:m,size:3},TEXCOORD_0:{value:y,size:2}}}var ca=`4.4.4`;var la={dataType:null,batchType:null,name:`Terrain`,id:`terrain`,module:`terrain`,version:ca,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 P1={dataType:null,batchType:null,name:`Quantized Mesh`,id:`quantized-mesh`,module:`terrain`,version:ca,worker:!0,extensions:[`terrain`],mimeTypes:[`application/vnd.quantized-mesh`],options:{"quantized-mesh":{bounds:[0,0,1,1],skirtHeight:null}}};var NS=s(r({},la),{parse:OS});async function OS(t,e,r$66){return R1(await jp$1(t,[],s(r({},e),{core:s(r({},e?.core),{mimeType:`application/x.image`}),image:s(r({},e?.image),{type:`data`})}),r$66),r(r({},NS.options.terrain),e?.terrain))}s(r({},P1),{parseSync:(t,e)=>Vl(t,e?.[`quantized-mesh`]),parse:async(t,e)=>Vl(t,e?.[`quantized-mesh`])});var D1=[1];var GS=s(r({},BA.defaultProps),{elevationData:mn,texture:s(r({},mn),{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:[la]});function N1(t){return Array.isArray(t)?t.join(`;`):t||``}var US=(()=>{class t extends Dv$1{updateState({props:r,oldProps:A}){let i=r.elevationData!==A.elevationData;if(i){let{elevationData:d}=r,m=d&&(Array.isArray(d)||HS(d));this.setState({isTiled:m})}let a=i||r.meshMaxError!==A.meshMaxError||r.elevationDecoder!==A.elevationDecoder||r.bounds!==A.bounds;if(!this.state.isTiled&&a){let d=this.loadTerrain(r);this.setState({terrain:d})}r.workerUrl&&C.removed(`workerUrl`,`loadOptions.terrain.workerUrl`)()}loadTerrain({elevationData:r$67,bounds:A,elevationDecoder:i,meshMaxError:a,signal:d}){if(!r$67)return null;let m=this.getLoadOptions();m=s(r({},m),{terrain:s(r({skirtHeight:this.state.isTiled?a*2:0},m?.terrain),{bounds:A,meshMaxError:a,elevationDecoder:i})});let{fetch:y}=this.props;return y(r$67,{propName:`elevationData`,layer:this,loadOptions:m,signal:d})}getTiledTerrainData(r){let{elevationData:A,fetch:i,texture:a,elevationDecoder:d,meshMaxError:m}=this.props,{viewport:y}=this.context,_=$r(A,r),E=a&&$r(a,r),{signal:x}=r,v=[0,0],F=[0,0];if(y.isGeospatial){let X=r.bbox;v=y.projectFlat([X.west,X.south]),F=y.projectFlat([X.east,X.north])}else{let X=r.bbox;v=[X.left,X.bottom],F=[X.right,X.top]}let N=[v[0],v[1],F[0],F[1]],U=this.loadTerrain({elevationData:_,bounds:N,elevationDecoder:d,meshMaxError:m,signal:x}),q=E?i(E,{propName:`texture`,layer:this,loaders:[],signal:x}).catch(X=>null):Promise.resolve(null);return Promise.all([U,q])}renderSubLayers(r){let A=this.getSubLayerClass(`mesh`,MA),{color:i,wireframe:a,material:d}=this.props,{data:m}=r;if(!m)return null;let[y,_]=m;return new A(r,{data:D1,mesh:y,texture:_,_instanced:!1,coordinateSystem:da.CARTESIAN,getPosition:E=>[0,0,0],getColor:i,wireframe:a,material:d})}onViewportLoad(r){if(!r)return;let{zRange:A}=this.state,i=r.map(m=>m.content).filter(Boolean).map(m=>m[0].header.boundingBox.map(_=>_[2]));if(i.length===0)return;let a=Math.min(...i.map(m=>m[0])),d=Math.max(...i.map(m=>m[1]));(!A||a<A[0]||d>A[1])&&this.setState({zRange:[a,d]})}renderLayers(){let{color:r,material:A,elevationData:i,texture:a,wireframe:d,meshMaxError:m,elevationDecoder:y,tileSize:_,maxZoom:E,minZoom:x,extent:v,maxRequests:F,onTileLoad:N,onTileUnload:U,onTileError:q,maxCacheSize:X,maxCacheByteSize:Z,refinementStrategy:he,zoomOffset:_e}=this.props;if(this.state.isTiled)return new BA(this.getSubLayerProps({id:`tiles`}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:N1(i),texture:N1(a),meshMaxError:m,elevationDecoder:y,projectionMode:this.context.viewport.projectionMode,zoomOffset:_e}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:_,maxZoom:E,minZoom:x,extent:v,maxRequests:F,onTileLoad:N,onTileUnload:U,onTileError:q,maxCacheSize:X,maxCacheByteSize:Z,refinementStrategy:he,zoomOffset:_e});if(!i)return null;return new(this.getSubLayerClass(`mesh`,MA))(this.getSubLayerProps({id:`mesh`}),{data:D1,mesh:this.state.terrain,texture:a,_instanced:!1,getPosition:Te=>[0,0,0],getColor:r,material:A,wireframe:d})}}return t.defaultProps=GS,t.layerName=`TerrainLayer`,t})();var HS=t=>t.includes(`{x}`)&&(t.includes(`{y}`)||t.includes(`{-y}`));var VS={clipBounds:[0,0,1,1],clipByInstance:void 0};var O1=`
|
|
454
|
-
layout(std140) uniform clipUniforms {
|
|
455
|
-
vec4 bounds;
|
|
456
|
-
} clip;
|
|
457
|
-
|
|
458
|
-
bool clip_isInBounds(vec2 position) {
|
|
459
|
-
return position.x >= clip.bounds[0] && position.y >= clip.bounds[1] && position.x < clip.bounds[2] && position.y < clip.bounds[3];
|
|
460
|
-
}
|
|
461
|
-
`;var jS={name:`clip`,vs:O1,uniformTypes:{bounds:`vec4<f32>`}};var QS={"vs:#decl":`
|
|
462
|
-
out float clip_isVisible;
|
|
463
|
-
`,"vs:DECKGL_FILTER_GL_POSITION":`
|
|
464
|
-
clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
|
|
465
|
-
`,"fs:#decl":`
|
|
466
|
-
in float clip_isVisible;
|
|
467
|
-
`,"fs:DECKGL_FILTER_COLOR":`
|
|
468
|
-
if (clip_isVisible < 0.5) discard;
|
|
469
|
-
`};var zS={name:`clip`,fs:O1,uniformTypes:{bounds:`vec4<f32>`}};var JS={"vs:#decl":`
|
|
470
|
-
out vec2 clip_commonPosition;
|
|
471
|
-
`,"vs:DECKGL_FILTER_GL_POSITION":`
|
|
472
|
-
clip_commonPosition = geometry.position.xy;
|
|
473
|
-
`,"fs:#decl":`
|
|
474
|
-
in vec2 clip_commonPosition;
|
|
475
|
-
`,"fs:DECKGL_FILTER_COLOR":`
|
|
476
|
-
if (!clip_isInBounds(clip_commonPosition)) discard;
|
|
477
|
-
`};var Ql=(()=>{class t extends Wv$1{getShaders(){let r=`instancePositions`in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(r=!!this.props.clipByInstance),this.state.clipByInstance=r,r?{modules:[jS],inject:QS}:{modules:[zS],inject:JS}}draw(){let{clipBounds:r}=this.props,A={};if(this.state.clipByInstance)A.bounds=r;else{let i=this.projectPosition([r[0],r[1],0]),a=this.projectPosition([r[2],r[3],0]);A.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.setShaderModuleProps({clip:A})}}return t.defaultProps=VS,t.extensionName=`ClipExtension`,t})();function G1(t,e,r){switch(t.type){case`Point`:return XS(t,e,r);case`LineString`:return KS(t,e,r);case`Polygon`:return k1(t,e,r);default:throw new Error(`Unsupported geometry type: ${t?.type}`)}}function k1(t,e=-Infinity,r=Infinity){let{positions:A}=t,i=t.polygonIndices.value.filter(y=>y>=e&&y<=r),a=t.primitivePolygonIndices.value.filter(y=>y>=e&&y<=r);if(!(i.length>2)){let y=[];for(let _=0;_<a.length-1;_++){let E=a[_],x=a[_+1],v=ua(A,E,x);y.push(v)}return{type:`Polygon`,coordinates:y}}let m=[];for(let y=0;y<i.length-1;y++){let _=i[y],E=i[y+1],x=k1(t,_,E).coordinates;m.push(x)}return{type:`MultiPolygon`,coordinates:m}}function KS(t,e=-Infinity,r=Infinity){let{positions:A}=t,i=t.pathIndices.value.filter(m=>m>=e&&m<=r);if(!(i.length>2))return{type:`LineString`,coordinates:ua(A,i[0],i[1])};let d=[];for(let m=0;m<i.length-1;m++){let y=ua(A,i[m],i[m+1]);d.push(y)}return{type:`MultiLineString`,coordinates:d}}function XS(t,e,r){let{positions:A}=t,i=ua(A,e,r);return i.length>1?{type:`MultiPoint`,coordinates:i}:{type:`Point`,coordinates:i[0]}}function ua(t,e,r){e=e||0,r=r||t.value.length/t.size;let A=[];for(let i=e;i<r;i++){let a=Array();for(let d=i*t.size;d<(i+1)*t.size;d++)a.push(Number(t.value[d]));A.push(a)}return A}function fa(t,e,r$68){let A=YS(t),i=Object.keys(A).filter(a=>A[a]!==Array);return WS(t,r({propArrayTypes:A},e),{numericPropKeys:r$68&&r$68.numericPropKeys||i,PositionDataType:r$68?r$68.PositionDataType:Float32Array,triangulate:r$68?r$68.triangulate:!0})}function YS(t){let e={};for(let r of t)if(r.properties)for(let A in r.properties){let i=r.properties[A];e[A]=nF(i,e[A])}return e}function WS(t,e,r){let{pointPositionsCount:A,pointFeaturesCount:i,linePositionsCount:a,linePathsCount:d,lineFeaturesCount:m,polygonPositionsCount:y,polygonObjectsCount:_,polygonRingsCount:E,polygonFeaturesCount:x,propArrayTypes:v,coordLength:F}=e,{numericPropKeys:N=[],PositionDataType:U=Float32Array,triangulate:q=!0}=r,X=t[0]&&`id`in t[0],Z=t.length>65535?Uint32Array:Uint16Array,he={type:`Point`,positions:new U(A*F),globalFeatureIds:new Z(A),featureIds:i>65535?new Uint32Array(A):new Uint16Array(A),numericProps:{},properties:[],fields:[]},_e={type:`LineString`,pathIndices:a>65535?new Uint32Array(d+1):new Uint16Array(d+1),positions:new U(a*F),globalFeatureIds:new Z(a),featureIds:m>65535?new Uint32Array(a):new Uint16Array(a),numericProps:{},properties:[],fields:[]},be={type:`Polygon`,polygonIndices:y>65535?new Uint32Array(_+1):new Uint16Array(_+1),primitivePolygonIndices:y>65535?new Uint32Array(E+1):new Uint16Array(E+1),positions:new U(y*F),globalFeatureIds:new Z(y),featureIds:x>65535?new Uint32Array(y):new Uint16Array(y),numericProps:{},properties:[],fields:[]};q&&(be.triangles=[]);for(let Ee of[he,_e,be])for(let se of N){let Y=v[se];Ee.numericProps[se]=new Y(Ee.positions.length/F)}_e.pathIndices[d]=a,be.polygonIndices[_]=y,be.primitivePolygonIndices[E]=y;let Te={pointPosition:0,pointFeature:0,linePosition:0,linePath:0,lineFeature:0,polygonPosition:0,polygonObject:0,polygonRing:0,polygonFeature:0,feature:0};for(let Ee of t){let se=Ee.geometry,Y=Ee.properties||{};switch(se.type){case`Point`:ZS(se,he,Te,F,Y),he.properties.push(Jl(Y,N)),X&&he.fields.push({id:Ee.id}),Te.pointFeature++;break;case`LineString`:$S(se,_e,Te,F,Y),_e.properties.push(Jl(Y,N)),X&&_e.fields.push({id:Ee.id}),Te.lineFeature++;break;case`Polygon`:eF(se,be,Te,F,Y),be.properties.push(Jl(Y,N)),X&&be.fields.push({id:Ee.id}),Te.polygonFeature++;break;default:throw new Error(`Invalid geometry type`)}Te.feature++}return rF(he,_e,be,F)}function ZS(t,e,r,A,i){e.positions.set(t.data,r.pointPosition*A);let a=t.data.length/A;ql(e,i,r.pointPosition,a),e.globalFeatureIds.fill(r.feature,r.pointPosition,r.pointPosition+a),e.featureIds.fill(r.pointFeature,r.pointPosition,r.pointPosition+a),r.pointPosition+=a}function $S(t,e,r,A,i){e.positions.set(t.data,r.linePosition*A);let a=t.data.length/A;ql(e,i,r.linePosition,a),e.globalFeatureIds.fill(r.feature,r.linePosition,r.linePosition+a),e.featureIds.fill(r.lineFeature,r.linePosition,r.linePosition+a);for(let d=0,m=t.indices.length;d<m;++d){let y=t.indices[d],_=d===m-1?t.data.length:t.indices[d+1];e.pathIndices[r.linePath++]=r.linePosition,r.linePosition+=(_-y)/A}}function eF(t,e,r,A,i){e.positions.set(t.data,r.polygonPosition*A);let a=t.data.length/A;ql(e,i,r.polygonPosition,a),e.globalFeatureIds.fill(r.feature,r.polygonPosition,r.polygonPosition+a),e.featureIds.fill(r.polygonFeature,r.polygonPosition,r.polygonPosition+a);for(let d=0,m=t.indices.length;d<m;++d){let y=r.polygonPosition;e.polygonIndices[r.polygonObject++]=y;let _=t.areas[d],E=t.indices[d],x=t.indices[d+1];for(let F=0,N=E.length;F<N;++F){let U=E[F],q=F===N-1?x===void 0?t.data.length:x[0]:E[F+1];e.primitivePolygonIndices[r.polygonRing++]=r.polygonPosition,r.polygonPosition+=(q-U)/A}let v=r.polygonPosition;tF(e,_,E,{startPosition:y,endPosition:v,coordLength:A})}}function tF(t,e,r,{startPosition:A,endPosition:i,coordLength:a}){if(!t.triangles)return;let d=A*a,m=i*a,y=t.positions.subarray(d,m),_=r[0],x=mn$1(y,r.slice(1).map(v=>(v-_)/a),a,e);for(let v=0,F=x.length;v<F;++v)t.triangles.push(A+x[v])}function zl(t,e){let r={};for(let A in t)r[A]={value:t[A],size:e};return r}function rF(t,e,r$69,A){let i={shape:`binary-feature-collection`,points:s(r({},t),{positions:{value:t.positions,size:A},globalFeatureIds:{value:t.globalFeatureIds,size:1},featureIds:{value:t.featureIds,size:1},numericProps:zl(t.numericProps,1)}),lines:s(r({},e),{positions:{value:e.positions,size:A},pathIndices:{value:e.pathIndices,size:1},globalFeatureIds:{value:e.globalFeatureIds,size:1},featureIds:{value:e.featureIds,size:1},numericProps:zl(e.numericProps,1)}),polygons:s(r({},r$69),{positions:{value:r$69.positions,size:A},polygonIndices:{value:r$69.polygonIndices,size:1},primitivePolygonIndices:{value:r$69.primitivePolygonIndices,size:1},globalFeatureIds:{value:r$69.globalFeatureIds,size:1},featureIds:{value:r$69.featureIds,size:1},numericProps:zl(r$69.numericProps,1)})};return i.polygons&&r$69.triangles&&(i.polygons.triangles={value:new Uint32Array(r$69.triangles),size:1}),i}function ql(t,e,r,A){for(let i in t.numericProps)if(i in e){let a=e[i];t.numericProps[i].fill(a,r,r+A)}}function Jl(t,e){let r={};for(let A in t)e.includes(A)||(r[A]=t[A]);return r}function nF(t,e){return e===Array||!Number.isFinite(t)?Array:e===Float64Array||Math.fround(t)!==t?Float64Array:Float32Array}function Ki(t,e){let r=e?.globalFeatureId;return r!==void 0?AF(t,r):iF(t,e?.type)}function AF(t,e){let r=U1(t);for(let A of r){let i=0,a=A.featureIds.value[0];for(let d=0;d<A.featureIds.value.length;d++){let m=A.featureIds.value[d];if(m!==a){if(e===A.globalFeatureIds.value[i])return ha(A,i,d);i=d,a=m}}if(e===A.globalFeatureIds.value[i])return ha(A,i,A.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function iF(t,e){return sF(U1(t,e))}function U1(t,e){let r=[];return t.points&&(t.points.type=`Point`,r.push(t.points)),t.lines&&(t.lines.type=`LineString`,r.push(t.lines)),t.polygons&&(t.polygons.type=`Polygon`,r.push(t.polygons)),r}function sF(t){let e=[];for(let r of t){if(r.featureIds.value.length===0)continue;let A=0,i=r.featureIds.value[0];for(let a=0;a<r.featureIds.value.length;a++){let d=r.featureIds.value[a];d!==i&&(e.push(ha(r,A,a)),A=a,i=d)}e.push(ha(r,A,r.featureIds.value.length))}return e}function ha(t,e,r$70){let A=G1(t,e,r$70),i=aF(t,e,r$70),a=oF(t,e,r$70);return r({type:`Feature`,geometry:A,properties:i},a)}function oF(t,e=0,r){return t.fields&&t.fields[t.featureIds.value[e]]}function aF(t,e=0,r){let A=Object.assign({},t.properties[t.featureIds.value[e]]);for(let i in t.numericProps)A[i]=t.numericProps[i].value[e];return A}var $l=x(q1(),1);function BF(t){let e=0;for(let r=0,A=t.length-1,i,a;r<t.length;A=r++)i=t[r],a=t[A],e+=(a[0]-i[0])*(i[1]+a[1]);return e}function Yl(t,e){if(Array.isArray(t[0])){for(let A of t)Yl(A,e);return}let r=t;r[0]/=e,r[1]/=e}function K1(t,e){for(let r=0;r<t.length;++r)t[r]/=e}function Wl(t,e,r){if(typeof t[0][0]!=`number`){for(let d of t)Wl(d,e,r);return}let A=r*Math.pow(2,e.z),i=r*e.x,a=r*e.y;for(let d=0;d<t.length;d++){let m=t[d];m[0]=(m[0]+i)*360/A-180;let y=180-(m[1]+a)*360/A;m[1]=360/Math.PI*Math.atan(Math.exp(y*Math.PI/180))-90}}function X1(t,e,r){let{x:A,y:i,z:a}=e,d=r*Math.pow(2,a),m=r*A,y=r*i;for(let _=0,E=t.length;_<E;_+=2){t[_]=(t[_]+m)*360/d-180;let x=180-(t[_+1]+y)*360/d;t[_+1]=360/Math.PI*Math.atan(Math.exp(x*Math.PI/180))-90}}function Y1(t){let e=t.length;if(e<=1)return[t];let r=[],A,i;for(let a=0;a<e;a++){let d=BF(t[a]);d!==0&&(i===void 0&&(i=d<0),i===d<0?(A&&r.push(A),A=[t[a]]):A&&A.push(t[a]))}return A&&r.push(A),r}function W1(t){let e=t.indices.length,r=`Polygon`;if(e<=1)return{type:r,data:t.data,areas:[[fe(t.data)]],indices:[t.indices]};let A=[],i=[],a=[],d=[],m,y=0;for(let _,E=0,x;E<e;E++){x=t.indices[E]-y,_=t.indices[E+1]-y||t.data.length;let F=fe(t.data.slice(x,_));if(F===0){let N=t.data.slice(0,x),U=t.data.slice(_);t.data=N.concat(U),y+=_-x;continue}m===void 0&&(m=F<0),m===F<0?(d.length&&(A.push(a),i.push(d)),d=[x],a=[F]):(a.push(F),d.push(x))}return a&&A.push(a),d.length&&i.push(d),{type:r,areas:A,indices:i,data:t.data}}var ma=(()=>{class t{properties;extent;type;id;_pbf;_geometry;_keys;_values;_geometryInfo;static types=[`Unknown`,`Point`,`LineString`,`Polygon`];constructor(r,A,i,a,d,m){this.properties={},this.extent=i,this.type=0,this.id=null,this._pbf=r,this._geometry=-1,this._keys=a,this._values=d,this._geometryInfo=m,r.readFields(vF,this,A)}toGeoJSONFeature(r,A){let i=this.loadGeometry();return r===`wgs84`?Z1(this,i,a=>Wl(a,A,this.extent)):Z1(this,i,Yl)}toBinaryFeature(r,A){let i=this.loadFlatGeometry();return r===`wgs84`?this._toBinaryCoordinates(i,a=>X1(a,A,this.extent)):this._toBinaryCoordinates(i,K1)}bbox(){let r=this._pbf;r.pos=this._geometry;let A=r.readVarint()+r.pos,i=1,a=0,d=0,m=0,y=Infinity,_=-Infinity,E=Infinity,x=-Infinity;for(;r.pos<A;){if(a<=0){let v=r.readVarint();i=v&7,a=v>>3}if(a--,i===1||i===2)d+=r.readSVarint(),m+=r.readSVarint(),d<y&&(y=d),d>_&&(_=d),m<E&&(E=m),m>x&&(x=m);else if(i!==7)throw new Error(`unknown command ${i}`)}return[y,E,_,x]}_toBinaryCoordinates(r$71,A){let i;A(r$71.data,this.extent);let a=2;switch(this.type){case 1:this._geometryInfo.pointFeaturesCount++,this._geometryInfo.pointPositionsCount+=r$71.indices.length,i=r({type:`Point`},r$71);break;case 2:this._geometryInfo.lineFeaturesCount++,this._geometryInfo.linePathsCount+=r$71.indices.length,this._geometryInfo.linePositionsCount+=r$71.data.length/a,i=r({type:`LineString`},r$71);break;case 3:i=W1(r$71),this._geometryInfo.polygonFeaturesCount++,this._geometryInfo.polygonObjectsCount+=i.indices.length;for(let m of i.indices)this._geometryInfo.polygonRingsCount+=m.length;this._geometryInfo.polygonPositionsCount+=i.data.length/a;break;default:throw new Error(`Invalid geometry type: ${this.type}`)}let d={type:`Feature`,geometry:i,properties:this.properties};return this.id!==null&&(d.id=this.id),d}loadGeometry(){let r=this._pbf;r.pos=this._geometry;let A=r.readVarint()+r.pos,i=1,a=0,d=0,m=0,y=[],_;for(;r.pos<A;){if(a<=0){let E=r.readVarint();i=E&7,a=E>>3}switch(a--,i){case 1:case 2:d+=r.readSVarint(),m+=r.readSVarint(),i===1&&(_&&y.push(_),_=[]),_&&_.push([d,m]);break;case 7:_&&_.push(_[0].slice());break;default:throw new Error(`unknown command ${i}`)}}return _&&y.push(_),y}loadFlatGeometry(){let r=this._pbf;r.pos=this._geometry;let A=r.readVarint()+r.pos,i=1,a,d=0,m=0,y=0,_=0,E=[],x=[];for(;r.pos<A;)if(d<=0&&(a=r.readVarint(),i=a&7,d=a>>3),d--,i===1||i===2)m+=r.readSVarint(),y+=r.readSVarint(),i===1&&E.push(_),x.push(m,y),_+=2;else if(i===7){if(_>0){let v=E[E.length-1];x.push(x[v],x[v+1]),_+=2}}else throw new Error(`unknown command ${i}`);return{data:x,indices:E}}}return t})();function Z1(t,e,r){let A=ma.types[t.type],i,a,d;switch(t.type){case 1:let y=[];for(i=0;i<e.length;i++)y[i]=e[i][0];d=y,r(d,t.extent);break;case 2:for(d=e,i=0;i<d.length;i++)r(d[i],t.extent);break;case 3:for(d=Y1(e),i=0;i<d.length;i++)for(a=0;a<d[i].length;a++)r(d[i][a],t.extent);break;default:throw new Error(`illegal vector tile type`)}d.length===1?d=d[0]:A=`Multi${A}`;let m={type:`Feature`,geometry:{type:A,coordinates:d},properties:t.properties};return t.id!==null&&(m.properties||={},m.properties.id=t.id),m}function vF(t,e,r){e&&r&&(t===1?e.id=r.readVarint():t===2?MF(r,e):t===3?e.type=r.readVarint():t===4&&(e._geometry=r.pos))}function MF(t,e){let r=t.readVarint()+t.pos;for(;t.pos<r;){let A=e._keys[t.readVarint()],i=e._values[t.readVarint()];e.properties[A]=i}}var ga=class{version;name;extent;length;_pbf;_keys;_values;_features;constructor(e,r){this.version=1,this.name=``,this.extent=4096,this.length=0,this._pbf=e,this._keys=[],this._values=[],this._features=[],e.readFields(IF,this,r),this.length=this._features.length}getGeoJSONFeature(e){if(e<0||e>=this._features.length)throw new Error(`feature index out of bounds`);this._pbf.pos=this._features[e];let r=this._pbf.readVarint()+this._pbf.pos;return new ma(this._pbf,r,this.extent,this._keys,this._values)}getBinaryFeature(e,r){if(e<0||e>=this._features.length)throw new Error(`feature index out of bounds`);this._pbf.pos=this._features[e];let A=this._pbf.readVarint()+this._pbf.pos;return new ma(this._pbf,A,this.extent,this._keys,this._values,r)}};function IF(t,e,r){e&&r&&(t===15?e.version=r.readVarint():t===1?e.name=r.readString():t===5?e.extent=r.readVarint():t===2?e._features.push(r.pos):t===3?e._keys.push(r.readString()):t===4&&e._values.push(SF(r)))}function SF(t){let e=null,r=t.readVarint()+t.pos;for(;t.pos<r;){let A=t.readVarint()>>3;e=A===1?t.readString():A===2?t.readFloat():A===3?t.readDouble():A===4?t.readVarint64():A===5?t.readVarint():A===6?t.readSVarint():A===7?t.readBoolean():null}return e}var Xi=class{layers;constructor(e,r){this.layers=e.readFields(FF,{},r)}};function FF(t,e,r){if(t===3&&r){let A=new ga(r,r.readVarint()+r.pos);A.length&&e&&(e[A.name]=A)}}function eu(t,e){let r=RF(e),A=e?.gis?.format||e?.mvt?.shape||e?.shape;switch(A){case`columnar-table`:return{shape:`columnar-table`,data:Zl(t,r)};case`geojson-table`:return{shape:`geojson-table`,type:`FeatureCollection`,features:$1(t,r)};case`geojson`:return $1(t,r);case`binary-geometry`:return Zl(t,r);case`binary`:return Zl(t,r);default:throw new Error(A||`undefined shape`)}}function Zl(t,e){let[r,A]=LF(t,e),i=fa(r,A);return i.byteLength=t.byteLength,i}function LF(t,e){let r=[],A={coordLength:2,pointPositionsCount:0,pointFeaturesCount:0,linePositionsCount:0,linePathsCount:0,lineFeaturesCount:0,polygonPositionsCount:0,polygonObjectsCount:0,polygonRingsCount:0,polygonFeaturesCount:0};if(t.byteLength<=0)return[r,A];let i=new Xi(new $l.default(t));return(e&&Array.isArray(e.layers)?e.layers:Object.keys(i.layers)).forEach(d=>{let m=i.layers[d];if(m)for(let y=0;y<m.length;y++){let E=DF(m.getBinaryFeature(y,A),e,d);r.push(E)}}),[r,A]}function $1(t,e){if(t.byteLength<=0)return[];let r=[],A=new Xi(new $l.default(t));return(Array.isArray(e.layers)?e.layers:Object.keys(A.layers)).forEach(a=>{let d=A.layers[a];if(d)for(let m=0;m<d.length;m++){let _=PF(d.getGeoJSONFeature(m),e,a);r.push(_)}}),r}function RF(t){if(!t?.mvt)throw new Error(`mvt options required`);if(t.mvt?.coordinates===`wgs84`&&!t.mvt.tileIndex)throw new Error(`MVT Loader: WGS84 coordinates need tileIndex property`);return t.gis&&To$1.warn(`MVTLoader: "options.gis" is deprecated, use "options.mvt.shape" instead`)(),t.mvt}function PF(t,e,r){let A=t.toGeoJSONFeature(e.coordinates||`local`,e.tileIndex);return e.layerProperty&&(A.properties||={},A.properties[e.layerProperty]=r),A}function DF(t,e,r){let A=t.toBinaryFeature(e.coordinates||`local`,e.tileIndex);return e.layerProperty&&A.properties&&(A.properties[e.layerProperty]=r),A}var ya=s(r({},{name:`Mapbox Vector Tile`,id:`mvt`,module:`mvt`,extensions:[`mvt`,`pbf`],mimeTypes:[`application/vnd.mapbox-vector-tile`,`application/x-protobuf`],category:`geometry`}),{dataType:null,batchType:null,version:`4.4.4`,worker:!0,options:{mvt:{shape:`geojson`,coordinates:`local`,layerProperty:`layerName`,layers:void 0,tileIndex:void 0}}});s(r({},ya),{parse:async(t,e)=>eu(t,e),parseSync:eu,binary:!0});var GF={Point:tg,MultiPoint:kF,LineString:rg,MultiLineString:UF,Polygon:ng,MultiPolygon:HF};function tg([t,e],[r,A],i){let a=ht(r[0],A[0],t),d=ht(r[1],A[1],e);return i.unprojectFlat([a,d])}function tu(t,e,r){return t.map(A=>tg(A,e,r))}function kF(t,e,r){return tu(t,e,r)}function rg(t,e,r){return tu(t,e,r)}function UF(t,e,r){return t.map(A=>rg(A,e,r))}function ng(t,e,r){return t.map(A=>tu(A,e,r))}function HF(t,e,r){return t.map(A=>ng(A,e,r))}function Ag(t,e,r$72){let a=[r$72.projectFlat([e.west,e.north]),r$72.projectFlat([e.east,e.south])];return s(r({},t),{coordinates:GF[t.type](t.coordinates,a,r$72)})}var VF=[`points`,`lines`,`polygons`];function ru(t,e,r,A){for(let i of VF){let a=t[i]&&jF(t[i],e,r,A);if(a>=0)return a}return-1}function jF(t,e,r,A){let i=t.featureIds.value;if(!i.length)return-1;let a=0,d=i[i.length-1]+1;if(A){let y=QF(t,A);if(y)a=y[0],d=y[1]+1;else return-1}let m=-1;if(e in t.numericProps){let y=t.numericProps[e].value.findIndex((_,E)=>_===r&&i[E]>=a&&i[E]<d);return y>=0?t.globalFeatureIds.value[y]:-1}else e?m=ig(t.properties,y=>y[e]===r,a,d):t.fields&&(m=ig(t.fields,y=>y.id===r,a,d));return m>=0?zF(t,m):-1}function QF(t,e){if(!t.__layers){let r={},{properties:A}=t;for(let i=0;i<A.length;i++){let{layerName:a}=A[i];a&&(r[a]?r[a][1]=i:r[a]=[i,i])}t.__layers=r}return t.__layers[e]}function zF(t,e){if(!t.__ids){let r=[],A=t.featureIds.value,i=t.globalFeatureIds.value;for(let a=0;a<A.length;a++)r[A[a]]=i[a];t.__ids=r}return t.__ids[e]}function ig(t,e,r,A){for(let i=r;i<A;i++)if(e(t[i],i))return i;return-1}var nu=512;var JF=s(r({},Ks$1.defaultProps),{data:mn,onDataLoad:{type:`function`,value:null,optional:!0,compare:!1},uniqueIdProperty:``,highlightedFeatureId:null,loaders:[ya],binary:!0});var KF=(()=>{class t extends BA{initializeState(){super.initializeState();let r=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:r,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return!!(this.state?.data&&super.isLoaded)}updateState({props:r,oldProps:A,context:i,changeFlags:a}){a.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:r,oldProps:A,context:i,changeFlags:a}),this._setWGS84PropertyForTiles());let{highlightColor:d}=r;d!==A.highlightColor&&Array.isArray(d)&&this.setState({highlightColor:d})}async _updateTileData(){let r=this.props.data,A=null;if(typeof r==`string`&&!uc(r)){let{onDataLoad:i,fetch:a}=this.props;this.setState({data:null,tileJSON:null});try{A=await a(r,{propName:`data`,layer:this,loaders:[]})}catch(d){this.raiseError(d,`loading TileJSON`),r=null}i&&i(A,{propName:`data`,layer:this})}else r&&typeof r==`object`&&`tilejson`in r&&(A=r);A&&(r=A.tiles),this.setState({data:r,tileJSON:A})}_getTilesetOptions(){let r=super._getTilesetOptions(),A=this.state.tileJSON,{minZoom:i,maxZoom:a}=this.props;return A&&(Number.isFinite(A.minzoom)&&A.minzoom>i&&(r.minZoom=A.minzoom),Number.isFinite(A.maxzoom)&&(!Number.isFinite(a)||A.maxzoom<a)&&(r.maxZoom=A.maxzoom)),r}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(r$73){let{data:A,binary:i}=this.state,{index:a,signal:d}=r$73,m=$r(A,r$73);if(!m)return Promise.reject(`Invalid URL`);let y=this.getLoadOptions(),{fetch:_}=this.props;return y=s(r({},y),{core:s(r({},y?.core),{mimeType:`application/x-protobuf`}),mvt:s(r({},y?.mvt),{shape:i?`binary`:`geojson`,coordinates:this.context.viewport.resolution?`wgs84`:`local`,tileIndex:a})}),_(m,{propName:`data`,layer:this,loadOptions:y,signal:d})}renderSubLayers(r){let{x:A,y:i,z:a}=r.tile.index,d=Math.pow(2,a),m=nu/d,y=-m,_=nu*A/d,E=nu*(1-i/d),x=new D().scale([m,y,1]);r.autoHighlight=!1,this.context.viewport.resolution||(r.modelMatrix=x,r.coordinateOrigin=[_,E,0],r.coordinateSystem=da.CARTESIAN,r.extensions=[...r.extensions||[],new Ql]);let v=super.renderSubLayers(r);return this.state.binary&&!(v instanceof Ks$1)&&C.warn(`renderSubLayers() must return GeoJsonLayer when using binary:true`)(),v}_updateAutoHighlight(r){let{uniqueIdProperty:A}=this.props,{hoveredFeatureId:i,hoveredFeatureLayerName:a}=this.state,d=r.object,m=null,y=null;d&&(m=Au(d,A),y=sg(d));let{highlightColor:_}=this.props;typeof _==`function`&&(_=_(r)),(i!==m||a!==y)&&this.setState({highlightColor:_,hoveredFeatureId:m,hoveredFeatureLayerName:y})}_isWGS84(){return!!this.context.viewport.resolution}getPickingInfo(r){let A=super.getPickingInfo(r);if(this.state.binary&&A.index!==-1){let{data:i}=r.sourceLayer.props;A.object=Ki(i,{globalFeatureId:A.index})}return A.object&&!this._isWGS84()&&(A.object=ag(A.object,A.tile.bbox,this.context.viewport)),A}getSubLayerPropsByTile(r){return{highlightedObjectIndex:this.getHighlightedObjectIndex(r),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(r){let{hoveredFeatureId:A,hoveredFeatureLayerName:i,binary:a}=this.state,{uniqueIdProperty:d,highlightedFeatureId:m}=this.props,y=r.content,_=og(m);if(!(og(A)||_))return-1;let x=_?m:A;return Array.isArray(y)?y.findIndex(v=>{let F=Au(v,d)===x,N=_||sg(v)===i;return F&&N}):y&&a?ru(y,d,x,_?``:i):-1}_pickObjects(r){let{deck:A,viewport:i}=this.context,a=i.width,d=i.height,m=i.x,y=i.y,_=[this.id];return A.pickObjects({x:m,y,width:a,height:d,layerIds:_,maxObjects:r})}getRenderedFeatures(r=null){let A=this._pickObjects(r),i=new Set,a=[];for(let d of A){let m=Au(d.object,this.props.uniqueIdProperty);m===void 0?a.push(d.object):i.has(m)||(i.add(m),a.push(d.object))}return a}_setWGS84PropertyForTiles(){let r=`dataInWGS84`;this.state.tileset.selectedTiles.forEach(i=>{i.hasOwnProperty(r)||Object.defineProperty(i,r,{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&&fc(a))i._contentWGS84=(this.state.binary?Ki(i.content):i.content).map(m=>ag(m,a,this.context.viewport));return i._contentWGS84}})})}}return t.layerName=`MVTLayer`,t.defaultProps=JF,t})();function Au(t,e){if(t.properties&&e)return t.properties[e];if(`id`in t)return t.id}function sg(t){return t.properties?.layerName||null}function og(t){return t!=null&&t!==``}function ag(t,e,r$74){let A=s(r({},t),{geometry:{type:t.geometry.type}});return Object.defineProperty(A.geometry,"coordinates",{get:()=>Ag(t.geometry,e,r$74).coordinates}),A}var cg=`0123456789bcdefghjkmnpqrstuvwxyz`;var lg={};for(let t=0;t<cg.length;t++)lg[cg.charAt(t)]=t;var XF=-90;var YF=90;var WF=-180;var ZF=180;function $F(t){let e=!0,r=YF,A=XF,i=ZF,a=WF,d,m=0;for(let y=0,_=t.length;y<_;y++){m=lg[t[y].toLowerCase()];for(let x=4;x>=0;x--){let v=m>>x&1;e?(d=(i+a)/2,v===1?a=d:i=d):(d=(r+A)/2,v===1?A=d:r=d),e=!e}}return[A,a,r,i]}function ug(t){let[e,r,A,i]=$F(t);return[i,A,i,e,r,e,r,A,i,A]}var eL={getGeohash:{type:`accessor`,value:t=>t.geohash}};var rL=(()=>{class t extends Ir{indexToBounds(){let{data:r,getGeohash:A}=this.props;return{data:r,_normalize:!1,positionFormat:`XY`,getPolygon:(i,a)=>ug(A(i,a))}}}return t.layerName=`GeohashLayer`,t.defaultProps=eL,t})();
|
|
478
|
-
/*! Bundled license information:
|
|
479
|
-
|
|
480
|
-
long/dist/long.js:
|
|
481
|
-
(**
|
|
482
|
-
* @license long.js (c) 2013 Daniel Wirtz <dcode@dcode.io>
|
|
483
|
-
* Released under the Apache License, Version 2.0
|
|
484
|
-
* see: https://github.com/dcodeIO/long.js for details
|
|
485
|
-
*)
|
|
486
|
-
|
|
487
|
-
ieee754/index.js:
|
|
488
|
-
(*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> *)
|
|
489
|
-
|
|
490
|
-
long/index.js:
|
|
491
|
-
(**
|
|
492
|
-
* @license
|
|
493
|
-
* Copyright 2009 The Closure Library Authors
|
|
494
|
-
* Copyright 2020 Daniel Wirtz / The long.js Authors.
|
|
495
|
-
*
|
|
496
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
497
|
-
* you may not use this file except in compliance with the License.
|
|
498
|
-
* You may obtain a copy of the License at
|
|
499
|
-
*
|
|
500
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
501
|
-
*
|
|
502
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
503
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
504
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
505
|
-
* See the License for the specific language governing permissions and
|
|
506
|
-
* limitations under the License.
|
|
507
|
-
*
|
|
508
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
509
|
-
*)
|
|
510
|
-
*/
|
|
511
|
-
export{Vx as A5Layer,rL as GeohashLayer,ww as GreatCircleLayer,IB as H3ClusterLayer,dc as H3HexagonLayer,KF as MVTLayer,Uw as QuadkeyLayer,Nw as S2Layer,US as TerrainLayer,TS as Tile3DLayer,BA as TileLayer,xB as TripsLayer,Ir as _GeoCellLayer,EA as _Tile2DHeader,wA as _Tileset2D,Ew as _WMSLayer,$r as _getURLFromTemplate};
|