vendor: 30,846 bytes, lines 1-6
1import{r as Bt,cY as Er,c_ as ef,cX as tf,d6 as At,ag as uh,d7 as gs,d8 as EN,cV as G2,cZ as ku,d9 as ap,da as H2,_ as ZR,j as jf,$ as CN,z as YR,m as QR,W as e4,bS as SN,e as t4,db as rC,bs as IN,L as BN,l as PN,o as nC,ct as MN,dc as iC}from"./index.Drusyo5m.js";import{_ as RN,C as ON}from"./toConsumableArray.gE9fMkLj.js";import{E as r4,w as DN}from"./withFullScreenWrapper.DfpAcJxf.js";import{a as FN,T as LN}from"./Toolbar.BHDNzWBx.js";import{l as d1}from"./index.8HslT92O.js";import{a as kN}from"./useBasicWidgetState.DFklfao0.js";import{u as NN,s as UN}from"./threshold.CUNQbqMA.js";import"./FormClearHelper.C__r5Llk.js";import"./value.DaKxGC7O.js";function zN(r,e){for(var t=0;t<e.length;t++){const n=e[t];if(typeof n!="string"&&!Array.isArray(n)){for(const i in n)if(i!=="default"&&!(i in r)){const s=Object.getOwnPropertyDescriptor(n,i);s&&Object.defineProperty(r,i,s.get?s:{enumerable:!0,get:()=>n[i]})}}}return Object.freeze(Object.defineProperty(r,Symbol.toStringTag,{value:"Module"}))}function sC(r,e){if(!r)throw new Error(e||"loader assertion failed.")}const n4=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),oC=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);oC&&parseFloat(oC[1]);const aC=globalThis,lC=globalThis.process||{},VN=globalThis.navigator||{};function i4(r){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&process.versions?.electron)return!0;const t=typeof navigator<"u"&&navigator.userAgent;return!!(t&&t.indexOf("Electron")>=0)}function fh(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||i4()}function jN(r){return fh()?i4()?"Electron":(VN.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown":"Node"}const s4="4.1.0";function GN(r){try{const e=window[r],t="__storage_test__";return e.setItem(t,t),e.removeItem(t),e}catch{return null}}class HN{constructor(e,t,n="sessionStorage"){this.storage=GN(n),this.id=e,this.config=t,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){const t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}}_loadConfiguration(){let e={};if(this.storage){const t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}}function WN(r){let e;return r<10?e=`${r.toFixed(2)}ms`:r<100?e=`${r.toFixed(1)}ms`:r<1e3?e=`${r.toFixed(0)}ms`:e=`${(r/1e3).toFixed(2)}s`,e}function $N(r,e=8){const t=Math.max(e-r.length,0);return`${" ".repeat(t)}${r}`}var Dm;(function(r){r[r.BLACK=30]="BLACK",r[r.RED=31]="RED",r[r.GREEN=32]="GREEN",r[r.YELLOW=33]="YELLOW",r[r.BLUE=34]="BLUE",r[r.MAGENTA=35]="MAGENTA",r[r.CYAN=36]="CYAN",r[r.WHITE=37]="WHITE",r[r.BRIGHT_BLACK=90]="BRIGHT_BLACK",r[r.BRIGHT_RED=91]="BRIGHT_RED",r[r.BRIGHT_GREEN=92]="BRIGHT_GREEN",r[r.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",r[r.BRIGHT_BLUE=94]="BRIGHT_BLUE",r[r.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",r[r.BRIGHT_CYAN=96]="BRIGHT_CYAN",r[r.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Dm||(Dm={}));const XN=10;function cC(r){return typeof r!="string"?r:(r=r.toUpperCase(),Dm[r]||Dm.WHITE)}function qN(r,e,t){return!fh&&typeof r=="string"&&(e&&(r=`\x1B[${cC(e)}m${r}\x1B[39m`),t&&(r=`\x1B[${cC(t)+XN}m${r}\x1B[49m`)),r}function JN(r,e=["constructor"]){const t=Object.getPrototypeOf(r),n=Object.getOwnPropertyNames(t),i=r;for(const s of n){const o=i[s];typeof o=="function"&&(e.find(l=>s===l)||(i[s]=o.bind(r)))}}function W2(r,e){if(!r)throw new Error("Assertion failed")}function ld(){let r;if(fh()&&aC.performance)r=aC?.performance?.now?.();else if("hrtime"in lC){const e=lC?.hrtime?.();r=e[0]*1e3+e[1]/1e6}else r=Date.now();return r}const cd={debug:fh()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},KN={enabled:!0,level:0};function ud(){}const uC={},fC={once:!0};class wp{constructor({id:e}={id:""}){this.VERSION=s4,this._startTs=ld(),this._deltaTs=ld(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new HN(`__probe-${this.id}__`,KN),this.timeStamp(`${this.id} started`),JN(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((ld()-this._startTs).toPrecision(10))}getDelta(){return Number((ld()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.setConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){if(!e)throw new Error(t||"Assertion failed")}warn(e){return this._getLogFunction(0,e,cd.warn,arguments,fC)}error(e){return this._getLogFunction(0,e,cd.error,arguments)}deprecated(e,t){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${t}\` instead`)}removed(e,t){return this.error(`\`${e}\` has been removed. Use \`${t}\` instead`)}probe(e,t){return this._getLogFunction(e,t,cd.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,cd.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,cd.debug||cd.info,arguments,fC)}table(e,t,n){return t?this._getLogFunction(e,t,console.table||ud,n&&[n],{tag:YN(t)}):ud}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||ud)}group(e,t,n={collapsed:!1}){const i=hC({logLevel:e,message:t,opts:n}),{collapsed:s}=n;return i.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,n={}){return this.group(e,t,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||ud)}withGroup(e,t,n){this.group(e,t)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=o4(e)}_getLogFunction(e,t,n,i,s){if(this._shouldLog(e)){s=hC({logLevel:e,message:t,args:i,opts:s}),n=n||s.method,W2(n),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=ld();const o=s.tag||s.message;if(s.once&&o)if(!uC[o])uC[o]=ld();else return ud;return t=ZN(this.id,s.message,s),n.bind(console,t,...s.args)}return ud}}wp.VERSION=s4;function o4(r){if(!r)return 0;let e;switch(typeof r){case"number":e=r;break;case"object":e=r.logLevel||r.priority||0;break;default:return 0}return W2(Number.isFinite(e)&&e>=0),e}function hC(r){const{logLevel:e,message:t}=r;r.logLevel=o4(e);const n=r.args?Array.from(r.args):[];for(;n.length&&n.shift()!==t;);switch(typeof e){case"string":case"function":t!==void 0&&n.unshift(t),r.message=e;break;case"object":Object.assign(r,e);break}typeof r.message=="function"&&(r.message=r.message());const i=typeof r.message;return W2(i==="string"||i==="object"),Object.assign(r,{args:n},r.opts)}function ZN(r,e,t){if(typeof e=="string"){const n=t.time?$N(WN(t.total)):"";e=t.time?`${r}: ${n} ${e}`:`${r}: ${e}`,e=qN(e,t.color,t.background)}return e}function YN(r){for(const e in r)for(const t in r[e])return t||"untitled";return"empty"}globalThis.probe={};const a4=new wp({id:"@probe.gl/log"}),Qy="4.3.3",QN=Qy[0]>="0"&&Qy[0]<="9"?`v${Qy}`:"";function e5(){const r=new wp({id:"loaders.gl"});return globalThis.loaders=globalThis.loaders||{},globalThis.loaders.log=r,globalThis.loaders.version=QN,globalThis.probe=globalThis.probe||{},globalThis.probe.loaders=r,r}const t5=e5();function r5(r,e){return l4(r||{},e)}function l4(r,e,t=0){if(t>3)return e;const n={...r};for(const[i,s]of Object.entries(e))s&&typeof s=="object"&&!Array.isArray(s)?n[i]=l4(n[i]||{},e[i],t+1):n[i]=e[i];return n}const n5="latest";function i5(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.3"),globalThis._loadersgl_.version}const s5=i5();function qu(r,e){if(!r)throw new Error(e||"loaders.gl assertion failed.")}const Kf=typeof process!="object"||String(process)!=="[object process]"||process.browser,o5=typeof window<"u"&&typeof window.orientation<"u",dC=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);dC&&parseFloat(dC[1]);class a5{name;workerThread;isRunning=!0;result;_resolve=()=>{};_reject=()=>{};constructor(e,t){this.name=e,this.workerThread=t,this.result=new Promise((n,i)=>{this._resolve=n,this._reject=i})}postMessage(e,t){this.workerThread.postMessage({source:"loaders.gl",type:e,payload:t})}done(e){qu(this.isRunning),this.isRunning=!1,this._resolve(e)}error(e){qu(this.isRunning),this.isRunning=!1,this._reject(e)}}class ev{terminate(){}}const tv=new Map;function l5(r){qu(r.source&&!r.url||!r.source&&r.url);let e=tv.get(r.source||r.url);return e||(r.url&&(e=c5(r.url),tv.set(r.url,e)),r.source&&(e=c4(r.source),tv.set(r.source,e))),qu(e),e}function c5(r){if(!r.startsWith("http"))return r;const e=u5(r);return c4(e)}function c4(r){const e=new Blob([r],{type:"application/javascript"});return URL.createObjectURL(e)}function u5(r){return`try { 2 importScripts('${r}'); 3} catch (error) { 4 console.error(error); 5 throw error; 6}`}function u4(r,e=!0,t){const n=t||new Set;if(r){if(pC(r))n.add(r);else if(pC(r.buffer))n.add(r.buffer);else if(!ArrayBuffer.isView(r)){if(e&&typeof r=="object")for(const i in r)u4(r[i],e,n)}}return t===void 0?Array.from(n):[]}function pC(r){return r?r instanceof ArrayBuffer||typeof MessagePort<"u"&&r instanceof MessagePort||typeof ImageBitmap<"u"&&r instanceof ImageBitmap||typeof OffscreenCanvas<"u"&&r instanceof OffscreenCanvas:!1}const rv=()=>{};class p1{name;source;url;terminated=!1;worker;onMessage;onError;_loadableURL="";static isSupported(){return typeof Worker<"u"&&Kf||typeof ev<"u"&&!Kf}constructor(e){const{name:t,source:n,url:i}=e;qu(n||i),this.name=t,this.source=n,this.url=i,this.onMessage=rv,this.onError=s=>console.log(s),this.worker=Kf?this._createBrowserWorker():this._createNodeWorker()}destroy(){this.onMessage=rv,this.onError=rv,this.worker.terminate(),this.terminated=!0}get isRunning(){return!!this.onMessage}postMessage(e,t){t=t||u4(e),this.worker.postMessage(e,t)}_getErrorFromErrorEvent(e){let t="Failed to load ";return t+=`worker ${this.name} from ${this.url}. `,e.message&&(t+=`${e.message} in `),e.lineno&&(t+=`:${e.lineno}:${e.colno}`),new Error(t)}_createBrowserWorker(){this._loadableURL=l5({source:this.source,url:this.url});const e=new Worker(this._loadableURL,{name:this.name});return e.onmessage=t=>{t.data?this.onMessage(t.data):this.onError(new Error("No data received"))},e.onerror=t=>{this.onError(this._getErrorFromErrorEvent(t)),this.terminated=!0},e.onmessageerror=t=>console.error(t),e}_createNodeWorker(){let e;if(this.url){const n=this.url.includes(":/")||this.url.startsWith("/")?this.url:`./${this.url}`;e=new ev(n,{eval:!1})}else if(this.source)e=new ev(this.source,{eval:!0});else throw new Error("no worker");return e.on("message",t=>{this.onMessage(t)}),e.on("error",t=>{this.onError(t)}),e.on("exit",t=>{}),e}}class f5{name="unnamed";source;url;maxConcurrency=1;maxMobileConcurrency=1;onDebug=()=>{};reuseWorkers=!0;props={};jobQueue=[];idleQueue=[];count=0;isDestroyed=!1;static isSupported(){return p1.isSupported()}constructor(e){this.source=e.source,this.url=e.url,this.setProps(e)}destroy(){this.idleQueue.forEach(e=>e.destroy()),this.isDestroyed=!0}setProps(e){this.props={...this.props,...e},e.name!==void 0&&(this.name=e.name),e.maxConcurrency!==void 0&&(this.maxConcurrency=e.maxConcurrency),e.maxMobileConcurrency!==void 0&&(this.maxMobileConcurrency=e.maxMobileConcurrency),e.reuseWorkers!==void 0&&(this.reuseWorkers=e.reuseWorkers),e.onDebug!==void 0&&(this.onDebug=e.onDebug)}async startJob(e,t=(i,s,o)=>i.done(o),n=(i,s)=>i.error(s)){const i=new Promise(s=>(this.jobQueue.push({name:e,onMessage:t,onError:n,onStart:s}),this));return this._startQueuedJob(),await i}async _startQueuedJob(){if(!this.jobQueue.length)return;const e=this._getAvailableWorker();if(!e)return;const t=this.jobQueue.shift();if(t){this.onDebug({message:"Starting job",name:t.name,workerThread:e,backlog:this.jobQueue.length});const n=new a5(t.name,e);e.onMessage=i=>t.onMessage(n,i.type,i.payload),e.onError=i=>t.onError(n,i),t.onStart(n);try{await n.result}catch(i){console.error(`Worker exception: ${i}`)}finally{this.returnWorkerToQueue(e)}}}returnWorkerToQueue(e){!Kf||this.isDestroyed||!this.reuseWorkers||this.count>this._getMaxConcurrency()?(e.destroy(),this.count--):this.idleQueue.push(e),this.isDestroyed||this._startQueuedJob()}_getAvailableWorker(){if(this.idleQueue.length>0)return this.idleQueue.shift()||null;if(this.count<this._getMaxConcurrency()){this.count++;const e=`${this.name.toLowerCase()} (#${this.count} of ${this.maxConcurrency})`;return new p1({name:e,source:this.source,url:this.url})}return null}_getMaxConcurrency(){return o5?this.maxMobileConcurrency:this.maxConcurrency}}const h5={maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:!0,onDebug:()=>{}};class Uu{props;workerPools=new Map;static _workerFarm;static isSupported(){return p1.isSupported()}static getWorkerFarm(e={}){return Uu._workerFarm=Uu._workerFarm||new Uu({}),Uu._workerFarm.setProps(e),Uu._workerFarm}constructor(e){this.props={...h5},this.setProps(e),this.workerPools=new Map}destroy(){for(const e of this.workerPools.values())e.destroy();this.workerPools=new Map}setProps(e){this.props={...this.props,...e};for(const t of this.workerPools.values())t.setProps(this._getWorkerPoolProps())}getWorkerPool(e){const{name:t,source:n,url:i}=e;let s=this.workerPools.get(t);return s||(s=new f5({name:t,source:n,url:i}),s.setProps(this._getWorkerPoolProps()),this.workerPools.set(t,s)),s}_getWorkerPoolProps(){return{maxConcurrency:this.props.maxConcurrency,maxMobileConcurrency:this.props.maxMobileConcurrency,reuseWorkers:this.props.reuseWorkers,onDebug:this.props.onDebug}}}function d5(r,e={}){const t=e[r.id]||{},n=Kf?`${r.id}-worker.js`:`${r.id}-worker-node.js`;let i=t.workerUrl;if(!i&&r.id==="compression"&&(i=e.workerUrl),e._workerType==="test"&&(Kf?i=`modules/${r.module}/dist/${n}`:i=`modules/${r.module}/src/workers/${r.id}-worker-node.ts`),!i){let s=r.version;s==="latest"&&(s=n5);const o=s?`@${s}`:"";i=`https://unpkg.com/@loaders.gl/${r.module}${o}/dist/${n}`}return qu(i),i}function p5(r,e=s5){qu(r,"no worker provided");const t=r.version;return!(!e||!t)}const Pu={};function A5(r,e){return!Uu.isSupported()||!Kf&&!e?._nodeWorkers?!1:r.worker&&e?.worker}async function g5(r,e,t,n,i){const s=r.id,o=d5(r,t),f=Uu.getWorkerFarm(t).getWorkerPool({name:s,url:o});t=JSON.parse(JSON.stringify(t)),n=JSON.parse(JSON.stringify(n||{}));const A=await f.startJob("process-on-worker",m5.bind(null,i));return A.postMessage("process",{input:e,options:t,context:n}),await(await A.result).result}async function m5(r,e,t,n){switch(t){case"done":e.done(n);break;case"error":e.error(new Error(n.error));break;case"process":const{id:i,input:s,options:o}=n;try{const l=await r(s,o);e.postMessage("done",{id:i,result:l})}catch(l){const f=l instanceof Error?l.message:"unknown error";e.postMessage("error",{id:i,error:f})}break;default:console.warn(`parse-with-worker unknown message ${t}`)}}function _5(r,e,t){if(t=t||r.byteLength,r.byteLength<t||e.byteLength<t)return!1;const n=new Uint8Array(r),i=new Uint8Array(e);for(let s=0;s<n.length;++s)if(n[s]!==i[s])return!1;return!0}function y5(...r){return v5(r)}function v5(r){const e=r.map(s=>s instanceof ArrayBuffer?new Uint8Array(s):s),t=e.reduce((s,o)=>s+o.byteLength,0),n=new Uint8Array(t);let i=0;for(const s of e)n.set(s,i),i+=s.byteLength;return n.buffer}async function b5(r){const e=[];for await(const t of r)e.push(t);return y5(...e)}function AC(){let r;if(typeof window<"u"&&window.performance)r=window.performance.now();else if(typeof process<"u"&&process.hrtime){const e=process.hrtime();r=e[0]*1e3+e[1]/1e6}else r=Date.now();return r}class gC{constructor(e,t){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=e,this.type=t,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=AC(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(AC()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}}class hh{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,t="count"){return this._getOrCreate({name:e,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(const e of Object.values(this.stats))e.reset();return this}forEach(e){for(const t of Object.values(this.stats))e(t)}getTable(){const e={};return this.forEach(t=>{e[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),e}_initializeStats(e=[]){e.forEach(t=>this._getOrCreate(t))}_getOrCreate(e){const{name:t,type:n}=e;let i=this.stats[t];return i||(e instanceof gC?i=e:i=new gC(t,n),this.stats[t]=i),i}}let x5="";const mC={};function w5(r){for(const e in mC)if(r.startsWith(e)){const t=mC[e];r=r.replace(e,t)}return!r.startsWith("http://")&&!r.startsWith("https://")&&(r=`${x5}${r}`),r}function T5(r){return r&&typeof r=="object"&&r.isBuffer}function f4(r){if(T5(r))return r;if(r instanceof ArrayBuffer)return r;if(ArrayBuffer.isView(r))return r.byteOffset===0&&r.byteLength===r.buffer.byteLength?r.buffer:r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength);if(typeof r=="string"){const e=r;return new TextEncoder().encode(e).buffer}if(r&&typeof r=="object"&&r._toArrayBuffer)return r._toArrayBuffer();throw new Error("toArrayBuffer")}function h4(r){const e=r?r.lastIndexOf("/"):-1;return e>=0?r.substr(e+1):""}function E5(r){const e=r?r.lastIndexOf("/"):-1;return e>=0?r.substr(0,e):""}const C5=r=>typeof r=="boolean",RA=r=>typeof r=="function",fg=r=>r!==null&&typeof r=="object",_C=r=>fg(r)&&r.constructor==={}.constructor,S5=r=>!!r&&typeof r[Symbol.iterator]=="function",I5=r=>r&&typeof r[Symbol.asyncIterator]=="function",dh=r=>typeof Response<"u"&&r instanceof Response||r&&r.arrayBuffer&&r.text&&r.json,ph=r=>typeof Blob<"u"&&r instanceof Blob,B5=r=>r&&typeof r=="object"&&r.isBuffer,P5=r=>typeof ReadableStream<"u"&&r instanceof ReadableStream||fg(r)&&RA(r.tee)&&RA(r.cancel)&&RA(r.getReader),M5=r=>fg(r)&&RA(r.read)&&RA(r.pipe)&&C5(r.readable),d4=r=>P5(r)||M5(r);class R5 extends Error{constructor(e,t){super(e),this.reason=t.reason,this.url=t.url,this.response=t.response}reason;url;response}const O5=/^data:([-\w.]+\/[-\w.+]+)(;|,)/,D5=/^([-\w.]+\/[-\w.+]+)/;function yC(r,e){return r.toLowerCase()===e.toLowerCase()}function F5(r){const e=D5.exec(r);return e?e[1]:r}function vC(r){const e=O5.exec(r);return e?e[1]:""}const p4=/\?.*/;function L5(r){const e=r.match(p4);return e&&e[0]}function $2(r){return r.replace(p4,"")}function k5(r){if(r.length<50)return r;const e=r.slice(r.length-15);return`${r.substr(0,32)}...${e}`}function C_(r){return dh(r)?r.url:ph(r)?r.name||"":typeof r=="string"?r:""}function X2(r){if(dh(r)){const e=r,t=e.headers.get("content-type")||"",n=$2(e.url);return F5(t)||vC(n)}return ph(r)?r.type||"":typeof r=="string"?vC(r):""}function N5(r){return dh(r)?r.headers["content-length"]||-1:ph(r)?r.size:typeof r=="string"?r.length:r instanceof ArrayBuffer||ArrayBuffer.isView(r)?r.byteLength:-1}async function A4(r){if(dh(r))return r;const e={},t=N5(r);t>=0&&(e["content-length"]=String(t));const n=C_(r),i=X2(r);i&&(e["content-type"]=i);const s=await V5(r);s&&(e["x-first-bytes"]=s),typeof r=="string"&&(r=new TextEncoder().encode(r));const o=new Response(r,{headers:e});return Object.defineProperty(o,"url",{value:n}),o}async function U5(r){if(!r.ok)throw await z5(r)}async function z5(r){const e=k5(r.url);let t=`Failed to fetch resource (${r.status}) ${r.statusText}: ${e}`;t=t.length>100?`${t.slice(0,100)}...`:t;const n={reason:r.statusText,url:r.url,response:r};try{const i=r.headers.get("Content-Type");n.reason=!r.bodyUsed&&i?.includes("application/json")?await r.json():await r.text()}catch{}return new R5(t,n)}async function V5(r){if(typeof r=="string")return`data:,${r.slice(0,5)}`;if(r instanceof Blob){const t=r.slice(0,5);return await new Promise(n=>{const i=new FileReader;i.onload=s=>n(s?.target?.result),i.readAsDataURL(t)})}if(r instanceof ArrayBuffer){const t=r.slice(0,5);return`data:base64,${j5(t)}`}return null}function j5(r){let e="";const t=new Uint8Array(r);for(let n=0;n<t.byteLength;n++)e+=String.fromCharCode(t[n]);return btoa(e)}function G5(r){return!H5(r)&&!W5(r)}function H5(r){return r.startsWith("http:")||r.startsWith("https:")}function W5(r){return r.startsWith("data:")}async function bC(r,e){if(typeof r=="string"){const t=w5(r);return G5(t)&&globalThis.loaders?.fetchNode?globalThis.loaders?.fetchNode(t,e):await fetch(t,e)}return await A4(r)}const xC=new wp({id:"loaders.gl"});class $5{log(){return()=>{}}info(){return()=>{}}warn(){return()=>{}}error(){return()=>{}}}class X5{console;constructor(){this.console=console}log(...e){return this.console.log.bind(this.console,...e)}info(...e){return this.console.info.bind(this.console,...e)}warn(...e){return this.console.warn.bind(this.console,...e)}error(...e){return this.console.error.bind(this.console,...e)}}const g4={fetch:null,mimeType:void 0,nothrow:!1,log:new X5,useLocalLibraries:!1,CDN:"https://unpkg.com/@loaders.gl",worker:!0,maxConcurrency:3,maxMobileConcurrency:1,reuseWorkers:n4,_nodeWorkers:!1,_workerType:"",limit:0,_limitMB:0,batchSize:"auto",batchDebounceMs:0,metadata:!1,transforms:[]},q5={throws:"nothrow",dataType:"(no longer used)",uri:"baseUri",method:"fetch.method",headers:"fetch.headers",body:"fetch.body",mode:"fetch.mode",credentials:"fetch.credentials",cache:"fetch.cache",redirect:"fetch.redirect",referrer:"fetch.referrer",referrerPolicy:"fetch.referrerPolicy",integrity:"fetch.integrity",keepalive:"fetch.keepalive",signal:"fetch.signal"};function m4(){globalThis.loaders=globalThis.loaders||{};const{loaders:r}=globalThis;return r._state||(r._state={}),r._state}function _4(){const r=m4();return r.globalOptions=r.globalOptions||{...g4},r.globalOptions}function J5(r,e,t,n){return t=t||[],t=Array.isArray(t)?t:[t],K5(r,t),Y5(e,r,n)}function K5(r,e){wC(r,null,g4,q5,e);for(const t of e){const n=r&&r[t.id]||{},i=t.options&&t.options[t.id]||{},s=t.deprecatedOptions&&t.deprecatedOptions[t.id]||{};wC(n,t.id,i,s,e)}}function wC(r,e,t,n,i){const s=e||"Top level",o=e?`${e}.`:"";for(const l in r){const f=!e&&fg(r[l]),A=l==="baseUri"&&!e,v=l==="workerUrl"&&e;if(!(l in t)&&!A&&!v){if(l in n)xC.warn(`${s} loader option '${o}${l}' no longer supported, use '${n[l]}'`)();else if(!f){const T=Z5(l,i);xC.warn(`${s} loader option '${o}${l}' not recognized. ${T}`)()}}}}function Z5(r,e){const t=r.toLowerCase();let n="";for(const i of e)for(const s in i.options){if(r===s)return`Did you mean '${i.id}.${s}'?`;const o=s.toLowerCase();(t.startsWith(o)||o.startsWith(t))&&(n=n||`Did you mean '${i.id}.${s}'?`)}return n}function Y5(r,e,t){const i={...r.options||{}};return Q5(i,t),i.log===null&&(i.log=new $5),TC(i,_4()),TC(i,e),i}function TC(r,e){for(const t in e)if(t in e){const n=e[t];_C(n)&&_C(r[t])?r[t]={...r[t],...e[t]}:r[t]=e[t]}}function Q5(r,e){e&&!("baseUri"in r)&&(r.baseUri=e)}function q2(r){return r?(Array.isArray(r)&&(r=r[0]),Array.isArray(r?.extensions)):!1}function J2(r){sC(r,"null loader"),sC(q2(r),"invalid loader");let e;return Array.isArray(r)&&(e=r[1],r=r[0],r={...r,options:{...r.options,...e}}),(r?.parseTextSync||r?.parseText)&&(r.text=!0),r.text||(r.binary=!0),r}const y4=()=>{const r=m4();return r.loaderRegistry=r.loaderRegistry||[],r.loaderRegistry};function Tp(r){const e=y4();r=Array.isArray(r)?r:[r];for(const t of r){const n=J2(t);e.find(i=>n===i)||e.unshift(n)}}function eU(){return y4()}const tU=/\.([^.]+)$/;async function rU(r,e=[],t,n){if(!v4(r))return null;let i=EC(r,e,{...t,nothrow:!0},n);if(i)return i;if(ph(r)&&(r=await r.slice(0,10).arrayBuffer(),i=EC(r,e,t,n)),!i&&!t?.nothrow)throw new Error(b4(r));return i}function EC(r,e=[],t,n){if(!v4(r))return null;if(e&&!Array.isArray(e))return J2(e);let i=[];e&&(i=i.concat(e)),t?.ignoreRegisteredLoaders||i.push(...eU()),iU(i);const s=nU(r,i,t,n);if(!s&&!t?.nothrow)throw new Error(b4(r));return s}function nU(r,e,t,n){const i=C_(r),s=X2(r),o=$2(i)||n?.url;let l=null,f="";return t?.mimeType&&(l=nv(e,t?.mimeType),f=`match forced by supplied MIME type ${t?.mimeType}`),l=l||sU(e,o),f=f||(l?`matched url ${o}`:""),l=l||nv(e,s),f=f||(l?`matched MIME type ${s}`:""),l=l||aU(e,r),f=f||(l?`matched initial data ${x4(r)}`:""),t?.fallbackMimeType&&(l=l||nv(e,t?.fallbackMimeType),f=f||(l?`matched fallback MIME type ${s}`:"")),f&&t5.log(1,`selectLoader selected ${l?.name}: ${f}.`),l}function v4(r){return!(r instanceof Response&&r.status===204)}function b4(r){const e=C_(r),t=X2(r);let n="No valid loader found (";n+=e?`${h4(e)}, `:"no url provided, ",n+=`MIME type: ${t?`"${t}"`:"not provided"}, `;const i=r?x4(r):"";return n+=i?` first bytes: "${i}"`:"first bytes: not available",n+=")",n}function iU(r){for(const e of r)J2(e)}function sU(r,e){const t=e&&tU.exec(e),n=t&&t[1];return n?oU(r,n):null}function oU(r,e){e=e.toLowerCase();for(const t of r)for(const n of t.extensions)if(n.toLowerCase()===e)return t;return null}function nv(r,e){for(const t of r)if(t.mimeTypes?.some(n=>yC(e,n))||yC(e,`application/x.${t.id}`))return t;return null}function aU(r,e){if(!e)return null;for(const t of r)if(typeof e=="string"){if(lU(e,t))return t}else if(ArrayBuffer.isView(e)){if(CC(e.buffer,e.byteOffset,t))return t}else if(e instanceof ArrayBuffer&&CC(e,0,t))return t;return null}function lU(r,e){return e.testText?e.testText(r):(Array.isArray(e.tests)?e.tests:[e.tests]).some(n=>r.startsWith(n))}function CC(r,e,t){return(Array.isArray(t.tests)?t.tests:[t.tests]).some(i=>cU(r,e,t,i))}function cU(r,e,t,n){if(n instanceof ArrayBuffer)return _5(n,r,n.byteLength);switch(typeof n){case"function":return n(r);case"string":const i=A1(r,e,n.length);return n===i;default:return!1}}function x4(r,e=5){return typeof r=="string"?r.slice(0,e):ArrayBuffer.isView(r)?A1(r.buffer,r.byteOffset,e):r instanceof ArrayBuffer?A1(r,0,e):""}function A1(r,e,t){if(r.byteLength<e+t)return"";const n=new DataView(r);let i="";for(let s=0;s<t;s++)i+=String.fromCharCode(n.getUint8(e+s));return i}const uU=256*1024;function*fU(r,e){const t=e?.chunkSize||uU;let n=0;const i=new TextEncoder;for(;n<r.length;){const s=Math.min(r.length-n,t),o=r.slice(n,n+s);n+=s,yield i.encode(o)}}const hU=256*1024;function*dU(r,e={}){const{chunkSize:t=hU}=e;let n=0;for(;n<r.byteLength;){const i=Math.min(r.byteLength-n,t),s=new ArrayBuffer(i),o=new Uint8Array(r,n,i);new Uint8Array(s).set(o),n+=i,yield s}}const pU=1024*1024;async function*AU(r,e){const t=e?.chunkSize||pU;let n=0;for(;n<r.size;){const i=n+t,s=await r.slice(n,i).arrayBuffer();n=i,yield s}}function SC(r,e){return n4?gU(r,e):mU(r)}async function*gU(r,e){const t=r.getReader();let n;try{for(;;){const i=n||t.read();e?._streamReadAhead&&(n=t.read());const{done:s,value:o}=await i;if(s)return;yield f4(o)}}catch{t.releaseLock()}}async function*mU(r,e){for await(const t of r)yield f4(t)}function _U(r,e){if(typeof r=="string")return fU(r,e);if(r instanceof ArrayBuffer)return dU(r,e);if(ph(r))return AU(r,e);if(d4(r))return SC(r,e);if(dh(r))return SC(r.body,e);throw new Error("makeIterator")}const w4="Cannot convert supplied data type";function yU(r,e,t){if(e.text&&typeof r=="string")return r;if(B5(r)&&(r=r.buffer),r instanceof ArrayBuffer){const n=r;return e.text&&!e.binary?new TextDecoder("utf8").decode(n):n}if(ArrayBuffer.isView(r)){if(e.text&&!e.binary)return new TextDecoder("utf8").decode(r);let n=r.buffer;const i=r.byteLength||r.length;return(r.byteOffset!==0||i!==n.byteLength)&&(n=n.slice(r.byteOffset,r.byteOffset+i)),n}throw new Error(w4)}async function vU(r,e,t){const n=r instanceof ArrayBuffer||ArrayBuffer.isView(r);if(typeof r=="string"||n)return yU(r,e);if(ph(r)&&(r=await A4(r)),dh(r)){const i=r;return await U5(i),e.binary?await i.arrayBuffer():await i.text()}if(d4(r)&&(r=_U(r,t)),S5(r)||I5(r))return b5(r);throw new Error(w4)}function T4(r,e){const t=_4(),n=r||t;return typeof n.fetch=="function"?n.fetch:fg(n.fetch)?i=>bC(i,n.fetch):e?.fetch?e?.fetch:bC}function bU(r,e,t){if(t)return t;const n={fetch:T4(e,r),...r};if(n.url){const i=$2(n.url);n.baseUrl=i,n.queryString=L5(n.url),n.filename=h4(i),n.baseUrl=E5(i)}return Array.isArray(n.loaders)||(n.loaders=null),n}function xU(r,e){if(r&&!Array.isArray(r))return r;let t;if(r&&(t=Array.isArray(r)?r:[r]),e&&e.loaders){const n=Array.isArray(e.loaders)?e.loaders:[e.loaders];t=t?[...t,...n]:n}return t&&t.length?t:void 0}async function Fm(r,e,t,n){e&&!Array.isArray(e)&&!q2(e)&&(n=void 0,t=e,e=void 0),r=await r,t=t||{};const i=C_(r),o=xU(e,n),l=await rU(r,o,t);return l?(t=J5(t,l,o,i),n=bU({url:i,_parse:Fm,loaders:o},t,n||null),await wU(l,r,t,n)):null}async function wU(r,e,t,n){if(p5(r),t=r5(r.options,t),dh(e)){const s=e,{ok:o,redirected:l,status:f,statusText:A,type:v,url:T}=s,I=Object.fromEntries(s.headers.entries());n.response={headers:I,ok:o,redirected:l,status:f,statusText:A,type:v,url:T}}
6e=await vU(e,r,t);const i=r;if(i.parseTextSync&&typeof e=="string")return i.parseTextSync(e,t,n);if(A5(r,t))return await g5(r,e,t,n,Fm);if(i.parseText&&typeof e=="string")return await i.parseText(e,t,n);if(i.parse)return await i.parse(e,t,n);throw qu(!i.parseSync),new Error(`${r.id} loader - no parser found and worker is disabled`)}function TU(r){switch(r.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}const IC=100;class EU{schema;options;shape;length=0;rows=null;cursor=0;_headers=[];constructor(e,t){if(this.options=t,this.schema=e,!Array.isArray(e)){this._headers=[];for(const n in e)this._headers[e[n].index]=e[n].name}}rowCount(){return this.length}addArrayRow(e,t){Number.isFinite(t)&&(this.cursor=t),this.shape="array-row-table",this.rows=this.rows||new Array(IC),this.rows[this.length]=e,this.length++}addObjectRow(e,t){Number.isFinite(t)&&(this.cursor=t),this.shape="object-row-table",this.rows=this.rows||new Array(IC),this.rows[this.length]=e,this.length++}getBatch(){let e=this.rows;return e?(e=e.slice(0,this.length),this.rows=null,{shape:this.shape||"array-row-table",batchType:"data",data:e,length:this.length,schema:this.schema,cursor:this.cursor}):null}}function E4(r,e){if(!r)throw new Error("null row");const t={};if(e)for(let n=0;n<e.length;n++)t[e[n]]=r[n];else for(let n=0;n<r.length;n++){const i=`column-${n}`;t[i]=r[n]}return t}function C4(r,e){if(!r)throw new Error("null row");if(e){const t=new Array(e.length);for(let n=0;n<e.length;n++)t[n]=r[e[n]];return t}return Object.values(r)}function CU(r){const e=[];for(let t=0;t<r.length;t++){const n=`column-${t}`;e.push(n)}return e}function SU(r){return Object.keys(r)}const BC=100;class IU{schema;options;length=0;objectRows=null;arrayRows=null;cursor=0;_headers=null;constructor(e,t){if(this.options=t,this.schema=e,e){this._headers=[];for(const n in e)this._headers[e[n].index]=e[n].name}}rowCount(){return this.length}addArrayRow(e,t){switch(Number.isFinite(t)&&(this.cursor=t),this._headers||=CU(e),this.options.shape){case"object-row-table":const n=E4(e,this._headers);this.addObjectRow(n,t);break;case"array-row-table":this.arrayRows=this.arrayRows||new Array(BC),this.arrayRows[this.length]=e,this.length++;break}}addObjectRow(e,t){switch(Number.isFinite(t)&&(this.cursor=t),this._headers||=SU(e),this.options.shape){case"array-row-table":const n=C4(e,this._headers);this.addArrayRow(n,t);break;case"object-row-table":this.objectRows=this.objectRows||new Array(BC),this.objectRows[this.length]=e,this.length++;break}}getBatch(){let e=this.arrayRows||this.objectRows;return e?(e=e.slice(0,this.length),this.arrayRows=null,this.objectRows=null,{shape:this.options.shape,batchType:"data",data:e,length:this.length,schema:this.schema,cursor:this.cursor}):null}}const BU=100;class PU{schema;length=0;allocated=0;columns={};constructor(e,t){this.schema=e,this._reallocateColumns()}rowCount(){return this.length}addArrayRow(e){this._reallocateColumns();let t=0;for(const n in this.columns)this.columns[n][this.length]=e[t++];this.length++}addObjectRow(e){this._reallocateColumns();for(const t in e)this.columns[t][this.length]=e[t];this.length++}getBatch(){this._pruneColumns();const e=Array.isArray(this.schema)?this.columns:{};if(!Array.isArray(this.schema))for(const n in this.schema){const i=this.schema[n];e[i.name]=this.columns[i.index]}return this.columns={},{shape:"columnar-table",batchType:"data",data:e,schema:this.schema,length:this.length}}_reallocateColumns(){if(!(this.length<this.allocated)){this.allocated=this.allocated>0?this.allocated*=2:BU,this.columns={};for(const e in this.schema){const t=this.schema[e],n=t.type||Float32Array,i=this.columns[t.index];if(i&&ArrayBuffer.isView(i)){const s=new n(this.allocated);s.set(i),this.columns[t.index]=s}else i?(i.length=this.allocated,this.columns[t.index]=i):this.columns[t.index]=new n(this.allocated)}}}_pruneColumns(){for(const[e,t]of Object.entries(this.columns))this.columns[e]=t.slice(0,this.length)}}const MU={shape:void 0,batchSize:"auto",batchDebounceMs:0,limit:0,_limitMB:0},RU="TableBatchBuilder";class Lm{schema;options;aggregator=null;batchCount=0;bytesUsed=0;isChunkComplete=!1;lastBatchEmittedMs=Date.now();totalLength=0;totalBytes=0;rowBytes=0;static ArrowBatch;constructor(e,t){this.schema=e,this.options={...MU,...t}}limitReached(){return!!(this.options?.limit&&this.totalLength>=this.options.limit||this.options?._limitMB&&this.totalBytes/1e6>=this.options._limitMB)}addRow(e){this.limitReached()||(this.totalLength++,this.rowBytes=this.rowBytes||this._estimateRowMB(e),this.totalBytes+=this.rowBytes,Array.isArray(e)?this.addArrayRow(e):this.addObjectRow(e))}addArrayRow(e){if(!this.aggregator){const t=this._getTableBatchType();this.aggregator=new t(this.schema,this.options)}this.aggregator.addArrayRow(e)}addObjectRow(e){if(!this.aggregator){const t=this._getTableBatchType();this.aggregator=new t(this.schema,this.options)}this.aggregator.addObjectRow(e)}chunkComplete(e){e instanceof ArrayBuffer&&(this.bytesUsed+=e.byteLength),typeof e=="string"&&(this.bytesUsed+=e.length),this.isChunkComplete=!0}getFullBatch(e){return this._isFull()?this._getBatch(e):null}getFinalBatch(e){return this._getBatch(e)}_estimateRowMB(e){return Array.isArray(e)?e.length*8:Object.keys(e).length*8}_isFull(){if(!this.aggregator||this.aggregator.rowCount()===0)return!1;if(this.options.batchSize==="auto"){if(!this.isChunkComplete)return!1}else if(this.options.batchSize>this.aggregator.rowCount())return!1;return this.options.batchDebounceMs>Date.now()-this.lastBatchEmittedMs?!1:(this.isChunkComplete=!1,this.lastBatchEmittedMs=Date.now(),!0)}_getBatch(e){if(!this.aggregator)return null;e?.bytesUsed&&(this.bytesUsed=e.bytesUsed);const t=this.aggregator.getBatch();return t.count=this.batchCount,t.bytesUsed=this.bytesUsed,Object.assign(t,e),this.batchCount++,this.aggregator=null,t}_getTableBatchType(){switch(this.options.shape){case"array-row-table":case"object-row-table":return IU;case"columnar-table":return PU;case"arrow-table":if(!Lm.ArrowBatch)throw new Error(RU);return Lm.ArrowBatch;default:return EU}}}function S4(r){let e=1/0,t=1/0,n=1/0,i=-1/0,s=-1/0,o=-1/0;const l=r.POSITION?r.POSITION.value:[],f=l&&l.length;for(let A=0;A<f;A+=3){const v=l[A],T=l[A+1],I=l[A+2];e=v<e?v:e,t=T<t?T:t,n=I<n?I:n,i=v>i?v:i,s=T>s?T:s,o=I>o?I:o}return[[e,t,n],[i,s,o]]}function OU(r,e,t){const n=TU(e.value),i=t||DU(e);return{name:r,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:i}}function DU(r){const e={};return"byteOffset"in r&&(e.byteOffset=r.byteOffset.toString(10)),"byteStride"in r&&(e.byteStride=r.byteStride.toString(10)),"normalized"in r&&(e.normalized=r.normalized.toString()),e}class PC extends Array{enqueue(e){return this.push(e)}dequeue(){return this.shift()}}class FU{_values;_settlers;_closed;constructor(){this._values=new PC,this._settlers=new PC,this._closed=!1}
6close(){for(;this._settlers.length>0;)this._settlers.dequeue().resolve({done:!0});this._closed=!0}[Symbol.asyncIterator](){return this}enqueue(e){if(this._closed)throw new Error("Closed");if(this._settlers.length>0){if(this._values.length>0)throw new Error("Illegal internal state");const t=this._settlers.dequeue();e instanceof Error?t.reject(e):t.resolve({value:e})}else this._values.enqueue(e)}next(){if(this._values.length>0){const e=this._values.dequeue();return e instanceof Error?Promise.reject(e):Promise.resolve({value:e})}if(this._closed){if(this._settlers.length>0)throw new Error("Illegal internal state");return Promise.resolve({done:!0})}return new Promise((e,t)=>{this._settlers.enqueue({resolve:e,reject:t})})}}async function Kc(r,e,t,n){let i,s;!Array.isArray(e)&&!q2(e)?(i=[],s=e):(i=e,s=t);const o=T4(s);let l=r;return typeof r=="string"&&(l=await o(r)),ph(r)&&(l=await o(r)),Array.isArray(i)?await Fm(l,i,s):await Fm(l,i,s)}const LU="4.3.3";function I4(r,e){if(!r)throw new Error("loader assertion failed.")}const kU=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),MC=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);MC&&parseFloat(MC[1]);const NU=globalThis.loaders?.parseImageNode,g1=typeof Image<"u",m1=typeof ImageBitmap<"u",UU=!!NU,_1=kU?!0:UU;function zU(r){switch(r){case"auto":return m1||g1||_1;case"imagebitmap":return m1;case"image":return g1;case"data":return _1;default:throw new Error(`@loaders.gl/images: image ${r} not supported in this environment`)}}function VU(){if(m1)return"imagebitmap";if(g1)return"image";if(_1)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function jU(r){const e=HU(r);if(!e)throw new Error("Not an image");return e}function GU(r){switch(jU(r)){case"data":return r;case"image":case"imagebitmap":const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)throw new Error("getImageData");return e.width=r.width,e.height=r.height,t.drawImage(r,0,0),t.getImageData(0,0,r.width,r.height);default:throw new Error("getImageData")}}function HU(r){return typeof ImageBitmap<"u"&&r instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&r instanceof Image?"image":r&&typeof r=="object"&&r.data&&r.width&&r.height?"data":null}const WU=/^data:image\/svg\+xml/,$U=/\.svg((\?|#).*)?$/;function K2(r){return r&&(WU.test(r)||$U.test(r))}function XU(r,e){if(K2(e)){let n=new TextDecoder().decode(r);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(s){throw new Error(s.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return B4(r,e)}function B4(r,e){if(K2(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(r)])}async function P4(r,e,t){const n=XU(r,t),i=self.URL||self.webkitURL,s=typeof n!="string"&&i.createObjectURL(n);try{return await qU(s||n,e)}finally{s&&i.revokeObjectURL(s)}}async function qU(r,e){const t=new Image;return t.src=r,e.image&&e.image.decode&&t.decode?(await t.decode(),t):await new Promise((n,i)=>{try{t.onload=()=>n(t),t.onerror=s=>{const o=s instanceof Error?s.message:"error";i(new Error(o))}}catch(s){i(s)}})}const JU={};let RC=!0;async function KU(r,e,t){let n;K2(t)?n=await P4(r,e,t):n=B4(r,t);const i=e&&e.imagebitmap;return await ZU(n,i)}async function ZU(r,e=null){if((YU(e)||!RC)&&(e=null),e)try{return await createImageBitmap(r,e)}catch(t){console.warn(t),RC=!1}return await createImageBitmap(r)}function YU(r){for(const e in r||JU)return!1;return!0}function QU(r){return!n9(r,"ftyp",4)||(r[8]&96)===0?null:e9(r)}function e9(r){switch(t9(r,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function t9(r,e,t){return String.fromCharCode(...r.slice(e,t))}function r9(r){return[...r].map(e=>e.charCodeAt(0))}function n9(r,e,t=0){const n=r9(e);for(let i=0;i<n.length;++i)if(n[i]!==r[i+t])return!1;return!0}const rc=!1,OA=!0;function M4(r){const e=hg(r);return s9(e)||l9(e)||o9(e)||a9(e)||i9(e)}function i9(r){const e=new Uint8Array(r instanceof DataView?r.buffer:r),t=QU(e);return t?{mimeType:t.mimeType,width:0,height:0}:null}function s9(r){const e=hg(r);return e.byteLength>=24&&e.getUint32(0,rc)===2303741511?{mimeType:"image/png",width:e.getUint32(16,rc),height:e.getUint32(20,rc)}:null}function o9(r){const e=hg(r);return e.byteLength>=10&&e.getUint32(0,rc)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,OA),height:e.getUint16(8,OA)}:null}function a9(r){const e=hg(r);return e.byteLength>=14&&e.getUint16(0,rc)===16973&&e.getUint32(2,OA)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,OA),height:e.getUint32(22,OA)}:null}function l9(r){const e=hg(r);if(!(e.byteLength>=3&&e.getUint16(0,rc)===65496&&e.getUint8(2)===255))return null;const{tableMarkers:n,sofMarkers:i}=c9();let s=2;
6for(;s+9<e.byteLength;){const o=e.getUint16(s,rc);if(i.has(o))return{mimeType:"image/jpeg",height:e.getUint16(s+5,rc),width:e.getUint16(s+7,rc)};if(!n.has(o))return null;s+=2,s+=e.getUint16(s,rc)}return null}function c9(){const r=new Set([65499,65476,65484,65501,65534]);for(let t=65504;t<65520;++t)r.add(t);return{tableMarkers:r,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function hg(r){if(r instanceof DataView)return r;if(ArrayBuffer.isView(r))return new DataView(r.buffer);if(r instanceof ArrayBuffer)return new DataView(r);throw new Error("toDataView")}async function u9(r,e){const{mimeType:t}=M4(r)||{},n=globalThis.loaders?.parseImageNode;return I4(n),await n(r,t)}async function f9(r,e,t){e=e||{};const i=(e.image||{}).type||"auto",{url:s}=t||{},o=h9(i);let l;switch(o){case"imagebitmap":l=await KU(r,e,s);break;case"image":l=await P4(r,e,s);break;case"data":l=await u9(r);break;default:I4(!1)}return i==="data"&&(l=GU(l)),l}function h9(r){switch(r){case"auto":case"data":return VU();default:return zU(r),r}}const d9=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],p9=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],A9={image:{type:"auto",decode:!0}},g9={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:LU,mimeTypes:p9,extensions:d9,parse:f9,tests:[r=>!!M4(new DataView(r))],options:A9},Zr=new wp({id:"deck"});let y1={};function m9(r){y1=r}function Ao(r,e,t,n){Zr.level>0&&y1[r]&&y1[r].call(null,e,t,n)}function _9(r){const e=r[0],t=r[r.length-1];return e==="{"&&t==="}"||e==="["&&t==="]"}const y9={dataType:null,batchType:null,id:"JSON",name:"JSON",module:"",version:"",options:{},extensions:["json","geojson"],mimeTypes:["application/json","application/geo+json"],testText:_9,parseTextSync:JSON.parse};function v9(){const r="9.1.14",e=globalThis.deck&&globalThis.deck.VERSION;if(e&&e!==r)throw new Error(`deck.gl - multiple versions detected: ${e} vs ${r}`);return e||(Zr.log(1,`deck.gl ${r}`)(),globalThis.deck={...globalThis.deck,VERSION:r,version:r,log:Zr,_registerLoggers:m9},Tp([y9,[g9,{imagebitmap:{premultiplyAlpha:"none"}}]])),r}const b9=v9();function Z2(r,e){if(!r)throw new Error(e||"shadertools: assertion failed.")}const iv={number:{type:"number",validate(r,e){return Number.isFinite(r)&&typeof e=="object"&&(e.max===void 0||r<=e.max)&&(e.min===void 0||r>=e.min)}},array:{type:"array",validate(r,e){return Array.isArray(r)||ArrayBuffer.isView(r)}}};function x9(r){const e={};for(const[t,n]of Object.entries(r))e[t]=w9(n);return e}function w9(r){let e=OC(r);if(e!=="object")return{value:r,...iv[e],type:e};if(typeof r=="object")return r?r.type!==void 0?{...r,...iv[r.type],type:r.type}:r.value===void 0?{type:"object",value:r}:(e=OC(r.value),{...r,...iv[e],type:e}):{type:"object",value:null};throw new Error("props")}function OC(r){return Array.isArray(r)||ArrayBuffer.isView(r)?"array":typeof r}const T9=`#ifdef MODULE_LOGDEPTH 7 logdepth_adjustPosition(gl_Position); 8#endif 9`,E9=`#ifdef MODULE_MATERIAL 10 fragColor = material_filterColor(fragColor); 11#endif 12 13#ifdef MODULE_LIGHTING 14 fragColor = lighting_filterColor(fragColor); 15#endif 16 17#ifdef MODULE_FOG 18 fragColor = fog_filterColor(fragColor); 19#endif 20 21#ifdef MODULE_PICKING 22 fragColor = picking_filterHighlightColor(fragColor); 23 fragColor = picking_filterPickingColor(fragColor); 24#endif 25 26#ifdef MODULE_LOGDEPTH 27 logdepth_setFragDepth(); 28#endif 29`,C9={vertex:T9,fragment:E9},DC=/void\s+main\s*\([^)]*\)\s*\{\n?/,FC=/}\n?[^{}]*$/,sv=[],cm="__LUMA_INJECT_DECLARATIONS__";function S9(r){const e={vertex:{},fragment:{}};for(const t in r){let n=r[t];const i=I9(t);typeof n=="string"&&(n={order:0,injection:n}),e[i][t]=n}return e}function I9(r){const e=r.slice(0,2);switch(e){case"vs":return"vertex";case"fs":return"fragment";default:throw new Error(e)}}function km(r,e,t,n=!1){const i=e==="vertex";for(const s in t){const o=t[s];o.sort((f,A)=>f.order-A.order),sv.length=o.length;for(let f=0,A=o.length;f<A;++f)sv[f]=o[f].injection;const l=`${sv.join(` 30`)} 31`;switch(s){case"vs:#decl":i&&(r=r.replace(cm,l));break;case"vs:#main-start":i&&(r=r.replace(DC,f=>f+l));break;case"vs:#main-end":i&&(r=r.replace(FC,f=>l+f));break;case"fs:#decl":i||(r=r.replace(cm,l));break;case"fs:#main-start":i||(r=r.replace(DC,f=>f+l));break;case"fs:#main-end":i||(r=r.replace(FC,f=>l+f));break;default:r=r.replace(s,f=>f+l)}}return r=r.replace(cm,""),n&&(r=r.replace(/\}\s*$/,s=>s+C9[e])),r}function Nm(r){r.map(e=>R4(e))}function R4(r){if(r.instance)return;Nm(r.dependencies||[]);const{propTypes:e={},deprecations:t=[],inject:n={}}=r,i={normalizedInjections:S9(n),parsedDeprecations:B9(t)};e&&(i.propValidators=x9(e)),r.instance=i;let s={};e&&(s=Object.entries(e).reduce((o,[l,f])=>{const A=f?.value;return A&&(o[l]=A),o},{})),r.defaultUniforms={...r.defaultUniforms,...s}}function O4(r,e,t){r.deprecations?.forEach(n=>
vendor: 4,739 bytes, lines 31-63
31{n.regex?.test(e)&&(n.deprecated?t.deprecated(n.old,n.new)():t.removed(n.old,n.new)())})}function B9(r){return r.forEach(e=>{switch(e.type){case"function":e.regex=new RegExp(`\\b${e.old}\\(`);break;default:e.regex=new RegExp(`${e.type} ${e.old};`)}}),r}function Y2(r){Nm(r);const e={},t={};D4({modules:r,level:0,moduleMap:e,moduleDepth:t});const n=Object.keys(t).sort((i,s)=>t[s]-t[i]).map(i=>e[i]);return Nm(n),n}function D4(r){const{modules:e,level:t,moduleMap:n,moduleDepth:i}=r;if(t>=5)throw new Error("Possible loop in shader dependency graph");for(const s of e)n[s.name]=s,(i[s.name]===void 0||i[s.name]<t)&&(i[s.name]=t);for(const s of e)s.dependencies&&D4({modules:s.dependencies,level:t+1,moduleMap:n,moduleDepth:i})}function P9(r){switch(r?.gpu.toLowerCase()){case"apple":return`#define APPLE_GPU 32// Apple optimizes away the calculation necessary for emulated fp64 33#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1 34#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1 35// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow 36#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1 37`;case"nvidia":return`#define NVIDIA_GPU 38// Nvidia optimizes away the calculation necessary for emulated fp64 39#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1 40`;case"intel":return`#define INTEL_GPU 41// Intel optimizes away the calculation necessary for emulated fp64 42#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1 43// Intel's built-in 'tan' function doesn't have acceptable precision 44#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1 45// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow 46#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1 47`;case"amd":return`#define AMD_GPU 48`;default:return`#define DEFAULT_GPU 49// Prevent driver from optimizing away the calculation necessary for emulated fp64 50#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1 51// Headless Chrome's software shader 'tan' function doesn't have acceptable precision 52#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1 53// If the GPU doesn't have full 32 bits precision, will causes overflow 54#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1 55`}}function M9(r,e){if(Number(r.match(/^#version[ \t]+(\d+)/m)?.[1]||100)!==300)throw new Error("luma.gl v9 only supports GLSL 3.00 shader sources");switch(e){case"vertex":return r=LC(r,R9),r;case"fragment":return r=LC(r,O9),r;default:throw new Error(e)}}const F4=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es 56`],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],R9=[...F4,[v1("attribute"),"in $1"],[v1("varying"),"out $1"]],O9=[...F4,[v1("varying"),"in $1"]];function LC(r,e){for(const[t,n]of e)r=r.replace(t,n);return r}function v1(r){return new RegExp(`\\b${r}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`,"g")}function L4(r,e){let t="";for(const n in r){const i=r[n];if(t+=`void ${i.signature} { 57`,i.header&&(t+=` ${i.header}`),e[n]){const s=e[n];s.sort((o,l)=>o.order-l.order);for(const o of s)t+=` ${o.injection} 58`}i.footer&&(t+=` ${i.footer}`),t+=`} 59`}return t}function k4(r){const e={vertex:{},fragment:{}};for(const t of r){let n,i;typeof t!="string"?(n=t,i=n.hook):(n={},i=t),i=i.trim();const[s,o]=i.split(":"),l=i.replace(/\(.+/,""),f=Object.assign(n,{signature:o});switch(s){case"vs":e.vertex[l]=f;break;case"fs":e.fragment[l]=f;break;default:throw new Error(s)}}return e}function D9(r,e){return{name:F9(r,e),language:"glsl",version:L9(r)}}function F9(r,e="unnamed"){const n=/#define[^\S\r\n]*SHADER_NAME[^\S\r\n]*([A-Za-z0-9_-]+)\s*/.exec(r);return n?n[1]:e}function L9(r){let e=100;const t=r.match(/[^\s]+/g);if(t&&t.length>=2&&t[0]==="#version"){const n=parseInt(t[1],10);Number.isFinite(n)&&(e=n)}if(e!==100&&e!==300)throw new Error(`Invalid GLSL version ${e}`);return e}const N4=` 60 61${cm} 62`,k9=`precision highp float; 63`;function N9(r){const e=Y2(r.modules||[]);return{source:z9(r.platformInfo,{...r,source:r.source,stage:"vertex",modules:e}),getUniforms:U4(e)}}function U9(r){const{vs:e,fs:t}=r,n=Y2(r.modules||[]);return{vs:kC(r.platformInfo,{...r,source:e,stage:"vertex",modules:n}),fs:kC(r.platformInfo,{...r,source:t,stage:"fragment",modules:n}),getUniforms:U4(n)}}function z9(r,e){const{source:t,stage:n,modules:i,hookFunctions:s=[],inject:o={},log:l}=e;Z2(typeof t=="string","shader source must be a string");const f=t;let A="";const v=k4(s),T={},I={},F={};for(const U in o){const $=typeof o[U]=="string"?{injection:o[U],order:0}:o[U],V=/^(v|f)s:(#)?([\w-]+)$/.exec(U);if(V){const G=V[2],X=V[3];G?X==="decl"?I[U]=[$]:F[U]=[$]:T[U]=[$]}else F[U]=[$]}const N=i;for(const U of N){l&&O4(U,f,l);const $=z4(U,"wgsl");A+=$;const V=U.injections?.[n]||{};for(const G in V){const X=/^(v|f)s:#([\w-]+)$/.exec(G);if(X){const K=X[2]==="decl"?I:F;
63K[G]=K[G]||[],K[G].push(V[G])}else T[G]=T[G]||[],T[G].push(V[G])}}return A+=N4,A=km(A,n,I),A+=L4(v[n],T),A+=f,A=km(A,n,F),A}function kC(r,e){const{id:t,source:n,stage:i,language:s="glsl",modules:o,defines:l={},hookFunctions:f=[],inject:A={},prologue:v=!0,log:T}=e;Z2(typeof n=="string","shader source must be a string");const I=s==="glsl"?D9(n).version:-1,F=r.shaderLanguageVersion,N=I===100?"#version 100":"#version 300 es",$=n.split(` 64`).slice(1).join(` 65`),V={};o.forEach(Ee=>{Object.assign(V,Ee.defines)}),Object.assign(V,l);let G="";switch(s){case"wgsl":break;case"glsl":G=v?`${N} 66 67// ----- PROLOGUE ------------------------- 68${V9({id:t,source:n,stage:i})} 69${`#define SHADER_TYPE_${i.toUpperCase()}`} 70 71${P9(r)} 72${i==="fragment"?k9:""} 73 74// ----- APPLICATION DEFINES ------------------------- 75 76${j9(V)} 77 78`:`${N} 79`;break}const X=k4(f),ue={},K={},se={};for(const Ee in A){const Ue=typeof A[Ee]=="string"?{injection:A[Ee],order:0}:A[Ee],de=/^(v|f)s:(#)?([\w-]+)$/.exec(Ee);if(de){const me=de[2],pe=de[3];me?pe==="decl"?K[Ee]=[Ue]:se[Ee]=[Ue]:ue[Ee]=[Ue]}else se[Ee]=[Ue]}for(const Ee of o){T&&O4(Ee,$,T);const Ue=z4(Ee,i);G+=Ue;const de=Ee.instance?.normalizedInjections[i]||{};for(const me in de){const pe=/^(v|f)s:#([\w-]+)$/.exec(me);if(pe){const te=pe[2]==="decl"?K:se;te[me]=te[me]||[],te[me].push(de[me])}else ue[me]=ue[me]||[],ue[me].push(de[me])}}return G+="// ----- MAIN SHADER SOURCE -------------------------",G+=N4,G=km(G,i,K),G+=L4(X[i],ue),G+=$,G=km(G,i,se),s==="glsl"&&I!==F&&(G=M9(G,i)),G.trim()}function U4(r){return function(t){const n={};for(const i of r){const s=i.getUniforms?.(t,n);Object.assign(n,s)}return n}}function V9(r){const{id:e,source:t,stage:n}=r;return e&&t.indexOf("SHADER_NAME")===-1?` 80#define SHADER_NAME ${e}_${n}`:""}function j9(r={}){let e="";for(const t in r){const n=r[t];(n||Number.isFinite(n))&&(e+=`#define ${t.toUpperCase()} ${r[t]} 81`)}return e}function z4(r,e){let t;switch(e){case"vertex":t=r.vs||"";break;case"fragment":t=r.fs||"";break;case"wgsl":t=r.source||"";break;default:Z2(!1)}if(!r.name)throw new Error("Shader module must have a name");const n=r.name.toUpperCase().replace(/[^0-9a-z]/gi,"_");let i=`// ----- MODULE ${r.name} --------------- 82 83`;return e!=="wgsl"&&(i+=`#define MODULE_${n} 84`),i+=`${t} 85`,i}const G9=/^\s*\#\s*ifdef\s*([a-zA-Z_]+)\s*$/,H9=/^\s*\#\s*endif\s*$/;function W9(r,e){const t=r.split(` 86`),n=[];let i=!0,s=null;for(const o of t){const l=o.match(G9),f=o.match(H9);l?(s=l[1],i=!!e?.defines?.[s]):f?i=!0:i&&n.push(o)}return n.join(` 87`)}class Wf{static defaultShaderAssembler;_hookFunctions=[];_defaultModules=[];static getDefaultShaderAssembler(){return Wf.defaultShaderAssembler=Wf.defaultShaderAssembler||new Wf,Wf.defaultShaderAssembler}addDefaultModule(e){this._defaultModules.find(t=>t.name===(typeof e=="string"?e:e.name))||this._defaultModules.push(e)}removeDefaultModule(e){const t=typeof e=="string"?e:e.name;this._defaultModules=this._defaultModules.filter(n=>n.name!==t)}addShaderHook(e,t){t&&(e=Object.assign(t,{hook:e})),this._hookFunctions.push(e)}assembleWGSLShader(e){const t=this._getModuleList(e.modules),n=this._hookFunctions,{source:i,getUniforms:s}=N9({...e,source:e.source,modules:t,hookFunctions:n});return{source:e.platformInfo.shaderLanguage==="wgsl"?W9(i):i,getUniforms:s,modules:t}}assembleGLSLShaderPair(e){const t=this._getModuleList(e.modules),n=this._hookFunctions;return{...U9({...e,vs:e.vs,fs:e.fs,modules:t,hookFunctions:n}),modules:t}}_getModuleList(e=[]){const t=new Array(this._defaultModules.length+e.length),n={};let i=0;for(let s=0,o=this._defaultModules.length;s<o;++s){const l=this._defaultModules[s],f=l.name;t[i++]=l,n[f]=!0}for(let s=0,o=e.length;s<o;++s){const l=e[s],f=l.name;n[f]||(t[i++]=l,n[f]=!0)}return t.length=i,Nm(t),t}}const $9=`out vec4 transform_output; 88void main() { 89 transform_output = vec4(0); 90}`,X9=`#version 300 es 91${$9}`;function V4(r){const{input:e,inputChannels:t,output:n}=r||{};if(!e)return X9;if(!t)throw new Error("inputChannels");const i=q9(t),s=J9(e,t);return`#version 300 es 92in ${i} ${e}; 93out vec4 ${n}; 94void main() { 95 ${n} = ${s}; 96}`}function q9(r){switch(r){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error(`invalid channels: ${r}`)}}function J9(r,e){switch(e){case 1:return`vec4(${r}, 0.0, 0.0, 1.0)`;case 2:return`vec4(${r}, 0.0, 1.0)`;case 3:return`vec4(${r}, 1.0)`;case 4:return r;default:throw new Error(`invalid channels: ${e}`)}}class K9{stats=new Map;getStats(e){return this.get(e)}get(e){return this.stats.has(e)||this.stats.set(e,new hh({id:e})),this.stats.get(e)}}const j4=new K9,Yt=new wp({id:"luma.gl"}),ov={};function S_(r="id"){ov[r]=ov[r]||1;const e=ov[r]++;return`${r}-${e}`}let Ai=class{static defaultProps={id:"undefined",handle:void 0,userData:void 0};toString(){return`${this[Symbol.toStringTag]||this.constructor.name}:"${this.id}"`}id;props;userData={};_device;destroyed=!1;allocatedBytes=0;_attachedResources=new Set;constructor(e,t,n){if(!e)throw new Error("no device");this._device=e,this.props=Z9(t,n);const i=this.props.id!=="undefined"?this.props.id:S_(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}destroy(){this.destroyResource()}delete(){return this.destroy(),this}getProps(){return this.props}attachResource(e){this._attachedResources.add(e)}detachResource(e){this._attachedResources.delete(e)}destroyAttachedResource(e){this._attachedResources.delete(e)&&e.destroy()}destroyAttachedResources(){for(const e of Object.values(this._attachedResources))e.destroy();this._attachedResources=new Set}destroyResource(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0}removeStats(){const e=this._device.statsManager.getStats("Resource Counts"),t=this[Symbol.toStringTag];e.get(`${t}s Active`).decrementCount()}trackAllocatedMemory(e,t=this[Symbol.toStringTag]){const n=this._device.statsManager.getStats("Resource Counts");n.get("GPU Memory").addCount(e),n.get(`${t} Memory`).addCount(e),this.allocatedBytes=e}trackDeallocatedMemory(e=this[Symbol.toStringTag]){const t=this._device.statsManager.getStats("Resource Counts");t.get("GPU Memory").subtractCount(this.allocatedBytes),t.get(`${e} Memory`).subtractCount(this.allocatedBytes),this.allocatedBytes=0}addStats(){const e=this._device.statsManager.getStats("Resource Counts"),t=this[Symbol.toStringTag];e.get("Resources Created").incrementCount(),e.get(`${t}s Created`).incrementCount(),e.get(`${t}s Active`).incrementCount()}};function Z9(r,e){const t={...e};for(const n in r)r[n]!==void 0&&(t[n]=r[n]);return t}let Hi=class um extends Ai{static defaultProps={...Ai.defaultProps,usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1};static MAP_READ=1;static MAP_WRITE=2;static COPY_SRC=4;static COPY_DST=8;static INDEX=16;static VERTEX=32;static UNIFORM=64;static STORAGE=128;static INDIRECT=256;static QUERY_RESOLVE=512;get[Symbol.toStringTag](){return"Buffer"}usage;indexType;updateTimestamp;constructor(e,t){const n={...t};(t.usage||0)&um.INDEX&&!t.indexType&&(t.data instanceof Uint32Array?n.indexType="uint32":t.data instanceof Uint16Array&&(n.indexType="uint16")),delete n.data,super(e,n,um.defaultProps),this.usage=n.usage||0,this.indexType=n.indexType,this.updateTimestamp=e.incrementTimestamp()}clone(e){return this.device.createBuffer({...this.props,...e})}
96readSyncWebGL(e,t){throw new Error("not implemented")}static DEBUG_DATA_MAX_LENGTH=32;debugData=new ArrayBuffer(0);_setDebugData(e,t,n){const i=ArrayBuffer.isView(e)?e.buffer:e,s=Math.min(e?e.byteLength:n,um.DEBUG_DATA_MAX_LENGTH);i===null?this.debugData=new ArrayBuffer(s):t===0&&n===i.byteLength?this.debugData=i.slice(0,s):this.debugData=i.slice(t,t+s)}};function G4(r){const e=NC[r],t=Y9(e),n=r.includes("norm"),i=!n&&!r.startsWith("float"),s=r.startsWith("s");return{dataType:NC[r],byteLength:t,integer:i,signed:s,normalized:n}}function Y9(r){return Q9[r]}const NC={uint8:"uint8",sint8:"sint8",unorm8:"uint8",snorm8:"sint8",uint16:"uint16",sint16:"sint16",unorm16:"uint16",snorm16:"sint16",float16:"float16",float32:"float32",uint32:"uint32",sint32:"sint32"},Q9={uint8:1,sint8:1,uint16:2,sint16:2,float16:2,float32:4,uint32:4,sint32:4},co="texture-compression-bc",pi="texture-compression-astc",Zl="texture-compression-etc2",ez="texture-compression-etc1-webgl",f0="texture-compression-pvrtc-webgl",av="texture-compression-atc-webgl",h0="float32-renderable-webgl",lv="float16-renderable-webgl",tz="rgb9e5ufloat-renderable-webgl",cv="snorm8-renderable-webgl",fA="norm16-renderable-webgl",uv="snorm16-renderable-webgl",d0="float32-filterable",UC="float16-filterable-webgl";function H4(r){const e=rz[r];if(!e)throw new Error(`Unsupported texture format ${r}`);return e}const rz={r8unorm:{},r8snorm:{render:cv},r8uint:{},r8sint:{},rg8unorm:{},rg8snorm:{render:cv},rg8uint:{},rg8sint:{},r16uint:{},r16sint:{},r16float:{render:lv,filter:"float16-filterable-webgl"},"r16unorm-webgl":{f:fA},"r16snorm-webgl":{f:uv},"rgba4unorm-webgl":{channels:"rgba",bitsPerChannel:[4,4,4,4],packed:!0},"rgb565unorm-webgl":{channels:"rgb",bitsPerChannel:[5,6,5,0],packed:!0},"rgb5a1unorm-webgl":{channels:"rgba",bitsPerChannel:[5,5,5,1],packed:!0},"rgb8unorm-webgl":{},"rgb8snorm-webgl":{},rgba8unorm:{},"rgba8unorm-srgb":{},rgba8snorm:{render:cv},rgba8uint:{},rgba8sint:{},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{},rg16sint:{},rg16float:{render:lv,filter:UC},"rg16unorm-webgl":{render:fA},"rg16snorm-webgl":{render:uv},r32uint:{},r32sint:{},r32float:{render:h0,filter:d0},rgb9e5ufloat:{channels:"rgb",packed:!0,render:tz},rg11b10ufloat:{channels:"rgb",bitsPerChannel:[11,11,10,0],packed:!0,p:1,render:h0},rgb10a2unorm:{channels:"rgba",bitsPerChannel:[10,10,10,2],packed:!0,p:1},"rgb10a2uint-webgl":{channels:"rgba",bitsPerChannel:[10,10,10,2],packed:!0,p:1,wgpu:!1},"rgb16unorm-webgl":{f:fA},"rgb16snorm-webgl":{f:fA},rg32uint:{},rg32sint:{},rg32float:{render:!1,filter:d0},rgba16uint:{},rgba16sint:{},rgba16float:{render:lv,filter:UC},"rgba16unorm-webgl":{render:fA},"rgba16snorm-webgl":{render:uv},"rgb32float-webgl":{render:h0,filter:d0},rgba32uint:{},rgba32sint:{},rgba32float:{render:h0,filter:d0},stencil8:{attachment:"stencil",bitsPerChannel:[8,0,0,0],dataType:"uint8"},depth16unorm:{attachment:"depth",bitsPerChannel:[16,0,0,0],dataType:"uint16"},depth24plus:{attachment:"depth",bitsPerChannel:[24,0,0,0],dataType:"uint32"},depth32float:{attachment:"depth",bitsPerChannel:[32,0,0,0],dataType:"float32"},"depth24plus-stencil8":{attachment:"depth-stencil",bitsPerChannel:[24,8,0,0],packed:!0},"depth32float-stencil8":{attachment:"depth-stencil",bitsPerChannel:[32,8,0,0],packed:!0},"bc1-rgb-unorm-webgl":{f:co},"bc1-rgb-unorm-srgb-webgl":{f:co},"bc1-rgba-unorm":{f:co},"bc1-rgba-unorm-srgb":{f:co},"bc2-rgba-unorm":{f:co},"bc2-rgba-unorm-srgb":{f:co},"bc3-rgba-unorm":{f:co},"bc3-rgba-unorm-srgb":{f:co},"bc4-r-unorm":{f:co},"bc4-r-snorm":{f:co},"bc5-rg-unorm":{f:co},"bc5-rg-snorm":{f:co},"bc6h-rgb-ufloat":{f:co},"bc6h-rgb-float":{f:co},"bc7-rgba-unorm":{f:co},"bc7-rgba-unorm-srgb":{f:co},"etc2-rgb8unorm":{f:Zl},"etc2-rgb8unorm-srgb":{f:Zl},"etc2-rgb8a1unorm":{f:Zl},"etc2-rgb8a1unorm-srgb":{f:Zl},"etc2-rgba8unorm":{f:Zl},"etc2-rgba8unorm-srgb":{f:Zl},"eac-r11unorm":{f:Zl},"eac-r11snorm":{f:Zl},"eac-rg11unorm":{f:Zl},"eac-rg11snorm":{f:Zl},"astc-4x4-unorm":{f:pi},"astc-4x4-unorm-srgb":{f:pi},"astc-5x4-unorm":{f:pi},"astc-5x4-unorm-srgb":{f:pi},"astc-5x5-unorm":{f:pi},"astc-5x5-unorm-srgb":{f:pi},"astc-6x5-unorm":{f:pi},"astc-6x5-unorm-srgb":{f:pi},"astc-6x6-unorm":{f:pi},"astc-6x6-unorm-srgb":{f:pi},"astc-8x5-unorm":{f:pi},"astc-8x5-unorm-srgb":{f:pi},"astc-8x6-unorm":{f:pi},"astc-8x6-unorm-srgb":{f:pi},"astc-8x8-unorm":{f:pi},"astc-8x8-unorm-srgb":{f:pi},"astc-10x5-unorm":{f:pi},"astc-10x5-unorm-srgb":{f:pi},"astc-10x6-unorm":{f:pi},"astc-10x6-unorm-srgb":{f:pi},"astc-10x8-unorm":{f:pi},"astc-10x8-unorm-srgb":{f:pi},"astc-10x10-unorm":{f:pi},"astc-10x10-unorm-srgb":{f:pi},"astc-12x10-unorm":{f:pi},"astc-12x10-unorm-srgb":{f:pi},"astc-12x12-unorm":{f:pi},"astc-12x12-unorm-srgb":{f:pi},"pvrtc-rgb4unorm-webgl":{f:f0},"pvrtc-rgba4unorm-webgl":{f:f0},"pvrtc-rbg2unorm-webgl":{f:f0},"pvrtc-rgba2unorm-webgl":{f:f0},"etc1-rbg-unorm-webgl":{f:ez},"atc-rgb-unorm-webgl":{f:av},"atc-rgba-unorm-webgl":{f:av},"atc-rgbai-unorm-webgl":{f:av}},nz=["bc1","bc2","bc3","bc4","bc5","bc6","bc7","etc1","etc2","eac","atc","astc","pvrtc"],iz=/^(r|rg|rgb|rgba|bgra)([0-9]*)([a-z]*)(-srgb)?(-webgl)?$/;function W4(r){return nz.some(e=>r.startsWith(e))}function Q2(r){let e=sz(r);if(W4(r)){e.channels="rgb",e.components=3,e.bytesPerPixel=1,e.srgb=!1,e.compressed=!0;const n=oz(r);n&&(e.blockWidth=n.blockWidth,e.blockHeight=n.blockHeight)}const t=iz.exec(r);if(t){const[,n,i,s,o,l]=t,f=`${s}${i}`,A=G4(f),v=A.byteLength*8,T=n.length,I=[v,T>=2?v:0,T>=3?v:0,T>=4?v:0];e={format:r,attachment:e.attachment,dataType:A.dataType,components:T,channels:n,integer:A.integer,signed:A.signed,normalized:A.normalized,bitsPerChannel:I,bytesPerPixel:A.byteLength*n.length,packed:e.packed,srgb:e.srgb},l==="-webgl"&&(e.webgl=!0),o==="-srgb"&&(e.srgb=!0)}return r.endsWith("-webgl")&&(e.webgl=!0),r.endsWith("-srgb")&&(e.srgb=!0),e}function sz(r){const e=H4(r),t=e.bytesPerPixel||1,n=e.bitsPerChannel||[8,8,8,8];return delete e.bitsPerChannel,delete e.bytesPerPixel,delete e.f,delete e.render,delete e.filter,delete e.blend,delete e.store,{...e,format:r,attachment:e.attachment||"color",channels:e.channels||"r",components:e.components||e.channels?.length||1,bytesPerPixel:t,bitsPerChannel:n,dataType:e.dataType||"uint8",srgb:e.srgb??!1,packed:e.packed??!1,webgl:e.webgl??!1,integer:e.integer??!1,signed:e.signed??!1,normalized:e.normalized??!1,compressed:e.compressed??!1}}function oz(r){const t=/.*-(\d+)x(\d+)-.*/.exec(r);if(t){const[,n,i]=t;return{blockWidth:Number(n),blockHeight:Number(i)}}return null}function az(r){const e=H4(r),t={format:r,create:e.f??!0,render:e.render??!0,filter:e.filter??!0,blend:e.blend??!0,store:e.store??!0},n=Q2(r),i=r.startsWith("depth")||r.startsWith("stencil"),s=n?.signed,o=n?.integer,l=n?.webgl;return t.render&&=!s,t.filter&&=!i&&!s&&!o&&!l,t}class lz{}class cz{features;disabledFeatures;constructor(e=[],t){this.features=new Set(e),this.disabledFeatures=t||{}}*[Symbol.iterator](){yield*this.features}has(e){return!this.disabledFeatures?.[e]&&this.features.has(e)}}class Hu{static defaultProps={id:null,powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1,createCanvasContext:void 0,onError:e=>Yt.error(e.message)(),_reuseDevices:!1,_requestMaxLimits:!0,_factoryDestroyPolicy:"unused",_initializeFeatures:!0,_disabledFeatures:{"compilation-status-async-webgl":!0},_resourceDefaults:{},webgl:{},debug:Yt.get("debug")||void 0,debugShaders:Yt.get("debug-shaders")||void 0,debugFramebuffers:!!Yt.get("debug-framebuffers"),debugWebGL:!!Yt.get("debug-webgl"),debugSpectorJS:void 0,debugSpectorJSUrl:void 0,_handle:void 0};get[Symbol.toStringTag](){return"Device"}constructor(e){this.props={...Hu.defaultProps,...e},this.id=this.props.id||S_(this[Symbol.toStringTag].toLowerCase())}id;props;userData={};statsManager=j4;timestamp=0;_reused=!1;_lumaData={};getTextureFormatCapabilities(e){const t=az(e),n=o=>
96(typeof o=="string"?this.features.has(o):o)??!0,i=n(t.create),s={format:e,create:i,render:i&&n(t.render),filter:i&&n(t.filter),blend:i&&n(t.blend),store:i&&n(t.store)};return this._getDeviceSpecificTextureFormatCapabilities(s)}isTextureFormatSupported(e,t){return this.getTextureFormatCapabilities(e).create}isTextureFormatFilterable(e){return this.getTextureFormatCapabilities(e).filter}isTextureFormatRenderable(e){return this.getTextureFormatCapabilities(e).render}isTextureFormatCompressed(e){return W4(e)}loseDevice(){return!1}reportError(e){this.props.onError(e)}getDefaultCanvasContext(){if(!this.canvasContext)throw new Error("Device has no default CanvasContext. See props.createCanvasContext");return this.canvasContext}createCommandEncoder(e={}){throw new Error("not implemented")}incrementTimestamp(){return this.timestamp++}onError(e){this.props.onError(e)}getCanvasContext(){return this.getDefaultCanvasContext()}readPixelsToArrayWebGL(e,t){throw new Error("not implemented")}readPixelsToBufferWebGL(e,t){throw new Error("not implemented")}setParametersWebGL(e){throw new Error("not implemented")}getParametersWebGL(e){throw new Error("not implemented")}withParametersWebGL(e,t){throw new Error("not implemented")}clearWebGL(e){throw new Error("not implemented")}resetWebGL(){throw new Error("not implemented")}static _getCanvasContextProps(e){return e.createCanvasContext===!0?{}:e.createCanvasContext}_normalizeBufferProps(e){(e instanceof ArrayBuffer||ArrayBuffer.isView(e))&&(e={data:e});const t={...e};return(e.usage||0)&Hi.INDEX&&!e.indexType&&(e.data instanceof Uint32Array?t.indexType="uint32":e.data instanceof Uint16Array?t.indexType="uint16":Yt.warn("indices buffer content must be of integer type")()),t}}const uz=fh()&&typeof document<"u",fz=()=>uz&&document.readyState==="complete",hz="set luma.log.level=1 (or higher) to trace rendering",zC="No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.";class Ld{static defaultProps={...Hu.defaultProps,type:"best-available",adapters:void 0,waitForPageLoad:!0};static pageLoaded=dz().then(()=>{Yt.probe(2,"DOM is loaded")()});stats=j4;log=Yt;VERSION="9.1.9";spector;preregisteredAdapters=new Map;constructor(){if(globalThis.luma){if(globalThis.luma.VERSION!==this.VERSION)throw Yt.error(`Found luma.gl ${globalThis.luma.VERSION} while initialzing ${this.VERSION}`)(),Yt.error("'yarn why @luma.gl/core' can help identify the source of the conflict")(),new Error("luma.gl - multiple versions detected: see console log");Yt.error("This version of luma.gl has already been initialized")()}Yt.log(1,`${this.VERSION} - ${hz}`)(),globalThis.luma=this}registerAdapters(e){for(const t of e)this.preregisteredAdapters.set(t.type,t)}getSupportedAdapters(e=[]){const t=this.getAdapterMap(e);return Array.from(t).map(([,n])=>n).filter(n=>n.isSupported?.()).map(n=>n.type)}getBestAvailableAdapter(e=[]){const t=this.getAdapterMap(e);return t.get("webgpu")?.isSupported?.()?"webgpu":t.get("webgl")?.isSupported?.()?"webgl":null}setDefaultDeviceProps(e){Object.assign(Ld.defaultProps,e)}async createDevice(e={}){e={...Ld.defaultProps,...e},e.waitForPageLoad&&await Ld.pageLoaded;const t=this.getAdapterMap(e.adapters);let n=e.type||"";n==="best-available"&&(n=this.getBestAvailableAdapter(e.adapters)||n);const o=await(this.getAdapterMap(e.adapters)||t).get(n)?.create?.(e);if(o)return o;throw new Error(zC)}async attachDevice(e){const t=this.getAdapterMap(e.adapters);let n="";e.handle instanceof WebGL2RenderingContext&&(n="webgl"),e.createCanvasContext&&await Ld.pageLoaded,e.handle===null&&(n="unknown");const s=await t.get(n)?.attach?.(null);if(s)return s;throw new Error(zC)}enforceWebGL2(e=!0,t=[]){const i=this.getAdapterMap(t).get("webgl");i||Yt.warn("enforceWebGL2: webgl adapter not found")(),i?.enforceWebGL2?.(e)}getAdapterMap(e=[]){const t=new Map(this.preregisteredAdapters);for(const n of e)t.set(n.type,n);return t}registerDevices(e){Yt.warn("luma.registerDevices() is deprecated, use luma.registerAdapters() instead");for(const t of e){const n=t.adapter;n&&this.preregisteredAdapters.set(n.type,n)}}}const b1=new Ld;function dz(){return fz()||typeof window>"u"?Promise.resolve():new Promise(r=>{window.addEventListener("load",()=>r())})}class pz{}class ex{static defaultProps={canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,alphaMode:"opaque",colorSpace:"srgb"};id;props;canvas;htmlCanvas;offscreenCanvas;type;width=1;height=1;resizeObserver;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};toString(){return`${this[Symbol.toStringTag]}(${this.id})`}constructor(e){if(this.props={...ex.defaultProps,...e},e=this.props,!fh()){this.id="node-canvas-context",this.type="node",this.width=this.props.width,this.height=this.props.height,this.canvas=null;return}if(e.canvas)typeof e.canvas=="string"?this.canvas=gz(e.canvas):this.canvas=e.canvas;else{const t=mz(e),n=Az(e?.container||null);n.insertBefore(t,n.firstChild),this.canvas=t,e?.visible||(this.canvas.style.visibility="hidden")}this.canvas instanceof HTMLCanvasElement?(this.id=this.canvas.id,this.type="html-canvas",this.htmlCanvas=this.canvas):(this.id="offscreen-canvas",this.type="offscreen-canvas",this.offscreenCanvas=this.canvas),this.canvas instanceof HTMLCanvasElement&&e.autoResize&&(this.resizeObserver=new ResizeObserver(t=>{for(const n of t)n.target===this.canvas&&this.update()}),this.resizeObserver.observe(this.canvas))}getDevicePixelRatio(e){return typeof OffscreenCanvas<"u"&&this.canvas instanceof OffscreenCanvas||(e=e===void 0?this.props.useDevicePixels:e,!e||e<=0)?1:e===!0?typeof window<"u"&&window.devicePixelRatio||1:e}getPixelSize(){switch(this.type){case"node":return[this.width,this.height];case"offscreen-canvas":return[this.canvas.width,this.canvas.height];case"html-canvas":const e=this.getDevicePixelRatio(),t=this.canvas;return t.parentElement?[t.clientWidth*e,t.clientHeight*e]:[this.canvas.width,this.canvas.height];
96default:throw new Error(this.type)}}getAspect(){const[e,t]=this.getPixelSize();return e/t}cssToDeviceRatio(){try{const[e]=this.getDrawingBufferSize(),t=this._canvasSizeInfo.clientWidth||this.htmlCanvas?.clientWidth;return t?e/t:1}catch{return 1}}cssToDevicePixels(e,t=!0){const n=this.cssToDeviceRatio(),[i,s]=this.getDrawingBufferSize();return _z(e,n,i,s,t)}setDevicePixelRatio(e,t={}){if(!this.htmlCanvas)return;let n="width"in t?t.width:this.htmlCanvas.clientWidth,i="height"in t?t.height:this.htmlCanvas.clientHeight;(!n||!i)&&(Yt.log(1,"Canvas clientWidth/clientHeight is 0")(),e=1,n=this.htmlCanvas.width||1,i=this.htmlCanvas.height||1);const s=this._canvasSizeInfo;if(s.clientWidth!==n||s.clientHeight!==i||s.devicePixelRatio!==e){let o=e;const l=Math.floor(n*o),f=Math.floor(i*o);if(this.htmlCanvas.width=l,this.htmlCanvas.height=f,this.device.gl){const[v,T]=this.getDrawingBufferSize();(v!==l||T!==f)&&(o=Math.min(v/n,T/i),this.htmlCanvas.width=Math.floor(n*o),this.htmlCanvas.height=Math.floor(i*o),Yt.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=n,this._canvasSizeInfo.clientHeight=i,this._canvasSizeInfo.devicePixelRatio=e}}}getDrawingBufferSize(){const e=this.device.gl;return e?[e.drawingBufferWidth,e.drawingBufferHeight]:this.getPixelSize()}_setAutoCreatedCanvasId(e){this.htmlCanvas?.id==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=e)}}function Az(r){if(typeof r=="string"){const e=document.getElementById(r);if(!e)throw new Error(`${r} is not an HTML element`);return e}else if(r)return r;return document.body}function gz(r){const e=document.getElementById(r);if(!(e instanceof HTMLCanvasElement))throw new Error("Object is not a canvas element");return e}function mz(r){const{width:e,height:t}=r,n=document.createElement("canvas");return n.id=S_("lumagl-auto-created-canvas"),n.width=e||1,n.height=t||1,n.style.width=Number.isFinite(e)?`${e}px`:"100%",n.style.height=Number.isFinite(t)?`${t}px`:"100%",n}function _z(r,e,t,n,i){const s=r,o=VC(s[0],e,t);let l=jC(s[1],e,n,i),f=VC(s[0]+1,e,t);const A=f===t-1?f:f-1;f=jC(s[1]+1,e,n,i);let v;return i?(f=f===0?f:f+1,v=l,l=f):v=f===n-1?f:f-1,{x:o,y:l,width:Math.max(A-o+1,1),height:Math.max(v-l+1,1)}}function VC(r,e,t){return Math.min(Math.round(r*e),t-1)}function jC(r,e,t,n){return n?Math.max(0,t-1-Math.round(r*e)):Math.min(Math.round(r*e),t-1)}class oi extends Ai{static COPY_SRC=1;static COPY_DST=2;static TEXTURE=4;static STORAGE=8;static RENDER_ATTACHMENT=16;static CubeFaces=["+X","-X","+Y","-Y","+Z","-Z"];static defaultProps={...Ai.defaultProps,data:null,dimension:"2d",format:"rgba8unorm",width:void 0,height:void 0,depth:1,mipmaps:!1,compressed:!1,usage:0,mipLevels:void 0,samples:void 0,sampler:{},view:void 0,flipY:void 0};get[Symbol.toStringTag](){return"Texture"}toString(){return`Texture(${this.id},${this.format},${this.width}x${this.height})`}dimension;format;width;height;depth;mipLevels;updateTimestamp;constructor(e,t){if(t=oi.normalizeProps(e,t),super(e,t,oi.defaultProps),this.dimension=this.props.dimension,this.format=this.props.format,this.width=this.props.width,this.height=this.props.height,this.depth=this.props.depth,this.props.width===void 0||this.props.height===void 0){const n=oi.getTextureDataSize(this.props.data);this.width=n?.width||1,this.height=n?.height||1}this.props.mipmaps&&this.props.mipLevels===void 0&&(this.props.mipLevels="pyramid"),this.mipLevels=this.props.mipLevels==="pyramid"?oi.getMipLevelCount(this.width,this.height):this.props.mipLevels||1,this.updateTimestamp=e.incrementTimestamp()}clone(e){return this.device.createTexture({...this.props,...e})}static isExternalImage(e){return typeof ImageData<"u"&&e instanceof ImageData||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof VideoFrame<"u"&&e instanceof VideoFrame||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas}static getExternalImageSize(e){if(typeof ImageData<"u"&&e instanceof ImageData||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)return{width:e.width,height:e.height};if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement)return{width:e.naturalWi
96dth,height:e.naturalHeight};if(typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement)return{width:e.videoWidth,height:e.videoHeight};if(typeof VideoFrame<"u"&&e instanceof VideoFrame)return{width:e.displayWidth,height:e.displayHeight};throw new Error("Unknown image type")}static isTextureLevelData(e){const t=e?.data;return ArrayBuffer.isView(t)}static getTextureDataSize(e){if(!e||ArrayBuffer.isView(e))return null;if(Array.isArray(e))return oi.getTextureDataSize(e[0]);if(oi.isExternalImage(e))return oi.getExternalImageSize(e);if(e&&typeof e=="object"&&e.constructor===Object){const n=Object.values(e)[0];return{width:n.width,height:n.height}}throw new Error("texture size deduction failed")}static normalizeTextureData(e,t){let n;return ArrayBuffer.isView(e)?n=[{data:e,width:t.width,height:t.height}]:Array.isArray(e)?n=e:n=[e],n}static getMipLevelCount(e,t){return Math.floor(Math.log2(Math.max(e,t)))+1}static getCubeFaceDepth(e){switch(e){case"+X":return 0;case"-X":return 1;case"+Y":return 2;case"-Y":return 3;case"+Z":return 4;case"-Z":return 5;default:throw new Error(e)}}static defaultCopyExternalImageOptions={image:void 0,sourceX:0,sourceY:0,width:void 0,height:void 0,depth:1,mipLevel:0,x:0,y:0,z:0,aspect:"all",colorSpace:"srgb",premultipliedAlpha:!1,flipY:!1};static normalizeProps(e,t){const n={...t},i=e?.props?._resourceDefaults?.texture||{};Object.assign(n,i);const{width:s,height:o}=n;return typeof s=="number"&&(n.width=Math.max(1,Math.ceil(s))),typeof o=="number"&&(n.height=Math.max(1,Math.ceil(o))),n}}class I_ extends Ai{static defaultProps={...Ai.defaultProps,format:void 0,dimension:void 0,aspect:"all",baseMipLevel:0,mipLevelCount:void 0,baseArrayLayer:0,arrayLayerCount:void 0};get[Symbol.toStringTag](){return"TextureView"}constructor(e,t){super(e,t,I_.defaultProps)}}function yz(r,e,t){let n="";const i=e.split(/\r?\n/),s=r.slice().sort((o,l)=>o.lineNum-l.lineNum);switch(t?.showSourceCode||"no"){case"all":let o=0;for(let l=1;l<=i.length;l++)for(n+=$4(i[l-1],l,t);s.length>o&&s[o].lineNum===l;){const f=s[o++];n+=GC(f,i,f.lineNum,{...t,inlineSource:!1})}return n;case"issues":case"no":for(const l of r)n+=GC(l,i,l.lineNum,{inlineSource:t?.showSourceCode!=="no"});return n}}function GC(r,e,t,n){if(n?.inlineSource){const s=vz(e,t),o=r.linePos>0?`${" ".repeat(r.linePos+5)}^^^ 97`:"";return` 98${s}${o}${r.type.toUpperCase()}: ${r.message} 99 100`}const i=r.type==="error"?"red":"#8B4000";return n?.html?`<div class='luma-compiler-log-error' style="color:${i};"><b> ${r.type.toUpperCase()}: ${r.message}</b></div>`:`${r.type.toUpperCase()}: ${r.message}`}function vz(r,e,t){let n="";for(let i=e-2;i<=e;i++){const s=r[i-1];s!==void 0&&(n+=$4(s,e,t))}return n}function $4(r,e,t){const n=t?.html?xz(r):r;return`${bz(String(e),4)}: ${n}${t?.html?"<br/>":` 101`}`}function bz(r,e){let t="";for(let n=r.length;n<e;++n)t+=" ";return t+r}function xz(r){return r.replaceAll("&","&").replaceAll("<","<").replaceAll(">",">").replaceAll('"',""").replaceAll("'","'")}class B_ extends Ai{static defaultProps={...Ai.defaultProps,language:"auto",stage:void 0,source:"",sourceMap:null,entryPoint:"main",debugShaders:void 0};get[Symbol.toStringTag](){return"Shader"}stage;source;compilationStatus="pending";constructor(e,t){t={...t,debugShaders:t.debugShaders||e.props.debugShaders||"errors"},super(e,{id:wz(t),...t},B_.defaultProps),this.stage=this.props.stage,this.source=this.props.source}getCompilationInfoSync(){return null}getTranslatedSource(){return null}async debugShader(){const e=this.props.debugShaders;switch(e){case"never":return;case"errors":if(this.compilationStatus==="success")return;break}const t=await this.getCompilationInfo();e==="warnings"&&t?.length===0||this._displayShaderLog(t)}_displayShaderLog(e){if(typeof document>"u"||!document?.createElement)return;const t=X4(this.source),n=`${this.stage} ${t}`;let i=yz(e,this.source,{showSourceCode:"all",html:!0});const s=this.getTranslatedSource();s&&(i+=`<br /><br /><h1>Translated Source</h1><br /><br /><code style="user-select:text;"><pre>${s}</pre></code>`);const o=document.createElement("Button");o.innerHTML=` 102<h1>Shader Compilation Error in ${n}</h1><br /><br /> 103<code style="user-select:text;"><pre> 104${i} 105</pre></code>`,o.style.top="10px",o.style.left="10px",o.style.position="absolute",o.style.zIndex="9999",o.style.width="100%",o.style.textAlign="left",document.body.appendChild(o),document.getElementsByClassName("luma-compiler-log-error")[0]?.scrollIntoView(),o.onclick=()=>{const f=`data:text/plain,${encodeURIComponent(this.source)}`;navigator.clipboard.writeText(f)}}}function wz(r){return X4(r.source)||r.id||S_(`unnamed ${r.stage}-shader`)}function X4(r,e="unnamed"){const n=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/.exec(r);
105return n?n[1]:e}class KA extends Ai{static defaultProps={...Ai.defaultProps,type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"none",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1};get[Symbol.toStringTag](){return"Sampler"}constructor(e,t){t=KA.normalizeProps(e,t),super(e,t,KA.defaultProps)}static normalizeProps(e,t){const n=e?.props?._resourceDefaults?.sampler||{};return{...t,...n}}}class P_ extends Ai{static defaultProps={...Ai.defaultProps,width:1,height:1,colorAttachments:[],depthStencilAttachment:null};get[Symbol.toStringTag](){return"Framebuffer"}width;height;constructor(e,t={}){super(e,t,P_.defaultProps),this.width=this.props.width,this.height=this.props.height}clone(e){const t=this.colorAttachments.map(i=>i.texture.clone(e)),n=this.depthStencilAttachment&&this.depthStencilAttachment.texture.clone(e);return this.device.createFramebuffer({...this.props,colorAttachments:t,depthStencilAttachment:n})}resize(e){let t=!e;if(e){const[n,i]=Array.isArray(e)?e:[e.width,e.height];t=t||i!==this.height||n!==this.width,this.width=n,this.height=i}t&&(Yt.log(2,`Resizing framebuffer ${this.id} to ${this.width}x${this.height}`)(),this.resizeAttachments(this.width,this.height))}autoCreateAttachmentTextures(){if(this.props.colorAttachments.length===0&&!this.props.depthStencilAttachment)throw new Error("Framebuffer has noattachments");this.colorAttachments=this.props.colorAttachments.map((t,n)=>{if(typeof t=="string"){const i=this.createColorTexture(t,n);return this.attachResource(i),i.view}return t instanceof oi?t.view:t});const e=this.props.depthStencilAttachment;if(e)if(typeof e=="string"){const t=this.createDepthStencilTexture(e);this.attachResource(t),this.depthStencilAttachment=t.view}else e instanceof oi?this.depthStencilAttachment=e.view:this.depthStencilAttachment=e}createColorTexture(e,t){return this.device.createTexture({id:`${this.id}-color-attachment-${t}`,usage:oi.RENDER_ATTACHMENT,format:e,width:this.width,height:this.height,sampler:{magFilter:"linear",minFilter:"linear"}})}createDepthStencilTexture(e){return this.device.createTexture({id:`${this.id}-depth-stencil-attachment`,usage:oi.RENDER_ATTACHMENT,format:e,width:this.width,height:this.height,mipmaps:!1})}resizeAttachments(e,t){for(let n=0;n<this.colorAttachments.length;++n)if(this.colorAttachments[n]){const i=this.colorAttachments[n].texture.clone({width:e,height:t});this.destroyAttachedResource(this.colorAttachments[n]),this.colorAttachments[n]=i.view,this.attachResource(i.view)}if(this.depthStencilAttachment){const n=this.depthStencilAttachment.texture.clone({width:e,height:t});this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=n.view,this.attachResource(n)}this.updateAttachments()}}class lp extends Ai{static defaultProps={...Ai.defaultProps,vs:null,vertexEntryPoint:"vertexMain",vsConstants:{},fs:null,fragmentEntryPoint:"fragmentMain",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",parameters:{},bindings:{},uniforms:{}};get[Symbol.toStringTag](){return"RenderPipeline"}shaderLayout;bufferLayout;linkStatus="pending";hash="";constructor(e,t){super(e,t,lp.defaultProps),this.shaderLayout=this.props.shaderLayout,this.bufferLayout=this.props.bufferLayout||[]}setUniformsWebGL(e){throw new Error("Use uniform blocks")}}class Gf extends Ai{static defaultClearColor=[0,0,0,1];static defaultClearDepth=1;static defaultClearStencil=0;static defaultProps={...Ai.defaultProps,framebuffer:null,parameters:void 0,clearColor:Gf.defaultClearColor,clearColors:void 0,clearDepth:Gf.defaultClearDepth,clearStencil:Gf.defaultClearStencil,depthReadOnly:!1,stencilReadOnly:!1,discard:!1,occlusionQuerySet:void 0,timestampQuerySet:void 0,beginTimestampIndex:void 0,endTimestampIndex:void 0};get[Symbol.toStringTag](){return"RenderPass"}constructor(e,t){t=Gf.normalizeProps(e,t),super(e,t,Gf.defaultProps)}static normalizeProps(e,t){return{...e.props._resourceDefaults?.renderPass,...t}}}class Um extends Ai{static defaultProps={...Ai.defaultProps,shader:void 0,entryPoint:void 0,constants:{},shaderLayout:void 0};get[Symbol.toStringTag](){return"ComputePipeline"}hash="";shaderLayout;constructor(e,t){super(e,t,Um.defaultProps),this.shaderLayout=t.shaderLayout}}class tx extends Ai{static defaultProps={...Ai.defaultProps,measureExecutionTime:void 0};get[Symbol.toStringTag](){return"CommandEncoder"}constructor(e,t){super(e,t,tx.defaultProps)}}class rx extends Ai{static defaultProps={...Ai.defaultProps};get[Symbol.toStringTag](){return"CommandBuffer"}constructor(e,t){super(e,t,rx.defaultProps)}}function Tz(r){const[e,t]=Cz[r],n=e==="i32"||e==="u32",i=e!=="u32",s=Sz[e]*t,o=Ez(e,t);return{dataType:e,components:t,defaultVertexFormat:o,byteLength:s,integer:n,signed:i}}function Ez(r,e){let t;switch(r){case"f32":t="float32";break;case"i32":t="sint32";break;case"u32":t="uint32";break;case"f16":return e<=2?"float16x2":"float16x4"}return e===1?t:`${t}x${e}`}const Cz={f32:["f32",1],"vec2<f32>":["f32",2],"vec3<f32>":["f32",3],"vec4<f32>":["f32",4],f16:["f16",1],"vec2<f16>":["f16",2],"vec3<f16>":["f16",3],"vec4<f16>":["f16",4],i32:["i32",1],"vec2<i32>":["i32",2],"vec3<i32>":["i32",3],"vec4<i32>":["i32",4],u32:["u32",1],"vec2<u32>":["u32",2],"vec3<u32>":["u32",3],"vec4<u32>":["u32",4]},Sz={f32:4,f16:2,i32:4,u32:4};function q4(r){let e;r.endsWith("-webgl")&&(r.replace("-webgl",""),e=!0);const[t,n]=r.split("x"),i=t,s=n?parseInt(n):1,o=G4(i),l={type:i,components:s,byteLength:o.byteLength*s,integer:o.integer,signed:o.signed,normalized:o.normalized};return e&&(l.webglOnly=!0),l}function J4(r,e){const t={};for(const n of r.attributes){const i=Bz(r,e,n.name);i&&(t[n.name]=i)}return t}function Iz(r,e,t=16){const n=J4(r,e),i=new Array(t).fill(null);for(const s of Object.values(n))i[s.location]=s;return i}function Bz(r,e,t){const n=Pz(r,t),i=Mz(e,t);if(!n)return null;const s=Tz(n.type),o=i?.vertexFormat||s.defaultVertexFormat,l=q4(o);return{attributeName:i?.attributeName||n.name,bufferName:i?.bufferName||n.name,location:n.location,shaderType:n.type,shaderDataType:s.dataType,shaderComponents:s.components,vertexFormat:o,bufferDataType:l.type,bufferComponents:l.components,normalized:l.normalized,integer:s.integer,stepMode:i?.stepMode||n.stepMode||"vertex",byteOffset:i?.byteOffset||0,byteStride:i?.byteStride||0}}function Pz(r,e){const t=r.attributes.find(n=>n.name===e);return t||Yt.warn(`shader layout attribute "${e}" not present in shader`),t||null}function Mz(r,e){Rz(r);let t=Oz(r,e);return t||(t=Dz(r,e),t)?t:(Yt.warn(`layout for attribute "${e}" not present in buffer layout`),null)}function Rz(r){for(const e of r)(e.attributes&&e.format||!e.attributes&&!e.format)&&Yt.warn(`BufferLayout ${name} must have either 'attributes' or 'format' field`)}function Oz(r,e){for(const t of r)if(t.format&&t.name===e)return{attributeName:t.name,bufferName:e,stepMode:t.stepMode,vertexFormat:t.format,byteOffset:0,byteStride:t.byteStride||0};return null}function Dz(r,e){for(const t of r){let n=t.byteStride;if(typeof t.byteStride!="number")for(const s of t.attributes||[]){const o=q4(s.format);n+=o.byteLength}const i=t.attributes?.find(s=>
105s.attribute===e);if(i)return{attributeName:i.attribute,bufferName:t.name,stepMode:t.stepMode,vertexFormat:i.format,byteOffset:i.byteOffset,byteStride:n}}return null}class nx extends Ai{static defaultProps={...Ai.defaultProps,renderPipeline:null};get[Symbol.toStringTag](){return"VertexArray"}maxVertexAttributes;attributeInfos;indexBuffer=null;attributes;constructor(e,t){super(e,t,nx.defaultProps),this.maxVertexAttributes=e.limits.maxVertexAttributes,this.attributes=new Array(this.maxVertexAttributes).fill(null);const{shaderLayout:n,bufferLayout:i}=t.renderPipeline||{};if(!n||!i)throw new Error("VertexArray");this.attributeInfos=Iz(n,i,this.maxVertexAttributes)}setConstantWebGL(e,t){this.device.reportError(new Error("constant attributes not supported"))}}class ix extends Ai{static defaultProps={...Ai.defaultProps,layout:void 0,buffers:{}};get[Symbol.toStringTag](){return"TransformFeedback"}constructor(e,t){super(e,t,ix.defaultProps)}}class sx extends Ai{static defaultProps={...Ai.defaultProps,type:void 0,count:void 0};get[Symbol.toStringTag](){return"QuerySet"}constructor(e,t){super(e,t,sx.defaultProps)}}const Fz={f32:{type:"f32",components:1},i32:{type:"i32",components:1},u32:{type:"u32",components:1},"vec2<f32>":{type:"f32",components:2},"vec3<f32>":{type:"f32",components:3},"vec4<f32>":{type:"f32",components:4},"vec2<i32>":{type:"i32",components:2},"vec3<i32>":{type:"i32",components:3},"vec4<i32>":{type:"i32",components:4},"vec2<u32>":{type:"u32",components:2},"vec3<u32>":{type:"u32",components:3},"vec4<u32>":{type:"u32",components:4},"mat2x2<f32>":{type:"f32",components:4},"mat2x3<f32>":{type:"f32",components:6},"mat2x4<f32>":{type:"f32",components:8},"mat3x2<f32>":{type:"f32",components:6},"mat3x3<f32>":{type:"f32",components:9},"mat3x4<f32>":{type:"f32",components:12},"mat4x2<f32>":{type:"f32",components:8},"mat4x3<f32>":{type:"f32",components:12},"mat4x4<f32>":{type:"f32",components:16}};function Lz(r){return Fz[r]}function kz(r,e){switch(e){case 1:return r;case 2:return r+r%2;default:return r+(4-r%4)%4}}let p0;function K4(r){return(!p0||p0.byteLength<r)&&(p0=new ArrayBuffer(r)),p0}function Nz(r,e){const t=K4(r.BYTES_PER_ELEMENT*e);return new r(t,0,e)}function Uz(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}function zm(r){return Array.isArray(r)?r.length===0||typeof r[0]=="number":Uz(r)}const HC=1024;class zz{layout={};byteLength;constructor(e){let t=0;
105for(const[i,s]of Object.entries(e)){const o=Lz(s),{type:l,components:f}=o;t=kz(t,f);const A=t;t+=f,this.layout[i]={type:l,size:f,offset:A}}t+=(4-t%4)%4;const n=t*4;this.byteLength=Math.max(n,HC)}getData(e){const t=Math.max(this.byteLength,HC),n=K4(t),i={i32:new Int32Array(n),u32:new Uint32Array(n),f32:new Float32Array(n),f16:new Uint16Array(n)};for(const[s,o]of Object.entries(e)){const l=this.layout[s];if(!l){Yt.warn(`Supplied uniform value ${s} not present in uniform block layout`)();continue}const{type:f,size:A,offset:v}=l,T=i[f];if(A===1){if(typeof o!="number"&&typeof o!="boolean"){Yt.warn(`Supplied value for single component uniform ${s} is not a number: ${o}`)();continue}T[v]=Number(o)}else{if(!zm(o)){Yt.warn(`Supplied value for multi component / array uniform ${s} is not a numeric array: ${o}`)();continue}T.set(o,v)}}return new Uint8Array(n)}has(e){return!!this.layout[e]}get(e){return this.layout[e]}}function Vz(r,e,t=16){if(r!==e)return!1;const n=r,i=e;if(!zm(n))return!1;if(zm(i)&&n.length===i.length){for(let s=0;s<n.length;++s)if(i[s]!==n[s])return!1}return!0}function jz(r){return zm(r)?r.slice():r}class Gz{name;uniforms={};modifiedUniforms={};modified=!0;bindingLayout={};needsRedraw="initialized";constructor(e){if(this.name=e?.name||"unnamed",e?.name&&e?.shaderLayout){const t=e?.shaderLayout.bindings?.find(i=>i.type==="uniform"&&i.name===e?.name);if(!t)throw new Error(e?.name);const n=t;for(const i of n.uniforms||[])this.bindingLayout[i.name]=i}}setUniforms(e){for(const[t,n]of Object.entries(e))this._setUniform(t,n),this.needsRedraw||this.setNeedsRedraw(`${this.name}.${t}=${n}`)}setNeedsRedraw(e){this.needsRedraw=this.needsRedraw||e}getAllUniforms(){return this.modifiedUniforms={},this.needsRedraw=!1,this.uniforms||{}}_setUniform(e,t){Vz(this.uniforms[e],t)||(this.uniforms[e]=jz(t),this.modifiedUniforms[e]=!0,this.modified=!0)}}class Hz{uniformBlocks=new Map;uniformBufferLayouts=new Map;uniformBuffers=new Map;constructor(e){for(const[t,n]of Object.entries(e)){const i=t,s=new zz(n.uniformTypes||{});this.uniformBufferLayouts.set(i,s);const o=new Gz({name:t});o.setUniforms(n.defaultUniforms||{}),this.uniformBlocks.set(i,o)}}destroy(){for(const e of this.uniformBuffers.values())e.destroy()}setUniforms(e){for(const[t,n]of Object.entries(e))this.uniformBlocks.get(t)?.setUniforms(n);this.updateUniformBuffers()}getUniformBufferByteLength(e){return this.uniformBufferLayouts.get(e)?.byteLength||0}getUniformBufferData(e){const t=this.uniformBlocks.get(e)?.getAllUniforms()||{};return this.uniformBufferLayouts.get(e)?.getData(t)}createUniformBuffer(e,t,n){n&&this.setUniforms(n);const i=this.getUniformBufferByteLength(t),s=e.createBuffer({usage:Hi.UNIFORM|Hi.COPY_DST,byteLength:i}),o=this.getUniformBufferData(t);return s.write(o),s}getManagedUniformBuffer(e,t){if(!this.uniformBuffers.get(t)){const n=this.getUniformBufferByteLength(t),i=e.createBuffer({usage:Hi.UNIFORM|Hi.COPY_DST,byteLength:n});this.uniformBuffers.set(t,i)}return this.uniformBuffers.get(t)}updateUniformBuffers(){let e=!1;for(const t of this.uniformBlocks.keys()){const n=this.updateUniformBuffer(t);e||=n}return e&&Yt.log(3,`UniformStore.updateUniformBuffers(): ${e}`)(),e}updateUniformBuffer(e){const t=this.uniformBlocks.get(e);let n=this.uniformBuffers.get(e),i=!1;if(n&&t?.needsRedraw){i||=t.needsRedraw;const s=this.getUniformBufferData(e);n=this.uniformBuffers.get(e),n?.write(s);const o=this.uniformBlocks.get(e)?.getAllUniforms();Yt.log(4,`Writing to uniform buffer ${String(e)}`,s,o)()}return i}}function Z4(r){const e=ArrayBuffer.isView(r)?r.constructor:r;switch(e){case Float32Array:return"float32";case Uint16Array:return"uint16";case Uint32Array:return"uint32";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int8Array:return"sint8";case Int16Array:return"sint16";case Int32Array:return"sint32";default:throw new Error(e.constructor.name)}}function Y4(r){switch(r){case"float32":return Float32Array;case"uint32":return Uint32Array;case"sint32":return Int32Array;case"uint16":case"unorm16":return Uint16Array;case"sint16":case"snorm16":return Int16Array;case"uint8":case"unorm8":return Uint8Array;case"sint8":case"snorm8":return Int8Array;default:throw new Error(r)}}function Wz(r,e,t){if(!e||e>4)throw new Error(`size ${e}`);const n=e;let i=Z4(r);if(i==="uint8"&&t&&n===1)return"unorm8-webgl";if(i==="uint8"&&t&&n===3)return"unorm8x3-webgl";if(i==="uint8"||i==="sint8"){if(n===1||n===3)throw new Error(`size: ${e}`);return t&&(i=i.replace("int","norm")),`${i}x${n}`}if(i==="uint16"||i==="sint16"){if(n===1||n===3)throw new Error(`size: ${e}`);return t&&(i=i.replace("int","norm")),`${i}x${n}`}return n===1?i:`${i}x${n}`}class fv{bufferLayouts;constructor(e){this.bufferLayouts=e}getBufferLayout(e){return this.bufferLayouts.find(t=>t.name===e)||null}getAttributeNamesForBuffer(e){return e.attributes?e.attributes?.map(t=>t.attribute):[e.name]}mergeBufferLayouts(e,t){const n=[...e];for(const i of t){const s=n.findIndex(o=>o.name===i.name);s<0?n.push(i):n[s]=i}return n}getBufferIndex(e){const t=this.bufferLayouts.findIndex(n=>n.name===e);return t===-1&&Yt.warn(`BufferLayout: Missing buffer for "${e}".`)(),t}}function $z(r,e){const t=Object.fromEntries(r.attributes.map(i=>[i.name,i.location])),n=e.slice();return n.sort((i,s)=>{const o=i.attributes?i.attributes.map(v=>v.attribute):[i.name],l=s.attributes?s.attributes.map(v=>v.attribute):[s.name],f=Math.min(...o.map(v=>t[v])),A=Math.min(...l.map(v=>t[v]));return f-A}),n}class za{constructor(e,t){this.name=e,this.attributes=t,this.size=0}get isArray(){return!1}
105get isStruct(){return!1}get isTemplate(){return!1}get isPointer(){return!1}getTypeName(){return this.name}}class WC{constructor(e,t,n){this.name=e,this.type=t,this.attributes=n,this.offset=0,this.size=0}get isArray(){return this.type.isArray}get isStruct(){return this.type.isStruct}get isTemplate(){return this.type.isTemplate}get align(){return this.type.isStruct?this.type.align:0}get members(){return this.type.isStruct?this.type.members:null}get format(){return this.type.isArray||this.type.isTemplate?this.type.format:null}get count(){return this.type.isArray?this.type.count:0}get stride(){return this.type.isArray?this.type.stride:this.size}}let zu=class extends za{constructor(e,t){super(e,t),this.members=[],this.align=0,this.startLine=-1,this.endLine=-1,this.inUse=!1}get isStruct(){return!0}},Wu=class extends za{constructor(e,t){super(e,t),this.count=0,this.stride=0}get isArray(){return!0}getTypeName(){return`array<${this.format.getTypeName()}, ${this.count}>`}},x1=class extends za{constructor(e,t,n){super(e,n),this.format=t}get isPointer(){return!0}getTypeName(){return`&${this.format.getTypeName()}`}},th=class extends za{constructor(e,t,n,i){super(e,n),this.format=t,this.access=i}get isTemplate(){return!0}getTypeName(){let e=this.name;if(this.format!==null){if(e==="vec2"||e==="vec3"||e==="vec4"||e==="mat2x2"||e==="mat2x3"||e==="mat2x4"||e==="mat3x2"||e==="mat3x3"||e==="mat3x4"||e==="mat4x2"||e==="mat4x3"||e==="mat4x4"){if(this.format.name==="f32")return e+="f",e;if(this.format.name==="i32")return e+="i",e;if(this.format.name==="u32")return e+="u",e;if(this.format.name==="bool")return e+="b",e;if(this.format.name==="f16")return e+="h",e}e+=`<${this.format.name}>`}else if(e==="vec2"||e==="vec3"||e==="vec4")return e;return e}};var Nu;(r=>{r[r.Uniform=0]="Uniform",r[r.Storage=1]="Storage",r[r.Texture=2]="Texture",r[r.Sampler=3]="Sampler",r[r.StorageTexture=4]="StorageTexture"})(Nu||(Nu={}));let A0=class{constructor(e,t,n,i,s,o,l){this.name=e,this.type=t,this.group=n,this.binding=i,this.attributes=s,this.resourceType=o,this.access=l}get isArray(){return this.type.isArray}get isStruct(){return this.type.isStruct}get isTemplate(){return this.type.isTemplate}get size(){return this.type.size}get align(){return this.type.isStruct?this.type.align:0}get members(){return this.type.isStruct?this.type.members:null}get format(){return this.type.isArray||this.type.isTemplate?this.type.format:null}get count(){return this.type.isArray?this.type.count:0}get stride(){return this.type.isArray?this.type.stride:this.size}};class Xz{constructor(e,t){this.name=e,this.type=t}}let qz=class{constructor(e,t,n,i){this.name=e,this.type=t,this.locationType=n,this.location=i,this.interpolation=null}};class $C{constructor(e,t,n,i){this.name=e,this.type=t,this.locationType=n,this.location=i}}class Jz{constructor(e,t,n,i){this.name=e,this.type=t,this.attributes=n,this.id=i}}let Kz=class{constructor(e,t,n){this.name=e,this.type=t,this.attributes=n}};class Zz{constructor(e,t=null,n){this.stage=null,this.inputs=[],this.outputs=[],this.arguments=[],this.returnType=null,this.resources=[],this.overrides=[],this.startLine=-1,this.endLine=-1,this.inUse=!1,this.calls=new Set,this.name=e,this.stage=t,this.attributes=n}}class Yz{constructor(){this.vertex=[],this.fragment=[],this.compute=[]}}function Qz(r){var e=(32768&r)>>15,t=(31744&r)>>10,n=1023&r;return t==0?(e?-1:1)*Math.pow(2,-14)*(n/Math.pow(2,10)):t==31?n?NaN:1/0*(e?-1:1):(e?-1:1)*Math.pow(2,t-15)*(1+n/Math.pow(2,10))}const Q4=new Float32Array(1),e7=new Int32Array(Q4.buffer),uo=new Uint16Array(1);function t7(r){Q4[0]=r;const e=e7[0],t=e>>31&1;let n=e>>23&255,i=8388607&e;if(n===255)return uo[0]=t<<15|31744|(i!==0?512:0),uo[0];if(n===0){if(i===0)return uo[0]=t<<15,uo[0];i|=8388608;let s=113;for(;!(8388608&i);)i<<=1,s--;return n=127-s,i&=8388607,n>0?(i=(i>>126-n)+(i>>127-n&1),uo[0]=t<<15|n<<10|i>>13,uo[0]):(uo[0]=t<<15,uo[0])}return n=n-127+15,n>=31?(uo[0]=t<<15|31744,uo[0]):n<=0?n<-10?(uo[0]=t<<15,uo[0]):(i=(8388608|i)>>1-n,uo[0]=t<<15|i>>13,uo[0]):(i>>=13,uo[0]=t<<15|n<<10|i,uo[0])}const ox=new Uint32Array(1),eO=new Float32Array(ox.buffer,0,1);function XC(r){const e=112+(r>>6&31)<<23|(63&r)<<17;return ox[0]=e,eO[0]}function r7(r,e,t,n,i,s,o,l,f){const A=n*(o>>=i)*(s>>=i)+t*o+e*l;switch(f){case"r8unorm":return[Kn(r,A,"8unorm",1)[0]];case"r8snorm":return[Kn(r,A,"8snorm",1)[0]];case"r8uint":return[Kn(r,A,"8uint",1)[0]];case"r8sint":return[Kn(r,A,"8sint",1)[0]];case"rg8unorm":{const v=Kn(r,A,"8unorm",2);return[v[0],v[1]]}case"rg8snorm":{const v=Kn(r,A,"8snorm",2);return[v[0],v[1]]}case"rg8uint":{const v=Kn(r,A,"8uint",2);return[v[0],v[1]]}case"rg8sint":{const v=Kn(r,A,"8sint",2);return[v[0],v[1]]}case"rgba8unorm-srgb":case"rgba8unorm":{const v=Kn(r,A,"8unorm",4);return[v[0],v[1],v[2],v[3]]}case"rgba8snorm":{const v=Kn(r,A,"8snorm",4);return[v[0],v[1],v[2],v[3]]}case"rgba8uint":{const v=Kn(r,A,"8uint",4);return[v[0],v[1],v[2],v[3]]}case"rgba8sint":{const v=Kn(r,A,"8sint",4);return[v[0],v[1],v[2],v[3]]}case"bgra8unorm-srgb":case"bgra8unorm":{const v=Kn(r,A,"8unorm",4);return[v[2],v[1],v[0],v[3]]}case"r16uint":return[Kn(r,A,"16uint",1)[0]];case"r16sint":return[Kn(r,A,"16sint",1)[0]];case"r16float":return[Kn(r,A,"16float",1)[0]];case"rg16uint":{const v=Kn(r,A,"16uint",2);return[v[0],v[1]]}case"rg16sint":{const v=Kn(r,A,"16sint",2);return[v[0],v[1]]}case"rg16float":{const v=Kn(r,A,"16float",2);return[v[0],v[1]]}case"rgba16uint":{const v=Kn(r,A,"16uint",4);return[v[0],v[1],v[2],v[3]]}case"rgba16sint":{const v=Kn(r,A,"16sint",4);return[v[0],v[1],v[2],v[3]]}case"rgba16float":{const v=Kn(r,A,"16float",4);return[v[0],v[1],v[2],v[3]]}case"r32uint":return[Kn(r,A,"32uint",1)[0]];case"r32sint":return[Kn(r,A,"32sint",1)[0]];case"depth16unorm":case"depth24plus":case"depth24plus-stencil8":case"depth32float":case"depth32float-stencil8":case"r32float":return[Kn(r,A,"32float",1)[0]];case"rg32uint":{const v=Kn(r,A,"32uint",2);return[v[0],v[1]]}case"rg32sint":{const v=Kn(r,A,"32sint",2);return[v[0],v[1]]}case"rg32float":{const v=Kn(r,A,"32float",2);return[v[0],v[1]]}case"rgba32uint":{const v=Kn(r,A,"32uint",4);return[v[0],v[1],v[2],v[3]]}case"rgba32sint":{const v=Kn(r,A,"32sint",4);return[v[0],v[1],v[2],v[3]]}case"rgba32float":{const v=Kn(r,A,"32float",4);return[v[0],v[1],v[2],v[3]]}case"rg11b10ufloat":{const v=new Uint32Array(r.buffer,A,1)[0],T=(4192256&v)>>11,I=(4290772992&v)>>22;return[XC(2047&v),XC(T),(function(F){const N=112+(F>>5&31)<<23|(31&F)<<18;return ox[0]=N,eO[0]})(I),1]}}return null}function Kn(r,e,t,n){const i=[0,0,0,0];for(let s=0;s<n;++s)switch(t){case"8unorm":i[s]=r[e]/255,e++;break;case"8snorm":i[s]=r[e]/255*2-1,e++;break;case"8uint":i[s]=r[e],e++;break;case"8sint":i[s]=r[e]-127,e++;break;case"16uint":i[s]=r[e]|r[e+1]<<8,e+=2;break;case"16sint":i[s]=(r[e]|r[e+1]<<8)-32768,e+=2;break;case"16float":i[s]=Qz(r[e]|r[e+1]<<8),e+=2;break;case"32uint":case"32sint":i[s]=r[e]|r[e+1]<<8|r[e+2]<<16|r[e+3]<<24,e+=4;break;case"32float":i[s]=new Float32Array(r.buffer,e,1)[0],e+=4}return i}function ti(r,e,t,n,i){for(let s=0;s<n;++s)switch(t){case"8unorm":r[e]=255*i[s],e++;break;case"8snorm":r[e]=.5*(i[s]+1)*255,e++;break;case"8uint":r[e]=i[s],e++;break;case"8sint":r[e]=i[s]+127,e++;break;case"16uint":new Uint16Array(r.buffer,e,1)[0]=i[s],e+=2;break;case"16sint":new Int16Array(r.buffer,e,1)[0]=i[s],e+=2;break;case"16float":{const o=t7(i[s]);new Uint16Array(r.buffer,e,1)[0]=o,e+=2;break}case"32uint":new Uint32Array(r.buffer,e,1)[0]=i[s],e+=4;break;case"32sint":new Int32Array(r.buffer,e,1)[0]=i[s],e+=4;break;case"32float":new Float32Array(r.buffer,e,1)[0]=i[s],e+=4}return i}const hv={r8unorm:{bytesPerBlock:1,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r8snorm:{bytesPerBlock:1,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r8uint:{bytesPerBlock:1,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r8sint:{bytesPerBlock:1,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},rg8unorm:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg8snorm:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg8uint:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg8sint:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rgba8unorm:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},"rgba8unorm-srgb":{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba8snorm:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba8uint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba8sint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},bgra8unorm:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},"bgra8unorm-srgb":{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},r16uint:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r16sint:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r16float:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},rg16uint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg16sint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg16float:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rgba16uint:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba16sint:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba16float:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},r32uint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r32sint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},r32float:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:1},rg32uint:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg32sint:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rg32float:{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,channels:2},rgba32uint:{bytesPerBlock:16,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba32sint:{bytesPerBlock:16,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgba32float:{bytesPerBlock:16,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgb10a2uint:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rgb10a2unorm:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},rg11b10ufloat:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},stencil8:{bytesPerBlock:1,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!1,hasStencil:!0,channels:1},depth16unorm:{bytesPerBlock:2,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!0,hasStencil:!1,channels:1},depth24plus:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!0,hasStencil:!1,depthOnlyFormat:"depth32float",channels:1},"depth24plus-stencil8":{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!0,hasStencil:!0,depthOnlyFormat:"depth32float",channels:1},depth32float:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!0,hasStencil:!1,channels:1},"depth32float-stencil8":{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!1,isDepthStencil:!0,hasDepth:!0,hasStencil:!0,stencilOnlyFormat:"depth32float",channels:1},rgb9e5ufloat:{bytesPerBlock:4,blockWidth:1,blockHeight:1,isCompressed:!1,channels:4},"bc1-rgba-unorm":{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"bc1-rgba-unorm-srgb":{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"bc2-rgba-unorm":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"bc2-rgba-unorm-srgb":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"bc3-rgba-unorm":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"bc3-rgba-unorm-srgb":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"bc4-r-unorm":{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:1},"bc4-r-snorm":{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:1},"bc5-rg-unorm":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:2},"bc5-rg-snorm":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:2},"bc6h-rgb-ufloat":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"bc6h-rgb-float":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"bc7-rgba-unorm":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"bc7-rgba-unorm-srgb":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"etc2-rgb8unorm":{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"etc2-rgb8unorm-srgb":{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"etc2-rgb8a1unorm":{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"etc2-rgb8a1unorm-srgb":{bytesPerBlock:8,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"etc2-rgba8unorm":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"etc2-rgba8unorm-srgb":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"eac-r11unorm":{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!0,channels:1},"eac-r11snorm":{bytesPerBlock:8,blockWidth:1,blockHeight:1,isCompressed:!0,channels:1},"eac-rg11unorm":{bytesPerBlock:16,blockWidth:1,blockHeight:1,isCompressed:!0,channels:2},"eac-rg11snorm":{bytesPerBlock:16,blockWidth:1,blockHeight:1,isCompressed:!0,channels:2},"astc-4x4-unorm":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"astc-4x4-unorm-srgb":{bytesPerBlock:16,blockWidth:4,blockHeight:4,isCompressed:!0,channels:4},"astc-5x4-unorm":{bytesPerBlock:16,blockWidth:5,blockHeight:4,isCompressed:!0,channels:4},"astc-5x4-unorm-srgb":{bytesPerBlock:16,blockWidth:5,blockHeight:4,isCompressed:!0,channels:4},"astc-5x5-unorm":{bytesPerBlock:16,blockWidth:5,blockHeight:5,isCompressed:!0,channels:4},"astc-5x5-unorm-srgb":{bytesPerBlock:16,blockWidth:5,blockHeight:5,isCompressed:!0,channels:4},"astc-6x5-unorm":{bytesPerBlock:16,blockWidth:6,blockHeight:5,isCompressed:!0,channels:4},"astc-6x5-unorm-srgb":{bytesPerBlock:16,blockWidth:6,blockHeight:5,isCompressed:!0,channels:4},"astc-6x6-unorm":{bytesPerBlock:16,blockWidth:6,blockHeight:6,isCompressed:!0,channels:4},"astc-6x6-unorm-srgb":{bytesPerBlock:16,blockWidth:6,blockHeight:6,isCompressed:!0,channels:4},"astc-8x5-unorm":{bytesPerBlock:16,blockWidth:8,blockHeight:5,isCompressed:!0,channels:4},"astc-8x5-unorm-srgb":{bytesPerBlock:16,blockWidth:8,blockHeight:5,isCompressed:!0,channels:4},"astc-8x6-unorm":{bytesPerBlock:16,blockWidth:8,blockHeight:6,isCompressed:!0,channels:4},"astc-8x6-unorm-srgb":{bytesPerBlock:16,blockWidth:8,blockHeight:6,isCompressed:!0,channels:4},"astc-8x8-unorm":{bytesPerBlock:16,blockWidth:8,blockHeight:8,isCompressed:!0,channels:4},"astc-8x8-unorm-srgb":{bytesPerBlock:16,blockWidth:8,blockHeight:8,isCompressed:!0,channels:4},"astc-10x5-unorm":{bytesPerBlock:16,blockWidth:10,blockHeight:5,isCompressed:!0,channels:4},"astc-10x5-unorm-srgb":{bytesPerBlock:16,blockWidth:10,blockHeight:5,isCompressed:!0,channels:4},"astc-10x6-unorm":{bytesPerBlock:16,blockWidth:10,blockHeight:6,isCompressed:!0,channels:4},"astc-10x6-unorm-srgb":{bytesPerBlock:16,blockWidth:10,blockHeight:6,isCompressed:!0,channels:4},"astc-10x8-unorm":{bytesPerBlock:16,blockWidth:10,blockHeight:8,isCompressed:!0,channels:4},"astc-10x8-unorm-srgb":{bytesPerBlock:16,blockWidth:10,blockHeight:8,isCompressed:!0,channels:4},"astc-10x10-unorm":{bytesPerBlock:16,blockWidth:10,blockHeight:10,isCompressed:!0,channels:4},"astc-10x10-unorm-srgb":{bytesPerBlock:16,blockWidth:10,blockHeight:10,isCompressed:!0,channels:4},"astc-12x10-unorm":{bytesPerBlock:16,blockWidth:12,blockHeight:10,isCompressed:!0,channels:4},"astc-12x10-unorm-srgb":{bytesPerBlock:16,blockWidth:12,blockHeight:10,isCompressed:!0,channels:4},"astc-12x12-unorm":{bytesPerBlock:16,blockWidth:12,blockHeight:12,isCompressed:!0,channels:4},"astc-12x12-unorm-srgb":{bytesPerBlock:16,blockWidth:12,blockHeight:12,isCompressed:!0,channels:4}};class Ga{constructor(){this.id=Ga._id
105++,this.line=0}get isAstNode(){return!0}get astNodeType(){return""}search(e){e(this)}searchBlock(e,t){if(e){t(Vm.instance);for(const n of e)n instanceof Array?this.searchBlock(n,t):n.search(t);t(jm.instance)}}constEvaluate(e,t){throw new Error("Cannot evaluate node")}constEvaluateString(e){return this.constEvaluate(e).toString()}}Ga._id=0;class Vm extends Ga{}Vm.instance=new Vm;class jm extends Ga{}jm.instance=new jm;const tO=new Set(["all","all","any","select","arrayLength","abs","acos","acosh","asin","asinh","atan","atanh","atan2","ceil","clamp","cos","cosh","countLeadingZeros","countOneBits","countTrailingZeros","cross","degrees","determinant","distance","dot","dot4U8Packed","dot4I8Packed","exp","exp2","extractBits","faceForward","firstLeadingBit","firstTrailingBit","floor","fma","fract","frexp","insertBits","inverseSqrt","ldexp","length","log","log2","max","min","mix","modf","normalize","pow","quantizeToF16","radians","reflect","refract","reverseBits","round","saturate","sign","sin","sinh","smoothStep","sqrt","step","tan","tanh","transpose","trunc","dpdx","dpdxCoarse","dpdxFine","dpdy","dpdyCoarse","dpdyFine","fwidth","fwidthCoarse","fwidthFine","textureDimensions","textureGather","textureGatherCompare","textureLoad","textureNumLayers","textureNumLevels","textureNumSamples","textureSample","textureSampleBias","textureSampleCompare","textureSampleCompareLevel","textureSampleGrad","textureSampleLevel","textureSampleBaseClampToEdge","textureStore","atomicLoad","atomicStore","atomicAdd","atomicSub","atomicMax","atomicMin","atomicAnd","atomicOr","atomicXor","atomicExchange","atomicCompareExchangeWeak","pack4x8snorm","pack4x8unorm","pack4xI8","pack4xU8","pack4x8Clamp","pack4xU8Clamp","pack2x16snorm","pack2x16unorm","pack2x16float","unpack4x8snorm","unpack4x8unorm","unpack4xI8","unpack4xU8","unpack2x16snorm","unpack2x16unorm","unpack2x16float","storageBarrier","textureBarrier","workgroupBarrier","workgroupUniformLoad","subgroupAdd","subgroupExclusiveAdd","subgroupInclusiveAdd","subgroupAll","subgroupAnd","subgroupAny","subgroupBallot","subgroupBroadcast","subgroupBroadcastFirst","subgroupElect","subgroupMax","subgroupMin","subgroupMul","subgroupExclusiveMul","subgroupInclusiveMul","subgroupOr","subgroupShuffle","subgroupShuffleDown","subgroupShuffleUp","subgroupShuffleXor","subgroupXor","quadBroadcast","quadSwapDiagonal","quadSwapX","quadSwapY"]);class Ui extends Ga{constructor(){super()}}class ZA extends Ui{constructor(e,t,n,i,s,o){super(),this.calls=new Set,this.name=e,this.args=t,this.returnType=n,this.body=i,this.startLine=s,this.endLine=o}get astNodeType(){return"function"}search(e){if(this.attributes)for(const t of this.attributes)e(t);e(this);for(const t of this.args)e(t);this.searchBlock(this.body,e)}}class n7 extends Ui{constructor(e){super(),this.expression=e}get astNodeType(){return"staticAssert"}search(e){this.expression.search(e)}}class rO extends Ui{constructor(e,t){super(),this.condition=e,this.body=t}get astNodeType(){return"while"}search(e){this.condition.search(e),this.searchBlock(this.body,e)}}class w1 extends Ui{constructor(e,t){super(),this.body=e,this.loopId=t}get astNodeType(){return"continuing"}search(e){this.searchBlock(this.body,e)}}let nO=class extends Ui{constructor(e,t,n,i){super(),this.init=e,this.condition=t,this.increment=n,this.body=i}get astNodeType(){return"for"}search(e){var t,n,i;(t=this.init)===null||t===void 0||t.search(e),(n=this.condition)===null||n===void 0||n.search(e),(i=this.increment)===null||i===void 0||i.search(e),this.searchBlock(this.body,e)}};class Hc extends Ui{constructor(e,t,n,i,s){super(),this.attributes=null,this.name=e,this.type=t,this.storage=n,this.access=i,this.value=s}get astNodeType(){return"var"}search(e){var t;e(this),(t=this.value)===null||t===void 0||t.search(e)}}class ax extends Ui{constructor(e,t,n){super(),this.attributes=null,this.name=e,this.type=t,this.value=n}get astNodeType(){return"override"}search(e){var t;(t=this.value)===null||t===void 0||t.search(e)}}class DA extends Ui{constructor(e,t,n,i,s){super(),this.attributes=null,this.name=e,this.type=t,this.storage=n,this.access=i,this.value=s}get astNodeType(){return"let"}search(e){var t;e(this),(t=this.value)===null||t===void 0||t.search(e)}}class fm extends Ui{constructor(e,t,n,i,s){super(),this.attributes=null,this.name=e,this.type=t,this.storage=n,this.access=i,this.value=s}get astNodeType(){return"const"}constEvaluate(e,t){return this.value.constEvaluate(e,t)}search(e){var t;e(this),(t=this.value)===null||t===void 0||t.search(e)}}var kd,wA,_t,ot;(r=>{r.increment="++",r.decrement="--"})(kd||(kd={})),(r=>{r.parse=function(e){const t=e;if(t=="parse")throw new Error("Invalid value for IncrementOperator");return r[t]}})(kd||(kd={}));class iO extends Ui{constructor(e,t){super(),this.operator=e,this.variable=t}get astNodeType(){return"increment"}search(e){this.variable.search(e)}}(r=>{r.assign="=",r.addAssign="+=",r.subtractAssin="-=",r.multiplyAssign="*=",r.divideAssign="/=",r.moduloAssign="%=",r.andAssign="&=",r.orAssign="|=",r.xorAssign="^=",r.shiftLeftAssign="<<=",r.shiftRightAssign=">>="})(wA||(wA={})),(r=>{r.parse=function(e){const t=e;if(t=="parse")throw new Error("Invalid value for AssignOperator");return t}})(wA||(wA={}));class sO extends Ui{constructor(e,t,n){super(),this.operator=e,this.variable=t,this.value=n}get astNodeType(){return"assign"}search(e){this.variable.search(e),this.value.search(e)}}class lx extends Ui{constructor(e,t){super(),this.name=e,this.args=t}get astNodeType(){return"call"}isBuiltin(){return tO.has(this.name)}search(e){for(const t of this.args)t.search(e);e(this)}}class oO extends Ui{constructor(e,t){super(),this.body=e,this.continuing=t}get astNodeType(){return"loop"}search(e){var t;this.searchBlock(this.body,e),(t=this.continuing)===null||t===void 0||t.search(e)}}class aO extends Ui{constructor(e,t){super(),this.condition=e,this.cases=t}get astNodeType(){return"switch"}search(e){e(this);for(const t of this.cases)t.search(e)}}class lO extends Ui{constructor(e,t,n,i){super(),this.condition=e,this.body=t,this.elseif=n,this.else=i}get astNodeType(){return"if"}search(e){this.condition.search(e),this.searchBlock(this.body,e),this.searchBlock(this.elseif,e),this.searchBlock(this.else,e)}}class cO extends Ui{constructor(e){super(),this.value=e}get astNodeType(){return"return"}search(e){var t;(t=this.value)===null||t===void 0||t.search(e)}}class i7 extends Ui{constructor(e){super(),this.name=e}get astNodeType(){return"enable"}}class s7 extends Ui{constructor(e){super(),this.extensions=e}get astNodeType(){return"requires"}}class uO extends Ui{constructor(e,t){super(),this.severity=e,this.rule=t}get astNodeType(){return"diagnostic"}}class cx extends Ui{constructor(e,t){super(),this.name=e,this.type=t}get astNodeType(){return"alias"}}class o7 extends Ui{constructor(){super()}get astNodeType(){return"discard"}}class fO extends Ui{constructor(){super(),this.condition=null,this.loopId=-1}get astNodeType(){return"break"}}class hO extends Ui{constructor(){super(),this.loopId=-1}get astNodeType(){return"continue"}}class Ut extends Ui{constructor(e){super(),this.attributes=null,this.name=e}get astNodeType(){return"type"}
105get isStruct(){return!1}get isArray(){return!1}static maxFormatType(e){let t=e[0];if(t.name==="f32")return t;for(let n=1;n<e.length;++n){const i=Ut._priority.get(t.name);Ut._priority.get(e[n].name)<i&&(t=e[n])}return t.name==="x32"?Ut.i32:t}getTypeName(){return this.name}}Ut.x32=new Ut("x32"),Ut.f32=new Ut("f32"),Ut.i32=new Ut("i32"),Ut.u32=new Ut("u32"),Ut.f16=new Ut("f16"),Ut.bool=new Ut("bool"),Ut.void=new Ut("void"),Ut._priority=new Map([["f32",0],["f16",1],["u32",2],["i32",3],["x32",3]]);class qC extends Ut{constructor(e){super(e)}}class jc extends Ut{constructor(e,t,n,i){super(e),this.members=t,this.startLine=n,this.endLine=i}get astNodeType(){return"struct"}get isStruct(){return!0}getMemberIndex(e){for(let t=0;t<this.members.length;t++)if(this.members[t].name==e)return t;return-1}search(e){for(const t of this.members)e(t)}}class ft extends Ut{constructor(e,t,n){super(e),this.format=t,this.access=n}get astNodeType(){return"template"}getTypeName(){let e=this.name;if(this.format!==null){if(e==="vec2"||e==="vec3"||e==="vec4"||e==="mat2x2"||e==="mat2x3"||e==="mat2x4"||e==="mat3x2"||e==="mat3x3"||e==="mat3x4"||e==="mat4x2"||e==="mat4x3"||e==="mat4x4"){if(this.format.name==="f32")return e+="f",e;if(this.format.name==="i32")return e+="i",e;if(this.format.name==="u32")return e+="u",e;if(this.format.name==="bool")return e+="b",e;if(this.format.name==="f16")return e+="h",e}e+=`<${this.format.name}>`}else if(e==="vec2"||e==="vec3"||e==="vec4")return e;return e}}ft.vec2f=new ft("vec2",Ut.f32,null),ft.vec3f=new ft("vec3",Ut.f32,null),ft.vec4f=new ft("vec4",Ut.f32,null),ft.vec2i=new ft("vec2",Ut.i32,null),ft.vec3i=new ft("vec3",Ut.i32,null),ft.vec4i=new ft("vec4",Ut.i32,null),ft.vec2u=new ft("vec2",Ut.u32,null),ft.vec3u=new ft("vec3",Ut.u32,null),ft.vec4u=new ft("vec4",Ut.u32,null),ft.vec2h=new ft("vec2",Ut.f16,null),ft.vec3h=new ft("vec3",Ut.f16,null),ft.vec4h=new ft("vec4",Ut.f16,null),ft.vec2b=new ft("vec2",Ut.bool,null),ft.vec3b=new ft("vec3",Ut.bool,null),ft.vec4b=new ft("vec4",Ut.bool,null),ft.mat2x2f=new ft("mat2x2",Ut.f32,null),ft.mat2x3f=new ft("mat2x3",Ut.f32,null),ft.mat2x4f=new ft("mat2x4",Ut.f32,null),ft.mat3x2f=new ft("mat3x2",Ut.f32,null),ft.mat3x3f=new ft("mat3x3",Ut.f32,null),ft.mat3x4f=new ft("mat3x4",Ut.f32,null),ft.mat4x2f=new ft("mat4x2",Ut.f32,null),ft.mat4x3f=new ft("mat4x3",Ut.f32,null),ft.mat4x4f=new ft("mat4x4",Ut.f32,null),ft.mat2x2h=new ft("mat2x2",Ut.f16,null),ft.mat2x3h=new ft("mat2x3",Ut.f16,null),ft.mat2x4h=new ft("mat2x4",Ut.f16,null),ft.mat3x2h=new ft("mat3x2",Ut.f16,null),ft.mat3x3h=new ft("mat3x3",Ut.f16,null),ft.mat3x4h=new ft("mat3x4",Ut.f16,null),ft.mat4x2h=new ft("mat4x2",Ut.f16,null),ft.mat4x3h=new ft("mat4x3",Ut.f16,null),ft.mat4x4h=new ft("mat4x4",Ut.f16,null),ft.mat2x2i=new ft("mat2x2",Ut.i32,null),ft.mat2x3i=new ft("mat2x3",Ut.i32,null),ft.mat2x4i=new ft("mat2x4",Ut.i32,null),ft.mat3x2i=new ft("mat3x2",Ut.i32,null),ft.mat3x3i=new ft("mat3x3",Ut.i32,null),ft.mat3x4i=new ft("mat3x4",Ut.i32,null),ft.mat4x2i=new ft("mat4x2",Ut.i32,null),ft.mat4x3i=new ft("mat4x3",Ut.i32,null),ft.mat4x4i=new ft("mat4x4",Ut.i32,null),ft.mat2x2u=new ft("mat2x2",Ut.u32,null),ft.mat2x3u=new ft("mat2x3",Ut.u32,null),ft.mat2x4u=new ft("mat2x4",Ut.u32,null),ft.mat3x2u=new ft("mat3x2",Ut.u32,null),ft.mat3x3u=new ft("mat3x3",Ut.u32,null),ft.mat3x4u=new ft("mat3x4",Ut.u32,null),ft.mat4x2u=new ft("mat4x2",Ut.u32,null),ft.mat4x3u=new ft("mat4x3",Ut.u32,null),ft.mat4x4u=new ft("mat4x4",Ut.u32,null);class hm extends Ut{constructor(e,t,n,i){super(e),this.storage=t,this.type=n,this.access=i}get astNodeType(){return"pointer"}}class FA extends Ut{constructor(e,t,n,i){super(e),this.attributes=t,this.format=n,this.count=i}get astNodeType(){return"array"}get isArray(){return!0}}class TA extends Ut{constructor(e,t,n){super(e),this.format=t,this.access=n}get astNodeType(){return"sampler"}}class Sl extends Ga{constructor(){super(),this.postfix=null}}class rh extends Sl{constructor(e){super(),this.value=e}get astNodeType(){return"stringExpr"}toString(){return this.value}constEvaluateString(){return this.value}}class tc extends Sl{constructor(e,t){super(),this.type=e,this.args=t}get astNodeType(){return"createExpr"}search(e){if(e(this),this.args)for(const t of this.args)t.search(e)}constEvaluate(e,t){return t&&(t[0]=this.type),e.evalExpression(this,e.context)}}class ux extends Sl{constructor(e,t){super(),this.cachedReturnValue=null,this.name=e,this.args=t}get astNodeType(){return"callExpr"}setCachedReturnValue(e){this.cachedReturnValue=e}get isBuiltin(){return tO.has(this.name)}constEvaluate(e,t){return e.evalExpression(this,e.context)}search(e){for(const t of this.args)t.search(e);e(this)}}class fa extends Sl{constructor(e){super(),this.name=e}get astNodeType(){return"varExpr"}search(e){e(this),this.postfix&&this.postfix.search(e)}constEvaluate(e,t){return e.evalExpression(this,e.context)}}class dO extends Sl{constructor(e,t){super(),this.name=e,this.initializer=t}get astNodeType(){return"constExpr"}constEvaluate(e,t){if(this.initializer){const n=e.evalExpression(this.initializer,e.context);return n!==null&&this.postfix?n.getSubData(e,this.postfix,e.context):n}return null}search(e){this.initializer.search(e)}}class ws extends Sl{constructor(e,t){super(),this.value=e,this.type=t}get astNodeType(){return"literalExpr"}constEvaluate(e,t){return t!==void 0&&(t[0]=this.type),this.value}get isScalar(){return this.value instanceof it}get isVector(){return this.value instanceof Ve||this.value instanceof on}get scalarValue(){return this.value instanceof it?this.value.value:(console.error("Value is not scalar."),0)}get vectorValue(){return this.value instanceof Ve||this.value instanceof on?this.value.data:(console.error("Value is not a vector or matrix."),new Float32Array(0))}}class pO extends Sl{constructor(e,t){super(),this.type=e,this.value=t}get astNodeType(){return"bitcastExpr"}search(e){this.value.search(e)}}class cp extends Sl{constructor(e){super(),this.index=e}search(e){this.index.search(e)}}class AO extends Sl{constructor(){super()}}class ds extends AO{constructor(e,t){super(),this.operator=e,this.right=t}get astNodeType(){return"unaryOp"}constEvaluate(e,t){return e.evalExpression(this,e.context)}search(e){this.right.search(e)}}class fl extends AO{constructor(e,t,n){super(),this.operator=e,this.left=t,this.right=n}get astNodeType(){return"binaryOp"}_getPromotedType(e,t){return e.name===t.name?e:e.name==="f32"||t.name==="f32"?Ut.f32:e.name==="u32"||t.name==="u32"?Ut.u32:Ut.i32}constEvaluate(e,t){return e.evalExpression(this,e.context)}search(e){this.left.search(e),this.right.search(e)}}class gO extends Ga{constructor(e){super(),this.body=e}search(e){e(this),this.searchBlock(this.body,e)}}class dm extends Sl{constructor(){super()}get astNodeType(){return"default"}}class mO extends gO{constructor(e,t){super(t),this.selectors=e}get astNodeType(){return"case"}search(e){this.searchBlock(this.body,e)}}class _O extends gO{constructor(e){super(e)}get astNodeType(){return"default"}search(e){this.searchBlock(this.body,e)}}class JC extends Ga{constructor(e,t,n){super(),this.name=e,this.type=t,this.attributes=n}get astNodeType(){return"argument"}}class a7 extends Ga{constructor(e,t){super(),this.condition=e,this.body=t}get astNodeType(){return"elseif"}search(e){this.condition.search(e),this.searchBlock(this.body,e)}}class KC extends Ga{constructor(e,t,n){super(),this.name=e,this.type=t,this.attributes=n}get astNodeType(){return"member"}}class yO extends Ga{constructor(e,t){super(),this.name=e,this.value=t}get astNodeType(){return"attribute"}}class ja{constructor(e,t){this.parent=null,this.typeInfo=e,this.parent=t,this.id=ja._id++}clone(){throw`Clone: Not implemented for ${this.constructor.name}`}setDataValue(e,t,n,i){console.error(`SetDataValue: Not implemented for ${this.constructor.name}`)}getSubData(e,t,n){return console.error(`GetDataValue: Not implemented for ${this.constructor.name}`),null}toString(){return`<${this.typeInfo.getTypeName()}>`}}ja._id=0;class T1 extends ja{constructor(){super(new za("void",null),null)}toString(){return"void"}}T1.void=new T1;class fd extends ja{constructor(e){super(new x1("pointer",e.typeInfo,null),null),this.reference=e}clone(){return this}setDataValue(e,t,n,i){this.reference.setDataValue(e,t,n,i)}getSubData(e,t,n){return t?this.reference.getSubData(e,t,n):this}toString(){return`&${this.reference.toString()}`}}class it extends ja{constructor(e,t,n=null){super(t,n),e instanceof Int32Array||e instanceof Uint32Array||e instanceof Float32Array?this.data=e:this.t
105ypeInfo.name==="x32"?e-Math.floor(e)!==0?this.data=new Float32Array([e]):this.data=e>=0?new Uint32Array([e]):new Int32Array([e]):this.typeInfo.name==="i32"||this.typeInfo.name==="bool"?this.data=new Int32Array([e]):this.typeInfo.name==="u32"?this.data=new Uint32Array([e]):this.typeInfo.name==="f32"||this.typeInfo.name==="f16"?this.data=new Float32Array([e]):console.error("ScalarData2: Invalid type",t)}clone(){if(this.data instanceof Float32Array)return new it(new Float32Array(this.data),this.typeInfo,null);if(this.data instanceof Int32Array)return new it(new Int32Array(this.data),this.typeInfo,null);if(this.data instanceof Uint32Array)return new it(new Uint32Array(this.data),this.typeInfo,null);throw"ScalarData: Invalid data type"}get value(){return this.data[0]}set value(e){this.data[0]=e}setDataValue(e,t,n,i){if(n)return void console.error("SetDataValue: Scalar data does not support postfix",n);if(!(t instanceof it))return void console.error("SetDataValue: Invalid value",t);let s=t.data[0];this.typeInfo.name==="i32"||this.typeInfo.name==="u32"?s=Math.floor(s):this.typeInfo.name==="bool"&&(s=s?1:0),this.data[0]=s}getSubData(e,t,n){return t?(console.error("getSubData: Scalar data does not support postfix",t),null):this}toString(){return`${this.value}`}}function l7(r,e,t){const n=e.length;return n===2?t==="f32"?new Ve(new Float32Array(e),r.getTypeInfo("vec2f")):t==="i32"||t==="bool"?new Ve(new Int32Array(e),r.getTypeInfo("vec2i")):t==="u32"?new Ve(new Uint32Array(e),r.getTypeInfo("vec2u")):t==="f16"?new Ve(new Float32Array(e),r.getTypeInfo("vec2h")):(console.error(`getSubData: Unknown format ${t}`),null):n===3?t==="f32"?new Ve(new Float32Array(e),r.getTypeInfo("vec3f")):t==="i32"||t==="bool"?new Ve(new Int32Array(e),r.getTypeInfo("vec3i")):t==="u32"?new Ve(new Uint32Array(e),r.getTypeInfo("vec3u")):t==="f16"?new Ve(new Float32Array(e),r.getTypeInfo("vec3h")):(console.error(`getSubData: Unknown format ${t}`),null):n===4?t==="f32"?new Ve(new Float32Array(e),r.getTypeInfo("vec4f")):t==="i32"||t==="bool"?new Ve(new Int32Array(e),r.getTypeInfo("vec4i")):t==="u32"?new Ve(new Uint32Array(e),r.getTypeInfo("vec4u")):t==="f16"?new Ve(new Float32Array(e),r.getTypeInfo("vec4h")):(console.error(`getSubData: Unknown format ${t}`),null):(console.error(`getSubData: Invalid vector size ${e.length}`),null)}class Ve extends ja{constructor(e,t,n=null){if(super(t,n),e instanceof Float32Array||e instanceof Uint32Array||e instanceof Int32Array)this.data=e;else{const i=this.typeInfo.name;i==="vec2f"||i==="vec3f"||i==="vec4f"?this.data=new Float32Array(e):i==="vec2i"||i==="vec3i"||i==="vec4i"?this.data=new Int32Array(e):i==="vec2u"||i==="vec3u"||i==="vec4u"?this.data=new Uint32Array(e):i==="vec2h"||i==="vec3h"||i==="vec4h"?this.data=new Float32Array(e):i==="vec2b"||i==="vec3b"||i==="vec4b"?this.data=new Int32Array(e):i==="vec2"||i==="vec3"||i==="vec4"?this.data=new Float32Array(e):console.error(`VectorData: Invalid type ${i}`)}}clone(){if(this.data instanceof Float32Array)return new Ve(new Float32Array(this.data),this.typeInfo,null);if(this.data instanceof Int32Array)return new Ve(new Int32Array(this.data),this.typeInfo,null);if(this.data instanceof Uint32Array)return new Ve(new Uint32Array(this.data),this.typeInfo,null);throw"VectorData: Invalid data type"}setDataValue(e,t,n,i){n instanceof rh?console.error("TODO: Set vector postfix"):t instanceof Ve?this.data=t.data:console.error("SetDataValue: Invalid value",t)}getSubData(e,t,n){if(t===null)return this;let i=e.getTypeInfo("f32");if(this.typeInfo instanceof th)i=this.typeInfo.format||i;else{const o=this.typeInfo.name;o==="vec2f"||o==="vec3f"||o==="vec4f"?i=e.getTypeInfo("f32"):o==="vec2i"||o==="vec3i"||o==="vec4i"?i=e.getTypeInfo("i32"):o==="vec2b"||o==="vec3b"||o==="vec4b"?i=e.getTypeInfo("bool"):o==="vec2u"||o==="vec3u"||o==="vec4u"?i=e.getTypeInfo("u32"):o==="vec2h"||o==="vec3h"||o==="vec4h"?i=e.getTypeInfo("f16"):console.error(`GetSubData: Unknown type ${o}`)}let s=this;for(;t!==null&&s!==null;){if(t instanceof cp){const o=t.index;let l=-1;if(o instanceof ws){if(!(o.value instanceof it))return console.error(`GetSubData: Invalid array index ${o.value}`),null;l=o.value.value}else{const f=e.evalExpression(o,n);if(!(f instanceof it))return console.error("GetSubData: Unknown index type",o),null;l=f.value}if(l<0||l>=s.data.length)return console.error("GetSubData: Index out of range",l),null;if(s.data instanceof Float32Array){const f=new Float32Array(s.data.buffer,s.data.byteOffset+4*l,1);return new it(f,i)}if(s.data instanceof Int32Array){const f=new Int32Array(s.data.buffer,s.data.byteOffset+4*l,1);return new it(f,i)}if(s.data instanceof Uint32Array){const f=new Uint32Array(s.data.buffer,s.data.byteOffset+4*l,1);return new it(f,i)}throw"GetSubData: Invalid data type"}if(!(t instanceof rh))return console.error("GetSubData: Unknown postfix",t),null;{const o=t.value.toLowerCase();if(o.length===1){let f=0;if(o==="x"||o==="r")f=0;else if(o==="y"||o==="g")f=1;else if(o==="z"||o==="b")f=2;else{if(o!=="w"&&o!=="a")return console.error(`GetSubData: Unknown member ${o}`),null;f=3}if(this.data instanceof Float32Array){let A=new Float32Array(this.data.buffer,this.data.byteOffset+4*f,1);return new it(A,i,this)}if(this.data instanceof Int32Array){let A=new Int32Array(this.data.buffer,this.data.byteOffset+4*f,1);return new it(A,i,this)}if(this.data instanceof Uint32Array){let A=new Uint32Array(this.data.buffer,this.data.byteOffset+4*f,1);return new it(A,i,this)}}const l=[];for(const f of o)f==="x"||f==="r"?l.push(this.data[0]):f==="y"||f==="g"?l.push(this.data[1]):f==="z"||f==="b"?l.push(this.data[2]):f==="w"||f==="a"?l.push(this.data[3]):console.error(`GetDataValue: Unknown member ${f}`);s=l7(e,l,i.name)}t=t.postfix}return s}toString(){let e=`${this.data[0]}`;for(let t=1;t<this.data.length;++t)e+=`, ${this.data[t]}`;return e}}class on extends ja{constructor(e,t,n=null){super(t,n),e instanceof Float32Array?this.data=e:this.data=new Float32Array(e)}clone(){return new on(new Float32Array(this.data),this.typeInfo,null)}setDataValue(e,t,n,i){n instanceof rh?console.error("TODO: Set matrix postfix"):t instanceof on?this.data=t.data:console.error("SetDataValue: Invalid value",t)}getSubData(e,t,n){if(t===null)return this;const i=this.typeInfo.name;if(e.getTypeInfo("f32"),this.typeInfo instanceof th)this.typeInfo.format;else if(i.endsWith("f"))e.getTypeInfo("f32");else if(i.endsWith("i"))e.getTypeInfo("i32");else if(i.endsWith("u"))e.getTypeInfo("u32");else{if(!i.endsWith("h"))return console.error(`GetDataValue: Unknown type ${i}`),null;e.getTypeInfo("f16")}if(t instanceof cp){const s=t.index;let o=-1;if(s instanceof ws){if(!(s.value instanceof it))return console.error(`GetDataValue: Invalid array index ${s.value}`),null;o=s.value.value}else{const A=e.evalExpression(s,n);if(!(A instanceof it))return console.error("GetDataValue: Unknown index type",s),null;o=A.value}if(o<0||o>=this.data.length)return console.error("GetDataValue: Index out of range",o),null;const l=i.endsWith("h")?"h":"f";let f;if(i==="mat2x2"||i==="mat2x2f"||i==="mat2x2h"||i==="mat3x2"||i==="mat3x2f"||i==="mat3x2h"||i==="mat4x2"||i==="mat4x2f"||i==="mat4x2h")f=new Ve(new Float32Array(this.data.buffer,this.data.byteOffset+2*o*4,2),e.getTypeInfo(`vec2${l}`));else if(i==="mat2x3"||i==="mat2x3f"||i==="mat2x3h"||i==="mat3x3"||i==="mat3x3f"||i==="mat3x3h"||i==="mat4x3"||i==="mat4x3f"||i==="mat4x3h")f=new Ve(new Float32Array(this.data.buffer,this.data.byteOffset+3*o*4,3),e.getTypeInfo(`vec3${l}`));else{if(i!=="mat2x4"&&i!=="mat2x4f"&&i!=="mat2x4h"&&i!=="mat3x4"&&i!=="mat3x4f"&&i!=="mat3x4h"&&i!=="mat4x4"&&i!=="mat4x4f"&&i!=="mat4x4h")return console.error(`GetDataValue: Unknown type ${i}`),null;f=new Ve(new Float32Array(this.data.buffer,this.data.byteOffset+4*o*4,4),e.getTypeInfo(`vec4${l}`))}return t.postfix?f.getSubData(e,t.postfix,n):f}return console.error("GetDataValue: Invalid postfix",t),null}toString(){let e=`${this.data[0]}`;for(let t=1;t<this.data.length;++t)e+=`, ${this.data[t]}`;return e}}class ts extends ja{constructor(e,t,n=0,i=null){super(t,i),this.buffer=e instanceof ArrayBuffer?e:e.buffer,this.offset=n}clone(){const e=new Uint8Array(new Uint8Array(this.buffer,this.offset,this.typeInfo.size));return new ts(e.buffer,this.typeInfo,0,null)}setDataValue(e,t,n,i){if(t===null)return void console.log("setDataValue: NULL data.");let s=this.offset,o=this.typeInfo;for(;n;){if(n instanceof cp)if(o instanceof Wu){const l=n.index;if(l instanceof ws){if(!(l.value instanceof it))return void console.error(`SetDataValue: Invalid index type ${l.value}`);s+=l.value.value*o.stride}else{const f=e.evalExpression(l,i);if(!(f instanceof it))return void console.error("SetDataValue: Unknown index type",l);s+=f.value*o.stride}o=o.format}else console.error(`SetDataValue: Type ${o.getTypeName()} is not an array`);else{if(!(n instanceof rh))return void console.error("SetDataValue: Unknown postfix type",n);{const l=n.value;if(o instanceof zu){let f=!1;for(const A of o.members)if(A.name===l){s+=A.offset,o=A.type,f=!0;break}if(!f)return void console.error(`SetDataValue: Member ${l} not found`)}else if(o instanceof za){const f=o.getTypeName();let A=0;if(l==="x"||l==="r")A=0;else if(l==="y"||l==="g")A=1;else if(l==="z"||l==="b")A=2;else{if(l!=="w"&&l!=="a")return void console.error(`SetDataValue: Unknown member ${l}`);A=3}if(!(t instanceof it))return void console.error("SetDataValue: Invalid value",t);const v=t.value;return f==="vec2f"?void(new Float32Array(this.buffer,s,2)[A]=v):f==="vec3f"?void(new Float32Array(this.buffer,s,3)[A]=v):f==="vec4f"?void(new Float32Array(this.buffer,s,4)[A]=v):f==="vec2i"?void(new Int32Array(this.buffer,s,2)[A]=v):f==="vec3i"?void(new Int32Array(this.buffer,s,3)[A]=v):f==="vec4i"?void(new Int32Array(this.buffer,s,4)[A]=v):f==="vec2u"?void(new Uint32Array(this.buffer,s,2)[A]=v):f==="vec3u"?void(new Uint32Array(this.buffer,s,3)[A]=v):f==="vec4u"?void(new Uint32Array(this.buffer,s,4)[A]=v):void console.error(`SetDataValue: Type ${f} is not a struct`)}}}n=n.postfix}this.setData(e,t,o,s,i)}setData(e,t,n,i,s){const o=n.getTypeName();if(o!=="f32"&&o!=="f16")if(o!=="i32"&&o!=="atomic<i32>"&&o!=="x32")if(o!=="u32"&&o!=="atomic<u32>")if(o!=="bool"){if(o==="vec2f"||o==="vec2h"){const l=new Float32Array(this.buffer,i,2);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1]):(l[0]=t[0],l[1]=t[1]))}if(o==="vec3f"||o==="vec3h"){const l=new Float32Array(this.buffer,i,3);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2]):(l[0]=t[0],l[1]=t[1],l[2]=t[2]))}if(o==="vec4f"||o==="vec4h"){const l=new Float32Array(this.buffer,i,4);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3]))}if(o==="vec2i"){const l=new Int32Array(this.buffer,i,2);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1]):(l[0]=t[0],l[1]=t[1]))}if(o==="vec3i"){const l=new Int32Array(this.buffer,i,3);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2]):(l[0]=t[0],l[1]=t[1],l[2]=t[2]))}if(o==="vec4i"){const l=new Int32Array(this.buffer,i,4);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3]))}if(o==="vec2u"){const l=new Uint32Array(this.buffer,i,2);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1]):(l[0]=t[0],l[1]=t[1]))}if(o==="vec3u"){const l=new Uint32Array(this.buffer,i,3);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2]):(l[0]=t[0],l[1]=t[1],l[2]=t[2]))}if(o==="vec4u"){const l=new Uint32Array(this.buffer,i,4);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3]))}if(o==="vec2b"){const l=new Uint32Array(this.buffer,i,2);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1]):(l[0]=t[0],l[1]=t[1]))}if(o==="vec3b"){const l=new Uint32Array(this.buffer,i,3);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2]):(l[0]=t[0],l[1]=t[1],l[2]=t[2]))}if(o==="vec4b"){const l=new Uint32Array(this.buffer,i,4);return void(t instanceof Ve?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3]))}if(o==="mat2x2f"||o==="mat2x2h"){const l=new Float32Array(this.buffer,i,4);return void(t instanceof on?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3]))}if(o==="mat2x3f"||o==="mat2x3h"){const l=new Float32Array(this.buffer,i,6);return void(t instanceof on?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3],l[4]=t.data[4],l[5]=t.data[5]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3],l[4]=t[4],l[5]=t[5]))}if(o==="mat2x4f"||o==="mat2x4h"){const l=new Float32Array(this.buffer,i,8);return void(t instanceof on?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3],l[4]=t.data[4],l[5]=t.data[5],l[6]=t.data[6],l[7]=t.data[7]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3],l[4]=t[4],l[5]=t[5],l[6]=t[6],l[7]=t[7]
105))}if(o==="mat3x2f"||o==="mat3x2h"){const l=new Float32Array(this.buffer,i,6);return void(t instanceof on?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3],l[4]=t.data[4],l[5]=t.data[5]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3],l[4]=t[4],l[5]=t[5]))}if(o==="mat3x3f"||o==="mat3x3h"){const l=new Float32Array(this.buffer,i,9);return void(t instanceof on?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3],l[4]=t.data[4],l[5]=t.data[5],l[6]=t.data[6],l[7]=t.data[7],l[8]=t.data[8]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3],l[4]=t[4],l[5]=t[5],l[6]=t[6],l[7]=t[7],l[8]=t[8]))}if(o==="mat3x4f"||o==="mat3x4h"){const l=new Float32Array(this.buffer,i,12);return void(t instanceof on?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3],l[4]=t.data[4],l[5]=t.data[5],l[6]=t.data[6],l[7]=t.data[7],l[8]=t.data[8],l[9]=t.data[9],l[10]=t.data[10],l[11]=t.data[11]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3],l[4]=t[4],l[5]=t[5],l[6]=t[6],l[7]=t[7],l[8]=t[8],l[9]=t[9],l[10]=t[10],l[11]=t[11]))}if(o==="mat4x2f"||o==="mat4x2h"){const l=new Float32Array(this.buffer,i,8);return void(t instanceof on?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3],l[4]=t.data[4],l[5]=t.data[5],l[6]=t.data[6],l[7]=t.data[7]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3],l[4]=t[4],l[5]=t[5],l[6]=t[6],l[7]=t[7]))}if(o==="mat4x3f"||o==="mat4x3h"){const l=new Float32Array(this.buffer,i,12);return void(t instanceof on?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3],l[4]=t.data[4],l[5]=t.data[5],l[6]=t.data[6],l[7]=t.data[7],l[8]=t.data[8],l[9]=t.data[9],l[10]=t.data[10],l[11]=t.data[11]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3],l[4]=t[4],l[5]=t[5],l[6]=t[6],l[7]=t[7],l[8]=t[8],l[9]=t[9],l[10]=t[10],l[11]=t[11]))}if(o==="mat4x4f"||o==="mat4x4h"){const l=new Float32Array(this.buffer,i,16);return void(t instanceof on?(l[0]=t.data[0],l[1]=t.data[1],l[2]=t.data[2],l[3]=t.data[3],l[4]=t.data[4],l[5]=t.data[5],l[6]=t.data[6],l[7]=t.data[7],l[8]=t.data[8],l[9]=t.data[9],l[10]=t.data[10],l[11]=t.data[11],l[12]=t.data[12],l[13]=t.data[13],l[14]=t.data[14],l[15]=t.data[15]):(l[0]=t[0],l[1]=t[1],l[2]=t[2],l[3]=t[3],l[4]=t[4],l[5]=t[5],l[6]=t[6],l[7]=t[7],l[8]=t[8],l[9]=t[9],l[10]=t[10],l[11]=t[11],l[12]=t[12],l[13]=t[13],l[14]=t[14],l[15]=t[15]))}if(t instanceof ts){if(n===t.typeInfo)return void new Uint8Array(this.buffer,i,t.buffer.byteLength).set(new Uint8Array(t.buffer));console.error("SetDataValue: Type mismatch",o,t.typeInfo.getTypeName())}else console.error(`SetData: Unknown type ${o}`)}else t instanceof it&&(new Int32Array(this.buffer,i,1)[0]=t.value);else t instanceof it&&(new Uint32Array(this.buffer,i,1)[0]=t.value);else t instanceof it&&(new Int32Array(this.buffer,i,1)[0]=t.value);else t instanceof it&&(new Float32Array(this.buffer,i,1)[0]=t.value)}getSubData(e,t,n){var i,s,o;if(t===null)return this;let l=this.offset,f=this.typeInfo;for(;t;){if(t instanceof cp){const v=t.index,T=v instanceof Sl?e.evalExpression(v,n):v;let I=0;if(T instanceof it?I=T.value:typeof T=="number"?I=T:console.error("GetDataValue: Invalid index type",v),f instanceof Wu)l+=I*f.stride,f=f.format;else{const F=f.getTypeName();F==="mat4x4"||F==="mat4x4f"||F==="mat4x4h"?(l+=16*I,f=e.getTypeInfo("vec4f")):console.error(`getDataValue: Type ${f.getTypeName()} is not an array`)}}else{if(!(t instanceof rh))return console.error("GetDataValue: Unknown postfix type",t),null;{const v=t.value;if(f instanceof zu){let T=!1;for(const I of f.members)if(I.name===v){l+=I.offset,f=I.type,T=!0;break}if(!T)return console.error(`GetDataValue: Member ${v} not found`),null}else if(f instanceof za){const T=f.getTypeName();if(T==="vec2f"||T==="vec3f"||T==="vec4f"||T==="vec2i"||T==="vec3i"||T==="vec4i"||T==="vec2u"||T==="vec3u"||T==="vec4u"||T==="vec2b"||T==="vec3b"||T==="vec4b"||T==="vec2h"||T==="vec3h"||T==="vec4h"||T==="vec2"||T==="vec3"||T==="vec4"){if(v.length>0&&v.length<5){let I="f";const F=[];for(let N=0;N<v.length;++N){const U=v[N].toLowerCase();let $=0;if(U==="x"||U==="r")$=0;else if(U==="y"||U==="g")$=1;else if(U==="z"||U==="b")$=2;else{if(U!=="w"&&U!=="a")return console.error(`Unknown member ${v}`),null;$=3}if(v.length===1){if(T.endsWith("f"))return this.buffer.byteLength<l+4*$+4?(console.log("Insufficient buffer data"),null):new it(new Float32Array(this.buffer,l+4*$,1),e.getTypeInfo("f32"),this);if(T.endsWith("h"))return new it(new Float32Array(this.buffer,l+4*$,1),e.getTypeInfo("f16"),this);if(T.endsWith("i"))return new it(new Int32Array(this.buffer,l+4*$,1),e.getTypeInfo("i32"),this);if(T.endsWith("b"))return new it(new Int32Array(this.buffer,l+4*$,1),e.getTypeInfo("bool"),this);if(T.endsWith("u"))return new it(new Uint32Array(this.buffer,l+4*$,1),e.getTypeInfo("i32"),this)}if(T==="vec2f")F.push(new Float32Array(this.buffer,l,2)[$]);else if(T==="vec3f"){if(l+12>=this.buffer.byteLength)return console.log("Insufficient buffer data"),null;const V=new Float32Array(this.buffer,l,3);F.push(V[$])}else if(T==="vec4f")F.push(new Float32Array(this.buffer,l,4)[$]);else if(T==="vec2i")I="i",F.push(new Int32Array(this.buffer,l,2)[$]);else if(T==="vec3i")I="i",F.push(new Int32Array(this.buffer,l,3)[$]);else if(T==="vec4i")I="i",F.push(new Int32Array(this.buffer,l,4)[$]);else if(T==="vec2u"){I="u";const V=new Uint32Array(this.buffer,l,2);F.push(V[$])}else T==="vec3u"?(I="u",F.push(new Uint32Array(this.buffer,l,3)[$])):T==="vec4u"&&(I="u",F.push(new Uint32Array(this.buffer,l,4)[$]))}return F.length===2?f=e.getTypeInfo(`vec2${I}`):F.length===3?f=e.getTypeInfo(`vec3${I}
105`):F.length===4?f=e.getTypeInfo(`vec4${I}`):console.error(`GetDataValue: Invalid vector length ${F.length}`),new Ve(F,f,null)}return console.error(`GetDataValue: Unknown member ${v}`),null}return console.error(`GetDataValue: Type ${T} is not a struct`),null}}}t=t.postfix}const A=f.getTypeName();return A==="f32"?new it(new Float32Array(this.buffer,l,1),f,this):A==="i32"?new it(new Int32Array(this.buffer,l,1),f,this):A==="u32"?new it(new Uint32Array(this.buffer,l,1),f,this):A==="vec2f"?new Ve(new Float32Array(this.buffer,l,2),f,this):A==="vec3f"?new Ve(new Float32Array(this.buffer,l,3),f,this):A==="vec4f"?new Ve(new Float32Array(this.buffer,l,4),f,this):A==="vec2i"?new Ve(new Int32Array(this.buffer,l,2),f,this):A==="vec3i"?new Ve(new Int32Array(this.buffer,l,3),f,this):A==="vec4i"?new Ve(new Int32Array(this.buffer,l,4),f,this):A==="vec2u"?new Ve(new Uint32Array(this.buffer,l,2),f,this):A==="vec3u"?new Ve(new Uint32Array(this.buffer,l,3),f,this):A==="vec4u"?new Ve(new Uint32Array(this.buffer,l,4),f,this):f instanceof th&&f.name==="atomic"?((i=f.format)===null||i===void 0?void 0:i.name)==="u32"?new it(new Uint32Array(this.buffer,l,1)[0],f.format,this):((s=f.format)===null||s===void 0?void 0:s.name)==="i32"?new it(new Int32Array(this.buffer,l,1)[0],f.format,this):(console.error(`GetDataValue: Invalid atomic format ${(o=f.format)===null||o===void 0?void 0:o.name}`),null):new ts(this.buffer,f,l,this)}toString(){let e="";
105if(this.typeInfo instanceof Wu)if(this.typeInfo.format.name==="f32"){const t=new Float32Array(this.buffer,this.offset);e=`[${t[0]}`;for(let n=1;n<t.length;++n)e+=`, ${t[n]}`}else if(this.typeInfo.format.name==="i32"){const t=new Int32Array(this.buffer,this.offset);e=`[${t[0]}`;for(let n=1;n<t.length;++n)e+=`, ${t[n]}`}else if(this.typeInfo.format.name==="u32"){const t=new Uint32Array(this.buffer,this.offset);e=`[${t[0]}`;for(let n=1;n<t.length;++n)e+=`, ${t[n]}`}else if(this.typeInfo.format.name==="vec2f"){const t=new Float32Array(this.buffer,this.offset);e=`[${t[0]}, ${t[1]}]`;for(let n=1;n<t.length/2;++n)e+=`, [${t[2*n]}, ${t[2*n+1]}]`}else if(this.typeInfo.format.name==="vec3f"){const t=new Float32Array(this.buffer,this.offset);e=`[${t[0]}, ${t[1]}, ${t[2]}]`;for(let n=4;n<t.length;n+=4)e+=`, [${t[n]}, ${t[n+1]}, ${t[n+2]}]`}else if(this.typeInfo.format.name==="vec4f"){const t=new Float32Array(this.buffer,this.offset);e=`[${t[0]}, ${t[1]}, ${t[2]}, ${t[3]}]`;for(let n=4;n<t.length;n+=4)e+=`, [${t[n]}, ${t[n+1]}, ${t[n+2]}, ${t[n+3]}]`}else e="[...]";else this.typeInfo instanceof zu?e+="{...}":e="[...]";return e}}class Gc extends ja{constructor(e,t,n,i){super(t,null),this.data=e,this.descriptor=n,this.view=i}clone(){return new Gc(this.data,this.typeInfo,this.descriptor,this.view)}get width(){var e,t;const n=this.descriptor.size;return n instanceof Array&&n.length>0?(e=n[0])!==null&&e!==void 0?e:0:n instanceof Object&&(t=n.width)!==null&&t!==void 0?t:0}get height(){var e,t;const n=this.descriptor.size;return n instanceof Array&&n.length>1?(e=n[1])!==null&&e!==void 0?e:0:n instanceof Object&&(t=n.height)!==null&&t!==void 0?t:0}get depthOrArrayLayers(){var e,t;const n=this.descriptor.size;return n instanceof Array&&n.length>2?(e=n[2])!==null&&e!==void 0?e:0:n instanceof Object&&(t=n.depthOrArrayLayers)!==null&&t!==void 0?t:0}get format(){var e;return this.descriptor&&(e=this.descriptor.format)!==null&&e!==void 0?e:"rgba8unorm"}get sampleCount(){var e;return this.descriptor&&(e=this.descriptor.sampleCount)!==null&&e!==void 0?e:1}get mipLevelCount(){var e;return this.descriptor&&(e=this.descriptor.mipLevelCount)!==null&&e!==void 0?e:1}get dimension(){var e;return this.descriptor&&(e=this.descriptor.dimension)!==null&&e!==void 0?e:"2d"}getMipLevelSize(e){if(e>=this.mipLevelCount)return[0,0,0];const t=[this.width,this.height,this.depthOrArrayLayers];for(let n=0;n<t.length;++n)t[n]=Math.max(1,t[n]>>e);return t}get texelByteSize(){const e=this.format,t=hv[e];return t?t.isDepthStencil?4:t.bytesPerBlock:0}get bytesPerRow(){return this.width*this.texelByteSize}get isDepthStencil(){const e=this.format,t=hv[e];return!!t&&t.isDepthStencil}getGpuSize(){const e=this.format,t=hv[e],n=this.width;if(!e||n<=0||!t)return-1;const i=this.height,s=this.depthOrArrayLayers,o=this.dimension;return n/t.blockWidth*(o==="1d"?1:i/t.blockHeight)*t.bytesPerBlock*s}getPixel(e,t,n=0,i=0){const s=this.texelByteSize,o=this.bytesPerRow,l=this.height,f=this.data[i];return r7(new Uint8Array(f),e,t,n,i,l,o,s,this.format)}setPixel(e,t,n,i,s){const o=this.texelByteSize,l=this.bytesPerRow,f=this.height,A=this.data[i];(function(v,T,I,F,N,U,$,V,G,X){const ue=F*($>>=N)*(U>>=N)+I*$+T*V;switch(G){case"r8unorm":return void ti(v,ue,"8unorm",1,X);case"r8snorm":return void ti(v,ue,"8snorm",1,X);case"r8uint":return void ti(v,ue,"8uint",1,X);case"r8sint":return void ti(v,ue,"8sint",1,X);case"rg8unorm":return void ti(v,ue,"8unorm",2,X);case"rg8snorm":return void ti(v,ue,"8snorm",2,X);case"rg8uint":return void ti(v,ue,"8uint",2,X);case"rg8sint":return void ti(v,ue,"8sint",2,X);case"rgba8unorm-srgb":case"rgba8unorm":case"bgra8unorm-srgb":case"bgra8unorm":return void ti(v,ue,"8unorm",4,X);case"rgba8snorm":return void ti(v,ue,"8snorm",4,X);case"rgba8uint":return void ti(v,ue,"8uint",4,X);case"rgba8sint":return void ti(v,ue,"8sint",4,X);case"r16uint":return void ti(v,ue,"16uint",1,X);case"r16sint":return void ti(v,ue,"16sint",1,X);case"r16float":return void ti(v,ue,"16float",1,X);case"rg16uint":return void ti(v,ue,"16uint",2,X);case"rg16sint":return void ti(v,ue,"16sint",2,X);case"rg16float":return void ti(v,ue,"16float",2,X);case"rgba16uint":return void ti(v,ue,"16uint",4,X);case"rgba16sint":return void ti(v,ue,"16sint",4,X);case"rgba16float":return void ti(v,ue,"16float",4,X);case"r32uint":return void ti(v,ue,"32uint",1,X);case"r32sint":return void ti(v,ue,"32sint",1,X);case"depth16unorm":case"depth24plus":case"depth24plus-stencil8":case"depth32float":case"depth32float-stencil8":case"r32float":return void ti(v,ue,"32float",1,X);case"rg32uint":return void ti(v,ue,"32uint",2,X);case"rg32sint":return void ti(v,ue,"32sint",2,X);case"rg32float":return void ti(v,ue,"32float",2,X);case"rgba32uint":return void ti(v,ue,"32uint",4,X);case"rgba32sint":return void ti(v,ue,"32sint",4,X);case"rgba32float":return void ti(v,ue,"32float",4,X);case"rg11b10ufloat":console.error("TODO: rg11b10ufloat not supported for writing")}})(new Uint8Array(A),e,t,n,i,f,l,o,this.format,s)}}(r=>{r[r.token=0]="token",r[r.keyword=1]="keyword",r[r.reserved=2]="reserved"})(ot||(ot={}));class at{constructor(e,t,n){this.name=e,this.type=t,this.rule=n}toString(){return this.name}}class Fe{}_t=Fe,Fe.none=new at("",ot.reserved,""),Fe.eof=new at("EOF",ot.token,""),Fe.reserved={asm:new at("asm",ot.reserved,"asm"),bf16:new at("bf16",ot.reserved,"bf16"),do:new at("do",ot.reserved,"do"),enum:new at("enum",ot.reserved,"enum"),f16:new at("f16",ot.reserved,"f16"),f64:new at("f64",ot.reserved,"f64"),handle:new at("handle",ot.reserved,"handle"),i8:new at("i8",ot.reserved,"i8"),i16:new at("i16",ot.reserved,"i16"),i64:new at("i64",ot.reserved,"i64"),mat:new at("mat",ot.reserved,"mat"),premerge:new at("premerge",ot.reserved,"premerge"),regardless:new at("regardless",ot.reserved,"regardless"),typedef:new at("typedef",ot.reserved,"typedef"),u8:new at("u8",ot.reserved,"u8"),u16:new at("u16",ot.reserved,"u16"),u64:new at("u64",ot.reserved,"u64"),unless:new at("unless",ot.reserved,"unless"),using:new at("using",ot.reserved,"using"),vec:new at("vec",ot.reserved,"vec"),void:new at("void",ot.reserved,"void")},Fe.keywords={array:new at("array",ot.keyword,"array"),atomic:new at("atomic",ot.keyword,"atomic"),bool:new at("bool",ot.keyword,"bool"),f32:new at("f32",ot.keyword,"f32"),i32:new at("i32",ot.keyword,"i32"),mat2x2:new at("mat2x2",ot.keyword,"mat2x2"),mat2x3:new at("mat2x3",ot.keyword,"mat2x3"),mat2x4:new at("mat2x4",ot.keyword,"mat2x4"),mat3x2:new at("mat3x2",ot.keyword,"mat3x2"),mat3x3:new at("mat3x3",ot.keyword,"mat3x3"),mat3x4:ne
vendor: 11,604 bytes, line 105
105w at("mat3x4",ot.keyword,"mat3x4"),mat4x2:new at("mat4x2",ot.keyword,"mat4x2"),mat4x3:new at("mat4x3",ot.keyword,"mat4x3"),mat4x4:new at("mat4x4",ot.keyword,"mat4x4"),ptr:new at("ptr",ot.keyword,"ptr"),sampler:new at("sampler",ot.keyword,"sampler"),sampler_comparison:new at("sampler_comparison",ot.keyword,"sampler_comparison"),struct:new at("struct",ot.keyword,"struct"),texture_1d:new at("texture_1d",ot.keyword,"texture_1d"),texture_2d:new at("texture_2d",ot.keyword,"texture_2d"),texture_2d_array:new at("texture_2d_array",ot.keyword,"texture_2d_array"),texture_3d:new at("texture_3d",ot.keyword,"texture_3d"),texture_cube:new at("texture_cube",ot.keyword,"texture_cube"),texture_cube_array:new at("texture_cube_array",ot.keyword,"texture_cube_array"),texture_multisampled_2d:new at("texture_multisampled_2d",ot.keyword,"texture_multisampled_2d"),texture_storage_1d:new at("texture_storage_1d",ot.keyword,"texture_storage_1d"),texture_storage_2d:new at("texture_storage_2d",ot.keyword,"texture_storage_2d"),texture_storage_2d_array:new at("texture_storage_2d_array",ot.keyword,"texture_storage_2d_array"),texture_storage_3d:new at("texture_storage_3d",ot.keyword,"texture_storage_3d"),texture_depth_2d:new at("texture_depth_2d",ot.keyword,"texture_depth_2d"),texture_depth_2d_array:new at("texture_depth_2d_array",ot.keyword,"texture_depth_2d_array"),texture_depth_cube:new at("texture_depth_cube",ot.keyword,"texture_depth_cube"),texture_depth_cube_array:new at("texture_depth_cube_array",ot.keyword,"texture_depth_cube_array"),texture_depth_multisampled_2d:new at("texture_depth_multisampled_2d",ot.keyword,"texture_depth_multisampled_2d"),texture_external:new at("texture_external",ot.keyword,"texture_external"),u32:new at("u32",ot.keyword,"u32"),vec2:new at("vec2",ot.keyword,"vec2"),vec3:new at("vec3",ot.keyword,"vec3"),vec4:new at("vec4",ot.keyword,"vec4"),bitcast:new at("bitcast",ot.keyword,"bitcast"),block:new at("block",ot.keyword,"block"),break:new at("break",ot.keyword,"break"),case:new at("case",ot.keyword,"case"),continue:new at("continue",ot.keyword,"continue"),continuing:new at("continuing",ot.keyword,"continuing"),default:new at("default",ot.keyword,"default"),diagnostic:new at("diagnostic",ot.keyword,"diagnostic"),discard:new at("discard",ot.keyword,"discard"),else:new at("else",ot.keyword,"else"),enable:new at("enable",ot.keyword,"enable"),fallthrough:new at("fallthrough",ot.keyword,"fallthrough"),false:new at("false",ot.keyword,"false"),fn:new at("fn",ot.keyword,"fn"),for:new at("for",ot.keyword,"for"),function:new at("function",ot.keyword,"function"),if:new at("if",ot.keyword,"if"),let:new at("let",ot.keyword,"let"),const:new at("const",ot.keyword,"const"),loop:new at("loop",ot.keyword,"loop"),while:new at("while",ot.keyword,"while"),private:new at("private",ot.keyword,"private"),read:new at("read",ot.keyword,"read"),read_write:new at("read_write",ot.keyword,"read_write"),return:new at("return",ot.keyword,"return"),requires:new at("requires",ot.keyword,"requires"),storage:new at("storage",ot.keyword,"storage"),switch:new at("switch",ot.keyword,"switch"),true:new at("true",ot.keyword,"true"),alias:new at("alias",ot.keyword,"alias"),type:new at("type",ot.keyword,"type"),uniform:new at("uniform",ot.keyword,"uniform"),var:new at("var",ot.keyword,"var"),override:new at("override",ot.keyword,"override"),workgroup:new at("workgroup",ot.keyword,"workgroup"),write:new at("write",ot.keyword,"write"),r8unorm:new at("r8unorm",ot.keyword,"r8unorm"),r8snorm:new at("r8snorm",ot.keyword,"r8snorm"),r8uint:new at("r8uint",ot.keyword,"r8uint"),r8sint:new at("r8sint",ot.keyword,"r8sint"),r16uint:new at("r16uint",ot.keyword,"r16uint"),r16sint:new at("r16sint",ot.keyword,"r16sint"),r16float:new at("r16float",ot.keyword,"r16float"),rg8unorm:new at("rg8unorm",ot.keyword,"rg8unorm"),rg8snorm:new at("rg8snorm",ot.keyword,"rg8snorm"),rg8uint:new at("rg8uint",ot.keyword,"rg8uint"),rg8sint:new at("rg8sint",ot.keyword,"rg8sint"),r32uint:new at("r32uint",ot.keyword,"r32uint"),r32sint:new at("r32sint",ot.keyword,"r32sint"),r32float:new at("r32float",ot.keyword,"r32float"),rg16uint:new at("rg16uint",ot.keyword,"rg16uint"),rg16sint:new at("rg16sint",ot.keyword,"rg16sint"),rg16float:new at("rg16float",ot.keyword,"rg16float"),rgba8unorm:new at("rgba8unorm",ot.keyword,"rgba8unorm"),rgba8unorm_srgb:new at("rgba8unorm_srgb",ot.keyword,"rgba8unorm_srgb"),rgba8snorm:new at("rgba8snorm",ot.keyword,"rgba8snorm"),rgba8uint:new at("rgba8uint",ot.keyword,"rgba8uint"),rgba8sint:new at("rgba8sint",ot.keyword,"rgba8sint"),bgra8unorm:new at("bgra8unorm",ot.keyword,"bgra8unorm"),bgra8unorm_srgb:new at("bgra8unorm_srgb",ot.keyword,"bgra8unorm_srgb"),rgb10a2unorm:new at("rgb10a2unorm",ot.keyword,"rgb10a2unorm"),rg11b10float:new at("rg11b10float",ot.keyword,"rg11b10float"),rg32uint:new at("rg32uint",ot.keyword,"rg32uint"),rg32sint:new at("rg32sint",ot.keyword,"rg32sint"),rg32float:new at("rg32float",ot.keyword,"rg32float"),rgba16uint:new at("rgba16uint",ot.keyword,"rgba16uint"),rgba16sint:new at("rgba16sint",ot.keyword,"rgba16sint"),rgba16float:new at("rgba16float",ot.keyword,"rgba16float"),rgba32uint:new at("rgba32uint",ot.keyword,"rgba32uint"),rgba32sint:new at("rgba32sint",ot.keyword,"rgba32sint"),rgba32float:new at("rgba32float",ot.keyword,"rgba32float"),static_assert:new at("static_assert",ot.keyword,"static_assert")},Fe.tokens={decimal_float_literal:new at("decimal_float_literal",ot.token,/((-?[0-9]*\.[0-9]+|-?[0-9]+\.[0-9]*)((e|E)(\+|-)?[0-9]+)?[fh]?)|(-?[0-9]+(e|E)(\+|-)?[0-9]+[fh]?)|(-?[0-9]+[fh])/),hex_float_literal:new at("hex_float_literal",ot.token,/-?0x((([0-9a-fA-F]*\.[0-9a-fA-F]+|[0-9a-fA-F]+\.[0-9a-fA-F]*)((p|P)(\+|-)?[0-9]+[fh]?)?)|([0-9a-fA-F]+(p|P)(\+|-)?[0-9]+[fh]?))/),int_literal:new at("int_literal",ot.token,/-?0x[0-9a-fA-F]+|0i?|-?[1-9][0-9]*i?/),uint_literal:new at("uint_literal",ot.token,/0x[0-9a-fA-F]+u|0u|[1-9][0-9]*u/),name:new at("name",ot.token,/([_\p{XID_Start}][\p{XID_Continue}]+)|([\p{XID_Start}])/u),ident:new at("ident",ot.token,/[_a-zA-Z][0-9a-zA-Z_]*/),and:new at("and",ot.token,"&"),and_and:new at("and_and",ot.token,"&&"),arrow:new at("arrow ",ot.token,"->"),attr:new at("attr",ot.token,"@"),forward_slash:new at("forward_slash",ot.token,"/"),bang:new at("bang",ot.token,"!"),bracket_left:new at("bracket_left",ot.token,"["),bracket_right:new at("bracket_right",ot.token,"]"),brace_left:new at("brace_left",ot.token,"{"),brace_right:new at("brace_right",ot.token,"}"),colon:new at("colon",ot.token,":"),comma:new at("comma",ot.token,","),equal:new at("equal",ot.token,"="),equal_equal:new at("equal_equal",ot.token,"=="),not_equal:new at("not_equal",ot.token,"!="),greater_than:new at("greater_than",ot.token,">"),greater_than_equal:new at("greater_than_equal",ot.token,">="),shift_right:new at("shift_right",ot.token,">>"),less_than:new at("less_than",ot.token,"<"),less_than_equal:new at("less_than_equal",ot.token,"<="),shift_left:new at("shift_left",ot.token,"<<"),modulo:new at("modulo",ot.token,"%"),minus:new at("minus",ot.token,"-"),minus_minus:new at("minus_minus",ot.token,"--"),period:new at("period",ot.token,"."),plus:new at("plus",ot.token,"+"),plus_plus:new at("plus_plus",ot.token,"++"),or:new at("or",ot.token,"|"),or_or:new at("or_or",ot.token,"||"),paren_left:new at("paren_left",ot.token,"("),paren_right:new at("paren_right",ot.token,")"),semicolon:new at("semicolon",ot.token,";"),star:new at("star",ot.token,"*"),tilde:new at("tilde",ot.token,"~"),underscore:new at("underscore",ot.token,"_"),xor:new at("xor",ot.token,"^"),plus_equal:new at("plus_equal",ot.token,"+="),minus_equal:new at("minus_equal",ot.token,"-="),times_equal:new at("times_equal",ot.token,"*="),division_equal:new at("division_equal",ot.token,"/="),modulo_equal:new at("modulo_equal",ot.token,"%="),and_equal:new at("and_equal",ot.token,"&="),or_equal:new at("or_equal",ot.token,"|="),xor_equal:new at("xor_equal",ot.token,"^="),shift_right_equal:new at("shift_right_equal",ot.token,">>="),shift_left_equal:new at("shift_left_equal",ot.token,"<<=")},Fe.simpleTokens={"@":_t.tokens.attr,"{":_t.tokens.brace_left,"}":_t.tokens.brace_right,":":_t.tokens.colon,",":_t.tokens.comma,"(":_t.tokens.paren_left,")":_t.tokens.paren_right,";":_t.tokens.semicolon},Fe.literalTokens={"&":_t.tokens.and,"&&":_t.tokens.and_and,"->":_t.tokens.arrow,"/":_t.tokens.forward_slash,"!":_t.tokens.bang,"[":_t.tokens.bracket_left,"]":_t.tokens.bracket_right,"=":_t.tokens.equal,"==":_t.tokens.equal_equal,"!=":_t.tokens.not_equal,">":_t.tokens.greater_than,">=":_t.tokens.greater_than_equal,">>":_t.tokens.shift_right,"<":_t.tokens.less_than,"<=":_t.tokens.less_than_equal,"<<":_t.tokens.shift_left,"%":_t.tokens.modulo,"-":_t.tokens.minus,"--":_t.tokens.minus_minus,".":_t.tokens.period,"+":_t.tokens.plus,"++":_t.tokens.plus_plus,"|":_t.tokens.or,"||":_t.tokens.or_or,"*":_t.tokens.star,"~":_t.tokens.tilde,_:_t.tokens.underscore,"^":_t.tokens.xor,"+=":_t.tokens.plus_equal,"-=":_t.tokens.minus_equal,"*=":_t.tokens.times_equal,"/=":_t.tokens.division_equal,"%=":_t.tokens.modulo_equal,"&=":_t.tokens.and_equal,"|=":_t.tokens.or_equal,"^=":_t.tokens.xor_equal,">>=":_t.tokens.shift_right_equal,"<<=":_t.tokens.shift_left_equal},Fe.regexTokens={decimal_float_literal:_t.tokens.decimal_float_literal,hex_float_literal:_t.tokens.hex_float_literal,int_literal:_t.tokens.int_literal,uint_literal:_t.tokens.uint_literal,ident:_t.tokens.ident},Fe.storage_class=[_t.keywords.function,_t.keywords.private,_t.keywords.workgroup,_t.keywords.uniform,_t.keywords.storage],Fe.access_mode=[_t.keywords.read,_t.keywords.write,_t.keywords.read_write],Fe.sampler_type=[_t.keywords.sampler,_t.keywords.sampler_comparison],Fe.sampled_texture_type=[_t.keywords.texture_1d,_t.keywords.texture_2d,_t.keywords.texture_2d_array,_t.keywords.texture_3d,_t.keywords.texture_cube,_t.keywords.texture_cube_array],Fe.multisampled_texture_type=[_t.keywords.texture_multisampled_2d],Fe.storage_texture_type=[_t.keywords.texture_storage_1d,_t.keywords.texture_storage_2d,_t.keywords.texture_storage_2d_array,_t.keywords.texture_storage_3d],Fe.depth_texture_type=[_t.keywords.texture_depth_2d,_t.keywords.texture_depth_2d_array,_t.keywords.texture_depth_cube,_t.keywords.texture_depth_cube_array,_t.keywords.texture_depth_multisampled_2d],Fe.texture_external_type=[_t.keywords.texture_external],Fe.any_texture_type=[..._t.sampled_texture_type,..._t.multisampled_texture_type,..._t.storage_texture_type,..._t.depth_texture_type,..._t.texture_external_type],Fe.texel_format=[_t.keywords.r8unorm,_t.keywords.r8snorm,_t.keywords.r8uint,_t.keywords.r8sint,_t.keywords.r16uint,_t.keywords.r16sint,_t.keywords.r16float,_t.keywords.rg8unorm,_t.keywords.rg8snorm,_t.keywords.rg8uint,_t.keywords.rg8sint,_t.keywords.r32uint,_t.keywords.r32sint,_t.keywords.r32float,_t.keywords.rg16uint,_t.keywords.rg16sint,_t.keywords.rg16float,_t.keywords.rgba8unorm,_t.keywords.rgba8unorm_srgb,_t.keywords.rgba8snorm,_t.keywords.rgba8uint,_t.keywords.rgba8sint,_t.keywords.bgra8unorm,_t.keywords.bgra8unorm_srgb,_t.keywords.rgb10a2unorm,_t.keywords.rg11b10float,_t.keywords.rg32uint,_t.keywords.rg32sint,_t.keywords.rg32float,_t.keywords.rgba16uint,_t.keywords.rgba16sint,_t.keywords.rgba16float,_t.keywords.rgba32uint,_t.keywords.rgba32sint,_t.keywords.rgba32float],Fe.const_literal=[_t.tokens.int_literal,_t.tokens.uint_literal,_t.tokens.decimal_float_literal,_t.tokens.hex_float_literal,_t.keywords.true,_t.keywords.false],Fe.literal_or_ident=[_t.tokens.ident,_t.tokens.int_literal,_t.tokens.uint_literal,_t.tokens.decimal_float_literal,_t.tokens.hex_float_literal,_t.tokens.name],Fe.element_c
105ount_expression=[_t.tokens.int_literal,_t.tokens.uint_literal,_t.tokens.ident],Fe.template_types=[_t.keywords.vec2,_t.keywords.vec3,_t.keywords.vec4,_t.keywords.mat2x2,_t.keywords.mat2x3,_t.keywords.mat2x4,_t.keywords.mat3x2,_t.keywords.mat3x3,_t.keywords.mat3x4,_t.keywords.mat4x2,_t.keywords.mat4x3,_t.keywords.mat4x4,_t.keywords.atomic,_t.keywords.bitcast,..._t.any_texture_type],Fe.attribute_name=[_t.tokens.ident,_t.keywords.block,_t.keywords.diagnostic],Fe.assignment_operators=[_t.tokens.equal,_t.tokens.plus_equal,_t.tokens.minus_equal,_t.tokens.times_equal,_t.tokens.division_equal,_t.tokens.modulo_equal,_t.tokens.and_equal,_t.tokens.or_equal,_t.tokens.xor_equal,_t.tokens.shift_right_equal,_t.tokens.shift_left_equal],Fe.increment_operators=[_t.tokens.plus_plus,_t.tokens.minus_minus];class ZC{constructor(e,t,n,i,s){this.type=e,this.lexeme=t,this.line=n,this.start=i,this.end=s}toString(){return this.lexeme}isTemplateType(){return Fe.template_types.indexOf(this.type)!=-1}isArrayType(){return this.type==Fe.keywords.array}isArrayOrTemplateType(){return this.isArrayType()||this.isTemplateType()}}class c7{constructor(e){this._tokens=[],this._start=0,this._current=0,this._line=1,this._source=e??""}scanTokens(){for(;!this._isAtEnd();)if(this._start=this._current,!this.scanToken())throw`Invalid syntax at line ${this._line}`;return this._tokens.push(new ZC(Fe.eof,"",this._line,this._current,this._current)),this._tokens}scanToken(){let e=this._advance();if(e==` 106`)return this._line++,!0;if(this._isWhitespace(e))return!0;if(e=="/"){if(this._peekAhead()=="/"){for(;e!=` 107`;){if(this._isAtEnd())return!0;e=this._advance()}return this._line++,!0}if(this._peekAhead()=="*"){this._advance();let o=1;for(;o>0;){if(this._isAtEnd())return!0;if(e=this._advance(),e==` 108`)this._line++;else if(e=="*"){if(this._peekAhead()=="/"&&(this._advance(),o--,o==0))return!0}else e=="/"&&this._peekAhead()=="*"&&(this._advance(),o++)}return!0}}const t=Fe.simpleTokens[e];if(t)return this._addToken(t),!0;let n=Fe.none;const i=this._isAlpha(e),s=e==="_";if(this._isAlphaNumeric(e)){let o=this._peekAhead();for(;this._isAlphaNumeric(o);)e+=this._advance(),o=this._peekAhead()}if(i){const o=Fe.keywords[e];if(o)return this._addToken(o),!0}if(i||s)return this._addToken(Fe.tokens.ident),!0;for(;;){let o=this._findType(e);const l=this._peekAhead();if(e=="-"&&this._tokens.length>0){if(l=="=")return this._current++,e+=l,this._addToken(Fe.tokens.minus_equal),!0;if(l=="-")return this._current++,e+=l,this._addToken(Fe.tokens.minus_minus),!0;const f=this._tokens.length-1;if((Fe.literal_or_ident.indexOf(this._tokens[f].type)!=-1||this._tokens[f].type==Fe.tokens.paren_right)&&l!=">")return this._addToken(o),!0}if(e==">"&&(l==">"||l=="=")){let f=!1,A=this._tokens.length-1;for(let v=0;v<5&&A>=0&&Fe.assignment_operators.indexOf(this._tokens[A].type)===-1;++v,--A)if(this._tokens[A].type===Fe.tokens.less_than){A>0&&this._tokens[A-1].isArrayOrTemplateType()&&(f=!0);break}if(f)return this._addToken(o),!0}if(o===Fe.none){let f=e,A=0;const v=2;for(let T=0;T<v;++T)if(f+=this._peekAhead(T),o=this._findType(f),o!==Fe.none){A=T;break}if(o===Fe.none)return n!==Fe.none&&(this._current--,this._addToken(n),!0);e=f,this._current+=A+1}if(n=o,this._isAtEnd())break;e+=this._advance()}return n!==Fe.none&&(this._addToken(n),!0)}_findType(e){for(const n in Fe.regexTokens){const i=Fe.regexTokens[n];if(this._match(e,i.rule))return i}return Fe.literalTokens[e]||Fe.none}_match(e,t){const n=t.exec(e);return n&&n.index==0&&n[0]==e}_isAtEnd(){return this._current>=this._source.length}_isAlpha(e){return!this._isNumeric(e)&&!this._isWhitespace(e)&&e!=="_"&&e!=="."&&e!=="("&&e!==")"&&e!=="["&&e!=="]"&&e!=="{"&&e!=="}"&&e!==","&&e!==";"&&e!==":"&&e!=="="&&e!=="!"&&e!=="<"&&e!==">"&&e!=="+"&&e!=="-"&&e!=="*"&&e!=="/"&&e!=="%"&&e!=="&"&&e!=="|"&&e!=="^"&&e!=="~"&&e!=="@"&&e!=="#"&&e!=="?"&&e!=="'"&&e!=="`"&&e!=='"'&&e!=="\\"&&e!==` 109`&&e!=="\r"&&e!==" "&&e!=="\0"}_isNumeric(e){return e>="0"&&e<="9"}_isAlphaNumeric(e){return this._isAlpha(e)||this._isNumeric(e)||e==="_"}_isWhitespace(e){return e==" "||e==" "||e=="\r"}_advance(e=0){let t=this._source[this._current];return e=e||0,e++,this._current+=e,t}_peekAhead(e=0){return e=e||0,this._current+e>=this._source.length?"\0":this._source[this._current+e]}_addToken(e){const t=this._source.substring(this._start,this._current);this._tokens.push(new ZC(e,t,this._line,this._start,this._current))}}function gr(r){return Array.isArray(r)||r?.buffer instanceof ArrayBuffer}const Gm=new Float32Array(1),u7=new Uint32Array(Gm.buffer),f7=new Uint32Array(Gm.buffer),Hm=new Int32Array(1),h7=new Float32Array(Hm.buffer),d7=new Uint32Array(Hm.buffer),Wm=new Uint32Array(1),p7=new Float32Array(Wm.buffer),A7=new Int32Array(Wm.buffer);function YC(r,e,t){if(e===t)return r;if(e==="f32"){if(t==="i32"||t==="x32")return Gm[0]=r,u7[0];if(t==="u32")return Gm[0]=r,f7[0]}else if(e==="i32"||e==="x32"){if(t==="f32")return Hm[0]=r,h7[0];if(t==="u32")return Hm[0]=r,d7[0]}else if(e==="u32"){if(t==="f32")return Wm[0]=r,p7[0];if(t==="i32"||t==="x32")return Wm[0]=r,A7[0]}return console.error(`Unsupported cast from ${e} to ${t}`),r}class g7{constructor(e){this.resources=null,this.inUse=!1,this.info=null,this.node=e}}class g0{constructor(e,t){this.align=e,this.size=t}}class oc{constructor(){this.uniforms=[],this.storage=[],this.textures=[],this.samplers=[],this.aliases=[],this.overrides=[],this.structs=[],this.entry=new Yz,this.functions=[],this._types=new Map,this._functions=new Map}_isStorageTexture(e){return e.name=="texture_storage_1d"||e.name=="texture_storage_2d"||e.name=="texture_storage_2d_array"||e.name=="texture_storage_3d"}updateAST(e){for(const t of e)t instanceof ZA&&this._functions.set(t.name,new g7(t));for(const t of e)if(t instanceof jc){const n=this.getTypeInfo(t,null);n instanceof zu&&this.structs.push(n)}for(const t of e)if(t instanceof cx)this.aliases.push(this._getAliasInfo(t));else{if(t instanceof ax){const n=t,i=this._getAttributeNum(n.attributes,"id",0),s=n.type!=null?this.getTypeInfo(n.type,n.attributes):null;this.overrides.push(new Jz(n.name,s,n.attributes,i));continue}if(this._isUniformVar(t)){const n=t,i=this._getAttributeNum(n.attributes,"group",0),s=this._getAttributeNum(n.attributes,"binding",0),o=this.getTypeInfo(n.type,n.attributes),l=new A0(n.name,o,i,s,n.attributes,Nu.Uniform,n.access);l.access||(l.access="read"),this.uniforms.push(l);continue}if(this._isStorageVar(t)){const n=t,i=this._getAttributeNum(n.attributes,"group",0),s=this._getAttributeNum(n.attributes,"binding",0),o=this.getTypeInfo(n.type,n.attributes),l=this._isStorageTexture(o),f=new A0(n.name,o,i,s,n.attributes,l?Nu.StorageTexture:Nu.Storage,n.access);f.access||(f.access="read"),this.storage.push(f);continue}if(this._isTextureVar(t)){const n=t,i=this._getAttributeNum(n.attributes,"group",0),s=this._getAttributeNum(n.attributes,"binding",0),o=this.getTypeInfo(n.type,n.attributes),l=this._isStorageTexture(o),f=new A0(n.name,o,i,s,n.attributes,l?Nu.StorageTexture:Nu.Texture,n.access);f.access||(f.access="read"),l?this.storage.push(f):this.textures.push(f);continue}if(this._isSamplerVar(t)){const n=t,i=this._getAttributeNum(n.attributes,"group",0),s=this._getAttributeNum(n.attributes,"binding",0),o=this.getTypeInfo(n.type,n.attributes),l=new A0(n.name,o,i,s,n.attributes,Nu.Sampler,n.access);this.samplers.push(l);continue}}for(const t of e)if(t instanceof ZA){const n=this._getAttribute(t,"vertex"),i=this._getAttribute(t,"fragment"),s=this._getAttribute(t,"compute"),o=n||i||s,l=new Zz(t.name,o?.name,t.attributes);l.attributes=t.attributes,l.startLine=t.startLine,l.endLine=t.endLine,this.functions.push(l),this._functions.get(t.name).info=l,o&&(this._functions.get(t.name).inUse=!0,l.inUse
109=!0,l.resources=this._findResources(t,!!o),l.inputs=this._getInputs(t.args),l.outputs=this._getOutputs(t.returnType),this.entry[o.name].push(l)),l.arguments=t.args.map(f=>new Kz(f.name,this.getTypeInfo(f.type,f.attributes),f.attributes)),l.returnType=t.returnType?this.getTypeInfo(t.returnType,t.attributes):null;continue}for(const t of this._functions.values())t.info&&(t.info.inUse=t.inUse,this._addCalls(t.node,t.info.calls));for(const t of this._functions.values())t.node.search(n=>{var i,s,o;if(n instanceof yO){if(n.value)if(gr(n.value))for(const l of n.value)for(const f of this.overrides)l===f.name&&((i=t.info)===null||i===void 0||i.overrides.push(f));else for(const l of this.overrides)n.value===l.name&&((s=t.info)===null||s===void 0||s.overrides.push(l))}else if(n instanceof fa)for(const l of this.overrides)n.name===l.name&&((o=t.info)===null||o===void 0||o.overrides.push(l))});for(const t of this.uniforms)this._markStructsInUse(t.type);for(const t of this.storage)this._markStructsInUse(t.type)}getFunctionInfo(e){for(const t of this.functions)if(t.name==e)return t;return null}getStructInfo(e){for(const t of this.structs)if(t.name==e)return t;return null}getOverrideInfo(e){for(const t of this.overrides)if(t.name==e)return t;return null}_markStructsInUse(e){if(e)if(e.isStruct){if(e.inUse=!0,e.members)for(const t of e.members)this._markStructsInUse(t.type)}else if(e.isArray)this._markStructsInUse(e.format);else if(e.isTemplate)e.format&&this._markStructsInUse(e.format);else{const t=this._getAlias(e.name);t&&this._markStructsInUse(t)}}_addCalls(e,t){var n;for(const i of e.calls){const s=(n=this._functions.get(i.name))===null||n===void 0?void 0:n.info;s&&t.add(s)}}findResource(e,t,n){if(n){for(const i of this.entry.compute)if(i.name===n){for(const s of i.resources)if(s.group==e&&s.binding==t)return s}for(const i of this.entry.vertex)if(i.name===n){for(const s of i.resources)if(s.group==e&&s.binding==t)return s}for(const i of this.entry.fragment)if(i.name===n){for(const s of i.resources)if(s.group==e&&s.binding==t)return s}}for(const i of this.uniforms)if(i.group==e&&i.binding==t)return i;for(const i of this.storage)if(i.group==e&&i.binding==t)return i;for(const i of this.textures)if(i.group==e&&i.binding==t)return i;for(const i of this.samplers)if(i.group==e&&i.binding==t)return i;return null}_findResource(e){for(const t of this.uniforms)if(t.name==e)return t;for(const t of this.storage)if(t.name==e)return t;for(const t of this.textures)if(t.name==e)return t;for(const t of this.samplers)if(t.name==e)return t;return null}_markStructsFromAST(e){const t=this.getTypeInfo(e,null);this._markStructsInUse(t)}_findResources(e,t){const n=[],i=this,s=[];return e.search(o=>{if(o instanceof Vm)s.push({});else if(o instanceof jm)s.pop();else if(o instanceof Hc){const l=o;t&&l.type!==null&&this._markStructsFromAST(l.type),s.length>0&&(s[s.length-1][l.name]=l)}else if(o instanceof tc){const l=o;t&&l.type!==null&&this._markStructsFromAST(l.type)}else if(o instanceof DA){const l=o;t&&l.type!==null&&this._markStructsFromAST(l.type),s.length>0&&(s[s.length-1][l.name]=l)}else if(o instanceof fa){const l=o;if(s.length>0&&s[s.length-1][l.name])return;const f=i._findResource(l.name);f&&n.push(f)}else if(o instanceof ux){const l=o,f=i._functions.get(l.name);f&&(t&&(f.inUse=!0),e.calls.add(f.node),f.resources===null&&(f.resources=i._findResources(f.node,t)),n.push(...f.resources))}else if(o instanceof lx){const l=o,f=i._functions.get(l.name);f&&(t&&(f.inUse=!0),e.calls.add(f.node),f.resources===null&&(f.resources=i._findResources(f.node,t)),n.push(...f.resources))}}),[...new Map(n.map(o=>[o.name,o])).values()]}getBindGroups(){const e=[];function t(n,i){n>=e.length&&(e.length=n+1),e[n]===void 0&&(e[n]=[]),i>=e[n].length&&(e[n].length=i+1)}for(const n of this.uniforms)t(n.group,n.binding),e[n.group][n.binding]=n;for(const n of this.storage)t(n.group,n.binding),e[n.group][n.binding]=n;for(const n of this.textures)t(n.group,n.binding),e[n.group][n.binding]=n;for(const n of this.samplers)t(n.group,n.binding),e[n.group][n.binding]=n;return e}_getOutputs(e,t=void 0){if(t===void 0&&(t=[]),e instanceof jc)this._getStructOutputs(e,t);else{const n=this._getOutputInfo(e);n!==null&&t.push(n)}return t}_getStructOutputs(e,t){for(const n of e.members)if(n.type instanceof jc)this._getStructOutputs(n.t
vendor: 4,146 bytes, line 109
109ype,t);else{const i=this._getAttribute(n,"location")||this._getAttribute(n,"builtin");if(i!==null){const s=this.getTypeInfo(n.type,n.type.attributes),o=this._parseInt(i.value),l=new $C(n.name,s,i.name,o);t.push(l)}}}_getOutputInfo(e){const t=this._getAttribute(e,"location")||this._getAttribute(e,"builtin");if(t!==null){const n=this.getTypeInfo(e,e.attributes),i=this._parseInt(t.value);return new $C("",n,t.name,i)}return null}_getInputs(e,t=void 0){t===void 0&&(t=[]);for(const n of e)if(n.type instanceof jc)this._getStructInputs(n.type,t);else{const i=this._getInputInfo(n);i!==null&&t.push(i)}return t}_getStructInputs(e,t){for(const n of e.members)if(n.type instanceof jc)this._getStructInputs(n.type,t);else{const i=this._getInputInfo(n);i!==null&&t.push(i)}}_getInputInfo(e){const t=this._getAttribute(e,"location")||this._getAttribute(e,"builtin");if(t!==null){const n=this._getAttribute(e,"interpolation"),i=this.getTypeInfo(e.type,e.attributes),s=this._parseInt(t.value),o=new qz(e.name,i,t.name,s);return n!==null&&(o.interpolation=this._parseString(n.value)),o}return null}_parseString(e){return e instanceof Array&&(e=e[0]),e}_parseInt(e){e instanceof Array&&(e=e[0]);const t=parseInt(e);return isNaN(t)?e:t}_getAlias(e){for(const t of this.aliases)if(t.name==e)return t.type;return null}_getAliasInfo(e){return new Xz(e.name,this.getTypeInfo(e.type,null))}getTypeInfoByName(e){for(const t of this.structs)if(t.name==e)return t;for(const t of this.aliases)if(t.name==e)return t.type;return null}getTypeInfo(e,t=null){if(this._types.has(e))return this._types.get(e);if(e instanceof hm){const i=e.type?this.getTypeInfo(e.type,e.attributes):null,s=new x1(e.name,i,t);return this._types.set(e,s),this._updateTypeInfo(s),s}if(e instanceof FA){const i=e,s=i.format?this.getTypeInfo(i.format,i.attributes):null,o=new Wu(i.name,t);return o.format=s,o.count=i.count,this._types.set(e,o),this._updateTypeInfo(o),o}if(e instanceof jc){const i=e,s=new zu(i.name,t);s.startLine=i.startLine,s.endLine=i.endLine;for(const o of i.members){const l=this.getTypeInfo(o.type,o.attributes);s.members.push(new WC(o.name,l,o.attributes))}return this._types.set(e,s),this._updateTypeInfo(s),s}if(e instanceof TA){const i=e,s=i.format instanceof Ut,o=i.format?s?this.getTypeInfo(i.format,null):new za(i.format,null):null,l=new th(i.name,o,t,i.access);return this._types.set(e,l),this._updateTypeInfo(l),l}if(e instanceof ft){const i=e,s=i.format?this.getTypeInfo(i.format,null):null,o=new th(i.name,s,t,i.access);return this._types.set(e,o),this._updateTypeInfo(o),o}const n=new za(e.name,t);return this._types.set(e,n),this._updateTypeInfo(n),n}_updateTypeInfo(e){var t,n,i;const s=this._getTypeSize(e);if(e.size=(t=s?.size)!==null&&t!==void 0?t:0,e instanceof Wu&&e.format){const o=this._getTypeSize(e.format);e.stride=Math.max((n=o?.size)!==null&&n!==void 0?n:0,(i=o?.align)!==null&&i!==void 0?i:0),this._updateTypeInfo(e.format)}e instanceof x1&&this._updateTypeInfo(e.format),e instanceof zu&&this._updateStructInfo(e)}_updateStructInfo(e){var t;let n=0,i=0,s=0,o=0;for(let l=0,f=e.members.length;l<f;++l){const A=e.members[l],v=this._getTypeSize(A);if(!v)continue;(t=this._getAlias(A.type.name))!==null&&t!==void 0||A.type;const T=v.align,I=v.size;n=this._roundUp(T,n+i),i=I,s=n,o=Math.max(o,T),A.offset=n,A.size=I,this._updateTypeInfo(A.type)}e.size=this._roundUp(o,s+i),e.align=o}_getTypeSize(e){var t,n;if(e==null)return null;const i=this._getAttributeNum(e.attributes,"size",0),s=this._getAttributeNum(e.attributes,"align",0);if(e instanceof WC&&(e=e.type),e instanceof za){const o=this._getAlias(e.name);o!==null&&(e=o)}{const o=oc._typeInfo[e.name];if(o!==void 0){const l=((t=e.format)===null||t===void 0?void 0:t.name)==="f16"?2:1;return new g0(Math.max(s,o.align/l),Math.max(i,o.size/l))}}{const o=oc._typeInfo[e.name.substring(0,e.name.length-1)];if(o){const l=e.name[e.name.length-1]==="h"?2:1;return new g0(Math.max(s,o.align/l),Math.max(i,o.size/l))}}if(e instanceof Wu){let o=e,l=8,f=8;const A=this._getTypeSize(o.format);return A!==null&&(f=A.size,l=A.align),f=o.count*this._getAttributeNum((n=e?.attributes)!==null&&n!==void 0?n:null,"
109stride",this._roundUp(l,f)),i&&(f=i),new g0(Math.max(s,l),Math.max(i,f))}if(e instanceof zu){let o=0,l=0,f=0,A=0,v=0;for(const T of e.members){const I=this._getTypeSize(T.type);I!==null&&(o=Math.max(I.align,o),f=this._roundUp(I.align,f+A),A=I.size,v=f)}return l=this._roundUp(o,v+A),new g0(Math.max(s,o),Math.max(i,l))}return null}_isUniformVar(e){return e instanceof Hc&&e.storage=="uniform"}_isStorageVar(e){return e instanceof Hc&&e.storage=="storage"}_isTextureVar(e){return e instanceof Hc&&e.type!==null&&oc._textureTypes.indexOf(e.type.name)!=-1}_isSamplerVar(e){return e instanceof Hc&&e.type!==null&&oc._samplerTypes.indexOf(e.type.name)!=-1}_getAttribute(e,t){const n=e;if(!n||!n.attributes)return null;const i=n.attributes;for(let s of i)if(s.name==t)return s;return null}_getAttributeNum(e,t,n){if(e===null)return n;for(let i of e)if(i.name==t){let s=i!==null&&i.value!==null?i.value:n;return s instanceof Array&&(s=s[0]),typeof s=="number"?s:typeof s=="string"?parseInt(s):n}return n}_roundUp(e,t){return Math.ceil(t/e)*e}}oc._typeInfo={f16:{align:2,size:2},i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},atomic:{align:4,size:4},vec2:{align:8,size:8},vec3:{align:16,size:12},vec4:{align:16,size:16},mat2x2:{align:8,size:16},mat3x2:{align:8,size:24},mat4x2:{align:8,size:32},mat2x3:{align:16,size:32},mat3x3:{align:16,size:48},mat4x3:{align:16,size:64},mat2x4:{align:16,size:32},mat3x4:{align:16,size:48},mat4x4:{align:16,size:64}},oc._textureTypes=Fe.any_texture_type.map(r=>r.name),oc._samplerTypes=Fe.sampler_type.map(r=>r.name);let fx=0;class hx{constructor(e,t,n){this.id=fx++,this.name=e,this.value=t,this.node=n}clone(){return new hx(this.name,this.value,this.node)}}class dx{constructor(e){this.id=fx++,this.name=e.name,this.node=e}clone(){return new dx(this.node)}}class px{constructor(e){this.parent=null,this.variables=new Map,this.functions=new Map,this.currentFunctionName="",this.id=fx++,e&&(this.parent=e,this.currentFunctionName=e.currentFunctionName)}getVariable(e){var t;return this.variables.has(e)?(t=this.variables.get(e))!==null&&t!==void 0?t:null:this.parent?this.parent.getVariable(e):null}getFunction(e){var t;return this.functions.has(e)?(t=this.functions.get(e))!==null&&t!==void 0?t:null:this.parent?this.parent.getFunction(e):null}createVariable(e,t,n){this.variables.set(e,new hx(e,t,n??null))}setVariable(e,t,n){const i=this.getVariable(e);i!==null?i.value=t:this.createVariable(e,t,n)}getVariableValue(e){var t;const n=this.getVariable(e);return(t=n?.value)!==null&&t!==void 0?t:null}clone(){return new px(this)}}class m7{evalExpression(e,t){return null}getTypeInfo(e){return null}getVariableName(e,t){return""}}class _7{constructor(e){this.exec=e}getTypeInfo(e){return this.exec.getTypeInfo(e)}All(e,t){const n=this.exec.evalExpression(e.args[0],t);let i=!0;if(n instanceof Ve)return n.data.forEach(s=>{s||(i=!1)}),new it(i?1:0,this.getTypeInfo("bool"));throw new Error(`All() expects a vector argument. Line ${e.line}`)}Any(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve){const i=n.data.some(s=>s);return new it(i?1:0,this.getTypeInfo("bool"))}throw new Error(`Any() expects a vector argument. Line ${e.line}`)}Select(e,t){const n=this.exec.evalExpression(e.args[2],t);if(!(n instanceof it))throw new Error(`Select() expects a bool condition. Line ${e.line}`);return n.value?this.exec.evalExpression(e.args[1],t):this.exec.evalExpression(e.args[0],t)}ArrayLength(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.evalExpression(n,t);if(i instanceof ts&&i.typeInfo.size===0){const s=i.typeInfo,o=i.buffer.byteLength/s.stride;return new it(o,this.getTypeInfo("u32"))}return new it(i.typeInfo.size,this.getTypeInfo("u32"))}Abs(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.abs(s)),n.typeInfo);const i=n;return new it(Math.abs(i.value),i.typeInfo)}Acos(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.acos(s)),n.typeInfo);const i=n;return new it(Math.acos(i.value),n.typeInfo)}Acosh(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve)return new Ve(n.data.map(s=>Math.acosh(s)),n.typeInfo);const i=n;return new it(Math.acosh(i.value),n.typeInfo)}Asin(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.asin(s)),n.typeInfo);const i=n;return new it(Math.asin(i.value),n.typeInfo)}Asinh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.asinh(s)),n.typeInfo);const i=n;return new it(Math.asinh(i.value),n.typeInfo)}Atan(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.atan(s)),n.typeInfo);const i=n;return new it(Math.atan(i.value),n.typeInfo)}Atanh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.atanh(s)),n.typeInfo);const i=n;return new it(Math.atanh(i.value),n.typeInfo)}Atan2(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t);if(n instanceof Ve&&i instanceof Ve)return new Ve(n.data.map((l,f)=>Math.atan2(l,i.data[f])),n.typeInfo);const s=n,o=i;return new it(Math.atan2(s.value,o.value),n.typeInfo)}Ceil(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve)return new Ve(n.data.map(s=>Math.ceil(s)),n.typeInfo);const i=n;return new it(Math.ceil(i.value),n.typeInfo)}_clamp(e,t,n){return Math.min(Math.max(e,t),n)}Clamp(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t),s=this.exec.evalExpression(e.args[2],t);if(n instanceof Ve&&i instanceof Ve&&s instanceof Ve)return new Ve(n.data.map((A,v)=>this._clamp(A,i.data[v],s.data[v])),n.typeInfo);const o=n,l=i,f=s;return new it(this._clamp(o.value,l.value,f.value),n.typeInfo)}Cos(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.cos(s)),n.typeInfo);const i=n;return new it(Math.cos(i.value),n.typeInfo)}Cosh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.cosh(s)),n.typeInfo);const i=n;return new it(Math.cos(i.value),n.typeInfo)}CountLeadingZeros(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.clz32(s)),n.typeInfo);const i=n;return new it(Math.clz32(i.value),n.typeInfo)}_countOneBits(e){let t=0;for(;e!==0;)1&e&&t++,e>>=1;return t}CountOneBits(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve)return new Ve(n.data.map(s=>this._countOneBits(s)),n.typeInfo);const i=n;return new it(this._countOneBits(i.value),n.typeInfo)}_countTrailingZeros(e){if(e===0)return 32;let t=0;for(;!(1&e);)e>>=1,t++;return t}CountTrailingZeros(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>this._countTrailingZeros(s)),n.typeInfo);const i=n;return new it(this._countTrailingZeros(i.value),n.typeInfo)}Cross(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t);if(n instanceof Ve&&i instanceof Ve){if(n.data.length!==3||i.data.length!==3)return console.error(`Cross() expects 3D vectors. Line ${e.line}`),null;const s=n.data,o=i.data;return new Ve([s[1]*o[2]-o[1]*s[2],s[2]*o[0]-o[2]*s[0],s[0]*o[1]-o[0]*s[1]],n.typeInfo)}return console.error(`Cross() expects vector arguments. Line ${e.line}`),null}Degrees(e,t){const n=this.exec.evalExpression(e.args[0],t),i=180/Math.PI;return n instanceof Ve?new Ve(n.data.map(s=>s*i),n.typeInfo):new it(n.value*i,this.getTypeInfo("f32"))}Determinant(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof on){const i=n.data,s=n.typeInfo.getTypeName(),o=s.endsWith("h")?this.getTypeInfo("f16"):this.getTypeInfo("f32");if(s==="mat2x2"||s==="mat2x2f"||s==="mat2x2h")return new it(i[0]*i[3]-i[1]*i[2],o);if(s==="mat2x3"||s==="mat2x3f"||s==="mat2x3h")return new it(i[0]*(i[4]*i[8]-i[5]*i[7])-i[1]*(i[3]*i[8]-i[5]*i[6])+i[2]*(i[3]*i[7]-i[4]*i[6]),o);if(s==="mat2x4"||s==="mat2x4f"||s==="mat2x4h")console.error(`TODO: Determinant for ${s}`);else if(s==="mat3x2"||s==="mat3x2f"||s==="mat3x2h")console.error(`TODO: Determinant for ${s}`);else{if(s==="mat3x3"||s==="mat3x3f"||s==="mat3x3h")return new it(i[0]*(i[4]*i[8]-i[5]*i[7])-i[1]*(i[3]*i[8]-i[5]*i[6])+i[2]*(i[3]*i[7]-i[4]*i[6]),o);s==="mat3x4"||s==="mat3x4f"||s==="mat3x4h"||s==="mat4x2"||s==="mat4x2f"||s==="mat4x2h"||s==="mat4x3"||s==="mat4x3f"||s==="mat4x3h"?console.error(`TODO: Determinant for ${s}`):s!=="mat4x4"&&s!=="mat4x4f"&&s!=="mat4x4h"||console.error(`TODO: Determinant for ${s}`)}}return console.error(`Determinant expects a matrix argument. Line ${e.line}`),null}Distance(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t);if(n instanceof Ve&&i instanceof Ve){let l=0;for(let f=0;f<n.data.length;++f)l+=(n.data[f]-i.data[f])*(n.data[f]-i.data[f]);return new it(Math.sqrt(l),this.getTypeInfo("f32"))}const s=n,o=i;return new it(Math.abs(s.value-o.value),n.typeInfo)}_dot(e,t){let n=0;for(let i=0;i<e.length;++i)n+=t[i]*e[i];return n}Dot(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t);return n instanceof Ve&&i instanceof Ve?new it(this._dot(n.data,i.data),this.getTypeInfo("f32")):(console.error(`Dot() expects vector arguments. Line ${e.line}`),null)}Dot4U8Packed(e,t){return console.error(`TODO: dot4U8Packed. Line ${e.line}`),null}Dot4I8Packed(e,t){return console.error(`TODO: dot4I8Packed. Line ${e.line}`),null}Exp(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve)return new Ve(n.data.map(s=>Math.exp(s)),n.typeInfo);const i=n;return new it(Math.exp(i.value),n.typeInfo)}Exp2(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.pow(2,s)),n.typeInfo);const i=n;return new it(Math.pow(2,i.value),n.typeInfo)}ExtractBits(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t),s=this.exec.evalExpression(e.args[2],t);if(i.typeInfo.name!=="u32"&&i.typeInfo.name!=="x32")return console.error(`ExtractBits() expects an i32 offset argument. Line ${e.line}`),null;if(s.typeInfo.name!=="u32"&&s.typeInfo.name!=="x32")return console.error(`ExtractBits() expects an i32 count argument. Line ${e.line}`),null;const o=i.value,l=s.value;if(n instanceof Ve)return new Ve(n.data.map(A=>A>>o&(1<<l)-1),n.typeInfo);if(n.typeInfo.name!=="i32"&&n.typeInfo.name!=="x32")return console.error(`ExtractBits() expects an i32 argument. Line ${e.line}`),null;const f=n.value;return new it(f>>o&(1<<l)-1,this.getTypeInfo("i32"))}FaceForward(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t),s=this.exec.evalExpression(e.args[2],t);if(n instanceof Ve&&i instanceof Ve&&s instanceof Ve){const o=this._dot(i.data,s.data);return new Ve(o<0?Array.from(n.data):n.data.map(l=>-l),n.typeInfo)}return console.error(`FaceForward() expects vector arguments. Line ${e.line}`),null}_firstLeadingBit(e){return e===0?-1:31-Math.clz32(e)}FirstLeadingBit(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve)return new Ve(n.data.map(s=>this._firstLeadingBit(s)),n.typeInfo);const i=n;return new it(this._firstLeadingBit(i.value),n.typeInfo)}_firstTrailingBit(e){return e===0?-1:Math.log2(e&-e)}FirstTrailingBit(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>this._firstTrailingBit(s)),n.typeInfo);const i=n;return new it(this._firstTrailingBit(i.value),n.typeInfo)}Floor(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.floor(s)),n.typeInfo);const i=n;return new it(Math.floor(i.value),n.typeInfo)}Fma(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t),s=this.exec.evalExpression(e.args[2],t);if(n instanceof Ve&&i instanceof Ve&&s instanceof Ve)return n.data.length!==i.data.length||n.data.length!==s.data.length?(console.error(`Fma() expects vectors of the same length. Line ${e.line}`),null):new Ve(n.data.map((A,v)=>A*i.data[v]+s.data[v]),n.typeInfo);const o=n,l=i,f=s;return new it(o.value*l.value+f.value,o.typeInfo)}Fract(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve)return new Ve(n.data.map(s=>s-Math.floor(s)),n.typeInfo);const i=n;return new it(i.value-Math.floor(i.value),n.typeInfo)}Frexp(e,t){return console.error(`TODO: frexp. Line ${e.line}`),null}InsertBits(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t),s=this.exec.evalExpression(e.args[2],t),o=this.exec.evalExpression(e.args[3],t);if(s.typeInfo.name!=="u32"&&s.typeInfo.name!=="x32")return console.error(`InsertBits() expects an i32 offset argument. Line ${e.line}`),null;const l=s.value,f=(1<<o.value)-1<<l,A=~f;if(n instanceof Ve&&i instanceof Ve)return new Ve(n.data.map((I,F)=>I&A|i.data[F]<<l&f),n.typeInfo);const v=n.value,T=i.value;return new it(v&A|T<<l&f,n.typeInfo)}InverseSqrt(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>1/Math.sqrt(s)),n.typeInfo);const i=n;return new it(1/Math.sqrt(i.value),n.typeInfo)}Ldexp(e,t){return console.error(`TODO: ldexp. Line ${e.line}`),null}Length(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve){let s=0;return n.data.forEach(o=>{s+=o*o}),new it(Math.sqrt(s),this.getTypeInfo("f32"))}const i=n;return new it(Math.abs(i.value),n.typeInfo)}Log(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.log(s)),n.typeInfo);const i=n;return new it(Math.log(i.value),n.typeInfo)}Log2(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.log2(s)),n.typeInfo);const i=n;return new it(Math.log2(i.value),n.typeInfo)}Max(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t);if(n instanceof Ve&&i instanceof Ve)return new Ve(n.data.map((l,f)=>Math.max(l,i.data[f])),n.typeInfo);const s=n,o=i;return new it(Math.max(s.value,o.value),n.typeInfo)}Min(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t);if(n instanceof Ve&&i instanceof Ve)return new Ve(n.data.map((l,f)=>Math.min(l,i.data[f])),n.typeInfo);const s=n,o=i;return new it(Math.min(s.value,o.value),n.typeInfo)}Mix(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t),s=this.exec.evalExpression(e.args[2],t);if(n instanceof Ve&&i instanceof Ve&&s instanceof Ve)return new Ve(n.data.map((f,A)=>n.data[A]*(1-s.data[A])+i.data[A]*s.data[A]),n.typeInfo);const o=i,l=s;return new it(n.value*(1-l.value)+o.value*l.value,n.typeInfo)}Modf(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t);if(n instanceof Ve&&i instanceof Ve)return new Ve(n.data.map((o,l)=>o%i.data[l]),n.typeInfo);const s=i;return new it(n.value%s.value,n.typeInfo)}Normalize(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve){const i=this.Length(e,t).value;return new Ve(n.data.map(s=>s/i),n.typeInfo)}return console.error(`Normalize() expects a vector argument. Line ${e.line}`),null}Pow(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t);if(n instanceof Ve&&i instanceof Ve)return new Ve(n.data.map((l,f)=>Math.pow(l,i.data[f])),n.typeInfo);const s=n,o=i;return new it(Math.pow(s.value,o.value),n.typeInfo)}QuantizeToF16(e,t){const n=this.exec.evalExpression(e.args[0],t);return n instanceof Ve?new Ve(n.data.map(i=>i),n.typeInfo):new it(n.value,n.typeInfo)}Radians(e,t){const n=this.exec.evalExpression(e.args[0],t);return n instanceof Ve?new Ve(n.data.map(i=>i*Math.PI/180),n.typeInfo):new it(n.value*Math.PI/180,this.getTypeInfo("f32"))}Reflect(e,t){let n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t);if(n instanceof Ve&&i instanceof Ve){const s=this._dot(n.data,i.data);return new Ve(n.data.map((o,l)=>o-2*s*i.data[l]),n.typeInfo)}return console.error(`Reflect() expects vector arguments. Line ${e.line}`),null}Refract(e,t){let n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t),s=this.exec.evalExpression(e.args[2],t);if(n instanceof Ve&&i instanceof Ve&&s instanceof it){const o=this._dot(i.data,n.data);return new Ve(n.data.map((l,f)=>{const A=1-s.value*s.value*(1-o*o);if(A<0)return 0;const v=Math.sqrt(A);return s.value*l-(s.value*o+v)*i.data[f]}),n.typeInfo)}return console.error(`Refract() expects vector arguments and a scalar argument. Line ${e.line}`),null}ReverseBits(e,t){return console.error(`TODO: reverseBits. Line ${e.line}`),null}Round(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve)return new Ve(n.data.map(s=>Math.round(s)),n.typeInfo);const i=n;return new it(Math.round(i.value),n.typeInfo)}Saturate(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.min(Math.max(s,0),1)),n.typeInfo);const i=n;return new it(Math.min(Math.max(i.value,0),1),n.typeInfo)}Sign(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.sign(s)),n.typeInfo);const i=n;return new it(Math.sign(i.value),n.typeInfo)}Sin(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.sin(s)),n.typeInfo);const i=n;return new it(Math.sin(i.value),n.typeInfo)}Sinh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.sinh(s)),n.typeInfo);const i=n;return new it(Math.sinh(i.value),n.typeInfo)}_smoothstep(e,t,n){const i=Math.min(Math.max((n-e)/(t-e),0),1);return i*i*(3-2*i)}SmoothStep(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t),s=this.exec.evalExpression(e.args[2],t);if(s instanceof Ve&&n instanceof Ve&&i instanceof Ve)return new Ve(s.data.map((A,v)=>this._smoothstep(n.data[v],i.data[v],A)),s.typeInfo);const o=n,l=i,f=s;return new it(this._smoothstep(o.value,l.value,f.value),s.typeInfo)}Sqrt(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve)return new Ve(n.data.map(s=>Math.sqrt(s)),n.typeInfo);const i=n;return new it(Math.sqrt(i.value),n.typeInfo)}Step(e,t){const n=this.exec.evalExpression(e.args[0],t),i=this.exec.evalExpression(e.args[1],t);if(i instanceof Ve&&n instanceof Ve)return new Ve(i.data.map((o,l)=>o<n.data[l]?0:1),i.typeInfo);const s=n;return new it(i.value<s.value?0:1,s.typeInfo)}Tan(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.tan(s)),n.typeInfo);const i=n;return new it(Math.tan(i.value),n.typeInfo)}Tanh(e,t){const n=this.exec.evalExpression(e.args[0],t);if(n instanceof Ve)return new Ve(n.data.map(s=>Math.tanh(s)),n.typeInfo);const i=n;return new it(Math.tanh(i.value),n.typeInfo)}_getTransposeType(e){const t=e.getTypeName();return t==="mat2x2f"||t==="mat2x2h"?e:t==="mat2x3f"?this.getTypeInfo("mat3x2f"):t==="mat2x3h"?this.getTypeInfo("mat3x2h"):t==="mat2x4f"?this.getTypeInfo("mat4x2f"):t==="mat2x4h"?this.getTypeInfo("mat4x2h"):t==="mat3x2f"?this.getTypeInfo("mat2x3f"):t==="mat3x2h"?this.getTypeInfo("mat2x3h"):t==="mat3x3f"||t==="mat3x3h"?e:t==="mat3x4f"?this.getTypeInfo("mat4x3f"):t==="mat3x4h"?this.getTypeInfo("mat4x3h"):t==="mat4x2f"?this.getTypeInfo("mat2x4f"):t==="mat4x2h"?this.getTypeInfo("mat2x4h"):t==="mat4x3f"?this.getTypeInfo("mat3x4f"):t==="mat4x3h"?this.getTypeInfo("mat3x4h"):(t==="mat4x4f"||t==="mat4x4h"||console.error(`Invalid matrix type ${t}`),e)}Transpose(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(!(n instanceof on))return console.error(`Transpose() expects a matrix argument. Line ${e.line}`),null;const i=this._getTransposeType(n.typeInfo);if(n.typeInfo.name==="mat2x2"||n.typeInfo.name==="mat2x2f"||n.typeInfo.name==="mat2x2h"){const s=n.data;return new on([s[0],s[2],s[1],s[3]],i)}if(n.typeInfo.name==="mat2x3"||n.typeInfo.name==="mat2x3f"||n.typeInfo.name==="mat2x3h"){const s=n.data;return new on([s[0],s[3],s[6],s[1],s[4],s[7]],i)}if(n.typeInfo.name==="mat2x4"||n.typeInfo.name==="mat2x4f"||n.typeInfo.name==="mat2x4h"){const s=n.data;return new on([s[0],s[4],s[8],s[12],s[1],s[5],s[9],s[13]],i)}if(n.typeInfo.name==="mat3x2"||n.typeInfo.name==="mat3x2f"||n.typeInfo.name==="mat3x2h"){const s=n.data;return new on([s[0],s[3],s[1],s[4],s[2],s[5]],i)}if(n.typeInfo.name==="mat3x3"||n.typeInfo.name==="mat3x3f"||n.typeInfo.name==="mat3x3h"){const s=n.data;return new on([s[0],s[3],s[6],s[1],s[4],s[7],s[2],s[5],s[8]],i)}if(n.typeInfo.name==="mat3x4"||n.typeInfo.name==="mat3x4f"||n.typeInfo.name==="mat3x4h"){const s=n.data;return new on([s[0],s[4],s[8],s[12],s[1],s[5],s[9],s[13],s[2],s[6],s[10],s[14]],i)}if(n.typeInfo.name==="mat4x2"||n.typeInfo.name==="mat4x2f"||n.typeInfo.name==="mat4x2h"){const s=n.data;return new on([s[0],s[4],s[1],s[5],s[2],s[6]],i)}if(n.typeInfo.name==="mat4x3"||n.typeInfo.name==="mat4x3f"||n.typeInfo.name==="mat4x3h"){const s=n.data;return new on([s[0],s[4],s[8],s[1],s[5],s[9],s[2],s[6],s[10]],i)}if(n.typeInfo.name==="mat4x4"||n.typeInfo.name==="mat4x4f"||n.typeInfo.name==="mat4x4h"){const s=n.data;return new on([s[0],s[4],s[8],s[12],s[1],s[5],s[9],s[13],s[2],s[6],s[10],s[14],s[3],s[7],s[11],s[15]],i)}return console.error(`Invalid matrix type ${n.typeInfo.name}`),null}Trunc(e,t){const n=this.exec.evalExpression(e.args[0],t);
109if(n instanceof Ve)return new Ve(n.data.map(s=>Math.trunc(s)),n.typeInfo);const i=n;return new it(Math.trunc(i.value),n.typeInfo)}Dpdx(e,t){return console.error(`TODO: dpdx. Line ${e.line}`),null}DpdxCoarse(e,t){return console.error(`TODO: dpdxCoarse. Line ${e.line}`),null}DpdxFine(e,t){return console.error("TODO: dpdxFine"),null}Dpdy(e,t){return console.error("TODO: dpdy"),null}DpdyCoarse(e,t){return console.error("TODO: dpdyCoarse"),null}DpdyFine(e,t){return console.error("TODO: dpdyFine"),null}Fwidth(e,t){return console.error("TODO: fwidth"),null}FwidthCoarse(e,t){return console.error("TODO: fwidthCoarse"),null}FwidthFine(e,t){return console.error("TODO: fwidthFine"),null}TextureDimensions(e,t){const n=e.args[0],i=e.args.length>1?this.exec.evalExpression(e.args[1],t).value:0;if(n instanceof fa){const s=n.name,o=t.getVariableValue(s);if(o instanceof Gc){if(i<0||i>=o.mipLevelCount)return console.error(`Invalid mip level for textureDimensions. Line ${e.line}`),null;const l=o.getMipLevelSize(i),f=o.dimension;return f==="1d"?new it(l[0],this.getTypeInfo("u32")):f==="3d"?new Ve(l,this.getTypeInfo("vec3u")):f==="2d"?new Ve(l.slice(0,2),this.getTypeInfo("vec2u")):(console.error(`Invalid texture dimension ${f} not found. Line ${e.line}`),null)}return console.error(`Texture ${s} not found. Line ${e.line}`),null}return console.error(`Invalid texture argument for textureDimensions. Line ${e.line}`),null}TextureGather(e,t){return console.error("TODO: textureGather"),null}TextureGatherCompare(e,t){return console.error("TODO: textureGatherCompare"),null}TextureLoad(e,t){const n=e.args[0],i=this.exec.evalExpression(e.args[1],t),s=e.args.length>2?this.exec.evalExpression(e.args[2],t).value:0;if(!(i instanceof Ve)||i.data.length!==2)return console.error(`Invalid UV argument for textureLoad. Line ${e.line}`),null;if(n instanceof fa){const o=n.name,l=t.getVariableValue(o);if(l instanceof Gc){const f=Math.floor(i.data[0]),A=Math.floor(i.data[1]);if(f<0||f>=l.width||A<0||A>=l.height)return console.error(`Texture ${o} out of bounds. Line ${e.line}`),null;const v=l.getPixel(f,A,0,s);return v===null?(console.error(`Invalid texture format for textureLoad. Line ${e.line}`),null):new Ve(v,this.getTypeInfo("vec4f"))}return console.error(`Texture ${o} not found. Line ${e.line}`),null}return console.error(`Invalid texture argument for textureLoad. Line ${e.line}`),null}TextureNumLayers(e,t){const n=e.args[0];if(n instanceof fa){const i=n.name,s=t.getVariableValue(i);return s instanceof Gc?new it(s.depthOrArrayLayers,this.getTypeInfo("u32")):(console.error(`Texture ${i} not found. Line ${e.line}`),null)}return console.error(`Invalid texture argument for textureNumLayers. Line ${e.line}`),null}TextureNumLevels(e,t){const n=e.args[0];if(n instanceof fa){const i=n.name,s=t.getVariableValue(i);return s instanceof Gc?new it(s.mipLevelCount,this.getTypeInfo("u32")):(console.error(`Texture ${i} not found. Line ${e.line}`),null)}return console.error(`Invalid texture argument for textureNumLevels. Line ${e.line}`),null}TextureNumSamples(e,t){const n=e.args[0];if(n instanceof fa){const i=n.name,s=t.getVariableValue(i);return s instanceof Gc?new it(s.sampleCount,this.getTypeInfo("u32")):(console.error(`Texture ${i} not found. Line ${e.line}`),null)}return console.error(`Invalid texture argument for textureNumSamples. Line ${e.line}`),null}TextureSample(e,t){return console.error("TODO: textureSample"),null}TextureSampleBias(e,t){return console.error("TODO: textureSampleBias"),null}TextureSampleCompare(e,t){return console.error("TODO: textureSampleCompare"),null}TextureSampleCompareLevel(e,t){return console.error("TODO: textureSampleCompareLevel"),null}TextureSampleGrad(e,t){return console.error("TODO: textureSampleGrad"),null}TextureSampleLevel(e,t){return console.error("TODO: textureSampleLevel"),null}TextureSampleBaseClampToEdge(e,t){return console.error("TODO: textureSampleBaseClampToEdge"),null}TextureStore(e,t){const n=e.args[0],i=this.exec.evalExpression(e.args[1],t),s=e.args.length===4?this.exec.evalExpression(e.args[2],t).value:0,o=e.args.length===4?this.exec.evalExpression(e.args[3],t).data:this.exec.evalExpression(e.args[2],t).data;if(o.length!==4)return console.error(`Invalid value argument for textureStore. Line ${e.line}`),null;if(!(i instanceof Ve)||i.data.length!==2)return console.error(`Invalid UV argument for textureStore. Line ${e.line}`),null;if(n instanceof fa){const l=n.name,f=t.getVariableValue(l);if(f instanceof Gc){const A=f.getMipLevelSize(0),v=Math.floor(i.data[0]),T=Math.floor(i.data[1]);return v<0||v>=A[0]||T<0||T>=A[1]?(console.error(`Texture ${l} out of bounds. Line ${e.line}`),null):(f.setPixel(v,T,0,s,Array.from(o)),null)}return console.error(`Texture ${l} not found. Line ${e.line}`),null}return console.error(`Invalid texture argument for textureStore. Line ${e.line}`),null}AtomicLoad(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.getVariableName(n,t);return t.getVariable(i).value.getSubData(this.exec,n.postfix,t)}
109AtomicStore(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.getVariableName(n,t),s=t.getVariable(i);let o=e.args[1];const l=this.exec.evalExpression(o,t),f=s.value.getSubData(this.exec,n.postfix,t);return f instanceof it&&l instanceof it&&(f.value=l.value),s.value instanceof ts&&s.value.setDataValue(this.exec,f,n.postfix,t),null}AtomicAdd(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.getVariableName(n,t),s=t.getVariable(i);let o=e.args[1];const l=this.exec.evalExpression(o,t),f=s.value.getSubData(this.exec,n.postfix,t),A=new it(f.value,f.typeInfo);return f instanceof it&&l instanceof it&&(f.value+=l.value),s.value instanceof ts&&s.value.setDataValue(this.exec,f,n.postfix,t),A}AtomicSub(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.getVariableName(n,t),s=t.getVariable(i);let o=e.args[1];const l=this.exec.evalExpression(o,t),f=s.value.getSubData(this.exec,n.postfix,t),A=new it(f.value,f.typeInfo);return f instanceof it&&l instanceof it&&(f.value-=l.value),s.value instanceof ts&&s.value.setDataValue(this.exec,f,n.postfix,t),A}AtomicMax(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.getVariableName(n,t),s=t.getVariable(i);let o=e.args[1];const l=this.exec.evalExpression(o,t),f=s.value.getSubData(this.exec,n.postfix,t),A=new it(f.value,f.typeInfo);return f instanceof it&&l instanceof it&&(f.value=Math.max(f.value,l.value)),s.value instanceof ts&&s.value.setDataValue(this.exec,f,n.postfix,t),A}AtomicMin(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.getVariableName(n,t),s=t.getVariable(i);let o=e.args[1];const l=this.exec.evalExpression(o,t),f=s.value.getSubData(this.exec,n.postfix,t),A=new it(f.value,f.typeInfo);return f instanceof it&&l instanceof it&&(f.value=Math.min(f.value,l.value)),s.value instanceof ts&&s.value.setDataValue(this.exec,f,n.postfix,t),A}AtomicAnd(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.getVariableName(n,t),s=t.getVariable(i);let o=e.args[1];const l=this.exec.evalExpression(o,t),f=s.value.getSubData(this.exec,n.postfix,t),A=new it(f.value,f.typeInfo);return f instanceof it&&l instanceof it&&(f.value=f.value&l.value),s.value instanceof ts&&s.value.setDataValue(this.exec,f,n.postfix,t),A}AtomicOr(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.getVariableName(n,t),s=t.getVariable(i);let o=e.args[1];const l=this.exec.evalExpression(o,t),f=s.value.getSubData(this.exec,n.postfix,t),A=new it(f.value,f.typeInfo);return f instanceof it&&l instanceof it&&(f.value=f.value|l.value),s.value instanceof ts&&s.value.setDataValue(this.exec,f,n.postfix,t),A}AtomicXor(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.getVariableName(n,t),s=t.getVariable(i);let o=e.args[1];const l=this.exec.evalExpression(o,t),f=s.value.getSubData(this.exec,n.postfix,t),A=new it(f.value,f.typeInfo);return f instanceof it&&l instanceof it&&(f.value=f.value^l.value),s.value instanceof ts&&s.value.setDataValue(this.exec,f,n.postfix,t),A}AtomicExchange(e,t){let n=e.args[0];n instanceof ds&&(n=n.right);const i=this.exec.getVariableName(n,t),s=t.getVariable(i);let o=e.args[1];const l=this.exec.evalExpression(o,t),f=s.value.getSubData(this.exec,n.postfix,t),A=new it(f.value,f.typeInfo);return f instanceof it&&l instanceof it&&(f.value=l.value),s.value instanceof ts&&s.value.setDataValue(this.exec,f,n.postfix,t),A}AtomicCompareExchangeWeak(e,t){return console.error("TODO: atomicCompareExchangeWeak"),null}Pack4x8snorm(e,t){return console.error("TODO: pack4x8snorm"),null}Pack4x8unorm(e,t){return console.error("TODO: pack4x8unorm"),null}Pack4xI8(e,t){return console.error("TODO: pack4xI8"),null}Pack4xU8(e,t){return console.error("TODO: pack4xU8"),null}Pack4x8Clamp(e,t){return console.error("TODO: pack4x8Clamp"),null}Pack4xU8Clamp(e,t){return console.error("TODO: pack4xU8Clamp"),null}Pack2x16snorm(e,t){return console.error("TODO: pack2x16snorm"),null}Pack2x16unorm(e,t){return console.error("TODO: pack2x16unorm"),null}Pack2x16float(e,t){return console.error("TODO: pack2x16float"),null}Unpack4x8snorm(e,t){return console.error("TODO: unpack4x8snorm"),null}Unpack4x8unorm(e,t){return console.error("TODO: unpack4x8unorm"),null}Unpack4xI8(e,t){return console.error("TODO: unpack4xI8"),null}Unpack4xU8(e,t){return console.error("TODO: unpack4xU8"),null}Unpack2x16snorm(e,t){return console.error("TODO: unpack2x16snorm"),null}Unpack2x16unorm(e,t){return console.error("TODO: unpack2x16unorm"),null}Unpack2x16float(e,t){return console.error("TODO: unpack2x16float"),null}StorageBarrier(e,t){return null}TextureBarrier(e,t){return null}WorkgroupBarrier(e,t){return null}WorkgroupUniformLoad(e,t){return null}SubgroupAdd(e,t){return console.error("TODO: subgroupAdd"),null}SubgroupExclusiveAdd(e,t){return console.error("TODO: subgroupExclusiveAdd"),null}SubgroupInclusiveAdd(e,t){return console.error("TODO: subgroupInclusiveAdd"),null}SubgroupAll(e,t){return console.error("TODO: subgroupAll"),null}SubgroupAnd(e,t){return console.error("TODO: subgroupAnd"),null}SubgroupAny(e,t){return console.error("TODO: subgroupAny"),null}SubgroupBallot(e,t){return console.error("TODO: subgroupBallot"),null}SubgroupBroadcast(e,t){return console.error("TODO: subgroupBroadcast"),null}SubgroupBroadcastFirst(e,t){return console.error("TODO: subgroupBroadcastFirst"),null}SubgroupElect(e,t){return console.error("TODO: subgroupElect"),null}SubgroupMax(e,t){return console.error("TODO: subgroupMax"),null}SubgroupMin(e,t){return console.error("TODO: subgroupMin"),null}SubgroupMul(e,t){return console.error("TODO: subgroupMul"),null}SubgroupExclusiveMul(e,t){return console.error("TODO: subgroupExclusiveMul"),null}SubgroupInclusiveMul(e,t){return console.error("TODO: subgroupInclusiveMul"),null}SubgroupOr(e,t){return console.error("TODO: subgroupOr"),null}SubgroupShuffle(e,t){return console.error("TODO: subgroupShuffle"),null}SubgroupShuffleDown(e,t){return console.error("TODO: subgroupShuffleDown"),null}SubgroupShuffleUp(e,t){return console.error("TODO: subgroupShuffleUp"),null}SubgroupShuffleXor(e,t){return console.error("TODO: subgroupShuffleXor"),null}SubgroupXor(e,t){return console.error("TODO: subgroupXor"),null}QuadBroadcast(e,t){return console.error("TODO: quadBroadcast"),null}QuadSwapDiagonal(e,t){return console.error("TODO: quadSwapDiagonal"),null}QuadSwapX(e,t){return console.error("TODO: quadSwapX"),null}QuadSwapY(e,t){return console.error("TODO: quadSwapY"),null}}const dv={vec2:2,vec2f:2,vec2i:2,vec2u:2,vec2b:2,vec2h:2,vec3:3,vec3f:3,vec3i:3,vec3u:3,vec3b:3,vec3h:3,vec4:4,vec4f:4,vec4i:4,vec4u:4,vec4b:4,vec4h:4},Io={mat2x2:[2,2,4],mat2x2f:[2,2,4],mat2x2h:[2,2,4],mat2x3:[2,3,6],mat2x3f:[2,3,6],mat2x3h:[2,3,6],mat2x4:[2,4,8],mat2x4f:[2,4,8],mat2x4h:[2,4,8],mat3x2:[3,2,6],mat3x2f:[3,2,6],mat3x2h:[3,2,6],mat3x3:[3,3,9],mat3x3f:[3,3,9],mat3x3h:[3,3,9],mat3x4:[3,4,12],mat3x4f:[3,4,12],mat3x4h:[3,4,12],mat4x2:[4,2,8],mat4x2f:[4,2,8],mat4x2h:[4,2,8],mat4x3:[4,3,12],mat4x3f
109:[4,3,12],mat4x3h:[4,3,12],mat4x4:[4,4,16],mat4x4f:[4,4,16],mat4x4h:[4,4,16]};class po extends m7{constructor(e,t){var n;super(),this.ast=e??[],this.reflection=new oc,this.reflection.updateAST(this.ast),this.context=(n=t?.clone())!==null&&n!==void 0?n:new px,this.builtins=new _7(this),this.typeInfo={bool:this.getTypeInfo(Ut.bool),i32:this.getTypeInfo(Ut.i32),u32:this.getTypeInfo(Ut.u32),f32:this.getTypeInfo(Ut.f32),f16:this.getTypeInfo(Ut.f16),vec2f:this.getTypeInfo(ft.vec2f),vec2u:this.getTypeInfo(ft.vec2u),vec2i:this.getTypeInfo(ft.vec2i),vec2h:this.getTypeInfo(ft.vec2h),vec3f:this.getTypeInfo(ft.vec3f),vec3u:this.getTypeInfo(ft.vec3u),vec3i:this.getTypeInfo(ft.vec3i),vec3h:this.getTypeInfo(ft.vec3h),vec4f:this.getTypeInfo(ft.vec4f),vec4u:this.getTypeInfo(ft.vec4u),vec4i:this.getTypeInfo(ft.vec4i),vec4h:this.getTypeInfo(ft.vec4h),mat2x2f:this.getTypeInfo(ft.mat2x2f),mat2x3f:this.getTypeInfo(ft.mat2x3f),mat2x4f:this.getTypeInfo(ft.mat2x4f),mat3x2f:this.getTypeInfo(ft.mat3x2f),mat3x3f:this.getTypeInfo(ft.mat3x3f),mat3x4f:this.getTypeInfo(ft.mat3x4f),mat4x2f:this.getTypeInfo(ft.mat4x2f),mat4x3f:this.getTypeInfo(ft.mat4x3f),mat4x4f:this.getTypeInfo(ft.mat4x4f)}}getVariableValue(e){var t,n;const i=(n=(t=this.context.getVariable(e))===null||t===void 0?void 0:t.value)!==null&&n!==void 0?n:null;if(i===null)return null;if(i instanceof it)return i.value;if(i instanceof Ve||i instanceof on)return Array.from(i.data);if(i instanceof ts&&i.typeInfo instanceof Wu){if(i.typeInfo.format.name==="u32")return Array.from(new Uint32Array(i.buffer,i.offset,i.typeInfo.count));if(i.typeInfo.format.name==="i32")return Array.from(new Int32Array(i.buffer,i.offset,i.typeInfo.count));if(i.typeInfo.format.name==="f32")return Array.from(new Float32Array(i.buffer,i.offset,i.typeInfo.count))}return console.error(`Unsupported return variable type ${i.typeInfo.name}`),null}execute(e){(e=e??{}).constants&&this._setOverrides(e.constants,this.context),this._execStatements(this.ast,this.context)}dispatchWorkgroups(e,t,n,i){const s=this.context.clone();(i=i??{}).constants&&this._setOverrides(i.constants,s),this._execStatements(this.ast,s);const o=s.getFunction(e);if(!o)return void console.error(`Function ${e} not found`);if(typeof t=="number")t=[t,1,1];else{if(t.length===0)return void console.error("Invalid dispatch count");t.length===1?t=[t[0],1,1]:t.length===2?t=[t[0],t[1],1]:t.length>3&&(t=[t[0],t[1],t[2]])}const l=t[0],f=t[1],A=t[2],v=this.getTypeInfo("vec3u");s.setVariable("@num_workgroups",new Ve(t,v));const T=this.reflection.getFunctionInfo(e);T===null&&console.error(`Function ${e} not found in reflection data`);for(const I in n)for(const F in n[I]){const N=n[I][F];
109s.variables.forEach(U=>{var $;const V=U.node;if(V?.attributes){let G=null,X=null;for(const ue of V.attributes)ue.name==="binding"?G=ue.value:ue.name==="group"&&(X=ue.value);if(F==G&&I==X){let ue=!1;for(const K of T.resources)if(K.name===U.name&&K.group===parseInt(I)&&K.binding===parseInt(F)){ue=!0;break}if(ue)if(N.texture!==void 0&&N.descriptor!==void 0){const K=new Gc(N.texture,this.getTypeInfo(V.type),N.descriptor,($=N.texture.view)!==null&&$!==void 0?$:null);U.value=K}else N.uniform!==void 0?U.value=new ts(N.uniform,this.getTypeInfo(V.type)):U.value=new ts(N,this.getTypeInfo(V.type))}}})}for(let I=0;I<A;++I)for(let F=0;F<f;++F)for(let N=0;N<l;++N)s.setVariable("@workgroup_id",new Ve([N,F,I],this.getTypeInfo("vec3u"))),this._dispatchWorkgroup(o,[N,F,I],s)}execStatement(e,t){if(e instanceof cO)return this.evalExpression(e.value,t);if(e instanceof fO){if(e.condition){const n=this.evalExpression(e.condition,t);if(!(n instanceof it))throw new Error("Invalid break-if condition");if(!n.value)return null}return po._breakObj}if(e instanceof hO)return po._continueObj;if(e instanceof DA)this._let(e,t);else if(e instanceof Hc)this._var(e,t);else if(e instanceof fm)this._const(e,t);else if(e instanceof ZA)this._function(e,t);else{if(e instanceof lO)return this._if(e,t);if(e instanceof aO)return this._switch(e,t);if(e instanceof nO)return this._for(e,t);if(e instanceof rO)return this._while(e,t);if(e instanceof oO)return this._loop(e,t);if(e instanceof w1){const n=t.clone();return n.currentFunctionName=t.currentFunctionName,this._execStatements(e.body,n)}if(e instanceof sO)this._assign(e,t);else if(e instanceof iO)this._increment(e,t);else{if(e instanceof jc)return null;if(e instanceof ax){const n=e.name;t.getVariable(n)===null&&t.setVariable(n,new it(0,this.getTypeInfo("u32")))}else if(e instanceof lx)this._call(e,t);else{if(e instanceof uO||e instanceof cx)return null;console.error("Invalid statement type.",e,`Line ${e.line}`)}}}return null}evalExpression(e,t){return e instanceof fl?this._evalBinaryOp(e,t):e instanceof ws?this._evalLiteral(e,t):e instanceof fa?this._evalVariable(e,t):e instanceof ux?this._evalCall(e,t):e instanceof tc?this._evalCreate(e,t):e instanceof dO?this._evalConst(e,t):e instanceof pO?this._evalBitcast(e,t):e instanceof ds?this._evalUnaryOp(e,t):(console.error("Invalid expression type",e,`Line ${e.line}`),null)}getTypeInfo(e){var t;if(e instanceof Ut){const i=this.reflection.getTypeInfo(e);if(i!==null)return i}let n=(t=this.typeInfo[e])!==null&&t!==void 0?t:null;return n!==null||(n=this.reflection.getTypeInfoByName(e)),n}_setOverrides(e,t){for(const n in e){const i=e[n],s=this.reflection.getOverrideInfo(n);s!==null?(s.type===null&&(s.type=this.getTypeInfo("u32")),s.type.name==="u32"||s.type.name==="i32"||s.type.name==="f32"||s.type.name==="f16"?t.setVariable(n,new it(i,s.type)):s.type.name==="bool"?t.setVariable(n,new it(i?1:0,s.type)):s.type.name==="vec2"||s.type.name==="vec3"||s.type.name==="vec4"||s.type.name==="vec2f"||s.type.name==="vec3f"||s.type.name==="vec4f"||s.type.name==="vec2i"||s.type.name==="vec3i"||s.type.name==="vec4i"||s.type.name==="vec2u"||s.type.name==="vec3u"||s.type.name==="vec4u"||s.type.name==="vec2h"||s.type.name==="vec3h"||s.type.name==="vec4h"?t.setVariable(n,new Ve(i,s.type)):console.error(`Invalid constant type for ${n}`)):console.error(`Override ${n} does not exist in the shader.`)}}_dispatchWorkgroup(e,t,n){const i=[1,1,1];for(const v of e.node.attributes)if(v.name==="workgroup_size"){if(v.value.length>0){const T=n.getVariableValue(v.value[0]);i[0]=T instanceof it?T.value:parseInt(v.value[0])}if(v.value.length>1){const T=n.getVariableValue(v.value[1]);i[1]=T instanceof it?T.value:parseInt(v.value[1])}if(v.value.length>2){const T=n.getVariableValue(v.value[2]);i[2]=T instanceof it?T.value:parseInt(v.value[2])}}const s=this.getTypeInfo("vec3u"),o=this.getTypeInfo("u32");n.setVariable("@workgroup_size",new Ve(i,s));const l=i[0],f=i[1],A=i[2];for(let v=0,T=0;v<A;++v)for(let I=0;I<f;++I)for(let F=0;F<l;++F,++T){const N=[F,I,v],U=[F+t[0]*i[0],I+t[1]*i[1],v+t[2]*i[2]];n.setVariable("@local_invocation_id",new Ve(N,s)),n.setVariable("@global_invocation_id",new Ve(U,s)),n.setVariable("@local_invocation_index",new it(T,o)),this._dispatchExec(e,n)}}_dispatchExec(e,t){for(const n of e.node.args)for(const i of n.attributes)if(i.name==="builtin"){const s=`@${i.value}`,o=t.getVariable(s);o!==void 0&&t.variables.set(n.name,o)}this._execStatements(e.node.body,t)}getVariableName(e,t){for(;e instanceof ds;)e=e.right;
109return e instanceof fa?e.name:(console.error("Unknown variable type",e,"Line",e.line),null)}_execStatements(e,t){for(const n of e){if(n instanceof Array){const s=t.clone(),o=this._execStatements(n,s);if(o)return o;continue}const i=this.execStatement(n,t);if(i)return i}return null}_call(e,t){const n=t.clone();n.currentFunctionName=e.name;const i=t.getFunction(e.name);if(i){for(let s=0;s<i.node.args.length;++s){const o=i.node.args[s],l=this.evalExpression(e.args[s],n);n.setVariable(o.name,l,o)}this._execStatements(i.node.body,n)}else e.isBuiltin?this._callBuiltinFunction(e,n):this.getTypeInfo(e.name)&&this._evalCreate(e,t)}_increment(e,t){const n=this.getVariableName(e.variable,t),i=t.getVariable(n);i?e.operator==="++"?i.value instanceof it?i.value.value++:console.error(`Variable ${n} is not a scalar. Line ${e.line}`):e.operator==="--"?i.value instanceof it?i.value.value--:console.error(`Variable ${n} is not a scalar. Line ${e.line}`):console.error(`Unknown increment operator ${e.operator}. Line ${e.line}`):console.error(`Variable ${n} not found. Line ${e.line}`)}_getVariableData(e,t){if(e instanceof fa){const n=this.getVariableName(e,t),i=t.getVariable(n);return i===null?(console.error(`Variable ${n} not found. Line ${e.line}`),null):i.value.getSubData(this,e.postfix,t)}if(e instanceof ds){if(e.operator==="*"){const n=this._getVariableData(e.right,t);return n instanceof fd?n.reference.getSubData(this,e.postfix,t):(console.error(`Variable ${e.right} is not a pointer. Line ${e.line}`),null)}if(e.operator==="&"){const n=this._getVariableData(e.right,t);return new fd(n)}}return null}_assign(e,t){let n=null,i="<var>",s=null;if(e.variable instanceof ds){const f=this._getVariableData(e.variable,t),A=this.evalExpression(e.value,t),v=e.operator;if(v==="="){if(f instanceof it||f instanceof Ve||f instanceof on){if(A instanceof it||A instanceof Ve||A instanceof on&&f.data.length===A.data.length)return void f.data.set(A.data);console.error(`Invalid assignment. Line ${e.line}`)}else if(f instanceof ts&&A instanceof ts&&f.buffer.byteLength-f.offset>=A.buffer.byteLength-A.offset)return void(f.buffer.byteLength%4==0?new Uint32Array(f.buffer,f.offset,f.typeInfo.size/4).set(new Uint32Array(A.buffer,A.offset,A.typeInfo.size/4)):new Uint8Array(f.buffer,f.offset,f.typeInfo.size).set(new Uint8Array(A.buffer,A.offset,A.typeInfo.size)));return console.error(`Invalid assignment. Line ${e.line}`),null}if(v==="+=")return f instanceof it||f instanceof Ve||f instanceof on?A instanceof it||A instanceof Ve||A instanceof on?void f.data.set(A.data.map((T,I)=>f.data[I]+T)):void console.error(`Invalid assignment . Line ${e.line}`):void console.error(`Invalid assignment. Line ${e.line}`);if(v==="-=")return(f instanceof it||f instanceof Ve||f instanceof on)&&(A instanceof it||A instanceof Ve||A instanceof on)?void f.data.set(A.data.map((T,I)=>f.data[I]-T)):void console.error(`Invalid assignment. Line ${e.line}`)}if(e.variable instanceof ds){if(e.variable.operator==="*"){i=this.getVariableName(e.variable.right,t);const f=t.getVariable(i);if(!(f&&f.value instanceof fd))return void console.error(`Variable ${i} is not a pointer. Line ${e.line}`);n=f.value.reference;let A=e.variable.postfix;if(!A){let v=e.variable.right;for(;v instanceof ds;){if(v.postfix){A=v.postfix;break}v=v.right}}A&&(n=n.getSubData(this,A,t))}}else{s=e.variable.postfix,i=this.getVariableName(e.variable,t);const f=t.getVariable(i);if(f===null)return void console.error(`Variable ${i} not found. Line ${e.line}`);n=f.value}if(n instanceof fd&&(n=n.reference),n===null)return void console.error(`Variable ${i} not found. Line ${e.line}`);const o=this.evalExpression(e.value,t),l=e.operator;if(l!=="="){const f=n.getSubData(this,s,t);if(f instanceof Ve&&o instanceof it){const A=f.data,v=o.value;if(l==="+=")for(let T=0;T<A.length;++T)A[T]+=v;else if(l==="-=")for(let T=0;T<A.length;++T)A[T]-=v;else if(l==="*=")for(let T=0;T<A.length;++T)A[T]*=v;else if(l==="/=")for(let T=0;T<A.length;++T)A[T]/=v;else if(l==="%=")for(let T=0;T<A.length;++T)A[T]%=v;else if(l==="&=")for(let T=0;T<A.length;++T)A[T]&=v;else if(l==="|=")for(let T=0;T<A.length;++T)A[T]|=v;else if(l==="^=")for(let T=0;T<A.length;++T)A[T]^=v;else if(l==="<<=")for(let T=0;T<A.length;++T)A[T]<<=v;else if(l===">>=")for(let T=0;T<A.length;++T)A[T]>>=v;else console.error(`Invalid operator ${l}. Line ${e.line}`)}else if(f instanceof Ve&&o instanceof Ve){const A=f.data,v=o.data;if(A.length!==v.length)return void console.error(`Vector length mismatch. Line ${e.line}`);if(l==="+=")for(let T=0;T<A.length;++T)A[T]+=v[T];else if(l==="-=")for(let T=0;T<A.length;++T)A[T]-=v[T];else if(l==="*=")for(let T=0;T<A.length;++T)A[T]*=v[T];else if(l==="/=")for(let T=0;T<A.length;++T)A[T]/=v[T];else if(l==="%=")for(let T=0;T<A.length;++T)A[T]%=v[T];else if(l==="&=")for(let T=0;T<A.length;++T)A[T]&=v[T];else if(l==="|=")for(let T=0;T<A.length;++T)A[T]|=v[T];else if(l==="^=")for(let T=0;T<A.length;++T)A[T]^=v[T];else if(l==="<<=")for(let T=0;T<A.length;++T)A[T]<<=v[T];else if(l===">>=")for(let T=0;T<A.length;++T)A[T]>>=v[T];else console.error(`Invalid operator ${l}. Line ${e.line}`)}else{if(!(f instanceof it&&o instanceof it))return void console.error(`Invalid type for ${e.operator} operator. Line ${e.line}`);l==="+="?f.value+=o.value:l==="-="?f.value-=o.value:l==="*="?f.value*=o.value:l==="/="?f.value/=o.value:l==="%="?f.value%=o.value:l==="&="?f.value&=o.value:l==="|="?f.value|=o.value:l==="^="?f.value^=o.value:l==="<<="?f.value<<=o.value:l===">>="?f.value>>=o.value:console.error(`Invalid operator ${l}. Line ${e.line}`)}return void(n instanceof ts&&n.setDataValue(this,f,s,t))}if(n instanceof ts)n.setDataValue(this,o,s,t);else if(s){if(!(n instanceof Ve||n instanceof on))return void console.error(`Variable ${i} is not a vector or matrix. Line ${e.line}`);if(s instanceof cp){const f=this.evalExpression(s.index,t).value;if(n instanceof Ve){if(!(o instanceof it))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);n.data[f]=o.value}else{if(!(n instanceof on))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);{const A=this.evalExpression(s.index,t).value;if(A<0)return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);if(!(o instanceof Ve))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);{const v=n.typeInfo.getTypeName();if(v==="mat2x2"||v==="mat2x2f"||v==="mat2x2h"){if(!(A<2&&o.data.length===2))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);n.data[2*A]=o.data[0],n.data[2*A+1]=o.data[1]}else if(v==="mat2x3"||v==="mat2x3f"||v==="mat2x3h"){if(!(A<2&&o.data.length===3))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);n.data[3*A]=o.data[0],n.data[3*A+1]=o.data[1],n.data[3*A+2]=o.data[2]}else if(v==="mat2x4"||v==="mat2x4f"||v==="mat2x4h"){if(!(A<2&&o.data.length===4))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);n.data[4*A]=o.data[0],n.data[4*A+1]=o.data[1],n.data[4*A+2]=o.data[2],n.data[4*A+3]=o.data[3]}else if(v==="mat3x2"||v==="mat3x2f"||v==="mat3x2h"){if(!(A<3&&o.data.length===2))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);n.data[2*A]=o.data[0],n.data[2*A+1]=o.data[1]}else if(v==="mat3x3"||v==="mat3x3f"||v==="mat3x3h"){if(!(A<3&&o.data.length===3))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);n.data[3*A]=o.data[0],n.data[3*A+1]=o.data[1],n.data[3*A+2]=o.data[2]}else if(v==="mat3x4"||v==="mat3x4f"||v==="mat3x4h"){if(!(A<3&&o.data.length===4))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);n.data[4*A]=o.data[0],n.data[4*A+1]=o.data[1],n.data[4*A+2]=o.data[2],n.data[4*A+3]=o.data[3]}else if(v==="mat4x2"||v==="mat4x2f"||v==="mat4x2h"){if(!(A<4&&o.data.length===2))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);n.data[2*A]=o.data[0],n.data[2*A+1]=o.data[1]}else if(v==="mat4x3"||v==="mat4x3f"||v==="mat4x3h"){if(!(A<4&&o.data.length===3))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);n.data[3*A]=o.data[0],n.data[3*A+1]=o.data[1],n.data[3*A+2]=o.data[2]}else{if(v!=="mat4x4"&&v!=="mat4x4f"&&v!=="mat4x4h")return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);if(!(A<4&&o.data.length===4))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);n.data[4*A]=o.data[0],n.data[4*A+1]=o.data[1],n.data[4*A+2]=o.data[2],n.data[4*A+3]=o.data[3]}}}}}else if(s instanceof rh){const f=s.value;if(!(n instanceof Ve))return void console.error(`Invalid assignment to ${f}. Variable ${i} is not a vector. Line ${e.line}`);if(o instanceof it){if(f.length>1)return void console.error(`Invalid assignment to ${f} for variable ${i}. Line ${e.line}`);if(f==="x")n.data[0]=o.value;else if(f==="y"){if(n.data.length<2)return void console.error(`Invalid assignment to ${f} for variable ${i}. Line ${e.line}`);n.data[1]=o.value}else if(f==="z"){if(n.data.length<3)return void console.error(`Invalid assignment to ${f} for variable ${i}. Line ${e.line}`);n.data[2]=o.value}else if(f==="w"){if(n.data.length<4)return void console.error(`Invalid assignment to ${f} for variable ${i}. Line ${e.line}`);n.data[3]=o.value}}else{if(!(o instanceof Ve))return void console.error(`Invalid assignment to ${i}. Line ${e.line}`);if(f.length!==o.data.length)return void console.error(`Invalid assignment to ${f} for variable ${i}. Line ${e.line}`);for(let A=0;A<f.length;++A){const v=f[A];if(v==="x"||v==="r")n.data[0]=o.data[A];else if(v==="y"||v==="g"){if(o.data.length<2)return void console.error(`Invalid assignment to ${v} for variable ${i}. Line ${e.line}`);n.data[1]=o.data[A]}else if(v==="z"||v==="b"){if(o.data.length<3)return void console.error(`Invalid assignment to ${v} for variable ${i}. Line ${e.line}`);n.data[2]=o.data[A]}else{if(v!=="w"&&v!=="a")return void console.error(`Invalid assignment to ${v} for variable ${i}. Line ${e.line}`);if(o.data.length<4)return void console.error(`Invalid assignment to ${v} for variable ${i}. Line ${e.line}`);n.data[3]=o.data[A]}}}}}else n instanceof it&&o instanceof it?n.value=o.value:n instanceof Ve&&o instanceof Ve||n instanceof on&&o instanceof on?n.data.set(o.data):console.error(`Invalid assignment to ${i}. Line ${e.line}`)}_function(e,t){const n=new dx(e);t.functions.set(e.name,n)}_const(e,t){let n=null;e.value!==null&&(n=this.evalExpression(e.value,t)),t.createVariable(e.name,n,e)}_let(e,t){let n=null;if(e.value!==null){if(n=this.evalExpression(e.value,t),n===null)return void console.error(`Invalid value for variable ${e.name}. Line ${e.line}`);e.value instanceof ds||(n=n.clone())}
109else{const i=e.type.name;if(i==="f32"||i==="i32"||i==="u32"||i==="bool"||i==="f16"||i==="vec2"||i==="vec3"||i==="vec4"||i==="vec2f"||i==="vec3f"||i==="vec4f"||i==="vec2i"||i==="vec3i"||i==="vec4i"||i==="vec2u"||i==="vec3u"||i==="vec4u"||i==="vec2h"||i==="vec3h"||i==="vec4h"||i==="vec2b"||i==="vec3b"||i==="vec4b"||i==="mat2x2"||i==="mat2x3"||i==="mat2x4"||i==="mat3x2"||i==="mat3x3"||i==="mat3x4"||i==="mat4x2"||i==="mat4x3"||i==="mat4x4"||i==="mat2x2f"||i==="mat2x3f"||i==="mat2x4f"||i==="mat3x2f"||i==="mat3x3f"||i==="mat3x4f"||i==="mat4x2f"||i==="mat4x3f"||i==="mat4x4f"||i==="mat2x2h"||i==="mat2x3h"||i==="mat2x4h"||i==="mat3x2h"||i==="mat3x3h"||i==="mat3x4h"||i==="mat4x2h"||i==="mat4x3h"||i==="mat4x4h"||i==="array"){const s=new tc(e.type,[]);n=this._evalCreate(s,t)}}t.createVariable(e.name,n,e)}_var(e,t){let n=null;if(e.value!==null){if(n=this.evalExpression(e.value,t),n===null)return void console.error(`Invalid value for variable ${e.name}. Line ${e.line}`);e.value instanceof ds||(n=n.clone())}else{if(e.type===null)return void console.error(`Variable ${e.name} has no type. Line ${e.line}`);const i=e.type.name;if(i==="f32"||i==="i32"||i==="u32"||i==="bool"||i==="f16"||i==="vec2"||i==="vec3"||i==="vec4"||i==="vec2f"||i==="vec3f"||i==="vec4f"||i==="vec2i"||i==="vec3i"||i==="vec4i"||i==="vec2u"||i==="vec3u"||i==="vec4u"||i==="vec2h"||i==="vec3h"||i==="vec4h"||i==="vec2b"||i==="vec3b"||i==="vec4b"||i==="mat2x2"||i==="mat2x3"||i==="mat2x4"||i==="mat3x2"||i==="mat3x3"||i==="mat3x4"||i==="mat4x2"||i==="mat4x3"||i==="mat4x4"||i==="mat2x2f"||i==="mat2x3f"||i==="mat2x4f"||i==="mat3x2f"||i==="mat3x3f"||i==="mat3x4f"||i==="mat4x2f"||i==="mat4x3f"||i==="mat4x4f"||i==="mat2x2h"||i==="mat2x3h"||i==="mat2x4h"||i==="mat3x2h"||i==="mat3x3h"||i==="mat3x4h"||i==="mat4x2h"||i==="mat4x3h"||i==="mat4x4h"||e.type instanceof FA||e.type instanceof jc||e.type instanceof ft){const s=new tc(e.type,[]);n=this._evalCreate(s,t)}}t.createVariable(e.name,n,e)}_switch(e,t){t=t.clone();const n=this.evalExpression(e.condition,t);if(!(n instanceof it))return console.error(`Invalid if condition. Line ${e.line}`),null;let i=null;for(const s of e.cases)if(s instanceof mO)for(const o of s.selectors){if(o instanceof dm){i=s;continue}const l=this.evalExpression(o,t);if(!(l instanceof it))return console.error(`Invalid case selector. Line ${e.line}`),null;if(l.value===n.value)return this._execStatements(s.body,t)}else s instanceof _O&&(i=s);return i?this._execStatements(i.body,t):null}_if(e,t){t=t.clone();const n=this.evalExpression(e.condition,t);if(!(n instanceof it))return console.error(`Invalid if condition. Line ${e.line}`),null;if(n.value)return this._execStatements(e.body,t);for(const i of e.elseif){const s=this.evalExpression(i.condition,t);if(!(s instanceof it))return console.error(`Invalid if condition. Line ${e.line}`),null;if(s.value)return this._execStatements(i.body,t)}return e.else?this._execStatements(e.else,t):null}_getScalarValue(e){return e instanceof it?e.value:(console.error("Expected scalar value.",e),0)}_for(e,t){for(t=t.clone(),this.execStatement(e.init,t);this._getScalarValue(this.evalExpression(e.condition,t));){const n=this._execStatements(e.body,t);if(n===po._breakObj)break;if(n!==null&&n!==po._continueObj)return n;this.execStatement(e.increment,t)}return null}_loop(e,t){for(t=t.clone();;){const n=this._execStatements(e.body,t);if(n===po._breakObj)break;if(n===po._continueObj){if(e.continuing&&this._execStatements(e.continuing.body,t)===po._breakObj)break}else if(n!==null)return n}return null}_while(e,t){for(t=t.clone();this._getScalarValue(this.evalExpression(e.condition,t));){const n=this._execStatements(e.body,t);if(n===po._breakObj)break;if(n!==po._continueObj&&n!==null)return n}return null}_evalBitcast(e,t){const n=this.evalExpression(e.value,t),i=e.type;if(n instanceof it){const s=YC(n.value,n.typeInfo.name,i.name);return new it(s,this.getTypeInfo(i))}if(n instanceof Ve){const s=n.typeInfo.getTypeName();let o="";if(s.endsWith("f"))o="f32";else if(s.endsWith("i"))o="i32";else if(s.endsWith("u"))o="u32";else if(s.endsWith("b"))o="bool";else{if(!s.endsWith("h"))return console.error(`Unknown vector type ${s}. Line ${e.line}`),null;o="f16"}const l=i.getTypeName();let f="";if(l.endsWith("f"))f="f32";else if(l.endsWith("i"))f="i32";else if(l.endsWith("u"))f="u32";else if(l.endsWith("b"))f="bool";else{if(!l.endsWith("h"))return console.error(`Unknown vector type ${f}. Line ${e.line}`),null;f="f16"}const A=(function(v,T,I){if(T===I)return v;const F=new Array(v.length);for(let N=0;N<v.length;N++)F[N]=YC(v[N],T,I);return F})(Array.from(n.data),o,f);return new Ve(A,this.getTypeInfo(i))}return console.error(`TODO: bitcast for ${n.typeInfo.name}. Line ${e.line}`),null}_evalConst(e,t){return t.getVariableValue(e.name).clone().getSubData(this,e.postfix,t)}_evalCreate(e,t){var n;
109if(e instanceof tc){if(e.type===null)return T1.void;switch(e.type.getTypeName()){case"bool":case"i32":case"u32":case"f32":case"f16":return this._callConstructorValue(e,t);case"vec2":case"vec3":case"vec4":case"vec2f":case"vec3f":case"vec4f":case"vec2h":case"vec3h":case"vec4h":case"vec2i":case"vec3i":case"vec4i":case"vec2u":case"vec3u":case"vec4u":case"vec2b":case"vec3b":case"vec4b":return this._callConstructorVec(e,t);case"mat2x2":case"mat2x2f":case"mat2x2h":case"mat2x3":case"mat2x3f":case"mat2x3h":case"mat2x4":case"mat2x4f":case"mat2x4h":case"mat3x2":case"mat3x2f":case"mat3x2h":case"mat3x3":case"mat3x3f":case"mat3x3h":case"mat3x4":case"mat3x4f":case"mat3x4h":case"mat4x2":case"mat4x2f":case"mat4x2h":case"mat4x3":case"mat4x3f":case"mat4x3h":case"mat4x4":case"mat4x4f":case"mat4x4h":return this._callConstructorMatrix(e,t)}}const i=e instanceof tc?e.type.name:e.name,s=e instanceof tc?this.getTypeInfo(e.type):this.getTypeInfo(e.name);if(s===null)return console.error(`Unknown type ${i}. Line ${e.line}`),null;if(s.size===0)return null;const o=new ts(new ArrayBuffer(s.size),s,0);if(s instanceof zu){if(e.args)for(let l=0;l<e.args.length;++l){const f=s.members[l],A=e.args[l],v=this.evalExpression(A,t);o.setData(this,v,f.type,f.offset,t)}}else if(s instanceof Wu){let l=0;if(e.args)for(let f=0;f<e.args.length;++f){const A=e.args[f],v=this.evalExpression(A,t);s.format===null&&(((n=v.typeInfo)===null||n===void 0?void 0:n.name)==="x32"?s.format=this.getTypeInfo("i32"):s.format=v.typeInfo),o.setData(this,v,s.format,l,t),l+=s.stride}}else console.error(`Unknown type "${i}". Line ${e.line}`);return e instanceof tc?o.getSubData(this,e.postfix,t):o}_evalLiteral(e,t){const n=this.getTypeInfo(e.type),i=n.name;return i==="x32"||i==="u32"||i==="f32"||i==="f16"||i==="i32"||i==="bool"?new it(e.scalarValue,n):i==="vec2"||i==="vec3"||i==="vec4"||i==="vec2f"||i==="vec3f"||i==="vec4f"||i==="vec2h"||i==="vec3h"||i==="vec4h"||i==="vec2i"||i==="vec3i"||i==="vec4i"||i==="vec2u"||i==="vec3u"||i==="vec4u"?this._callConstructorVec(e,t):i==="mat2x2"||i==="mat2x3"||i==="mat2x4"||i==="mat3x2"||i==="mat3x3"||i==="mat3x4"||i==="mat4x2"||i==="mat4x3"||i==="mat4x4"||i==="mat2x2f"||i==="mat2x3f"||i==="mat2x4f"||i==="mat3x2f"||i==="mat3x3f"||i==="mat3x4f"||i==="mat4x2f"||i==="mat4x3f"||i==="mat4x4f"||i==="mat2x2h"||i==="mat2x3h"||i==="mat2x4h"||i==="mat3x2h"||i==="mat3x3h"||i==="mat3x4h"||i==="mat4x2h"||i==="mat4x3h"||i==="mat4x4h"?this._callConstructorMatrix(e,t):e.value}_evalVariable(e,t){const n=t.getVariableValue(e.name);return n===null?n:n.getSubData(this,e.postfix,t)}_maxFormatTypeInfo(e){let t=e[0];if(t.name==="f32")return t;for(let n=1;n<e.length;++n){const i=po._priority.get(t.name);po._priority.get(e[n].name)<i&&(t=e[n])}return t.name==="x32"?this.getTypeInfo("i32"):t}_evalUnaryOp(e,t){const n=this.evalExpression(e.right,t);if(e.operator==="&")return new fd(n);if(e.operator==="*")return n instanceof fd?n.reference.getSubData(this,e.postfix,t):(console.error(`Invalid dereference. Line ${e.line}`),null);const i=n instanceof it?n.value:n instanceof Ve?Array.from(n.data):null;switch(e.operator){case"+":{if(gr(i)){const l=i.map((f,A)=>+f);return new Ve(l,n.typeInfo)}const s=i,o=this._maxFormatTypeInfo([n.typeInfo,n.typeInfo]);return new it(+s,o)}case"-":{if(gr(i)){const l=i.map((f,A)=>-f);return new Ve(l,n.typeInfo)}const s=i,o=this._maxFormatTypeInfo([n.typeInfo,n.typeInfo]);return new it(-s,o)}case"!":{if(gr(i)){const l=i.map((f,A)=>f?0:1);return new Ve(l,n.typeInfo)}const s=i,o=this._maxFormatTypeInfo([n.typeInfo,n.typeInfo]);return new it(s?0:1,o)}case"~":{if(gr(i)){const l=i.map((f,A)=>~f);return new Ve(l,n.typeInfo)}const s=i,o=this._maxFormatTypeInfo([n.typeInfo,n.typeInfo]);return new it(~s,o)}}return console.error(`Invalid unary operator ${e.operator}. Line ${e.line}`),null}_evalBinaryOp(e,t){const n=this.evalExpression(e.left,t),i=this.evalExpression(e.right,t),s=n instanceof it?n.value:n instanceof Ve||n instanceof on?Array.from(n.data):null,o=i instanceof it?i.value:i instanceof Ve||i instanceof on?Array.from(i.data):null;switch(e.operator){case"+":{if(gr(s)&&gr(o)){const v=s,T=o;if(v.length!==T.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const I=v.map((F,N)=>F+T[N]);return new Ve(I,n.typeInfo)}if(gr(s)){const v=o,T=s.map((I,F)=>I+v);return new Ve(T,n.typeInfo)}
109if(gr(o)){const v=s,T=o.map((I,F)=>v+I);return new Ve(T,i.typeInfo)}const l=s,f=o,A=this._maxFormatTypeInfo([n.typeInfo,i.typeInfo]);return new it(l+f,A)}case"-":{if(gr(s)&&gr(o)){const v=s,T=o;if(v.length!==T.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const I=v.map((F,N)=>F-T[N]);return new Ve(I,n.typeInfo)}if(gr(s)){const v=o,T=s.map((I,F)=>I-v);return new Ve(T,n.typeInfo)}if(gr(o)){const v=s,T=o.map((I,F)=>v-I);return new Ve(T,i.typeInfo)}const l=s,f=o,A=this._maxFormatTypeInfo([n.typeInfo,i.typeInfo]);return new it(l-f,A)}case"*":{if(gr(s)&&gr(o)){const v=s,T=o;if(n instanceof on&&i instanceof on){const I=(function($,V,G,X){if(Io[V.name]===void 0||Io[X.name]===void 0)return null;const ue=Io[V.name][0],K=Io[V.name][1],se=Io[X.name][0];if(ue!==Io[X.name][1])return null;const Ee=new Array(se*K);for(let Ue=0;Ue<K;Ue++)for(let de=0;de<se;de++){let me=0;for(let pe=0;pe<ue;pe++)me+=$[pe*K+Ue]*G[de*ue+pe];Ee[Ue*se+de]=me}return Ee})(v,n.typeInfo,T,i.typeInfo);if(I===null)return console.error(`Matrix multiplication failed. Line ${e.line}.`),null;const F=Io[i.typeInfo.name][0],N=Io[n.typeInfo.name][1],U=this.getTypeInfo(`mat${F}x${N}f`);return new on(I,U)}if(n instanceof on&&i instanceof Ve){const I=(function(F,N,U,$){if(Io[N.name]===void 0||dv[$.name]===void 0)return null;const V=Io[N.name][0],G=Io[N.name][1];if(V!==U.length)return null;const X=new Array(G);for(let ue=0;ue<G;ue++){let K=0;for(let se=0;se<V;se++)K+=F[se*G+ue]*U[se];X[ue]=K}return X})(v,n.typeInfo,T,i.typeInfo);return I===null?(console.error(`Matrix vector multiplication failed. Line ${e.line}.`),null):new Ve(I,i.typeInfo)}if(n instanceof Ve&&i instanceof on){const I=(function(F,N,U,$){if(dv[N.name]===void 0||Io[$.name]===void 0)return null;const V=Io[$.name][0],G=Io[$.name][1];if(G!==F.length)return null;const X=[];for(let ue=0;ue<V;ue++){let K=0;for(let se=0;se<G;se++)K+=F[se]*U[se*V+ue];X[ue]=K}return X})(v,n.typeInfo,T,i.typeInfo);return I===null?(console.error(`Matrix vector multiplication failed. Line ${e.line}.`),null):new Ve(I,n.typeInfo)}{if(v.length!==T.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const I=v.map((F,N)=>F*T[N]);return new Ve(I,n.typeInfo)}}if(gr(s)){const v=o,T=s.map((I,F)=>I*v);return n instanceof on?new on(T,n.typeInfo):new Ve(T,n.typeInfo)}if(gr(o)){const v=s,T=o.map((I,F)=>v*I);return i instanceof on?new on(T,i.typeInfo):new Ve(T,i.typeInfo)}const l=s,f=o,A=this._maxFormatTypeInfo([n.typeInfo,i.typeInfo]);return new it(l*f,A)}case"%":{if(gr(s)&&gr(o)){const v=s,T=o;if(v.length!==T.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const I=v.map((F,N)=>F%T[N]);return new Ve(I,n.typeInfo)}if(gr(s)){const v=o,T=s.map((I,F)=>I%v);return new Ve(T,n.typeInfo)}if(gr(o)){const v=s,T=o.map((I,F)=>v%I);return new Ve(T,i.typeInfo)}const l=s,f=o,A=this._maxFormatTypeInfo([n.typeInfo,i.typeInfo]);return new it(l%f,A)}case"/":{if(gr(s)&&gr(o)){const v=s,T=o;if(v.length!==T.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const I=v.map((F,N)=>F/T[N]);return new Ve(I,n.typeInfo)}if(gr(s)){const v=o,T=s.map((I,F)=>I/v);return new Ve(T,n.typeInfo)}if(gr(o)){const v=s,T=o.map((I,F)=>v/I);return new Ve(T,i.typeInfo)}const l=s,f=o,A=this._maxFormatTypeInfo([n.typeInfo,i.typeInfo]);return new it(l/f,A)}case"&":{if(gr(s)&&gr(o)){const v=s,T=o;if(v.length!==T.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const I=v.map((F,N)=>F&T[N]);return new Ve(I,n.typeInfo)}if(gr(s)){const v=o,T=s.map((I,F)=>I&v);return new Ve(T,n.typeInfo)}if(gr(o)){const v=s,T=o.map((I,F)=>v&I);return new Ve(T,i.typeInfo)}const l=s,f=o,A=this._maxFormatTypeInfo([n.typeInfo,i.typeInfo]);return new it(l&f,A)}case"|":{if(gr(s)&&gr(o)){const v=s,T=o;if(v.length!==T.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const I=v.map((F,N)=>F|T[N]);return new Ve(I,n.typeInfo)}if(gr(s)){const v=o,T=s.map((I,F)=>I|v);return new Ve(T,n.typeInfo)}if(gr(o)){const v=s,T=o.map((I,F)=>v|I);return new Ve(T,i.typeInfo)}const l=s,f=o,A=this._maxFormatTypeInfo([n.typeInfo,i.typeInfo]);return new it(l|f,A)}case"^":{if(gr(s)&&gr(o)){const v=s,T=o;if(v.length!==T.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const I=v.map((F,N)=>F^T[N]);return new Ve(I,n.typeInfo)}if(gr(s)){const v=o,T=s.map((I,F)=>I^v);return new Ve(T,n.typeInfo)}
109if(gr(o)){const v=s,T=o.map((I,F)=>v^I);return new Ve(T,i.typeInfo)}const l=s,f=o,A=this._maxFormatTypeInfo([n.typeInfo,i.typeInfo]);return new it(l^f,A)}case"<<":{if(gr(s)&&gr(o)){const v=s,T=o;if(v.length!==T.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const I=v.map((F,N)=>F<<T[N]);return new Ve(I,n.typeInfo)}if(gr(s)){const v=o,T=s.map((I,F)=>I<<v);return new Ve(T,n.typeInfo)}if(gr(o)){const v=s,T=o.map((I,F)=>v<<I);return new Ve(T,i.typeInfo)}const l=s,f=o,A=this._maxFormatTypeInfo([n.typeInfo,i.typeInfo]);return new it(l<<f,A)}case">>":{if(gr(s)&&gr(o)){const v=s,T=o;if(v.length!==T.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const I=v.map((F,N)=>F>>T[N]);return new Ve(I,n.typeInfo)}if(gr(s)){const v=o,T=s.map((I,F)=>I>>v);return new Ve(T,n.typeInfo)}if(gr(o)){const v=s,T=o.map((I,F)=>v>>I);return new Ve(T,i.typeInfo)}const l=s,f=o,A=this._maxFormatTypeInfo([n.typeInfo,i.typeInfo]);return new it(l>>f,A)}case">":if(gr(s)&&gr(o)){const l=s,f=o;if(l.length!==f.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const A=l.map((v,T)=>v>f[T]?1:0);return new Ve(A,n.typeInfo)}if(gr(s)){const l=o,f=s.map((A,v)=>A>l?1:0);return new Ve(f,n.typeInfo)}if(gr(o)){const l=s,f=o.map((A,v)=>l>A?1:0);return new Ve(f,i.typeInfo)}return new it(s>o?1:0,this.getTypeInfo("bool"));case"<":if(gr(s)&&gr(o)){const l=s,f=o;if(l.length!==f.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const A=l.map((v,T)=>v<f[T]?1:0);return new Ve(A,n.typeInfo)}if(gr(s)){const l=o,f=s.map((A,v)=>A<l?1:0);return new Ve(f,n.typeInfo)}if(gr(o)){const l=s,f=o.map((A,v)=>l<A?1:0);return new Ve(f,i.typeInfo)}return new it(s<o?1:0,this.getTypeInfo("bool"));case"==":if(gr(s)&&gr(o)){const l=s,f=o;if(l.length!==f.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const A=l.map((v,T)=>v===f[T]?1:0);return new Ve(A,n.typeInfo)}if(gr(s)){const l=o,f=s.map((A,v)=>A==l?1:0);return new Ve(f,n.typeInfo)}if(gr(o)){const l=s,f=o.map((A,v)=>l==A?1:0);return new Ve(f,i.typeInfo)}return new it(s===o?1:0,this.getTypeInfo("bool"));case"!=":if(gr(s)&&gr(o)){const l=s,f=o;if(l.length!==f.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const A=l.map((v,T)=>v!==f[T]?1:0);return new Ve(A,n.typeInfo)}if(gr(s)){const l=o,f=s.map((A,v)=>A!==l?1:0);return new Ve(f,n.typeInfo)}if(gr(o)){const l=s,f=o.map((A,v)=>l!==A?1:0);return new Ve(f,i.typeInfo)}return new it(s!==o?1:0,this.getTypeInfo("bool"));case">=":if(gr(s)&&gr(o)){const l=s,f=o;if(l.length!==f.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const A=l.map((v,T)=>v>=f[T]?1:0);return new Ve(A,n.typeInfo)}if(gr(s)){const l=o,f=s.map((A,v)=>A>=l?1:0);return new Ve(f,n.typeInfo)}if(gr(o)){const l=s,f=o.map((A,v)=>l>=A?1:0);return new Ve(f,i.typeInfo)}return new it(s>=o?1:0,this.getTypeInfo("bool"));case"<=":if(gr(s)&&gr(o)){const l=s,f=o;if(l.length!==f.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const A=l.map((v,T)=>v<=f[T]?1:0);return new Ve(A,n.typeInfo)}if(gr(s)){const l=o,f=s.map((A,v)=>A<=l?1:0);return new Ve(f,n.typeInfo)}if(gr(o)){const l=s,f=o.map((A,v)=>l<=A?1:0);return new Ve(f,i.typeInfo)}return new it(s<=o?1:0,this.getTypeInfo("bool"));case"&&":if(gr(s)&&gr(o)){const l=s,f=o;if(l.length!==f.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const A=l.map((v,T)=>v&&f[T]?1:0);return new Ve(A,n.typeInfo)}if(gr(s)){const l=o,f=s.map((A,v)=>A&&l?1:0);return new Ve(f,n.typeInfo)}if(gr(o)){const l=s,f=o.map((A,v)=>l&&A?1:0);return new Ve(f,i.typeInfo)}return new it(s&&o?1:0,this.getTypeInfo("bool"));case"||":if(gr(s)&&gr(o)){const l=s,f=o;if(l.length!==f.length)return console.error(`Vector length mismatch. Line ${e.line}.`),null;const A=l.map((v,T)=>v||f[T]?1:0);return new Ve(A,n.typeInfo)}if(gr(s)){const l=o,f=s.map((A,v)=>A||l?1:0);return new Ve(f,n.typeInfo)}if(gr(o)){const l=s,f=o.map((A,v)=>l||A?1:0);return new Ve(f,i.typeInfo)}return new it(s||o?1:0,this.getTypeInfo("bool"))}return console.error(`Unknown operator ${e.operator}. Line ${e.line}`),null}
109_evalCall(e,t){if(e.cachedReturnValue!==null)return e.cachedReturnValue;const n=t.clone();n.currentFunctionName=e.name;const i=t.getFunction(e.name);if(!i)return e.isBuiltin?this._callBuiltinFunction(e,n):this.getTypeInfo(e.name)?this._evalCreate(e,t):(console.error(`Unknown function "${e.name}". Line ${e.line}`),null);for(let s=0;s<i.node.args.length;++s){const o=i.node.args[s],l=this.evalExpression(e.args[s],n);n.createVariable(o.name,l,o)}return this._execStatements(i.node.body,n)}_callBuiltinFunction(e,t){switch(e.name){case"all":return this.builtins.All(e,t);case"any":return this.builtins.Any(e,t);case"select":return this.builtins.Select(e,t);case"arrayLength":return this.builtins.ArrayLength(e,t);case"abs":return this.builtins.Abs(e,t);case"acos":return this.builtins.Acos(e,t);case"acosh":return this.builtins.Acosh(e,t);case"asin":return this.builtins.Asin(e,t);case"asinh":return this.builtins.Asinh(e,t);case"atan":return this.builtins.Atan(e,t);case"atanh":return this.builtins.Atanh(e,t);case"atan2":return this.builtins.Atan2(e,t);case"ceil":return this.builtins.Ceil(e,t);case"clamp":return this.builtins.Clamp(e,t);case"cos":return this.builtins.Cos(e,t);case"cosh":return this.builtins.Cosh(e,t);case"countLeadingZeros":return this.builtins.CountLeadingZeros(e,t);case"countOneBits":return this.builtins.CountOneBits(e,t);case"countTrailingZeros":return this.builtins.CountTrailingZeros(e,t);case"cross":return this.builtins.Cross(e,t);case"degrees":return this.builtins.Degrees(e,t);case"determinant":return this.builtins.Determinant(e,t);case"distance":return this.builtins.Distance(e,t);case"dot":return this.builtins.Dot(e,t);case"dot4U8Packed":return this.builtins.Dot4U8Packed(e,t);case"dot4I8Packed":return this.builtins.Dot4I8Packed(e,t);case"exp":return this.builtins.Exp(e,t);case"exp2":return this.builtins.Exp2(e,t);case"extractBits":return this.builtins.ExtractBits(e,t);case"faceForward":return this.builtins.FaceForward(e,t);case"firstLeadingBit":return this.builtins.FirstLeadingBit(e,t);case"firstTrailingBit":return this.builtins.FirstTrailingBit(e,t);case"floor":return this.builtins.Floor(e,t);case"fma":return this.builtins.Fma(e,t);case"fract":return this.builtins.Fract(e,t);case"frexp":return this.builtins.Frexp(e,t);case"insertBits":return this.builtins.InsertBits(e,t);case"inverseSqrt":return this.builtins.InverseSqrt(e,t);case"ldexp":return this.builtins.Ldexp(e,t);case"length":return this.builtins.Length(e,t);case"log":return this.builtins.Log(e,t);case"log2":return this.builtins.Log2(e,t);case"max":return this.builtins.Max(e,t);case"min":return this.builtins.Min(e,t);case"mix":return this.builtins.Mix(e,t);case"modf":return this.builtins.Modf(e,t);case"normalize":return this.builtins.Normalize(e,t);case"pow":return this.builtins.Pow(e,t);case"quantizeToF16":return this.builtins.QuantizeToF16(e,t);case"radians":return this.builtins.Radians(e,t);case"reflect":return this.builtins.Reflect(e,t);case"refract":return this.builtins.Refract(e,t);case"reverseBits":return this.builtins.ReverseBits(e,t);case"round":return this.builtins.Round(e,t);case"saturate":return this.builtins.Saturate(e,t);case"sign":return this.builtins.Sign(e,t);case"sin":return this.builtins.Sin(e,t);case"sinh":return this.builtins.Sinh(e,t);case"smoothstep":return this.builtins.SmoothStep(e,t);case"sqrt":return this.builtins.Sqrt(e,t);case"step":return this.builtins.Step(e,t);case"tan":return this.builtins.Tan(e,t);case"tanh":return this.builtins.Tanh(e,t);case"transpose":return this.builtins.Transpose(e,t);case"trunc":return this.builtins.Trunc(e,t);case"dpdx":return this.builtins.Dpdx(e,t);case"dpdxCoarse":return this.builtins.DpdxCoarse(e,t);case"dpdxFine":return this.builtins.DpdxFine(e,t);case"dpdy":return this.builtins.Dpdy(e,t);case"dpdyCoarse":return this.builtins.DpdyCoarse(e,t);case"dpdyFine":return this.builtins.DpdyFine(e,t);case"fwidth":return this.builtins.Fwidth(e,t);case"fwidthCoarse":return this.builtins.FwidthCoarse(e,t);case"fwidthFine":return this.builtins.FwidthFine(e,t);case"textureDimensions":return this.builtins.TextureDimensions(e,t);case"textureGather":return this.builtins.TextureGather(e,t);case"textureGatherCompare":return this.builtins.TextureGatherCompare(e,t);case"textureLoad":return this.builtins.TextureLoad(e,t);case"textureNumLayers":return this.builtins.TextureNumLayers(e,t);case"textureNumLevels":return this.builtins.TextureNumLevels(e,t);case"textureNumSamples":return this.builtins.TextureNumSamples(e,t);case"textureSample":return this.builtins.TextureSample(e,t);case"textureSampleBias":return this.builtins.TextureSampleBias(e,t);case"textureSampleCompare":return this.builtins.TextureSampleCompare(e,t);case"textureSampleCompareLevel":return this.builtins.TextureSampleCompareLevel(e,t);case"textureSampleGrad":return this.builtins.TextureSampleGrad(e,t);case"textureSampleLevel":return this.builtins.TextureSampleLevel(e,t);case"textureSampleBaseClampToEdge":return this.builtins.TextureSampleBaseClampToEdge(e,t);case"textureStore":return this.builtins.TextureStore(e,t);case"atomicLoad":return this.builtins.AtomicLoad(e,t);case"atomicStore":return this.builtins.AtomicStore(e,t);case"atomicAdd":return this.builtins.AtomicAdd(e,t);case"atomicSub":return this.builtins.AtomicSub(e,t);case"atomicMax":return this.builtins.AtomicMax(e,t);case"atomicMin":return this.builtins.AtomicMin(e,t);case"atomicAnd":return this.builtins.AtomicAnd(e,t);case"atomicOr":return this.builtins.AtomicOr(e,t);case"atomicXor":return this.builtins.AtomicXor(e,t);case"atomicExchange":return this.builtins.AtomicExchange(e,t);case"atomicCompareExchangeWeak":return this.builtins.AtomicCompareExchangeWeak(e,t);case"pack4x8snorm":return this.builtins.Pack4x8snorm(e,t);case"pack4x8unorm":return this.builtins.Pack4x8unorm(e,t);case"pack4xI8":return this.builtins.Pack4xI8(e,t);case"pack4xU8":return this.builtins.Pack4xU8(e,t);case"pack4x8Clamp":return this.builtins.Pack4x8Clamp(e,t);case"pack4xU8Clamp":return this.builtins.Pack4xU8Clamp(e,t);case"pack2x16snorm":return this.builtins.Pack2x16snorm(e,t);case"pack2x16unorm":return this.builtins.Pack2x16unorm(e,t);case"pack2x16float":return this.builtins.Pack2x16float(e,t);case"unpack4x8snorm":return this.builtins.Unpack4x8snorm(e,t);case"unpack4x8unorm":return this.builtins.Unpack4x8unorm(e,t);case"unpack4xI8":return this.builtins.Unpack4xI8(e,t);case"unpack4xU8":return this.builtins.Unpack4xU8(e,t);case"unpack2x16snorm":return this.builtins.Unpack2x16snorm(e,t);case"unpack2x16unorm":return this.builtins.Unpack2x16unorm(e,t);case"unpack2x16float":return this.builtins.Unpack2x16float(e,t);case"storageBarrier":return this.builtins.StorageBarrier(e,t);case"textureBarrier":return this.builtins.TextureBarrier(e,t);case"workgroupBarrier":return this.builtins.WorkgroupBarrier(e,t);case"workgroupUniformLoad":return this.builtins.WorkgroupUniformLoad(e,t);case"subgroupAdd":return this.builtins.SubgroupAdd(e,t);case"subgroupExclusiveAdd":return this.builtins.SubgroupExclusiveAdd(e,t);case"subgroupInclusiveAdd":return this.builtins.SubgroupInclusiveAdd(e,t);case"subgroupAll":return this.builtins.SubgroupAll(e,t);case"subgroupAnd":return this.builtins.SubgroupAnd(e,t);case"subgroupAny":return this.builtins.SubgroupAny(e,t);case"subgroupBallot":return this.builtins.SubgroupBallot(e,t);case"subgroupBroadcast":return this.builtins.SubgroupBroadcast(e,t);case"subgroupBroadcastFirst":return this.builtins.SubgroupBroadcastFirst(e,t);case"subgroupElect":return this.builtins.SubgroupElect(e,t);case"subgroupMax":return this.builtins.SubgroupMax(e,t);case"subgroupMin":return this.builtins.SubgroupMin(e,t);case"subgroupMul":return this.builtins.SubgroupMul(e,t);case"subgroupExclusiveMul":return this.builtins.SubgroupExclusiveMul(e,t);case"subgroupInclusiveMul":return this.builtins.SubgroupInclusiveMul(e,t);case"subgroupOr":return this.builtins.SubgroupOr(e,t);case"subgroupShuffle":return this.builtins.SubgroupShuffle(e,t);case"subgroupShuffleDown":return this.builtins.SubgroupShuffleDown(e,t);case"subgroupShuffleUp":return this.builtins.SubgroupShuffleUp(e,t);case"subgroupShuffleXor":return this.builtins.SubgroupShuffleXor(e,t);case"subgroupXor":return this.builtins.SubgroupXor(e,t);case"quadBroadcast":return this.builtins.QuadBroadcast(e,t);case"quadSwapDiagonal":return this.builtins.QuadSwapDiagonal(e,t);case"quadSwapX":return this.builtins.QuadSwapX(e,t);case"quadSwapY":return this.builtins.QuadSwapY(e,t)}const n=t.getFunction(e.name);if(n){const i=t.clone();for(let s=0;s<n.node.args.length;++s){const o=n.node.args[s],l=this.evalExpression(e.args[s],i);i.setVariable(o.name,l,o)}return this._execStatements(n.node.body,i)}return null}_callConstructorValue(e,t){if(!e.args||e.args.length===0)return new it(0,this.getTypeInfo(e.type));const n=this.evalExpression(e.args[0],t);return n.typeInfo=this.getTypeInfo(e.type),n.getSubData(this,e.postfix,t).clone()}_callConstructorVec(e,t){const n=this.getTypeInfo(e.type),i=e.type.getTypeName(),s=dv[i];if(s===void 0)return console.error(`Invalid vec constructor ${i}. Line ${e.line}`),null;const o=[];if(e instanceof ws)if(e.isVector){const l=e.vectorValue;for(const f of l)o.push(f)}else o.push(e.scalarValue);else if(e.args)for(const l of e.args){const f=this.evalExpression(l,t);if(f instanceof Ve){const A=f.data;for(let v=0;v<A.length;++v){let T=A[v];o.push(T)}}else if(f instanceof it){let A=f.value;o.push(A)}}if(e.type instanceof ft&&e.type.format===null&&(e.type.format=ft.f32),o.length===0){const l=new Array(s).fill(0);return new Ve(l,n).getSubData(this,e.postfix,t)}if(o.length===1)for(;o.length<s;)o.push(o[0]);return o.length<s?(console.error(`Invalid vec constructor. Line ${e.line}`),null):new Ve(o.length>s?o.slice(0,s):o,n).getSubData(this,e.postfix,t)}_callConstructorMatrix(e,t){const n=this.getTypeInfo(e.type),i=e.type.getTypeName(),s=Io[i];if(s===void 0)return console.error(`Invalid matrix constructor ${i}. Line ${e.line}`),null;const o=[];if(e instanceof ws)if(e.isVector){const l=e.vectorValue;for(const f of l)o.push(f)}else o.push(e.scalarValue);else if(e.args)for(const l of e.args){const f=this.evalExpression(l,t);f instanceof Ve?o.push(...f.data):f instanceof it?o.push(f.value):f instanceof on&&o.push(...f.data)}if(n instanceof th&&n.format===null&&(n.format=this.getTypeInfo("f32")),o.length===0){const l=new Array(s[2]).fill(0);return new on(l,n).getSubData(this,e.postfix,t)}return o.length!==s[2]?(console.error(`Invalid matrix constructor. Line ${e.line}`),null):new on(o,n).getSubData(this,e.postfix,t)}}po._breakObj=new ja(new za("BREAK",null),null),po._continueObj=new ja(new za("CONTINUE",null),null),po._priority=new Map([["f32",0],["f16",1],["u32",2],["i32",3],["x32",3]]);class y7{constructor(){this.constants=new Map,this.aliases=new Map,this.structs=new Map}}class v7{constructor(){this._tokens=[],this._current=0,this._currentLine=1,this._deferArrayCountEval=[],this._currentLoop=[],this._context=new y7,this._exec=new po,this._forwardTypeCount=0}parse(e){this._initialize(e),this._deferArrayCountEval.length=0;const t=[];for(;!this._isAtEnd();){const n=this._global_decl_or_directive();if(!n)break;t.push(n)}if(this._deferArrayCountEval.length>0){for(const n of this._deferArrayCountEval){const i=n.arrayType,s=n.countNode;if(s instanceof fa){const o=s.name,l=this._context.constants.get(o);if(l)try{const f=l.constEvaluate(this._exec);i.count=f}catch{}}}this._deferArrayCountEval.length=0}if(this._forwardTypeCount>0)for(const n of t)n.search(i=>{i instanceof KC||i instanceof hm?i.type=this._forwardType(i.type):i instanceof FA?i.format=this._forwardType(i.format):i instanceof Hc||i instanceof DA||i instanceof fm?i.type=this._forwardType(i.type):i instanceof ZA?i.returnType=this._forwardType(i.returnType):i instanceof JC&&(i.type=this._forwardType(i.type))});return t}_forwardType(e){if(e instanceof qC){const t=this._getType(e.name);if(t)return t}else e instanceof hm?e.type=this._forwardType(e.type):e instanceof FA&&(e.format=this._forwardType(e.format));return e}_initialize(e){if(e)if(typeof e=="string"){const t=new c7(e);this._tokens=t.scanTokens()}else this._tokens=e;else this._tokens=[];this._current=0}_updateNode(e,t){return e.line=t??this._currentLine,e}_error(e,t){return{token:e,message:t,toString:()=>`${t}`}}_isAtEnd(){return this._current>=this._tokens.length||this._peek().type==Fe.eof}_match(e){if(e instanceof at)return!!this._check(e)&&(this._advance(),!0);for(let t=0,n=e.length;t<n;++t){const i=e[t];if(this._check(i))return this._advance(),!0}return!1}_consume(e,t){if(this._check(e))return this._advance();throw this._error(this._peek(),`${t}. Line:${this._currentLine}`)}_check(e){if(this._isAtEnd())return!1;const t=this._peek();if(e instanceof Array){const n=t.type;let i=!1;for(const s of e){if(n===s)return!0;s===Fe.tokens.name&&(i=!0)}if(i){const s=Fe.tokens.name.rule.exec(t.lexeme);if(s&&s.index==0&&s[0]==t.lexeme)return!0}return!1}if(t.type===e)return!0;
109if(e===Fe.tokens.name){const n=Fe.tokens.name.rule.exec(t.lexeme);return n&&n.index==0&&n[0]==t.lexeme}return!1}_advance(){var e,t;return this._currentLine=(t=(e=this._peek())===null||e===void 0?void 0:e.line)!==null&&t!==void 0?t:-1,this._isAtEnd()||this._current++,this._previous()}_peek(){return this._tokens[this._current]}_previous(){return this._tokens[this._current-1]}_global_decl_or_directive(){for(;this._match(Fe.tokens.semicolon)&&!this._isAtEnd(););if(this._match(Fe.keywords.alias)){const t=this._type_alias();return this._consume(Fe.tokens.semicolon,"Expected ';'"),this._exec.reflection.updateAST([t]),t}if(this._match(Fe.keywords.diagnostic)){const t=this._diagnostic();return this._consume(Fe.tokens.semicolon,"Expected ';'"),this._exec.reflection.updateAST([t]),t}if(this._match(Fe.keywords.requires)){const t=this._requires_directive();return this._consume(Fe.tokens.semicolon,"Expected ';'"),this._exec.reflection.updateAST([t]),t}if(this._match(Fe.keywords.enable)){const t=this._enable_directive();return this._consume(Fe.tokens.semicolon,"Expected ';'"),this._exec.reflection.updateAST([t]),t}const e=this._attribute();if(this._check(Fe.keywords.var)){const t=this._global_variable_decl();return t!=null&&(t.attributes=e),this._consume(Fe.tokens.semicolon,"Expected ';'."),this._exec.reflection.updateAST([t]),t}if(this._check(Fe.keywords.override)){const t=this._override_variable_decl();return t!=null&&(t.attributes=e),this._consume(Fe.tokens.semicolon,"Expected ';'."),this._exec.reflection.updateAST([t]),t}if(this._check(Fe.keywords.let)){const t=this._global_let_decl();return t!=null&&(t.attributes=e),this._consume(Fe.tokens.semicolon,"Expected ';'."),this._exec.reflection.updateAST([t]),t}if(this._check(Fe.keywords.const)){const t=this._global_const_decl();return t!=null&&(t.attributes=e),this._consume(Fe.tokens.semicolon,"Expected ';'."),this._exec.reflection.updateAST([t]),t}if(this._check(Fe.keywords.struct)){const t=this._struct_decl();return t!=null&&(t.attributes=e),this._exec.reflection.updateAST([t]),t}if(this._check(Fe.keywords.fn)){const t=this._function_decl();return t!=null&&(t.attributes=e),this._exec.reflection.updateAST([t]),t}return null}_function_decl(){if(!this._match(Fe.keywords.fn))return null;const e=this._currentLine,t=this._consume(Fe.tokens.ident,"Expected function name.").toString();this._consume(Fe.tokens.paren_left,"Expected '(' for function arguments.");const n=[];if(!this._check(Fe.tokens.paren_right))do{if(this._check(Fe.tokens.paren_right))break;const l=this._attribute(),f=this._consume(Fe.tokens.name,"Expected argument name.").toString();this._consume(Fe.tokens.colon,"Expected ':' for argument type.");const A=this._attribute(),v=this._type_decl();v!=null&&(v.attributes=A,n.push(this._updateNode(new JC(f,v,l))))}while(this._match(Fe.tokens.comma));this._consume(Fe.tokens.paren_right,"Expected ')' after function arguments.");let i=null;if(this._match(Fe.tokens.arrow)){const l=this._attribute();i=this._type_decl(),i!=null&&(i.attributes=l)}const s=this._compound_statement(),o=this._currentLine;return this._updateNode(new ZA(t,n,i,s,e,o),e)}_compound_statement(){const e=[];for(this._consume(Fe.tokens.brace_left,"Expected '{' for block.");!this._check(Fe.tokens.brace_right);){const t=this._statement();t!==null&&e.push(t)}return this._consume(Fe.tokens.brace_right,"Expected '}' for block."),e}_statement(){for(;this._match(Fe.tokens.semicolon)&&!this._isAtEnd(););if(this._check(Fe.tokens.attr)&&this._attribute(),this._check(Fe.keywords.if))return this._if_statement();if(this._check(Fe.keywords.switch))return this._switch_statement();if(this._check(Fe.keywords.loop))return this._loop_statement();if(this._check(Fe.keywords.for))return this._for_statement();if(this._check(Fe.keywords.while))return this._while_statement();if(this._check(Fe.keywords.continuing))return this._continuing_statement();if(this._check(Fe.keywords.static_assert))return this._static_assert_statement();if(this._check(Fe.tokens.brace_left))return this._compound_statement();let e=null;
109if(this._check(Fe.keywords.return))e=this._return_statement();else if(this._check([Fe.keywords.var,Fe.keywords.let,Fe.keywords.const]))e=this._variable_statement();else if(this._match(Fe.keywords.discard))e=this._updateNode(new o7);else if(this._match(Fe.keywords.break)){const t=this._updateNode(new fO);if(this._currentLoop.length>0){const n=this._currentLoop[this._currentLoop.length-1];t.loopId=n.id}e=t,this._check(Fe.keywords.if)&&(this._advance(),t.condition=this._optional_paren_expression())}else if(this._match(Fe.keywords.continue)){const t=this._updateNode(new hO);if(!(this._currentLoop.length>0))throw this._error(this._peek(),`Continue statement must be inside a loop. Line: ${t.line}`);{const n=this._currentLoop[this._currentLoop.length-1];t.loopId=n.id}e=t}else e=this._increment_decrement_statement()||this._func_call_statement()||this._assignment_statement();return e!=null&&this._consume(Fe.tokens.semicolon,"Expected ';' after statement."),e}_static_assert_statement(){if(!this._match(Fe.keywords.static_assert))return null;const e=this._currentLine,t=this._optional_paren_expression();return this._updateNode(new n7(t),e)}_while_statement(){if(!this._match(Fe.keywords.while))return null;const e=this._updateNode(new rO(null,null));return this._currentLoop.push(e),e.condition=this._optional_paren_expression(),this._check(Fe.tokens.attr)&&this._attribute(),e.body=this._compound_statement(),this._currentLoop.pop(),e}_continuing_statement(){const e=this._currentLoop.length>0?this._currentLoop[this._currentLoop.length-1].id:-1;if(!this._match(Fe.keywords.continuing))return null;const t=this._currentLine,n=this._compound_statement();return this._updateNode(new w1(n,e),t)}_for_statement(){if(!this._match(Fe.keywords.for))return null;this._consume(Fe.tokens.paren_left,"Expected '('.");const e=this._updateNode(new nO(null,null,null,null));return this._currentLoop.push(e),e.init=this._check(Fe.tokens.semicolon)?null:this._for_init(),this._consume(Fe.tokens.semicolon,"Expected ';'."),e.condition=this._check(Fe.tokens.semicolon)?null:this._short_circuit_or_expression(),this._consume(Fe.tokens.semicolon,"Expected ';'."),e.increment=this._check(Fe.tokens.paren_right)?null:this._for_increment(),this._consume(Fe.tokens.paren_right,"Expected ')'."),this._check(Fe.tokens.attr)&&this._attribute(),e.body=this._compound_statement(),this._currentLoop.pop(),e}_for_init(){return this._variable_statement()||this._func_call_statement()||this._assignment_statement()}_for_increment(){return this._func_call_statement()||this._increment_decrement_statement()||this._assignment_statement()}_variable_statement(){if(this._check(Fe.keywords.var)){const e=this._variable_decl();if(e===null)throw this._error(this._peek(),"Variable declaration expected.");let t=null;return this._match(Fe.tokens.equal)&&(t=this._short_circuit_or_expression()),this._updateNode(new Hc(e.name,e.type,e.storage,e.access,t),e.line)}if(this._match(Fe.keywords.let)){const e=this._currentLine,t=this._consume(Fe.tokens.name,"Expected name for let.").toString();let n=null;if(this._match(Fe.tokens.colon)){const s=this._attribute();n=this._type_decl(),n!=null&&(n.attributes=s)}this._consume(Fe.tokens.equal,"Expected '=' for let.");const i=this._short_circuit_or_expression();return this._updateNode(new DA(t,n,null,null,i),e)}if(this._match(Fe.keywords.const)){const e=this._currentLine,t=this._consume(Fe.tokens.name,"Expected name for const.").toString();let n=null;if(this._match(Fe.tokens.colon)){const s=this._attribute();n=this._type_decl(),n!=null&&(n.attributes=s)}this._consume(Fe.tokens.equal,"Expected '=' for const.");const i=this._short_circuit_or_expression();return n===null&&i instanceof ws&&(n=i.type),this._updateNode(new fm(t,n,null,null,i),e)}return null}_increment_decrement_statement(){const e=this._current,t=this._unary_expression();if(t==null)return null;if(!this._check(Fe.increment_operators))return this._current=e,null;const n=this._consume(Fe.increment_operators,"Expected increment operator");return this._updateNode(new iO(n.type===Fe.tokens.plus_plus?kd.increment:kd.decrement,t))}
109_assignment_statement(){let e=null;const t=this._currentLine;if(this._check(Fe.tokens.brace_right))return null;let n=this._match(Fe.tokens.underscore);if(n||(e=this._unary_expression()),!n&&e==null)return null;const i=this._consume(Fe.assignment_operators,"Expected assignment operator."),s=this._short_circuit_or_expression();return this._updateNode(new sO(wA.parse(i.lexeme),e,s),t)}_func_call_statement(){if(!this._check(Fe.tokens.ident))return null;const e=this._currentLine,t=this._current,n=this._consume(Fe.tokens.ident,"Expected function name."),i=this._argument_expression_list();return i===null?(this._current=t,null):this._updateNode(new lx(n.lexeme,i),e)}_loop_statement(){if(!this._match(Fe.keywords.loop))return null;this._check(Fe.tokens.attr)&&this._attribute(),this._consume(Fe.tokens.brace_left,"Expected '{' for loop.");const e=this._updateNode(new oO([],null));this._currentLoop.push(e);let t=this._statement();for(;t!==null;){if(Array.isArray(t))for(let n of t)e.body.push(n);else e.body.push(t);if(t instanceof w1){e.continuing=t;break}t=this._statement()}return this._currentLoop.pop(),this._consume(Fe.tokens.brace_right,"Expected '}' for loop."),e}_switch_statement(){if(!this._match(Fe.keywords.switch))return null;const e=this._updateNode(new aO(null,[]));if(this._currentLoop.push(e),e.condition=this._optional_paren_expression(),this._check(Fe.tokens.attr)&&this._attribute(),this._consume(Fe.tokens.brace_left,"Expected '{' for switch."),e.cases=this._switch_body(),e.cases==null||e.cases.length==0)throw this._error(this._previous(),"Expected 'case' or 'default'.");return this._consume(Fe.tokens.brace_right,"Expected '}' for switch."),this._currentLoop.pop(),e}_switch_body(){const e=[];let t=!1;for(;this._check([Fe.keywords.default,Fe.keywords.case]);){if(this._match(Fe.keywords.case)){const n=this._case_selectors();for(const s of n)if(s instanceof dm){if(t)throw this._error(this._previous(),"Multiple default cases in switch statement.");t=!0;break}this._match(Fe.tokens.colon),this._check(Fe.tokens.attr)&&this._attribute(),this._consume(Fe.tokens.brace_left,"Exected '{' for switch case.");const i=this._case_body();this._consume(Fe.tokens.brace_right,"Exected '}' for switch case."),e.push(this._updateNode(new mO(n,i)))}if(this._match(Fe.keywords.default)){if(t)throw this._error(this._previous(),"Multiple default cases in switch statement.");this._match(Fe.tokens.colon),this._check(Fe.tokens.attr)&&this._attribute(),this._consume(Fe.tokens.brace_left,"Exected '{' for switch default.");const n=this._case_body();this._consume(Fe.tokens.brace_right,"Exected '}' for switch default."),e.push(this._updateNode(new _O(n)))}}return e}_case_selectors(){const e=[];for(this._match(Fe.keywords.default)?e.push(this._updateNode(new dm)):e.push(this._shift_expression());this._match(Fe.tokens.comma);)this._match(Fe.keywords.default)?e.push(this._updateNode(new dm)):e.push(this._shift_expression());return e}_case_body(){if(this._match(Fe.keywords.fallthrough))return this._consume(Fe.tokens.semicolon,"Expected ';'"),[];let e=this._statement();if(e==null)return[];e instanceof Array||(e=[e]);const t=this._case_body();return t.length==0?e:[...e,t[0]]}_if_statement(){if(!this._match(Fe.keywords.if))return null;const e=this._currentLine,t=this._optional_paren_expression();this._check(Fe.tokens.attr)&&this._attribute();const n=this._compound_statement();let i=[];this._match_elseif()&&(this._check(Fe.tokens.attr)&&this._attribute(),i=this._elseif_statement(i));let s=null;return this._match(Fe.keywords.else)&&(this._check(Fe.tokens.attr)&&this._attribute(),s=this._compound_statement()),this._updateNode(new lO(t,n,i,s),e)}_match_elseif(){return this._tokens[this._current].type===Fe.keywords.else&&this._tokens[this._current+1].type===Fe.keywords.if&&(this._advance(),this._advance(),!0)}_elseif_statement(e=[]){const t=this._optional_paren_expression(),n=this._compound_statement();return e.push(this._updateNode(new a7(t,n))),this._match_elseif()&&(this._check(Fe.tokens.attr)&&this._attribute(),this._elseif_statement(e)),e}_return_statement(){if(!this._match(Fe.keywords.return))return null;const e=this._short_circuit_or_expression();return this._updateNode(new cO(e))}_short_circuit_or_expression(){let e=this._short_circuit_and_expr();for(;this._match(Fe.tokens.or_or);
109)e=this._updateNode(new fl(this._previous().toString(),e,this._short_circuit_and_expr()));return e}_short_circuit_and_expr(){let e=this._inclusive_or_expression();for(;this._match(Fe.tokens.and_and);)e=this._updateNode(new fl(this._previous().toString(),e,this._inclusive_or_expression()));return e}_inclusive_or_expression(){let e=this._exclusive_or_expression();for(;this._match(Fe.tokens.or);)e=this._updateNode(new fl(this._previous().toString(),e,this._exclusive_or_expression()));return e}_exclusive_or_expression(){let e=this._and_expression();for(;this._match(Fe.tokens.xor);)e=this._updateNode(new fl(this._previous().toString(),e,this._and_expression()));return e}_and_expression(){let e=this._equality_expression();for(;this._match(Fe.tokens.and);)e=this._updateNode(new fl(this._previous().toString(),e,this._equality_expression()));return e}_equality_expression(){const e=this._relational_expression();return this._match([Fe.tokens.equal_equal,Fe.tokens.not_equal])?this._updateNode(new fl(this._previous().toString(),e,this._relational_expression())):e}_relational_expression(){let e=this._shift_expression();for(;this._match([Fe.tokens.less_than,Fe.tokens.greater_than,Fe.tokens.less_than_equal,Fe.tokens.greater_than_equal]);)e=this._updateNode(new fl(this._previous().toString(),e,this._shift_expression()));return e}_shift_expression(){let e=this._additive_expression();for(;this._match([Fe.tokens.shift_left,Fe.tokens.shift_right]);)e=this._updateNode(new fl(this._previous().toString(),e,this._additive_expression()));return e}_additive_expression(){let e=this._multiplicative_expression();for(;this._match([Fe.tokens.plus,Fe.tokens.minus]);)e=this._updateNode(new fl(this._previous().toString(),e,this._multiplicative_expression()));return e}_multiplicative_expression(){let e=this._unary_expression();for(;this._match([Fe.tokens.star,Fe.tokens.forward_slash,Fe.tokens.modulo]);)e=this._updateNode(new fl(this._previous().toString(),e,this._unary_expression()));return e}_unary_expression(){return this._match([Fe.tokens.minus,Fe.tokens.bang,Fe.tokens.tilde,Fe.tokens.star,Fe.tokens.and])?this._updateNode(new ds(this._previous().toString(),this._unary_expression())):this._singular_expression()}_singular_expression(){const e=this._primary_expression(),t=this._postfix_expression();return t&&(e.postfix=t),e}_postfix_expression(){if(this._match(Fe.tokens.bracket_left)){const e=this._short_circuit_or_expression();this._consume(Fe.tokens.bracket_right,"Expected ']'.");const t=this._updateNode(new cp(e)),n=this._postfix_expression();return n&&(t.postfix=n),t}if(this._match(Fe.tokens.period)){const e=this._consume(Fe.tokens.name,"Expected member name."),t=this._postfix_expression(),n=this._updateNode(new rh(e.lexeme));return t&&(n.postfix=t),n}return null}_getStruct(e){return this._context.aliases.has(e)?this._context.aliases.get(e).type:this._context.structs.has(e)?this._context.structs.get(e):null}_getType(e){const t=this._getStruct(e);if(t!==null)return t;switch(e){case"void":return Ut.void;case"bool":return Ut.bool;case"i32":return Ut.i32;case"u32":return Ut.u32;case"f32":return Ut.f32;case"f16":return Ut.f16;case"vec2f":return ft.vec2f;case"vec3f":return ft.vec3f;case"vec4f":return ft.vec4f;case"vec2i":return ft.vec2i;case"vec3i":return ft.vec3i;case"vec4i":return ft.vec4i;case"vec2u":return ft.vec2u;case"vec3u":return ft.vec3u;case"vec4u":return ft.vec4u;case"vec2h":return ft.vec2h;case"vec3h":return ft.vec3h;case"vec4h":return ft.vec4h;case"mat2x2f":return ft.mat2x2f;case"mat2x3f":return ft.mat2x3f;case"mat2x4f":return ft.mat2x4f;case"mat3x2f":return ft.mat3x2f;case"mat3x3f":return ft.mat3x3f;case"mat3x4f":return ft.mat3x4f;case"mat4x2f":return ft.mat4x2f;case"mat4x3f":return ft.mat4x3f;case"mat4x4f":return ft.mat4x4f;case"mat2x2h":return ft.mat2x2h;case"mat2x3h":return ft.mat2x3h;case"mat2x4h":return ft.mat2x4h;case"mat3x2h":return ft.mat3x2h;case"mat3x3h":return ft.mat3x3h;case"mat3x4h":return ft.mat3x4h;case"mat4x2h":return ft.mat4x2h;case"mat4x3h":return ft.mat4x3h;case"mat4x4h":return ft.mat4x4h;case"mat2x2i":return ft.mat2x2i;case"mat2x3i":return ft.mat2x3i;case"mat2x4i":return ft.mat2x4i;case"mat3x2i":return ft.mat3x2i;case"mat3x3i":return ft.mat3x3i;case"mat3x4i":return ft.mat3x4i;case"mat4x2i":return ft.mat4x2i;case"mat4x3i":return ft.mat4x3i;case"mat4x4i":return ft.mat4x4i;case"mat2x2u":return ft.mat2x2u;case"mat2x3u":return ft.mat2x3u;case"mat2x4u":return ft.mat2x4u;case"mat3x2u":return ft.mat3x2u;case"mat3x3u":return ft.mat3x3u;case"mat3x4u":return ft.mat3x4u;case"mat4x2u":return ft.mat4x2u;case"mat4x3u":return ft.mat4x3u;case"mat4x4u":return ft.mat4x4u}return null}_validateTypeRange(e,t){if(t.name==="i32"){if(e<-2147483648||e>2147483647)throw this._error(this._previous(),`Value out of range for i32: ${e}. Line: ${this._currentLine}.`)}else if(t.name==="u32"&&(e<0||e>4294967295))throw this._error(this._previous(),`Value out of range for u32: ${e}. Line: ${this._currentLine}.`)}_primary_expression(){if(this._match(Fe.tokens.ident)){const n=this._previous().toString();if(this._check(Fe.tokens.paren_left)){const i=this._argument_expression_list(),s=this._getType(n);return s!==null?this._updateNode(new tc(s,i)):this._updateNode(new ux(n,i))}if(this._context.constants.has(n)){const i=this._context.constants.get(n);return this._updateNode(new dO(n,i.value))}return this._updateNode(new fa(n))}if(this._match(Fe.tokens.int_literal)){const n=this._previous().toString();let i=n.endsWith("i")||n.endsWith("i")?Ut.i32:n.endsWith("u")||n.endsWith("U")?Ut.u32:Ut.x32;const s=parseInt(n);
109return this._validateTypeRange(s,i),this._updateNode(new ws(new it(s,this._exec.getTypeInfo(i)),i))}if(this._match(Fe.tokens.uint_literal)){const n=parseInt(this._previous().toString());return this._validateTypeRange(n,Ut.u32),this._updateNode(new ws(new it(n,this._exec.getTypeInfo(Ut.u32)),Ut.u32))}if(this._match([Fe.tokens.decimal_float_literal,Fe.tokens.hex_float_literal])){let n=this._previous().toString(),i=n.endsWith("h");i&&(n=n.substring(0,n.length-1));const s=parseFloat(n);this._validateTypeRange(s,i?Ut.f16:Ut.f32);const o=i?Ut.f16:Ut.f32;return this._updateNode(new ws(new it(s,this._exec.getTypeInfo(o)),o))}if(this._match([Fe.keywords.true,Fe.keywords.false])){let n=this._previous().toString()===Fe.keywords.true.rule;return this._updateNode(new ws(new it(n?1:0,this._exec.getTypeInfo(Ut.bool)),Ut.bool))}if(this._check(Fe.tokens.paren_left))return this._paren_expression();if(this._match(Fe.keywords.bitcast)){this._consume(Fe.tokens.less_than,"Expected '<'.");const n=this._type_decl();this._consume(Fe.tokens.greater_than,"Expected '>'.");const i=this._paren_expression();return this._updateNode(new pO(n,i))}const e=this._type_decl(),t=this._argument_expression_list();return this._updateNode(new tc(e,t))}_argument_expression_list(){if(!this._match(Fe.tokens.paren_left))return null;const e=[];do{if(this._check(Fe.tokens.paren_right))break;const t=this._short_circuit_or_expression();e.push(t)}while(this._match(Fe.tokens.comma));return this._consume(Fe.tokens.paren_right,"Expected ')' for agument list"),e}_optional_paren_expression(){this._match(Fe.tokens.paren_left);const e=this._short_circuit_or_expression();return this._match(Fe.tokens.paren_right),e}_paren_expression(){this._consume(Fe.tokens.paren_left,"Expected '('.");const e=this._short_circuit_or_expression();return this._consume(Fe.tokens.paren_right,"Expected ')'."),e}_struct_decl(){if(!this._match(Fe.keywords.struct))return null;const e=this._currentLine,t=this._consume(Fe.tokens.ident,"Expected name for struct.").toString();this._consume(Fe.tokens.brace_left,"Expected '{' for struct body.");const n=[];for(;!this._check(Fe.tokens.brace_right);){const o=this._attribute(),l=this._consume(Fe.tokens.name,"Expected variable name.").toString();this._consume(Fe.tokens.colon,"Expected ':' for struct member type.");const f=this._attribute(),A=this._type_decl();A!=null&&(A.attributes=f),this._check(Fe.tokens.brace_right)?this._match(Fe.tokens.comma):this._consume(Fe.tokens.comma,"Expected ',' for struct member."),n.push(this._updateNode(new KC(l,A,o)))}this._consume(Fe.tokens.brace_right,"Expected '}' after struct body.");const i=this._currentLine,s=this._updateNode(new jc(t,n,e,i),e);return this._context.structs.set(t,s),s}_global_variable_decl(){const e=this._variable_decl();if(!e)return null;if(this._match(Fe.tokens.equal)){const t=this._const_expression();e.value=t}if(e.type!==null&&e.value instanceof ws){if(e.value.type.name!=="x32"&&e.type.getTypeName()!==e.value.type.getTypeName())throw this._error(this._peek(),`Invalid cast from ${e.value.type.name} to ${e.type.name}. Line:${this._currentLine}`);e.value.isScalar&&this._validateTypeRange(e.value.scalarValue,e.type),e.value.type=e.type}else e.type===null&&e.value instanceof ws&&(e.type=e.value.type.name==="x32"?Ut.i32:e.value.type,e.value.isScalar&&this._validateTypeRange(e.value.scalarValue,e.type));return e}_override_variable_decl(){const e=this._override_decl();return e&&this._match(Fe.tokens.equal)&&(e.value=this._const_expression()),e}_global_const_decl(){var e;if(!this._match(Fe.keywords.const))return null;const t=this._consume(Fe.tokens.name,"Expected variable name"),n=this._currentLine;let i=null;if(this._match(Fe.tokens.colon)){const f=this._attribute();i=this._type_decl(),i!=null&&(i.attributes=f)}let s=null;this._consume(Fe.tokens.equal,"const declarations require an assignment");const o=this._short_circuit_or_expression();try{let f=[Ut.f32],A=o.constEvaluate(this._exec,f);A instanceof it&&this._validateTypeRange(A.value,f[0]),f[0]instanceof ft&&f[0].format===null&&A.typeInfo instanceof th&&A.typeInfo.format!==null&&(A.typeInfo.format.name==="f16"?f[0].format=Ut.f16:A.typeInfo.format.name==="f32"?f[0].format=Ut.f32:A.typeInfo.format.name==="i32"?f[0].format=Ut.i32:A.typeInfo.format.name==="u32"?f[0].format=Ut.u32:A.typeInfo.format.name==="bool"?f[0].format=Ut.bool:console.error(`TODO: impelement template format type ${A.typeInfo.format.name}`)),s=this._updateNode(new ws(A,f[0])),this._exec.context.setVariable(t.toString(),A)}catch{s=o}if(i!==null&&s instanceof ws){if(s.type.name!=="x32"&&i.getTypeName()!==s.t
109ype.getTypeName())throw this._error(this._peek(),`Invalid cast from ${s.type.name} to ${i.name}. Line:${this._currentLine}`);s.type=i,s.isScalar&&this._validateTypeRange(s.scalarValue,s.type)}else i===null&&s instanceof ws&&(i=(e=s?.type)!==null&&e!==void 0?e:Ut.f32,i===Ut.x32&&(i=Ut.i32));const l=this._updateNode(new fm(t.toString(),i,"","",s),n);return this._context.constants.set(l.name,l),l}_global_let_decl(){if(!this._match(Fe.keywords.let))return null;const e=this._currentLine,t=this._consume(Fe.tokens.name,"Expected variable name");let n=null;if(this._match(Fe.tokens.colon)){const s=this._attribute();n=this._type_decl(),n!=null&&(n.attributes=s)}let i=null;if(this._match(Fe.tokens.equal)&&(i=this._const_expression()),n!==null&&i instanceof ws){if(i.type.name!=="x32"&&n.getTypeName()!==i.type.getTypeName())throw this._error(this._peek(),`Invalid cast from ${i.type.name} to ${n.name}. Line:${this._currentLine}`);i.type=n}else n===null&&i instanceof ws&&(n=i.type.name==="x32"?Ut.i32:i.type);return i instanceof ws&&i.isScalar&&this._validateTypeRange(i.scalarValue,n),this._updateNode(new DA(t.toString(),n,"","",i),e)}_const_expression(){return this._short_circuit_or_expression()}_variable_decl(){if(!this._match(Fe.keywords.var))return null;const e=this._currentLine;let t="",n="";this._match(Fe.tokens.less_than)&&(t=this._consume(Fe.storage_class,"Expected storage_class.").toString(),this._match(Fe.tokens.comma)&&(n=this._consume(Fe.access_mode,"Expected access_mode.").toString()),this._consume(Fe.tokens.greater_than,"Expected '>'."));const i=this._consume(Fe.tokens.name,"Expected variable name");let s=null;if(this._match(Fe.tokens.colon)){const o=this._attribute();s=this._type_decl(),s!=null&&(s.attributes=o)}return this._updateNode(new Hc(i.toString(),s,t,n,null),e)}_override_decl(){if(!this._match(Fe.keywords.override))return null;const e=this._consume(Fe.tokens.name,"Expected variable name");let t=null;if(this._match(Fe.tokens.colon)){const n=this._attribute();t=this._type_decl(),t!=null&&(t.attributes=n)}return this._updateNode(new ax(e.toString(),t,null))}_diagnostic(){this._consume(Fe.tokens.paren_left,"Expected '('");const e=this._consume(Fe.tokens.ident,"Expected severity control name.");this._consume(Fe.tokens.comma,"Expected ','");let t=this._consume(Fe.tokens.ident,"Expected diagnostic rule name.").toString();return this._match(Fe.tokens.period)&&(t+=`.${this._consume(Fe.tokens.ident,"Expected diagnostic message.").toString()}`),this._consume(Fe.tokens.paren_right,"Expected ')'"),this._updateNode(new uO(e.toString(),t))}_enable_directive(){const e=this._consume(Fe.tokens.ident,"identity expected.");return this._updateNode(new i7(e.toString()))}_requires_directive(){const e=[this._consume(Fe.tokens.ident,"identity expected.").toString()];for(;this._match(Fe.tokens.comma);){const t=this._consume(Fe.tokens.ident,"identity expected.");e.push(t.toString())}return this._updateNode(new s7(e))}_type_alias(){const e=this._consume(Fe.tokens.ident,"identity expected.");this._consume(Fe.tokens.equal,"Expected '=' for type alias.");let t=this._type_decl();if(t===null)throw this._error(this._peek(),"Expected Type for Alias.");this._context.aliases.has(t.name)&&(t=this._context.aliases.get(t.name).type);const n=this._updateNode(new cx(e.toString(),t));return this._context.aliases.set(n.name,n),n}_type_decl(){if(this._check([Fe.tokens.ident,...Fe.texel_format,Fe.keywords.bool,Fe.keywords.f32,Fe.keywords.i32,Fe.keywords.u32])){const n=this._advance().toString();if(this._context.structs.has(n))return this._context.structs.get(n);if(this._context.aliases.has(n))return this._context.aliases.get(n).type;if(!this._getType(n)){const i=this._updateNode(new qC(n));return this._forwardTypeCount++,i}return this._updateNode(new Ut(n))}let e=this._texture_sampler_types();if(e)return e;if(this._check(Fe.template_types)){let n=this._advance().toString(),i=null,s=null;return this._match(Fe.tokens.less_than)&&(i=this._type_decl(),s=null,this._match(Fe.tokens.comma)&&(s=this._consume(Fe.access_mode,"Expected access_mode for pointer").toString()),this._consume(Fe.tokens.greater_than,"Expected '>' for type.")),this._updateNode(new ft(n,i,s))}if(this._match(Fe.keywords.ptr)){let n=this._previous().toString();this._consume(Fe.tokens.less_than,"Expected '<' for pointer.");const i=this._consume(Fe.storage_class,"Expected storage_class for pointer");this._consume(Fe.tokens.comma,"Expected ',' for pointer.");const s=this._type_decl();let o=null;return this._match(Fe.tokens.comma)&&(o=this._consume(Fe.access_mode,"Expected access_mode for pointer").toString()),this._consume(Fe.tokens.greater_than,"Expected '>' for pointer."),this._updateNode(new hm(n,i.toString(),s,o))}const t=this._attribute();if(this._match(Fe.keywords.array)){let n=null,i=-1;const s=this._previous();let o=null;if(this._match(Fe.tokens.less_than)){n=this._type_decl(),this._context.aliases.has(n.name)&&(n=this._context.aliases.get(n.name).type);let f="";if(this._match(Fe.tokens.comma)){o=this._shift_expression();try{f=o.constEvaluate(this._exec).toString(),o=null}catch{f="1"}}this._consume(Fe.tokens.greater_than,"Expected '>' for array."),i=f?parseInt(f):0}const l=this._updateNode(new FA(s.toString(),t,n,i));return o&&this._deferArrayCountEval.push({arrayType:l,countNode:o}),l}return null}_texture_sampler_types(){if(this._match(Fe.sampler_type))return this._updateNode(new TA(this._previous().toString(),null,null));if(this._match(Fe.depth_texture_type))return this._updateNode(new TA(this._previous().toString(),null,null));if(this._match(Fe.sampled_texture_type)||this._match(Fe.multisampled_texture_type)){const e=this._previous();this._consume(Fe.tokens.less_than,"Expected '<' for sampler type.");const t=this._type_decl();return this._consume(Fe.tokens.greater_than,"Expected '>' for sampler type."),this._updateNode(new TA(e.toString(),t,null))}if(this._match(Fe.storage_texture_type)){const e=this._previous();this._consume(Fe.tokens.less_than,"Expected '<' for sampler type.");const t=this._consume(Fe.texel_format,"Invalid texel format.").toString();this._consume(Fe.tokens.comma,"Expected ',' after texel format.");const n=this._consume(Fe.access_mode,"Expected access mode for storage texture type.").toString();return this._consume(Fe.tokens.greater_than,"Expected '>' for sampler type."),this._updateNode(new TA(e.toString(),t,n))}return null}_attribute(){let e=[];for(;this._match(Fe.tokens.attr);){const t=this._consume(Fe.attribute_name,"Expected attribute name"),n=this._updateNode(new yO(t.toString(),null));if(this._match(Fe.tokens.paren_left)){if(n.value=this._consume(Fe.literal_or_ident,"Expected attribute value").toString(),this._check(Fe.tokens.comma)){this._advance();do{const i=this._consume(Fe.literal_or_ident,"Expected attribute value").toString();n.value instanceof Array||(n.value=[n.value]),n.value.push(i)}while(this._match(Fe.tokens.comma))}this._consume(Fe.tokens.paren_right,"Expected ')'")}e.push(n)}return e.length==0?null:e}}class b7 extends oc{constructor(e){super(),e&&this.update(e)}update(e){const t=new v7().parse(e);this.updateAST(t)}}function x7(r){const e={attributes:[],bindings:[]};let t;try{t=w7(r)}catch(s){return Yt.error(s.message)(),e}for(const s of t.uniforms){const o=[];for(const l of s.type?.members||[])o.push({name:l.name,type:QC(l.type)});e.bindings.push({type:"uniform",name:s.name,group:s.group,location:s.binding,members:o})}for(const s of t.textures)e.bindings.push({type:"texture",name:s.name,group:s.group,location:s.binding});for(const s of t.samplers)e.bindings.push({type:"sampler",name:s.name,group:s.group,location:s.binding});const n=t.entry.vertex[0],i=n?.inputs.length||0;for(let s=0;s<i;s++){const o=n.inputs[s];if(o.locationType==="location"){const l=QC(o.type);e.attributes.push({name:o.name,location:Number(o.location),type:l})}}return e}function QC(r){return r.format?`${r.name}<${r.format.name}>`:r.name}function w7(r){try{return new b7(r)}catch(e){if(e instanceof Error)throw e;let t="WGSL parse error";throw typeof e=="object"&&e?.message&&(t+=`: ${e.message} `),typeof e=="object"&&e?.token&&(t+=e.token.line||""),new Error(t,{cause:e})}}const T7=1/Math.PI*180,E7=1/180*Math.PI,C7={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...C7}};const Es=globalThis.mathgl.config;function S7(r,{precision:e=Es.precision}={}){return r=M7(r),`${parseFloat(r.toPrecision(e))}`}function Ju(r){return Array.isArray(r)||ArrayBuffer.isView(r)&&!(r instanceof DataView)}function I7(r){return P7(r)}function B7(r){return pl(r)}function P7(r,e){return Ax(r,t=>t*E7,e)}function pl(r,e){return Ax(r,t=>t*T7,e)}function $c(r,e,t){return Ax(r,n=>Math.max(e,Math.min(t,n)))}function wl(r,e,t){return Ju(r)?r.map((n,i)=>wl(n,e[i],t)):t*e+(1-t)*r}function ga(r,e,t){const n=Es.EPSILON;t&&(Es.EPSILON=t);try{if(r===e)return!0;
vendor: 34,277 bytes, line 109
109if(Ju(r)&&Ju(e)){if(r.length!==e.length)return!1;for(let i=0;i<r.length;++i)if(!ga(r[i],e[i]))return!1;return!0}return r&&r.equals?r.equals(e):e&&e.equals?e.equals(r):typeof r=="number"&&typeof e=="number"?Math.abs(r-e)<=Es.EPSILON*Math.max(1,Math.abs(r),Math.abs(e)):!1}finally{Es.EPSILON=n}}function M7(r){return Math.round(r/Es.EPSILON)*Es.EPSILON}function R7(r){return r.clone?r.clone():new Array(r.length)}function Ax(r,e,t){if(Ju(r)){const n=r;t=t||R7(n);for(let i=0;i<t.length&&i<n.length;++i){const s=typeof r=="number"?r:r[i];t[i]=e(s,i,t)}return t}return e(r)}class gx extends Array{clone(){return new this.constructor().copy(this)}fromArray(e,t=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=e[n+t];return this.check()}toArray(e=[],t=0){for(let n=0;n<this.ELEMENTS;++n)e[t+n]=this[n];return e}toObject(e){return e}from(e){return Array.isArray(e)?this.copy(e):this.fromObject(e)}to(e){return e===this?this:Ju(e)?this.toArray(e):this.toObject(e)}toTarget(e){return e?this.to(e):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(Es)}formatString(e){let t="";for(let n=0;n<this.ELEMENTS;++n)t+=(n>0?", ":"")+S7(this[n],e);return`${e.printTypes?this.constructor.name:""}[${t}]`}equals(e){if(!e||this.length!==e.length)return!1;for(let t=0;t<this.ELEMENTS;++t)if(!ga(this[t],e[t]))return!1;return!0}exactEquals(e){if(!e||this.length!==e.length)return!1;for(let t=0;t<this.ELEMENTS;++t)if(this[t]!==e[t])return!1;return!0}negate(){for(let e=0;e<this.ELEMENTS;++e)this[e]=-this[e];return this.check()}lerp(e,t,n){if(n===void 0)return this.lerp(this,e,t);for(let i=0;i<this.ELEMENTS;++i){const s=e[i],o=typeof t=="number"?t:t[i];this[i]=s+n*(o-s)}return this.check()}min(e){for(let t=0;t<this.ELEMENTS;++t)this[t]=Math.min(e[t],this[t]);return this.check()}max(e){for(let t=0;t<this.ELEMENTS;++t)this[t]=Math.max(e[t],this[t]);return this.check()}clamp(e,t){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e[n]),t[n]);return this.check()}add(...e){for(const t of e)for(let n=0;n<this.ELEMENTS;++n)this[n]+=t[n];return this.check()}subtract(...e){for(const t of e)for(let n=0;n<this.ELEMENTS;++n)this[n]-=t[n];return this.check()}scale(e){if(typeof e=="number")for(let t=0;t<this.ELEMENTS;++t)this[t]*=e;else for(let t=0;t<this.ELEMENTS&&t<e.length;++t)this[t]*=e[t];return this.check()}multiplyByScalar(e){for(let t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}check(){if(Es.debug&&!this.validate())throw new Error(`math.gl: ${this.constructor.name} some fields set to invalid numbers'`);return this}validate(){let e=this.length===this.ELEMENTS;for(let t=0;t<this.ELEMENTS;++t)e=e&&Number.isFinite(this[t]);return e}sub(e){return this.subtract(e)}setScalar(e){for(let t=0;t<this.ELEMENTS;++t)this[t]=e;return this.check()}addScalar(e){for(let t=0;t<this.ELEMENTS;++t)this[t]+=e;return this.check()}subScalar(e){return this.addScalar(-e)}multiplyScalar(e){for(let t=0;t<this.ELEMENTS;++t)this[t]*=e;return this.check()}divideScalar(e){return this.multiplyByScalar(1/e)}clampScalar(e,t){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],e),t);return this.check()}get elements(){return this}}function O7(r,e){if(r.length!==e)return!1;for(let t=0;t<r.length;++t)if(!Number.isFinite(r[t]))return!1;return!0}function Zn(r){if(!Number.isFinite(r))throw new Error(`Invalid number ${JSON.stringify(r)}`);return r}function LA(r,e,t=""){if(Es.debug&&!O7(r,e))throw new Error(`math.gl: ${t} some fields set to invalid numbers'`);return r}function gl(r,e){if(!r)throw new Error(`math.gl assertion ${e}`)}class mx extends gx{get x(){return this[0]}set x(e){this[0]=Zn(e)}get y(){return this[1]}set y(e){this[1]=Zn(e)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let e=0;for(let t=0;t<this.ELEMENTS;++t)e+=this[t]*this[t];return e}magnitudeSquared(){return this.lengthSquared()}distance(e){return Math.sqrt(this.distanceSquared(e))}distanceSquared(e){let t=0;for(let n=0;n<this.ELEMENTS;++n){const i=this[n]-e[n];t+=i*i}return Zn(t)}dot(e){let t=0;for(let n=0;n<this.ELEMENTS;++n)t+=this[n]*e[n];return Zn(t)}normalize(){const e=this.magnitude();if(e!==0)for(let t=0;t<this.ELEMENTS;++t)this[t]/=e;return this.check()}multiply(...e){for(const t of e)for(let n=0;n<this.ELEMENTS;++n)this[n]*=t[n];return this.check()}divide(...e){for(const t of e)for(let n=0;n<this.ELEMENTS;++n)this[n]/=t[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(e){return this.distance(e)}distanceToSquared(e){return this.distanceSquared(e)}getComponent(e){return gl(e>=0&&e<this.ELEMENTS,"index is out of range"),Zn(this[e])}setComponent(e,t){return gl(e>=0&&e<this.ELEMENTS,"index is out of range"),this[e]=t,this.check()}addVectors(e,t){return this.copy(e).add(t)}subVectors(e,t){return this.copy(e).subtract(t)}multiplyVectors(e,t){return this.copy(e).multiply(t)}addScaledVector(e,t){return this.add(new this.constructor(e).multiplyScalar(t))}}const kA=1e-6;let El=typeof Float32Array<"u"?Float32Array:Array;function D7(){const r=new El(2);return El!=Float32Array&&(r[0]=0,r[1]=0),r}function e3(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r}function F7(r,e){return r[0]=-e[0],r[1]=-e[1],r}function vO(r,e,t,n){const i=e[0],s=e[1];return r[0]=i+n*(t[0]-i),r[1]=s+n*(t[1]-s),r}function L7(r,e,t){const n=e[0],i=e[1];return r[0]=t[0]*n+t[2]*i,r[1]=t[1]*n+t[3]*i,r}function k7(r,e,t){const n=e[0],i=e[1];return r[0]=t[0]*n+t[2]*i+t[4],r[1]=t[1]*n+t[3]*i+t[5],r}function bO(r,e,t){const n=e[0],i=e[1];return r[0]=t[0]*n+t[3]*i+t[6],r[1]=t[1]*n+t[4]*i+t[7],r}function xO(r,e,t){const n=e[0],i=e[1];return r[0]=t[0]*n+t[4]*i+t[12],r[1]=t[1]*n+t[5]*i+t[13],r}(function(){const r=D7();return function(e,t,n,i,s,o){let l,f;for(t||(t=2),n||(n=0),i?f=Math.min(i*t+n,e.length):f=e.length,l=n;l<f;l+=t)r[0]=e[l],r[1]=e[l+1],s(r,r,o),e[l]=r[0],e[l+1]=r[1];return e}})();function wO(r,e,t){const n=e[0],i=e[1],s=t[3]*n+t[7]*i||1;return r[0]=(t[0]*n+t[4]*i)/s,r[1]=(t[1]*n+t[5]*i)/s,r}function TO(r,e,t){const n=e[0],i=e[1],s=e[2],o=t[3]*n+t[7]*i+t[11]*s||1;return r[0]=(t[0]*n+t[4]*i+t[8]*s)/o,r[1]=(t[1]*n+t[5]*i+t[9]*s)/o,r[2]=(t[2]*n+t[6]*i+t[10]*s)/o,r}function N7(r,e,t){const n=e[0],i=e[1];return r[0]=t[0]*n+t[2]*i,r[1]=t[1]*n+t[3]*i,r[2]=e[2],r}function U7(r,e,t){const n=e[0],i=e[1];return r[0]=t[0]*n+t[2]*i,r[1]=t[1]*n+t[3]*i,r[2]=e[2],r[3]=e[3],r}function EO(r,e,t){const n=e[0],i=e[1],s=e[2];return r[0]=t[0]*n+t[3]*i+t[6]*s,r[1]=t[1]*n+t[4]*i+t[7]*s,r[2]=t[2]*n+t[5]*i+t[8]*s,r[3]=e[3],r}class _x extends mx{constructor(e=0,t=0){super(2),Ju(e)&&arguments.length===1?this.copy(e):(Es.debug&&(Zn(e),Zn(t)),this[0]=e,this[1]=t)}set(e,t){return this[0]=e,this[1]=t,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this.check()}fromObject(e){return Es.debug&&(Zn(e.x),Zn(e.y)),this[0]=e.x,this[1]=e.y,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e}get ELEMENTS(){return 2}horizontalAngle(){return Math.atan2(this.y,this.x)}verticalAngle(){return Math.atan2(this.x,this.y)}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return xO(this,this,e),this.check()}transformAsVector(e){return wO(this,this,e),this.check()}transformByMatrix3(e){return bO(this,this,e),this.check()}transformByMatrix2x3(e){return k7(this,this,e),this.check()}transformByMatrix2(e){return L7(this,this,e),this.check()}}function CO(){const r=new El(3);return El!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function SO(r){const e=r[0],t=r[1],n=r[2];return Math.sqrt(e*e+t*t+n*n)}function t3(r,e,t){const n=new El(3);return n[0]=r,n[1]=e,n[2]=t,n}function z7(r,e,t){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r}function V7(r){const e=r[0],t=r[1],n=r[2];return e*e+t*t+n*n}function j7(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r}function G7(r,e){const t=e[0],n=e[1],i=e[2];let s=t*t+n*n+i*i;return s>0&&(s=1/Math.sqrt(s)),r[0]=e[0]*s,r[1]=e[1]*s,r[2]=e[2]*s,r}function yx(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]}function pm(r,e,t){const n=e[0],i=e[1],s=e[2],o=t[0],l=t[1],f=t[2];return r[0]=i*f-s*l,r[1]=s*o-n*f,r[2]=n*l-i*o,r}function H7(r,e,t,n){const i=e[0],s=e[1],o=e[2];return r[0]=i+n*(t[0]-i),r[1]=s+n*(t[1]-s),r[2]=o+n*(t[2]-o),r}function vx(r,e,t){const n=e[0],i=e[1],s=e[2];let o=t[3]*n+t[7]*i+t[11]*s+t[15];return o=o||1,r[0]=(t[0]*n+t[4]*i+t[8]*s+t[12])/o,r[1]=(t[1]*n+t[5]*i+t[9]*s+t[13])/o,r[2]=(t[2]*n+t[6]*i+t[10]*s+t[14])/o,r}function IO(r,e,t){const n=e[0],i=e[1],s=e[2];return r[0]=n*t[0]+i*t[3]+s*t[6],r[1]=n*t[1]+i*t[4]+s*t[7],r[2]=n*t[2]+i*t[5]+s*t[8],r}function BO(r,e,t){const n=t[0],i=t[1],s=t[2],o=t[3],l=e[0],f=e[1],A=e[2];let v=i*A-s*f,T=s*l-n*A,I=n*f-i*l,F=i*I-s*T,N=s*v-n*I,U=n*T-i*v;const $=o*2;return v*=$,T*=$,I*=$,F*=2,N*=2,U*=2,r[0]=l+v+F,r[1]=f+T+N,r[2]=A+I+U,r}function W7(r,e,t,n){const i=[],s=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],s[0]=i[0],s[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),s[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),r[0]=s[0]+t[0],r[1]=s[1]+t[1],r[2]=s[2]+t[2],r}function $7(r,e,t,n){const i=[],s=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],s[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),s[1]=i[1],s[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),r[0]=s[0]+t[0],r[1]=s[1]+t[1],r[2]=s[2]+t[2],r}function X7(r,e,t,n){const i=[],s=[];return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],s[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),s[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),s[2]=i[2],r[0]=s[0]+t[0],r[1]=s[1]+t[1],r[2]=s[2]+t[2],r}function q7(r,e){const t=r[0],n=r[1],i=r[2],s=e[0],o=e[1],l=e[2],f=Math.sqrt((t*t+n*n+i*i)*(s*s+o*o+l*l)),A=f&&yx(r,e)/f;return Math.acos(Math.min(Math.max(A,-1),1))}const PO=z7,MO=SO,pv=V7;(function(){const r=CO();return function(e,t,n,i,s,o){let l,f;for(t||(t=3),n||(n=0),i?f=Math.min(i*t+n,e.length):f=e.length,l=n;l<f;l+=t)r[0]=e[l],r[1]=e[l+1],r[2]=e[l+2],s(r,r,o),e[l]=r[0],e[l+1]=r[1],e[l+2]=r[2];return e}})();const Av=[0,0,0];let m0;class dt extends mx{static get ZERO(){return m0||(m0=new dt(0,0,0),Object.freeze(m0)),m0}constructor(e=0,t=0,n=0){super(-0,-0,-0),arguments.length===1&&Ju(e)?this.copy(e):(Es.debug&&(Zn(e),Zn(t),Zn(n)),this[0]=e,this[1]=t,this[2]=n)}set(e,t,n){return this[0]=e,this[1]=t,this[2]=n,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this.check()}fromObject(e){return Es.debug&&(Zn(e.x),Zn(e.y),Zn(e.z)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this.check()}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e}get ELEMENTS(){return 3}get z(){return this[2]}set z(e){this[2]=Zn(e)}angle(e){return q7(this,e)}cross(e){return pm(this,this,e),this.check()}rotateX({radians:e,origin:t=Av}){return W7(this,this,t,e),this.check()}rotateY({radians:e,origin:t=Av}){return $7(this,this,t,e),this.check()}rotateZ({radians:e,origin:t=Av}){return X7(this,this,t,e),this.check()}transform(e){return this.transformAsPoint(e)}transformAsPoint(e){return vx(this,this,e),this.check()}transformAsVector(e){return TO(this,this,e),this.check()}transformByMatrix3(e){return IO(this,this,e),this.check()}transformByMatrix2(e){return N7(this,this,e),this.check()}transformByQuaternion(e){return BO(this,this,e),this.check()}}let _0;class bx extends mx{static get ZERO(){return _0||(_0=new bx(0,0,0,0),Object.freeze(_0)),_0}constructor(e=0,t=0,n=0,i=0){super(-0,-0,-0,-0),Ju(e)&&arguments.length===1?this.copy(e):(Es.debug&&(Zn(e),Zn(t),Zn(n),Zn(i)),this[0]=e,this[1]=t,this[2]=n,this[3]=i)}set(e,t,n,i){return this[0]=e,this[1]=t,this[2]=n,this[3]=i,this.check()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}fromObject(e){return Es.debug&&(Zn(e.x),Zn(e.y),Zn(e.z),Zn(e.w)),this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this}toObject(e){return e.x=this[0],e.y=this[1],e.z=this[2],e.w=this[3],e}get ELEMENTS(){return 4}get z(){return this[2]}set z(e){this[2]=Zn(e)}get w(){return this[3]}set w(e){this[3]=Zn(e)}transform(e){return vx(this,this,e),this.check()}transformByMatrix3(e){return EO(this,this,e),this.check()}transformByMatrix2(e){return U7(this,this,e),this.check()}transformByQuaternion(e){return BO(this,this,e),this.check()}applyMatrix4(e){return e.transform(this,this),this}}class RO extends gx{toString(){let e="[";if(Es.printRowMajor){e+="row-major:";for(let t=0;t<this.RANK;++t)for(let n=0;n<this.RANK;++n)e+=` ${this[n*this.RANK+t]}`}else{e+="column-major:";for(let t=0;t<this.ELEMENTS;++t)e+=` ${this[t]}`}return e+="]",e}getElementIndex(e,t){return t*this.RANK+e}getElement(e,t){return this[t*this.RANK+e]}setElement(e,t,n){return this[t*this.RANK+e]=Zn(n),this}getColumn(e,t=new Array(this.RANK).fill(-0)){const n=e*this.RANK;for(let i=0;i<this.RANK;++i)t[i]=this[n+i];return t}setColumn(e,t){const n=e*this.RANK;for(let i=0;i<this.RANK;++i)this[n+i]=t[i];return this}}function J7(){const r=new El(9);return El!=Float32Array&&(r[1]=0,r[2]=0,r[3]=0,r[5]=0,r[6]=0,r[7]=0),r[0]=1,r[4]=1,r[8]=1,r}function K7(r,e){if(r===e){const t=e[1],n=e[2],i=e[5];r[1]=e[3],r[2]=e[6],r[3]=t,r[5]=e[7],r[6]=n,r[7]=i}else r[0]=e[0],r[1]=e[3],r[2]=e[6],r[3]=e[1],r[4]=e[4],r[5]=e[7],r[6]=e[2],r[7]=e[5],r[8]=e[8];return r}function Z7(r,e){const t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],f=e[6],A=e[7],v=e[8],T=v*o-l*A,I=-v*s+l*f,F=A*s-o*f;let N=t*T+n*I+i*F;return N?(N=1/N,r[0]=T*N,r[1]=(-v*n+i*A)*N,r[2]=(l*n-i*o)*N,r[3]=I*N,r[4]=(v*t-i*f)*N,r[5]=(-l*t+i*s)*N,r[6]=F*N,r[7]=(-A*t+n*f)*N,r[8]=(o*t-n*s)*N,r):null}function Y7(r){const e=r[0],t=r[1],n=r[2],i=r[3],s=r[4],o=r[5],l=r[6],f=r[7],A=r[8];return e*(A*s-o*f)+t*(-A*i+o*l)+n*(f*i-s*l)}function r3(r,e,t){const n=e[0],i=e[1],s=e[2],o=e[3],l=e[4],f=e[5],A=e[6],v=e[7],T=e[8],I=t[0],F=t[1],N=t[2],U=t[3],$=t[4],V=t[5],G=t[6],X=t[7],ue=t[8];return r[0]=I*n+F*o+N*A,r[1]=I*i+F*l+N*v,r[2]=I*s+F*f+N*T,r[3]=U*n+$*o+V*A,r[4]=U*i+$*l+V*v,r[5]=U*s+$*f+V*T,r[6]=G*n+X*o+ue*A,r[7]=G*i+X*l+ue*v,r[8]=G*s+X*f+ue*T,r}function Q7(r,e,t){const n=e[0],i=e[1],s=e[2],o=e[3],l=e[4],f=e[5],A=e[6],v=e[7],T=e[8],I=t[0],F=t[1];return r[0]=n,r[1]=i,r[2]=s,r[3]=o,r[4]=l,r[5]=f,r[6]=I*n+F*o+A,r[7]=I*i+F*l+v,r[8]=I*s+F*f+T,r}function eV(r,e,t){const n=e[0],i=e[1],s=e[2],o=e[3],l=e[4],f=e[5],A=e[6],v=e[7],T=e[8],I=Math.sin(t),F=Math.cos(t);return r[0]=F*n+I*o,r[1]=F*i+I*l,r[2]=F*s+I*f,r[3]=F*o-I*n,r[4]=F*l-I*i,r[5]=F*f-I*s,r[6]=A,r[7]=v,r[8]=T,r}function n3(r,e,t){const n=t[0],i=t[1];return r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=i*e[3],r[4]=i*e[4],r[5]=i*e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r}function tV(r,e){const t=e[0],n=e[1],i=e[2],s=e[3],o=t+t,l=n+n,f=i+i,A=t*o,v=n*o,T=n*l,I=i*o,F=i*l,N=i*f,U=s*o,$=s*l,V=s*f;return r[0]=1-T-N,r[3]=v-V,r[6]=I+$,r[1]=v+V,r[4]=1-A-N,r[7]=F-U,r[2]=I-$,r[5]=F+U,r[8]=1-A-T,r}var E1;(function(r){r[r.COL0ROW0=0]="COL0ROW0",r[r.COL0ROW1=1]="COL0ROW1",r[r.COL0ROW2=2]="COL0ROW2",r[r.COL1ROW0=3]="COL1ROW0",r[r.COL1ROW1=4]="COL1ROW1",r[r.COL1ROW2=5]="COL1ROW2",r[r.COL2ROW0=6]="COL2ROW0",r[r.COL2ROW1=7]="COL2ROW1",r[r.COL2ROW2=8]="COL2ROW2"})(E1||(E1={}));const rV=Object.freeze([1,0,0,0,1,0,0,0,1]);class Oi extends RO{static get IDENTITY(){return iV()}static get ZERO(){return nV()}get ELEMENTS(){return 9}get RANK(){return 3}get INDICES(){return E1}constructor(e,...t){super(-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):t.length>0?this.copy([e,...t]):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this.check()}identity(){return this.copy(rV)}fromObject(e){return this.check()}fromQuaternion(e){return tV(this,e),this.check()}set(e,t,n,i,s,o,l,f,A){return this[0]=e,this[1]=t,this[2]=n,this[3]=i,this[4]=s,this[5]=o,this[6]=l,this[7]=f,this[8]=A,this.check()}setRowMajor(e,t,n,i,s,o,l,f,A){return this[0]=e,this[1]=i,this[2]=l,this[3]=t,this[4]=s,this[5]=f,this[6]=n,this[7]=o,this[8]=A,this.check()}determinant(){return Y7(this)}transpose(){return K7(this,this),this.check()}invert(){return Z7(this,this),this.check()}multiplyLeft(e){return r3(this,e,this),this.check()}multiplyRight(e){return r3(this,this,e),this.check()}rotate(e){return eV(this,this,e),this.check()}scale(e){return Array.isArray(e)?n3(this,this,e):n3(this,this,[e,e]),this.check()}translate(e){return Q7(this,this,e),this.check()}transform(e,t){let n;switch(e.length){case 2:n=bO(t||[-0,-0],e,this);break;case 3:n=IO(t||[-0,-0,-0],e,this);break;case 4:n=EO(t||[-0,-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return LA(n,e.length),n}transformVector(e,t){return this.transform(e,t)}transformVector2(e,t){return this.transform(e,t)}transformVector3(e,t){return this.transform(e,t)}}let y0,v0=null;function nV(){return y0||(y0=new Oi([0,0,0,0,0,0,0,0,0]),Object.freeze(y0)),y0}function iV(){return v0||(v0=new Oi,Object.freeze(v0)),v0}function sV(r){return r[0]=1,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=1,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function oV(r,e){if(r===e){const t=e[1],n=e[2],i=e[3],s=e[6],o=e[7],l=e[11];r[1]=e[4],r[2]=e[8],r[3]=e[12],r[4]=t,r[6]=e[9],r[7]=e[13],r[8]=n,r[9]=s,r[11]=e[14],r[12]=i,r[13]=o,r[14]=l}else r[0]=e[0],r[1]=e[4],r[2]=e[8],r[3]=e[12],r[4]=e[1],r[5]=e[5],r[6]=e[9],r[7]=e[13],r[8]=e[2],r[9]=e[6],r[10]=e[10],r[11]=e[14],r[12]=e[3],r[13]=e[7],r[14]=e[11],r[15]=e[15];return r}function C1(r,e){const t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],f=e[6],A=e[7],v=e[8],T=e[9],I=e[10],F=e[11],N=e[12],U=e[13],$=e[14],V=e[15],G=t*l-n*o,X=t*f-i*o,ue=t*A-s*o,K=n*f-i*l,se=n*A-s*l,Ee=i*A-s*f,Ue=v*U-T*N,de=v*$-I*N,me=v*V-F*N,pe=T*$-I*U,W=T*V-F*U,te=I*V-F*$;let Ce=G*te-X*W+ue*pe+K*me-se*de+Ee*Ue;return Ce?(Ce=1/Ce,r[0]=(l*te-f*W+A*pe)*Ce,r[1]=(i*W-n*te-s*pe)*Ce,r[2]=(U*Ee-$*se+V*K)*Ce,r[3]=(I*se-T*Ee-F*K)*Ce,r[4]=(f*me-o*te-A*de)*Ce,r[5]=(t*te-i*me+s*de)*Ce,r[6]=($*ue-N*Ee-V*X)*Ce,r[7]=(v*Ee-I*ue+F*X)*Ce,r[8]=(o*W-l*me+A*Ue)*Ce,r[9]=(n*me-t*W-s*Ue)*Ce,r[10]=(N*se-U*ue+V*G)*Ce,r[11]=(T*ue-v*se-F*G)*Ce,r[12]=(l*de-o*pe-f*Ue)*Ce,r[13]=(t*pe-n*de+i*Ue)*Ce,r[14]=(U*X-N*K-$*G)*Ce,r[15]=(v*K-T*X+I*G)*Ce,r):null}function aV(r){const e=r[0],t=r[1],n=r[2],i=r[3],s=r[4],o=r[5],l=r[6],f=r[7],A=r[8],v=r[9],T=r[10],I=r[11],F=r[12],N=r[13],U=r[14],$=r[15],V=e*o-t*s,G=e*l-n*s,X=t*l-n*o,ue=A*N-v*F,K=A*U-T*F,se=v*U-T*N,Ee=e*se-t*K+n*ue,Ue=s*se-o*K+l*ue,de=A*X-v*G+T*V,me=F*X-N*G+U*V;return f*Ee-i*Ue+$*de-I*me}function Zf(r,e,t){const n=e[0],i=e[1],s=e[2],o=e[3],l=e[4],f=e[5],A=e[6],v=e[7],T=e[8],I=e[9],F=e[10],N=e[11],U=e[12],$=e[13],V=e[14],G=e[15];let X=t[0],ue=t[1],K=t[2],se=t[3];return r[0]=X*n+ue*l+K*T+se*U,r[1]=X*i+ue*f+K*I+se*$,r[2]=X*s+ue*A+K*F+se*V,r[3]=X*o+ue*v+K*N+se*G,X=t[4],ue=t[5],K=t[6],se=t[7],r[4]=X*n+ue*l+K*T+se*U,r[5]=X*i+ue*f+K*I+se*$,r[6]=X*s+ue*A+K*F+se*V,r[7]=X*o+ue*v+K*N+se*G,X=t[8],ue=t[9],K=t[10],se=t[11],r[8]=X*n+ue*l+K*T+se*U,r[9]=X*i+ue*f+K*I+se*$,r[10]=X*s+ue*A+K*F+se*V,r[11]=X*o+ue*v+K*N+se*G,X=t[12],ue=t[13],K=t[14],se=t[15],r[12]=X*n+ue*l+K*T+se*U,r[13]=X*i+ue*f+K*I+se*$,r[14]=X*s+ue*A+K*F+se*V,r[15]=X*o+ue*v+K*N+se*G,r}function $m(r,e,t){const n=t[0],i=t[1],s=t[2];let o,l,f,A,v,T,I,F,N,U,$,V;return e===r?(r[12]=e[0]*n+e[4]*i+e[8]*s+e[12],r[13]=e[1]*n+e[5]*i+e[9]*s+e[13],r[14]=e[2]*n+e[6]*i+e[10]*s+e[14],r[15]=e[3]*n+e[7]*i+e[11]*s+e[15]):(o=e[0],l=e[1],f=e[2],A=e[3],v=e[4],T=e[5],I=e[6],F=e[7],N=e[8],U=e[9],$=e[10],V=e[11],r[0]=o,r[1]=l,r[2]=f,r[3]=A,r[4]=v,r[5]=T,r[6]=I,r[7]=F,r[8]=N,r[9]=U,r[10]=$,r[11]=V,r[12]=o*n+v*i+N*s+e[12],r[13]=l*n+T*i+U*s+e[13],r[14]=f*n+I*i+$*s+e[14],r[15]=A*n+F*i+V*s+e[15]),r}function xx(r,e,t){const n=t[0],i=t[1],s=t[2];return r[0]=e[0]*n,r[1]=e[1]*n,r[2]=e[2]*n,r[3]=e[3]*n,r[4]=e[4]*i,r[5]=e[5]*i,r[6]=e[6]*i,r[7]=e[7]*i,r[8]=e[8]*s,r[9]=e[9]*s,r[10]=e[10]*s,r[11]=e[11]*s,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function lV(r,e,t,n){let i=n[0],s=n[1],o=n[2],l=Math.sqrt(i*i+s*s+o*o),f,A,v,T,I,F,N,U,$,V,G,X,ue,K,se,Ee,Ue,de,me,pe,W,te,Ce,Qe;return l<kA?null:(l=1/l,i*=l,s*=l,o*=l,A=Math.sin(t),f=Math.cos(t),v=1-f,T=e[0],I=e[1],F=e[2],N=e[3],U=e[4],$=e[5],V=e[6],G=e[7],X=e[8],ue=e[9],K=e[10],se=e[11],Ee=i*i*v+f,Ue=s*i*v+o*A,de=o*i*v-s*A,me=i*s*v-o*A,pe=s*s*v+f,W=o*s*v+i*A,te=i*o*v+s*A,Ce=s*o*v-i*A,Qe=o*o*v+f,r[0]=T*Ee+U*Ue+X*de,r[1]=I*Ee+$*Ue+ue*de,r[2]=F*Ee+V*Ue+K*de,r[3]=N*Ee+G*Ue+se*de,r[4]=T*me+U*pe+X*W,r[5]=I*me+$*pe+ue*W,r[6]=F*me+V*pe+K*W,r[7]=N*me+G*pe+se*W,r[8]=T*te+U*Ce+X*Qe,r[9]=I*te+$*Ce+ue*Qe,r[10]=F*te+V*Ce+K*Qe,r[11]=N*te+G*Ce+se*Qe,e!==r&&(r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r)}function OO(r,e,t){const n=Math.sin(t),i=Math.cos(t),s=e[4],o=e[5],l=e[6],f=e[7],A=e[8],v=e[9],T=e[10],I=e[11];return e!==r&&(r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[4]=s*i+A*n,r[5]=o*i+v*n,r[6]=l*i+T*n,r[7]=f*i+I*n,r[8]=A*i-s*n,r[9]=v*i-o*n,r[10]=T*i-l*n,r[11]=I*i-f*n,r}function cV(r,e,t){const n=Math.sin(t),i=Math.cos(t),s=e[0],o=e[1],l=e[2],f=e[3],A=e[8],v=e[9],T=e[10],I=e[11];return e!==r&&(r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=s*i-A*n,r[1]=o*i-v*n,r[2]=l*i-T*n,r[3]=f*i-I*n,r[8]=s*n+A*i,r[9]=o*n+v*i,r[10]=l*n+T*i,r[11]=f*n+I*i,r}function DO(r,e,t){const n=Math.sin(t),i=Math.cos(t),s=e[0],o=e[1],l=e[2],f=e[3],A=e[4],v=e[5],T=e[6],I=e[7];return e!==r&&(r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=s*i+A*n,r[1]=o*i+v*n,r[2]=l*i+T*n,r[3]=f*i+I*n,r[4]=A*i-s*n,r[5]=v*i-o*n,r[6]=T*i-l*n,r[7]=I*i-f*n,r}function uV(r,e){const t=e[0],n=e[1],i=e[2],s=e[4],o=e[5],l=e[6],f=e[8],A=e[9],v=e[10];return r[0]=Math.sqrt(t*t+n*n+i*i),r[1]=Math.sqrt(s*s+o*o+l*l),r[2]=Math.sqrt(f*f+A*A+v*v),r}function fV(r,e){const t=e[0],n=e[1],i=e[2],s=e[3],o=t+t,l=n+n,f=i+i,A=t*o,v=n*o,T=n*l,I=i*o,F=i*l,N=i*f,U=s*o,$=s*l,V=s*f;return r[0]=1-T-N,r[1]=v+V,r[2]=I-$,r[3]=0,r[4]=v-V,r[5]=1-A-N,r[6]=F+U,r[7]=0,r[8]=I+$,r[9]=F-U,r[10]=1-A-T,r[11]=0,r[12]=0,r[13]=0,r[14]=0,r[15]=1,r}function hV(r,e,t,n,i,s,o){const l=1/(t-e),f=1/(i-n),A=1/(s-o);return r[0]=s*2*l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=s*2*f,r[6]=0,r[7]=0,r[8]=(t+e)*l,r[9]=(i+n)*f,r[10]=(o+s)*A,r[11]=-1,r[12]=0,r[13]=0,r[14]=o*s*2*A,r[15]=0,r}function dV(r,e,t,n,i){const s=1/Math.tan(e/2);if(r[0]=s/t,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=s,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,i!=null&&i!==1/0){const o=1/(n-i);r[10]=(i+n)*o,r[14]=2*i*n*o}else r[10]=-1,r[14]=-2*n;return r}const pV=dV;function AV(r,e,t,n,i,s,o){const l=1/(e-t),f=1/(n-i),A=1/(s-o);return r[0]=-2*l,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=-2*f,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=2*A,r[11]=0,r[12]=(e+t)*l,r[13]=(i+n)*f,r[14]=(o+s)*A,r[15]=1,r}const gV=AV;function mV(r,e,t,n){let i,s,o,l,f,A,v,T,I,F;const N=e[0],U=e[1],$=e[2],V=n[0],G=n[1],X=n[2],ue=t[0],K=t[1],se=t[2];return Math.abs(N-ue)<kA&&Math.abs(U-K)<kA&&Math.abs($-se)<kA?sV(r):(T=N-ue,I=U-K,F=$-se,i=1/Math.sqrt(T*T+I*I+F*F),T*=i,I*=i,F*=i,s=G*F-X*I,o=X*T-V*F,l=V*I-G*T,i=Math.sqrt(s*s+o*o+l*l),i?(i=1/i,s*=i,o*=i,l*=i):(s=0,o=0,l=0),f=I*l-F*o,A=F*s-T*l,v=T*o-I*s,i=Math.sqrt(f*f+A*A+v*v),i?(i=1/i,f*=i,A*=i,v*=i):(f=0,A=0,v=0),r[0]=s,r[1]=f,r[2]=T,r[3]=0,r[4]=o,r[5]=A,r[6]=I,r[7]=0,r[8]=l,r[9]=v,r[10]=F,r[11]=0,r[12]=-(s*N+o*U+l*$),r[13]=-(f*N+A*U+v*$),r[14]=-(T*N+I*U+F*$),r[15]=1,r)}function _V(){const r=new El(4);return El!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0,r[3]=0),r}function yV(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r}function wx(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r}function vV(r){const e=r[0],t=r[1],n=r[2],i=r[3];return Math.sqrt(e*e+t*t+n*n+i*i)}function bV(r){const e=r[0],t=r[1],n=r[2],i=r[3];return e*e+t*t+n*n+i*i}function xV(r,e){const t=e[0],n=e[1],i=e[2],s=e[3];let o=t*t+n*n+i*i+s*s;return o>0&&(o=1/Math.sqrt(o)),r[0]=t*o,r[1]=n*o,r[2]=i*o,r[3]=s*o,r}function wV(r,e){return r[0]*e[0]+r[1]*e[1]+r[2]*e[2]+r[3]*e[3]}function TV(r,e,t,n){const i=e[0],s=e[1],o=e[2],l=e[3];return r[0]=i+n*(t[0]-i),r[1]=s+n*(t[1]-s),r[2]=o+n*(t[2]-o),r[3]=l+n*(t[3]-l),r}function Ep(r,e,t){const n=e[0],i=e[1],s=e[2],o=e[3];return r[0]=t[0]*n+t[4]*i+t[8]*s+t[12]*o,r[1]=t[1]*n+t[5]*i+t[9]*s+t[13]*o,r[2]=t[2]*n+t[6]*i+t[10]*s+t[14]*o,r[3]=t[3]*n+t[7]*i+t[11]*s+t[15]*o,r}function EV(r,e,t){const n=e[0],i=e[1],s=e[2],o=t[0],l=t[1],f=t[2],A=t[3],v=A*n+l*s-f*i,T=A*i+f*n-o*s,I=A*s+o*i-l*n,F=-o*n-l*i-f*s;return r[0]=v*A+F*-o+T*-f-I*-l,r[1]=T*A+F*-l+I*-o-v*-f,r[2]=I*A+F*-f+v*-l-T*-o,r[3]=e[3],r}(function(){const r=_V();return function(e,t,n,i,s,o){let l,f;for(t||(t=4),n||(n=0),i?f=Math.min(i*t+n,e.length):f=e.length,l=n;l<f;l+=t)r[0]=e[l],r[1]=e[l+1],r[2]=e[l+2],r[3]=e[l+3],s(r,r,o),e[l]=r[0],e[l+1]=r[1],e[l+2]=r[2],e[l+3]=r[3];return e}})();var S1;(function(r){r[r.COL0ROW0=0]="COL0ROW0",r[r.COL0ROW1=1]="COL0ROW1",r[r.COL0ROW2=2]="COL0ROW2",r[r.COL0ROW3=3]="COL0ROW3",r[r.COL1ROW0=4]="COL1ROW0",r[r.COL1ROW1=5]="COL1ROW1",r[r.COL1ROW2=6]="COL1ROW2",r[r.COL1ROW3=7]="COL1ROW3",r[r.COL2ROW0=8]="COL2ROW0",r[r.COL2ROW1=9]="COL2ROW1",r[r.COL2ROW2=10]="COL2ROW2",r[r.COL2ROW3=11]="COL2ROW3",r[r.COL3ROW0=12]="COL3ROW0",r[r.COL3ROW1=13]="COL3ROW1",r[r.COL3ROW2=14]="COL3ROW2",r[r.COL3ROW3=15]="COL3ROW3"})(S1||(S1={}));const CV=45*Math.PI/180,SV=1,gv=.1,mv=500,IV=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);class vn extends RO{static get IDENTITY(){return PV()}static get ZERO(){return BV()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return S1}constructor(e){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(e)?this.copy(e):this.identity()}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this[4]=e[4],this[5]=e[5],this[6]=e[6],this[7]=e[7],this[8]=e[8],this[9]=e[9],this[10]=e[10],this[11]=e[11],this[12]=e[12],this[13]=e[13],this[14]=e[14],this[15]=e[15],this.check()}set(e,t,n,i,s,o,l,f,A,v,T,I,F,N,U,$){return this[0]=e,this[1]=t,this[2]=n,this[3]=i,this[4]=s,this[5]=o,this[6]=l,this[7]=f,this[8]=A,this[9]=v,this[10]=T,this[11]=I,this[12]=F,this[13]=N,this[14]=U,this[15]=$,this.check()}setRowMajor(e,t,n,i,s,o,l,f,A,v,T,I,F,N,U,$){return this[0]=e,this[1]=s,this[2]=A,this[3]=F,this[4]=t,this[5]=o,this[6]=v,this[7]=N,this[8]=n,this[9]=l,this[10]=T,this[11]=U,this[12]=i,this[13]=f,this[14]=I,this[15]=$,this.check()}toRowMajor(e){return e[0]=this[0],e[1]=this[4],e[2]=this[8],e[3]=this[12],e[4]=this[1],e[5]=this[5],e[6]=this[9],e[7]=this[13],e[8]=this[2],e[9]=this[6],e[10]=this[10],e[11]=this[14],e[12]=this[3],e[13]=this[7],e[14]=this[11],e[15]=this[15],e}identity(){return this.copy(IV)}fromObject(e){return this.check()}fromQuaternion(e){return fV(this,e),this.check()}frustum(e){const{left:t,right:n,bottom:i,top:s,near:o=gv,far:l=mv}=e;return l===1/0?MV(this,t,n,i,s,o):hV(this,t,n,i,s,o,l),this.check()}lookAt(e){const{eye:t,center:n=[0,0,0],up:i=[0,1,0]}=e;return mV(this,t,n,i),this.check()}ortho(e){const{left:t,right:n,bottom:i,top:s,near:o=gv,far:l=mv}=e;return gV(this,t,n,i,s,o,l),this.check()}orthographic(e){const{fovy:t=CV,aspect:n=SV,focalDistance:i=1,near:s=gv,far:o=mv}=e;i3(t);const l=t/2,f=i*Math.tan(l),A=f*n;return this.ortho({left:-A,right:A,bottom:-f,top:f,near:s,far:o})}perspective(e){const{fovy:t=45*Math.PI/180,aspect:n=1,near:i=.1,far:s=500}=e;return i3(t),pV(this,t,n,i,s),this.check()}determinant(){return aV(this)}getScale(e=[-0,-0,-0]){return e[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),e[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),e[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),e}getTranslation(e=[-0,-0,-0]){return e[0]=this[12],e[1]=this[13],e[2]=this[14],e}getRotation(e,t){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],t=t||[-0,-0,-0];const n=this.getScale(t),i=1/n[0],s=1/n[1],o=1/n[2];return e[0]=this[0]*i,e[1]=this[1]*s,e[2]=this[2]*o,e[3]=0,e[4]=this[4]*i,e[5]=this[5]*s,e[6]=this[6]*o,e[7]=0,e[8]=this[8]*i,e[9]=this[9]*s,e[10]=this[10]*o,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}getRotationMatrix3(e,t){e=e||[-0,-0,-0,-0,-0,-0,-0,-0,-0],t=t||[-0,-0,-0];const n=this.getScale(t),i=1/n[0],s=1/n[1],o=1/n[2];return e[0]=this[0]*i,e[1]=this[1]*s,e[2]=this[2]*o,e[3]=this[4]*i,e[4]=this[5]*s,e[5]=this[6]*o,e[6]=this[8]*i,e[7]=this[9]*s,e[8]=this[10]*o,e}transpose(){return oV(this,this),this.check()}invert(){return C1(this,this),this.check()}multiplyLeft(e){return Zf(this,e,this),this.check()}multiplyRight(e){return Zf(this,this,e),this.check()}rotateX(e){return OO(this,this,e),this.check()}rotateY(e){return cV(this,this,e),this.check()}rotateZ(e){return DO(this,this,e),this.check()}rotateXYZ(e){return this.rotateX(e[0]).rotateY(e[1]).rotateZ(e[2])}rotateAxis(e,t){return lV(this,this,e,t),this.check()}scale(e){return xx(this,this,Array.isArray(e)?e:[e,e,e]),this.check()}translate(e){return $m(this,this,e),this.check()}transform(e,t){return e.length===4?(t=Ep(t||[-0,-0,-0,-0],e,this),LA(t,4),t):this.transformAsPoint(e,t)}transformAsPoint(e,t){const{length:n}=e;let i;switch(n){case 2:i=xO(t||[-0,-0],e,this);break;case 3:i=vx(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return LA(i,e.length),i}transformAsVector(e,t){let n;switch(e.length){case 2:n=wO(t||[-0,-0],e,this);break;case 3:n=TO(t||[-0,-0,-0],e,this);break;default:throw new Error("Illegal vector")}return LA(n,e.length),n}transformPoint(e,t){return this.transformAsPoint(e,t)}transformVector(e,t){return this.transformAsPoint(e,t)}transformDirection(e,t){return this.transformAsVector(e,t)}makeRotationX(e){return this.identity().rotateX(e)}makeTranslation(e,t,n){return this.identity().translate([e,t,n])}}let b0,x0;function BV(){return b0||(b0=new vn([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(b0)),b0}function PV(){return x0||(x0=new vn,Object.freeze(x0)),x0}function i3(r){if(r>Math.PI*2)throw Error("expected radians")}function MV(r,e,t,n,i,s){const o=2*s/(t-e),l=2*s/(i-n),f=(t+e)/(t-e),A=(i+n)/(i-n),v=-1,T=-1,I=-2*s;return r[0]=o,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=l,r[6]=0,r[7]=0,r[8]=f,r[9]=A,r[10]=v,r[11]=T,r[12]=0,r[13]=0,r[14]=I,r[15]=0,r}function s3(){const r=new El(4);return El!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r[3]=1,r}function RV(r){return r[0]=0,r[1]=0,r[2]=0,r[3]=1,r}function FO(r,e,t){t=t*.5;const n=Math.sin(t);return r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=Math.cos(t),r}function o3(r,e,t){const n=e[0],i=e[1],s=e[2],o=e[3],l=t[0],f=t[1],A=t[2],v=t[3];return r[0]=n*v+o*l+i*A-s*f,r[1]=i*v+o*f+s*l-n*A,r[2]=s*v+o*A+n*f-i*l,r[3]=o*v-n*l-i*f-s*A,r}function OV(r,e,t){t*=.5;const n=e[0],i=e[1],s=e[2],o=e[3],l=Math.sin(t),f=Math.cos(t);return r[0]=n*f+o*l,r[1]=i*f+s*l,r[2]=s*f-i*l,r[3]=o*f-n*l,r}function DV(r,e,t){t*=.5;const n=e[0],i=e[1],s=e[2],o=e[3],l=Math.sin(t),f=Math.cos(t);return r[0]=n*f-s*l,r[1]=i*f+o*l,r[2]=s*f+n*l,r[3]=o*f-i*l,r}function FV(r,e,t){t*=.5;const n=e[0],i=e[1],s=e[2],o=e[3],l=Math.sin(t),f=Math.cos(t);return r[0]=n*f+i*l,r[1]=i*f-n*l,r[2]=s*f+o*l,r[3]=o*f-s*l,r}function LV(r,e){const t=e[0],n=e[1],i=e[2];return r[0]=t,r[1]=n,r[2]=i,r[3]=Math.sqrt(Math.abs(1-t*t-n*n-i*i)),r}function Am(r,e,t,n){const i=e[0],s=e[1],o=e[2],l=e[3];let f=t[0],A=t[1],v=t[2],T=t[3],I,F,N,U,$;return I=i*f+s*A+o*v+l*T,I<0&&(I=-I,f=-f,A=-A,v=-v,T=-T),1-I>kA?(F=Math.acos(I),$=Math.sin(F),N=Math.sin((1-n)*F)/$,U=Math.sin(n*F)/$):(N=1-n,U=n),r[0]=N*i+U*f,r[1]=N*s+U*A,r[2]=N*o+U*v,r[3]=N*l+U*T,r}function kV(r,e){const t=e[0],n=e[1],i=e[2],s=e[3],o=t*t+n*n+i*i+s*s,l=o?1/o:0;return r[0]=-t*l,r[1]=-n*l,r[2]=-i*l,r[3]=s*l,r}function NV(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r[3]=e[3],r}function LO(r,e){const t=e[0]+e[4]+e[8];let n;if(t>0)n=Math.sqrt(t+1),r[3]=.5*n,n=.5/n,r[0]=(e[5]-e[7])*n,r[1]=(e[6]-e[2])*n,r[2]=(e[1]-e[3])*n;else{let i=0;e[4]>e[0]&&(i=1),e[8]>e[i*3+i]&&(i=2);const s=(i+1)%3,o=(i+2)%3;n=Math.sqrt(e[i*3+i]-e[s*3+s]-e[o*3+o]+1),r[i]=.5*n,n=.5/n,r[3]=(e[s*3+o]-e[o*3+s])*n,r[s]=(e[s*3+i]+e[i*3+s])*n,r[o]=(e[o*3+i]+e[i*3+o])*n}return r}const UV=yV,zV=wx,VV=wV,jV=TV,GV=vV,HV=bV,kO=xV,WV=(function(){const r=CO(),e=t3(1,0,0),t=t3(0,1,0);return function(n,i,s){const o=yx(i,s);return o<-.999999?(pm(r,e,i),MO(r)<1e-6&&pm(r,t,i),G7(r,r),FO(n,r,Math.PI),n):o>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(pm(r,i,s),n[0]=r[0],n[1]=r[1],n[2]=r[2],n[3]=1+o,kO(n,n))}})();(function(){const r=s3(),e=s3();return function(t,n,i,s,o,l){return Am(r,n,o,l),Am(e,i,s,l),Am(t,r,e,2*l*(1-l)),t}})();(function(){const r=J7();return function(e,t,n,i){return r[0]=n[0],r[3]=n[1],r[6]=n[2],r[1]=i[0],r[4]=i[1],r[7]=i[2],r[2]=-t[0],r[5]=-t[1],r[8]=-t[2],kO(e,LO(e,r))}})();const $V=[0,0,0,1];class YA extends gx{constructor(e=0,t=0,n=0,i=1){super(-0,-0,-0,-0),Array.isArray(e)&&arguments.length===1?this.copy(e):this.set(e,t,n,i)}copy(e){return this[0]=e[0],this[1]=e[1],this[2]=e[2],this[3]=e[3],this.check()}set(e,t,n,i){return this[0]=e,this[1]=t,this[2]=n,this[3]=i,this.check()}fromObject(e){return this[0]=e.x,this[1]=e.y,this[2]=e.z,this[3]=e.w,this.check()}fromMatrix3(e){return LO(this,e),this.check()}fromAxisRotation(e,t){return FO(this,e,t),this.check()}identity(){return RV(this),this.check()}setAxisAngle(e,t){return this.fromAxisRotation(e,t)}get ELEMENTS(){return 4}get x(){return this[0]}set x(e){this[0]=Zn(e)}get y(){return this[1]}set y(e){this[1]=Zn(e)}get z(){return this[2]}set z(e){this[2]=Zn(e)}get w(){return this[3]}set w(e){this[3]=Zn(e)}len(){return GV(this)}lengthSquared(){return HV(this)}dot(e){return VV(this,e)}rotationTo(e,t){return WV(this,e,t),this.check()}add(e){return UV(this,this,e),this.check()}calculateW(){return LV(this,this),this.check()}conjugate(){return NV(this,this),this.check()}invert(){return kV(this,this),this.check()}lerp(e,t,n){return n===void 0?this.lerp(this,e,t):(jV(this,e,t,n),this.check())}multiplyRight(e){return o3(this,this,e),this.check()}multiplyLeft(e){return o3(this,e,this),this.check()}normalize(){const e=this.len(),t=e>0?1/e:0;return this[0]=this[0]*t,this[1]=this[1]*t,this[2]=this[2]*t,this[3]=this[3]*t,e===0&&(this[3]=1),this.check()}rotateX(e){return OV(this,this,e),this.check()}rotateY(e){return DV(this,this,e),this.check()}rotateZ(e){return FV(this,this,e),this.check()}scale(e){return zV(this,this,e),this.check()}slerp(e,t,n){let i,s,o;switch(arguments.length){case 1:({start:i=$V,target:s,ratio:o}=e);break;case 2:i=this,s=e,o=t;break;default:i=e,s=t,o=n}return Am(this,i,s,o),this.check()}transformVector4(e,t=new bx){return EV(t,e,this),LA(t,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(e,t){return this.setAxisAngle(e,t)}premultiply(e){return this.multiplyLeft(e)}multiply(e){return this.multiplyRight(e)}}const XV=.1,qV=1e-12,NO=1e-15,JV=1e-20;function UO(r,e=[],t=0){const n=Math.fround(r),i=r-n;
109return e[t]=n,e[t+1]=i,e}function KV(r){return r-Math.fround(r)}function ZV(r){const e=new Float32Array(32);for(let t=0;t<4;++t)for(let n=0;n<4;++n){const i=t*4+n;UO(r[n*4+t],e,i*2)}return e}const YV=`#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND 110 111// All these functions are for substituting tan() function from Intel GPU only 112const float TWO_PI = 6.2831854820251465; 113const float PI_2 = 1.5707963705062866; 114const float PI_16 = 0.1963495463132858; 115 116const float SIN_TABLE_0 = 0.19509032368659973; 117const float SIN_TABLE_1 = 0.3826834261417389; 118const float SIN_TABLE_2 = 0.5555702447891235; 119const float SIN_TABLE_3 = 0.7071067690849304; 120 121const float COS_TABLE_0 = 0.9807852506637573; 122const float COS_TABLE_1 = 0.9238795042037964; 123const float COS_TABLE_2 = 0.8314695954322815; 124const float COS_TABLE_3 = 0.7071067690849304; 125 126const float INVERSE_FACTORIAL_3 = 1.666666716337204e-01; // 1/3! 127const float INVERSE_FACTORIAL_5 = 8.333333767950535e-03; // 1/5! 128const float INVERSE_FACTORIAL_7 = 1.9841270113829523e-04; // 1/7! 129const float INVERSE_FACTORIAL_9 = 2.75573188446287533e-06; // 1/9! 130 131float sin_taylor_fp32(float a) { 132 float r, s, t, x; 133 134 if (a == 0.0) { 135 return 0.0; 136 } 137 138 x = -a * a; 139 s = a; 140 r = a; 141 142 r = r * x; 143 t = r * INVERSE_FACTORIAL_3; 144 s = s + t; 145 146 r = r * x; 147 t = r * INVERSE_FACTORIAL_5; 148 s = s + t; 149 150 r = r * x; 151 t = r * INVERSE_FACTORIAL_7; 152 s = s + t; 153 154 r = r * x; 155 t = r * INVERSE_FACTORIAL_9; 156 s = s + t; 157 158 return s; 159} 160 161void sincos_taylor_fp32(float a, out float sin_t, out float cos_t) { 162 if (a == 0.0) { 163 sin_t = 0.0; 164 cos_t = 1.0; 165 } 166 sin_t = sin_taylor_fp32(a); 167 cos_t = sqrt(1.0 - sin_t * sin_t); 168} 169 170float tan_taylor_fp32(float a) { 171 float sin_a; 172 float cos_a; 173 174 if (a == 0.0) { 175 return 0.0; 176 } 177 178 // 2pi range reduction 179 float z = floor(a / TWO_PI); 180 float r = a - TWO_PI * z; 181 182 float t; 183 float q = floor(r / PI_2 + 0.5); 184 int j = int(q); 185 186 if (j < -2 || j > 2) { 187 return 1.0 / 0.0; 188 } 189 190 t = r - PI_2 * q; 191 192 q = floor(t / PI_16 + 0.5); 193 int k = int(q); 194 int abs_k = int(abs(float(k))); 195 196 if (abs_k > 4) { 197 return 1.0 / 0.0; 198 } else { 199 t = t - PI_16 * q; 200 } 201 202 float u = 0.0; 203 float v = 0.0; 204 205 float sin_t, cos_t; 206 float s, c; 207 sincos_taylor_fp32(t, sin_t, cos_t); 208 209 if (k == 0) { 210 s = sin_t; 211 c = cos_t; 212 } else { 213 if (abs(float(abs_k) - 1.0) < 0.5) { 214 u = COS_TABLE_0; 215 v = SIN_TABLE_0; 216 } else if (abs(float(abs_k) - 2.0) < 0.5) { 217 u = COS_TABLE_1; 218 v = SIN_TABLE_1; 219 } else if (abs(float(abs_k) - 3.0) < 0.5) { 220 u = COS_TABLE_2; 221 v = SIN_TABLE_2; 222 } else if (abs(float(abs_k) - 4.0) < 0.5) { 223 u = COS_TABLE_3; 224 v = SIN_TABLE_3; 225 } 226 if (k > 0) { 227 s = u * sin_t + v * cos_t; 228 c = u * cos_t - v * sin_t; 229 } else { 230 s = u * sin_t - v * cos_t; 231 c = u * cos_t + v * sin_t; 232 } 233 } 234 235 if (j == 0) { 236 sin_a = s; 237 cos_a = c; 238 } else if (j == 1) { 239 sin_a = c; 240 cos_a = -s; 241 } else if (j == -1) { 242 sin_a = -c; 243 cos_a = s; 244 } else { 245 sin_a = -s; 246 cos_a = -c; 247 } 248 return sin_a / cos_a; 249} 250#endif 251 252float tan_fp32(float a) { 253#ifdef LUMA_FP32_TAN_PRECISION_WORKAROUND 254 return tan_taylor_fp32(a); 255#else 256 return tan(a); 257#endif 258} 259`,QV={name:"fp32",vs:YV},ej=` 260uniform fp64arithmeticUniforms { 261 uniform float ONE; 262} fp64; 263 264/* 265About LUMA_FP64_CODE_ELIMINATION_WORKAROUND 266 267The purpose of this workaround is to prevent shader compilers from 268optimizing away necessary arithmetic operations by swapping their sequences 269or transform the equation to some 'equivalent' form. 270 271The method is to multiply an artifical variable, ONE, which will be known to 272the compiler to be 1 only at runtime. The whole expression is then represented 273as a polynomial with respective to ONE. In the coefficients of all terms, only one a 274and one b should appear 275 276err = (a + b) * ONE^6 - a * ONE^5 - (a + b) * ONE^4 + a * ONE^3 - b - (a + b) * ONE^2 + a * ONE 277*/ 278 279// Divide float number to high and low floats to extend fraction bits 280vec2 split(float a) { 281 const float SPLIT = 4097.0; 282 float t = a * SPLIT; 283#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) 284 float a_hi = t * fp64.ONE - (t - a); 285 float a_lo = a * fp64.ONE - a_hi; 286#else 287 float a_hi = t - (t - a); 288 float a_lo = a - a_hi; 289#endif 290 return vec2(a_hi, a_lo); 291} 292 293// Divide float number again when high float uses too many fraction bits 294vec2 split2(vec2 a) { 295 vec2 b = split(a.x); 296 b.y += a.y; 297 return b; 298} 299 300// Special sum operation when a > b 301vec2 quickTwoSum(float a, float b) { 302#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) 303 float sum = (a + b) * fp64.ONE; 304 float err = b - (sum - a) * fp64.ONE; 305#else 306 float sum = a + b; 307 float err = b - (sum - a); 308#endif 309 return vec2(sum, err); 310} 311 312// General sum operation 313vec2 twoSum(float a, float b) { 314 float s = (a + b); 315#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) 316 float v = (s * fp64.ONE - a) * fp64.ONE; 317 float err = (a - (s - v) * fp64.ONE) * fp64.ONE * fp64.ONE * fp64.ONE + (b - v); 318#else 319 float v = s - a; 320 float err = (a - (s - v)) + (b - v); 321#endif 322 return vec2(s, err); 323} 324 325vec2 twoSub(float a, float b) { 326 float s = (a - b); 327#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) 328 float v = (s * fp64.ONE - a) * fp64.ONE; 329 float err = (a - (s - v) * fp64.ONE) * fp64.ONE * fp64.ONE * fp64.ONE - (b + v); 330#else 331 float v = s - a; 332 float err = (a - (s - v)) - (b + v); 333#endif 334 return vec2(s, err); 335} 336 337vec2 twoSqr(float a) { 338 float prod = a * a; 339 vec2 a_fp64 = split(a); 340#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) 341 float err = ((a_fp64.x * a_fp64.x - prod) * fp64.ONE + 2.0 * a_fp64.x * 342 a_fp64.y * fp64.ONE * fp64.ONE) + a_fp64.y * a_fp64.y * fp64.ONE * fp64.ONE * fp64.ONE; 343#else 344 float err = ((a_fp64.x * a_fp64.x - prod) + 2.0 * a_fp64.x * a_fp64.y) + a_fp64.y * a_fp64.y; 345#endif 346 return vec2(prod, err); 347} 348 349vec2 twoProd(float a, float b) { 350 float prod = a * b; 351 vec2 a_fp64 = split(a); 352 vec2 b_fp64 = split(b); 353 float err = ((a_fp64.x * b_fp64.x - prod) + a_fp64.x * b_fp64.y + 354 a_fp64.y * b_fp64.x) + a_fp64.y * b_fp64.y; 355 return vec2(prod, err); 356} 357 358vec2 sum_fp64(vec2 a, vec2 b) { 359 vec2 s, t;
360 s = twoSum(a.x, b.x); 361 t = twoSum(a.y, b.y); 362 s.y += t.x; 363 s = quickTwoSum(s.x, s.y); 364 s.y += t.y; 365 s = quickTwoSum(s.x, s.y); 366 return s; 367} 368 369vec2 sub_fp64(vec2 a, vec2 b) { 370 vec2 s, t; 371 s = twoSub(a.x, b.x); 372 t = twoSub(a.y, b.y); 373 s.y += t.x; 374 s = quickTwoSum(s.x, s.y); 375 s.y += t.y; 376 s = quickTwoSum(s.x, s.y); 377 return s; 378} 379 380vec2 mul_fp64(vec2 a, vec2 b) { 381 vec2 prod = twoProd(a.x, b.x); 382 // y component is for the error 383 prod.y += a.x * b.y; 384#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND) 385 prod = split2(prod); 386#endif 387 prod = quickTwoSum(prod.x, prod.y); 388 prod.y += a.y * b.x; 389#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND) 390 prod = split2(prod); 391#endif 392 prod = quickTwoSum(prod.x, prod.y); 393 return prod; 394} 395 396vec2 div_fp64(vec2 a, vec2 b) { 397 float xn = 1.0 / b.x; 398#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND) 399 vec2 yn = mul_fp64(a, vec2(xn, 0)); 400#else 401 vec2 yn = a * xn; 402#endif 403 float diff = (sub_fp64(a, mul_fp64(b, yn))).x; 404 vec2 prod = twoProd(xn, diff); 405 return sum_fp64(yn, prod); 406} 407 408vec2 sqrt_fp64(vec2 a) { 409 if (a.x == 0.0 && a.y == 0.0) return vec2(0.0, 0.0); 410 if (a.x < 0.0) return vec2(0.0 / 0.0, 0.0 / 0.0); 411 412 float x = 1.0 / sqrt(a.x); 413 float yn = a.x * x; 414#if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND) 415 vec2 yn_sqr = twoSqr(yn) * fp64.ONE; 416#else 417 vec2 yn_sqr = twoSqr(yn); 418#endif 419 float diff = sub_fp64(a, yn_sqr).x; 420 vec2 prod = twoProd(x * 0.5, diff); 421#if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND) 422 return sum_fp64(split(yn), prod); 423#else 424 return sum_fp64(vec2(yn, 0.0), prod); 425#endif 426} 427`,tj={ONE:1},rj={name:"fp64arithmetic",vs:ej,defaultUniforms:tj,uniformTypes:{ONE:"f32"},fp64ify:UO,fp64LowPart:KV,fp64ifyMatrix4:ZV},nj=[0,1,1,1],ij=`uniform pickingUniforms { 428 float isActive; 429 float isAttribute; 430 float isHighlightActive; 431 float useFloatColors; 432 vec3 highlightedObjectColor; 433 vec4 highlightColor; 434} picking; 435 436out vec4 picking_vRGBcolor_Avalid; 437 438// Normalize unsigned byte color to 0-1 range 439vec3 picking_normalizeColor(vec3 color) { 440 return picking.useFloatColors > 0.5 ? color : color / 255.0; 441} 442 443// Normalize unsigned byte color to 0-1 range 444vec4 picking_normalizeColor(vec4 color) { 445 return picking.useFloatColors > 0.5 ? color : color / 255.0; 446} 447 448bool picking_isColorZero(vec3 color) { 449 return dot(color, vec3(1.0)) < 0.00001; 450} 451 452bool picking_isColorValid(vec3 color) { 453 return dot(color, vec3(1.0)) > 0.00001; 454} 455 456// Check if this vertex is highlighted 457bool isVertexHighlighted(vec3 vertexColor) { 458 vec3 highlightedObjectColor = picking_normalizeColor(picking.highlightedObjectColor); 459 return 460 bool(picking.isHighlightActive) && picking_isColorZero(abs(vertexColor - highlightedObjectColor)); 461} 462 463// Set the current picking color 464void picking_setPickingColor(vec3 pickingColor) { 465 pickingColor = picking_normalizeColor(pickingColor); 466 467 if (bool(picking.isActive)) { 468 // Use alpha as the validity flag. If pickingColor is [0, 0, 0] fragment is non-pickable 469 picking_vRGBcolor_Avalid.a = float(picking_isColorValid(pickingColor)); 470 471 if (!bool(picking.isAttribute)) { 472 // Stores the picking color so that the fragment shader can render it during picking 473 picking_vRGBcolor_Avalid.rgb = pickingColor; 474 } 475 } else { 476 // Do the comparison with selected item color in vertex shader as it should mean fewer compares 477 picking_vRGBcolor_Avalid.a = float(isVertexHighlighted(pickingColor)); 478 } 479} 480 481void picking_setPickingAttribute(float value) { 482 if (bool(picking.isAttribute)) { 483 picking_vRGBcolor_Avalid.r = value; 484 } 485} 486 487void picking_setPickingAttribute(vec2 value) { 488 if (bool(picking.isAttribute)) { 489 picking_vRGBcolor_Avalid.rg = value; 490 } 491} 492 493void picking_setPickingAttribute(vec3 value) { 494 if (bool(picking.isAttribute)) { 495 picking_vRGBcolor_Avalid.rgb = value; 496 } 497} 498`,sj=`uniform pickingUniforms { 499 float isActive; 500 float isAttribute; 501 float isHighlightActive; 502 float useFloatColors; 503 vec3 highlightedObjectColor; 504 vec4 highlightColor; 505} picking; 506 507in vec4 picking_vRGBcolor_Avalid; 508 509/* 510 * Returns highlight color if this item is selected. 511 */ 512vec4 picking_filterHighlightColor(vec4 color) { 513 // If we are still picking, we don't highlight 514 if (picking.isActive > 0.5) { 515 return color; 516 } 517
518 bool selected = bool(picking_vRGBcolor_Avalid.a); 519 520 if (selected) { 521 // Blend in highlight color based on its alpha value 522 float highLightAlpha = picking.highlightColor.a; 523 float blendedAlpha = highLightAlpha + color.a * (1.0 - highLightAlpha); 524 float highLightRatio = highLightAlpha / blendedAlpha; 525 526 vec3 blendedRGB = mix(color.rgb, picking.highlightColor.rgb, highLightRatio); 527 return vec4(blendedRGB, blendedAlpha); 528 } else { 529 return color; 530 } 531} 532 533/* 534 * Returns picking color if picking enabled else unmodified argument. 535 */ 536vec4 picking_filterPickingColor(vec4 color) { 537 if (bool(picking.isActive)) { 538 if (picking_vRGBcolor_Avalid.a == 0.0) { 539 discard; 540 } 541 return picking_vRGBcolor_Avalid; 542 } 543 return color; 544} 545 546/* 547 * Returns picking color if picking is enabled if not 548 * highlight color if this item is selected, otherwise unmodified argument. 549 */ 550vec4 picking_filterColor(vec4 color) { 551 vec4 highlightColor = picking_filterHighlightColor(color); 552 return picking_filterPickingColor(highlightColor); 553} 554`,a3={props:{},uniforms:{},name:"picking",uniformTypes:{isActive:"f32",isAttribute:"f32",isHighlightActive:"f32",useFloatColors:"f32",highlightedObjectColor:"vec3<f32>",highlightColor:"vec4<f32>"},defaultUniforms:{isActive:!1,isAttribute:!1,isHighlightActive:!1,useFloatColors:!0,highlightedObjectColor:[0,0,0],highlightColor:nj},vs:ij,fs:sj,getUniforms:oj};function oj(r={},e){const t={};if(r.highlightedObjectColor!==void 0)if(r.highlightedObjectColor===null)t.isHighlightActive=!1;else{t.isHighlightActive=!0;const n=r.highlightedObjectColor.slice(0,3);t.highlightedObjectColor=n}if(r.highlightColor){const n=Array.from(r.highlightColor,i=>i/255);Number.isFinite(n[3])||(n[3]=1),t.highlightColor=n}return r.isActive!==void 0&&(t.isActive=!!r.isActive,t.isAttribute=!!r.isAttribute),r.useFloatColors!==void 0&&(t.useFloatColors=!!r.useFloatColors),t}const l3=`precision highp int; 555 556// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX)) 557struct AmbientLight { 558 vec3 color; 559}; 560 561struct PointLight { 562 vec3 color; 563 vec3 position; 564 vec3 attenuation; // 2nd order x:Constant-y:Linear-z:Exponential 565}; 566 567struct DirectionalLight { 568 vec3 color; 569 vec3 direction; 570}; 571 572uniform lightingUniforms { 573 int enabled; 574 int lightType; 575 576 int directionalLightCount; 577 int pointLightCount; 578 579 vec3 ambientColor; 580 581 vec3 lightColor0; 582 vec3 lightPosition0; 583 vec3 lightDirection0; 584 vec3 lightAttenuation0; 585 586 vec3 lightColor1; 587 vec3 lightPosition1; 588 vec3 lightDirection1; 589 vec3 lightAttenuation1; 590 591 vec3 lightColor2; 592 vec3 lightPosition2; 593 vec3 lightDirection2; 594 vec3 lightAttenuation2; 595} lighting; 596 597PointLight lighting_getPointLight(int index) { 598 switch (index) { 599 case 0: 600 return PointLight(lighting.lightColor0, lighting.lightPosition0, lighting.lightAttenuation0); 601 case 1: 602 return PointLight(lighting.lightColor1, lighting.lightPosition1, lighting.lightAttenuation1); 603 case 2: 604 default: 605 return PointLight(lighting.lightColor2, lighting.lightPosition2, lighting.lightAttenuation2); 606 } 607} 608 609DirectionalLight lighting_getDirectionalLight(int index) { 610 switch (index) { 611 case 0: 612 return DirectionalLight(lighting.lightColor0, lighting.lightDirection0); 613 case 1: 614 return DirectionalLight(lighting.lightColor1, lighting.lightDirection1); 615 case 2: 616 default: 617 return DirectionalLight(lighting.lightColor2, lighting.lightDirection2); 618 } 619} 620 621float getPointLightAttenuation(PointLight pointLight, float distance) { 622 return pointLight.attenuation.x 623 + pointLight.attenuation.y * distance 624 + pointLight.attenuation.z * distance * distance; 625} 626 627// #endif 628`,aj=`// #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX)) 629struct AmbientLight { 630 color: vec3<f32>, 631}; 632 633struct PointLight { 634 color: vec3<f32>, 635 position: vec3<f32>, 636 attenuation: vec3<f32>, // 2nd order x:Constant-y:Linear-z:Exponential 637}; 638 639struct DirectionalLight { 640 color: vec3<f32>, 641 direction: vec3<f32>, 642}; 643 644struct lightingUniforms { 645 enabled: i32, 646 pointLightCount: i32, 647 directionalLightCount: i32, 648 649 ambientColor: vec3<f32>, 650 651 // TODO - support multiple lights by uncommenting arrays below 652 lightType: i32, 653 lightColor: vec3<f32>, 654 lightDirection: vec3<f32>, 655 lightPosition: vec3<f32>, 656 lightAttenuation: vec3<f32>, 657 658 // AmbientLight ambientLight; 659 // PointLight pointLight[MAX_LIGHTS]; 660 // DirectionalLight directionalLight[MAX_LIGHTS]; 661}; 662 663// Binding 0:1 is reserved for lighting (Note: could go into separate bind group as it is stable across draw calls) 664@binding(1) @group(0) var<uniform> lighting : lightingUniforms; 665 666fn lighting_getPointLight(index: i32) -> PointLight { 667 return PointLight(lighting.lightColor, lighting.lightPosition, lighting.lightAttenuation); 668} 669 670fn lighting_getDirectionalLight(index: i32) -> DirectionalLight { 671 return DirectionalLight(lighting.lightColor, lighting.lightDirection); 672} 673 674fn getPointLightAttenuation(pointLight: PointLight, distance: f32) -> f32 { 675 return pointLight.attenuation.x
676 + pointLight.attenuation.y * distance 677 + pointLight.attenuation.z * distance * distance; 678} 679`,zO=3,lj=255;var QA;(function(r){r[r.POINT=0]="POINT",r[r.DIRECTIONAL=1]="DIRECTIONAL"})(QA||(QA={}));const Zd={props:{},uniforms:{},name:"lighting",defines:{MAX_LIGHTS:zO},uniformTypes:{enabled:"i32",lightType:"i32",directionalLightCount:"i32",pointLightCount:"i32",ambientLightColor:"vec3<f32>",lightColor0:"vec3<f32>",lightPosition0:"vec3<f32>",lightDirection0:"vec3<f32>",lightAttenuation0:"vec3<f32>",lightColor1:"vec3<f32>",lightPosition1:"vec3<f32>",lightDirection1:"vec3<f32>",lightAttenuation1:"vec3<f32>",lightColor2:"vec3<f32>",lightPosition2:"vec3<f32>",lightDirection2:"vec3<f32>",lightAttenuation2:"vec3<f32>"},defaultUniforms:{enabled:1,lightType:QA.POINT,directionalLightCount:0,pointLightCount:0,ambientLightColor:[.1,.1,.1],lightColor0:[1,1,1],lightPosition0:[1,1,2],lightDirection0:[1,1,1],lightAttenuation0:[1,0,0],lightColor1:[1,1,1],lightPosition1:[1,1,2],lightDirection1:[1,1,1],lightAttenuation1:[1,0,0],lightColor2:[1,1,1],lightPosition2:[1,1,2],lightDirection2:[1,1,1],lightAttenuation2:[1,0,0]},source:aj,vs:l3,fs:l3,getUniforms:cj};function cj(r,e={}){if(r=r&&{...r},!r)return{...Zd.defaultUniforms};r.lights&&(r={...r,...fj(r.lights),lights:void 0});const{ambientLight:t,pointLights:n,directionalLights:i}=r||{};if(!(t||n&&n.length>0||i&&i.length>0))return{...Zd.defaultUniforms,enabled:0};const o={...Zd.defaultUniforms,...e,...uj({ambientLight:t,pointLights:n,directionalLights:i})};return r.enabled!==void 0&&(o.enabled=r.enabled?1:0),o}function uj({ambientLight:r,pointLights:e=[],directionalLights:t=[]}){const n={};n.ambientLightColor=_v(r);let i=0;for(const s of e){n.lightType=QA.POINT;const o=i;n[`lightColor${o}`]=_v(s),n[`lightPosition${o}`]=s.position,n[`lightAttenuation${o}`]=s.attenuation||[1,0,0],i++}for(const s of t){n.lightType=QA.DIRECTIONAL;const o=i;n[`lightColor${o}`]=_v(s),n[`lightDirection${o}`]=s.direction,i++}return i>zO&&Yt.warn("MAX_LIGHTS exceeded")(),n.directionalLightCount=t.length,n.pointLightCount=e.length,n}function fj(r){const e={pointLights:[],directionalLights:[]};for(const t of r||[])switch(t.type){case"ambient":e.ambientLight=t;break;case"directional":e.directionalLights?.push(t);break;case"point":e.pointLights?.push(t);break}return e}function _v(r={}){const{color:e=[0,0,0],intensity:t=1}=r;return e.map(n=>n*t/lj)}const VO=`uniform phongMaterialUniforms { 680 uniform float ambient; 681 uniform float diffuse; 682 uniform float shininess; 683 uniform vec3 specularColor; 684} material; 685`,jO=`uniform phongMaterialUniforms { 686 uniform float ambient; 687 uniform float diffuse; 688 uniform float shininess; 689 uniform vec3 specularColor; 690} material; 691 692vec3 lighting_getLightColor(vec3 surfaceColor, vec3 light_direction, vec3 view_direction, vec3 normal_worldspace, vec3 color) { 693 vec3 halfway_direction = normalize(light_direction + view_direction); 694 float lambertian = dot(light_direction, normal_worldspace); 695 float specular = 0.0; 696 if (lambertian > 0.0) { 697 float specular_angle = max(dot(normal_worldspace, halfway_direction), 0.0); 698 specular = pow(specular_angle, material.shininess); 699 } 700 lambertian = max(lambertian, 0.0); 701 return (lambertian * material.diffuse * surfaceColor + specular * material.specularColor) * color; 702} 703 704vec3 lighting_getLightColor(vec3 surfaceColor, vec3 cameraPosition, vec3 position_worldspace, vec3 normal_worldspace) { 705 vec3 lightColor = surfaceColor; 706 707 if (lighting.enabled == 0) { 708 return lightColor; 709 } 710 711 vec3 view_direction = normalize(cameraPosition - position_worldspace); 712 lightColor = material.ambient * surfaceColor * lighting.ambientColor; 713 714 for (int i = 0; i < lighting.pointLightCount; i++) { 715 PointLight pointLight = lighting_getPointLight(i); 716 vec3 light_position_worldspace = pointLight.position; 717 vec3 light_direction = normalize(light_position_worldspace - position_worldspace); 718 float light_attenuation = getPointLightAttenuation(pointLight, distance(light_position_worldspace, position_worldspace)); 719 lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color / light_attenuation); 720 } 721 722 int totalLights = min(MAX_LIGHTS, lighting.pointLightCount + lighting.directionalLightCount); 723 for (int i = lighting.pointLightCount; i < totalLights; i++) { 724 DirectionalLight directionalLight = lighting_getDirectionalLight(i); 725 lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color); 726 } 727 728 return lightColor; 729} 730`,GO=`struct phongMaterialUniforms { 731 ambient: f32, 732 diffuse: f32, 733 shininess: f32, 734 specularColor: vec3<f32>, 735}; 736 737@binding(2) @group(0) var<uniform> phongMaterial : phongMaterialUniforms; 738 739fn lighting_getLightColor(surfaceColor: vec3<f32>, light_direction: vec3<f32>, view_direction: vec3<f32>, normal_worldspace: vec3<f32>, color: vec3<f32>) -> vec3<f32> { 740 let halfway_direction: vec3<f32> = normalize(light_direction + view_direction); 741 var lambertian: f32 = dot(light_direction, normal_worldspace); 742 var specular: f32 = 0.0; 743 if (lambertian > 0.0) { 744 let specular_angle = max(dot(normal_worldspace, halfway_direction), 0.0); 745 specular = pow(specular_angle, phongMaterial.shininess); 746 } 747 lambertian = max(lambertian, 0.0); 748 return (lambertian * phongMaterial.diffuse * surfaceColor + specular * phongMaterial.specularColor) * color; 749} 750 751fn lighting_getLightColor2(surfaceColor: vec3<f32>, cameraPosition: vec3<f32>, position_worldspace: vec3<f32>, normal_worldspace: vec3<f32>) -> vec3<f32> { 752 var lightColor: vec3<f32> = surfaceColor; 753 754 if (lighting.enabled == 0) { 755 return lightColor; 756 } 757 758 let view_direction: vec3<f32> = normalize(cameraPosition - position_worldspace); 759 lightColor = phongMaterial.ambient * surfaceColor * lighting.ambientColor; 760 761 if (lighting.lightType == 0) { 762 let pointLight: PointLight = lighting_getPointLight(0); 763 let light_position_worldspace: vec3<f32> = pointLight.position; 764 let light_direction: vec3<f32> = normalize(light_position_worldspace - position_worldspace); 765 lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color); 766 } else if (lighting.lightType == 1) { 767 var directionalLight: DirectionalLight = lighting_getDirectionalLight(0); 768 lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color); 769 } 770 771 return lightColor; 772 /* 773 for (int i = 0; i < MAX_LIGHTS; i++) { 774 if (i >= lighting.pointLightCount) { 775 break; 776 } 777 PointLight pointLight = lighting.pointLight[i]; 778 vec3 light_position_worldspace = pointLight.position; 779 vec3 light_direction = normalize(light_position_worldspace - position_worldspace); 780 lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color); 781 } 782 783 for (int i = 0; i < MAX_LIGHTS; i++) { 784 if (i >= lighting.directionalLightCount) { 785 break; 786 } 787 DirectionalLight directionalLight = lighting.directionalLight[i]; 788 lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color); 789 } 790 */ 791} 792 793fn lighting_getSpecularLightColor(cameraPosition: vec3<f32>, position_worldspace: vec3<f32>, normal_worldspace: vec3<f32>) -> vec3<f32>{ 794 var lightColor = vec3<f32>(0, 0, 0); 795 let surfaceColor = vec3<f32>(0, 0, 0); 796 797 if (lighting.enabled == 0) { 798 let view_direction = normalize(cameraPosition - position_worldspace); 799 800 switch (lighting.lightType) { 801 case 0, default: { 802 let pointLight: PointLight = lighting_getPointLight(0); 803 let light_position_worldspace: vec3<f32> = pointLight.position; 804 let light_direction: vec3<f32> = normalize(light_position_worldspace - position_worldspace); 805 lightColor += lighting_getLightColor(surfaceColor, light_direction, view_direction, normal_worldspace, pointLight.color); 806 } 807 case 1: { 808 let directionalLight: DirectionalLight = lighting_getDirectionalLight(0); 809 lightColor += lighting_getLightColor(surfaceColor, -directionalLight.direction, view_direction, normal_worldspace, directionalLight.color); 810 } 811 } 812 } 813 return lightColor; 814} 815`,M_={props:{},name:"gouraudMaterial",vs:jO.replace("phongMaterial","gouraudMaterial"),fs:VO.replace("phongMaterial","gouraudMaterial"),source:GO.replaceAll("phongMaterial","gouraudMaterial"),defines:{LIGHTING_VERTEX:1},dependencies:[Zd],uniformTypes:{ambient:"f32",diffuse:"f32",shininess:"f32",specularColor:"vec3<f32>"},defaultUniforms:{ambient:.35,diffuse:.6,shininess:32,specularColor:[.15,.15,.15]},getUniforms(r){const e={...r};return e.specularColor&&(e.specularColor=e.specularColor.map(t=>t/255)),{...M_.defaultUniforms,...e}}}
815,Tx={name:"phongMaterial",dependencies:[Zd],source:GO,vs:VO,fs:jO,defines:{LIGHTING_FRAGMENT:1},uniformTypes:{ambient:"f32",diffuse:"f32",shininess:"f32",specularColor:"vec3<f32>"},defaultUniforms:{ambient:.35,diffuse:.6,shininess:32,specularColor:[.15,.15,.15]},getUniforms(r){const e={...r};return e.specularColor&&(e.specularColor=e.specularColor.map(t=>t/255)),{...Tx.defaultUniforms,...e}}},hj=`out vec3 pbr_vPosition; 816out vec2 pbr_vUV; 817 818#ifdef HAS_NORMALS 819# ifdef HAS_TANGENTS 820out mat3 pbr_vTBN; 821# else 822out vec3 pbr_vNormal; 823# endif 824#endif 825 826void pbr_setPositionNormalTangentUV(vec4 position, vec4 normal, vec4 tangent, vec2 uv) 827{ 828 vec4 pos = pbrProjection.modelMatrix * position; 829 pbr_vPosition = vec3(pos.xyz) / pos.w; 830 831#ifdef HAS_NORMALS 832#ifdef HAS_TANGENTS 833 vec3 normalW = normalize(vec3(pbrProjection.normalMatrix * vec4(normal.xyz, 0.0))); 834 vec3 tangentW = normalize(vec3(pbrProjection.modelMatrix * vec4(tangent.xyz, 0.0))); 835 vec3 bitangentW = cross(normalW, tangentW) * tangent.w; 836 pbr_vTBN = mat3(tangentW, bitangentW, normalW); 837#else // HAS_TANGENTS != 1 838 pbr_vNormal = normalize(vec3(pbrProjection.modelMatrix * vec4(normal.xyz, 0.0))); 839#endif 840#endif 841 842#ifdef HAS_UV 843 pbr_vUV = uv; 844#else 845 pbr_vUV = vec2(0.,0.); 846#endif 847} 848`,dj=`precision highp float; 849 850uniform pbrMaterialUniforms { 851 // Material is unlit 852 bool unlit; 853 854 // Base color map 855 bool baseColorMapEnabled; 856 vec4 baseColorFactor; 857 858 bool normalMapEnabled; 859 float normalScale; // #ifdef HAS_NORMALMAP 860 861 bool emissiveMapEnabled; 862 vec3 emissiveFactor; // #ifdef HAS_EMISSIVEMAP 863 864 vec2 metallicRoughnessValues; 865 bool metallicRoughnessMapEnabled; 866 867 bool occlusionMapEnabled; 868 float occlusionStrength; // #ifdef HAS_OCCLUSIONMAP 869 870 bool alphaCutoffEnabled; 871 float alphaCutoff; // #ifdef ALPHA_CUTOFF 872 873 // IBL 874 bool IBLenabled; 875 vec2 scaleIBLAmbient; // #ifdef USE_IBL 876 877 // debugging flags used for shader output of intermediate PBR variables 878 // #ifdef PBR_DEBUG 879 vec4 scaleDiffBaseMR; 880 vec4 scaleFGDSpec; 881 // #endif 882} pbrMaterial; 883 884// Samplers 885#ifdef HAS_BASECOLORMAP 886uniform sampler2D pbr_baseColorSampler; 887#endif 888#ifdef HAS_NORMALMAP 889uniform sampler2D pbr_normalSampler; 890#endif 891#ifdef HAS_EMISSIVEMAP 892uniform sampler2D pbr_emissiveSampler; 893#endif 894#ifdef HAS_METALROUGHNESSMAP 895uniform sampler2D pbr_metallicRoughnessSampler; 896#endif 897#ifdef HAS_OCCLUSIONMAP 898uniform sampler2D pbr_occlusionSampler; 899#endif 900#ifdef USE_IBL 901uniform samplerCube pbr_diffuseEnvSampler; 902uniform samplerCube pbr_specularEnvSampler; 903uniform sampler2D pbr_brdfLUT; 904#endif 905 906// Inputs from vertex shader 907 908in vec3 pbr_vPosition; 909in vec2 pbr_vUV; 910 911#ifdef HAS_NORMALS 912#ifdef HAS_TANGENTS 913in mat3 pbr_vTBN; 914#else 915in vec3 pbr_vNormal; 916#endif 917#endif 918 919// Encapsulate the various inputs used by the various functions in the shading equation 920// We store values in this struct to simplify the integration of alternative implementations 921// of the shading terms, outlined in the Readme.MD Appendix. 922struct PBRInfo { 923 float NdotL; // cos angle between normal and light direction 924 float NdotV; // cos angle between normal and view direction 925 float NdotH; // cos angle between normal and half vector 926 float LdotH; // cos angle between light direction and half vector 927 float VdotH; // cos angle between view direction and half vector 928 float perceptualRoughness; // roughness value, as authored by the model creator (input to shader) 929 float metalness; // metallic value at the surface 930 vec3 reflectance0; // full reflectance color (normal incidence angle) 931 vec3 reflectance90; // reflectance color at grazing angle 932 float alphaRoughness; // roughness mapped to a more linear change in the roughness (proposed by [2]) 933 vec3 diffuseColor; // color contribution from diffuse lighting 934 vec3 specularColor; // color contribution from specular lighting 935 vec3 n; // normal at surface point 936 vec3 v; // vector from surface point to camera 937}; 938 939const float M_PI = 3.141592653589793; 940const float c_MinRoughness = 0.04; 941 942vec4 SRGBtoLINEAR(vec4 srgbIn) 943{
944#ifdef MANUAL_SRGB 945#ifdef SRGB_FAST_APPROXIMATION 946 vec3 linOut = pow(srgbIn.xyz,vec3(2.2)); 947#else // SRGB_FAST_APPROXIMATION 948 vec3 bLess = step(vec3(0.04045),srgbIn.xyz); 949 vec3 linOut = mix( srgbIn.xyz/vec3(12.92), pow((srgbIn.xyz+vec3(0.055))/vec3(1.055),vec3(2.4)), bLess ); 950#endif //SRGB_FAST_APPROXIMATION 951 return vec4(linOut,srgbIn.w);; 952#else //MANUAL_SRGB 953 return srgbIn; 954#endif //MANUAL_SRGB 955} 956 957// Find the normal for this fragment, pulling either from a predefined normal map 958// or from the interpolated mesh normal and tangent attributes. 959vec3 getNormal() 960{ 961 // Retrieve the tangent space matrix 962#ifndef HAS_TANGENTS 963 vec3 pos_dx = dFdx(pbr_vPosition); 964 vec3 pos_dy = dFdy(pbr_vPosition); 965 vec3 tex_dx = dFdx(vec3(pbr_vUV, 0.0)); 966 vec3 tex_dy = dFdy(vec3(pbr_vUV, 0.0)); 967 vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t); 968 969#ifdef HAS_NORMALS 970 vec3 ng = normalize(pbr_vNormal); 971#else 972 vec3 ng = cross(pos_dx, pos_dy); 973#endif 974 975 t = normalize(t - ng * dot(ng, t)); 976 vec3 b = normalize(cross(ng, t)); 977 mat3 tbn = mat3(t, b, ng); 978#else // HAS_TANGENTS 979 mat3 tbn = pbr_vTBN; 980#endif 981 982#ifdef HAS_NORMALMAP 983 vec3 n = texture(pbr_normalSampler, pbr_vUV).rgb; 984 n = normalize(tbn * ((2.0 * n - 1.0) * vec3(pbrMaterial.normalScale, pbrMaterial.normalScale, 1.0))); 985#else 986 // The tbn matrix is linearly interpolated, so we need to re-normalize 987 vec3 n = normalize(tbn[2].xyz); 988#endif 989 990 return n; 991} 992 993// Calculation of the lighting contribution from an optional Image Based Light source. 994// Precomputed Environment Maps are required uniform inputs and are computed as outlined in [1]. 995// See our README.md on Environment Maps [3] for additional discussion. 996#ifdef USE_IBL 997vec3 getIBLContribution(PBRInfo pbrInfo, vec3 n, vec3 reflection) 998{ 999 float mipCount = 9.0; // resolution of 512x512 1000 float lod = (pbrInfo.perceptualRoughness * mipCount); 1001 // retrieve a scale and bias to F0. See [1], Figure 3 1002 vec3 brdf = SRGBtoLINEAR(texture(pbr_brdfLUT, 1003 vec2(pbrInfo.NdotV, 1.0 - pbrInfo.perceptualRoughness))).rgb; 1004 vec3 diffuseLight = SRGBtoLINEAR(texture(pbr_diffuseEnvSampler, n)).rgb; 1005 1006#ifdef USE_TEX_LOD 1007 vec3 specularLight = SRGBtoLINEAR(texture(pbr_specularEnvSampler, reflection, lod)).rgb; 1008#else 1009 vec3 specularLight = SRGBtoLINEAR(texture(pbr_specularEnvSampler, reflection)).rgb; 1010#endif 1011 1012 vec3 diffuse = diffuseLight * pbrInfo.diffuseColor; 1013 vec3 specular = specularLight * (pbrInfo.specularColor * brdf.x + brdf.y); 1014 1015 // For presentation, this allows us to disable IBL terms 1016 diffuse *= pbrMaterial.scaleIBLAmbient.x; 1017 specular *= pbrMaterial.scaleIBLAmbient.y; 1018 1019 return diffuse + specular; 1020} 1021#endif 1022 1023// Basic Lambertian diffuse 1024// Implementation from Lambert's Photometria https://archive.org/details/lambertsphotome00lambgoog 1025// See also [1], Equation 1 1026vec3 diffuse(PBRInfo pbrInfo) 1027{ 1028 return pbrInfo.diffuseColor / M_PI; 1029} 1030 1031// The following equation models the Fresnel reflectance term of the spec equation (aka F()) 1032// Implementation of fresnel from [4], Equation 15 1033vec3 specularReflection(PBRInfo pbrInfo) 1034{ 1035 return pbrInfo.reflectance0 + 1036 (pbrInfo.reflectance90 - pbrInfo.reflectance0) * 1037 pow(clamp(1.0 - pbrInfo.VdotH, 0.0, 1.0), 5.0); 1038} 1039 1040// This calculates the specular geometric attenuation (aka G()), 1041// where rougher material will reflect less light back to the viewer. 1042// This implementation is based on [1] Equation 4, and we adopt their modifications to 1043// alphaRoughness as input as originally proposed in [2]. 1044float geometricOcclusion(PBRInfo pbrInfo) 1045{ 1046 float NdotL = pbrInfo.NdotL; 1047 float NdotV = pbrInfo.NdotV; 1048 float r = pbrInfo.alphaRoughness; 1049 1050 float attenuationL = 2.0 * NdotL / (NdotL + sqrt(r * r + (1.0 - r * r) * (NdotL * NdotL))); 1051 float attenuationV = 2.0 * NdotV / (NdotV + sqrt(r * r + (1.0 - r * r) * (NdotV * NdotV))); 1052 return attenuationL * attenuationV; 1053} 1054 1055// The following equation(s) model the distribution of microfacet normals across 1056// the area being drawn (aka D()) 1057// Implementation from "Average Irregularity Representation of a Roughened Surface 1058// for Ray Reflection" by T. S. Trowbridge, and K. P. Reitz 1059// Follows the distribution function recommended in the SIGGRAPH 2013 course notes 1060// from EPIC Games [1], Equation 3. 1061float microfacetDistribution(PBRInfo pbrInfo) 1062{ 1063 float roughnessSq = pbrInfo.alphaRoughness * pbrInfo.alphaRoughness; 1064 float f = (pbrInfo.NdotH * roughnessSq - pbrInfo.NdotH) * pbrInfo.NdotH + 1.0; 1065 return roughnessSq / (M_PI * f * f); 1066} 1067 1068void PBRInfo_setAmbientLight(inout PBRInfo pbrInfo) { 1069 pbrInfo.NdotL = 1.0; 1070 pbrInfo.NdotH = 0.0; 1071 pbrInfo.LdotH = 0.0; 1072 pbrInfo.VdotH = 1.0; 1073} 1074 1075void PBRInfo_setDirectionalLight(inout PBRInfo pbrInfo, vec3 lightDirection) { 1076 vec3 n = pbrInfo.n; 1077 vec3 v = pbrInfo.v; 1078 vec3 l = normalize(lightDirection); // Vector from surface point to light 1079 vec3 h = normalize(l+v); // Half vector between both l and v 1080 1081 pbrInfo.NdotL = clamp(dot(n, l), 0.001, 1.0); 1082 pbrInfo.NdotH = clamp(dot(n, h), 0.0, 1.0); 1083 pbrInfo.LdotH = clamp(dot(l, h), 0.0, 1.0); 1084 pbrInfo.VdotH = clamp(dot(v, h), 0.0, 1.0); 1085} 1086 1087void PBRInfo_setPointLight(inout PBRInfo pbrInfo, PointLight pointLight) { 1088 vec3 light_direction = normalize(pointLight.position - pbr_vPosition); 1089 PBRInfo_setDirectionalLight(pbrInfo, light_direction); 1090} 1091 1092vec3 calculateFinalColor(PBRInfo pbrInfo, vec3 lightColor) { 1093 // Calculate the shading terms for the microfacet specular shading model 1094 vec3 F = specularReflection(pbrInfo); 1095 float G = geometricOcclusion(pbrInfo); 1096 float D = microfacetDistribution(pbrInfo); 1097 1098 // Calculation of analytical lighting contribution 1099 vec3 diffuseContrib = (1.0 - F) * diffuse(pbrInfo); 1100 vec3 specContrib = F * G * D / (4.0 * pbrInfo.NdotL * pbrInfo.NdotV); 1101 // Obtain final intensity as reflectance (BRDF) scaled by the energy of the light (cosine law) 1102 return pbrInfo.NdotL * lightColor * (diffuseContrib + specContrib); 1103} 1104 1105vec4 pbr_filterColor(vec4 colorUnused) 1106{ 1107 // The albedo may be defined from a base texture or a flat color 1108#ifdef HAS_BASECOLORMAP 1109 vec4 baseColor = SRGBtoLINEAR(texture(pbr_baseColorSampler, pbr_vUV)) * pbrMaterial.baseColorFactor; 1110#else 1111 vec4 baseColor = pbrMaterial.baseColorFactor; 1112#endif 1113 1114#ifdef ALPHA_CUTOFF 1115 if (baseColor.a < pbrMaterial.alphaCutoff) { 1116 discard; 1117 } 1118#endif 1119 1120 vec3 color = vec3(0, 0, 0); 1121 1122 if(pbrMaterial.unlit){ 1123 color.rgb = baseColor.rgb; 1124 } 1125 else{ 1126 // Metallic and Roughness material properties are packed together 1127 // In glTF, these factors can be specified by fixed scalar values 1128 // or from a metallic-roughness map 1129 float perceptualRoughness = pbrMaterial.metallicRoughnessValues.y; 1130 float metallic = pbrMaterial.metallicRoughnessValues.x; 1131#ifdef HAS_METALROUGHNESSMAP 1132 // Roughness is stored in the 'g' channel, metallic is stored in the 'b' channel. 1133 // This layout intentionally reserves the 'r' channel for (optional) occlusion map data 1134 vec4 mrSample = texture(pbr_metallicRoughnessSampler, pbr_vUV); 1135 perceptualRoughness = mrSample.g * perceptualRoughness; 1136 metallic = mrSample.b * metallic; 1137#endif 1138 perceptualRoughness = clamp(perceptualRoughness, c_MinRoughness, 1.0
1138); 1139 metallic = clamp(metallic, 0.0, 1.0); 1140 // Roughness is authored as perceptual roughness; as is convention, 1141 // convert to material roughness by squaring the perceptual roughness [2]. 1142 float alphaRoughness = perceptualRoughness * perceptualRoughness; 1143 1144 vec3 f0 = vec3(0.04); 1145 vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - f0); 1146 diffuseColor *= 1.0 - metallic; 1147 vec3 specularColor = mix(f0, baseColor.rgb, metallic); 1148 1149 // Compute reflectance. 1150 float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b); 1151 1152 // For typical incident reflectance range (between 4% to 100%) set the grazing 1153 // reflectance to 100% for typical fresnel effect. 1154 // For very low reflectance range on highly diffuse objects (below 4%), 1155 // incrementally reduce grazing reflecance to 0%. 1156 float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0); 1157 vec3 specularEnvironmentR0 = specularColor.rgb; 1158 vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90; 1159 1160 vec3 n = getNormal(); // normal at surface point 1161 vec3 v = normalize(pbrProjection.camera - pbr_vPosition); // Vector from surface point to camera 1162 1163 float NdotV = clamp(abs(dot(n, v)), 0.001, 1.0); 1164 vec3 reflection = -normalize(reflect(v, n)); 1165 1166 PBRInfo pbrInfo = PBRInfo( 1167 0.0, // NdotL 1168 NdotV, 1169 0.0, // NdotH 1170 0.0, // LdotH 1171 0.0, // VdotH 1172 perceptualRoughness, 1173 metallic, 1174 specularEnvironmentR0, 1175 specularEnvironmentR90, 1176 alphaRoughness, 1177 diffuseColor, 1178 specularColor, 1179 n, 1180 v 1181 ); 1182 1183 1184#ifdef USE_LIGHTS 1185 // Apply ambient light 1186 PBRInfo_setAmbientLight(pbrInfo); 1187 color += calculateFinalColor(pbrInfo, lighting.ambientColor); 1188 1189 // Apply directional light 1190 for(int i = 0; i < lighting.directionalLightCount; i++) { 1191 if (i < lighting.directionalLightCount) { 1192 PBRInfo_setDirectionalLight(pbrInfo, lighting_getDirectionalLight(i).direction); 1193 color += calculateFinalColor(pbrInfo, lighting_getDirectionalLight(i).color); 1194 } 1195 } 1196 1197 // Apply point light 1198 for(int i = 0; i < lighting.pointLightCount; i++) { 1199 if (i < lighting.pointLightCount) { 1200 PBRInfo_setPointLight(pbrInfo, lighting_getPointLight(i)); 1201 float attenuation = getPointLightAttenuation(lighting_getPointLight(i), distance(lighting_getPointLight(i).position, pbr_vPosition)); 1202 color += calculateFinalColor(pbrInfo, lighting_getPointLight(i).color / attenuation); 1203 } 1204 } 1205#endif 1206 1207 // Calculate lighting contribution from image based lighting source (IBL) 1208#ifdef USE_IBL 1209 if (pbrMaterial.IBLenabled) { 1210 color += getIBLContribution(pbrInfo, n, reflection); 1211 } 1212#endif 1213 1214 // Apply optional PBR terms for additional (optional) shading 1215#ifdef HAS_OCCLUSIONMAP 1216 if (pbrMaterial.occlusionMapEnabled) { 1217 float ao = texture(pbr_occlusionSampler, pbr_vUV).r; 1218 color = mix(color, color * ao, pbrMaterial.occlusionStrength); 1219 } 1220#endif 1221 1222#ifdef HAS_EMISSIVEMAP 1223 if (pbrMaterial.emissiveMapEnabled) { 1224 vec3 emissive = SRGBtoLINEAR(texture(pbr_emissiveSampler, pbr_vUV)).rgb * pbrMaterial.emissiveFactor; 1225 color += emissive; 1226 } 1227#endif 1228 1229 // This section uses mix to override final color for reference app visualization 1230 // of various parameters in the lighting equation. 1231#ifdef PBR_DEBUG 1232 // TODO: Figure out how to debug multiple lights 1233 1234 // color = mix(color, F, pbr_scaleFGDSpec.x); 1235 // color = mix(color, vec3(G), pbr_scaleFGDSpec.y); 1236 // color = mix(color, vec3(D), pbr_scaleFGDSpec.z); 1237 // color = mix(color, specContrib, pbr_scaleFGDSpec.w); 1238 1239 // color = mix(color, diffuseContrib, pbr_scaleDiffBaseMR.x); 1240 color = mix(color, baseColor.rgb, pbrMaterial.scaleDiffBaseMR.y); 1241 color = mix(color, vec3(metallic), pbrMaterial.scaleDiffBaseMR.z); 1242 color = mix(color, vec3(perceptualRoughness), pbrMaterial.scaleDiffBaseMR.w); 1243#endif 1244 1245 } 1246 1247 return vec4(pow(color,vec3(1.0/2.2)), baseColor.a); 1248} 1249`,c3=`uniform pbrProjectionUniforms { 1250 mat4 modelViewProjectionMatrix; 1251 mat4 modelMatrix; 1252 mat4 normalMatrix; 1253 vec3 camera; 1254} pbrProjection; 1255`,pj={name:"pbrProjection",vs:c3,fs:c3,getUniforms:r=>r,uniformTypes:{modelViewProjectionMatrix:"mat4x4<f32>",modelMatrix:"mat4x4<f32>",normalMatrix:"mat4x4<f32>",camera:"vec3<i32>"}},Ex={props:{},uniforms:{}
1255,name:"pbrMaterial",dependencies:[Zd,pj],vs:hj,fs:dj,defines:{LIGHTING_FRAGMENT:1},getUniforms:r=>r,uniformTypes:{unlit:"i32",baseColorMapEnabled:"i32",baseColorFactor:"vec4<f32>",normalMapEnabled:"i32",normalScale:"f32",emissiveMapEnabled:"i32",emissiveFactor:"vec3<f32>",metallicRoughnessValues:"vec2<f32>",metallicRoughnessMapEnabled:"i32",occlusionMapEnabled:"i32",occlusionStrength:"f32",alphaCutoffEnabled:"i32",alphaCutoff:"f32",IBLenabled:"i32",scaleIBLAmbient:"vec2<f32>",scaleDiffBaseMR:"vec4<f32>",scaleFGDSpec:"vec4<f32>"}},u3=`uniform layerUniforms { 1256 uniform float opacity; 1257} layer; 1258`,Aj={name:"layer",vs:u3,fs:u3,getUniforms:r=>({opacity:Math.pow(r.opacity,1/2.2)}),uniformTypes:{opacity:"f32"}},gj=`const SMOOTH_EDGE_RADIUS: f32 = 0.5; 1259 1260struct VertexGeometry { 1261 position: vec4<f32>, 1262 worldPosition: vec3<f32>, 1263 worldPositionAlt: vec3<f32>, 1264 normal: vec3<f32>, 1265 uv: vec2<f32>, 1266 pickingColor: vec3<f32>, 1267}; 1268 1269var<private> geometry_: VertexGeometry = VertexGeometry( 1270 vec4<f32>(0.0, 0.0, 1.0, 0.0), 1271 vec3<f32>(0.0, 0.0, 0.0), 1272 vec3<f32>(0.0, 0.0, 0.0), 1273 vec3<f32>(0.0, 0.0, 0.0), 1274 vec2<f32>(0.0, 0.0), 1275 vec3<f32>(0.0, 0.0, 0.0) 1276); 1277 1278struct FragmentGeometry { 1279 uv: vec2<f32>, 1280}; 1281 1282var<private> fragmentGeometry: FragmentGeometry; 1283 1284fn smoothedge(edge: f32, x: f32) -> f32 { 1285 return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x); 1286} 1287`,HO="#define SMOOTH_EDGE_RADIUS 0.5",mj=`${HO} 1288 1289struct VertexGeometry { 1290 vec4 position; 1291 vec3 worldPosition; 1292 vec3 worldPositionAlt; 1293 vec3 normal; 1294 vec2 uv; 1295 vec3 pickingColor; 1296} geometry = VertexGeometry( 1297 vec4(0.0, 0.0, 1.0, 0.0), 1298 vec3(0.0), 1299 vec3(0.0), 1300 vec3(0.0), 1301 vec2(0.0), 1302 vec3(0.0) 1303); 1304`,_j=`${HO} 1305 1306struct FragmentGeometry { 1307 vec2 uv; 1308} geometry; 1309 1310float smoothedge(float edge, float x) { 1311 return smoothstep(edge - SMOOTH_EDGE_RADIUS, edge + SMOOTH_EDGE_RADIUS, x); 1312} 1313`,WO={name:"geometry",source:gj,vs:mj,fs:_j},yj=25;var As;(function(r){r[r.Start=1]="Start",r[r.Move=2]="Move",r[r.End=4]="End",r[r.Cancel=8]="Cancel"})(As||(As={}));var Ts;(function(r){r[r.None=0]="None",r[r.Left=1]="Left",r[r.Right=2]="Right",r[r.Up=4]="Up",r[r.Down=8]="Down",r[r.Horizontal=3]="Horizontal",r[r.Vertical=12]="Vertical",r[r.All=15]="All"})(Ts||(Ts={}));var yn;(function(r){r[r.Possible=1]="Possible",r[r.Began=2]="Began",r[r.Changed=4]="Changed",r[r.Ended=8]="Ended",r[r.Recognized=8]="Recognized",r[r.Cancelled=16]="Cancelled",r[r.Failed=32]="Failed"})(yn||(yn={}));const vj="compute",bj="auto",I1="manipulation",gm="none",B1="pan-x",P1="pan-y";function xj(r){if(r.includes(gm))return gm;const e=r.includes(B1),t=r.includes(P1);return e&&t?gm:e||t?e?B1:P1:r.includes(I1)?I1:bj}class wj{constructor(e,t){this.actions="",this.manager=e,this.set(t)}set(e){e===vj&&(e=this.compute()),this.manager.element&&(this.manager.element.style.touchAction=e,this.actions=e)}update(){this.set(this.manager.options.touchAction)}compute(){let e=[];for(const t of this.manager.recognizers)t.options.enable&&(e=e.concat(t.getTouchAction()));return xj(e.join(" "))}}function Xm(r){return r.trim().split(/\s+/g)}function yv(r,e,t){if(r)for(const n of Xm(e))r.addEventListener(n,t,!1)}function vv(r,e,t){if(r)for(const n of Xm(e))r.removeEventListener(n,t,!1)}function f3(r){return(r.ownerDocument||r).defaultView}function Tj(r,e){let t=r;for(;t;){if(t===e)return!0;t=t.parentNode}return!1}function $O(r){const e=r.length;if(e===1)return{x:Math.round(r[0].clientX),y:Math.round(r[0].clientY)};let t=0,n=0,i=0;for(;i<e;)t+=r[i].clientX,n+=r[i].clientY,i++;return{x:Math.round(t/e),y:Math.round(n/e)}}function h3(r){const e=[];let t=0;for(;t<r.pointers.length;)e[t]={clientX:Math.round(r.pointers[t].clientX),clientY:Math.round(r.pointers[t].clientY)},t++;return{timeStamp:Date.now(),pointers:e,center:$O(e),deltaX:r.deltaX,deltaY:r.deltaY}}function XO(r,e){const t=e.x-r.x,n=e.y-r.y;return Math.sqrt(t*t+n*n)}function d3(r,e){const t=e.clientX-r.clientX,n=e.clientY-r.clientY;return Math.sqrt(t*t+n*n)}function Ej(r,e){const t=e.x-r.x,n=e.y-r.y;return Math.atan2(n,t)*180/Math.PI}function p3(r,e){const t=e.clientX-r.clientX,n=e.clientY-r.clientY;return Math.atan2(n,t)*180/Math.PI}function qO(r,e){return r===e?Ts.None:Math.abs(r)>=Math.abs(e)?r<0?Ts.Left:Ts.Right:e<0?Ts.Up:Ts.Down}function Cj(r,e){const t=e.center;let n=r.offsetDelta,i=r.prevDelta;const s=r.prevInput;return(e.eventType===As.Start||s?.eventType===As.End)&&(i=r.prevDelta={x:s?.deltaX||0,y:s?.deltaY||0},n=r.offsetDelta={x:t.x,y:t.y}),{deltaX:i.x+(t.x-n.x),deltaY:i.y+(t.y-n.y)}}function JO(r,e,t){return{x:e/r||0,y:t/r||0}}function Sj(r,e){return d3(e[0],e[1])/d3(r[0],r[1])}function Ij(r,e){return p3(e[1],e[0])-p3(r[1],r[0])}function Bj(r,e){const t=r.lastInterval||e,n=e.timeStamp-t.timeStamp;let i,s,o,l;if(e.eventType!==As.Cancel&&(n>yj||t.velocity===void 0)){const f=e.deltaX-t.deltaX,A=e.deltaY-t.deltaY,v=JO(n,f,A);s=v.x,o=v.y,i=Math.abs(v.x)>Math.abs(v.y)?v.x:v.y,l=qO(f,A),r.lastInterval=e}else i=t.velocity,s=t.velocityX,o=t.velocityY,l=t.direction;e.velocity=i,e.velocityX=s,e.velocityY=o,e.direction=l}function Pj(r,e){const{session:t}=r,{pointers:n}=e,{length:i}=n;t.firstInput||(t.firstInput=h3(e)),i>1&&!t.firstMultiple?t.firstMultiple=h3(e):i===1&&(t.firstMultiple=!1);const{firstInput:s,firstMultiple:o}=t,l=o?o.center:s.center,f=e.center=$O(n);e.timeStamp=Date.now(),e.deltaTime=e.timeStamp-s.timeStamp,e.angle=Ej(l,f),e.distance=XO(l,f);const{deltaX:A,deltaY:v}=Cj(t,e);e.deltaX=A,e.deltaY=v,e.offsetDirection=qO(e.deltaX,e.deltaY);const T=JO(e.deltaTime,e.deltaX,e.deltaY);e.overallVelocityX=T.x,e.overallVelocityY=T.y,e.overallVelocity=Math.abs(T.x)>Math.abs(T.y)?T.x:T.y,e.scale=o?Sj(o.pointers,n):1,e.rotation=o?Ij(o.pointers,n):0,e.maxPointers=t.prevInput?e.pointers.length>t.prevInput.maxPointers?e.pointers.length:t.prevInput.maxPointers:e.pointers.length;let I=r.element;return Tj(e.srcEvent.target,I)&&(I=e.srcEvent.target),e.target=I,Bj(t,e),e}function Mj(r,e,t){const n=t.pointers.length,i=t.changedPointers.length,s=e&As.Start&&n-i===0,o=e&(As.End|As.Cancel)&&n-i===0;t.isFirst=!!s,t.isFinal=!!o,s&&(r.session={}),t.eventType=e;const l=Pj(r,t);r.emit("hammer.input",l),r.recognize(l),r.session.prevInput=l}let Rj=class{constructor(e){this.evEl="",this.evWin="",this.evTarget="",this.domHandler=t=>{this.manager.options.enable&&this.handler(t)},this.manager=e,this.element=e.element,this.target=e.options.inputTarget||e.element}callback(e,t){Mj(this.manager,e,t)}init(){yv(this.element,this.evEl,this.domHandler),yv(this.target,this.evTarget,this.domHandler),yv(f3(this.element),this.evWin,this.domHandler)}destroy(){vv(this.element,this.evEl,this.domHandler),vv(this.target,this.evTarget,this.domHandler),vv(f3(this.element),this.evWin,this.domHandler)}};const Oj={pointerdown:As.Start,pointermove:As.Move,pointerup:As.End,pointercancel:As.Cancel,pointerout:As.Cancel},Dj="pointerdown",Fj="pointermove pointerup pointercancel";class Lj extends Rj{constructor(e){super(e),this.evEl=Dj,this.evWin=Fj,this.store=this.manager.session.pointerEvents=[],this.init()}handler(e){const{store:t}=this;let n=!1;const i=Oj[e.type],s=e.pointerType,o=s==="touch";let l=t.findIndex(f=>f.pointerId===e.pointerId);i&As.Start&&(e.buttons||o)?l<0&&(t.push(e),l=t.length-1):i&(As.End|As.Cancel)&&(n=!0),!(l<0)&&(t[l]=e,this.callback(i,{pointers:t,changedPointers:[e],eventType:i,pointerType:s,srcEvent:e}),n&&t.splice(l,1))}}const kj=["","webkit","Moz","MS","ms","o"];function Nj(r,e){const t=e[0].toUpperCase()+e.slice(1);for(const n of kj){const i=n?n+t:e;if(i in r)return i}}const Uj=1,A3=2,g3={touchAction:"compute",enable:!0,inputTarget:null,cssProps:{userSelect:"none",userDrag:"none",touchCallout:"none",tapHighlightColor:"rgba(0,0,0,0)"}};let zj=class{constructor(e,t){this.options={...g3,...t,cssProps:{...g3.cssProps,...t.cssProps},inputTarget:t.inputTarget||e},this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=e,this.input=new Lj(this),this.touchAction=new wj(this,this.options.touchAction),this.toggleCssProps(!0)}set(e){return Object.assign(this.options,e),e.touchAction&&this.touchAction.update(),e.inputTarget&&(this.input.destroy(),this.input.target=e.inputTarget,this.input.init()),this}stop(e){this.session.stopped=e?A3:Uj}recognize(e){const{session:t}=this;if(t.stopped)return;this.session.prevented&&e.srcEvent.preventDefault();let n;const{recognizers:i}=this;let{curRecognizer:s}=t;(!s||s&&s.state&yn.Recognized)&&(s=t.curRecognizer=null);let o=0;for(;o<i.length;)n=i[o],t.stopped!==A3&&(!s||n===s||n.canRecognizeWith(s))?n.recognize(e):n.reset(),!s&&n.state&(yn.Began|yn.Changed|yn.Ended)&&(s=t.curRecognizer=n),o++}get(e){const{recognizers:t}=this;for(let n=0;n<t.length;n++)if(t[n].options.event===e)return t[n];return null}add(e){if(Array.isArray(e)){for(const n of e)this.add(n);return this}const t=this.get(e.options.event);return t&&this.remove(t),this.recognizers.push(e),e.manager=this,this.touchAction.update(),e}remove(e){if(Array.isArray(e)){for(const n of e)this.remove(n);return this}const t=typeof e=="string"?this.get(e):e;if(t){const{recognizers:n}=this,i=n.indexOf(t);i!==-1&&(n.splice(i,1),this.touchAction.update())}return this}on(e,t){if(!e||!t)return;const{handlers:n}=this;for(const i of Xm(e))n[i]=n[i]||[],n[i].push(t)}off(e,t){if(!e)return;const{handlers:n}=this;for(const i of Xm(e))t?n[i]&&n[i].splice(n[i].indexOf(t),1):delete n[i]}emit(e,t){const n=this.handlers[e]&&this.handlers[e].slice();if(!n||!n.length)return;const i=t;i.type=e,i.preventDefault=function(){t.srcEvent.preventDefault()};let s=0;for(;s<n.length;)n[s](i),s++}destroy(){this.toggleCssProps(!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}toggleCssProps(e){const{element:t}=this;if(t){for(const[n,i]of Object.entries(this.options.cssProps)){const s=Nj(t.style,n);e?(this.oldCssProps[s]=t.style[s],t.style[s]=i):t.style[s]=this.oldCssProps[s]||""}e||(this.oldCssProps={})}}},Vj=1;function jj(){return Vj++}function m3(r){return r&yn.Cancelled?"cancel":r&yn.Ended?"end":r&yn.Changed?"move":r&yn.Began?"
1313start":""}class KO{constructor(e){this.options=e,this.id=jj(),this.state=yn.Possible,this.simultaneous={},this.requireFail=[]}set(e){return Object.assign(this.options,e),this.manager.touchAction.update(),this}recognizeWith(e){if(Array.isArray(e)){for(const i of e)this.recognizeWith(i);return this}let t;if(typeof e=="string"){if(t=this.manager.get(e),!t)throw new Error(`Cannot find recognizer ${e}`)}else t=e;const{simultaneous:n}=this;return n[t.id]||(n[t.id]=t,t.recognizeWith(this)),this}dropRecognizeWith(e){if(Array.isArray(e)){for(const n of e)this.dropRecognizeWith(n);return this}let t;return typeof e=="string"?t=this.manager.get(e):t=e,t&&delete this.simultaneous[t.id],this}requireFailure(e){if(Array.isArray(e)){for(const i of e)this.requireFailure(i);return this}let t;if(typeof e=="string"){if(t=this.manager.get(e),!t)throw new Error(`Cannot find recognizer ${e}`)}else t=e;const{requireFail:n}=this;return n.indexOf(t)===-1&&(n.push(t),t.requireFailure(this)),this}dropRequireFailure(e){if(Array.isArray(e)){for(const n of e)this.dropRequireFailure(n);return this}let t;if(typeof e=="string"?t=this.manager.get(e):t=e,t){const n=this.requireFail.indexOf(t);n>-1&&this.requireFail.splice(n,1)}return this}hasRequireFailures(){return!!this.requireFail.find(e=>e.options.enable)}canRecognizeWith(e){return!!this.simultaneous[e.id]}emit(e){if(!e)return;const{state:t}=this;t<yn.Ended&&this.manager.emit(this.options.event+m3(t),e),this.manager.emit(this.options.event,e),e.additionalEvent&&this.manager.emit(e.additionalEvent,e),t>=yn.Ended&&this.manager.emit(this.options.event+m3(t),e)}tryEmit(e){this.canEmit()?this.emit(e):this.state=yn.Failed}canEmit(){let e=0;for(;e<this.requireFail.length;){if(!(this.requireFail[e].state&(yn.Failed|yn.Possible)))return!1;e++}return!0}recognize(e){const t={...e};if(!this.options.enable){this.reset(),this.state=yn.Failed;return}this.state&(yn.Recognized|yn.Cancelled|yn.Failed)&&(this.state=yn.Possible),this.state=this.process(t),this.state&(yn.Began|yn.Changed|yn.Ended|yn.Cancelled)&&this.tryEmit(t)}getEventNames(){return[this.options.event]}reset(){}}class ZO extends KO{attrTest(e){const t=this.options.pointers;return t===0||e.pointers.length===t}process(e){const{state:t}=this,{eventType:n}=e,i=t&(yn.Began|yn.Changed),s=this.attrTest(e);return i&&(n&As.Cancel||!s)?t|yn.Cancelled:i||s?n&As.End?t|yn.Ended:t&yn.Began?t|yn.Changed:yn.Began:yn.Failed}}class _3 extends KO{constructor(e={}){super({enable:!0,event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10,...e}),this.pTime=null,this.pCenter=null,this._timer=null,this._input=null,this.count=0}getTouchAction(){return[I1]}process(e){const{options:t}=this,n=e.pointers.length===t.pointers,i=e.distance<t.threshold,s=e.deltaTime<t.time;if(this.reset(),e.eventType&As.Start&&this.count===0)return this.failTimeout();if(i&&s&&n){if(e.eventType!==As.End)return this.failTimeout();const o=this.pTime?e.timeStamp-this.pTime<t.interval:!0,l=!this.pCenter||XO(this.pCenter,e.center)<t.posThreshold;if(this.pTime=e.timeStamp,this.pCenter=e.center,!l||!o?this.count=1:this.count+=1,this._input=e,this.count%t.taps===0)return this.hasRequireFailures()?(this._timer=setTimeout(()=>{this.state=yn.Recognized,this.tryEmit(this._input)},t.interval),yn.Began):yn.Recognized}return yn.Failed}failTimeout(){return this._timer=setTimeout(()=>{this.state=yn.Failed},this.options.interval),yn.Failed}reset(){clearTimeout(this._timer)}emit(e){this.state===yn.Recognized&&(e.tapCount=this.count,this.manager.emit(this.options.event,e))}}const Gj=["","start","move","end","cancel","up","down","left","right"];class y3 extends ZO{constructor(e={}){super({enable:!0,pointers:1,event:"pan",threshold:10,direction:Ts.All,...e}),this.pX=null,this.pY=null}getTouchAction(){const{options:{direction:e}}=this,t=[];return e&Ts.Horizontal&&t.push(P1),e&Ts.Vertical&&t.push(B1),t}getEventNames(){return Gj.map(e=>this.options.event+e)}directionTest(e){const{options:t}=this;let n=!0,{distance:i}=e,{direction:s}=e;const o=e.deltaX,l=e.deltaY;return s&t.direction||(t.direction&Ts.Horizontal?(s=o===0?Ts.None:o<0?Ts.Left:Ts.Right,n=o!==this.pX,i=Math.abs(e.deltaX)):(s=l===0?Ts.None:l<0?Ts.Up:Ts.Down,n=l!==this.pY,i=Math.abs(e.deltaY))),e.direction=s,n&&i>t.threshold&&!!(s&t.direction)}attrTest(e){return super.attrTest(e)&&(!!(this.state&yn.Began)||!(this.state&yn.Began)&&this.directionTest(e))}emit(e){this.pX=e.deltaX,this.pY=e.deltaY;
1313const t=Ts[e.direction].toLowerCase();t&&(e.additionalEvent=this.options.event+t),super.emit(e)}}const Hj=["","start","move","end","cancel","in","out"];class Wj extends ZO{constructor(e={}){super({enable:!0,event:"pinch",threshold:0,pointers:2,...e})}getTouchAction(){return[gm]}getEventNames(){return Hj.map(e=>this.options.event+e)}attrTest(e){return super.attrTest(e)&&(Math.abs(e.scale-1)>this.options.threshold||!!(this.state&yn.Began))}emit(e){if(e.scale!==1){const t=e.scale<1?"in":"out";e.additionalEvent=this.options.event+t}super.emit(e)}}let R_=class{constructor(e,t,n){this.element=e,this.callback=t,this.options=n}};const $j=typeof navigator<"u"&&navigator.userAgent?navigator.userAgent.toLowerCase():"",Xj=$j.indexOf("firefox")!==-1,v3=4.000244140625,qj=40,Jj=.25;let Kj=class extends R_{constructor(e,t,n){super(e,t,{enable:!0,...n}),this.handleEvent=i=>{if(!this.options.enable)return;let s=i.deltaY;globalThis.WheelEvent&&(Xj&&i.deltaMode===globalThis.WheelEvent.DOM_DELTA_PIXEL&&(s/=globalThis.devicePixelRatio),i.deltaMode===globalThis.WheelEvent.DOM_DELTA_LINE&&(s*=qj)),s!==0&&s%v3===0&&(s=Math.floor(s/v3)),i.shiftKey&&s&&(s=s*Jj),this.callback({type:"wheel",center:{x:i.clientX,y:i.clientY},delta:-s,srcEvent:i,pointerType:"mouse",target:i.target})},e.addEventListener("wheel",this.handleEvent,{passive:!1})}destroy(){this.element.removeEventListener("wheel",this.handleEvent)}enableEventType(e,t){e==="wheel"&&(this.options.enable=t)}};const b3=["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"];let Zj=class extends R_{constructor(e,t,n){super(e,t,{enable:!0,...n}),this.handleEvent=s=>{this.handleOverEvent(s),this.handleOutEvent(s),this.handleEnterEvent(s),this.handleLeaveEvent(s),this.handleMoveEvent(s)},this.pressed=!1;const{enable:i}=this.options;this.enableMoveEvent=i,this.enableLeaveEvent=i,this.enableEnterEvent=i,this.enableOutEvent=i,this.enableOverEvent=i,b3.forEach(s=>e.addEventListener(s,this.handleEvent))}destroy(){b3.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,t){switch(e){case"pointermove":this.enableMoveEvent=t;break;case"pointerover":this.enableOverEvent=t;break;case"pointerout":this.enableOutEvent=t;break;case"pointerenter":this.enableEnterEvent=t;break;case"pointerleave":this.enableLeaveEvent=t;break}}handleOverEvent(e){this.enableOverEvent&&e.type==="mouseover"&&this._emit("pointerover",e)}handleOutEvent(e){this.enableOutEvent&&e.type==="mouseout"&&this._emit("pointerout",e)}handleEnterEvent(e){this.enableEnterEvent&&e.type==="mouseenter"&&this._emit("pointerenter",e)}handleLeaveEvent(e){this.enableLeaveEvent&&e.type==="mouseleave"&&this._emit("pointerleave",e)}handleMoveEvent(e){if(this.enableMoveEvent)switch(e.type){case"mousedown":e.button>=0&&(this.pressed=!0);break;case"mousemove":e.buttons===0&&(this.pressed=!1),this.pressed||this._emit("pointermove",e);break;case"mouseup":this.pressed=!1;break}}_emit(e,t){this.callback({type:e,center:{x:t.clientX,y:t.clientY},srcEvent:t,pointerType:"mouse",target:t.target})}};const x3=["keydown","keyup"];let Yj=class extends R_{constructor(e,t,n){super(e,t,{enable:!0,tabIndex:0,...n}),this.handleEvent=i=>{const s=i.target||i.srcElement;s.tagName==="INPUT"&&s.type==="text"||s.tagName==="TEXTAREA"||(this.enableDownEvent&&i.type==="keydown"&&this.callback({type:"keydown",srcEvent:i,key:i.key,target:i.target}),this.enableUpEvent&&i.type==="keyup"&&this.callback({type:"keyup",srcEvent:i,key:i.key,target:i.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,e.tabIndex=this.options.tabIndex,e.style.outline="none",x3.forEach(i=>e.addEventListener(i,this.handleEvent))}destroy(){x3.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,t){e==="keydown"&&(this.enableDownEvent=t),e==="keyup"&&(this.enableUpEvent=t)}},Qj=class extends R_{constructor(e,t,n){super(e,t,n),this.handleEvent=i=>{this.options.enable&&this.callback({type:"contextmenu",center:{x:i.clientX,y:i.clientY},srcEvent:i,pointerType:"mouse",target:i.target})},e.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(e,t){e==="contextmenu"&&(this.options.enable=t)}};const w3=1,M1=2,T3=4,eG={pointerdown:w3,pointermove:M1,pointerup:T3,mousedown:w3,mousemove:M1,mouseup:T3}
1313,tG=0,rG=1,nG=2,iG=1,sG=2,oG=4;function aG(r){const e=eG[r.srcEvent.type];if(!e)return null;const{buttons:t,button:n}=r.srcEvent;let i=!1,s=!1,o=!1;return e===M1?(i=!!(t&iG),s=!!(t&oG),o=!!(t&sG)):(i=n===tG,s=n===rG,o=n===nG),{leftButton:i,middleButton:s,rightButton:o}}function lG(r,e){const t=r.center;if(!t)return null;const n=e.getBoundingClientRect(),i=n.width/e.offsetWidth||1,s=n.height/e.offsetHeight||1,o={x:(t.x-n.left-e.clientLeft)/i,y:(t.y-n.top-e.clientTop)/s};return{center:t,offsetCenter:o}}const cG={srcElement:"root",priority:0};let uG=class{constructor(e,t){this.handleEvent=n=>{if(this.isEmpty())return;const i=this._normalizeEvent(n);let s=n.srcEvent.target;for(;s&&s!==i.rootElement;){if(this._emit(i,s),i.handled)return;s=s.parentNode}this._emit(i,"root")},this.eventManager=e,this.recognizerName=t,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add(e,t,n,i=!1,s=!1){const{handlers:o,handlersByElement:l}=this,f={...cG,...n};let A=l.get(f.srcElement);A||(A=[],l.set(f.srcElement,A));const v={type:e,handler:t,srcElement:f.srcElement,priority:f.priority};i&&(v.once=!0),s&&(v.passive=!0),o.push(v),this._active=this._active||!v.passive;let T=A.length-1;for(;T>=0&&!(A[T].priority>=v.priority);)T--;A.splice(T+1,0,v)}remove(e,t){const{handlers:n,handlersByElement:i}=this;for(let s=n.length-1;s>=0;s--){const o=n[s];if(o.type===e&&o.handler===t){n.splice(s,1);const l=i.get(o.srcElement);l.splice(l.indexOf(o),1),l.length===0&&i.delete(o.srcElement)}}this._active=n.some(s=>!s.passive)}_emit(e,t){const n=this.handlersByElement.get(t);if(n){let i=!1;const s=()=>{e.handled=!0},o=()=>{e.handled=!0,i=!0},l=[];for(let f=0;f<n.length;f++){const{type:A,handler:v,once:T}=n[f];if(v({...e,type:A,stopPropagation:s,stopImmediatePropagation:o}),T&&l.push(n[f]),i)break}for(let f=0;f<l.length;f++){const{type:A,handler:v}=l[f];this.remove(A,v)}}}_normalizeEvent(e){const t=this.eventManager.getElement();return{...e,...aG(e),...lG(e,t),preventDefault:()=>{e.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:t}}};function fG(r){if("recognizer"in r)return r;let e;const t=Array.isArray(r)?[...r]:[r];if(typeof t[0]=="function"){const n=t.shift(),i=t.shift()||{};e=new n(i)}else e=t.shift();return{recognizer:e,recognizeWith:typeof t[0]=="string"?[t[0]]:t[0],requireFailure:typeof t[1]=="string"?[t[1]]:t[1]}}let hG=class{constructor(e=null,t={}){if(this._onBasicInput=n=>{this.manager.emit(n.srcEvent.type,n)},this._onOtherEvent=n=>{this.manager.emit(n.type,n)},this.options={recognizers:[],events:{},touchAction:"compute",tabIndex:0,cssProps:{},...t},this.events=new Map,this.element=e,!!e){this.manager=new zj(e,this.options);for(const n of this.options.recognizers){const{recognizer:i,recognizeWith:s,requireFailure:o}=fG(n);this.manager.add(i),s&&i.recognizeWith(s),o&&i.requireFailure(o)}this.manager.on("hammer.input",this._onBasicInput),this.wheelInput=new Kj(e,this._onOtherEvent,{enable:!1}),this.moveInput=new Zj(e,this._onOtherEvent,{enable:!1}),this.keyInput=new Yj(e,this._onOtherEvent,{enable:!1,tabIndex:t.tabIndex}),this.contextmenuInput=new Qj(e,this._onOtherEvent,{enable:!1}),this.on(this.options.events)}}getElement(){return this.element}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy())}on(e,t,n){this._addEventHandler(e,t,n,!1)}once(e,t,n){this._addEventHandler(e,t,n,!0)}watch(e,t,n){this._addEventHandler(e,t,n,!1,!0)}off(e,t){this._removeEventHandler(e,t)}_toggleRecognizer(e,t){const{manager:n}=this;if(!n)return;const i=n.get(e);i&&(i.set({enable:t}),n.touchAction.update()),this.wheelInput?.enableEventType(e,t),this.moveInput?.enableEventType(e,t),this.keyInput?.enableEventType(e,t),this.contextmenuInput?.enableEventType(e,t)}_addEventHandler(e,t,n,i,s){if(typeof e!="string"){n=t;for(const[A,v]of Object.entries(e))this._addEventHandler(A,v,n,i,s);return}const{manager:o,events:l}=this;if(!o)return;let f=l.get(e);if(!f){const A=this._getRecognizerName(e)||e;f=new uG(this,A),l.set(e,f),o&&o.on(e,f.handleEvent)}
1313f.add(e,t,n,i,s),f.isEmpty()||this._toggleRecognizer(f.recognizerName,!0)}_removeEventHandler(e,t){if(typeof e!="string"){for(const[s,o]of Object.entries(e))this._removeEventHandler(s,o);return}const{events:n}=this,i=n.get(e);if(i&&(i.remove(e,t),i.isEmpty())){const{recognizerName:s}=i;let o=!1;for(const l of n.values())if(l.recognizerName===s&&!l.isEmpty()){o=!0;break}o||this._toggleRecognizer(s,!1)}}_getRecognizerName(e){return this.manager.recognizers.find(t=>t.getEventNames().includes(e))?.options.event}};const Qr={DEFAULT:-1,LNGLAT:1,METER_OFFSETS:2,LNGLAT_OFFSETS:3,CARTESIAN:0};Object.defineProperty(Qr,"IDENTITY",{get:()=>(Zr.deprecated("COORDINATE_SYSTEM.IDENTITY","COORDINATE_SYSTEM.CARTESIAN")(),0)});const ha={WEB_MERCATOR:1,GLOBE:2,WEB_MERCATOR_AUTO_OFFSET:4,IDENTITY:0},Po={common:0,meters:1,pixels:2},R1={click:"onClick",dblclick:"onClick",panstart:"onDragStart",panmove:"onDrag",panend:"onDragEnd"},E3={multipan:[y3,{threshold:10,direction:Ts.Vertical,pointers:2}],pinch:[Wj,{},null,["multipan"]],pan:[y3,{threshold:1},["pinch"],["multipan"]],dblclick:[_3,{event:"dblclick",taps:2}],click:[_3,{event:"click"},null,["dblclick"]]};function dG(r,e){if(r===e)return!0;if(Array.isArray(r)){const t=r.length;if(!e||e.length!==t)return!1;for(let n=0;n<t;n++)if(r[n]!==e[n])return!1;return!0}return!1}function dg(r){let e={},t;return n=>{for(const i in n)if(!dG(n[i],e[i])){t=r(n),e=n;break}return t}}const C3=[0,0,0,0],pG=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0],YO=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1],AG=[0,0,0],QO=[0,0,0],gG=dg(yG);function eD(r,e,t=QO){t.length<3&&(t=[t[0],t[1],0]);let n=t,i,s=!0;switch(e===Qr.LNGLAT_OFFSETS||e===Qr.METER_OFFSETS?i=t:i=r.isGeospatial?[Math.fround(r.longitude),Math.fround(r.latitude),0]:null,r.projectionMode){case ha.WEB_MERCATOR:(e===Qr.LNGLAT||e===Qr.CARTESIAN)&&(i=[0,0,0],s=!1);break;case ha.WEB_MERCATOR_AUTO_OFFSET:e===Qr.LNGLAT?n=i:e===Qr.CARTESIAN&&(n=[Math.fround(r.center[0]),Math.fround(r.center[1]),0],i=r.unprojectPosition(n),n[0]-=t[0],n[1]-=t[1],n[2]-=t[2]);break;case ha.IDENTITY:n=r.position.map(Math.fround),n[2]=n[2]||0;break;case ha.GLOBE:s=!1,i=null;break;default:s=!1}return{geospatialOrigin:i,shaderCoordinateOrigin:n,offsetMode:s}}function mG(r,e,t){const{viewMatrixUncentered:n,projectionMatrix:i}=r;let{viewMatrix:s,viewProjectionMatrix:o}=r,l=C3,f=C3,A=r.cameraPosition;const{geospatialOrigin:v,shaderCoordinateOrigin:T,offsetMode:I}=eD(r,e,t);return I&&(f=r.projectPosition(v||T),A=[A[0]-f[0],A[1]-f[1],A[2]-f[2]],f[3]=1,l=Ep([],f,o),s=n||s,o=Zf([],i,s),o=Zf([],o,pG)),{viewMatrix:s,viewProjectionMatrix:o,projectionCenter:l,originCommon:f,cameraPosCommon:A,shaderCoordinateOrigin:T,geospatialOrigin:v}}function _G({viewport:r,devicePixelRatio:e=1,modelMatrix:t=null,coordinateSystem:n=Qr.DEFAULT,coordinateOrigin:i=QO,autoWrapLongitude:s=!1}){n===Qr.DEFAULT&&(n=r.isGeospatial?Qr.LNGLAT:Qr.CARTESIAN);const o=gG({viewport:r,devicePixelRatio:e,coordinateSystem:n,coordinateOrigin:i});return o.wrapLongitude=s,o.modelMatrix=t||YO,o}function yG({viewport:r,devicePixelRatio:e,coordinateSystem:t,coordinateOrigin:n}){const{projectionCenter:i,viewProjectionMatrix:s,originCommon:o,cameraPosCommon:l,shaderCoordinateOrigin:f,geospatialOrigin:A}=mG(r,t,n),v=r.getDistanceScales(),T=[r.width*e,r.height*e],I=Ep([],[0,0,-r.focalDistance,1],r.projectionMatrix)[3]||1,F={coordinateSystem:t,projectionMode:r.projectionMode,coordinateOrigin:f,commonOrigin:o.slice(0,3),center:i,pseudoMeters:!!r._pseudoMeters,viewportSize:T,devicePixelRatio:e,focalDistance:I,commonUnitsPerMeter:v.unitsPerMeter,commonUnitsPerWorldUnit:v.unitsPerMeter,commonUnitsPerWorldUnit2:AG,scale:r.scale,wrapLongitude:!1,viewProjectionMatrix:s,modelMatrix:YO,cameraPosition:l};if(A){const N=r.getDistanceScales(A);switch(t){case Qr.METER_OFFSETS:F.commonUnitsPerWorldUnit=N.unitsPerMeter,F.commonUnitsPerWorldUnit2=N.unitsPerMeter2;break;case Qr.LNGLAT:case Qr.LNGLAT_OFFSETS:r._pseudoMeters||(F.commonUnitsPerMeter=N.unitsPerMeter),F.commonUnitsPerWorldUnit=N.unitsPerDegree,F.commonUnitsPerWorldUnit2=N.unitsPerDegree2;break;case Qr.CARTESIAN:F.commonUnitsPerWorldUnit=[1,1,N.unitsPerMeter[2]],F.
1313commonUnitsPerWorldUnit2=[0,0,N.unitsPerMeter2[2]];break}}return F}const vG=Object.keys(Qr).map(r=>`const COORDINATE_SYSTEM_${r}: i32 = ${Qr[r]};`).join(""),bG=Object.keys(ha).map(r=>`const PROJECTION_MODE_${r}: i32 = ${ha[r]};`).join(""),xG=Object.keys(Po).map(r=>`const UNIT_${r.toUpperCase()}: i32 = ${Po[r]};`).join(""),wG=`${vG} 1314${bG} 1315${xG} 1316 1317const TILE_SIZE: f32 = 512.0; 1318const PI: f32 = 3.1415926536; 1319const WORLD_SCALE: f32 = TILE_SIZE / (PI * 2.0); 1320const ZERO_64_LOW: vec3<f32> = vec3<f32>(0.0, 0.0, 0.0); 1321const EARTH_RADIUS: f32 = 6370972.0; // meters 1322const GLOBE_RADIUS: f32 = 256.0; 1323 1324// ----------------------------------------------------------------------------- 1325// Uniform block (converted from GLSL uniform block) 1326// ----------------------------------------------------------------------------- 1327struct ProjectUniforms { 1328 wrapLongitude: i32, 1329 coordinateSystem: i32, 1330 commonUnitsPerMeter: vec3<f32>, 1331 projectionMode: i32, 1332 scale: f32, 1333 commonUnitsPerWorldUnit: vec3<f32>, 1334 commonUnitsPerWorldUnit2: vec3<f32>, 1335 center: vec4<f32>, 1336 modelMatrix: mat4x4<f32>, 1337 viewProjectionMatrix: mat4x4<f32>, 1338 viewportSize: vec2<f32>, 1339 devicePixelRatio: f32, 1340 focalDistance: f32, 1341 cameraPosition: vec3<f32>, 1342 coordinateOrigin: vec3<f32>, 1343 commonOrigin: vec3<f32>, 1344 pseudoMeters: i32, 1345}; 1346 1347@group(0) @binding(0) 1348var<uniform> project: ProjectUniforms; 1349 1350// ----------------------------------------------------------------------------- 1351// Geometry data 1352// (In your GLSL code, "geometry" was assumed to be available globally. In WGSL, 1353// you might supply this via vertex attributes or a uniform. Here we define a 1354// uniform struct for demonstration.) 1355// ----------------------------------------------------------------------------- 1356 1357// Structure to carry additional geometry data used by deck.gl filters. 1358struct Geometry { 1359 worldPosition: vec3<f32>, 1360 worldPositionAlt: vec3<f32>, 1361 position: vec4<f32>, 1362 uv: vec2<f32>, 1363 pickingColor: vec3<f32>, 1364}; 1365 1366// @group(0) @binding(1) 1367var<private> geometry: Geometry; 1368`,TG=`${wG} 1369 1370// ----------------------------------------------------------------------------- 1371// Functions 1372// ----------------------------------------------------------------------------- 1373 1374// Returns an adjustment factor for commonUnitsPerMeter 1375fn _project_size_at_latitude(lat: f32) -> f32 { 1376 let y = clamp(lat, -89.9, 89.9); 1377 return 1.0 / cos(radians(y)); 1378} 1379 1380// Overloaded version: scales a value in meters at a given latitude. 1381fn _project_size_at_latitude_m(meters: f32, lat: f32) -> f32 { 1382 return meters * project.commonUnitsPerMeter.z * _project_size_at_latitude(lat); 1383} 1384 1385// Computes a non-linear scale factor based on geometry. 1386// (Note: This function relies on "geometry" being provided.) 1387fn project_size() -> f32 { 1388 if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR && 1389 project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT && 1390 project.pseudoMeters == 0) { 1391 if (geometry.position.w == 0.0) { 1392 return _project_size_at_latitude(geometry.worldPosition.y); 1393 } 1394 let y: f32 = geometry.position.y / TILE_SIZE * 2.0 - 1.0; 1395 let y2 = y * y; 1396 let y4 = y2 * y2; 1397 let y6 = y4 * y2; 1398 return 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6; 1399 } 1400 return 1.0; 1401} 1402 1403// Overloads to scale offsets (meters to world units) 1404fn project_size_float(meters: f32) -> f32 { 1405 return meters * project.commonUnitsPerMeter.z * project_size(); 1406} 1407 1408fn project_size_vec2(meters: vec2<f32>) -> vec2<f32> { 1409 return meters * project.commonUnitsPerMeter.xy * project_size(); 1410} 1411 1412fn project_size_vec3(meters: vec3<f32>) -> vec3<f32> { 1413 return meters * project.commonUnitsPerMeter * project_size(); 1414} 1415 1416fn project_size_vec4(meters: vec4<f32>) -> vec4<f32> { 1417 return vec4<f32>(meters.xyz * project.commonUnitsPerMeter, meters.w); 1418} 1419 1420// Returns a rotation matrix aligning the zâaxis with the given up vector. 1421fn project_get_orientation_matrix(up: vec3<f32>) -> mat3x3<f32> { 1422 let uz = normalize(up); 1423 let ux = select( 1424 vec3<f32>(1.0, 0.0, 0.0), 1425 normalize(vec3<f32>(uz.y, -uz.x, 0.0)), 1426 abs(uz.z) == 1.0 1427 ); 1428 let uy = cross(uz, ux); 1429 return mat3x3<f32>(ux, uy, uz); 1430} 1431 1432// Since WGSL does not support "out" parameters, we return a struct. 1433struct RotationResult { 1434 needsRotation: bool, 1435 transform: mat3x3<f32>, 1436}; 1437 1438fn project_needs_rotation(commonPosition: vec3<f32>) -> RotationResult { 1439 if (project.projectionMode == PROJECTION_MODE_GLOBE) { 1440 return RotationResult(true, project_get_orientation_matrix(commonPosition)); 1441 } else { 1442 return RotationResult(false, mat3x3<f32>()); // identity alternative if needed 1443 }; 1444} 1445 1446// Projects a normal vector from the current coordinate system to world space. 1447fn project_normal(vector: vec3<f32>) -> vec3<f32> { 1448 let normal_modelspace = project.modelMatrix * vec4<f32>(vector, 0.0); 1449 var n = normalize(normal_modelspace.xyz * project.commonUnitsPerMeter); 1450 let rotResult = project_needs_rotation(geometry.position.xyz); 1451 if (rotResult.needsRotation) { 1452 n = rotResult.transform * n; 1453 } 1454 return n; 1455} 1456 1457// Applies a scale offset based on y-offset (dy) 1458fn project_offset_(offset: vec4<f32>) -> vec4<f32> { 1459 let dy: f32 = offset.y; 1460 let commonUnitsPerWorldUnit = project.commonUnitsPerWorldUnit + project.commonUnitsPerWorldUnit2 * dy; 1461 return vec4<f32>(offset.xyz * commonUnitsPerWorldUnit, offset.w); 1462} 1463 1464// Projects lng/lat coordinates to a unit tile [0,1] 1465fn project_mercator_(lnglat: vec2<f32>) -> vec2<f32> { 1466 var x = lnglat.x; 1467 if (project.wrapLongitude != 0) { 1468 x = ((x + 180.0) % 360.0) - 180.0; 1469 } 1470 let y = clamp(lnglat.y, -89.9, 89.9); 1471 return vec2<f32>( 1472 radians(x) + PI, 1473 PI + log(tan(PI * 0.25 + radians(y) * 0.5)) 1474 ) * WORLD_SCALE; 1475} 1476 1477// Projects lng/lat/z coordinates for a globe projection. 1478fn project_globe_(lnglatz: vec3<f32>) -> vec3<f32> { 1479 let lambda = radians(lnglatz.x); 1480 let phi = radians(lnglatz.y); 1481 let cosPhi = cos(phi); 1482 let D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS; 1483 return vec3<f32>( 1484 sin(lambda) * cosPhi, 1485 -cos(lambda) * cosPhi, 1486 sin(phi) 1487 ) * D; 1488} 1489 1490// Projects positions (with an optional 64-bit low part) from the input 1491// coordinate system to the common space. 1492fn project_position_vec4_f64(position: vec4<f32>, position64Low: vec3<f32>) -> vec4<f32> { 1493 var position_world = project.modelMatrix * position; 1494 1495 // Work around for a Mac+NVIDIA bug: 1496 if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR) { 1497 if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) { 1498 return vec4<f32>( 1499 project_mercator_(position_world.xy), 1500 _project_size_at_latitude_m(position_world.z, position_world.y), 1501 position_world.w 1502 ); 1503 } 1504 if (project.coordinateSystem == COORDINATE_SYSTEM_CARTESIAN) {
1505 position_world = vec4f(position_world.xyz + project.coordinateOrigin, position_world.w); 1506 } 1507 } 1508 if (project.projectionMode == PROJECTION_MODE_GLOBE) { 1509 if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) { 1510 return vec4<f32>( 1511 project_globe_(position_world.xyz), 1512 position_world.w 1513 ); 1514 } 1515 } 1516 if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) { 1517 if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) { 1518 if (abs(position_world.y - project.coordinateOrigin.y) > 0.25) { 1519 return vec4<f32>( 1520 project_mercator_(position_world.xy) - project.commonOrigin.xy, 1521 project_size_float(position_world.z), 1522 position_world.w 1523 ); 1524 } 1525 } 1526 } 1527 if (project.projectionMode == PROJECTION_MODE_IDENTITY || 1528 (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET && 1529 (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT || 1530 project.coordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) { 1531 position_world = vec4f(position_world.xyz - project.coordinateOrigin, position_world.w); 1532 } 1533 1534 return project_offset_(position_world) + 1535 project_offset_(project.modelMatrix * vec4<f32>(position64Low, 0.0)); 1536} 1537 1538// Overloaded versions for different input types. 1539fn project_position_vec4_f32(position: vec4<f32>) -> vec4<f32> { 1540 return project_position_vec4_f64(position, ZERO_64_LOW); 1541} 1542 1543fn project_position_vec3_f64(position: vec3<f32>, position64Low: vec3<f32>) -> vec3<f32> { 1544 let projected_position = project_position_vec4_f64(vec4<f32>(position, 1.0), position64Low); 1545 return projected_position.xyz; 1546} 1547 1548fn project_position_vec3_f32(position: vec3<f32>) -> vec3<f32> { 1549 let projected_position = project_position_vec4_f64(vec4<f32>(position, 1.0), ZERO_64_LOW); 1550 return projected_position.xyz; 1551} 1552 1553fn project_position_vec2_f32(position: vec2<f32>) -> vec2<f32> { 1554 let projected_position = project_position_vec4_f64(vec4<f32>(position, 0.0, 1.0), ZERO_64_LOW); 1555 return projected_position.xy; 1556} 1557 1558// Transforms a common space position to clip space. 1559fn project_common_position_to_clipspace_with_projection(position: vec4<f32>, viewProjectionMatrix: mat4x4<f32>, center: vec4<f32>) -> vec4<f32> { 1560 return viewProjectionMatrix * position + center; 1561} 1562 1563// Uses the project viewProjectionMatrix and center. 1564fn project_common_position_to_clipspace(position: vec4<f32>) -> vec4<f32> { 1565 return project_common_position_to_clipspace_with_projection(position, project.viewProjectionMatrix, project.center); 1566} 1567 1568// Returns a clip space offset corresponding to a given number of screen pixels. 1569fn project_pixel_size_to_clipspace(pixels: vec2<f32>) -> vec2<f32> { 1570 let offset = pixels / project.viewportSize * project.devicePixelRatio * 2.0; 1571 return offset * project.focalDistance; 1572} 1573 1574fn project_meter_size_to_pixel(meters: f32) -> f32 { 1575 return project_size_float(meters) * project.scale; 1576} 1577 1578fn project_unit_size_to_pixel(size: f32, unit: i32) -> f32 { 1579 if (unit == UNIT_METERS) { 1580 return project_meter_size_to_pixel(size); 1581 } else if (unit == UNIT_COMMON) { 1582 return size * project.scale; 1583 } 1584 // UNIT_PIXELS: no scaling applied. 1585 return size; 1586} 1587 1588fn project_pixel_size_float(pixels: f32) -> f32 { 1589 return pixels / project.scale; 1590} 1591 1592fn project_pixel_size_vec2(pixels: vec2<f32>) -> vec2<f32> { 1593 return pixels / project.scale; 1594} 1595`,EG=Object.keys(Qr).map(r=>`const int COORDINATE_SYSTEM_${r} = ${Qr[r]};`).join(""),CG=Object.keys(ha).map(r=>`const int PROJECTION_MODE_${r} = ${ha[r]};`).join(""),SG=Object.keys(Po).map(r=>`const int UNIT_${r.toUpperCase()} = ${Po[r]};`).join(""),IG=`${EG} 1596${CG} 1597${SG}
vendor: 5,730 bytes, lines 1598-1774
1598uniform projectUniforms { 1599bool wrapLongitude; 1600int coordinateSystem; 1601vec3 commonUnitsPerMeter; 1602int projectionMode; 1603float scale; 1604vec3 commonUnitsPerWorldUnit; 1605vec3 commonUnitsPerWorldUnit2; 1606vec4 center; 1607mat4 modelMatrix; 1608mat4 viewProjectionMatrix; 1609vec2 viewportSize; 1610float devicePixelRatio; 1611float focalDistance; 1612vec3 cameraPosition; 1613vec3 coordinateOrigin; 1614vec3 commonOrigin; 1615bool pseudoMeters; 1616} project; 1617const float TILE_SIZE = 512.0; 1618const float PI = 3.1415926536; 1619const float WORLD_SCALE = TILE_SIZE / (PI * 2.0); 1620const vec3 ZERO_64_LOW = vec3(0.0); 1621const float EARTH_RADIUS = 6370972.0; 1622const float GLOBE_RADIUS = 256.0; 1623float project_size_at_latitude(float lat) { 1624float y = clamp(lat, -89.9, 89.9); 1625return 1.0 / cos(radians(y)); 1626} 1627float project_size() { 1628if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR && 1629project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT && 1630project.pseudoMeters == false) { 1631if (geometry.position.w == 0.0) { 1632return project_size_at_latitude(geometry.worldPosition.y); 1633} 1634float y = geometry.position.y / TILE_SIZE * 2.0 - 1.0; 1635float y2 = y * y; 1636float y4 = y2 * y2; 1637float y6 = y4 * y2; 1638return 1.0 + 4.9348 * y2 + 4.0587 * y4 + 1.5642 * y6; 1639} 1640return 1.0; 1641} 1642float project_size_at_latitude(float meters, float lat) { 1643return meters * project.commonUnitsPerMeter.z * project_size_at_latitude(lat); 1644} 1645float project_size(float meters) { 1646return meters * project.commonUnitsPerMeter.z * project_size(); 1647} 1648vec2 project_size(vec2 meters) { 1649return meters * project.commonUnitsPerMeter.xy * project_size(); 1650} 1651vec3 project_size(vec3 meters) { 1652return meters * project.commonUnitsPerMeter * project_size(); 1653} 1654vec4 project_size(vec4 meters) { 1655return vec4(meters.xyz * project.commonUnitsPerMeter, meters.w); 1656} 1657mat3 project_get_orientation_matrix(vec3 up) { 1658vec3 uz = normalize(up); 1659vec3 ux = abs(uz.z) == 1.0 ? vec3(1.0, 0.0, 0.0) : normalize(vec3(uz.y, -uz.x, 0)); 1660vec3 uy = cross(uz, ux); 1661return mat3(ux, uy, uz); 1662} 1663bool project_needs_rotation(vec3 commonPosition, out mat3 transform) { 1664if (project.projectionMode == PROJECTION_MODE_GLOBE) { 1665transform = project_get_orientation_matrix(commonPosition); 1666return true; 1667} 1668return false; 1669} 1670vec3 project_normal(vec3 vector) { 1671vec4 normal_modelspace = project.modelMatrix * vec4(vector, 0.0); 1672vec3 n = normalize(normal_modelspace.xyz * project.commonUnitsPerMeter); 1673mat3 rotation; 1674if (project_needs_rotation(geometry.position.xyz, rotation)) { 1675n = rotation * n; 1676} 1677return n; 1678} 1679vec4 project_offset_(vec4 offset) { 1680float dy = offset.y; 1681vec3 commonUnitsPerWorldUnit = project.commonUnitsPerWorldUnit + project.commonUnitsPerWorldUnit2 * dy; 1682return vec4(offset.xyz * commonUnitsPerWorldUnit, offset.w); 1683} 1684vec2 project_mercator_(vec2 lnglat) { 1685float x = lnglat.x; 1686if (project.wrapLongitude) { 1687x = mod(x + 180., 360.0) - 180.; 1688} 1689float y = clamp(lnglat.y, -89.9, 89.9); 1690return vec2( 1691radians(x) + PI, 1692PI + log(tan_fp32(PI * 0.25 + radians(y) * 0.5)) 1693) * WORLD_SCALE; 1694} 1695vec3 project_globe_(vec3 lnglatz) { 1696float lambda = radians(lnglatz.x); 1697float phi = radians(lnglatz.y); 1698float cosPhi = cos(phi); 1699float D = (lnglatz.z / EARTH_RADIUS + 1.0) * GLOBE_RADIUS; 1700return vec3( 1701sin(lambda) * cosPhi, 1702-cos(lambda) * cosPhi, 1703sin(phi) 1704) * D; 1705} 1706vec4 project_position(vec4 position, vec3 position64Low) { 1707vec4 position_world = project.modelMatrix * position; 1708if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR) { 1709if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) { 1710return vec4( 1711project_mercator_(position_world.xy), 1712project_size_at_latitude(position_world.z, position_world.y), 1713position_world.w 1714); 1715} 1716if (project.coordinateSystem == COORDINATE_SYSTEM_CARTESIAN) { 1717position_world.xyz += project.coordinateOrigin; 1718} 1719} 1720if (project.projectionMode == PROJECTION_MODE_GLOBE) { 1721if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) { 1722return vec4( 1723project_globe_(position_world.xyz), 1724position_world.w 1725); 1726} 1727} 1728if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) { 1729if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) { 1730if (abs(position_world.y - project.coordinateOrigin.y) > 0.25) { 1731return vec4( 1732project_mercator_(position_world.xy) - project.commonOrigin.xy, 1733project_size(position_world.z), 1734position_world.w 1735); 1736} 1737} 1738} 1739if (project.projectionMode == PROJECTION_MODE_IDENTITY || 1740(project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET && 1741(project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT || 1742project.coordinateSystem == COORDINATE_SYSTEM_CARTESIAN))) { 1743position_world.xyz -= project.coordinateOrigin; 1744} 1745return project_offset_(position_world) + project_offset_(project.modelMatrix * vec4(position64Low, 0.0)); 1746} 1747vec4 project_position(vec4 position) { 1748return project_position(position, ZERO_64_LOW); 1749} 1750vec3 project_position(vec3 position, vec3 position64Low) { 1751vec4 projected_position = project_position(vec4(position, 1.0), position64Low); 1752return projected_position.xyz; 1753} 1754vec3 project_position(vec3 position) { 1755vec4 projected_position = project_position(vec4(position, 1.0), ZERO_64_LOW); 1756return projected_position.xyz; 1757} 1758vec2 project_position(vec2 position) { 1759vec4 projected_position = project_position(vec4(position, 0.0, 1.0), ZERO_64_LOW); 1760return projected_position.xy; 1761} 1762vec4 project_common_position_to_clipspace(vec4 position, mat4 viewProjectionMatrix, vec4 center) { 1763return viewProjectionMatrix * position + center; 1764} 1765vec4 project_common_position_to_clipspace(vec4 position) { 1766return project_common_position_to_clipspace(position, project.viewProjectionMatrix, project.center); 1767} 1768vec2 project_pixel_size_to_clipspace(vec2 pixels) { 1769vec2 offset = pixels / project.viewportSize * project.devicePixelRatio * 2.0; 1770return offset * project.focalDistance; 1771} 1772float project_size_to_pixel(float meters) { 1773return project_size(meters) * project.scale; 1774}
1775float project_size_to_pixel(float size, int unit) { 1776if (unit == UNIT_METERS) return project_size_to_pixel(size); 1777if (unit == UNIT_COMMON) return size * project.scale; 1778return size; 1779} 1780float project_pixel_size(float pixels) { 1781return pixels / project.scale; 1782} 1783vec2 project_pixel_size(vec2 pixels) { 1784return pixels / project.scale; 1785} 1786`,BG={};function PG(r=BG){return"viewport"in r?_G(r):{}}const O_={name:"project",dependencies:[QV,WO],source:TG,vs:IG,getUniforms:PG,uniformTypes:{wrapLongitude:"f32",coordinateSystem:"i32",commonUnitsPerMeter:"vec3<f32>",projectionMode:"i32",scale:"f32",commonUnitsPerWorldUnit:"vec3<f32>",commonUnitsPerWorldUnit2:"vec3<f32>",center:"vec4<f32>",modelMatrix:"mat4x4<f32>",viewProjectionMatrix:"mat4x4<f32>",viewportSize:"vec2<f32>",devicePixelRatio:"f32",focalDistance:"f32",cameraPosition:"vec3<f32>",coordinateOrigin:"vec3<f32>",commonOrigin:"vec3<f32>",pseudoMeters:"f32"}},MG=`// Define a structure to hold both the clip-space position and the common position. 1787struct ProjectResult { 1788 clipPosition: vec4<f32>, 1789 commonPosition: vec4<f32>, 1790}; 1791 1792// This function mimics the GLSL version with the 'out' parameter by returning both values. 1793fn project_position_to_clipspace_and_commonspace( 1794 position: vec3<f32>, 1795 position64Low: vec3<f32>, 1796 offset: vec3<f32> 1797) -> ProjectResult { 1798 // Compute the projected position. 1799 let projectedPosition: vec3<f32> = project_position_vec3_f64(position, position64Low); 1800 1801 // Start with the provided offset. 1802 var finalOffset: vec3<f32> = offset; 1803 1804 // Get whether a rotation is needed and the rotation matrix. 1805 let rotationResult = project_needs_rotation(projectedPosition); 1806 1807 // If rotation is needed, update the offset. 1808 if (rotationResult.needsRotation) { 1809 finalOffset = rotationResult.transform * offset; 1810 } 1811 1812 // Compute the common position. 1813 let commonPosition: vec4<f32> = vec4<f32>(projectedPosition + finalOffset, 1.0); 1814 1815 // Convert to clip-space. 1816 let clipPosition: vec4<f32> = project_common_position_to_clipspace(commonPosition); 1817 1818 return ProjectResult(clipPosition, commonPosition); 1819} 1820 1821// A convenience overload that returns only the clip-space position. 1822fn project_position_to_clipspace( 1823 position: vec3<f32>, 1824 position64Low: vec3<f32>, 1825 offset: vec3<f32> 1826) -> vec4<f32> { 1827 return project_position_to_clipspace_and_commonspace(position, position64Low, offset).clipPosition; 1828} 1829`,RG=`vec4 project_position_to_clipspace( 1830 vec3 position, vec3 position64Low, vec3 offset, out vec4 commonPosition 1831) { 1832 vec3 projectedPosition = project_position(position, position64Low); 1833 mat3 rotation; 1834 if (project_needs_rotation(projectedPosition, rotation)) { 1835 // offset is specified as ENU 1836 // when in globe projection, rotate offset so that the ground alighs with the surface of the globe 1837 offset = rotation * offset; 1838 } 1839 commonPosition = vec4(projectedPosition + offset, 1.0); 1840 return project_common_position_to_clipspace(commonPosition); 1841} 1842 1843vec4 project_position_to_clipspace( 1844 vec3 position, vec3 position64Low, vec3 offset 1845) { 1846 vec4 commonPosition; 1847 return project_position_to_clipspace(position, position64Low, offset, commonPosition); 1848} 1849`,Ls={name:"project32",dependencies:[O_],source:MG,vs:RG};function OG(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function Yd(r,e){const t=Ep([],e,r);return wx(t,t,1/t[3]),t}function S3(r,e){const t=r%e;return t<0?e+t:t}function O1(r,e,t){return r<e?e:r>t?t:r}function DG(r){return Math.log(r)*Math.LOG2E}const Cx=Math.log2||DG;function Zc(r,e){if(!r)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}const _l=Math.PI,tD=_l/4,Va=_l/180,D1=180/_l,up=512,qm=4003e4,Nd=85.051129,FG=1.5;function LG(r){return Cx(r)}function Yc(r){const[e,t]=r;Zc(Number.isFinite(e)),Zc(Number.isFinite(t)&&t>=-90&&t<=90,"invalid latitude");const n=e*Va,i=t*Va,s=up*(n+_l)/(2*_l),o=up*(_l+Math.log(Math.tan(tD+i*.5)))/(2*_l);return[s,o]}function uc(r){const[e,t]=r,n=e/up*(2*_l)-_l,i=2*(Math.atan(Math.exp(t/up*(2*_l)-_l))-tD);return[n*D1,i*D1]}function kG(r){const{latitude:e}=r;Zc(Number.isFinite(e));const t=Math.cos(e*Va);return LG(qm*t)-9}function bv(r){const e=Math.cos(r*Va);return up/qm/e}function F1(r){const{latitude:e,longitude:t,highPrecision:n=!1}=r;Zc(Number.isFinite(e)&&Number.isFinite(t));const i=up,s=Math.cos(e*Va),o=i/360,l=o/s,f=i/qm/s,A={unitsPerMeter:[f,f,f],metersPerUnit:[1/f,1/f,1/f],unitsPerDegree:[o,l,f],degreesPerUnit:[1/o,1/l,1/f]};if(n){const v=Va*Math.tan(e*Va)/s,T=o*v/2,I=i/qm*v,F=I/l*f;A.unitsPerDegree2=[0,T,I],A.unitsPerMeter2=[F,0,F]}return A}function rD(r,e){const[t,n,i]=r,[s,o,l]=e,{unitsPerMeter:f,unitsPerMeter2:A}=F1({longitude:t,latitude:n,highPrecision:!0}),v=Yc(r);v[0]+=s*(f[0]+A[0]*o),v[1]+=o*(f[1]+A[1]*o);const T=uc(v),I=(i||0)+(l||0);return Number.isFinite(i)||Number.isFinite(l)?[T[0],T[1],I]:T}function NG(r){const{height:e,pitch:t,bearing:n,altitude:i,scale:s,center:o}=r,l=OG();$m(l,l,[0,0,-i]),OO(l,l,-t*Va),DO(l,l,n*Va);const f=s/e;return xx(l,l,[f,f,f]),o&&$m(l,l,j7([],o)),l}function UG(r){const{width:e,height:t,altitude:n,pitch:i=0,offset:s,center:o,scale:l,nearZMultiplier:f=1,farZMultiplier:A=1}=r;let{fovy:v=eg(FG)}=r;n!==void 0&&(v=eg(n));const T=v*Va,I=i*Va,F=Sx(v);let N=F;o&&(N+=o[2]*l/Math.cos(I)/t);const U=T*(.5+(s?s[1]:0)/t),$=Math.sin(U)*N/Math.sin(O1(Math.PI/2-I-U,.01,Math.PI-.01)),V=Math.sin(I)*$+N,G=N*10,X=Math.min(V*A,G);return{fov:T,aspect:e/t,focalDistance:F,near:f,far:X}}function eg(r){return 2*Math.atan(.5/r)*D1}function Sx(r){return .5/Math.tan(.5*r*Va)}function nD(r,e){const[t,n,i=0]=r;return Zc(Number.isFinite(t)&&Number.isFinite(n)&&Number.isFinite(i)),Yd(e,[t,n,i,1])}function Ix(r,e,t=0){const[n,i,s]=r;if(Zc(Number.isFinite(n)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(s))return Yd(e,[n,i,s,1]);const o=Yd(e,[n,i,0,1]),l=Yd(e,[n,i,1,1]),f=o[2],A=l[2],v=f===A?0:((t||0)-f)/(A-f);return vO([],o,l,v)}function zG(r){const{width:e,height:t,bounds:n,minExtent:i=0,maxZoom:s=24,offset:o=[0,0]}
1849=r,[[l,f],[A,v]]=n,T=VG(r.padding),I=Yc([l,O1(v,-Nd,Nd)]),F=Yc([A,O1(f,-Nd,Nd)]),N=[Math.max(Math.abs(F[0]-I[0]),i),Math.max(Math.abs(F[1]-I[1]),i)],U=[e-T.left-T.right-Math.abs(o[0])*2,t-T.top-T.bottom-Math.abs(o[1])*2];Zc(U[0]>0&&U[1]>0);const $=U[0]/N[0],V=U[1]/N[1],G=(T.right-T.left)/2/$,X=(T.top-T.bottom)/2/V,ue=[(F[0]+I[0])/2+G,(F[1]+I[1])/2+X],K=uc(ue),se=Math.min(s,Cx(Math.abs(Math.min($,V))));return Zc(Number.isFinite(se)),{longitude:K[0],latitude:K[1],zoom:se}}function VG(r=0){return typeof r=="number"?{top:r,bottom:r,left:r,right:r}:(Zc(Number.isFinite(r.top)&&Number.isFinite(r.bottom)&&Number.isFinite(r.left)&&Number.isFinite(r.right)),r)}const I3=Math.PI/180;function jG(r,e=0){const{width:t,height:n,unproject:i}=r,s={targetZ:e},o=i([0,n],s),l=i([t,n],s);let f,A;const v=r.fovy?.5*r.fovy*I3:Math.atan(.5/r.altitude),T=(90-r.pitch)*I3;return v>T-.01?(f=B3(r,0,e),A=B3(r,t,e)):(f=i([0,0],s),A=i([t,0],s)),[o,l,A,f]}function B3(r,e,t){const{pixelUnprojectionMatrix:n}=r,i=Yd(n,[e,0,1,1]),s=Yd(n,[e,r.height,1,1]),l=(t*r.distanceScales.unitsPerMeter[2]-i[2])/(s[2]-i[2]),f=vO([],i,s,l),A=uc(f);return A.push(t),A}const P3=512;function GG(r){const{width:e,height:t,pitch:n=0}=r;let{longitude:i,latitude:s,zoom:o,bearing:l=0}=r;(i<-180||i>180)&&(i=S3(i+180,360)-180),(l<-180||l>180)&&(l=S3(l+180,360)-180);const f=Cx(t/P3);if(o<=f)o=f,s=0;else{const A=t/2/Math.pow(2,o),v=uc([0,A])[1];if(s<v)s=v;else{const T=uc([0,P3-A])[1];s>T&&(s=T)}}return{width:e,height:t,longitude:i,latitude:s,zoom:o,pitch:n,bearing:l}}const iD=` 1850uniform shadowUniforms { 1851 bool drawShadowMap; 1852 bool useShadowMap; 1853 vec4 color; 1854 highp int lightId; 1855 float lightCount; 1856 mat4 viewProjectionMatrix0; 1857 mat4 viewProjectionMatrix1; 1858 vec4 projectCenter0; 1859 vec4 projectCenter1; 1860} shadow; 1861`,HG=` 1862const int max_lights = 2; 1863 1864out vec3 shadow_vPosition[max_lights]; 1865 1866vec4 shadow_setVertexPosition(vec4 position_commonspace) { 1867 mat4 viewProjectionMatrices[max_lights]; 1868 viewProjectionMatrices[0] = shadow.viewProjectionMatrix0; 1869 viewProjectionMatrices[1] = shadow.viewProjectionMatrix1; 1870 vec4 projectCenters[max_lights]; 1871 projectCenters[0] = shadow.projectCenter0; 1872 projectCenters[1] = shadow.projectCenter1; 1873 1874 if (shadow.drawShadowMap) { 1875 return project_common_position_to_clipspace(position_commonspace, viewProjectionMatrices[shadow.lightId], projectCenters[shadow.lightId]); 1876 } 1877 if (shadow.useShadowMap) { 1878 for (int i = 0; i < max_lights; i++) { 1879 if(i < int(shadow.lightCount)) { 1880 vec4 shadowMap_position = project_common_position_to_clipspace(position_commonspace, viewProjectionMatrices[i], projectCenters[i]); 1881 shadow_vPosition[i] = (shadowMap_position.xyz / shadowMap_position.w + 1.0) / 2.0; 1882 } 1883 } 1884 } 1885 return gl_Position; 1886} 1887`,WG=` 1888${iD} 1889${HG} 1890`,$G=` 1891const int max_lights = 2; 1892uniform sampler2D shadow_uShadowMap0; 1893uniform sampler2D shadow_uShadowMap1; 1894 1895in vec3 shadow_vPosition[max_lights]; 1896 1897const vec4 bitPackShift = vec4(1.0, 255.0, 65025.0, 16581375.0); 1898const vec4 bitUnpackShift = 1.0 / bitPackShift; 1899const vec4 bitMask = vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); 1900 1901float shadow_getShadowWeight(vec3 position, sampler2D shadowMap) { 1902 vec4 rgbaDepth = texture(shadowMap, position.xy); 1903 1904 float z = dot(rgbaDepth, bitUnpackShift); 1905 return smoothstep(0.001, 0.01, position.z - z); 1906} 1907 1908vec4 shadow_filterShadowColor(vec4 color) { 1909 if (shadow.drawShadowMap) { 1910 vec4 rgbaDepth = fract(gl_FragCoord.z * bitPackShift); 1911 rgbaDepth -= rgbaDepth.gbaa * bitMask; 1912 return rgbaDepth; 1913 } 1914 if (shadow.useShadowMap) { 1915 float shadowAlpha = 0.0; 1916 shadowAlpha += shadow_getShadowWeight(shadow_vPosition[0], shadow_uShadowMap0); 1917 if(shadow.lightCount > 1.0) { 1918 shadowAlpha += shadow_getShadowWeight(shadow_vPosition[1], shadow_uShadowMap1); 1919 } 1920 shadowAlpha *= shadow.color.a / shadow.lightCount; 1921 float blendedAlpha = shadowAlpha + color.a * (1.0 - shadowAlpha); 1922 1923 return vec4( 1924 mix(color.rgb, shadow.color.rgb, shadowAlpha / blendedAlpha), 1925 blendedAlpha 1926 ); 1927 } 1928 return color; 1929} 1930`,XG=` 1931${iD} 1932${$G} 1933`,qG=dg(QG),JG=dg(eH),KG=[0,0,0,1],ZG=[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0];function YG(r,e){const[t,n,i]=r,s=Ix([t,n,i],e);return Number.isFinite(i)?s:[s[0],s[1],0]}function QG({viewport:r,center:e}){return new vn(r.viewProjectionMatrix).invert().transform(e)}function eH({viewport:r,shadowMatrices:e}){const t=[],n=r.pixelUnprojectionMatrix,i=r.isGeospatial?void 0:1,s=[[0,0,i],[r.width,0,i],[0,r.height,i],[r.width,r.height,i],[0,0,-1],[r.width,0,-1],[0,r.height,-1],[r.width,r.height,-1]].map(o=>YG(o,n));for(const o of e){const l=o.clone().translate(new dt(r.center).negate()),f=s.map(v
1933=>l.transform(v)),A=new vn().ortho({left:Math.min(...f.map(v=>v[0])),right:Math.max(...f.map(v=>v[0])),bottom:Math.min(...f.map(v=>v[1])),top:Math.max(...f.map(v=>v[1])),near:Math.min(...f.map(v=>-v[2])),far:Math.max(...f.map(v=>-v[2]))});t.push(A.multiplyRight(o))}return t}function tH(r){const{shadowEnabled:e=!0,project:t}=r;if(!e||!t||!r.shadowMatrices||!r.shadowMatrices.length)return{drawShadowMap:!1,useShadowMap:!1,shadow_uShadowMap0:r.dummyShadowMap,shadow_uShadowMap1:r.dummyShadowMap};const n=O_.getUniforms(t),i=qG({viewport:t.viewport,center:n.center}),s=[],o=JG({shadowMatrices:r.shadowMatrices,viewport:t.viewport}).slice();for(let f=0;f<r.shadowMatrices.length;f++){const A=o[f],v=A.clone().translate(new dt(t.viewport.center).negate());n.coordinateSystem===Qr.LNGLAT&&n.projectionMode===ha.WEB_MERCATOR?(o[f]=v,s[f]=i):(o[f]=A.clone().multiplyRight(ZG),s[f]=v.transform(i))}const l={drawShadowMap:!!r.drawToShadowMap,useShadowMap:r.shadowMaps?r.shadowMaps.length>0:!1,color:r.shadowColor||KG,lightId:r.shadowLightId||0,lightCount:r.shadowMatrices.length,shadow_uShadowMap0:r.dummyShadowMap,shadow_uShadowMap1:r.dummyShadowMap};for(let f=0;f<o.length;f++)l[`viewProjectionMatrix${f}`]=o[f],l[`projectCenter${f}`]=s[f];for(let f=0;f<2;f++)l[`shadow_uShadowMap${f}`]=r.shadowMaps&&r.shadowMaps[f]||r.dummyShadowMap;return l}const M3={name:"shadow",dependencies:[O_],vs:WG,fs:XG,inject:{"vs:DECKGL_FILTER_GL_POSITION":` 1934 position = shadow_setVertexPosition(geometry.position); 1935 `,"fs:DECKGL_FILTER_COLOR":` 1936 color = shadow_filterShadowColor(color); 1937 `},getUniforms:tH,uniformTypes:{drawShadowMap:"f32",useShadowMap:"f32",color:"vec4<f32>",lightId:"i32",lightCount:"f32",viewProjectionMatrix0:"mat4x4<f32>",viewProjectionMatrix1:"mat4x4<f32>",projectCenter0:"vec4<f32>",projectCenter1:"vec4<f32>"}},ma={...a3,defaultUniforms:{...a3.defaultUniforms,useFloatColors:!1},inject:{"vs:DECKGL_FILTER_GL_POSITION":` 1938 // for picking depth values 1939 picking_setPickingAttribute(position.z / position.w); 1940 `,"vs:DECKGL_FILTER_COLOR":` 1941 picking_setPickingColor(geometry.pickingColor); 1942 `,"fs:DECKGL_FILTER_COLOR":{order:99,injection:` 1943 // use highlight color if this fragment belongs to the selected object. 1944 color = picking_filterHighlightColor(color); 1945 1946 // use picking color if rendering to picking FBO. 1947 color = picking_filterPickingColor(color); 1948 `}}},rH=[WO],nH=["vs:DECKGL_FILTER_SIZE(inout vec3 size, VertexGeometry geometry)","vs:DECKGL_FILTER_GL_POSITION(inout vec4 position, VertexGeometry geometry)","vs:DECKGL_FILTER_COLOR(inout vec4 color, VertexGeometry geometry)","fs:DECKGL_FILTER_COLOR(inout vec4 color, FragmentGeometry geometry)"],iH=[];function sH(r){const e=Wf.getDefaultShaderAssembler();for(const n of rH)e.addDefaultModule(n);const t=r==="glsl"?nH:iH;for(const n of t)e.addShaderHook(n);return e}const oH=[255,255,255],aH=1;let lH=0;class cH{constructor(e={}){this.type="ambient";const{color:t=oH}=e,{intensity:n=aH}=e;this.id=e.id||`ambient-${lH++}`,this.color=t,this.intensity=n}}const uH=[255,255,255],fH=1,hH=[0,0,-1];let dH=0;class R3{constructor(e={}){this.type="directional";const{color:t=uH}=e,{intensity:n=fH}=e,{direction:i=hH}=e,{_shadow:s=!1}=e;this.id=e.id||`directional-${dH++}`,this.color=t,this.intensity=n,this.type="directional",this.direction=new dt(i).normalize().toArray(),this.shadow=s}getProjectedLight(e){return this}}class sD{constructor(e,t={id:"pass"}){const{id:n}=t;this.id=n,this.device=e,this.props={...t}}setProps(e){Object.assign(this.props,e)}render(e){}cleanup(){}}class D_ extends sD{constructor(){super(...arguments),this._lastRenderIndex=-1}render(e){const[t,n]=this.device.canvasContext.getDrawingBufferSize(),i=e.clearCanvas??!0,s=e.clearColor??(i?[0,0,0,0]:!1),o=i?1:!1,l=i?0:!1,f=e.colorMask??15,A={viewport:[0,0,t,n]};e.colorMask&&(A.colorMask=f),e.scissorRect&&(A.scissorRect=e.scissorRect);const v=this.device.beginRenderPass({framebuffer:e.target,parameters:A,clearColor:s,clearDepth:o,clearStencil:l});try{return this._drawLayers(v,e)}finally{v.end(),this.device.submit()}}_drawLayers(e,t){const{target:n,shaderModuleProps:i,viewports:s,views:o,onViewportActive:l,clearStack:f=!0}=t;t.pass=t.pass||"unknown",f&&(this._lastRenderIndex=-1);const A=[];for(const v of s){const T=o&&o[v.id];l?.(v);const I=this._getDrawLayerParams(v,t),F=v.subViewports||[v];for(const N of F){const U=this._drawLayersInViewport(e,{target:n,shaderModuleProps:i,viewport:N,view:T,pass:t.pass,layers:t.layers},I);A.push(U)}}return A}_getDrawLayerParams(e,{layers:t,pass:n,isPicking:i=!1,layerFilter:s,cullRect:o,effects:l,shaderModuleProps:f},A=!1){const v=[],T=oD(this._lastRenderIndex+1),I={layer:t[0],viewport:e,isPicking:i,renderPass:n,cullRect:o},F={};for(let N=0;N<t.length;N++){const U=t[N],$=this._shouldDrawLayer(U,I,s,F),V={shouldDrawLayer:$};$&&!A&&(V.shouldDrawLayer=!0,V.layerRenderIndex=T(U,$),V.shaderModuleProps=this._getShaderModuleProps(U,l,n,f),V.layerParameters={...U.context.deck?.props.parameters,...this.getLayerParameters(U,N,e)}),v[N]=V}return v}_drawLayersInViewport(e,{layers:t,shaderModuleProps:n,pass:i,target:s,viewport:o,view:l},f){const A=pH(this.device,{shaderModuleProps:n,target:s,viewport:o});if(l&&l.props.clear){const T=l.props.clear===!0?{color:!0,depth:!0}:l.props.clear;this.device.beginRenderPass({framebuffer:s,parameters:{viewport:A,scissorRect:A},clearColor:T.color?[0,0,0,0]:!1,clearDepth:T.depth?1:!1}).end()}const v={totalCount:t.length,visibleCount:0,compositeCount:0,pickableCount:0};e.setParameters({viewport:A});for(let T=0;T<t.length;T++){const I=t[T],F=f[T],{shouldDrawLayer:N}=F;if(N&&I.props.pickable&&v.pickableCount++,I.isComposite&&v.compositeCount++,I.isDrawable&&F.shouldDrawLayer){const{layerRenderIndex:U,shaderModuleProps:$,layerParameters:V}=F;v.visibleCount++,this._lastRenderIndex=Math.max(this._lastRenderIndex,U),$.project&&($.project.viewport=o),I.context.renderPass=e;try{I._drawLayer({renderPass:e,shaderModuleProps:$,uniforms:{layerIndex:U},parameters:V})}catch(G){I.raiseError(G,`drawing ${I} to ${i}`)}}}return v}shouldDrawLayer(e){return!0}getShaderModuleProps(e,t,n){return null}getLayerParameters(e,t,n){return e.props.parameters}_shouldDrawLayer(e,t,n,i){if(!(e.props.visible&&this.shouldDrawLayer(e)))return!1;t.layer=e;let o=e.parent;for(;o;){if(!o.props.visible||!o.filterSubLayer(t))return!1;t.layer=o,o=o.parent}if(n){const l=t.layer.id;if(l in i||(i[l]=n(t)),!i[l])return!1}return e.activateViewport(t.viewport),!0}_getShaderModuleProps(e,t,n,i){const s=this.device.canvasContext.cssToDeviceRatio(),o=e.internalState?.propsInTransition||e.props,l={layer:o,picking:{isActive:!1},project:{viewport:e.context.viewport,devicePixelRatio:s,modelMatrix:o.modelMatrix,coordinateSystem:o.coordinateSystem,coordinateOrigin:o.coordinateOrigin,autoWrapLongitude:e.wrapLongitude}};if(t)for(const f of t)O3(l,f.getShaderModuleProps?.(e,l));
1948return O3(l,this.getShaderModuleProps(e,t,l),i)}}function oD(r=0,e={}){const t={},n=(i,s)=>{const o=i.props._offset,l=i.id,f=i.parent&&i.parent.id;let A;if(f&&!(f in e)&&n(i.parent,!1),f in t){const v=t[f]=t[f]||oD(e[f],e);A=v(i,s),t[l]=v}else Number.isFinite(o)?(A=o+(e[f]||0),t[l]=null):A=r;return s&&A>=r&&(r=A+1),e[l]=A,A};return n}function pH(r,{shaderModuleProps:e,target:t,viewport:n}){const i=e?.project?.devicePixelRatio??r.canvasContext.cssToDeviceRatio(),[,s]=r.canvasContext.getDrawingBufferSize(),o=t?t.height:s,l=n;return[l.x*i,o-(l.y+l.height)*i,l.width*i,l.height*i]}function O3(r,...e){for(const t of e)if(t)for(const n in t)r[n]?Object.assign(r[n],t[n]):r[n]=t[n];return r}class AH extends D_{constructor(e,t){super(e,t);const n=e.createTexture({format:"rgba8unorm",width:1,height:1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},mipmaps:!0}),i=e.createTexture({format:"depth16unorm",width:1,height:1,mipmaps:!1});this.fbo=e.createFramebuffer({id:"shadowmap",width:1,height:1,colorAttachments:[n],depthStencilAttachment:i})}delete(){this.fbo&&(this.fbo.destroy(),this.fbo=null)}getShadowMap(){return this.fbo.colorAttachments[0].texture}render(e){const t=this.fbo,n=this.device.canvasContext.cssToDeviceRatio(),i=e.viewports[0],s=i.width*n,o=i.height*n,l=[1,1,1,1];(s!==t.width||o!==t.height)&&t.resize({width:s,height:o}),super.render({...e,clearColor:l,target:t,pass:"shadow"})}getLayerParameters(e,t,n){return{...e.props.parameters,blend:!1,depthWriteEnabled:!0,depthCompare:"less-equal"}}shouldDrawLayer(e){return e.props.shadowEnabled!==!1}getShaderModuleProps(e,t,n){return{shadow:{project:n.project,drawToShadowMap:!0}}}}const gH={color:[255,255,255],intensity:1},D3=[{color:[255,255,255],intensity:1,direction:[-1,3,-1]},{color:[255,255,255],intensity:.9,direction:[1,-8,-2.5]}],mH=[0,0,0,200/255];class aD{constructor(e={}){this.id="lighting-effect",this.shadowColor=mH,this.shadow=!1,this.directionalLights=[],this.pointLights=[],this.shadowPasses=[],this.dummyShadowMap=null,this.setProps(e)}setup(e){this.context=e;const{device:t,deck:n}=e;this.shadow&&!this.dummyShadowMap&&(this._createShadowPasses(t),n._addDefaultShaderModule(M3),this.dummyShadowMap=t.createTexture({width:1,height:1}))}setProps(e){this.ambientLight=void 0,this.directionalLights=[],this.pointLights=[];for(const t in e){const n=e[t];switch(n.type){case"ambient":this.ambientLight=n;break;case"directional":this.directionalLights.push(n);break;case"point":this.pointLights.push(n);break}}this._applyDefaultLights(),this.shadow=this.directionalLights.some(t=>t.shadow),this.context&&this.setup(this.context),this.props=e}preRender({layers:e,layerFilter:t,viewports:n,onViewportActive:i,views:s}){if(this.shadow){this.shadowMatrices=this._calculateMatrices();for(let o=0;o<this.shadowPasses.length;o++)this.shadowPasses[o].render({layers:e,layerFilter:t,viewports:n,onViewportActive:i,views:s,shaderModuleProps:{shadow:{shadowLightId:o,dummyShadowMap:this.dummyShadowMap,shadowMatrices:this.shadowMatrices}}})}}getShaderModuleProps(e,t){const n=this.shadow?{project:t.project,shadowMaps:this.shadowPasses.map(o=>o.getShadowMap()),dummyShadowMap:this.dummyShadowMap,shadowColor:this.shadowColor,shadowMatrices:this.shadowMatrices}:{},i={enabled:!0,ambientLight:this.ambientLight,directionalLights:this.directionalLights.map(o=>o.getProjectedLight({layer:e})),pointLights:this.pointLights.map(o=>o.getProjectedLight({layer:e}))},s=e.props.material;return{shadow:n,lighting:i,phongMaterial:s,gouraudMaterial:s}}cleanup(e){for(const t of this.shadowPasses)t.delete();this.shadowPasses.length=0,this.dummyShadowMap&&(this.dummyShadowMap.destroy(),this.dummyShadowMap=null,e.deck._removeDefaultShaderModule(M3))}_calculateMatrices(){const e=[];for(const t of this.directionalLights){const n=new vn().lookAt({eye:new dt(t.direction).negate()});e.push(n)}return e}_createShadowPasses(e){for(let t=0;t<this.directionalLights.length;t++){const n=new AH(e);this.shadowPasses[t]=n}}_applyDefaultLights(){const{ambientLight:e,pointLights:t,directionalLights:n}=this;!e&&t.length===0&&n.length===0&&(this.ambientLight=new cH(gH),this.directionalLights.push(new R3(D3[0]),new R3(D3[1])))}}class _H{constructor(e={}){this._pool=[],this.opts={overAlloc:2,poolSize:100},this.setOptions(e)}setOptions(e){Object.assign(this.opts,e)}allocate(e,t,{size:n=1,type:i,padding:s=0,copy:o=!1,initialize:l=!1,maxCount:f}){const A=i||e&&e.constructor||Float32Array,v=t*n+s;if(ArrayBuffer.isView(e)){if(v<=e.length)return e;if(v*e.BYTES_PER_ELEMENT<=e.buffer.byteLength)return new A(e.buffer,0,v)}let T=1/0;f&&(T=f*n+s);const I=this._allocate(A,v,l,T);return e&&o?I.set(e):l||I.fill(0,0,4),this._release(e),I}release(e){this._release(e)}_allocate(e,t,n,i){let s=Math.max(Math.ceil(t*this.opts.overAlloc),1);s>i&&(s=i);const o=this._pool,l=e.BYTES_PER_ELEMENT*s,f=o.findIndex(A=>A.byteLength>=l);if(f>=0){const A=new e(o.splice(f,1)[0],0,s);return n&&A.fill(0),A}return new e(s)}_release(e){if(!ArrayBuffer.isView(e))return;const t=this._pool,{buffer:n}
vendor: 17,211 bytes, line 1948
1948=e,{byteLength:i}=n,s=t.findIndex(o=>o.byteLength>=i);s<0?t.push(n):(s>0||t.length<this.opts.poolSize)&&t.splice(s,0,n),t.length>this.opts.poolSize&&t.shift()}}const fp=new _H;function EA(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function yH(r){return[r[12],r[13],r[14]]}function vH(r){return{left:hd(r[3]+r[0],r[7]+r[4],r[11]+r[8],r[15]+r[12]),right:hd(r[3]-r[0],r[7]-r[4],r[11]-r[8],r[15]-r[12]),bottom:hd(r[3]+r[1],r[7]+r[5],r[11]+r[9],r[15]+r[13]),top:hd(r[3]-r[1],r[7]-r[5],r[11]-r[9],r[15]-r[13]),near:hd(r[3]+r[2],r[7]+r[6],r[11]+r[10],r[15]+r[14]),far:hd(r[3]-r[2],r[7]-r[6],r[11]-r[10],r[15]-r[14])}}const F3=new dt;function hd(r,e,t,n){F3.set(r,e,t);const i=F3.len();return{distance:n/i,normal:new dt(-r/i,-e/i,-t/i)}}function bH(r){return r-Math.fround(r)}let hA;function xv(r,e){const{size:t=1,startIndex:n=0}=e,i=e.endIndex!==void 0?e.endIndex:r.length,s=(i-n)/t;hA=fp.allocate(hA,s,{type:Float32Array,size:t*2});let o=n,l=0;for(;o<i;){for(let f=0;f<t;f++){const A=r[o++];hA[l+f]=A,hA[l+f+t]=bH(A)}l+=t*2}return hA.subarray(0,s*t*2)}function xH(r){let e=null,t=!1;for(const n of r)n&&(e?(t||(e=[[e[0][0],e[0][1]],[e[1][0],e[1][1]]],t=!0),e[0][0]=Math.min(e[0][0],n[0][0]),e[0][1]=Math.min(e[0][1],n[0][1]),e[1][0]=Math.max(e[1][0],n[1][0]),e[1][1]=Math.max(e[1][1],n[1][1])):e=n);return e}const wH=Math.PI/180,TH=EA(),L3=[0,0,0],EH={unitsPerMeter:[1,1,1],metersPerUnit:[1,1,1]};function CH({width:r,height:e,orthographic:t,fovyRadians:n,focalDistance:i,padding:s,near:o,far:l}){const f=r/e,A=t?new vn().orthographic({fovy:n,aspect:f,focalDistance:i,near:o,far:l}):new vn().perspective({fovy:n,aspect:f,near:o,far:l});if(s){const{left:v=0,right:T=0,top:I=0,bottom:F=0}=s,N=$c((v+r-T)/2,0,r)-r/2,U=$c((I+e-F)/2,0,e)-e/2;A[8]-=N*2/r,A[9]+=U*2/e}return A}class eu{constructor(e={}){this._frustumPlanes={},this.id=e.id||this.constructor.displayName||"viewport",this.x=e.x||0,this.y=e.y||0,this.width=e.width||1,this.height=e.height||1,this.zoom=e.zoom||0,this.padding=e.padding,this.distanceScales=e.distanceScales||EH,this.focalDistance=e.focalDistance||1,this.position=e.position||L3,this.modelMatrix=e.modelMatrix||null;const{longitude:t,latitude:n}=e;this.isGeospatial=Number.isFinite(n)&&Number.isFinite(t),this._initProps(e),this._initMatrices(e),this.equals=this.equals.bind(this),this.project=this.project.bind(this),this.unproject=this.unproject.bind(this),this.projectPosition=this.projectPosition.bind(this),this.unprojectPosition=this.unprojectPosition.bind(this),this.projectFlat=this.projectFlat.bind(this),this.unprojectFlat=this.unprojectFlat.bind(this)}get subViewports(){return null}get metersPerPixel(){return this.distanceScales.metersPerUnit[2]/this.scale}get projectionMode(){return this.isGeospatial?this.zoom<12?ha.WEB_MERCATOR:ha.WEB_MERCATOR_AUTO_OFFSET:ha.IDENTITY}equals(e){return e instanceof eu?this===e?!0:e.width===this.width&&e.height===this.height&&e.scale===this.scale&&ga(e.projectionMatrix,this.projectionMatrix)&&ga(e.viewMatrix,this.viewMatrix):!1}project(e,{topLeft:t=!0}={}){const n=this.projectPosition(e),i=nD(n,this.pixelProjectionMatrix),[s,o]=i,l=t?o:this.height-o;return e.length===2?[s,l]:[s,l,i[2]]}unproject(e,{topLeft:t=!0,targetZ:n}={}){const[i,s,o]=e,l=t?s:this.height-s,f=n&&n*this.distanceScales.unitsPerMeter[2],A=Ix([i,l,o],this.pixelUnprojectionMatrix,f),[v,T,I]=this.unprojectPosition(A);return Number.isFinite(o)?[v,T,I]:Number.isFinite(n)?[v,T,n]:[v,T]}projectPosition(e){const[t,n]=this.projectFlat(e),i=(e[2]||0)*this.distanceScales.unitsPerMeter[2];return[t,n,i]}unprojectPosition(e){const[t,n]=this.unprojectFlat(e),i=(e[2]||0)*this.distanceScales.metersPerUnit[2];return[t,n,i]}projectFlat(e){if(this.isGeospatial){const t=Yc(e);return t[1]=$c(t[1],-318,830),t}return e}unprojectFlat(e){return this.isGeospatial?uc(e):e}getBounds(e={}){const t={targetZ:e.z||0},n=this.unproject([0,0],t),i=this.unproject([this.width,0],t),s=this.unproject([0,this.height],t),o=this.unproject([this.width,this.height],t);return[Math.min(n[0],i[0],s[0],o[0]),Math.min(n[1],i[1],s[1],o[1]),Math.max(n[0],i[0],s[0],o[0]),Math.max(n[1],i[1],s[1],o[1])]}getDistanceScales(e){return e&&this.isGeospatial?F1({longitude:e[0],latitude:e[1],highPrecision:!0}):this.distanceScales}containsPixel({x:e,y:t,width:n=1,height:i=1}){return e<this.x+this.width&&this.x<e+n&&t<this.y+this.height&&this.y<t+i}getFrustumPlanes(){return this._frustumPlanes.near?this._frustumPlanes:(Object.assign(this._frustumPlanes,vH(this.viewProjectionMatrix)),this._frustumPlanes)}panByPosition(e,t){return null}_initProps(e){const t=e.longitude,n=e.latitude;this.isGeospatial&&(Number.isFinite(e.zoom)||(this.zoom=kG({latitude:n})+Math.log2(this.focalDistance)),this.distanceScales=e.distanceScales||F1({latitude:n,longitude:t}));const i=Math.pow(2,this.zoom);this.scale=i;const{position:s,modelMatrix:o}=e;let l=L3;if(s&&(l=o?new vn(o).transformAsVector(s,[]):s),this.isGeospatial){const f=this.projectPosition([t,n,0]);this.center=new dt(l).scale(this.distanceScales.unitsPerMeter).add(f)}else this.center=this.projectPosition(l)}_initMatrices(e){const{viewMatrix:t=TH,projectionMatrix:n=null,orthographic:i=!1,fovyRadians:s,fovy:o=75,near:l=.1,far:f=1e3,padding:A=null,focalDistance:v=1}=e;this.viewMatrixUncentered=t,this.viewMatrix=new vn().multiplyRight(t).translate(new dt(this.center).negate()),this.projectionMatrix=n||CH({width:this.width,height:this.height,orthographic:i,fovyRadians:s||o*wH,focalDistance:v,padding:A,near:l,far:f});const T=EA();Zf(T,T,this.projectionMatrix),Zf(T,T,this.viewMatrix),this.viewProjectionMatrix=T,this.viewMatrixInverse=C1([],this.viewMatrix)||this.viewMatrix,this.cameraPosition=yH(this.viewMatrixInverse);const I=EA(),F=EA();xx(I,I,[this.width/2,-this.height/2,1]),$m(I,I,[1,-1,0]),Zf(F,I,this.viewProjectionMatrix),this.pixelProjectionMatrix=F,this.pixelUnprojectionMatrix=C1(EA(),this.pixelProjectionMatrix),this.pixelUnprojectionMatrix||Zr.warn("Pixel project matrix not invertible")()}}eu.displayName="Viewport";let tg=class L1 extends eu{constructor(e={}){const{latitude:t=0,longitude:n=0,zoom:i=0,pitch:s=0,bearing:o=0,nearZMultiplier:l=.1,farZMultiplier:f=1.01,nearZ:A,farZ:v,orthographic:T=!1,projectionMatrix:I,repeat:F=!1,worldOffset:N=0,position:U,padding:$,legacyMeterSizes:V=!1}=e;let{width:G,height:X,altitude:ue=1.5}=e;const K=Math.pow(2,i);G=G||1,X=X||1;let se,Ee=null;if(I)ue=I[5]/2,se=eg(ue);else{e.fovy?(se=e.fovy,ue=Sx(se)):se=eg(ue);let de;if($){const{top:me=0,bottom:pe=0}=$;de=[0,$c((me+X-pe)/2,0,X)-X/2]}Ee=UG({width:G,height:X,scale:K,center:U&&[0,0,U[2]*bv(t)],offset:de,pitch:s,fovy:se,nearZMultiplier:l,farZMultiplier:f}),Number.isFinite(A)&&(Ee.near=A),Number.isFinite(v)&&(Ee.far=v)}let Ue=NG({height:X,pitch:s,bearing:o,scale:K,altitude:ue});N&&(Ue=new vn().translate([512*N,0,0]).multiplyLeft(Ue)),super({...e,width:G,height:X,viewMatrix:Ue,longitude:n,latitude:t,zoom:i,...Ee,fovy:se,focalDistance:ue}),this.latitude=t,this.longitude=n,this.zoom=i,this.pitch=s,this.bearing=o,this.altitude=ue,this.fovy=se,this.orthographic=T,this._subViewports=F?[]:null,this._pseudoMeters=V,Object.freeze(this)}get subViewports(){if(this._subViewports&&!this._subViewports.length){const e=this.getBounds(),t=Math.floor((e[0]+180)/360),n=Math.ceil((e[2]-180)/360);for(let i=t;i<=n;i++){const s=i?new L1({...this,worldOffset:i}):this;this._subViewports.push(s)}}return this._subViewports}projectPosition(e){if(this._pseudoMeters)return super.projectPosition(e);const[t,n]=this.projectFlat(e),i=(e[2]||0)*bv(e[1]);return[t,n,i]}unprojectPosition(e){if(this._pseudoMeters)return super.unprojectPosition(e);const[t,n]=this.unprojectFlat(e),i=(e[2]||0)/bv(n);return[t,n,i]}addMetersToLngLat(e,t){return rD(e,t)}panByPosition(e,t){const n=Ix(t,this.pixelUnprojectionMatrix),i=this.projectFlat(e),s=e3([],i,F7([],n)),o=e3([],this.center,s),[l,f]=this.unprojectFlat(o);return{longitude:l,latitude:f}}getBounds(e={}){const t=jG(this,e.z||0);return[Math.min(t[0][0],t[1][0],t[2][0],t[3][0]),Math.min(t[0][1],t[1][1],t[2][1],t[3][1]),Math.max(t[0][0],t[1][0],t[2][0],t[3][0]),Math.max(t[0][1],t[1][1],t[2][1],t[3][1])]}fitBounds(e,t={}){const{width:n,height:i}=this,{longitude:s,latitude:o,zoom:l}=zG({width:n,height:i,bounds:e,...t});return new L1({width:n,height:i,longitude:s,latitude:o,zoom:l})}};tg.displayName="WebMercatorViewport";const k3=[0,0,0];function wv(r,e,t=!1){const n=e.projectPosition(r);if(t&&e instanceof tg){const[i,s,o=0]=r,l=e.getDistanceScales([i,s]);n[2]=o*l.unitsPerMeter[2]}return n}function SH(r){const{viewport:e,modelMatrix:t,coordinateOrigin:n}=r;let{coordinateSystem:i,fromCoordinateSystem:s,fromCoordinateOrigin:o}=r;return i===Qr.DEFAULT&&(i=e.isGeospatial?Qr.LNGLAT:Qr.CARTESIAN),s===void 0&&(s=i),o===void 0&&(o=n),{viewport:e,coordinateSystem:i,coordinateOrigin:n,modelMatrix:t,fromCoordinateSystem:s,fromCoordinateOrigin:o}}function lD(r,{viewport:e,modelMatrix:t,coordinateSystem:n,coordinateOrigin:i,offsetMode:s}){let[o,l,f=0]=r;switch(t&&([o,l,f]=Ep([],[o,l,f,1],t)),n){case Qr.LNGLAT:return wv([o,l,f],e,s);case Qr.LNGLAT_OFFSETS:return wv([o+i[0],l+i[1],f+(i[2]||0)],e,s);case Qr.METER_OFFSETS:return wv(rD(i,[o,l,f]),e,s);case Qr.CARTESIAN:default:return e.isGeospatial?[o+i[0],l+i[1],f+i[2]]:e.projectPosition([o,l,f])}}function IH(r,e){const{viewport:t,coordinateSystem:n,coordinateOrigin:i,modelMatrix:s,fromCoordinateSystem:o,fromCoordinateOrigin:l}=SH(e),{autoOffset:f=!0}=e,{geospatialOrigin:A=k3,shaderCoordinateOrigin:v=k3,offsetMode:T=!1}=f?eD(t,n,i):{},I=lD(r,{viewport:t,modelMatrix:s,coordinateSystem:o,coordinateOrigin:l,offsetMode:T});if(T){const F=t.projectPosition(A||v);PO(I,I,F)}return I}let BH=1,PH=1;class cD{time=0;channels=new Map;animations=new Map;playing=!1;lastEngineTime=-1;constructor(){}addChannel(e){const{delay:t=0,duration:n=Number.POSITIVE_INFINITY,rate:i=1,repeat:s=1}=e,o=BH++,l={time:0,delay:t,duration:n,rate:i,repeat:s};return this._setChannelTime(l,this.time),this.channels.set(o,l),o}removeChannel(e){this.channels.delete(e);for(const[t,n]of this.animations)n.channel===e&&this.detachAnimation(t)}isFinished(e){const t=this.channels.get(e);return t===void 0?!1:this.time>=t.delay+t.duration*t.repeat}getTime(e){if(e===void 0)return this.time;const t=this.channels.get(e);return t===void 0?-1:t.time}setTime(e){this.time=Math.max(0,e);const t=this.channels.values();for(const i of t)this._setChannelTime(i,this.time);const n=this.animations.values();for(const i of n){const{animation:s,channel:o}=i;s.setTime(this.getTime(o))}}play(){this.playing=!0}pause(){this.playing=!1,this.lastEngineTime=-1}reset(){this.setTime(0)}attachAnimation(e,t){const n=PH++;return this.animations.set(n,{animation:e,channel:t}),e.setTime(this.getTime(t)),n}detachAnimation(e){this.animations.delete(e)}update(e){this.playing&&(this.lastEngineTime===-1&&(this.lastEngineTime=e),this.setTime(this.time+(e-this.lastEngineTime)),this.lastEngineTime=e)}_setChannelTime(e,t){const n=t-e.delay,i=e.duration*e.repeat;n>=i?e.time=e.duration*e.rate:(e.time=Math.max(0,n)%e.duration,e.time*=e.rate)}}function MH(r){return typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame(r):setTimeout(r,1e3/60)}function RH(r){return typeof window<"u"&&window.cancelAnimationFrame?window.cancelAnimationFrame(r):clearTimeout(r)}let OH=0;const DH={device:null,onAddHTML:()=>"",onInitialize:async()=>null,onRender:()=>{},onFinalize:()=>{},onError:r=>console.error(r),stats:b1.stats.get(`animation-loop-${OH++}`),useDevicePixels:!0,autoResizeViewport:!1,autoResizeDrawingBuffer:!1};class FH{device=null;canvas=null;props;animationProps=null;timeline=null;stats;cpuTime;gpuTime;frameRate;display;needsRedraw="initialized";_initialized=!1;_running=!1;_animationFrameId=null;_nextFramePromise=null;_resolveNextFrame=null;_cpuStartTime=0;_error=null;constructor(e){if(this.props={...DH,...e},e=this.props,!e.device)throw new Error("No device provided");const{useDevicePixels:t=!0}=this.props;this.stats=e.stats||new hh({id:"animation-loop-stats"}),this.cpuTime=this.stats.get("CPU Time"),this.gpuTime=this.stats.get("GPU Time"),this.frameRate=this.stats.get("Frame Rate"),this.setProps({autoResizeViewport:e.autoResizeViewport,autoResizeDrawingBuffer:e.autoResizeDrawingBuffer,useDevicePixels:t}),this.start=this.start.bind(this),this.stop=this.stop.bind(this),this._onMousemove=this._onMousemove.bind(this),this._onMouseleave=this._onMouseleave.bind(this)}destroy(){this.stop(),this._setDisplay(null)}delete(){this.destroy()}setError(e){if(this.props.onError(e),this._error=Error(),this.device?.canvasContext?.canvas instanceof HTMLCanvasElement){const n=document.createElement("h1");n.innerHTML=e.message,n.style.position="absolute",n.style.top="20%",n.style.left="10px",n.style.color="black",n.style.backgroundColor="red",document.body.appendChild(n)}}setNeedsRedraw(e){return this.needsRedraw=this.needsRedraw||e,this}setProps(e){return"autoResizeViewport"in e&&(this.props.autoResizeViewport=e.autoResizeViewport||!1),"autoResizeDrawingBuffer"in e&&(this.props.autoResizeDrawingBuffer=e.autoResizeDrawingBuffer||!1),"useDevicePixels"in e&&(this.props.useDevicePixels=e.useDevicePixels||!1),this}async start(){if(this._running)return this;this._running=!0;try{let e;return this._initialized||(this._initialized=!0,await this._initDevice(),this._initialize(),await this.props.onInitialize(this._getAnimationProps())),this._running?(e!==!1&&(this._cancelAnimationFrame(),this._requestAnimationFrame()),this):null}catch(e){const t=e instanceof Error?e:new Error("Unknown error");throw this.props.onError(t),t}}stop(){return this._running&&(this.animationProps&&!this._error&&this.props.onFinalize(this.animationProps),this._cancelAnimationFrame(),this._nextFramePromise=null,this._resolveNextFrame=null,this._running=!1),this}redraw(){return this.device?.isLost||this._error?this:(this._beginFrameTimers(),this._setupFrame(),this._updateAnimationProps(),this._renderFrame(this._getAnimationProps()),this._clearNeedsRedraw(),this._resolveNextFrame&&(this._resolveNextFrame(this),this._nextFramePromise=null,this._resolveNextFrame=null),this._endFrameTimers(),this)}attachTimeline(e){return this.timeline=e,this.timeline}detachTimeline(){this.timeline=null}waitForRender(){return this.setNeedsRedraw("waitForRender"),this._nextFramePromise||(this._nextFramePromise=new Promise(e=>{this._resolveNextFrame=e})),this._nextFramePromise}async toDataURL(){if(this.setNeedsRedraw("toDataURL"),await this.waitForRender(),this.canvas instanceof HTMLCanvasElement)return this.canvas.toDataURL();throw new Error("OffscreenCanvas")}_initialize(){this._startEventHandling(),this._initializeAnimationProps(),this._updateAnimationProps(),this._resizeCanvasDrawingBuffer(),this._resizeViewport()}_setDisplay(e){this.display&&(this.display.destroy(),this.display.animationLoop=null),e&&(e.animationLoop=this),this.display=e}_requestAnimationFrame(){this._running&&(this._animationFrameId=MH(this._animationFrame.bind(this)))}_cancelAnimationFrame(){this._animationFrameId!==null&&(RH(this._animationFrameId),this._animationFrameId=null)}_animationFrame(){this._running&&(this.redraw(),this._requestAnimationFrame())}_renderFrame(e){if(this.display){this.display._renderFrame(e);return}this.props.onRender(this._getAnimationProps()),this.device?.submit()}_clearNeedsRedraw(){this.needsRedraw=!1}_setupFrame(){this._resizeCanvasDrawingBuffer(),this._resizeViewport()}_initializeAnimationProps(){const e=this.device?.canvasContext?.canvas;if(!this.device||!e)throw new Error("loop");this.animationProps={animationLoop:this,device:this.device,canvas:e,timeline:this.timeline,useDevicePixels:this.props.useDevicePixels,needsRedraw:!1,width:1,height:1,aspect:1,time:0,startTime:Date.now(),engineTime:0,tick:0,tock:0,_mousePosition:null}}_getAnimationProps(){if(!this.animationProps)throw new Error("animationProps");return this.animationProps}_updateAnimationProps(){if(!this.animationProps)return;const{width:e,height:t,aspect:n}=this._getSizeAndAspect();(e!==this.animationProps.width||t!==this.animationProps.height)&&this.setNeedsRedraw("drawing buffer resized"),n!==this.animationProps.aspect&&this.setNeedsRedraw("drawing buffer aspect changed"),this.animationProps.width=e,this.animationProps.height=t,this.animationProps.aspect=n,this.animationProps.needsRedraw=this.needsRedraw,this.animationProps.engineTime=Date.now()-this.animationProps.startTime,this.timeline&&this.timeline.update(this.animationProps.engineTime),this.animationProps.tick=Math.floor(this.animationProps.time/1e3*60),this.animationProps.tock++,this.animationProps.time=this.timeline?this.timeline.getTime():this.animationProps.engineTime}async _initDevice(){if(this.device=await this.props.device,!this.device)throw new Error("No device provided");this.canvas=this.device.canvasContext?.canvas||null}_createInfoDiv(){if(this.canvas&&this.props.onAddHTML){const e=document.createElement("div");document.body.appendChild(e),e.style.position="relative";const t=document.createElement("div");t.style.position="absolute",t.style.left="10px",t.style.bottom="10px",t.style.width="300px",t.style.background="white",this.canvas instanceof HTMLCanvasElement&&e.appendChild(this.canvas),e.appendChild(t);const n=this.props.onAddHTML(t);
1948n&&(t.innerHTML=n)}}_getSizeAndAspect(){if(!this.device)return{width:1,height:1,aspect:1};const[e,t]=this.device?.canvasContext?.getPixelSize()||[1,1];let n=1;const i=this.device?.canvasContext?.canvas;return i&&i.clientHeight?n=i.clientWidth/i.clientHeight:e>0&&t>0&&(n=e/t),{width:e,height:t,aspect:n}}_resizeViewport(){this.props.autoResizeViewport&&this.device.gl&&this.device.gl.viewport(0,0,this.device.gl.drawingBufferWidth,this.device.gl.drawingBufferHeight)}_resizeCanvasDrawingBuffer(){this.props.autoResizeDrawingBuffer&&this.device?.canvasContext?.resize({useDevicePixels:this.props.useDevicePixels})}_beginFrameTimers(){this.frameRate.timeEnd(),this.frameRate.timeStart(),this.cpuTime.timeStart()}_endFrameTimers(){this.cpuTime.timeEnd()}_startEventHandling(){this.canvas&&(this.canvas.addEventListener("mousemove",this._onMousemove.bind(this)),this.canvas.addEventListener("mouseleave",this._onMouseleave.bind(this)))}_onMousemove(e){e instanceof MouseEvent&&(this._getAnimationProps()._mousePosition=[e.offsetX,e.offsetY])}_onMouseleave(e){this._getAnimationProps()._mousePosition=null}}const Tv={};function Ah(r="id"){Tv[r]=Tv[r]||1;const e=Tv[r]++;return`${r}-${e}`}class N3{id;userData={};topology;bufferLayout=[];vertexCount;indices;attributes;constructor(e){if(this.id=e.id||Ah("geometry"),this.topology=e.topology,this.indices=e.indices||null,this.attributes=e.attributes,this.vertexCount=e.vertexCount,this.bufferLayout=e.bufferLayout||[],this.indices&&!(this.indices.usage&Hi.INDEX))throw new Error("Index buffer must have INDEX usage")}destroy(){this.indices?.destroy();for(const e of Object.values(this.attributes))e.destroy()}getVertexCount(){return this.vertexCount}getAttributes(){return this.attributes}getIndexes(){return this.indices||null}_calculateVertexCount(e){return e.byteLength/12}}function LH(r,e){if(e instanceof N3)return e;const t=kH(r,e),{attributes:n,bufferLayout:i}=NH(r,e);return new N3({topology:e.topology||"triangle-list",bufferLayout:i,vertexCount:e.vertexCount,indices:t,attributes:n})}function kH(r,e){if(!e.indices)return;const t=e.indices.value;return r.createBuffer({usage:Hi.INDEX,data:t})}function NH(r,e){const t=[],n={};for(const[s,o]of Object.entries(e.attributes)){let l=s;switch(s){case"POSITION":l="positions";break;case"NORMAL":l="normals";break;case"TEXCOORD_0":l="texCoords";break;case"COLOR_0":l="colors";break}if(o){n[l]=r.createBuffer({data:o.value,id:`${s}-buffer`});const{value:f,size:A,normalized:v}=o;t.push({name:l,format:Wz(f,A,v)})}}const i=e._calculateVertexCount(e.attributes,e.indices);return{attributes:n,bufferLayout:t,vertexCount:i}}class Bx{static defaultProps={...lp.defaultProps};static getDefaultPipelineFactory(e){return e._lumaData.defaultPipelineFactory=e._lumaData.defaultPipelineFactory||new Bx(e),e._lumaData.defaultPipelineFactory}device;destroyPolicy;_hashCounter=0;_hashes={};_renderPipelineCache={};_computePipelineCache={};constructor(e){this.device=e,this.destroyPolicy=e.props._factoryDestroyPolicy}createRenderPipeline(e){const t={...lp.defaultProps,...e},n=this._hashRenderPipeline(t);if(!this._renderPipelineCache[n]){const i=this.device.createRenderPipeline({...t,id:t.id?`${t.id}-cached`:void 0});i.hash=n,this._renderPipelineCache[n]={pipeline:i,useCount:0}}return this._renderPipelineCache[n].useCount++,this._renderPipelineCache[n].pipeline}createComputePipeline(e){const t={...Um.defaultProps,...e},n=this._hashComputePipeline(t);if(!this._computePipelineCache[n]){const i=this.device.createComputePipeline({...t,id:t.id?`${t.id}-cached`:void 0});i.hash=n,this._computePipelineCache[n]={pipeline:i,useCount:0}}return this._computePipelineCache[n].useCount++,this._computePipelineCache[n].pipeline}release(e){const t=e.hash,n=e instanceof Um?this._computePipelineCache:this._renderPipelineCache;n[t].useCount--,n[t].useCount===0&&this.destroyPolicy==="unused"&&(n[t].pipeline.destroy(),delete n[t])}_hashComputePipeline(e){return`${this._getHash(e.shader.source)}`}_hashRenderPipeline(e){const t=e.vs?this._getHash(e.vs.source):0,n=e.fs?this._getHash(e.fs.source):0,i="-",s=this._getHash(JSON.stringify(e.bufferLayout));switch(this.device.type){case"webgl":return`${t}/${n}V${i}BL${s}`;default:const o=this._getHash(JSON.stringify(e.parameters));return`${t}/${n}V${i}T${e.topology}P${o}BL${s}`}}_getHash(e){return this._hashes[e]===void 0&&(this._hashes[e]=this._hashCounter++),this._hashes[e]}}class Px{static defaultProps={...B_.defaultProps};static getDefaultShaderFactory(e){return e._lumaData.defaultShaderFactory||=new Px(e),e._lumaData.defaultShaderFactory}device;destroyPolicy;_cache={};constructor(e){this.device=e,this.destroyPolicy=e.props._factoryDestroyPolicy}createShader(e){const t=this._hashShader(e);let n=this._cache[t];if(!n){const i=this.device.createShader({...e,id:e.id?`${e.id}-cached`:void 0});this._cache[t]=n={shader:i,useCount:0}}return n.useCount++,n.shader}release(e){const t=this._hashShader(e),n=this._cache[t];n&&(n.useCount--,n.useCount===0&&this.destroyPolicy==="unused"&&(delete this._cache[t],n.shader.destroy()))}_hashShader(e){return`${e.stage}:${e.source}`}}function UH(r,e){const t={},n="Values";if(r.attributes.length===0&&!r.varyings?.length)return{"No attributes or varyings":{[n]:"N/A"}};for(const i of r.attributes)if(i){const s=`${i.location} ${i.name}: ${i.type}`;t[`in ${s}`]={[n]:i.stepMode||"vertex"}}for(const i of r.varyings||[]){const s=`${i.location} ${i.name}`;t[`out ${s}`]={[n]:JSON.stringify(i)}}return t}let Fs=null,Ev=null;function zH(r,{id:e,minimap:t,opaque:n,top:i="0",left:s="0",rgbaScale:o=1}){Fs||(Fs=document.createElement("canvas"),Fs.id=e,Fs.title=e,Fs.style.zIndex="100",Fs.style.position="absolute",Fs.style.top=i,Fs.style.left=s,Fs.style.border="blue 5px solid",Fs.style.transform="scaleY(-1)",document.body.appendChild(Fs),Ev=Fs.getContext("2d")),(Fs.width!==r.width||Fs.height!==r.height)&&(Fs.width=r.width/2,Fs.height=r.height/2,Fs.style.width="400px",Fs.style.height="400px");const l=r.device.readPixelsToArrayWebGL(r),f=Ev?.createImageData(r.width,r.height);if(f){for(let v=0;v<l.length;v+=4)f.data[0+v+0]=l[v+0]*o,f.data[0+v+1]=l[v+1]*o,f.data[0+v+2]=l[v+2]*o,f.data[0+v+3]=n?255:l[v+3]*o;Ev?.putImageData(f,0,0)}}function k1(r,e,t){if(r===e)return!0;
1948if(!t||!r||!e)return!1;if(Array.isArray(r)){if(!Array.isArray(e)||r.length!==e.length)return!1;for(let n=0;n<r.length;n++)if(!k1(r[n],e[n],t-1))return!1;return!0}if(Array.isArray(e))return!1;if(typeof r=="object"&&typeof e=="object"){const n=Object.keys(r),i=Object.keys(e);if(n.length!==i.length)return!1;for(const s of n)if(!e.hasOwnProperty(s)||!k1(r[s],e[s],t-1))return!1;return!0}return!1}function VH(r){return ArrayBuffer.isView(r)&&!(r instanceof DataView)}function jH(r){return Array.isArray(r)?r.length===0||typeof r[0]=="number":!1}function uD(r){return VH(r)||jH(r)}function GH(r){return uD(r)||typeof r=="number"||typeof r=="boolean"}function fD(r){const e={bindings:{},uniforms:{}};return Object.keys(r).forEach(t=>{const n=r[t];GH(n)?e.uniforms[t]=n:e.bindings[t]=n}),e}class HH{options={disableWarnings:!1};modules;moduleUniforms;moduleBindings;constructor(e,t){Object.assign(this.options,t);const n=Y2(Object.values(e).filter(i=>i.dependencies));for(const i of n)e[i.name]=i;Yt.log(1,"Creating ShaderInputs with modules",Object.keys(e))(),this.modules=e,this.moduleUniforms={},this.moduleBindings={};for(const[i,s]of Object.entries(e))this._addModule(s),s.name&&i!==s.name&&!this.options.disableWarnings&&Yt.warn(`Module name: ${i} vs ${s.name}`)()}destroy(){}setProps(e){for(const t of Object.keys(e)){const n=t,i=e[n]||{},s=this.modules[n];if(!s){this.options.disableWarnings||Yt.warn(`Module ${t} not found`)();continue}const o=this.moduleUniforms[n],l=this.moduleBindings[n],f=s.getUniforms?.(i,o)||i,{uniforms:A,bindings:v}=fD(f);this.moduleUniforms[n]={...o,...A},this.moduleBindings[n]={...l,...v}}}getModules(){return Object.values(this.modules)}getUniformValues(){return this.moduleUniforms}getBindingValues(){const e={};for(const t of Object.values(this.moduleBindings))Object.assign(e,t);return e}getDebugTable(){const e={};for(const[t,n]of Object.entries(this.moduleUniforms))for(const[i,s]of Object.entries(n))e[`${t}.${i}`]={type:this.modules[t].uniformTypes?.[i],value:String(s)};return e}_addModule(e){const t=e.name;this.moduleUniforms[t]=e.defaultUniforms||{},this.moduleBindings[t]={}}}let WH="";async function $H(r,e){const t=new Image;return t.crossOrigin="anonymous",t.src=r.startsWith("http")?r:WH+r,await t.decode(),e?await createImageBitmap(t,e):await createImageBitmap(t)}class Cv{device;id;texture;sampler;view;ready;isReady=!1;destroyed=!1;resolveReady=()=>{};rejectReady=()=>{};get[Symbol.toStringTag](){return"AsyncTexture"}toString(){return`AsyncTexture:"${this.id}"(${this.isReady?"ready":"loading"})`}constructor(e,t){this.device=e,this.id=t.id||Ah("async-texture"),typeof t?.data=="string"&&t.dimension==="2d"&&(t={...t,data:$H(t.data)}),this.ready=new Promise((n,i)=>{this.resolveReady=()=>{this.isReady=!0,n()},this.rejectReady=i}),this.initAsync(t)}async initAsync(e){const t=e.data;let n;try{n=await hD(t)}catch(s){this.rejectReady(s)}if(this.destroyed)return;const i={...e,data:n};this.texture=this.device.createTexture(i),this.sampler=this.texture.sampler,this.view=this.texture.view,this.isReady=!0,this.resolveReady()}destroy(){this.texture&&(this.texture.destroy(),this.texture=null),this.destroyed=!0}resize(e){if(!this.isReady)throw new Error("Cannot resize texture before it is ready");if(e.width===this.texture.width&&e.height===this.texture.height)return!1;if(this.texture){const t=this.texture;this.texture=t.clone(e),t.destroy()}return!0}}async function hD(r){if(r=await r,Array.isArray(r))return await Promise.all(r.map(hD));if(r&&typeof r=="object"&&r.constructor===Object){const e=r,t=await Promise.all(Object.values(e)),n=Object.keys(e),i={};for(let s=0;s<n.length;s++)i[n[s]]=t[s];return i}return r}const Ff=2,XH=1e4;class Di{static defaultProps={...lp.defaultProps,source:void 0,vs:null,fs:null,id:"unnamed",handle:void 0,userData:{},defines:{},modules:[],moduleSettings:void 0,geometry:null,indexBuffer:null,attributes:{},constantAttributes:{},varyings:[],isInstanced:void 0,instanceCount:0,vertexCount:0,shaderInputs:void 0,pipelineFactory:void 0,shaderFactory:void 0,transformFeedback:void 0,shaderAssembler:Wf.getDefaultShaderAssembler(),debugShaders:void 0,disableWarnings:void 0};device;id;source;vs;fs;pipelineFactory;shaderFactory;userData={};parameters;topology;bufferLayout;isInstanced=void 0;instanceCount=0;vertexCount;indexBuffer=null;bufferAttributes={};constantAttributes={};bindings={};uniforms={};vertexArray;transformFeedback=null;pipeline;shaderInputs;_uniformStore;_attributeInfos={};_gpuGeometry=null;_getModuleUniforms;props;_pipelineNeedsUpdate="newly created";_needsRedraw="initializing";_destroyed=!1;_lastDrawTimestamp=-1;get[Symbol.toStringTag](){return"Model"}toString(){return`Model(${this.id})`}constructor(e,t){this.props={...Di.defaultProps,...t},t=this.props,this.id=t.id||Ah("model"),this.device=e,Object.assign(this.userData,t.userData);const n=Object.fromEntries(this.props.modules?.map(f=>[f.name,f])||[]),i=t.shaderInputs||new HH(n,{disableWarnings:this.props.disableWarnings});this.setShaderInputs(i);const s=JH(e),o=(this.props.modules?.length>0?this.props.modules:this.shaderInputs?.getModules())||[];if(this.device.type==="webgpu"&&this.props.source){const{source:f,getUniforms:A}=this.props.shaderAssembler.assembleWGSLShader({platformInfo:s,...this.props,modules:o});this.source=f,this._getModuleUniforms=A,this.props.shaderLayout||=x7(this.source)}else{const{vs:f,fs:A,getUniforms:v}=this.props.shaderAssembler.assembleGLSLShaderPair({platformInfo:s,...this.props,modules:o});this.vs=f,this.fs=A,this._getModuleUniforms=v}this.vertexCount=this.props.vertexCount,this.instanceCount=this.props.instanceCount,this.topology=this.props.topology,this.bufferLayout=this.props.bufferLayout,this.parameters=this.props.parameters,t.geometry&&this.setGeometry(t.geometry),this.pipelineFactory=t.pipelineFactory||Bx.getDefaultPipelineFactory(this.device),this.shaderFactory=t.shaderFactory||Px.getDefaultShaderFactory(this.device),this.pipeline=this._updatePipeline(),this.vertexArray=e.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry),"isInstanced"in t&&(this.isInstanced=t.isInstanced),t.instanceCount&&this.setInstanceCount(t.instanceCount),t.vertexCount&&this.setVertexCount(t.vertexCount),t.indexBuffer&&this.setIndexBuffer(t.indexBuffer),t.attributes&&this.setAttributes(t.attributes),t.constantAttributes&&this.setConstantAttributes(t.constantAttributes),t.bindings&&this.setBindings(t.bindings),t.uniforms&&this.setUniformsWebGL(t.uniforms),t.moduleSettings&&this.updateModuleSettingsWebGL(t.moduleSettings),t.transformFeedback&&(this.transformFeedback=t.transformFeedback),Object.seal(this)}destroy(){this._destroyed||(this.pipelineFactory.release(this.pipeline),this.shaderFactory.release(this.pipeline.vs),this.pipeline.fs&&this.shaderFactory.release(this.pipeline.fs),this._uniformStore.destroy(),this._gpuGeometry?.destroy(),this._destroyed=!0)}needsRedraw(){this._getBindingsUpdateTimestamp()>this._lastDrawTimestamp&&this.setNeedsRedraw("contents of bound textures or buffers updated");const e=this._needsRedraw;return this._needsRedraw=!1,e}setNeedsRedraw(e){this._needsRedraw||=e}predraw(){this.updateShaderInputs(),this.pipeline=this._updatePipeline()}draw(e){const t=this._areBindingsLoading();if(t)return Yt.info(Ff,`>>> DRAWING ABORTED ${this.id}: ${t} not loaded`)(),!1;try{e.pushDebugGroup(`${this}.predraw(${e})`),this.predraw()}finally{e.popDebugGroup()}let n;try{e.pushDebugGroup(`${this}.draw(${e})`),this._logDrawCallStart(),this.pipeline=this._updatePipeline();const i=this._getBindings();this.pipeline.setBindings(i,{disableWarnings:this.props.disableWarnings}),N1(this.uniforms)||this.pipeline.setUniformsWebGL(this.uniforms);const{indexBuffer:s}=this.vertexArray,o=s?s.byteLength/(s.indexType==="uint32"?4:2):void 0;n=this.pipeline.draw({renderPass:e,vertexArray:this.vertexArray,isInstanced:this.isInstanced,vertexCount:this.vertexCount,instanceCount:this.instanceCount,indexCount:o,transformFeedback:this.transformFeedback||void 0,parameters:this.parameters,topology:this.topology})}finally{e.popDebugGroup(),this._logDrawCallEnd()}return this._logFramebuffer(e),n?(this._lastDrawTimestamp=this.device.timestamp,this._needsRedraw=!1):this._needsRedraw="waiting for resource initialization",n}setGeometry(e){this._gpuGeometry?.destroy();const t=e&&LH(this.device,e);
1948if(t){this.setTopology(t.topology||"triangle-list");const n=new fv(this.bufferLayout);this.bufferLayout=n.mergeBufferLayouts(t.bufferLayout,this.bufferLayout),this.vertexArray&&this._setGeometryAttributes(t)}this._gpuGeometry=t}setTopology(e){e!==this.topology&&(this.topology=e,this._setPipelineNeedsUpdate("topology"))}setBufferLayout(e){const t=new fv(this.bufferLayout);this.bufferLayout=this._gpuGeometry?t.mergeBufferLayouts(e,this._gpuGeometry.bufferLayout):e,this._setPipelineNeedsUpdate("bufferLayout"),this.pipeline=this._updatePipeline(),this.vertexArray=this.device.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry)}setParameters(e){k1(e,this.parameters,2)||(this.parameters=e,this._setPipelineNeedsUpdate("parameters"))}setInstanceCount(e){this.instanceCount=e,this.isInstanced===void 0&&e>0&&(this.isInstanced=!0),this.setNeedsRedraw("instanceCount")}setVertexCount(e){this.vertexCount=e,this.setNeedsRedraw("vertexCount")}setShaderInputs(e){this.shaderInputs=e,this._uniformStore=new Hz(this.shaderInputs.modules);for(const[t,n]of Object.entries(this.shaderInputs.modules))if(qH(n)){const i=this._uniformStore.getManagedUniformBuffer(this.device,t);this.bindings[`${t}Uniforms`]=i}this.setNeedsRedraw("shaderInputs")}updateShaderInputs(){this._uniformStore.setUniforms(this.shaderInputs.getUniformValues()),this.setBindings(this.shaderInputs.getBindingValues()),this.setNeedsRedraw("shaderInputs")}setBindings(e){Object.assign(this.bindings,e),this.setNeedsRedraw("bindings")}setTransformFeedback(e){this.transformFeedback=e,this.setNeedsRedraw("transformFeedback")}setIndexBuffer(e){this.vertexArray.setIndexBuffer(e),this.setNeedsRedraw("indexBuffer")}setAttributes(e,t){const n=t?.disableWarnings??this.props.disableWarnings;e.indices&&Yt.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`)(),this.bufferLayout=$z(this.pipeline.shaderLayout,this.bufferLayout);const i=new fv(this.bufferLayout);for(const[s,o]of Object.entries(e)){const l=i.getBufferLayout(s);if(!l){n||Yt.warn(`Model(${this.id}): Missing layout for buffer "${s}".`)();continue}const f=i.getAttributeNamesForBuffer(l);let A=!1;for(const v of f){const T=this._attributeInfos[v];if(T){const I=this.device.type==="webgpu"?i.getBufferIndex(T.bufferName):T.location;this.vertexArray.setBuffer(I,o),A=!0}}!A&&!n&&Yt.warn(`Model(${this.id}): Ignoring buffer "${o.id}" for unknown attribute "${s}"`)()}this.setNeedsRedraw("attributes")}setConstantAttributes(e,t){for(const[n,i]of Object.entries(e)){const s=this._attributeInfos[n];s?this.vertexArray.setConstantWebGL(s.location,i):(t?.disableWarnings??this.props.disableWarnings)||Yt.warn(`Model "${this.id}: Ignoring constant supplied for unknown attribute "${n}"`)()}this.setNeedsRedraw("constants")}setUniforms(e){this.setUniformsWebGL(e)}setUniformsWebGL(e){N1(e)||(this.pipeline.setUniformsWebGL(e),Object.assign(this.uniforms,e)),this.setNeedsRedraw("uniforms")}updateModuleSettingsWebGL(e){const{bindings:t,uniforms:n}=fD(this._getModuleUniforms(e));Object.assign(this.bindings,t),Object.assign(this.uniforms,n),this.setNeedsRedraw("moduleSettings")}_areBindingsLoading(){for(const e of Object.values(this.bindings))if(e instanceof Cv&&!e.isReady)return e.id;return!1}_getBindings(){const e={};for(const[t,n]of Object.entries(this.bindings))n instanceof Cv?n.isReady&&(e[t]=n.texture):e[t]=n;return e}_getBindingsUpdateTimestamp(){let e=0;for(const t of Object.values(this.bindings))t instanceof I_?e=Math.max(e,t.texture.updateTimestamp):t instanceof Hi||t instanceof oi?e=Math.max(e,t.updateTimestamp):t instanceof Cv?e=t.texture?Math.max(e,t.texture.updateTimestamp):1/0:t instanceof KA||(e=Math.max(e,t.buffer.updateTimestamp));return e}_setGeometryAttributes(e){const t={...e.attributes};for(const[n]of Object.entries(t))!this.pipeline.shaderLayout.attributes.find(i=>i.name===n)&&n!=="positions"&&delete t[n];this.vertexCount=e.vertexCount,this.setIndexBuffer(e.indices||null),this.setAttributes(e.attributes,{disableWarnings:!0}),this.setAttributes(t,{disableWarnings:this.props.disableWarnings}),this.setNeedsRedraw("geometry attributes")}_setPipelineNeedsUpdate(e){this._pipelineNeedsUpdate||=e,this.setNeedsRedraw(e)}_updatePipeline(){if(this._pipelineNeedsUpdate){let e=null,t=null;this.pipeline&&(Yt.log(1,`Model ${this.id}: Recreating pipeline because "${this._pipelineNeedsUpdate}".`)(),e=this.pipeline.vs,t=this.pipeline.fs),this._pipelineNeedsUpdate=!1;const n=this.shaderFactory.createShader({id:`${this.id}-vertex`,stage:"vertex",source:this.source||this.vs,debugShaders:this.props.debugShaders});let i=null;this.source?i=n:this.fs&&(i=this.shaderFactory.createShader({id:`${this.id}-fragment`,stage:"fragment",source:this.source||this.fs,debugShaders:this.props.debugShaders})),this.pipeline=this.pipelineFactory.createRenderPipeline({...this.props,bufferLayout:this.bufferLayout,topology:this.topology,parameters:this.parameters,bindings:this._getBindings(),vs:n,fs:i}),this._attributeInfos=J4(this.pipeline.shaderLayout,this.bufferLayout),e&&this.shaderFactory.release(e),t&&this.shaderFactory.release(t)}return this.pipeline}_lastLogTime=0;_logOpen=!1;_logDrawCallStart(){const e=Yt.level>3?0:XH;
1948Yt.level<2||Date.now()-this._lastLogTime<e||(this._lastLogTime=Date.now(),this._logOpen=!0,Yt.group(Ff,`>>> DRAWING MODEL ${this.id}`,{collapsed:Yt.level<=2})())}_logDrawCallEnd(){if(this._logOpen){const e=UH(this.pipeline.shaderLayout,this.id);Yt.table(Ff,e)();const t=this.shaderInputs.getDebugTable();for(const[i,s]of Object.entries(this.uniforms))t[i]={value:s};Yt.table(Ff,t)();const n=this._getAttributeDebugTable();Yt.table(Ff,this._attributeInfos)(),Yt.table(Ff,n)(),Yt.groupEnd(Ff)(),this._logOpen=!1}}_drawCount=0;_logFramebuffer(e){const t=this.device.props.debugFramebuffers;if(this._drawCount++,!t)return;const n=e.props.framebuffer;n&&zH(n,{id:n.id,minimap:!0})}_getAttributeDebugTable(){const e={};for(const[t,n]of Object.entries(this._attributeInfos)){const i=this.vertexArray.attributes[n.location];e[n.location]={name:t,type:n.shaderType,values:i?this._getBufferOrConstantValues(i,n.bufferDataType):"null"}}if(this.vertexArray.indexBuffer){const{indexBuffer:t}=this.vertexArray,n=t.indexType==="uint32"?new Uint32Array(t.debugData):new Uint16Array(t.debugData);e.indices={name:"indices",type:t.indexType,values:n.toString()}}return e}_getBufferOrConstantValues(e,t){const n=Y4(t);return(e instanceof Hi?new n(e.debugData):e).toString()}}function qH(r){return!!(r.uniformTypes&&!N1(r.uniformTypes))}function JH(r){return{type:r.type,shaderLanguage:r.info.shadingLanguage,shaderLanguageVersion:r.info.shadingLanguageVersion,gpu:r.info.gpu,features:r.features}}function N1(r){for(const e in r)return!1;return!0}class nh{device;model;transformFeedback;static defaultProps={...Di.defaultProps,outputs:void 0,feedbackBuffers:void 0};static isSupported(e){return e?.info?.type==="webgl"}constructor(e,t=nh.defaultProps){if(!nh.isSupported(e))throw new Error("BufferTransform not yet implemented on WebGPU");this.device=e,this.model=new Di(this.device,{id:t.id||"buffer-transform-model",fs:t.fs||V4(),topology:t.topology||"point-list",varyings:t.outputs||t.varyings,...t}),this.transformFeedback=this.device.createTransformFeedback({layout:this.model.pipeline.shaderLayout,buffers:t.feedbackBuffers}),this.model.setTransformFeedback(this.transformFeedback),Object.seal(this)}destroy(){this.model&&this.model.destroy()}delete(){this.destroy()}run(e){e?.inputBuffers&&this.model.setAttributes(e.inputBuffers),e?.outputBuffers&&this.transformFeedback.setBuffers(e.outputBuffers);const t=this.device.beginRenderPass(e);this.model.draw(t),t.end()}getBuffer(e){return this.transformFeedback.getBuffer(e)}readAsync(e){const t=this.getBuffer(e);if(!t)throw new Error("BufferTransform#getBuffer");if(t instanceof Hi)return t.readAsync();const{buffer:n,byteOffset:i=0,byteLength:s=n.byteLength}=t;return n.readAsync(i,s)}}const KH="transform_output";class U3{device;model;sampler;currentIndex=0;samplerTextureMap=null;bindings=[];resources={};constructor(e,t){this.device=e,this.sampler=e.createSampler({addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",minFilter:"nearest",magFilter:"nearest",mipmapFilter:"nearest"}),this.model=new Di(this.device,{id:t.id||"texture-transform-model",fs:t.fs||V4({input:t.targetTextureVarying,inputChannels:t.targetTextureChannels,output:KH}),vertexCount:t.vertexCount,...t}),this._initialize(t),Object.seal(this)}destroy(){this.model.destroy();for(const e of this.bindings)e.framebuffer?.destroy()}delete(){this.destroy()}run(e){const{framebuffer:t}=this.bindings[this.currentIndex],n=this.device.beginRenderPass({framebuffer:t,...e});this.model.draw(n),n.end()}getTargetTexture(){const{targetTexture:e}=this.bindings[this.currentIndex];return e}getFramebuffer(){return this.bindings[this.currentIndex].framebuffer}_initialize(e){this._updateBindings(e)}_updateBindings(e){this.bindings[this.currentIndex]=this._updateBinding(this.bindings[this.currentIndex],e)}_updateBinding(e,{sourceBuffers:t,sourceTextures:n,targetTexture:i}){if(e||(e={sourceBuffers:{},sourceTextures:{},targetTexture:null}),Object.assign(e.sourceTextures,n),Object.assign(e.sourceBuffers,t),i){e.targetTexture=i;const{width:s,height:o}=i;e.framebuffer&&e.framebuffer.destroy(),e.framebuffer=this.device.createFramebuffer({
1948id:"transform-framebuffer",width:s,height:o,colorAttachments:[i]}),e.framebuffer.resize({width:s,height:o})}return e}_setSourceTextureParameters(){const e=this.currentIndex,{sourceTextures:t}=this.bindings[e];for(const n in t)t[n].sampler=this.sampler}}class Zs{id;topology;vertexCount;indices;attributes;userData={};constructor(e){const{attributes:t={},indices:n=null,vertexCount:i=null}=e;this.id=e.id||Ah("geometry"),this.topology=e.topology,n&&(this.indices=ArrayBuffer.isView(n)?{value:n,size:1}:n),this.attributes={};for(const[s,o]of Object.entries(t)){const l=ArrayBuffer.isView(o)?{value:o}:o;if(!ArrayBuffer.isView(l.value))throw new Error(`${this._print(s)}: must be typed array or object with value as typed array`);if((s==="POSITION"||s==="positions")&&!l.size&&(l.size=3),s==="indices"){if(this.indices)throw new Error("Multiple indices detected");this.indices=l}else this.attributes[s]=l}this.indices&&this.indices.isIndexed!==void 0&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this.vertexCount=i||this._calculateVertexCount(this.attributes,this.indices)}getVertexCount(){return this.vertexCount}getAttributes(){return this.indices?{indices:this.indices,...this.attributes}:this.attributes}_print(e){return`Geometry ${this.id} attribute ${e}`}_setAttributes(e,t){return this}_calculateVertexCount(e,t){if(t)return t.value.length;let n=1/0;for(const i of Object.values(e)){const{value:s,size:o,constant:l}=i;!l&&s&&o!==void 0&&o>=1&&(n=Math.min(n,s.length/o))}return n}}const ZH=`struct VertexInputs { 1949 @location(0) clipSpacePosition: vec2<f32>, 1950 @location(1) texCoord: vec2<f32>, 1951 @location(2) coordinate: vec2<f32> 1952} 1953 1954struct FragmentInputs { 1955 @builtin(position) Position : vec4<f32>, 1956 @location(0) position : vec2<f32>, 1957 @location(1) coordinate : vec2<f32>, 1958 @location(2) uv : vec2<f32> 1959}; 1960 1961@vertex 1962fn vertexMain(inputs: VertexInputs) -> FragmentInputs { 1963 var outputs: FragmentInputs; 1964 outputs.Position = vec4(inputs.clipSpacePosition, 0., 1.); 1965 outputs.position = inputs.clipSpacePosition; 1966 outputs.coordinate = inputs.coordinate; 1967 outputs.uv = inputs.texCoord; 1968 return outputs; 1969} 1970`,YH=`#version 300 es 1971in vec2 clipSpacePositions; 1972in vec2 texCoords; 1973in vec2 coordinates; 1974 1975out vec2 position; 1976out vec2 coordinate; 1977out vec2 uv; 1978 1979void main(void) { 1980 gl_Position = vec4(clipSpacePositions, 0., 1.); 1981 position = clipSpacePositions; 1982 coordinate = coordinates; 1983 uv = texCoords; 1984} 1985`,z3=[-1,-1,1,-1,-1,1,1,1];class QH extends Di{constructor(e,t){const n=z3.map(i=>i===-1?0:i);t.source&&(t={...t,source:`${ZH} 1986${t.source}`}),super(e,{id:t.id||Ah("clip-space"),...t,vs:YH,vertexCount:4,geometry:new Zs({topology:"triangle-strip",vertexCount:4,attributes:{clipSpacePositions:{size:2,value:new Float32Array(z3)},texCoords:{size:2,value:new Float32Array(n)},coordinates:{size:2,value:new Float32Array(n)}}})})}}class Jm{id;matrix=new vn;display=!0;position=new dt;rotation=new dt;scale=new dt(1,1,1);userData={};props={};constructor(e={}){const{id:t}=e;this.id=t||Ah(this.constructor.name),this._setScenegraphNodeProps(e)}getBounds(){return null}destroy(){}delete(){this.destroy()}setProps(e){return this._setScenegraphNodeProps(e),this}toString(){return`{type: ScenegraphNode, id: ${this.id})}`}setPosition(e){return this.position=e,this}setRotation(e){return this.rotation=e,this}setScale(e){return this.scale=e,this}setMatrix(e,t=!0){t?this.matrix.copy(e):this.matrix=e}setMatrixComponents(e){const{position:t,rotation:n,scale:i,update:s=!0}=e;return t&&this.setPosition(t),n&&this.setRotation(n),i&&this.setScale(i),s&&this.updateMatrix(),this}updateMatrix(){const e=this.position,t=this.rotation,n=this.scale;return this.matrix.identity(),this.matrix.translate(e),this.matrix.rotateXYZ(t),this.matrix.scale(n),this}update(e={}){const{position:t,rotation:n,scale:i}=e;return t&&this.setPosition(t),n&&this.setRotation(n),i&&this.setScale(i),this.updateMatrix(),this}getCoordinateUniforms(e,t){t=t||this.matrix;const n=new vn(e).multiplyRight(t),i=n.invert(),s=i.transpose();return{viewMatrix:e,modelMatrix:t,objectMatrix:t,worldMatrix:n,worldInverseMatrix:i,worldInverseTransposeMatrix:s}}_setScenegraphNodeProps(e){"position"in e&&this.setPosition(e.position),"rotation"in e&&this.setRotation(e.rotation),"scale"in e&&this.setScale(e.scale),"matrix"in e&&this.setMatrix(e.matrix),Object.assign(this.props,e)}}class Qd extends Jm{children;constructor(e={}){e=Array.isArray(e)?{children:e}:e;const{children:t=[]}=e;Yt.assert(t.every(n=>n instanceof Jm),"every child must an instance of ScenegraphNode"),super(e),this.children=t}getBounds(){const e=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];return this.traverse((t,{worldMatrix:n})=>{const i=t.getBounds();if(!i)return;const[s,o]=i,l=new dt(s).add(o).divide([2,2,2]);n.transformAsPoint(l,l);const f=new dt(o).subtract(s).divide([2,2,2]);n.transformAsVector(f,f);for(let A=0;A<8;A++){const v=new dt(A&1?-1:1,A&2?-1:1,A&4?-1:1).multiply(f).add(l);for(let T=0;T<3;T++)e[0][T]=Math.min(e[0][T],v[T]),e[1][T]=Math.max(e[1][T],v[T])}}),Number.isFinite(e[0][0])?e:null}
1986destroy(){this.children.forEach(e=>e.destroy()),this.removeAll(),super.destroy()}add(...e){for(const t of e)Array.isArray(t)?this.add(...t):this.children.push(t);return this}remove(e){const t=this.children,n=t.indexOf(e);return n>-1&&t.splice(n,1),this}removeAll(){return this.children=[],this}traverse(e,{worldMatrix:t=new vn}={}){const n=new vn(t).multiplyRight(this.matrix);for(const i of this.children)i instanceof Qd?i.traverse(e,{worldMatrix:n}):e(i,{worldMatrix:n})}}class U1 extends Jm{model;bounds=null;managedResources;constructor(e){super(e),this.model=e.model,this.managedResources=e.managedResources||[],this.bounds=e.bounds||null,this.setProps(e)}destroy(){this.model&&(this.model.destroy(),this.model=null),this.managedResources.forEach(e=>e.destroy()),this.managedResources=[]}getBounds(){return this.bounds}draw(e){return this.model.draw(e)}}class dD extends Zs{constructor(e={}){const{id:t=Ah("cube-geometry"),indices:n=!0}=e;super(n?{...e,id:t,topology:"triangle-list",indices:{size:1,value:eW},attributes:{...aW,...e.attributes}}:{...e,id:t,topology:"triangle-list",indices:void 0,attributes:{...lW,...e.attributes}})}}const eW=new Uint16Array([0,1,2,0,2,3,4,5,6,4,6,7,8,9,10,8,10,11,12,13,14,12,14,15,16,17,18,16,18,19,20,21,22,20,22,23]),tW=new Float32Array([-1,-1,1,1,-1,1,1,1,1,-1,1,1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,1,-1,-1,1,1,1,1,1,1,1,-1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,-1,1,-1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1]),rW=new Float32Array([0,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,1,0,0,1,0,0,1,0,0,1,0,0,-1,0,0,-1,0,0,-1,0,0,-1,0,0]),nW=new Float32Array([0,0,1,0,1,1,0,1,1,0,1,1,0,1,0,0,0,1,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1]),iW=new Float32Array([1,-1,1,-1,-1,1,-1,-1,-1,1,-1,-1,1,-1,1,-1,-1,-1,1,1,1,1,-1,1,1,-1,-1,1,1,-1,1,1,1,1,-1,-1,-1,1,1,1,1,1,1,1,-1,-1,1,-1,-1,1,1,1,1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,-1,-1,-1,1,-1,1,-1,1,1,1,-1,1,1,-1,-1,1,-1,-1,1,1,-1,1,1,1,1,1,-1,-1,-1,-1,-1,-1,1,-1,1,1,-1,1,-1,-1,-1,1,-1]),sW=new Float32Array([1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,1,0,1,1,0,0,1,1,0,1,0,0,0,0,1,0,1,1,1,1,0,1,0,0,1,0,1,1,0,0]),oW=new Float32Array([1,0,1,1,0,0,1,1,0,0,0,1,1,0,0,1,1,0,1,1,0,0,0,1,1,1,1,1,1,0,1,1,1,0,0,1,1,1,0,1,1,1,1,1,1,0,0,1,0,1,1,1,1,1,1,1,1,1,0,1,0,1,0,1,0,1,1,1,1,1,0,1,0,0,1,1,0,1,1,1,0,1,0,1,0,0,0,1,0,0,1,1,0,1,0,1,1,1,1,1,0,1,1,1,0,0,1,1,0,0,1,1,1,0,1,1,1,1,1,1,1,0,0,1,0,0,0,1,0,1,0,1,1,1,0,1,1,0,0,1,0,1,0,1]),aW={POSITION:{size:3,value:tW},NORMAL:{size:3,value:rW},TEXCOORD_0:{size:2,value:nW}},lW={POSITION:{size:3,value:iW},TEXCOORD_0:{size:2,value:sW},COLOR_0:{size:3,value:oW}},cW=`uniform screenUniforms { 1987 vec2 texSize; 1988} screen; 1989`,uW={name:"screen",fs:cW,uniformTypes:{texSize:"vec2<f32>"}};class fW extends sD{constructor(e,t){super(e,t);const{module:n,fs:i,id:s}=t,o={depthWriteEnabled:!1,depthCompare:"always"};this.model=new QH(e,{id:s,fs:i,modules:[n,uW],parameters:o})}render(e){this._renderPass(this.device,e)}delete(){this.model.destroy(),this.model=null}_renderPass(e,t){const{clearCanvas:n,inputBuffer:i,outputBuffer:s}=t,o=[i.width,i.height],l={texSrc:i.colorAttachments[0],texSize:o};this.model.shaderInputs.setProps({screen:l,...t.moduleProps});const f=this.device.beginRenderPass({framebuffer:s,parameters:{viewport:[0,0,...o]},clearColor:n?[0,0,0,0]:!1,clearDepth:1,clearStencil:!1});this.model.draw(f),f.end()}}class hW{constructor(e,t){this.id=`${e.name}-pass`,this.props=t,R4(e),this.module=e}setup({device:e}){this.passes=dW(e,this.module,this.id)}setProps(e){this.props=e}preRender(){}postRender(e){const t=this.passes,{target:n}=e;let i=e.inputBuffer,s=e.swapBuffer;for(let o=0;o<t.length;o++){const l=o===t.length-1,f=n!==void 0&&l;f&&(s=n);const A=!f||!!e.clearCanvas,v={},T=this.module.passes[o].uniforms;v[this.module.name]={...this.props,...T},t[o].render({clearCanvas:A,inputBuffer:i,outputBuffer:s,moduleProps:v});const I=s;s=i,i=I}return i}cleanup(){if(this.passes){for(const e of this.passes)e.delete();this.passes=void 0}}}function dW(r,e,t){return e.passes.map((n,i)=>{const s=gW(e,n),o=`${t}-${i}`;return new fW(r,{id:o,module:e,fs:s})})}const pD=`#version 300 es 1990uniform sampler2D texSrc; 1991 1992in vec2 position; 1993in vec2 coordinate; 1994in vec2 uv; 1995 1996out vec4 fragColor; 1997`,pW=r=>`${pD} 1998void main() { 1999 fragColor = texture(texSrc, coordinate); 2000 fragColor = ${r}(fragColor, screen.texSize, coordinate); 2001} 2002`,AW=r=>`${pD} 2003void main() { 2004 fragColor = ${r}(texSrc, screen.texSize, coordinate); 2005} 2006`;function gW(r,e){if(e.filter){const t=typeof e.filter=="string"?e.filter:`${r.name}_filterColor_ext`;return pW(t)}if(e.sampler){const t=typeof e.sampler=="string"?e.sampler:`${r.name}
2006_sampleColor`;return AW(t)}return""}const mW={blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"zero",blendAlphaOperation:"add",blendAlphaSrcFactor:"constant-alpha",blendAlphaDstFactor:"zero"};class AD extends D_{constructor(){super(...arguments),this._colorEncoderState=null}render(e){return"pickingFBO"in e?this._drawPickingBuffer(e):super.render(e)}_drawPickingBuffer({layers:e,layerFilter:t,views:n,viewports:i,onViewportActive:s,pickingFBO:o,deviceRect:{x:l,y:f,width:A,height:v},cullRect:T,effects:I,pass:F="picking",pickZ:N,shaderModuleProps:U}){this.pickZ=N;const $=this._resetColorEncoder(N),V=[l,f,A,v],G=super.render({target:o,layers:e,layerFilter:t,views:n,viewports:i,onViewportActive:s,cullRect:T,effects:I?.filter(ue=>ue.useInPicking),pass:F,isPicking:!0,shaderModuleProps:U,clearColor:[0,0,0,0],colorMask:15,scissorRect:V});return this._colorEncoderState=null,{decodePickingColor:$&&yW.bind(null,$),stats:G}}shouldDrawLayer(e){const{pickable:t,operation:n}=e.props;return t&&n.includes("draw")||n.includes("terrain")||n.includes("mask")}getShaderModuleProps(e,t,n){return{picking:{isActive:1,isAttribute:this.pickZ},lighting:{enabled:!1}}}getLayerParameters(e,t,n){const i={...e.props.parameters},{pickable:s,operation:o}=e.props;return!this._colorEncoderState||o.includes("terrain")?i.blend=!1:s&&o.includes("draw")&&(Object.assign(i,mW),i.blend=!0,i.blendColor=_W(this._colorEncoderState,e,n)),i}_resetColorEncoder(e){return this._colorEncoderState=e?null:{byLayer:new Map,byAlpha:[]},this._colorEncoderState}}function _W(r,e,t){const{byLayer:n,byAlpha:i}=r;let s,o=n.get(e);return o?(o.viewports.push(t),s=o.a):(s=n.size+1,s<=255?(o={a:s,layer:e,viewports:[t]},n.set(e,o),i[s]=o):(Zr.warn("Too many pickable layers, only picking the first 255")(),s=0)),[0,0,0,s/255]}function yW(r,e){const t=r.byAlpha[e[3]];return t&&{pickedLayer:t.layer,pickedViewports:t.viewports,pickedObjectIndex:t.layer.decodePickingColor(e)}}const Od={NO_STATE:"Awaiting state",MATCHED:"Matched. State transferred from previous layer",INITIALIZED:"Initialized",AWAITING_GC:"Discarded. Awaiting garbage collection",AWAITING_FINALIZATION:"No longer matched. Awaiting garbage collection",FINALIZED:"Finalized! Awaiting garbage collection"},Km=Symbol.for("component"),$u=Symbol.for("propTypes"),Sv=Symbol.for("deprecatedProps"),ep=Symbol.for("asyncPropDefaults"),ih=Symbol.for("asyncPropOriginal"),Vu=Symbol.for("asyncPropResolved");function F_(r,e=()=>!0){return Array.isArray(r)?gD(r,e,[]):e(r)?[r]:[]}function gD(r,e,t){let n=-1;for(;++n<r.length;){const i=r[n];Array.isArray(i)?gD(i,e,t):e(i)&&t.push(i)}return t}function vW({target:r,source:e,start:t=0,count:n=1}){const i=e.length,s=n*i;let o=0;for(let l=t;o<i;o++)r[l++]=e[o];for(;o<s;)o<s-o?(r.copyWithin(t+o,t,t+o),o*=2):(r.copyWithin(t+o,t,t+s-o),o=s);return r}class bW{constructor(e,t,n){this._loadCount=0,this._subscribers=new Set,this.id=e,this.context=n,this.setData(t)}subscribe(e){this._subscribers.add(e)}unsubscribe(e){this._subscribers.delete(e)}inUse(){return this._subscribers.size>0}delete(){}getData(){return this.isLoaded?this._error?Promise.reject(this._error):this._content:this._loader.then(()=>this.getData())}setData(e,t){if(e===this._data&&!t)return;this._data=e;const n=++this._loadCount;let i=e;typeof e=="string"&&(i=Kc(e)),i instanceof Promise?(this.isLoaded=!1,this._loader=i.then(s=>{this._loadCount===n&&(this.isLoaded=!0,this._error=void 0,this._content=s)}).catch(s=>{this._loadCount===n&&(this.isLoaded=!0,this._error=s||!0)})):(this.isLoaded=!0,this._error=void 0,this._content=e);for(const s of this._subscribers)s.onChange(this.getData())}}class xW{constructor(e){this.protocol=e.protocol||"resource://",this._context={device:e.device,gl:e.device?.gl,resourceManager:this},this._resources={},this._consumers={},this._pruneRequest=null}contains(e){return e.startsWith(this.protocol)?!0:e in this._resources}add({resourceId:e,data:t,forceUpdate:n=!1,persistent:i=!0}){let s=this._resources[e];s?s.setData(t,n):(s=new bW(e,t,this._context),this._resources[e]=s),s.persistent=i}remove(e){const t=this._resources[e];t&&(t.delete(),delete this._resources[e])}unsubscribe({consumerId:e}){const t=this._consumers[e];if(t){for(const n in t){const i=t[n],s=this._resources[i.resourceId];s&&s.unsubscribe(i)}delete this._consumers[e],this.prune()}}subscribe({resourceId:e,onChange:t,consumerId:n,requestId:i="default"}){const{_resources:s,protocol:o}=this;e.startsWith(o)&&(e=e.replace(o,""),s[e]||this.add({resourceId:e,data:null,persistent:!1}));const l=s[e];if(this._track(n,i,l,t),l)return l.getData()}prune(){this._pruneRequest||(this._pruneRequest=setTimeout(()=>this._prune(),0))}finalize(){for(const e in this._resources)this._resources[e].delete()}_track(e,t,n,i){const s=this._consumers,o=s[e]=s[e]||{};let l=o[t];const f=l&&l.resourceId&&this._resources[l.resourceId];f&&(f.unsubscribe(l),this.prune()),n&&(l?(l.onChange=i,l.resourceId=n.id):l={onChange:i,resourceId:n.id},o[t]=l,n.subscribe(l))}_prune(){this._pruneRequest=null;for(const e of Object.keys(this._resources)){const t=this._resources[e];!t.persistent&&!t.inUse()&&(t.delete(),delete this._resources[e])}}}const wW="layerManager.setLayers",TW="layerManager.activateViewport";class EW{constructor(e,t){this._lastRenderedLayers=[],this._needsRedraw=!1,this._needsUpdate=!1,this._nextLayers=null,this._debug=!1,this._defaultShaderModulesChanged=!1,this.activateViewport=l=>{Ao(TW,this,l),l&&(this.context.viewport=l)};const{deck:n,stats:i,viewport:s,timeline:o}=t||{};this.layers=[],this.resourceManager=new xW({device:e,protocol:"deck://"}),this.context={mousePosition:null,userData:{},layerManager:this,device:e,gl:e?.gl,deck:n,shaderAssembler:sH(e?.info?.shadingLanguage||"glsl"),defaultShaderModules:[Aj],renderPass:void 0,stats:i||new hh({id:"deck.gl"}),viewport:s||new eu({id:"DEFAULT-INITIAL-VIEWPORT"}),timeline:o||new cD,resourceManager:this.resourceManager,onError:void 0},Object.seal(this)}finalize(){this.resourceManager.finalize();for(const e of this.layers)this._finalizeLayer(e)}needsRedraw(e={clearRedrawFlags:!1}){let t=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);for(const n of this.layers){const i=n.getNeedsRedraw(e);t=t||i}return t}needsUpdate(){return this._nextLayers&&this._nextLayers!==this._lastRenderedLayers?"layers changed":this._defaultShaderModulesChanged?"shader modules changed":this._needsUpdate}setNeedsRedraw(e){this._needsRedraw=this._needsRedraw||e}setNeedsUpdate(e){this._needsUpdate=this._needsUpdate||e}getLayers({layerIds:e}={}){return e?this.layers.filter(t=>e.find(n=>t.id.indexOf(n)===0)):this.layers}setProps(e){"debug"in e&&(this._debug=e.debug),"userData"in e&&(this.context.userData=e.userData),"layers"in e&&(this._nextLayers=e.layers
vendor: 48,677 bytes, line 2006
2006),"onError"in e&&(this.context.onError=e.onError)}setLayers(e,t){Ao(wW,this,t,e),this._lastRenderedLayers=e;const n=F_(e,Boolean);for(const i of n)i.context=this.context;this._updateLayers(this.layers,n)}updateLayers(){const e=this.needsUpdate();e&&(this.setNeedsRedraw(`updating layers: ${e}`),this.setLayers(this._nextLayers||this._lastRenderedLayers,e)),this._nextLayers=null}addDefaultShaderModule(e){const{defaultShaderModules:t}=this.context;t.find(n=>n.name===e.name)||(t.push(e),this._defaultShaderModulesChanged=!0)}removeDefaultShaderModule(e){const{defaultShaderModules:t}=this.context,n=t.findIndex(i=>i.name===e.name);n>=0&&(t.splice(n,1),this._defaultShaderModulesChanged=!0)}_handleError(e,t,n){n.raiseError(t,`${e} of ${n}`)}_updateLayers(e,t){const n={};for(const o of e)n[o.id]?Zr.warn(`Multiple old layers with same id ${o.id}`)():n[o.id]=o;if(this._defaultShaderModulesChanged){for(const o of e)o.setNeedsUpdate(),o.setChangeFlags({extensionsChanged:!0});this._defaultShaderModulesChanged=!1}const i=[];this._updateSublayersRecursively(t,n,i),this._finalizeOldLayers(n);let s=!1;for(const o of i)if(o.hasUniformTransition()){s=`Uniform transition in ${o}`;break}this._needsUpdate=s,this.layers=i}_updateSublayersRecursively(e,t,n){for(const i of e){i.context=this.context;const s=t[i.id];s===null&&Zr.warn(`Multiple new layers with same id ${i.id}`)(),t[i.id]=null;let o=null;try{this._debug&&s!==i&&i.validateProps(),s?(this._transferLayerState(s,i),this._updateLayer(i)):this._initializeLayer(i),n.push(i),o=i.isComposite?i.getSubLayers():null}catch(l){this._handleError("matching",l,i)}o&&this._updateSublayersRecursively(o,t,n)}}_finalizeOldLayers(e){for(const t in e){const n=e[t];n&&this._finalizeLayer(n)}}_initializeLayer(e){try{e._initialize(),e.lifecycle=Od.INITIALIZED}catch(t){this._handleError("initialization",t,e)}}_transferLayerState(e,t){t._transferState(e),t.lifecycle=Od.MATCHED,t!==e&&(e.lifecycle=Od.AWAITING_GC)}_updateLayer(e){try{e._update()}catch(t){this._handleError("update",t,e)}}_finalizeLayer(e){this._needsRedraw=this._needsRedraw||`finalized ${e}`,e.lifecycle=Od.AWAITING_FINALIZATION;try{e._finalize(),e.lifecycle=Od.FINALIZED}catch(t){this._handleError("finalization",t,e)}}}function rs(r,e,t){if(r===e)return!0;if(!t||!r||!e)return!1;if(Array.isArray(r)){if(!Array.isArray(e)||r.length!==e.length)return!1;for(let n=0;n<r.length;n++)if(!rs(r[n],e[n],t-1))return!1;return!0}if(Array.isArray(e))return!1;if(typeof r=="object"&&typeof e=="object"){const n=Object.keys(r),i=Object.keys(e);if(n.length!==i.length)return!1;for(const s of n)if(!e.hasOwnProperty(s)||!rs(r[s],e[s],t-1))return!1;return!0}return!1}class CW{constructor(e){this.views=[],this.width=100,this.height=100,this.viewState={},this.controllers={},this.timeline=e.timeline,this._viewports=[],this._viewportMap={},this._isUpdating=!1,this._needsRedraw="First render",this._needsUpdate="Initialize",this._eventManager=e.eventManager,this._eventCallbacks={onViewStateChange:e.onViewStateChange,onInteractionStateChange:e.onInteractionStateChange},Object.seal(this),this.setProps(e)}finalize(){for(const e in this.controllers){const t=this.controllers[e];t&&t.finalize()}this.controllers={}}needsRedraw(e={clearRedrawFlags:!1}){const t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}setNeedsUpdate(e){this._needsUpdate=this._needsUpdate||e,this._needsRedraw=this._needsRedraw||e}updateViewStates(){for(const e in this.controllers){const t=this.controllers[e];t&&t.updateTransition()}}getViewports(e){return e?this._viewports.filter(t=>t.containsPixel(e)):this._viewports}getViews(){const e={};return this.views.forEach(t=>{e[t.id]=t}),e}getView(e){return this.views.find(t=>t.id===e)}getViewState(e){const t=typeof e=="string"?this.getView(e):e,n=t&&this.viewState[t.getViewStateId()]||this.viewState;return t?t.filterViewState(n):n}getViewport(e){return this._viewportMap[e]}unproject(e,t){const n=this.getViewports(),i={x:e[0],y:e[1]};for(let s=n.length-1;s>=0;--s){const o=n[s];if(o.containsPixel(i)){const l=e.slice();return l[0]-=o.x,l[1]-=o.y,o.unproject(l,t)}}return null}setProps(e){e.views&&this._setViews(e.views),e.viewState&&this._setViewState(e.viewState),("width"in e||"height"in e)&&this._setSize(e.width,e.height),this._isUpdating||this._update()}_update(){this._isUpdating=!0,this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._needsUpdate&&(this._needsUpdate=!1,this._rebuildViewports()),this._isUpdating=!1}_setSize(e,t){(e!==this.width||t!==this.height)&&(this.width=e,this.height=t,this.setNeedsUpdate("Size changed"))}_setViews(e){e=F_(e,Boolean),this._diffViews(e,this.views)&&this.setNeedsUpdate("views changed"),this.views=e}_setViewState(e){e?(!rs(e,this.viewState,3)&&this.setNeedsUpdate("viewState changed"),this.viewState=e):Zr.warn("missing `viewState` or `initialViewState`")()}_createController(e,t){const n=t.type;return new n({timeline:this.timeline,eventManager:this._eventManager,onViewStateChange:this._eventCallbacks.onViewStateChange,onStateChange:this._eventCallbacks.onInteractionStateChange,makeViewport:s=>this.getView(e.id)?.makeViewport({viewState:s,width:this.width,height:this.height})})}_updateController(e,t,n,i){const s=e.controller;if(s&&n){const o={...t,...s,id:e.id,x:n.x,y:n.y,width:n.width,height:n.height};return(!i||i.constructor!==s.type)&&(i=this._createController(e,o)),i&&i.setProps(o),i}return null}_rebuildViewports(){const{views:e}=this,t=this.controllers;this._viewports=[],this.controllers={};let n=!1;for(let i=e.length;i--;){const s=e[i],o=this.getViewState(s),l=s.makeViewport({viewState:o,width:this.width,height:this.height});let f=t[s.id];const A=!!s.controller;A&&!f&&(n=!0),(n||!A)&&f&&(f.finalize(),f=null),this.controllers[s.id]=this._updateController(s,o,l,f),l&&this._viewports.unshift(l)}for(const i in t){const s=t[i];s&&!this.controllers[i]&&s.finalize()}this._buildViewportMap()}_buildViewportMap(){this._viewportMap={},this._viewports.forEach(e=>{e.id&&(this._viewportMap[e.id]=this._viewportMap[e.id]||e)})}_diffViews(e,t){return e.length!==t.length?!0:e.some((n,i)=>!e[i].equals(t[i]))}}const SW=/([0-9]+\.?[0-9]*)(%|px)/;function Mu(r){switch(typeof r){case"number":return{position:r,relative:!1};case"string":const e=SW.exec(r);if(e&&e.length>=3){const t=e[2]==="%",n=parseFloat(e[1]);return{position:t?n/100:n,relative:t}}default:throw new Error(`Could not parse position string ${r}`)}}function Ru(r,e){return r.relative?Math.round(r.position*e):r.position}class hp{constructor(e){const{id:t,x:n=0,y:i=0,width:s="100%",height:o="100%",padding:l=null}=e;this.id=t||this.constructor.displayName||"view",this.props={...e,id:this.id},this._x=Mu(n),this._y=Mu(i),this._width=Mu(s),this._height=Mu(o),this._padding=l&&{left:Mu(l.left||0),right:Mu(l.right||0),top:Mu(l.top||0),bottom:Mu(l.bottom||0)},this.equals=this.equals.bind(this),Object.seal(this)}equals(e){return this===e?!0:this.constructor===e.constructor&&rs(this.props,e.props,2)}makeViewport({width:e,height:t,viewState:n}){n=this.filterViewState(n);const i=this.getDimensions({width:e,height:t});if(!i.height||!i.width)return null;const s=this.getViewportType(n);return new s({...n,...this.props,...i})}getViewStateId(){const{viewState:e}=this.props;return typeof e=="string"?e:e?.id||this.id}filterViewState(e){if(this.props.viewState&&typeof this.props.viewState=="object"){if(!this.props.viewState.id)return this.props.viewState;const t={...e};for(const n in this.props.viewState)n!=="id"&&(t[n]=this.props.viewState[n]);return t}return e}getDimensions({width:e,height:t}){const n={x:Ru(this._x,e),y:Ru(this._y,t),width:Ru(this._width,e),height:Ru(this._height,t)};return this._padding&&(n.padding={left:Ru(this._padding.left,e),top:Ru(this._padding.top,t),right:Ru(this._padding.right,e),bottom:Ru(this._padding.bottom,t)}),n}get controller(){const e=this.props.controller;return e?e===!0?{type:this.ControllerType}:typeof e=="function"?{type:e}:{type:this.ControllerType,...e}:null}}class L_{constructor(e){this._inProgress=!1,this._handle=null,this.time=0,this.settings={duration:0},this._timeline=e}get inProgress(){return this._inProgress}start(e){this.cancel(),this.settings=e,this._inProgress=!0,this.settings.onStart?.(this)}end(){this._inProgress&&(this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1,this.settings.onEnd?.(this))}cancel(){this._inProgress&&(this.settings.onInterrupt?.(this),this._timeline.removeChannel(this._handle),this._handle=null,this._inProgress=!1)}update(){if(!this._inProgress)return!1;if(this._handle===null){const{_timeline:e,settings:t}=this;this._handle=e.addChannel({delay:e.getTime(),duration:t.duration})}return this.time=this._timeline.getTime(this._handle),this._onUpdate(),this.settings.onUpdate?.(this),this._timeline.isFinished(this._handle)&&this.end(),!0}_onUpdate(){}}const V3=()=>{},z1={BREAK:1,SNAP_TO_END:2,IGNORE:3},IW=r=>r,BW=z1.BREAK;let PW=class{constructor(e){this._onTransitionUpdate=t=>{const{time:n,settings:{interpolator:i,startProps:s,endProps:o,duration:l,easing:f}}=t,A=f(n/l),v=i.interpolateProps(s,o,A);this.propsInTransition=this.getControllerState({...this.props,...v}).getViewportProps(),this.onViewStateChange({viewState:this.propsInTransition,oldViewState:this.props})},this.getControllerState=e.getControllerState,this.propsInTransition=null,this.transition=new L_(e.timeline),this.onViewStateChange=e.onViewStateChange||V3,this.onStateChange=e.onStateChange||V3}finalize(){this.transition.cancel()}getViewportInTransition(){return this.propsInTransition}processViewStateChange(e){let t=!1;const n=this.props;if(this.props=e,!n||this._shouldIgnoreViewportChange(n,e))return!1;if(this._isTransitionEnabled(e)){let i=n;if(this.transition.inProgress){const{interruption:s,endProps:o}=this.transition.settings;i={...n,...s===z1.SNAP_TO_END?o:this.propsInTransition||n}}this._triggerTransition(i,e),t=!0}else this.transition.cancel();return t}updateTransition(){this.transition.update()}_isTransitionEnabled(e){const{transitionDuration:t,transitionInterpolator:n}=e;return(t>0||t==="auto")&&!!n}_isUpdateDueToCurrentTransition(e){return this.transition.inProgress&&this.propsInTransition?this.transition.settings.interpolator.arePropsEqual(e,this.propsInTransition):!1}_shouldIgnoreViewportChange(e,t){return this.transition.inProgress?this.transition.settings.interruption===z1.IGNORE||this._isUpdateDueToCurrentTransition(t):this._isTransitionEnabled(t)?t.transitionInterpolator.arePropsEqual(e,t):!0}_triggerTransition(e,t){const n=this.getControllerState(e),i=this.getControllerState(t).shortestPathFrom(n),s=t.transitionInterpolator,o=s.getDuration?s.getDuration(e,t):t.transitionDuration;if(o===0)return;const l=s.initializeProps(e,i);this.propsInTransition={};const f={duration:o,easing:t.transitionEasing||IW,interpolator:s,interruption:t.transitionInterruption||BW,startProps:l.start,endProps:l.end,onStart:t.onTransitionStart,onUpdate:this._onTransitionUpdate,onInterrupt:this._onTransitionEnd(t.onTransitionInterrupt),onEnd:this._onTransitionEnd(t.onTransitionEnd)};this.transition.start(f),this.onStateChange({inTransition:!0}),this.updateTransition()}_onTransitionEnd(e){return t=>{this.propsInTransition=null,this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1}),e?.(t)}}};function Ks(r,e){if(!r)throw new Error(e||"deck.gl: assertion failed.")}let MW=class{constructor(e){const{compare:t,extract:n,required:i}=e;this._propsToCompare=t,this._propsToExtract=n||t,this._requiredProps=i}arePropsEqual(e,t){for(const n of this._propsToCompare)if(!(n in e)||!(n in t)||!ga(e[n],t[n]))return!1;return!0}initializeProps(e,t){const n={},i={};for(const s of this._propsToExtract)(s in e||s in t)&&(n[s]=e[s],i[s]=t[s]);return this._checkRequiredProps(n),this._checkRequiredProps(i),{start:n,end:i}}getDuration(e,t){return t.transitionDuration}_checkRequiredProps(e){this._requiredProps&&this._requiredProps.forEach(t=>{const n=e[t];Ks(Number.isFinite(n)||Array.isArray(n),`${t} is required for transition`)})}};const RW=["longitude","latitude","zoom","bearing","pitch"],OW=["longitude","latitude","zoom"];let mD=class extends MW{constructor(e={}){const t=Array.isArray(e)?e:e.transitionProps,n=Array.isArray(e)?{}:e;n.transitionProps=Array.isArray(t)?{compare:t,required:t}:t||{compare:RW,required:OW},super(n.transitionProps),this.opts=n}initializeProps(e,t){const n=super.initializeProps(e,t),{makeViewport:i,around:s}=this.opts;if(i&&s){const o=i(e),l=i(t),f=o.unproject(s);n.start.around=s,Object.assign(n.end,{around:l.project(f),aroundPosition:f,width:t.width,height:t.height})}return n}interpolateProps(e,t,n){const i={};for(const s of this._propsToExtract)i[s]=wl(e[s]||0,t[s]||0,n);if(t.aroundPosition&&this.opts.makeViewport){const s=this.opts.makeViewport({...t,...i});Object.assign(i,s.panByPosition(t.aroundPosition,wl(e.around,t.around,n)))}return i}};const Ou={transitionDuration:0},DW=300,w0=r=>1-(1-r)*(1-r),dd={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],MULTI_PAN:["multipanstart","multipanmove","multipanend"],DOUBLE_CLICK:["dblclick"],KEYBOARD:["keydown"]},Lf={};class FW{constructor(e){this.state={},this._events={},this._interactionState={isDragging:!1},this._customEvents=[],this._eventStartBlocked=null,this._panMove=!1,this.invertPan=!1,this.dragMode="rotate",this.inertia=0,this.scrollZoom=!0,this.dragPan=!0,this.dragRotate=!0,this.doubleClickZoom=!0,this.touchZoom=!0,this.touchRotate=!1,this.keyboard=!0,this.transitionManager=new PW({...e,getControllerState:t=>new this.ControllerState(t),onViewStateChange:this._onTransition.bind(this),onStateChange:this._setInteractionState.bind(this)}),this.handleEvent=this.handleEvent.bind(this),this.eventManager=e.eventManager,this.onViewStateChange=e.onViewStateChange||(()=>{}),this.onStateChange=e.onStateChange||(()=>{}),this.makeViewport=e.makeViewport}set events(e){this.toggleEvents(this._customEvents,!1),this.toggleEvents(e,!0),this._customEvents=e,this.props&&this.setProps(this.props)}finalize(){for(const e in this._events)this._events[e]&&this.eventManager?.off(e,this.handleEvent);this.transitionManager.finalize()}handleEvent(e){this._controllerState=void 0;const t=this._eventStartBlocked;switch(e.type){case"panstart":return t?!1:this._onPanStart(e);case"panmove":return this._onPan(e);case"panend":return this._onPanEnd(e);case"pinchstart":return t?!1:this._onPinchStart(e);case"pinchmove":return this._onPinch(e);case"pinchend":return this._onPinchEnd(e);case"multipanstart":return t?!1:this._onMultiPanStart(e);case"multipanmove":return this._onMultiPan(e);case"multipanend":return this._onMultiPanEnd(e);case"dblclick":return this._onDoubleClick(e);case"wheel":return this._onWheel(e);case"keydown":return this._onKeyDown(e);default:return!1}}get controllerState(){return this._controllerState=this._controllerState||new this.ControllerState({makeViewport:this.makeViewport,...this.props,...this.state}),this._controllerState}getCenter(e){const{x:t,y:n}=this.props,{offsetCenter:i}=e;return[i.x-t,i.y-n]}isPointInBounds(e,t){const{width:n,height:i}=this.props;if(t&&t.handled)return!1;const s=e[0]>=0&&e[0]<=n&&e[1]>=0&&e[1]<=i;return s&&t&&t.stopPropagation(),s}isFunctionKeyPressed(e){const{srcEvent:t}=e;return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}isDragging(){return this._interactionState.isDragging||!1}blockEvents(e){const t=setTimeout(()=>{this._eventStartBlocked===t&&(this._eventStartBlocked=null)},e);this._eventStartBlocked=t}setProps(e){e.dragMode&&(this.dragMode=e.dragMode),this.props=e,"transitionInterpolator"in e||(e.transitionInterpolator=this._getTransitionProps().transitionInterpolator),this.transitionManager.processViewStateChange(e);const{inertia:t}=e;this.inertia=Number.isFinite(t)?t:t===!0?DW:0;const{scrollZoom:n=!0,dragPan:i=!0,dragRotate:s=!0,doubleClickZoom:o=!0,touchZoom:l=!0,touchRotate:f=!1,keyboard:A=!0}=e,v=!!this.onViewStateChange;this.toggleEvents(dd.WHEEL,v&&n),this.toggleEvents(dd.PAN,v),this.toggleEvents(dd.PINCH,v&&(l||f)),this.toggleEvents(dd.MULTI_PAN,v&&f),this.toggleEvents(dd.DOUBLE_CLICK,v&&o),this.toggleEvents(dd.KEYBOARD,v&&A),this.scrollZoom=n,this.dragPan=i,this.dragRotate=s,this.doubleClickZoom=o,this.touchZoom=l,this.touchRotate=f,this.keyboard=A}updateTransition(){this.transitionManager.updateTransition()}toggleEvents(e,t){this.eventManager&&e.forEach(n=>{this._events[n]!==t&&(this._events[n]=t,t?this.eventManager.on(n,this.handleEvent):this.eventManager.off(n,this.handleEvent))})}updateViewport(e,t=null,n={}){const i={...e.getViewportProps(),...t},s=this.controllerState!==e;if(this.state=e.getState(),this._setInteractionState(n),s){const o=this.controllerState&&this.controllerState.getViewportProps();this.onViewStateChange&&this.onViewStateChange({viewState:i,interactionState:this._interactionState,oldViewState:o,viewId:this.props.id})}}_onTransition(e){this.onViewStateChange({...e,interactionState:this._interactionState,viewId:this.props.id})}_setInteractionState(e){Object.assign(this._interactionState,e),this.onStateChange(this._interactionState)}_onPanStart(e){const t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;let n=this.isFunctionKeyPressed(e)||e.rightButton||!1;(this.invertPan||this.dragMode==="pan")&&(n=!n);const i=this.controllerState[n?"panStart":"rotateStart"]({pos:t});return this._panMove=n,this.updateViewport(i,Ou,{isDragging:!0}),!0}_onPan(e){return this.isDragging()?this._panMove?this._onPanMove(e):this._onPanRotate(e):!1}_onPanEnd(e){return this.isDragging()?this._panMove?this._onPanMoveEnd(e):this._onPanRotateEnd(e):!1}_onPanMove(e){if(!this.dragPan)return!1;const t=this.getCenter(e),n=this.controllerState.pan({pos:t});return this.updateViewport(n,Ou,{isDragging:!0,isPanning:!0}),!0}_onPanMoveEnd(e){const{inertia:t}=this;if(this.dragPan&&t&&e.velocity){const n=this.getCenter(e),i=[n[0]+e.velocityX*t/2,n[1]+e.velocityY*t/2],s=this.controllerState.pan({pos:i}).panEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:w0},{isDragging:!1,isPanning:!0})}else{const n=this.controllerState.panEnd();this.updateViewport(n,null,{isDragging:!1,isPanning:!1})}return!0}_onPanRotate(e){if(!this.dragRotate)return!1;const t=this.getCenter(e),n=this.controllerState.rotate({pos:t});return this.updateViewport(n,Ou,{isDragging:!0,isRotating:!0}),!0}_onPanRotateEnd(e){const{inertia:t}=this;if(this.dragRotate&&t&&e.velocity){const n=this.getCenter(e),i=[n[0]+e.velocityX*t/2,n[1]+e.velocityY*t/2],s=this.controllerState.rotate({pos:i}).rotateEnd();this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:w0},{isDragging:!1,isRotating:!0})}else{const n=this.controllerState.rotateEnd();this.updateViewport(n,null,{isDragging:!1,isRotating:!1})}return!0}_onWheel(e){if(!this.scrollZoom)return!1;const t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;e.srcEvent.preventDefault();const{speed:n=.01,smooth:i=!1}=this.scrollZoom===!0?{}:this.scrollZoom,{delta:s}=e;let o=2/(1+Math.exp(-Math.abs(s*n)));s<0&&o!==0&&(o=1/o);const l=this.controllerState.zoom({pos:t,scale:o});return this.updateViewport(l,{...this._getTransitionProps({around:t}),transitionDuration:i?250:1},{isZooming:!0,isPanning:!0}),!0}_onMultiPanStart(e){const t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;const n=this.controllerState.rotateStart({pos:t});return this.updateViewport(n,Ou,{isDragging:!0}),!0}_onMultiPan(e){if(!this.touchRotate||!this.isDragging())return!1;const t=this.getCenter(e);t[0]-=e.deltaX;const n=this.controllerState.rotate({pos:t});return this.updateViewport(n,Ou,{isDragging:!0,isRotating:!0}),!0}_onMultiPanEnd(e){if(!this.isDragging())return!1;const{inertia:t}=this;if(this.touchRotate&&t&&e.velocityY){const n=this.getCenter(e),i=[n[0],n[1]+=e.velocityY*t/2],s=this.controllerState.rotate({pos:i});this.updateViewport(s,{...this._getTransitionProps(),transitionDuration:t,transitionEasing:w0},{isDragging:!1,isRotating:!0}),this.blockEvents(t)}else{const n=this.controllerState.rotateEnd();this.updateViewport(n,null,{isDragging:!1,isRotating:!1})}return!0}_onPinchStart(e){const t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;const n=this.controllerState.zoomStart({pos:t}).rotateStart({pos:t});return Lf._startPinchRotation=e.rotation,Lf._lastPinchEvent=e,this.updateViewport(n,Ou,{isDragging:!0}),!0}_onPinch(e){if(!this.touchZoom&&!this.touchRotate||!this.isDragging())return!1;let t=this.controllerState;if(this.touchZoom){const{scale:n}=e,i=this.getCenter(e);t=t.zoom({pos:i,scale:n})}if(this.touchRotate){const{rotation:n}=e;t=t.rotate({deltaAngleX:Lf._startPinchRotation-n})}return this.updateViewport(t,Ou,{isDragging:!0,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:this.touchRotate}),Lf._lastPinchEvent=e,!0}_onPinchEnd(e){if(!this.isDragging())return!1;const{inertia:t}=this,{_lastPinchEvent:n}=Lf;if(this.touchZoom&&t&&n&&e.scale!==n.scale){const i=this.getCenter(e);let s=this.controllerState.rotateEnd();const o=Math.log2(e.scale),l=(o-Math.log2(n.scale))/(e.deltaTime-n.deltaTime),f=Math.pow(2,o+l*t/2);s=s.zoom({pos:i,scale:f}).zoomEnd(),this.updateViewport(s,{...this._getTransitionProps({around:i}),transitionDuration:t,transitionEasing:w0},{isDragging:!1,isPanning:this.touchZoom,isZooming:this.touchZoom,isRotating:!1}),this.blockEvents(t)}else{const i=this.controllerState.zoomEnd().rotateEnd();this.updateViewport(i,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1})}return Lf._startPinchRotation=null,Lf._lastPinchEvent=null,!0}_onDoubleClick(e){if(!this.doubleClickZoom)return!1;const t=this.getCenter(e);if(!this.isPointInBounds(t,e))return!1;const n=this.isFunctionKeyPressed(e),i=this.controllerState.zoom({pos:t,scale:n?.5:2});return this.updateViewport(i,this._getTransitionProps({around:t}),{isZooming:!0,isPanning:!0}),this.blockEvents(100),!0}_onKeyDown(e){if(!this.keyboard)return!1;const t=this.isFunctionKeyPressed(e),{zoomSpeed:n,moveSpeed:i,rotateSpeedX:s,rotateSpeedY:o}=this.keyboard===!0?{}:this.keyboard,{controllerState:l}=this;let f;const A={};switch(e.srcEvent.code){case"Minus":f=t?l.zoomOut(n).zoomOut(n):l.zoomOut(n),A.isZooming=!0;break;case"Equal":f=t?l.zoomIn(n).zoomIn(n):l.zoomIn(n),A.isZooming=!0;break;case"ArrowLeft":t?(f=l.rotateLeft(s),A.isRotating=!0):(f=l.moveLeft(i),A.isPanning=!0);break;case"ArrowRight":t?(f=l.rotateRight(s),A.isRotating=!0):(f=l.moveRight(i),A.isPanning=!0);break;case"ArrowUp":t?(f=l.rotateUp(o),A.isRotating=!0):(f=l.moveUp(i),A.isPanning=!0);break;case"ArrowDown":t?(f=l.rotateDown(o),A.isRotating=!0):(f=l.moveDown(i),A.isPanning=!0);break;default:return!1}return this.updateViewport(f,this._getTransitionProps(),A),!0}_getTransitionProps(e){const{transition:t}=this;return!t||!t.transitionInterpolator?Ou:e?{...t,transitionInterpolator:new mD({...e,...t.transitionInterpolator.opts,makeViewport:this.controllerState.makeViewport})}:t}}class LW{constructor(e,t){this._viewportProps=this.applyConstraints(e),this._state=t}getViewportProps(){return this._viewportProps}getState(){return this._state}}const j3=5,kW=1.2;let NW=class extends LW{constructor(e){const{width:t,height:n,latitude:i,longitude:s,zoom:o,bearing:l=0,pitch:f=0,altitude:A=1.5,position:v=[0,0,0],maxZoom:T=20,minZoom:I=0,maxPitch:F=60,minPitch:N=0,startPanLngLat:U,startZoomLngLat:$,startRotatePos:V,startBearing:G,startPitch:X,startZoom:ue,normalize:K=!0}=e;Ks(Number.isFinite(s)),Ks(Number.isFinite(i)),Ks(Number.isFinite(o)),super({width:t,height:n,latitude:i,longitude:s,zoom:o,bearing:l,pitch:f,altitude:A,maxZoom:T,minZoom:I,maxPitch:F,minPitch:N,normalize:K,position:v},{startPanLngLat:U,startZoomLngLat:$,startRotatePos:V,startBearing:G,startPitch:X,startZoom:ue}),this.makeViewport=e.makeViewport}panStart({pos:e}){return this._getUpdatedState({startPanLngLat:this._unproject(e)})}pan({pos:e,startPos:t}){const n=this.getState().startPanLngLat||this._unproject(t);if(!n)return this;const s=this.makeViewport(this.getViewportProps()).panByPosition(n,e);return this._getUpdatedState(s)}panEnd(){return this._getUpdatedState({startPanLngLat:null})}rotateStart({pos:e}){return this._getUpdatedState({startRotatePos:e,startBearing:this.getViewportProps().bearing,startPitch:this.getViewportProps().pitch})}rotate({pos:e,deltaAngleX:t=0,deltaAngleY:n=0}){const{startRotatePos:i,startBearing:s,startPitch:o}=this.getState();if(!i||s===void 0||o===void 0)return this;let l;return e?l=this._getNewRotation(e,i,o,s):l={bearing:s+t,pitch:o+n},this._getUpdatedState(l)}rotateEnd(){return this._getUpdatedState({startBearing:null,startPitch:null})}zoomStart({pos:e}){return this._getUpdatedState({startZoomLngLat:this._unproject(e),startZoom:this.getViewportProps().zoom})}zoom({pos:e,startPos:t,scale:n}){let{startZoom:i,startZoomLngLat:s}=this.getState();if(s||(i=this.getViewportProps().zoom,s=this._unproject(t)||this._unproject(e)),!s)return this;const{maxZoom:o,minZoom:l}=this.getViewportProps();let f=i+Math.log2(n);f=$c(f,l,o);const A=this.makeViewport({...this.getViewportProps(),zoom:f});return this._getUpdatedState({zoom:f,...A.panByPosition(s,e)})}zoomEnd(){return this._getUpdatedState({startZoomLngLat:null,startZoom:null})}zoomIn(e=2){return this._zoomFromCenter(e)}zoomOut(e=2){return this._zoomFromCenter(1/e)}moveLeft(e=100){return this._panFromCenter([e,0])}moveRight(e=100){return this._panFromCenter([-e,0])}moveUp(e=100){return this._panFromCenter([0,e])}moveDown(e=100){return this._panFromCenter([0,-e])}rotateLeft(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing-e})}rotateRight(e=15){return this._getUpdatedState({bearing:this.getViewportProps().bearing+e})}rotateUp(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch+e})}rotateDown(e=10){return this._getUpdatedState({pitch:this.getViewportProps().pitch-e})}shortestPathFrom(e){const t=e.getViewportProps(),n={...this.getViewportProps()},{bearing:i,longitude:s}=n;return Math.abs(i-t.bearing)>180&&(n.bearing=i<0?i+360:i-360),Math.abs(s-t.longitude)>180&&(n.longitude=s<0?s+360:s-360),n}applyConstraints(e){const{maxZoom:t,minZoom:n,zoom:i}=e;e.zoom=$c(i,n,t);const{maxPitch:s,minPitch:o,pitch:l}=e;e.pitch=$c(l,o,s);const{normalize:f=!0}=e;return f&&Object.assign(e,GG(e)),e}_zoomFromCenter(e){const{width:t,height:n}=this.getViewportProps();return this.zoom({pos:[t/2,n/2],scale:e})}_panFromCenter(e){const{width:t,height:n}=this.getViewportProps();return this.pan({startPos:[t/2,n/2],pos:[t/2+e[0],n/2+e[1]]})}_getUpdatedState(e){return new this.constructor({makeViewport:this.makeViewport,...this.getViewportProps(),...this.getState(),...e})}_unproject(e){const t=this.makeViewport(this.getViewportProps());return e&&t.unproject(e)}_getNewRotation(e,t,n,i){const s=e[0]-t[0],o=e[1]-t[1],l=e[1],f=t[1],{width:A,height:v}=this.getViewportProps(),T=s/A;let I=0;o>0?Math.abs(v-f)>j3&&(I=o/(f-v)*kW):o<0&&f>j3&&(I=1-l/f),I=$c(I,-1,1);const{minPitch:F,maxPitch:N}=this.getViewportProps(),U=i+180*T;let $=n;return I>0?$=n+I*(N-n):I<0&&($=n-I*(F-n)),{pitch:$,bearing:U}}},UW=class extends FW{constructor(){super(...arguments),this.ControllerState=NW,this.transition={transitionDuration:300,transitionInterpolator:new mD({transitionProps:{compare:["longitude","latitude","zoom","bearing","pitch","position"],required:["longitude","latitude","zoom"]}})},this.dragMode="pan"}setProps(e){e.position=e.position||[0,0,0];const t=this.props;super.setProps(e),(!t||t.height!==e.height)&&this.updateViewport(new this.ControllerState({makeViewport:this.makeViewport,...e,...this.state}))}};class _D extends hp{constructor(e={}){super(e)}getViewportType(){return tg}get ControllerType(){return UW}}_D.displayName="MapView";const zW=new aD;function VW(r,e){const t=r.order??1/0,n=e.order??1/0;return t-n}class jW{constructor(e){this._resolvedEffects=[],this._defaultEffects=[],this.effects=[],this._context=e,this._needsRedraw="Initial render",this._setEffects([])}addDefaultEffect(e){const t=this._defaultEffects;if(!t.find(n=>n.id===e.id)){const n=t.findIndex(i=>VW(i,e)>0);n<0?t.push(e):t.splice(n,0,e),e.setup(this._context),this._setEffects(this.effects)}}setProps(e){"effects"in e&&(rs(e.effects,this.effects,1)||this._setEffects(e.effects))}needsRedraw(e={clearRedrawFlags:!1}){const t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}getEffects(){return this._resolvedEffects}_setEffects(e){const t={};for(const i of this.effects)t[i.id]=i;const n=[];for(const i of e){const s=t[i.id];let o=i;s&&s!==i?s.setProps?(s.setProps(i.props),o=s):s.cleanup(this._context):s||i.setup(this._context),n.push(o),delete t[i.id]}for(const i in t)t[i].cleanup(this._context);this.effects=n,this._resolvedEffects=n.concat(this._defaultEffects),e.some(i=>i instanceof aD)||this._resolvedEffects.push(zW),this._needsRedraw="effects changed"}finalize(){for(const e of this._resolvedEffects)e.cleanup(this._context);this.effects.length=0,this._resolvedEffects.length=0,this._defaultEffects.length=0}}class GW extends D_{shouldDrawLayer(e){const{operation:t}=e.props;return t.includes("draw")||t.includes("terrain")}}const HW="deckRenderer.renderLayers";class WW{constructor(e){this.device=e,this.layerFilter=null,this.drawPickingColors=!1,this.drawLayersPass=new GW(e),this.pickLayersPass=new AD(e),this.renderCount=0,this._needsRedraw="Initial render",this.renderBuffers=[],this.lastPostProcessEffect=null}setProps(e){this.layerFilter!==e.layerFilter&&(this.layerFilter=e.layerFilter,this._needsRedraw="layerFilter changed"),this.drawPickingColors!==e.drawPickingColors&&(this.drawPickingColors=e.drawPickingColors,this._needsRedraw="drawPickingColors changed")}renderLayers(e){if(!e.viewports.length)return;const t=this.drawPickingColors?this.pickLayersPass:this.drawLayersPass,n={layerFilter:this.layerFilter,isPicking:this.drawPickingColors,...e};n.effects&&this._preRender(n.effects,n);const i=this.lastPostProcessEffect?this.renderBuffers[0]:n.target;this.lastPostProcessEffect&&(n.clearColor=[0,0,0,0],n.clearCanvas=!0);const s=t.render({...n,target:i});n.effects&&this._postRender(n.effects,n),this.renderCount++,Ao(HW,this,s,e)}needsRedraw(e={clearRedrawFlags:!1}){const t=this._needsRedraw;return e.clearRedrawFlags&&(this._needsRedraw=!1),t}finalize(){const{renderBuffers:e}=this;for(const t of e)t.delete();e.length=0}_preRender(e,t){this.lastPostProcessEffect=null,t.preRenderStats=t.preRenderStats||{};for(const n of e)t.preRenderStats[n.id]=n.preRender(t),n.postRender&&(this.lastPostProcessEffect=n.id);this.lastPostProcessEffect&&this._resizeRenderBuffers()}_resizeRenderBuffers(){const{renderBuffers:e}=this,t=this.device.canvasContext.getDrawingBufferSize();e.length===0&&[0,1].map(n=>{const i=this.device.createTexture({sampler:{minFilter:"linear",magFilter:"linear"}});e.push(this.device.createFramebuffer({id:`deck-renderbuffer-${n}`,colorAttachments:[i]}))});for(const n of e)n.resize(t)}_postRender(e,t){const{renderBuffers:n}=this,i={...t,inputBuffer:n[0],swapBuffer:n[1]};for(const s of e)if(s.postRender){i.target=s.id===this.lastPostProcessEffect?t.target:void 0;const o=s.postRender(i);i.inputBuffer=o,i.swapBuffer=o===n[0]?n[1]:n[0]}}}const $W={pickedColor:null,pickedObjectIndex:-1};function XW({pickedColors:r,decodePickingColor:e,deviceX:t,deviceY:n,deviceRadius:i,deviceRect:s}){const{x:o,y:l,width:f,height:A}=s;let v=i*i,T=-1,I=0;for(let F=0;F<A;F++){const N=F+l-n,U=N*N;if(U>v)I+=4*f;else for(let $=0;$<f;$++){if(r[I+3]-1>=0){const G=$+o-t,X=G*G+U;X<=v&&(v=X,T=I)}I+=4}}if(T>=0){const F=r.slice(T,T+4),N=e(F);if(N){const U=Math.floor(T/4/f),$=T/4-U*f;return{...N,pickedColor:F,pickedX:o+$,pickedY:l+U}}Zr.error("Picked non-existent layer. Is picking buffer corrupt?")()}return $W}function qW({pickedColors:r,decodePickingColor:e}){const t=new Map;if(r){for(let n=0;n<r.length;n+=4)if(r[n+3]-1>=0){const s=r.slice(n,n+4),o=s.join(",");if(!t.has(o)){const l=e(s);l?t.set(o,{...l,color:s}):Zr.error("Picked non-existent layer. Is picking buffer corrupt?")()}}}return Array.from(t.values())}function yD({pickInfo:r,viewports:e,pixelRatio:t,x:n,y:i,z:s}){let o=e[0];e.length>1&&(o=KW(r?.pickedViewports||e,{x:n,y:i}));let l;if(o){const f=[n-o.x,i-o.y];s!==void 0&&(f[2]=s),l=o.unproject(f)}return{color:null,layer:null,viewport:o,index:-1,picked:!1,x:n,y:i,pixel:[n,i],coordinate:l,devicePixel:r&&"pickedX"in r?[r.pickedX,r.pickedY]:void 0,pixelRatio:t}}function JW(r){const{pickInfo:e,lastPickedInfo:t,mode:n,layers:i}=r,{pickedColor:s,pickedLayer:o,pickedObjectIndex:l}=e,f=o?[o]:[];if(n==="hover"){const T=t.index,I=t.layerId,F=o?o.props.id:null;if(F!==I||l!==T){if(F!==I){const N=i.find(U=>U.props.id===I);N&&f.unshift(N)}t.layerId=F,t.index=l,t.info=null}}const A=yD(r),v=new Map;return v.set(null,A),f.forEach(T=>{let I={...A};T===o&&(I.color=s,I.index=l,I.picked=!0),I=vD({layer:T,info:I,mode:n});const F=I.layer;T===o&&n==="hover"&&(t.info=I),v.set(F.id,I),n==="hover"&&F.updateAutoHighlight(I)}),v}function vD({layer:r,info:e,mode:t}){for(;r&&e;){const n=e.layer||null;e.sourceLayer=n,e.layer=r,e=r.getPickingInfo({info:e,mode:t,sourceLayer:n}),r=r.parent}return e}function KW(r,e){for(let t=r.length-1;t>=0;t--){const n=r[t];if(n.containsPixel(e))return n}return r[0]}class ZW{constructor(e){this._pickable=!0,this.device=e,this.pickLayersPass=new AD(e),this.lastPickedInfo={index:-1,layerId:null,info:null}}setProps(e){"layerFilter"in e&&(this.layerFilter=e.layerFilter),"_pickable"in e&&(this._pickable=e._pickable)}finalize(){this.pickingFBO&&this.pickingFBO.destroy(),this.depthFBO&&this.depthFBO.destroy()}pickObject(e){return this._pickClosestObject(e)}pickObjects(e){return this._pickVisibleObjects(e)}getLastPickedObject({x:e,y:t,layers:n,viewports:i},s=this.lastPickedInfo.info){const o=s&&s.layer&&s.layer.id,l=s&&s.viewport&&s.viewport.id,f=o?n.find(I=>I.id===o):null,A=l&&i.find(I=>I.id===l)||i[0],v=A&&A.unproject([e-A.x,t-A.y]);return{...s,...{x:e,y:t,viewport:A,coordinate:v,layer:f}}}_resizeBuffer(){if(!this.pickingFBO&&(this.pickingFBO=this.device.createFramebuffer({colorAttachments:["rgba8unorm"],depthStencilAttachment:"depth16unorm"}),this.device.isTextureFormatRenderable("rgba32float"))){const t=this.device.createFramebuffer({colorAttachments:["rgba32float"],depthStencilAttachment:"depth16unorm"});this.depthFBO=t}const{canvas:e}=this.device.getDefaultCanvasContext();this.pickingFBO?.resize({width:e.width,height:e.height}),this.depthFBO?.resize({width:e.width,height:e.height})}_getPickable(e){if(this._pickable===!1)return null;const t=e.filter(n=>this.pickLayersPass.shouldDrawLayer(n)&&!n.isComposite);return t.length?t:null}_pickClosestObject({layers:e,views:t,viewports:n,x:i,y:s,radius:o=0,depth:l=1,mode:f="query",unproject3D:A,onViewportActive:v,effects:T}){const I=this.device.canvasContext.cssToDeviceRatio(),F=this._getPickable(e);if(!F||n.length===0)return{result:[],emptyInfo:yD({viewports:n,x:i,y:s,pixelRatio:I})};this._resizeBuffer();const N=this.device.canvasContext.cssToDevicePixels([i,s],!0),U=[N.x+Math.floor(N.width/2),N.y+Math.floor(N.height/2)],$=Math.round(o*I),{width:V,height:G}=this.pickingFBO,X=this._getPickingRect({deviceX:U[0],deviceY:U[1],deviceRadius:$,deviceWidth:V,deviceHeight:G}),ue={x:i-o,y:s-o,width:o*2+1,height:o*2+1};let K;const se=[],Ee=new Set;for(let Ue=0;Ue<l;Ue++){let de;if(X){const pe=this._drawAndSample({layers:F,views:t,viewports:n,onViewportActive:v,deviceRect:X,cullRect:ue,effects:T,pass:`picking:${f}`});de=XW({...pe,deviceX:U[0],deviceY:U[1],deviceRadius:$,deviceRect:X})}else de={pickedColor:null,pickedObjectIndex:-1};let me;if(de.pickedLayer&&A&&this.depthFBO){const{pickedColors:pe}=this._drawAndSample({layers:[de.pickedLayer],views:t,viewports:n,onViewportActive:v,deviceRect:{x:de.pickedX,y:de.pickedY,width:1,height:1},cullRect:ue,effects:T,pass:`picking:${f}:z`},!0);pe[3]&&(me=pe[0])}de.pickedLayer&&Ue+1<l&&(Ee.add(de.pickedLayer),de.pickedLayer.disablePickingIndex(de.pickedObjectIndex)),K=JW({pickInfo:de,lastPickedInfo:this.lastPickedInfo,mode:f,layers:F,viewports:n,x:i,y:s,z:me,pixelRatio:I});for(const pe of K.values())pe.layer&&se.push(pe);if(!de.pickedColor)break}for(const Ue of Ee)Ue.restorePickingColors();return{result:se,emptyInfo:K.get(null)}}_pickVisibleObjects({layers:e,views:t,viewports:n,x:i,y:s,width:o=1,height:l=1,mode:f="query",maxObjects:A=null,onViewportActive:v,effects:T}){const I=this._getPickable(e);if(!I||n.length===0)return[];this._resizeBuffer();const F=this.device.canvasContext.cssToDeviceRatio(),N=this.device.canvasContext.cssToDevicePixels([i,s],!0),U=N.x,$=N.y+N.height,V=this.device.canvasContext.cssToDevicePixels([i+o,s+l],!0),G=V.x+V.width,X=V.y,ue={x:U,y:X,width:G-U,height:$-X},K=this._drawAndSample({layers:I,views:t,viewports:n,onViewportActive:v,deviceRect:ue,cullRect:{x:i,y:s,width:o,height:l},effects:T,pass:`picking:${f}`}),se=qW(K),Ee=new Map,Ue=[],de=Number.isFinite(A);for(let me=0;me<se.length&&!(de&&Ue.length>=A);me++){const pe=se[me];let W={color:pe.pickedColor,layer:null,index:pe.pickedObjectIndex,picked:!0,x:i,y:s,pixelRatio:F};W=vD({layer:pe.pickedLayer,info:W,mode:f});const te=W.layer.id;Ee.has(te)||Ee.set(te,new Set);const Ce=Ee.get(te),Qe=W.object??W.index;Ce.has(Qe)||(Ce.add(Qe),Ue.push(W))}return Ue}_drawAndSample({layers:e,views:t,viewports:n,onViewportActive:i,deviceRect:s,cullRect:o,effects:l,pass:f},A=!1){const v=A?this.depthFBO:this.pickingFBO,T={layers:e,layerFilter:this.layerFilter,views:t,viewports:n,onViewportActive:i,pickingFBO:v,deviceRect:s,cullRect:o,effects:l,pass:f,pickZ:A,preRenderStats:{},isPicking:!0};for(const G of l)G.useInPicking&&(T.preRenderStats[G.id]=G.preRender(T));const{decodePickingColor:I}=this.pickLayersPass.render(T),{x:F,y:N,width:U,height:$}=s,V=new(A?Float32Array:Uint8Array)(U*$*4);return this.device.readPixelsToArrayWebGL(v,{sourceX:F,sourceY:N,sourceWidth:U,sourceHeight:$,target:V}),{pickedColors:V,decodePickingColor:I}}_getPickingRect({deviceX:e,deviceY:t,deviceRadius:n,deviceWidth:i,deviceHeight:s}){const o=Math.max(0,e-n),l=Math.max(0,t-n),f=Math.min(i,e+n+1)-o,A=Math.min(s,t+n+1)-l;return f<=0||A<=0?null:{x:o,y:l,width:f,height:A}}}const YW={"top-left":{top:0,left:0},"top-right":{top:0,right:0},"bottom-left":{bottom:0,left:0},"bottom-right":{bottom:0,right:0},fill:{top:0,left:0,bottom:0,right:0}},QW="top-left",G3="__root";class e${constructor({deck:e,parentElement:t}){this.defaultWidgets=[],this.widgets=[],this.resolvedWidgets=[],this.containers={},this.lastViewports={},this.deck=e,this.parentElement=t}getWidgets(){return this.resolvedWidgets}setProps(e){e.widgets&&!rs(e.widgets,this.widgets,1)&&this._setWidgets(e.widgets)}finalize(){for(const e of this.getWidgets())this._remove(e);this.defaultWidgets.length=0,this.resolvedWidgets.length=0;for(const e in this.containers)this.containers[e].remove()}addDefault(e){this.defaultWidgets.find(t=>t.id===e.id)||(this._add(e),this.defaultWidgets.push(e),this._setWidgets(this.widgets))}_setWidgets(e){const t={};for(const n of this.resolvedWidgets)t[n.id]=n;this.resolvedWidgets.length=0;for(const n of this.defaultWidgets)t[n.id]=null,this.resolvedWidgets.push(n);for(let n of e){const i=t[n.id];i?i.viewId!==n.viewId||i.placement!==n.placement?(this._remove(i),this._add(n)):n!==i&&(i.setProps(n.props),n=i):this._add(n),t[n.id]=null,this.resolvedWidgets.push(n)}for(const n in t){const i=t[n];i&&this._remove(i)}this.widgets=e}_add(e){const{viewId:t=null,placement:n=QW}=e,i=e.onAdd({deck:this.deck,viewId:t});i&&this._getContainer(t,n).append(i),e._element=i}_remove(e){e.onRemove?.(),e._element&&e._element.remove(),e._element=void 0}_getContainer(e,t){const n=e||G3;let i=this.containers[n];i||(i=document.createElement("div"),i.style.pointerEvents="none",i.style.position="absolute",i.style.overflow="hidden",this.parentElement?.append(i),this.containers[n]=i);let s=i.querySelector(`.${t}`);return s||(s=document.createElement("div"),s.className=t,s.style.position="absolute",s.style.zIndex="2",Object.assign(s.style,YW[t]),i.append(s)),s}_updateContainers(){const e=this.deck.width,t=this.deck.height;for(const n in this.containers){const i=this.lastViewports[n]||null,s=n===G3||i,o=this.containers[n];s?(o.style.display="block",o.style.left=`${i?i.x:0}px`,o.style.top=`${i?i.y:0}px`,o.style.width=`${i?i.width:e}px`,o.style.height=`${i?i.height:t}px`):o.style.display="none"}}onRedraw({viewports:e,layers:t}){const n=e.reduce((i,s)=>(i[s.id]=s,i),{});for(const i of this.getWidgets()){const{viewId:s}=i;if(s){const o=n[s];o&&(i.onViewportChange&&i.onViewportChange(o),i.onRedraw?.({viewports:[o],layers:t}))}else{if(i.onViewportChange)for(const o of e)i.onViewportChange(o);i.onRedraw?.({viewports:e,layers:t})}}this.lastViewports=n,this._updateContainers()}onHover(e,t){for(const n of this.getWidgets()){const{viewId:i}=n;(!i||i===e.viewport?.id)&&n.onHover?.(e,t)}}onEvent(e,t){const n=R1[t.type];if(n)for(const i of this.getWidgets()){const{viewId:s}=i;(!s||s===e.viewport?.id)&&i[n]?.(e,t)}}}const t$={zIndex:"1",position:"absolute",pointerEvents:"none",color:"#a0a7b4",backgroundColor:"#29323c",padding:"10px",top:"0",left:"0",display:"none"};class r${constructor(){this.id="default-tooltip",this.placement="fill",this.props={},this.isVisible=!1}onAdd({deck:e}){const t=document.createElement("div");return t.className="deck-tooltip",Object.assign(t.style,t$),this.deck=e,this.element=t,t}onRemove(){this.deck=void 0,this.element=void 0}setProps(){}onViewportChange(e){this.isVisible&&e.id===this.lastViewport?.id&&e!==this.lastViewport&&this.setTooltip(null)}onHover(e){const{deck:t}=this,n=t&&t.props.getTooltip;if(!n)return;const i=n(e);this.lastViewport=e.viewport,this.setTooltip(i,e.x,e.y)}setTooltip(e,t,n){const i=this.element;if(i){if(typeof e=="string")i.innerText=e;else if(e)e.text&&(i.innerText=e.text),e.html&&(i.innerHTML=e.html),e.className&&(i.className=e.className);else{this.isVisible=!1,i.style.display="none";return}this.isVisible=!0,i.style.display="block",i.style.transform=`translate(${t}px, ${n}px)`,e&&typeof e=="object"&&"style"in e&&Object.assign(i.style,e.style)}}}var Ud;(function(r){r[r.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",r[r.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",r[r.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",r[r.POINTS=0]="POINTS",r[r.LINES=1]="LINES",r[r.LINE_LOOP=2]="LINE_LOOP",r[r.LINE_STRIP=3]="LINE_STRIP",r[r.TRIANGLES=4]="TRIANGLES",r[r.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",r[r.TRIANGLE_FAN=6]="TRIANGLE_FAN",r[r.ZERO=0]="ZERO",r[r.ONE=1]="ONE",r[r.SRC_COLOR=768]="SRC_COLOR",r[r.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",r[r.SRC_ALPHA=770]="SRC_ALPHA",r[r.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",r[r.DST_ALPHA=772]="DST_ALPHA",r[r.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",r[r.DST_COLOR=774]="DST_COLOR",r[r.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",r[r.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",r[r.CONSTANT_COLOR=32769]="CONSTANT_COLOR",r[r.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",r[r.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",r[r.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",r[r.FUNC_ADD=32774]="FUNC_ADD",r[r.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",r[r.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",r[r.BLEND_EQUATION=32777]="BLEND_EQUATION",r[r.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",r[r.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",r[r.BLEND_DST_RGB=32968]="BLEND_DST_RGB",r[r.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",r[r.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",r[r.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",r[r.BLEND_COLOR=32773]="BLEND_COLOR",r[r.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",r[r.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",r[r.LINE_WIDTH=2849]="LINE_WIDTH",r[r.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",r[r.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",r[r.CULL_FACE_MODE=2885]="CULL_FACE_MODE",r[r.FRONT_FACE=2886]="FRONT_FACE",r[r.DEPTH_RANGE=2928]="DEPTH_RANGE",r[r.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",r[r.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",r[r.DEPTH_FUNC=2932]="DEPTH_FUNC",r[r.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",r[r.STENCIL_FUNC=2962]="STENCIL_FUNC",r[r.STENCIL_FAIL=2964]="STENCIL_FAIL",r[r.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",r[r.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",r[r.STENCIL_REF=2967]="STENCIL_REF",r[r.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",r[r.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",r[r.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",r[r.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",r[r.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",r[r.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",r[r.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",r[r.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",r[r.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",r[r.VIEWPORT=2978]="VIEWPORT",r[r.SCISSOR_BOX=3088]="SCISSOR_BOX",r[r.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",r[r.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",r[r.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",r[r.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",r[r.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",r[r.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",r[r.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",r[r.RED_BITS=3410]="RED_BITS",r[r.GREEN_BITS=3411]="GREEN_BITS",r[r.BLUE_BITS=3412]="BLUE_BITS",r[r.ALPHA_BITS=3413]="ALPHA_BITS",r[r.DEPTH_BITS=3414]="DEPTH_BITS",r[r.STENCIL_BITS=3415]="STENCIL_BITS",r[r.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",r[r.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",r[r.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",r[r.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",r[r.SAMPLES=32937]="SAMPLES",r[r.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",r[r.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",r[r.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",r[r.VENDOR=7936]="VENDOR",r[r.RENDERER=7937]="RENDERER",r[r.VERSION=7938]="VERSION",r[r.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",r[r.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",r[r.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",r[r.STATIC_DRAW=35044]="STATIC_DRAW",r[r.STREAM_DRAW=35040]="STREAM_DRAW",r[r.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",r[r.ARRAY_BUFFER=34962]="ARRAY_BUFFER",r[r.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",r[r.BUFFER_SIZE=34660]="BUFFER_SIZE",r[r.BUFFER_USAGE=34661]="BUFFER_USAGE",r[r.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",r[r.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",r[r.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",r[r.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",r[r.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",r[r.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",r[r.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",r[r.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",r[r.CULL_FACE=2884]="CULL_FACE",r[r.FRONT=1028]="FRONT",r[r.BACK=1029]="BACK",r[r.FRONT_AND_BACK=1032]="FRONT_AND_BACK",r[r.BLEND=3042]="BLEND",r[r.DEPTH_TEST=2929]="DEPTH_TEST",r[r.DITHER=3024]="DITHER",r[r.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",r[r.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",r[r.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",r[r.SCISSOR_TEST=3089]="SCISSOR_TEST",r[r.STENCIL_TEST=2960]="STENCIL_TEST",r[r.NO_ERROR=0]="NO_ERROR",r[r.INVALID_ENUM=1280]="INVALID_ENUM",r[r.INVALID_VALUE=1281]="INVALID_VALUE",r[r.INVALID_OPERATION=1282]="INVALID_OPERATION",r[r.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",r[r.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",r[r.CW=2304]="CW",r[r.CCW=2305]="CCW",r[r.DONT_CARE=4352]="DONT_CARE",r[r.FASTEST=4353]="FASTEST",r[r.NICEST=4354]="NICEST",r[r.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",r[r.BYTE=5120]="BYTE",r[r.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",r[r.SHORT=5122]="SHORT",r[r.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",r[r.INT=5124]="INT",r[r.UNSIGNED_INT=5125]="UNSIGNED_INT",r[r.FLOAT=5126]="FLOAT",r[r.DOUBLE=5130]="DOUBLE",r[r.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",r[r.ALPHA=6406]="ALPHA",r[r.RGB=6407]="RGB",r[r.RGBA=6408]="RGBA",r[r.LUMINANCE=6409]="LUMINANCE",r[r.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",r[r.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",r[r.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",r[r.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",r[r.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",r[r.VERTEX_SHADER=35633]="VERTEX_SHADER",r[r.COMPILE_STATUS=35713]="COMPILE_STATUS",r[r.DELETE_STATUS=35712]="DELETE_STATUS",r[r.LINK_STATUS=35714]="LINK_STATUS",r[r.VALIDATE_STATUS=35715]="VALIDATE_STATUS",r[r.ATTACHED_
2006SHADERS=35717]="ATTACHED_SHADERS",r[r.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",r[r.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",r[r.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",r[r.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",r[r.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",r[r.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",r[r.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",r[r.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",r[r.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",r[r.SHADER_TYPE=35663]="SHADER_TYPE",r[r.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",r[r.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",r[r.NEVER=512]="NEVER",r[r.LESS=513]="LESS",r[r.EQUAL=514]="EQUAL",r[r.LEQUAL=515]="LEQUAL",r[r.GREATER=516]="GREATER",r[r.NOTEQUAL=517]="NOTEQUAL",r[r.GEQUAL=518]="GEQUAL",r[r.ALWAYS=519]="ALWAYS",r[r.KEEP=7680]="KEEP",r[r.REPLACE=7681]="REPLACE",r[r.INCR=7682]="INCR",r[r.DECR=7683]="DECR",r[r.INVERT=5386]="INVERT",r[r.INCR_WRAP=34055]="INCR_WRAP",r[r.DECR_WRAP=34056]="DECR_WRAP",r[r.NEAREST=9728]="NEAREST",r[r.LINEAR=9729]="LINEAR",r[r.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",r[r.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",r[r.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",r[r.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",r[r.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",r[r.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",r[r.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",r[r.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",r[r.TEXTURE_2D=3553]="TEXTURE_2D",r[r.TEXTURE=5890]="TEXTURE",r[r.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",r[r.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",r[r.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",r[r.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",r[r.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",r[r.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",r[r.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",r[r.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",r[r.TEXTURE0=33984]="TEXTURE0",r[r.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",r[r.REPEAT=10497]="REPEAT",r[r.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",r[r.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",r[r.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",r[r.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",r[r.FLOAT_VEC2=35664]="FLOAT_VEC2",r[r.FLOAT_VEC3=35665]="FLOAT_VEC3",r[r.FLOAT_VEC4=35666]="FLOAT_VEC4",r[r.INT_VEC2=35667]="INT_VEC2",r[r.INT_VEC3=35668]="INT_VEC3",r[r.INT_VEC4=35669]="INT_VEC4",r[r.BOOL=35670]="BOOL",r[r.BOOL_VEC2=35671]="BOOL_VEC2",r[r.BOOL_VEC3=35672]="BOOL_VEC3",r[r.BOOL_VEC4=35673]="BOOL_VEC4",r[r.FLOAT_MAT2=35674]="FLOAT_MAT2",r[r.FLOAT_MAT3=35675]="FLOAT_MAT3",r[r.FLOAT_MAT4=35676]="FLOAT_MAT4",r[r.SAMPLER_2D=35678]="SAMPLER_2D",r[r.SAMPLER_CUBE=35680]="SAMPLER_CUBE",r[r.LOW_FLOAT=36336]="LOW_FLOAT",r[r.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",r[r.HIGH_FLOAT=36338]="HIGH_FLOAT",r[r.LOW_INT=36339]="LOW_INT",r[r.MEDIUM_INT=36340]="MEDIUM_INT",r[r.HIGH_INT=36341]="HIGH_INT",r[r.FRAMEBUFFER=36160]="FRAMEBUFFER",r[r.RENDERBUFFER=36161]="RENDERBUFFER",r[r.RGBA4=32854]="RGBA4",r[r.RGB5_A1=32855]="RGB5_A1",r[r.RGB565=36194]="RGB565",r[r.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",r[r.STENCIL_INDEX=6401]="STENCIL_INDEX",r[r.STENCIL_INDEX8=36168]="STENCIL_INDEX8",r[r.DEPTH_STENCIL=34041]="DEPTH_STENCIL",r[r.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",r[r.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",r[r.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",r[r.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",r[r.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",r[r.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",r[r.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",r[r.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",r[r.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",r[r.FRAMEBUFFER_ATTACHMENT_OBJ
2006ECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",r[r.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",r[r.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",r[r.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",r[r.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",r[r.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",r[r.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",r[r.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",r[r.NONE=0]="NONE",r[r.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",r[r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",r[r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",r[r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",r[r.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",r[r.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",r[r.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",r[r.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",r[r.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",r[r.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",r[r.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",r[r.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",r[r.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",r[r.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",r[r.READ_BUFFER=3074]="READ_BUFFER",r[r.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",r[r.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",r[r.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",r[r.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",r[r.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",r[r.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",r[r.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",r[r.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",r[r.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",r[r.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",r[r.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",r[r.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",r[r.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",r[r.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",r[r.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",r[r.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",r[r.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",r[r.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",r[r.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",r[r.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",r[r.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",r[r.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",r[r.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",r[r.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",r[r.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",r[r.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",r[r.RED=6403]="RED",r[r.RGB8=32849]="RGB8",r[r.RGBA8=32856]="RGBA8",r[r.RGB10_A2=32857]="RGB10_A2",r[r.TEXTURE_3D=32879]="TEXTURE_3D",r[r.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",r[r.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",r[r.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",r[r.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",r[r.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",r[r.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",r[r.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",r[r.SRGB=35904]="SRGB",r[r.SRGB8=35905]="SRGB8",r[r.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",r[r.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",r[r.RGBA32F=34836]="RGBA32F",r[r.RGB32F=34837]="RGB32F",r[r.RGBA16F=34842]="RGBA16F",r[r.RGB16F=34843]="RGB16F",r[r.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",r[r.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",r[r.R11F_G11F_B10F=35898]="R11F_G11F_B10F",r[r.RGB9_E5=35901]="RGB9_E5",r[r.RGBA32UI=36208]="RGBA32UI",r[r.RGB32UI=36209]="RGB32UI",r[r.RGBA16UI=36214]="RGBA16UI",r[r.RGB16UI=36215]="RGB16UI",r[r.RGBA8UI=36220]="RGBA8UI",r[r.RGB8UI=36221]="RGB8UI",r[r.RGBA32I=36226]="RGBA32I",r[r.RGB32I=36227]="RGB32I",r[r.RGBA16I=36232]="RGBA16I",r[r.RGB16I=36233]="RGB16I",r[r.RGBA8I=36238]="RGBA8I",r[r.RGB8I=36239]="RGB8I",r[r.RED_INTEGER=36244]="RED_INTEGER",r[r.RGB_INTEGER=36248]="RGB_INTEGER",r[r.RGBA_INTEGER=36249]="RGBA_INTEGER",r[r.R8=33321]="R8",r[r.RG8=33323]="RG8",r[r.R16F=33325]="R16F",r[r.R32F=33326]="R32F",r[r.RG16F=33327]="RG16F",r[r.RG32F=33328]="RG32F",r[r.R8I=33329]="R8I",r[r.R8UI=33330]="R8UI",r[r.R16I=33331]="R16I",r[r.R16UI=33332]="R16UI",r[r.R32I=33333]="R32I",r[r.R32UI=33334]="R32UI",r[r.RG8I=33335]="RG8I",r[r.RG8UI=33336]="RG8UI",r[r.RG16I=33337]="RG16I",r[r.RG16UI=33338]="RG16UI",r[r.RG32I=33339]="RG32I",r[r.RG32UI=33340]="RG32UI",r[r.R8_SNORM=36756]="R8_SNORM",r[r.RG8_SNORM=36757]="RG8_SNORM",r[r.RGB8_SNORM=36758]="RGB8_SNORM",r[r.RGBA8_SNORM=36759]="RGBA8_SNORM",r[r.RGB10_A2UI=36975]="RGB10_A2UI",r[r.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",r[r.TEXTURE_IMMUTABLE_
2006LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",r[r.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",r[r.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",r[r.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",r[r.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",r[r.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",r[r.HALF_FLOAT=5131]="HALF_FLOAT",r[r.RG=33319]="RG",r[r.RG_INTEGER=33320]="RG_INTEGER",r[r.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",r[r.CURRENT_QUERY=34917]="CURRENT_QUERY",r[r.QUERY_RESULT=34918]="QUERY_RESULT",r[r.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",r[r.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",r[r.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",r[r.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",r[r.DRAW_BUFFER0=34853]="DRAW_BUFFER0",r[r.DRAW_BUFFER1=34854]="DRAW_BUFFER1",r[r.DRAW_BUFFER2=34855]="DRAW_BUFFER2",r[r.DRAW_BUFFER3=34856]="DRAW_BUFFER3",r[r.DRAW_BUFFER4=34857]="DRAW_BUFFER4",r[r.DRAW_BUFFER5=34858]="DRAW_BUFFER5",r[r.DRAW_BUFFER6=34859]="DRAW_BUFFER6",r[r.DRAW_BUFFER7=34860]="DRAW_BUFFER7",r[r.DRAW_BUFFER8=34861]="DRAW_BUFFER8",r[r.DRAW_BUFFER9=34862]="DRAW_BUFFER9",r[r.DRAW_BUFFER10=34863]="DRAW_BUFFER10",r[r.DRAW_BUFFER11=34864]="DRAW_BUFFER11",r[r.DRAW_BUFFER12=34865]="DRAW_BUFFER12",r[r.DRAW_BUFFER13=34866]="DRAW_BUFFER13",r[r.DRAW_BUFFER14=34867]="DRAW_BUFFER14",r[r.DRAW_BUFFER15=34868]="DRAW_BUFFER15",r[r.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",r[r.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",r[r.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",r[r.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",r[r.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",r[r.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",r[r.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",r[r.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",r[r.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",r[r.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",r[r.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",r[r.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",r[r.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",r[r.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",r[r.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",r[r.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",r[r.SAMPLER_3D=35679]="SAMPLER_3D",r[r.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",r[r.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",r[r.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",r[r.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",r[r.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",r[r.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",r[r.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",r[r.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",r[r.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",r[r.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",r[r.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",r[r.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",r[r.MAX_SAMPLES=36183]="MAX_SAMPLES",r[r.SAMPLER_BINDING=35097]="SAMPLER_BINDING",r[r.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",r[r.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",r[r.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",r[r.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",r[r.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",r[r.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",r[r.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",r[r.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",r[r.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",r[r.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",r[r.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",r[r.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",r[r.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",r[r.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",r[r.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",r[r.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",r[r.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",r[r.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",r[r.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",r[r.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",r[r.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",r[r.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",r[r.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",r[r.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",r[r.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",r[r.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",r[r.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",r[r.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",r[r.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",r[r.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",r[r.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",r[r.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",r[r.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",r[r.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",r[r.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",r[r.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",r[r.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",r[r.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",r[r.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",r[r.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",r[r.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",r[r.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",r[r.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",r[r.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",r[r.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",r[r.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",r[r.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",r[r.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",r[r.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",r[r.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",r[r.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",r[r.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",r[r.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",r[r.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",r[r.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",r[r.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",r[r.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",r[r.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",r[r.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",r[r.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",r[r.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",r[r.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",r[r.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",r[r.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",r[r.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",r[r.UNIFORM_TYPE=35383]="UNIFORM_TYPE",r[r.UNIFORM_SIZE=35384]="UNIFORM_SIZE",r[r.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",r[r.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",r[r.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",r[r.UNIFORM_MATRIX_STRI
2006DE=35389]="UNIFORM_MATRIX_STRIDE",r[r.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",r[r.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",r[r.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",r[r.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",r[r.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",r[r.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",r[r.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",r[r.OBJECT_TYPE=37138]="OBJECT_TYPE",r[r.SYNC_CONDITION=37139]="SYNC_CONDITION",r[r.SYNC_STATUS=37140]="SYNC_STATUS",r[r.SYNC_FLAGS=37141]="SYNC_FLAGS",r[r.SYNC_FENCE=37142]="SYNC_FENCE",r[r.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",r[r.UNSIGNALED=37144]="UNSIGNALED",r[r.SIGNALED=37145]="SIGNALED",r[r.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",r[r.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",r[r.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",r[r.WAIT_FAILED=37149]="WAIT_FAILED",r[r.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",r[r.COLOR=6144]="COLOR",r[r.DEPTH=6145]="DEPTH",r[r.STENCIL=6146]="STENCIL",r[r.MIN=32775]="MIN",r[r.MAX=32776]="MAX",r[r.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",r[r.STREAM_READ=35041]="STREAM_READ",r[r.STREAM_COPY=35042]="STREAM_COPY",r[r.STATIC_READ=35045]="STATIC_READ",r[r.STATIC_COPY=35046]="STATIC_COPY",r[r.DYNAMIC_READ=35049]="DYNAMIC_READ",r[r.DYNAMIC_COPY=35050]="DYNAMIC_COPY",r[r.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",r[r.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",r[r.INVALID_INDEX=4294967295]="INVALID_INDEX",r[r.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",r[r.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",r[r.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",r[r.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",r[r.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",r[r.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",r[r.R16_EXT=33322]="R16_EXT",r[r.RG16_EXT=33324]="RG16_EXT",r[r.RGB16_EXT=32852]="RGB16_EXT",r[r.RGBA16_EXT=32859]="RGBA16_EXT",r[r.R16_SNORM_EXT=36760]="R16_SNORM_EXT",r[r.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",r[r.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",r[r.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",r[r.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",r[r.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",r[r.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",r[r.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",r[r.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",r[r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",r[r.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",r[r.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",r[r.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",r[r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",r[r.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",r[r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",r[r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",r[r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",r[r.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",r[r.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",r[r.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",r[r.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",r[r.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",r[r.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",r[r.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",r[r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",r[r.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",r[r.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",r[r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",r[r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",r[r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",r[r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",r[r.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",r[r.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",r[r.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",r[r.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",r[r.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",r[r.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",r[r.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",r[r.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",r[r.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",r[r.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",r[r.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",r[r.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",r[r.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",r[r.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",r[r.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",r[r.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",r[r.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",r[r.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",r[r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",r[r.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",r[r.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",r[r.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",r[r.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",r[r.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",r[r.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",r[r.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",r[r.COMPLETION_STATUS_KHR=37297]="COMPLETION_STATUS_KHR",r[r.DEPTH_CLAMP_EXT=34383]="DEPTH_CLAMP_EXT",r[r.FIRST_VERTEX_CONVENTION_WEBGL=36429]="FIRST_VERTEX_CONVENTION_WEBGL",r[r.LAST_VERTEX_CONVENTION_WEBGL=36430]="LAST_VERTEX_CONVENTION_WEBGL",r[r.PROVOKING_VERTEX_WEBL=36431]="PROVOKING_VERTEX_WEBL",r[r.POLYGON_MODE_WEBGL=2880]="POLYGON_MODE_WEBGL",r[r.POLYGON_OFFSET_LINE_WEBGL=10754]="POLYGON_OFFSET_LINE_WEBGL",r[r.LINE_WEBGL=6913]="LINE_WEBGL",r[r.FILL_WEBGL=6914]="FILL_WEBGL",r[r.MAX_CLIP_DISTANCES_WEBGL=3378]="MAX_CLIP_DISTANCES_WEBGL",r[r.MAX_CULL_DISTANCES_WEBGL=33529]="MAX_CULL_DISTANCES_WEBGL",r[r.MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL=33530]="MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL",r[r.CLIP_DISTANCE0_WEBGL=12288]="CLIP_DISTANCE0_WEBGL",r[r.CLIP_DISTANCE1_WEBGL=12289]="CLIP_DISTANCE1_WEBGL",r[r.CLIP_DISTANCE2_WEBGL=12290]="
2006CLIP_DISTANCE2_WEBGL",r[r.CLIP_DISTANCE3_WEBGL=12291]="CLIP_DISTANCE3_WEBGL",r[r.CLIP_DISTANCE4_WEBGL=12292]="CLIP_DISTANCE4_WEBGL",r[r.CLIP_DISTANCE5_WEBGL=12293]="CLIP_DISTANCE5_WEBGL",r[r.CLIP_DISTANCE6_WEBGL=12294]="CLIP_DISTANCE6_WEBGL",r[r.CLIP_DISTANCE7_WEBGL=12295]="CLIP_DISTANCE7_WEBGL",r[r.POLYGON_OFFSET_CLAMP_EXT=36379]="POLYGON_OFFSET_CLAMP_EXT",r[r.LOWER_LEFT_EXT=36001]="LOWER_LEFT_EXT",r[r.UPPER_LEFT_EXT=36002]="UPPER_LEFT_EXT",r[r.NEGATIVE_ONE_TO_ONE_EXT=37726]="NEGATIVE_ONE_TO_ONE_EXT",r[r.ZERO_TO_ONE_EXT=37727]="ZERO_TO_ONE_EXT",r[r.CLIP_ORIGIN_EXT=37724]="CLIP_ORIGIN_EXT",r[r.CLIP_DEPTH_MODE_EXT=37725]="CLIP_DEPTH_MODE_EXT",r[r.SRC1_COLOR_WEBGL=35065]="SRC1_COLOR_WEBGL",r[r.SRC1_ALPHA_WEBGL=34185]="SRC1_ALPHA_WEBGL",r[r.ONE_MINUS_SRC1_COLOR_WEBGL=35066]="ONE_MINUS_SRC1_COLOR_WEBGL",r[r.ONE_MINUS_SRC1_ALPHA_WEBGL=35067]="ONE_MINUS_SRC1_ALPHA_WEBGL",r[r.MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL=35068]="MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL",r[r.MIRROR_CLAMP_TO_EDGE_EXT=34627]="MIRROR_CLAMP_TO_EDGE_EXT"})(Ud||(Ud={}));const Mx={3042:!1,32773:new Float32Array([0,0,0,0]),32777:32774,34877:32774,32969:1,32968:0,32971:1,32970:0,3106:new Float32Array([0,0,0,0]),3107:[!0,!0,!0,!0],2884:!1,2885:1029,2929:!1,2931:1,2932:513,2928:new Float32Array([0,1]),2930:!0,3024:!0,35725:null,36006:null,36007:null,34229:null,34964:null,2886:2305,33170:4352,2849:1,32823:!1,32824:0,10752:0,32926:!1,32928:!1,32938:1,32939:!1,3089:!1,3088:new Int32Array([0,0,1024,1024]),2960:!1,2961:0,2968:4294967295,36005:4294967295,2962:519,2967:0,2963:4294967295,34816:519,36003:0,36004:4294967295,2964:7680,2965:7680,2966:7680,34817:7680,34818:7680,34819:7680,2978:[0,0,1024,1024],36389:null,36662:null,36663:null,35053:null,35055:null,35723:4352,36010:null,35977:!1,3333:4,3317:4,37440:!1,37441:!1,37443:37444,3330:0,3332:0,3331:0,3314:0,32878:0,3316:0,3315:0,32877:0},hs=(r,e,t)=>e?r.enable(t):r.disable(t),H3=(r,e,t)=>r.hint(t,e),oa=(r,e,t)=>r.pixelStorei(t,e),W3=(r,e,t)=>{const n=t===36006?36009:36008;return r.bindFramebuffer(n,e)},dA=(r,e,t)=>{const i={34964:34962,36662:36662,36663:36663,35053:35051,35055:35052}[t];r.bindBuffer(i,e)};function Iv(r){return Array.isArray(r)||ArrayBuffer.isView(r)&&!(r instanceof DataView)}const n$={3042:hs,32773:(r,e)=>r.blendColor(...e),32777:"blendEquation",34877:"blendEquation",32969:"blendFunc",32968:"blendFunc",32971:"blendFunc",32970:"blendFunc",3106:(r,e)=>r.clearColor(...e),3107:(r,e)=>r.colorMask(...e),2884:hs,2885:(r,e)=>r.cullFace(e),2929:hs,2931:(r,e)=>r.clearDepth(e),2932:(r,e)=>r.depthFunc(e),2928:(r,e)=>r.depthRange(...e),2930:(r,e)=>r.depthMask(e),3024:hs,35723:H3,35725:(r,e)=>r.useProgram(e),36007:(r,e)=>r.bindRenderbuffer(36161,e),36389:(r,e)=>r.bindTransformFeedback?.(36386,e),34229:(r,e)=>r.bindVertexArray(e),36006:W3,36010:W3,34964:dA,36662:dA,36663:dA,35053:dA,35055:dA,2886:(r,e)=>r.frontFace(e),33170:H3,2849:(r,e)=>r.lineWidth(e),32823:hs,32824:"polygonOffset",10752:"polygonOffset",35977:hs,32926:hs,32928:hs,32938:"sampleCoverage",32939:"sampleCoverage",3089:hs,3088:(r,e)=>r.scissor(...e),2960:hs,2961:(r,e)=>r.clearStencil(e),2968:(r,e)=>r.stencilMaskSeparate(1028,e),36005:(r,e)=>r.stencilMaskSeparate(1029,e),2962:"stencilFuncFront",2967:"stencilFuncFront",2963:"stencilFuncFront",34816:"stencilFuncBack",36003:"stencilFuncBack",36004:"stencilFuncBack",2964:"stencilOpFront",2965:"stencilOpFront",2966:"stencilOpFront",34817:"stencilOpBack",34818:"stencilOpBack",34819:"stencilOpBack",2978:(r,e)=>r.viewport(...e),34383:hs,10754:hs,12288:hs,12289:hs,12290:hs,12291:hs,12292:hs,12293:hs,12294:hs,12295:hs,3333:oa,3317:oa,37440:oa,37441:oa,37443:oa,3330:oa,3332:oa,3331:oa,3314:oa,32878:oa,3316:oa,3315:oa,32877:oa,framebuffer:(r,e)=>{const t=e&&"handle"in e?e.handle:e;return r.bindFramebuffer(36160,t)},blend:(r,e)=>e?r.enable(3042):r.disable(3042),blendColor:(r,e)=>r.blendColor(...e),blendEquation:(r,e)=>{const t=typeof e=="number"?[e,e]:e;r.blendEquationSeparate(...t)},blendFunc:(r,e)=>{const t=e?.length===2?[...e,...e]:e;r.blendFuncSeparate(...t)},clearColor:(r,e)=>r.clearColor(...e),clearDepth:(r,e)=>r.clearDepth(e),clearStencil:(r,e)=>r.clearStencil(e),colorMask:(r,e)=>r.colorMask(...e),cull:(r,e)=>e?r.enable(2884):r.disable(2884),cullFace:(r,e)=>r.cullFace(e),depthTest:(r,e)=>e?r.enable(2929):r.disable(2929),depthFunc:(r,e)=>r.depthFunc(e),depthMask:(r,e)=>r.depthMask(e),depthRange:(r,e)=>r.depthRange(...e),dither:(r,e)=>e?r.enable(3024):r.disable(3024),derivativeHint:(r,e)=>{r.hint(35723,e)},frontFace:(r,e)=>r.frontFace(e),mipmapHint:(r,e)=>r.hint(33170,e),lineWidth:(r,e)=>r.lineWidth(e),polygonOffsetFill:(r,e)=>e?r.enable(32823):r.disable(32823),polygonOffset:(r,e)=>r.polygonOffset(...e),sampleCoverage:(r,e)=>
vendor: 4,401 bytes, line 2006
2006r.sampleCoverage(e[0],e[1]||!1),scissorTest:(r,e)=>e?r.enable(3089):r.disable(3089),scissor:(r,e)=>r.scissor(...e),stencilTest:(r,e)=>e?r.enable(2960):r.disable(2960),stencilMask:(r,e)=>{e=Iv(e)?e:[e,e];const[t,n]=e;r.stencilMaskSeparate(1028,t),r.stencilMaskSeparate(1029,n)},stencilFunc:(r,e)=>{e=Iv(e)&&e.length===3?[...e,...e]:e;const[t,n,i,s,o,l]=e;r.stencilFuncSeparate(1028,t,n,i),r.stencilFuncSeparate(1029,s,o,l)},stencilOp:(r,e)=>{e=Iv(e)&&e.length===3?[...e,...e]:e;const[t,n,i,s,o,l]=e;r.stencilOpSeparate(1028,t,n,i),r.stencilOpSeparate(1029,s,o,l)},viewport:(r,e)=>r.viewport(...e)};function es(r,e,t){return e[r]!==void 0?e[r]:t[r]}const i$={blendEquation:(r,e,t)=>r.blendEquationSeparate(es(32777,e,t),es(34877,e,t)),blendFunc:(r,e,t)=>r.blendFuncSeparate(es(32969,e,t),es(32968,e,t),es(32971,e,t),es(32970,e,t)),polygonOffset:(r,e,t)=>r.polygonOffset(es(32824,e,t),es(10752,e,t)),sampleCoverage:(r,e,t)=>r.sampleCoverage(es(32938,e,t),es(32939,e,t)),stencilFuncFront:(r,e,t)=>r.stencilFuncSeparate(1028,es(2962,e,t),es(2967,e,t),es(2963,e,t)),stencilFuncBack:(r,e,t)=>r.stencilFuncSeparate(1029,es(34816,e,t),es(36003,e,t),es(36004,e,t)),stencilOpFront:(r,e,t)=>r.stencilOpSeparate(1028,es(2964,e,t),es(2965,e,t),es(2966,e,t)),stencilOpBack:(r,e,t)=>r.stencilOpSeparate(1029,es(34817,e,t),es(34818,e,t),es(34819,e,t))},$3={enable:(r,e)=>r({[e]:!0}),disable:(r,e)=>r({[e]:!1}),pixelStorei:(r,e,t)=>r({[e]:t}),hint:(r,e,t)=>r({[e]:t}),useProgram:(r,e)=>r({35725:e}),bindRenderbuffer:(r,e,t)=>r({36007:t}),bindTransformFeedback:(r,e,t)=>r({36389:t}),bindVertexArray:(r,e)=>r({34229:e}),bindFramebuffer:(r,e,t)=>{switch(e){case 36160:return r({36006:t,36010:t});case 36009:return r({36006:t});case 36008:return r({36010:t});default:return null}},bindBuffer:(r,e,t)=>{const n={34962:[34964],36662:[36662],36663:[36663],35051:[35053],35052:[35055]}[e];return n?r({[n]:t}):{valueChanged:!0}},blendColor:(r,e,t,n,i)=>r({32773:new Float32Array([e,t,n,i])}),blendEquation:(r,e)=>r({32777:e,34877:e}),blendEquationSeparate:(r,e,t)=>r({32777:e,34877:t}),blendFunc:(r,e,t)=>r({32969:e,32968:t,32971:e,32970:t}),blendFuncSeparate:(r,e,t,n,i)=>r({32969:e,32968:t,32971:n,32970:i}),clearColor:(r,e,t,n,i)=>r({3106:new Float32Array([e,t,n,i])}),clearDepth:(r,e)=>r({2931:e}),clearStencil:(r,e)=>r({2961:e}),colorMask:(r,e,t,n,i)=>r({3107:[e,t,n,i]}),cullFace:(r,e)=>r({2885:e}),depthFunc:(r,e)=>r({2932:e}),depthRange:(r,e,t)=>r({2928:new Float32Array([e,t])}),depthMask:(r,e)=>r({2930:e}),frontFace:(r,e)=>r({2886:e}),lineWidth:(r,e)=>r({2849:e}),polygonOffset:(r,e,t)=>r({32824:e,10752:t}),sampleCoverage:(r,e,t)=>r({32938:e,32939:t}),scissor:(r,e,t,n,i)=>r({3088:new Int32Array([e,t,n,i])}),stencilMask:(r,e)=>r({2968:e,36005:e}),stencilMaskSeparate:(r,e,t)=>r({[e===1028?2968:36005]:t}),stencilFunc:(r,e,t,n)=>r({2962:e,2967:t,2963:n,34816:e,36003:t,36004:n}),stencilFuncSeparate:(r,e,t,n,i)=>r({[e===1028?2962:34816]:t,[e===1028?2967:36003]:n,[e===1028?2963:36004]:i}),stencilOp:(r,e,t,n)=>r({2964:e,2965:t,2966:n,34817:e,34818:t,34819:n}),stencilOpSeparate:(r,e,t,n,i)=>r({[e===1028?2964:34817]:t,[e===1028?2965:34818]:n,[e===1028?2966:34819]:i}),viewport:(r,e,t,n,i)=>r({2978:[e,t,n,i]})},Yl=(r,e)=>r.isEnabled(e),X3={3042:Yl,2884:Yl,2929:Yl,3024:Yl,32823:Yl,32926:Yl,32928:Yl,3089:Yl,2960:Yl,35977:Yl},s$=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068]);function Cp(r,e){if(a$(e))return;const t={};for(const i in e){const s=Number(i),o=n$[i];o&&(typeof o=="string"?t[o]=!0:o(r,e[i],s))}const n=r.state&&r.state.cache;if(n)for(const i in t){const s=i$[i];s(r,e,n)}}function bD(r,e=Mx){if(typeof e=="number"){const i=e,s=X3[i];return s?s(r,i):r.getParameter(i)}const t=Array.isArray(e)?e:Object.keys(e),n={};for(const i of t){const s=X3[i];n[i]=s?s(r,Number(i)):r.getParameter(Number(i))}return n}function o$(r){Cp(r,Mx)}function a$(r){for(const e in r)return!1;return!0}function l$(r,e){if(r===e)return!0;const t=Array.isArray(r)||ArrayBuffer.isView(r),n=Array.isArray(e)||ArrayBuffer.isView(e);if(t&&n&&r.length===e.length){for(let i=0;i<r.length;++i)if(r[i]!==e[i])return!1;return!0}return!1}class Yf{static get(e){return e.state}gl;program=null;stateStack=[];enable=!0;cache=null;log;initialized=!1;constructor(e,t){this.gl=e,this.log=t?.log||(()=>{}
2006),this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(e={}){this.stateStack.push({})}pop(){const e=this.stateStack[this.stateStack.length-1];Cp(this.gl,e),this.stateStack.pop()}trackState(e,t){if(this.cache=t.copyState?bD(e):Object.assign({},Mx),this.initialized)throw new Error("WebGLStateTracker");this.initialized=!0,this.gl.state=this,u$(e);for(const n in $3){const i=$3[n];c$(e,n,i)}q3(e,"getParameter"),q3(e,"isEnabled")}_updateCache(e){let t=!1,n;const i=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(const s in e){const o=e[s],l=this.cache[s];l$(o,l)||(t=!0,n=l,i&&!(s in i)&&(i[s]=l),this.cache[s]=o)}return{valueChanged:t,oldValue:n}}}function q3(r,e){const t=r[e].bind(r);r[e]=function(i){if(i===void 0||s$.has(i))return t(i);const s=Yf.get(r);return i in s.cache||(s.cache[i]=t(i)),s.enable?s.cache[i]:t(i)},Object.defineProperty(r[e],"name",{value:`${e}-from-cache`,configurable:!1})}function c$(r,e,t){if(!r[e])return;const n=r[e].bind(r);r[e]=function(...s){const o=Yf.get(r),{valueChanged:l,oldValue:f}=t(o._updateCache,...s);return l&&n(...s),f},Object.defineProperty(r[e],"name",{value:`${e}-to-cache`,configurable:!1})}function u$(r){const e=r.useProgram.bind(r);r.useProgram=function(n){const i=Yf.get(r);i.program!==n&&(e(n),i.program=n)}}function f$(r,e,t){let n="";const i={preserveDrawingBuffer:!0,...t};let s=null;if(s||=r.getContext("webgl2",i),i.failIfMajorPerformanceCaveat&&(n||="Only software GPU is available. Set `failIfMajorPerformanceCaveat: false` to allow."),!s&&!t.failIfMajorPerformanceCaveat&&(i.failIfMajorPerformanceCaveat=!1,s=r.getContext("webgl2",i),s.luma||={},s.luma.softwareRenderer=!0),s||(s=r.getContext("webgl",{}),s&&(s=null,n||="Your browser only supports WebGL1")),!s)throw n||="Your browser does not support WebGL",new Error(`Failed to create WebGL context: ${n}`);const{onContextLost:o,onContextRestored:l}=e;return r.addEventListener("webglcontextlost",f=>o(f),!1),r.addEventListener("webglcontextrestored",f=>l(f),!1),s.luma||={},s}function dp(r,e,t){return t[e]===void 0&&(t[e]=r.getExtension(e)||null),t[e]}function h$(r,e){const t=r.getParameter(7936),n=r.getParameter(7937);dp(r,"WEBGL_debug_renderer_info",e);const i=e.WEBGL_debug_renderer_info,s=r.getParameter(i?i.UNMASKED_VENDOR_WEBGL:7936),o=r.getParameter(i?i.UNMASKED_RENDERER_WEBGL:7937),l=s||t,f=o||n,A=r.getParameter(7938),v=xD(l,f),T=d$(l,f),I=p$(l,f);return{type:"webgl",gpu:v,gpuType:I,gpuBackend:T,vendor:l,renderer:f,version:A,shadingLanguage:"glsl",shadingLanguageVersion:300}}function xD(r,e){return/NVIDIA/i.exec(r)||/NVIDIA/i.exec(e)?"nvidia":/INTEL/i.exec(r)||/INTEL/i.exec(e)?"intel":/Apple/i.exec(r)||/Apple/i.exec(e)?"apple":/AMD/i.exec(r)||/AMD/i.exec(e)||/ATI/i.exec(r)||/ATI/i.exec(e)?"amd":/SwiftShader/i.exec(r)||/SwiftShader/i.exec(e)?"software":"unknown"}function d$(r,e){return/Metal/i.exec(r)||/Metal/i.exec(e)?"metal":/ANGLE/i.exec(r)||/ANGLE/i.exec(e)?"opengl":"unknown"}function p$(r,e){if(/SwiftShader/i.exec(r)||/SwiftShader/i.exec(e))return"cpu";
2006switch(xD(r,e)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function wD(r){switch(r){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(r))}const CA="WEBGL_compressed_texture_s3tc",SA="WEBGL_compressed_texture_s3tc_srgb",zd="EXT_texture_compression_rgtc",Vd="EXT_texture_compression_bptc",A$="WEBGL_compressed_texture_etc",g$="WEBGL_compressed_texture_astc",m$="WEBGL_compressed_texture_etc1",_$="WEBGL_compressed_texture_pvrtc",y$="WEBGL_compressed_texture_atc",J3="EXT_texture_norm16",K3="EXT_render_snorm",v$="EXT_color_buffer_float",Rx={"float32-renderable-webgl":["EXT_color_buffer_float"],"float16-renderable-webgl":["EXT_color_buffer_half_float"],"rgb9e5ufloat-renderable-webgl":["WEBGL_render_shared_exponent"],"snorm8-renderable-webgl":[K3],"norm16-renderable-webgl":[J3],"snorm16-renderable-webgl":[J3,K3],"float32-filterable":["OES_texture_float_linear"],"float16-filterable-webgl":["OES_texture_half_float_linear"],"texture-filterable-anisotropic-webgl":["EXT_texture_filter_anisotropic"],"texture-blend-float-webgl":["EXT_float_blend"],"texture-compression-bc":[CA,SA,zd,Vd],"texture-compression-bc5-webgl":[zd],"texture-compression-bc7-webgl":[Vd],"texture-compression-etc2":[A$],"texture-compression-astc":[g$],"texture-compression-etc1-webgl":[m$],"texture-compression-pvrtc-webgl":[_$],"texture-compression-atc-webgl":[y$]};function b$(r){return r in Rx}function x$(r,e,t){return(Rx[e]||[]).every(i=>dp(r,i,t))}const Ox={r8unorm:{gl:33321,rb:!0},r8snorm:{gl:36756},r8uint:{gl:33330,rb:!0},r8sint:{gl:33329,rb:!0},rg8unorm:{gl:33323,rb:!0},rg8snorm:{gl:36757},rg8uint:{gl:33336,rb:!0},rg8sint:{gl:33335,rb:!0},r16uint:{gl:33332,rb:!0},r16sint:{gl:33331,rb:!0},r16float:{gl:33325,rb:!0},"r16unorm-webgl":{gl:33322,rb:!0},"r16snorm-webgl":{gl:36760},"rgba4unorm-webgl":{gl:32854,rb:!0},"rgb565unorm-webgl":{gl:36194,rb:!0},"rgb5a1unorm-webgl":{gl:32855,rb:!0},"rgb8unorm-webgl":{gl:32849},"rgb8snorm-webgl":{gl:36758},rgba8unorm:{gl:32856},"rgba8unorm-srgb":{gl:35907},rgba8snorm:{gl:36759},rgba8uint:{gl:36220},rgba8sint:{gl:36238},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{gl:33338},rg16sint:{gl:33337},rg16float:{gl:33327,rb:!0},"rg16unorm-webgl":{gl:33324},"rg16snorm-webgl":{gl:36761},r32uint:{gl:33334,rb:!0},r32sint:{gl:33333,rb:!0},r32float:{gl:33326},rgb9e5ufloat:{gl:35901},rg11b10ufloat:{gl:35898,rb:!0},rgb10a2unorm:{gl:32857,rb:!0},"rgb10a2uint-webgl":{gl:36975,rb:!0},"rgb16unorm-webgl":{gl:32852},"rgb16snorm-webgl":{gl:36762},rg32uint:{gl:33340,rb:!0},rg32sint:{gl:33339,rb:!0},rg32float:{gl:33328,rb:!0},rgba16uint:{gl:36214,rb:!0},rgba16sint:{gl:36232,rb:!0},rgba16float:{gl:34842},"rgba16unorm-webgl":{gl:32859,rb:!0},"rgba16snorm-webgl":{gl:36763},"rgb32float-webgl":{gl:34837,x:v$,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,rb:!0},rgba32sint:{gl:36226,rb:!0},rgba32float:{gl:34836,rb:!0},stencil8:{gl:36168,rb:!0},depth16unorm:{gl:33189,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,dataFormat:6402,types:[5125]},depth32float:{gl:36012,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth32float-stencil8":{gl:36013,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:CA},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:SA},"bc1-rgba-unorm":{gl:33777,x:CA},"bc1-rgba-unorm-srgb":{gl:35916,x:SA},"bc2-rgba-unorm":{gl:33778,x:CA},"bc2-rgba-unorm-srgb":{gl:35918,x:SA},"bc3-rgba-unorm":{gl:33779,x:CA},"bc3-rgba-unorm-srgb":{gl:35919,x:SA},"bc4-r-unorm":{gl:36283,x:zd},"bc4-r-snorm":{gl:36284,x:zd},"bc5-rg-unorm":{gl:36285,x:zd},"bc5-rg-snorm":{gl:36286,x:zd},"bc6h-rgb-ufloat":{gl:36495,x:Vd},"bc6h-rgb-float":{gl:36494,x:Vd},"bc7-rgba-unorm":{gl:36492,x:Vd},"bc7-rgba-unorm-srgb":{gl:36493,x:Vd},"etc2-rgb8unorm":{gl:37492},"etc2-rgb8unorm-srgb":{gl:37494},"etc2-rgb8a1unorm":{gl:37496},"etc2-rgb8a1unorm-srgb":{gl:37497},"etc2-rgba8unorm":{gl:37493},"etc2-rgba8unorm-srgb":{gl:37495},"eac-r11unorm":{gl:37488},"eac-r11snorm":{gl:37489},"eac-rg11unorm":{gl:37490},"eac-rg11snorm":{gl:37491},"astc-4x4-unorm":{gl:37808},"astc-4x4-unorm-srgb":{gl:37840},"astc-5x4-unorm":{gl:37809},"astc-5x4-unorm-srgb":{gl:37841},"astc-5x5-unorm":{gl:37810},"astc-5x5-unorm-srgb":{gl:37842},"astc-6x5-unorm":{gl:37811},"astc-6x5-unorm-srgb":{gl:37843},"astc-6x6-unorm":{gl:37812},"astc-6x6-unorm-srgb":{gl:37844},"astc-8x5-unorm":{gl:37813},"astc-8x5-unorm-srgb":{gl:37845},"astc-8x6-unorm":{gl:37814},"astc-8x6-unorm-srgb":{gl:37846},"astc-8x8-unorm":{gl:37815},"astc-8x8-unorm-srgb":{gl:37847},"astc-10x5-unorm":{gl:37819},"astc-10x5-unorm-srgb":{gl:37851},"astc-10x6-unorm":{gl:37817},"astc-10x6-unorm-srgb":{gl:37849},"astc-10x8-unorm":{gl:37818},"astc-10x8-unorm-srgb":{gl:37850},"astc-10x10-unorm":{gl:37819},"astc-10x10-unorm-srgb":{gl:37851},"astc-12x10-unorm":{gl:37820},"astc-12x10-unorm-srgb":{gl:37852},"astc-12x12-unorm":{gl:37821},"astc-12x12-unorm-srgb":{gl:37853},"pvrtc-rgb4unorm-webgl":{gl:35840},"pvrtc-rgba4unorm-webgl":{gl:35842},"pvrtc-rbg2unorm-webgl":{gl:35841},"pvrtc-rgba2unorm-webgl":{gl:35843},"etc1-rbg-unorm-webgl":{gl:36196},"atc-rgb-unorm-webgl":{gl:35986},"atc-rgba-unorm-webgl":{gl:35986},"atc-rgbai-unorm-webgl":{gl:34798}};function w$(r,e,t){let n=e.create;const i=Ox[e.format];return i?.gl===void 0&&(n=!1),i?.x&&(n=n&&!!dp(r,i.x,t)),{format:e.format,create:n&&e.create,render:n&&e.render,filter:n&&e.filter,blend:n&&e.blend,store:n&&e.store}}function TD(r){const e=Ox[r],t=C$(r),n=Q2(r);return{internalFormat:t,format:e?.dataFormat||E$(n.channels,n.integer,n.normalized,t),type:n.dataType?wD(n.dataType):e?.types?.[0]||5121,compressed:n.compressed||!1}}function T$(r){switch(Q2(r).attachment){case"depth":return 36096;case"stencil":return 36128;case"depth-stencil":return 33306;default:throw new Error(`Not a depth stencil format: ${r}`)}}function E$(r,e,t,n){if(n===6408||n===6407)return n;switch(r){case"r":return e&&!t?36244:6403;
2006case"rg":return e&&!t?33320:33319;case"rgb":return e&&!t?36248:6407;case"rgba":return e&&!t?36249:6408;case"bgra":throw new Error("bgra pixels not supported by WebGL");default:return 6408}}function C$(r){const t=Ox[r]?.gl;if(t===void 0)throw new Error(`Unsupported texture format ${r}`);return t}const Z3={"depth-clip-control":"EXT_depth_clamp","timer-query-webgl":"EXT_disjoint_timer_query_webgl2","compilation-status-async-webgl":"KHR_parallel_shader_compile","polygon-mode-webgl":"WEBGL_polygon_mode","provoking-vertex-webgl":"WEBGL_provoking_vertex","shader-clip-cull-distance-webgl":"WEBGL_clip_cull_distance","shader-noperspective-interpolation-webgl":"NV_shader_noperspective_interpolation","shader-conservative-depth-webgl":"EXT_conservative_depth"};class S$ extends cz{gl;extensions;testedFeatures=new Set;constructor(e,t,n){super([],n),this.gl=e,this.extensions=t,dp(e,"EXT_color_buffer_float",t)}*[Symbol.iterator](){const e=this.getFeatures();for(const t of e)this.has(t)&&(yield t);return[]}has(e){return this.disabledFeatures?.[e]?!1:(this.testedFeatures.has(e)||(this.testedFeatures.add(e),b$(e)&&x$(this.gl,e,this.extensions)&&this.features.add(e),this.getWebGLFeature(e)&&this.features.add(e)),this.features.has(e))}initializeFeatures(){const e=this.getFeatures().filter(t=>t!=="polygon-mode-webgl");for(const t of e)this.has(t)}getFeatures(){return[...Object.keys(Z3),...Object.keys(Rx)]}getWebGLFeature(e){const t=Z3[e];return typeof t=="string"?!!dp(this.gl,t,this.extensions):!!t}}class I$ extends lz{get maxTextureDimension1D(){return 0}get maxTextureDimension2D(){return this.getParameter(3379)}get maxTextureDimension3D(){return this.getParameter(32883)}get maxTextureArrayLayers(){return this.getParameter(35071)}get maxBindGroups(){return 0}get maxDynamicUniformBuffersPerPipelineLayout(){return 0}get maxDynamicStorageBuffersPerPipelineLayout(){return 0}get maxSampledTexturesPerShaderStage(){return this.getParameter(35660)}get maxSamplersPerShaderStage(){return this.getParameter(35661)}get maxStorageBuffersPerShaderStage(){return 0}get maxStorageTexturesPerShaderStage(){return 0}get maxUniformBuffersPerShaderStage(){return this.getParameter(35375)}get maxUniformBufferBindingSize(){return this.getParameter(35376)}get maxStorageBufferBindingSize(){return 0}get minUniformBufferOffsetAlignment(){return this.getParameter(35380)}get minStorageBufferOffsetAlignment(){return 0}get maxVertexBuffers(){return 16}get maxVertexAttributes(){return this.getParameter(34921)}get maxVertexBufferArrayStride(){return 2048}get maxInterStageShaderComponents(){return this.getParameter(35659)}get maxComputeWorkgroupStorageSize(){return 0}get maxComputeInvocationsPerWorkgroup(){return 0}get maxComputeWorkgroupSizeX(){return 0}get maxComputeWorkgroupSizeY(){return 0}get maxComputeWorkgroupSizeZ(){return 0}get maxComputeWorkgroupsPerDimension(){return 0}gl;limits={};constructor(e){super(),this.gl=e}getParameter(e){return this.limits[e]===void 0&&(this.limits[e]=this.gl.getParameter(e)),this.limits[e]||0}}class NA extends P_{device;gl;handle;colorAttachments=[];depthStencilAttachment=null;constructor(e,t){super(e,t);const n=t.handle===null;this.device=e,this.gl=e.gl,this.handle=this.props.handle||n?this.props.handle:this.gl.createFramebuffer(),n||(e.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures(),this.updateAttachments())}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}updateAttachments(){const e=this.gl.bindFramebuffer(36160,this.handle);for(let t=0;t<this.colorAttachments.length;++t){const n=this.colorAttachments[t];if(n){const i=36064+t;this._attachTextureView(i,n)}}if(this.depthStencilAttachment){const t=T$(this.depthStencilAttachment.props.format);this._attachTextureView(t,this.depthStencilAttachment)}if(this.device.props.debug){const t=this.gl.checkFramebufferStatus(36160);if(t!==36053)throw new Error(`Framebuffer ${P$(t)}`)}this.gl.bindFramebuffer(36160,e)}_attachTextureView(e,t){const{gl:n}=this.device,{texture:i}=t,s=t.props.baseMipLevel,o=t.props.baseArrayLayer;switch(n.bindTexture(i.glTarget,i.handle),i.glTarget){case 35866:case 32879:n.framebufferTextureLayer(36160,e,i.handle,s,o);break;case 34067:const l=B$(o);n.framebufferTexture2D(36160,e,l,i.handle,s);break;case 3553:n.framebufferTexture2D(36160,e,3553,i.handle,s);break;default:throw new Error("Illegal texture type")}n.bindTexture(i.glTarget,null)}}function B$(r){return r<34069?r+34069:r}function P$(r){switch(r){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${r}`}}class M$ extends ex{device;format="rgba8unorm";depthStencilFormat="depth24plus";presentationSize;_framebuffer=null;get[Symbol.toStringTag](){return"WebGLCanvasContext"}constructor(e,t){super(t),this.device=e,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new NA(this.device,{handle:null}),this._framebuffer}update(){const e=this.getPixelSize();(e[0]!==this.presentationSize[0]||e[1]!==this.presentationSize[1])&&(this.presentationSize=e,this.resize())}resize(e){if(this.device.gl&&this.canvas){const t=this.getDevicePixelRatio(e?.useDevicePixels);this.setDevicePixelRatio(t,e);return}}commit(){}}async function ED(r,e){const t=document.getElementsByTagName("head")[0];if(!t)throw new Error("loadScript");const n=document.createElement("script");return n.setAttribute("type","text/javascript"),n.setAttribute("src",r),new Promise((i,s)=>{n.onload=i,n.onerror=o=>s(new Error(`Unable to load script '${r}': ${o}`)),t.appendChild(n)})}const R$=1;let aa=null,Y3=!1;const Dx={debugSpectorJS:Yt.get("debug-spectorjs"),debugSpectorJSUrl:"https://cdn.jsdelivr.net/npm/[email protected]/dist/spector.bundle.js",gl:void 0};async function O$(r){if(!globalThis.SPECTOR)try{await ED(r.debugSpectorJSUrl||Dx.debugSpectorJSUrl)}catch(e){Yt.warn(String(e))}}function D$(r){if(r={...Dx,...r},!r.debugSpectorJS)return null;if(!aa&&globalThis.SPECTOR&&!globalThis.luma?.spector){Yt.probe(R$,"SPECTOR foun
2006d and initialized. Start with `luma.spector.displayUI()`")();const{Spector:e}=globalThis.SPECTOR;aa=new e,globalThis.luma&&(globalThis.luma.spector=aa)}if(!aa)return null;if(Y3||(Y3=!0,aa.spyCanvases(),aa?.onCaptureStarted.add(e=>Yt.info("Spector capture started:",e)()),aa?.onCapture.add(e=>{Yt.info("Spector capture complete:",e)(),aa?.getResultUI(),aa?.resultView.display(),aa?.resultView.addCapture(e)})),r.gl){const e=r.gl,t=e.device;aa?.startCapture(r.gl,500),e.device=t,new Promise(n=>setTimeout(n,2e3)).then(n=>{Yt.info("Spector capture stopped after 2 seconds")(),aa?.stopCapture()})}return aa}const F$="https://unpkg.com/[email protected]/index.js";function CD(r){return r.luma=r.luma||{},r.luma}async function L$(){fh()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await ED(F$))}function k$(r,e={}){return e.debugWebGL||e.traceWebGL?U$(r,e):N$(r)}function N$(r){const e=CD(r);return e.realContext?e.realContext:r}function U$(r,e){if(!globalThis.WebGLDebugUtils)return Yt.warn("webgl-debug not loaded")(),r;const t=CD(r);if(t.debugContext)return t.debugContext;globalThis.WebGLDebugUtils.init({...Ud,...r});const n=globalThis.WebGLDebugUtils.makeDebugContext(r,z$.bind(null,e),V$.bind(null,e));for(const o in Ud)!(o in n)&&typeof Ud[o]=="number"&&(n[o]=Ud[o]);class i{}Object.setPrototypeOf(n,Object.getPrototypeOf(r)),Object.setPrototypeOf(i,n);const s=Object.create(i);return t.realContext=r,t.debugContext=s,s.debug=!0,s}function Q3(r,e){e=Array.from(e).map(n=>n===void 0?"undefined":n);let t=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,e);return t=`${t.slice(0,100)}${t.length>100?"...":""}`,`gl.${r}(${t})`}function z$(r,e,t,n){n=Array.from(n).map(l=>l===void 0?"undefined":l);const i=globalThis.WebGLDebugUtils.glEnumToString(e),s=globalThis.WebGLDebugUtils.glFunctionArgsToString(t,n),o=`${i} in gl.${t}(${s})`;Yt.error(o)();debugger}function V$(r,e,t){let n="";Yt.level>=1&&(n=Q3(e,t),r.traceWebGL&&Yt.log(1,n)());for(const i of t)if(i===void 0){n=n||Q3(e,t);debugger}}const Bv={};function j$(r="id"){Bv[r]=Bv[r]||1;const e=Bv[r]++;return`${r}-${e}`}class UA extends Hi{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength;bytesUsed;constructor(e,t={}){super(e,t),this.device=e,this.gl=this.device.gl;const n=typeof t=="object"?t.handle:void 0;this.handle=n||this.gl.createBuffer(),e.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=G$(this.props.usage),this.glUsage=H$(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,t.data?this._initWithData(t.data,t.byteOffset,t.byteLength):this._initWithByteLength(t.byteLength||0)}_initWithData(e,t=0,n=e.byteLength+t){const i=this.glTarget;this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,n,this.glUsage),this.gl.bufferSubData(i,t,e),this.gl.bindBuffer(i,null),this.bytesUsed=n,this.byteLength=n,this._setDebugData(e,t,n),this.trackAllocatedMemory(n)}_initWithByteLength(e){let t=e;e===0&&(t=new Float32Array(0));const n=this.glTarget;return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,t,this.glUsage),this.gl.bindBuffer(n,null),this.bytesUsed=e,this.byteLength=e,this._setDebugData(null,0,e),this.trackAllocatedMemory(e),this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(e,t=0){this.gl.bindBuffer(36663,this.handle),this.gl.bufferSubData(36663,t,e),this.gl.bindBuffer(36663,null),this._setDebugData(e,t,e.byteLength)}async readAsync(e=0,t){return this.readSyncWebGL(e,t)}readSyncWebGL(e=0,t){t=t??this.byteLength-e;const n=new Uint8Array(t),i=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,e,n,i,t),this.gl.bindBuffer(36662,null),this._setDebugData(n,e,t),n}}function G$(r){return r&Hi.INDEX?34963:r&Hi.VERTEX?34962:r&Hi.UNIFORM?35345:34962}function H$(r){return r&Hi.INDEX||r&Hi.VERTEX?35044:r&Hi.UNIFORM?35048:35044}function W$(r){const e=r.split(/\r?\n/),t=[];for(const n of e){if(n.length<=1)continue;const i=n.split(":");if(i.length===2){const[T,I]=i;t.push({message:I.trim(),type:eS(T),lineNum:0,linePos:0});continue}const[s,o,l,...f]=i;let A=parseInt(l,10);isNaN(A)&&(A=0);let v=parseInt(o,10);isNaN(v)&&(v=0),t.push({message:f.join(":").trim(),type:eS(s),lineNum:A,linePos:v})}return t}function eS(r){const e=["warning","error","info"],t=r.toLowerCase();return e.includes(t)?t:"info"}class $$ extends B_{device;handle;constructor(e,t){switch(super(e,t),this.device=e,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}get asyncCompilationStatus(){return this._waitForCompilationComplete().then(()=>this.compilationStatus)}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){const e=this.device.gl.getShaderInfoLog(this.handle);return e?W$(e):[]}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)||null}async _compile(e){e=e.startsWith("#version ")?e:`#version 300 es 2007${e}`;const{gl:t}=this.device;if(t.shaderSource(this.handle,e),t.compileShader(this.handle),!this.device.props.debug){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);return}Yt.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),Yt.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()}async _waitForCompilationComplete(){const e=async i=>await new Promise(s=>setTimeout(s,i));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}const{gl:n}=this.device;for(;;){if(n.getShaderParameter(this.handle,37297))return;await e(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}}
vendor: 6,219 bytes, line 2007
2007function X$(r,e,t,n){if(Z$(e))return n(r);const i=r;i.pushState();try{return q$(r,e),Cp(i.gl,t),n(r)}finally{i.popState()}}function q$(r,e){const t=r,{gl:n}=t;if(e.cullMode)switch(e.cullMode){case"none":n.disable(2884);break;case"front":n.enable(2884),n.cullFace(1028);break;case"back":n.enable(2884),n.cullFace(1029);break}if(e.frontFace&&n.frontFace(Qf("frontFace",e.frontFace,{ccw:2305,cw:2304})),e.unclippedDepth&&r.features.has("depth-clip-control")&&n.enable(34383),e.depthBias!==void 0&&(n.enable(32823),n.polygonOffset(e.depthBias,e.depthBiasSlopeScale||0)),e.provokingVertex&&r.features.has("provoking-vertex-webgl")){const s=t.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,o=Qf("provokingVertex",e.provokingVertex,{first:36429,last:36430});s?.provokingVertexWEBGL(o)}if((e.polygonMode||e.polygonOffsetLine)&&r.features.has("polygon-mode-webgl")){if(e.polygonMode){const s=t.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,o=Qf("polygonMode",e.polygonMode,{fill:6914,line:6913});s?.polygonModeWEBGL(1028,o),s?.polygonModeWEBGL(1029,o)}e.polygonOffsetLine&&n.enable(10754)}if(r.features.has("shader-clip-cull-distance-webgl")&&(e.clipDistance0&&n.enable(12288),e.clipDistance1&&n.enable(12289),e.clipDistance2&&n.enable(12290),e.clipDistance3&&n.enable(12291),e.clipDistance4&&n.enable(12292),e.clipDistance5&&n.enable(12293),e.clipDistance6&&n.enable(12294),e.clipDistance7&&n.enable(12295)),e.depthWriteEnabled!==void 0&&n.depthMask(K$("depthWriteEnabled",e.depthWriteEnabled)),e.depthCompare&&(e.depthCompare!=="always"?n.enable(2929):n.disable(2929),n.depthFunc(V1("depthCompare",e.depthCompare))),e.stencilWriteMask){const i=e.stencilWriteMask;n.stencilMaskSeparate(1028,i),n.stencilMaskSeparate(1029,i)}if(e.stencilReadMask&&Yt.warn("stencilReadMask not supported under WebGL"),e.stencilCompare){const i=e.stencilReadMask||4294967295,s=V1("depthCompare",e.stencilCompare);e.stencilCompare!=="always"?n.enable(2960):n.disable(2960),n.stencilFuncSeparate(1028,s,0,i),n.stencilFuncSeparate(1029,s,0,i)}if(e.stencilPassOperation&&e.stencilFailOperation&&e.stencilDepthFailOperation){const i=Pv("stencilPassOperation",e.stencilPassOperation),s=Pv("stencilFailOperation",e.stencilFailOperation),o=Pv("stencilDepthFailOperation",e.stencilDepthFailOperation);n.stencilOpSeparate(1028,s,o,i),n.stencilOpSeparate(1029,s,o,i)}switch(e.blend){case!0:n.enable(3042);break;case!1:n.disable(3042);break}if(e.blendColorOperation||e.blendAlphaOperation){const i=tS("blendColorOperation",e.blendColorOperation||"add"),s=tS("blendAlphaOperation",e.blendAlphaOperation||"add");n.blendEquationSeparate(i,s);const o=T0("blendColorSrcFactor",e.blendColorSrcFactor||"one"),l=T0("blendColorDstFactor",e.blendColorDstFactor||"zero"),f=T0("blendAlphaSrcFactor",e.blendAlphaSrcFactor||"one"),A=T0("blendAlphaDstFactor",e.blendAlphaDstFactor||"zero");n.blendFuncSeparate(o,l,f,A)}}function V1(r,e){return Qf(r,e,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Pv(r,e){return Qf(r,e,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function tS(r,e){return Qf(r,e,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function T0(r,e){return Qf(r,e,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,"constant-color":32769,"one-minus-constant-color":32770,"constant-alpha":32771,"one-minus-constant-alpha":32772})}function J$(r,e){return`Illegal parameter ${e} for ${r}`}function Qf(r,e,t){if(!(e in t))throw new Error(J$(r,e));return t[e]}function K$(r,e){return e}function Z$(r){let e=!0;for(const t in r){e=!1;break}return e}function SD(r){const e={};return r.addressModeU&&(e[10242]=Mv(r.addressModeU)),r.addressModeV&&(e[10243]=Mv(r.addressModeV)),r.addressModeW&&(e[32882]=Mv(r.addressModeW)),r.magFilter&&(e[10240]=j1(r.magFilter)),(r.minFilter||r.mipmapFilter)&&(e[10241]=Y$(r.minFilter||"linear",r.mipmapFilter)),r.lodMinClamp!==void 0&&(e[33082]=r.lodMinClamp),r.lodMaxClamp!==void 0&&(e[33083]=r.lodMaxClamp),r.type==="comparison-sampler"&&(e[34892]=34894),r.compare&&(e[34893]=V1("compare",r.compare)),r.maxAnisotropy&&(e[34046]=r.maxAnisotropy),e}function Mv(r){switch(r){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function j1(r){switch(r){case"nearest":return 9728;case"linear":return 9729}}function Y$(r,e="none"){if(!e)return j1(r);switch(e){case"none":return j1(r);case"nearest":return r==="nearest"?9984:9986;case"linear":return r==="nearest"?9985:9987}}class G1 extends KA{device;handle;parameters;constructor(e,t){super(e,t),this.device=e,this.parameters=SD(t),this.handle=this.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(e){for(const[t,n]of Object.entries(e)){const i=Number(t);switch(i){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,i,n);break;default:this.device.gl.samplerParameteri(this.handle,i,n);break}}}}class jd extends I_{device;gl;handle;texture;constructor(e,t){super(e,{...oi.defaultProps,...t}),this.device=e,this.gl=this.device.gl,this.handle=null,this.texture=t.texture}}const Q$="Failed to deduce GL constant from typed array";function eX(r){switch(ArrayBuffer.isView(r)?r.constructor:r){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(Q$)}}function tX(r,e){const{clamped:t=!0}=e||{};switch(r){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return t?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;
2007default:throw new Error("Failed to deduce typed array type from GL constant")}}function ID(r){switch(r){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function rX(r){switch(r){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}function Zm(r,e,t){if(nX(e))return t(r);const{nocatch:n=!0}=e,i=Yf.get(r);i.push(),Cp(r,e);let s;if(n)s=t(r),i.pop();else try{s=t(r)}finally{i.pop()}return s}function nX(r){for(const e in r)return!1;return!0}function iX(r,e,t){const{dimension:n,width:i,height:s,depth:o=0}=t,{glInternalFormat:l}=t,f=t.glTarget;switch(n){case"2d-array":case"3d":r.texStorage3D(f,e,l,i,s,o);break;default:r.texStorage2D(f,e,l,i,s)}}function rS(r,e,t,n){const{width:i,height:s}=n,{dimension:o,depth:l=0,mipLevel:f=0}=n,{x:A=0,y:v=0,z:T=0}=n,{glFormat:I,glType:F}=n,N=BD(n.glTarget,o,l),U=n.flipY?{37440:!0}:{};Zm(r,U,()=>{switch(o){case"2d-array":case"3d":r.bindTexture(N,e),r.texSubImage3D(N,f,A,v,T,i,s,l,I,F,t),r.bindTexture(N,null);break;case"2d":case"cube":r.bindTexture(N,e),r.texSubImage2D(N,f,A,v,i,s,I,F,t),r.bindTexture(N,null);break;default:throw new Error(o)}})}function nS(r,e,t){const{dimension:n,width:i,height:s,depth:o=0,mipLevel:l=0,byteOffset:f=0}=t,{x:A=0,y:v=0,z:T=0}=t,{glFormat:I,glType:F,compressed:N}=t,U=BD(t.glTarget,n,o);switch(n){case"2d-array":case"3d":N?r.compressedTexSubImage3D(U,l,A,v,T,i,s,o,I,e,f):r.texSubImage3D(U,l,A,v,T,i,s,o,I,F,e,f);break;case"2d":case"cube":N?r.compressedTexSubImage2D(U,l,A,v,i,s,I,e,f):r.texSubImage2D(U,l,A,v,i,s,I,F,e,f);break;default:throw new Error(n)}}function sX(r){switch(r){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866}throw new Error(r)}function BD(r,e,t){return e==="cube"?34069+t:r}function oX(r,e){const{sourceX:t=0,sourceY:n=0,sourceAttachment:i=0}=e||{};let{target:s=null,sourceWidth:o,sourceHeight:l,sourceDepth:f,sourceFormat:A,sourceType:v}=e||{};const{framebuffer:T,deleteFramebuffer:I}=PD(r),{gl:F,handle:N}=T;o||=T.width,l||=T.height;const U=T.colorAttachments[i]?.texture;if(!U)throw new Error(`Invalid framebuffer attachment ${i}`);f=U?.depth||1,A||=U?.glFormat||6408,v||=U?.glType||5121,s=cX(s,v,A,o,l),v=v||eX(s);const $=F.bindFramebuffer(36160,N);return F.readBuffer(36064+i),F.readPixels(t,n,o,l,A,v,s),F.readBuffer(36064),F.bindFramebuffer(36160,$||null),I&&T.destroy(),s}function aX(r,e){const{target:t,sourceX:n=0,sourceY:i=0,sourceFormat:s=6408,targetByteOffset:o=0}=e||{};let{sourceWidth:l,sourceHeight:f,sourceType:A}=e||{};const{framebuffer:v,deleteFramebuffer:T}=PD(r);l=l||v.width,f=f||v.height;const I=v;A=A||5121;let F=t;if(!F){const U=ID(s),$=rX(A),V=o+l*f*U*$;F=I.device.createBuffer({byteLength:V})}const N=r.device.createCommandEncoder();return N.copyTextureToBuffer({sourceTexture:r,width:l,height:f,origin:[n,i],destinationBuffer:F,byteOffset:o}),N.destroy(),T&&v.destroy(),F}function PD(r){return r instanceof P_?{framebuffer:r,deleteFramebuffer:!1}:{framebuffer:lX(r),deleteFramebuffer:!0}}function lX(r,e){const{device:t,width:n,height:i,id:s}=r;return t.createFramebuffer({...e,id:`framebuffer-for-${s}`,width:n,height:i,colorAttachments:[r]})}function cX(r,e,t,n,i,s){if(r)return r;e||=5121;const o=tX(e,{clamped:!1}),l=ID(t);return new o(n*i*l)}class zA extends oi{device;gl;handle;sampler=void 0;view=void 0;mipmaps;compressed;glTarget;glFormat;glType;glInternalFormat;textureUnit=0;constructor(e,t){super(e,t);const n={...this.props};n.data=t.data,this.device=e,this.gl=this.device.gl,this.glTarget=sX(this.props.dimension);const i=TD(this.props.format);this.glInternalFormat=i.internalFormat,this.glFormat=i.format,this.glType=i.type,this.compressed=i.compressed,this.mipmaps=!!this.props.mipmaps,this._initialize(n),Object.seal(this)}_initialize(e){this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:e.data});let{width:t,height:n}=e;if(!t||!n){const i=oi.getTextureDataSize(e.data);t=i?.width||1,n=i?.height||1}if(this.width=t,this.height=n,this.depth=e.depth,this.setSampler(e.sampler),this.view=new jd(this.device,{...this.props,texture:this}),this.bind(),iX(this.gl,this.mipLevels,this),e.data)switch(e.dimension){case"1d":this.setTexture1DData(e.data);break;case"2d":this.setTexture2DData(e.data);break;case"3d":this.setTexture3DData(e.data);break;case"cube":this.setTextureCubeData(e.data);break;case"2d-array":this.setTextureArrayData(e.data);break;case"cube-array":this.setTextureCubeArrayData(e.data);break;default:throw new Error(e.dimension)}this.mipmaps&&this.generateMipmap()}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}createView(e){return new jd(this.device,{...e,texture:this})}setSampler(e={}){let t;e instanceof G1?(this.sampler=e,t=e.props):(this.sampler=new G1(this.device,e),t=e);const n=SD(t);this._setSamplerParameters(n)}generateMipmap(e){if(!(!(this.device.isTextureFormatRenderable(this.props.format)&&this.device.isTextureFormatFilterable(this.props.format))&&(Yt.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)(),!e?.force)))try{this.gl.bindTexture(this.glTarget,this.handle),this.gl.generateMipmap(this.glTarget)}catch(n){Yt.warn(`Error generating mipmap for ${this}: ${n.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}copyExternalImage(e){const t=oi.getExternalImageSize(e.image),n={...oi.defaultCopyExternalImageOptions,...t,...e},{image:i,depth:s,mipLevel:o,x:l,y:f,z:A,flipY:v}=n;let{width:T,height:I}=n;const{dimension:F,glTarget:N,glFormat:U,glInternalFormat:$,glType:V}=this;if(T=Math.min(T,this.width-l),I=Math.min(I,this.height-f),e.sourceX||e.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");return rS(this.device.gl,this.handle,i,{dimension:F,mipLevel:o,x:l,y:f,z:A,width:T,height:I,depth:s,glFormat:U,glType:V,glTarget:N,flipY:v}),{width:n.width,height:n.height}}setTexture1DData(e){throw new Error("setTexture1DData not supported in WebGL.")}setTexture2DData(e,t=0){this.bind();const n=oi.normalizeTextureData(e,this);n.length>1&&this.props.mipmaps!==!1&&Yt.warn(`Texture ${this.id} mipmap and multiple LODs.`)();for(let i=0;i<n.length;i++){const s=n[i];this._setMipLevel(t,i,s)}this.unbind()}setTexture3DData(e){if(this.props.dimension!=="3d")throw new Error(this.id
2007);ArrayBuffer.isView(e)&&(this.bind(),nS(this.device.gl,e,this),this.unbind())}setTextureCubeData(e,t=0){if(this.props.dimension!=="cube")throw new Error(this.id);for(const n of oi.CubeFaces)this.setTextureCubeFaceData(e[n],n)}setTextureArrayData(e){throw this.props.dimension!=="2d-array"?new Error(this.id):new Error("setTextureArrayData not implemented.")}setTextureCubeArrayData(e){throw new Error("setTextureCubeArrayData not supported in WebGL2.")}setTextureCubeFaceData(e,t,n=0){Array.isArray(e)&&e.length>1&&this.props.mipmaps!==!1&&Yt.warn(`${this.id} has mipmap and multiple LODs.`)();const i=oi.CubeFaces.indexOf(t);this.setTexture2DData(e,i)}update(){throw new Error("Texture.update() not implemented. Use ExternalTexture")}setImageDataForFace(e){const{face:t,width:n,height:i,pixels:s,data:o,format:l=6408,type:f=5121}=e,{gl:A}=this,v=s||o;this.bind(),v instanceof Promise?v.then(T=>this.setImageDataForFace(Object.assign({},e,{face:t,data:T,pixels:T}))):this.width||this.height?A.texImage2D(t,0,l,n,i,0,l,f,v):A.texImage2D(t,0,l,l,f,v)}_getImageDataMap(e){for(let t=0;t<oi.CubeFaces.length;++t){const n=oi.CubeFaces[t];e[n]&&(e[34069+t]=e[n],delete e[n])}return e}_setSamplerParameters(e){Yt.log(1,`${this.id} sampler parameters`,this.device.getGLKeys(e))(),this.gl.bindTexture(this.glTarget,this.handle);for(const[t,n]of Object.entries(e)){const i=Number(t),s=n;switch(i){case 33082:case 33083:this.gl.texParameterf(this.glTarget,i,s);break;case 10241:this.gl.texParameteri(this.glTarget,i,s);break;case 10242:case 10243:this.gl.texParameteri(this.glTarget,i,s);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,i,s);break;default:this.gl.texParameteri(this.glTarget,i,s);break}}this.gl.bindTexture(this.glTarget,null)}_setMipLevel(e,t,n,i=this.glTarget){if(oi.isExternalImage(n)){rS(this.device.gl,this.handle,n,{...this,depth:e,mipLevel:t,glTarget:i,flipY:this.props.flipY});return}if(oi.isTextureLevelData(n)){nS(this.device.gl,n.data,{...this,depth:e,mipLevel:t,glTarget:i});return}throw new Error("Texture: invalid image data")}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(e){const{gl:t}=this;return e!==void 0&&(this.textureUnit=e,t.activeTexture(33984+e)),t.bindTexture(this.glTarget,this.handle),e}unbind(e){const{gl:t}=this;return e!==void 0&&(this.textureUnit=e,t.activeTexture(33984+e)),t.bindTexture(this.glTarget,null),e}}const uX=[1,2,4,8];class fX extends Gf{device;glParameters;constructor(e,t){super(e,t),this.device=e;let n;if(!t?.parameters?.viewport)if(t?.framebuffer){const{width:s,height:o}=t.framebuffer;n=[0,0,s,o]}else{const[s,o]=e.getCanvasContext().getDrawingBufferSize();n=[0,0,s,o]}if(this.device.pushState(),this.setParameters({viewport:n,...this.props.parameters}),this.props.framebuffer?.handle)if(this.props.framebuffer){const s=this.props.framebuffer.colorAttachments.map((o,l)=>36064+l);this.device.gl.drawBuffers(s)}else this.device.gl.drawBuffers([1029]);this.clear()}end(){this.device.popState()}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}setParameters(e={}){const t={...this.glParameters};t.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(t.depthMask=!this.props.depthReadOnly),t.stencilMask=this.props.stencilReadOnly?0:1,t[35977]=this.props.discard,e.viewport&&(e.viewport.length>=6?(t.viewport=e.viewport.slice(0,4),t.depthRange=[e.viewport[4],e.viewport[5]]):t.viewport=e.viewport),e.scissorRect&&(t.scissorTest=!0,t.scissor=e.scissorRect),e.blendConstant&&(t.blendColor=e.blendConstant),e.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),e[2967]=e.stencilReference),e.colorMask&&(t.colorMask=uX.map(n=>!!(n&e.colorMask))),this.glParameters=t,Cp(this.device.gl,t)}beginOcclusionQuery(e){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){const e={...this.glParameters};let t=0;this.props.clearColors&&this.props.clearColors.forEach((n,i)=>{n&&this.clearColorBuffer(i,n)}),this.props.clearColor!==!1&&this.props.clearColors===void 0&&(t|=16384,e.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(t|=256,e.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(t|=1024,e.clearStencil=this.props.clearStencil),t!==0&&Zm(this.device.gl,e,()=>{this.device.gl.clear(t)})}clearColorBuffer(e=0,t=[0,0,0,0]){Zm(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(t.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,e,t);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,e,t);break;
vendor: 10,368 bytes, line 2007
2007case Float32Array:this.device.gl.clearBufferfv(6144,e,t);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}}function hX(r){return dX.includes(r)}const dX=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],MD={5126:[5126,1,"float","f32","float32"],35664:[5126,2,"vec2","vec2<f32>","float32x2"],35665:[5126,3,"vec3","vec3<f32>","float32x3"],35666:[5126,4,"vec4","vec4<f32>","float32x4"],5124:[5124,1,"int","i32","sint32"],35667:[5124,2,"ivec2","vec2<i32>","sint32x2"],35668:[5124,3,"ivec3","vec3<i32>","sint32x3"],35669:[5124,4,"ivec4","vec4<i32>","sint32x4"],5125:[5125,1,"uint","u32","uint32"],36294:[5125,2,"uvec2","vec2<u32>","uint32x2"],36295:[5125,3,"uvec3","vec3<u32>","uint32x3"],36296:[5125,4,"uvec4","vec4<u32>","uint32x4"],35670:[5126,1,"bool","f32","float32"],35671:[5126,2,"bvec2","vec2<f32>","float32x2"],35672:[5126,3,"bvec3","vec3<f32>","float32x3"],35673:[5126,4,"bvec4","vec4<f32>","float32x4"],35674:[5126,8,"mat2","mat2x2<f32>"],35685:[5126,8,"mat2x3","mat2x3<f32>"],35686:[5126,8,"mat2x4","mat2x4<f32>"],35687:[5126,12,"mat3x2","mat3x2<f32>"],35675:[5126,12,"mat3","mat3x3<f32>"],35688:[5126,12,"mat3x4","mat3x4<f32>"],35689:[5126,16,"mat4x2","mat4x2<f32>"],35690:[5126,16,"mat4x3","mat4x3<f32>"],35676:[5126,16,"mat4","mat4x4<f32>"]};function RD(r){const e=MD[r];if(!e)throw new Error("uniform");const[t,n,,i]=e;return{format:i,components:n,glType:t}}function pX(r){const e=MD[r];if(!e)throw new Error("attribute");const[,t,,n,i]=e;return{attributeType:n,vertexFormat:i,components:t}}function AX(r,e){const t={attributes:[],bindings:[]};t.attributes=gX(r,e);const n=yX(r,e);for(const l of n){const f=l.uniforms.map(A=>({name:A.name,format:A.format,byteOffset:A.byteOffset,byteStride:A.byteStride,arrayLength:A.arrayLength}));t.bindings.push({type:"uniform",name:l.name,group:0,location:l.location,visibility:(l.vertex?1:0)&(l.fragment?2:0),minBindingSize:l.byteLength,uniforms:f})}const i=_X(r,e);let s=0;for(const l of i)if(hX(l.type)){const{viewDimension:f,sampleType:A}=bX(l.type);t.bindings.push({type:"texture",name:l.name,group:0,location:s,viewDimension:f,sampleType:A}),l.textureUnit=s,s+=1}i.length&&(t.uniforms=i);const o=mX(r,e);return o?.length&&(t.varyings=o),t}function gX(r,e){const t=[],n=r.getProgramParameter(e,35721);for(let i=0;i<n;i++){const s=r.getActiveAttrib(e,i);if(!s)throw new Error("activeInfo");const{name:o,type:l}=s,f=r.getAttribLocation(e,o);if(f>=0){const{attributeType:A}=pX(l),v=/instance/i.test(o)?"instance":"vertex";t.push({name:o,location:f,stepMode:v,type:A})}}return t.sort((i,s)=>i.location-s.location),t}function mX(r,e){const t=[],n=r.getProgramParameter(e,35971);for(let i=0;i<n;i++){const s=r.getTransformFeedbackVarying(e,i);if(!s)throw new Error("activeInfo");const{name:o,type:l,size:f}=s,{glType:A,components:v}=RD(l),T={location:i,name:o,type:A,size:f*v};t.push(T)}return t.sort((i,s)=>i.location-s.location),t}function _X(r,e){const t=[],n=r.getProgramParameter(e,35718);for(let i=0;i<n;i++){const s=r.getActiveUniform(e,i);if(!s)throw new Error("activeInfo");const{name:o,size:l,type:f}=s,{name:A,isArray:v}=xX(o);let T=r.getUniformLocation(e,A);const I={location:T,name:A,size:l,type:f,isArray:v};if(t.push(I),I.size>1)for(let F=0;F<I.size;F++){const N=`${A}[${F}]`;T=r.getUniformLocation(e,N);const U={...I,name:N,location:T};t.push(U)}}return t}function yX(r,e){const t=(s,o)=>r.getActiveUniformBlockParameter(e,s,o),n=[],i=r.getProgramParameter(e,35382);for(let s=0;s<i;s++){const o={name:r.getActiveUniformBlockName(e,s)||"",location:t(s,35391),byteLength:t(s,35392),vertex:t(s,35396),fragment:t(s,35398),uniformCount:t(s,35394),uniforms:[]},l=t(s,35395)||[],f=r.getActiveUniforms(e,l,35383),A=r.getActiveUniforms(e,l,35384),v=r.getActiveUniforms(e,l,35387),T=r.getActiveUniforms(e,l,35388);for(let I=0;I<o.uniformCount;++I){const F=r.getActiveUniform(e,l[I]);if(!F)throw new Error("activeInfo");o.uniforms.push({name:F.name,format:RD(f[I]).format,type:f[I],arrayLength:A[I],byteOffset:v[I],byteStride:T[I]})}n.push(o)}return n.sort((s,o)=>s.location-o.location),n}const vX={35678:["2d","float"],35680:["cube","float"],35679:["3d","float"],35682:["3d","depth"],36289:["2d-array","float"],36292:["2d-array","depth"],36293:["cube","float"],36298:["2d","sint"],36299:["3d","sint"],36300:["cube","sint"],36303:["2d-array","uint"],36306:["2d","uint"],36307:["3d","uint"],36308:["cube","uint"],36311:["2d-array","uint"]};function bX(r){const e=vX[r];if(!e)throw new Error("sampler");const[t,n]=e;return{viewDimension:t,sampleType:n}}function xX(r){if(r[r.length-1]!=="]")return{name:r,length:1,isArray:!1};const t=/([^[]*)(\[[0-9]+\])?/.exec(r);if(!t||t.length<2)throw new Error(`Failed to parse GLSL uniform name ${r}`);return{name:t[1],length:t[2]?1:0,isArray:!!t[2]}}function wX(r,e,t,n){const i=r;let s=n;s===!0&&(s=1),s===!1&&(s=0);const o=typeof s=="number"?[s]:s;switch(t){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof n!="number")throw new Error("samplers must be set to integers");return r.uniform1i(e,n);case 5126:return r.uniform1fv(e,o);case 35664:return r.uniform2fv(e,o);case 35665:return r.uniform3fv(e,o);case 35666:return r.uniform4fv(e,o);case 5124:return r.uniform1iv(e,o);case 35667:return r.uniform2iv(e,o);case 35668:return r.uniform3iv(e,o);case 35669:return r.uniform4iv(e,o);case 35670:return r.uniform1iv(e,o);case 35671:return r.uniform2iv(e,o);case 35672:return r.uniform3iv(e,o);case 35673:return r.uniform4iv(e,o);case 5125:return i.uniform1uiv(e,o,1);case 36294:return i.uniform2uiv(e,o,2);case 36295:return i.uniform3uiv(e,o,3);case 36296:return i.uniform4uiv(e,o,4);case 35674:return r.uniformMatrix2fv(e,!1,o);case 35675:return r.uniformMatrix3fv(e,!1,o);case 35676:return r.uniformMatrix4fv(e,!1,o);case 35685:return i.uniformMatrix2x3fv(e,!1,o);case 35686:return i.uniformMatrix2x4fv(e,!1,o);case 35687:return i.uniformMatrix3x2fv(e,!1,o);case 35688:return i.uniformMatrix3x4fv(e,!1,o);case 35689:return i.uniformMatrix4x2fv(e,!1,o);case 35690:return i.uniformMatrix4x3fv(e,!1,o)}throw new Error("Illegal uniform")}function TX(r){return uD(r)!==null||typeof r=="number"||typeof r=="boolean"}function EX(r){const e={bindings:{},uniforms:{}};return Object.keys(r).forEach(t=>{const n=r[t];TX(n)?e.uniforms[t]=n:e.bindings[t]=n}),e}function CX(r){switch(r){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(r)}}function SX(r){switch(r){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(r)}}const iS=4;class IX extends lp{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};constructor(e,t){super(e,t),this.device=e,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=t.vs,this.fs=t.fs;const{varyings:n,bufferMode:i=35981}=t;n&&n.length>0&&(this.varyings=n,this.device.gl.transformFeedbackVaryings(this.handle,n,i)),this._linkShaders(),Yt.time(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=AX(this.device.gl,this.handle),Yt.timeEnd(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=BX(this.introspectedLayout,t.shaderLayout)}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(e,t){for(const[n,i]of Object.entries(e)){const s=this.shaderLayout.bindings.find(o=>o.name===n)||this.shaderLayout.bindings.find(o=>o.name===`${n}Uniforms`);if(!s){const o=this.shaderLayout.bindings.map(l=>`"${l.name}"`).join(", ");t?.disableWarnings||Yt.warn(`No binding "${n}" in render pipeline "${this.id}", expected one of ${o}`,i)();continue}switch(i||Yt.warn(`Unsetting binding "${n}" in render pipeline "${this.id}"`)(),s.type){case"uniform":if(!(i instanceof UA)&&!(i.buffer instanceof UA))throw new Error("buffer value");break;case"texture":if(!(i instanceof jd||i instanceof zA||i instanceof NA))throw new Error("texture value");break;case"sampler":Yt.warn(`Ignoring sampler ${n}`)();break;default:throw new Error(s.type)}this.bindings[n]=i}}draw(e){const{renderPass:t,parameters:n=this.props.parameters,topology:i=this.props.topology,vertexArray:s,vertexCount:o,instanceCount:l,isInstanced:f=!1,firstVertex:A=0,transformFeedback:v}=e,T=CX(i),I=!!s.indexBuffer,F=s.indexBuffer?.glIndexType;if(this.linkStatus!=="success")return Yt.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable())return Yt.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(this.handle),s.bindBeforeRender(t),v&&v.begin(this.props.topology),this._applyBindings(),this._applyUniforms();const N=t;return X$(this.device,n,N.glParameters,()=>{I&&f?this.device.gl.drawElementsInstanced(T,o||0,F,A,l||0):I?this.device.gl.drawElements(T,o||0,F,A):f?this.device.gl.drawArraysInstanced(T,A,o||0,l||0):this.device.gl.drawArrays(T,A,o||0),v&&v.end()}),s.unbindAfterRender(t),!0}setUniformsWebGL(e){const{bindings:t}=EX(e);Object.keys(t).forEach(n=>{Yt.warn(`Unsupported value "${JSON.stringify(t[n])}" used in setUniforms() for key ${n}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,e)}async _linkShaders(){const{gl:e}=this.device;if(e.attachShader(this.handle,this.vs.handle),e.attachShader(this.handle,this.fs.handle),Yt.time(iS,`linkProgram for ${this.id}`)(),e.linkProgram(this.handle),Yt.timeEnd(iS,`linkProgram for ${this.id}`)(),Yt.level,!this.device.features.has("compilation-status-async-webgl")){const n=this._getLinkStatus();this._reportLinkStatus(n);return}Yt.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),Yt.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();const t=this._getLinkStatus();this._reportLinkStatus(t)}async _reportLinkStatus(e){switch(e){case"success":return;default:switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`Error during compilation of shader ${this.vs.id}`);
2007case"pending":this.vs.asyncCompilationStatus.then(()=>this.vs.debugShader());break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`Error during compilation of shader ${this.fs.id}`);case"pending":this.fs.asyncCompilationStatus.then(()=>this.fs.debugShader());break}const t=this.device.gl.getProgramInfoLog(this.handle);throw new Error(`Error during ${e}: ${t}`)}}_getLinkStatus(){const{gl:e}=this.device;return e.getProgramParameter(this.handle,35714)?(e.validateProgram(this.handle),e.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation")):(this.linkStatus="error","linking")}async _waitForLinkComplete(){const e=async i=>await new Promise(s=>setTimeout(s,i));if(!this.device.features.has("compilation-status-async-webgl")){await e(10);return}const{gl:n}=this.device;for(;;){if(n.getProgramParameter(this.handle,37297))return;await e(10)}}_areTexturesRenderable(){let e=!0;for(const t of this.shaderLayout.bindings)!this.bindings[t.name]&&!this.bindings[t.name.replace(/Uniforms$/,"")]&&(Yt.warn(`Binding ${t.name} not found in ${this.id}`)(),e=!1);return e}_applyBindings(){if(this.linkStatus!=="success")return;const{gl:e}=this.device;e.useProgram(this.handle);let t=0,n=0;for(const i of this.shaderLayout.bindings){const s=this.bindings[i.name]||this.bindings[i.name.replace(/Uniforms$/,"")];if(!s)throw new Error(`No value for binding ${i.name} in ${this.id}`);switch(i.type){case"uniform":const{name:o}=i,l=e.getUniformBlockIndex(this.handle,o);if(l===4294967295)throw new Error(`Invalid uniform block name ${o}`);e.uniformBlockBinding(this.handle,n,l),s instanceof UA?e.bindBufferBase(35345,n,s.handle):e.bindBufferRange(35345,n,s.buffer.handle,s.offset||0,s.size||s.buffer.byteLength-s.offset),n+=1;break;case"texture":if(!(s instanceof jd||s instanceof zA||s instanceof NA))throw new Error("texture");let f;if(s instanceof jd)f=s.texture;else if(s instanceof zA)f=s;else if(s instanceof NA&&s.colorAttachments[0]instanceof jd)Yt.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),f=s.colorAttachments[0].texture;else throw new Error("No texture");e.activeTexture(33984+t),e.bindTexture(f.glTarget,f.handle),t+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${i.type}' not supported in WebGL`)}}}_applyUniforms(){for(const e of this.shaderLayout.uniforms||[]){const{name:t,location:n,type:i,textureUnit:s}=e,o=this.uniforms[t]??s;o!==void 0&&wX(this.device.gl,n,i,o)}}}function BX(r,e){const t={...r,attributes:r.attributes.map(n=>({...n}))};for(const n of e?.attributes||[]){const i=t.attributes.find(s=>s.name===n.name);i?(i.type=n.type||i.type,i.stepMode=n.stepMode||i.stepMode):Yt.warn(`shader layout attribute ${n.name} not present in shader`)}return t}class PX extends rx{device;commands=[];constructor(e){super(e,{}),this.device=e}submitCommands(e=this.commands){for(const t of e)switch(t.name){case"copy-buffer-to-buffer":MX(this.device,t.options);break;case"copy-buffer-to-texture":RX(this.device,t.options);break;case"copy-texture-to-buffer":OX(this.device,t.options);break;case"copy-texture-to-texture":DX(this.device,t.options);break;default:throw new Error(t.name)}}}function MX(r,e){const t=e.sourceBuffer,n=e.destinationBuffer;r.gl.bindBuffer(36662,t.handle),r.gl.bindBuffer(36663,n.handle),r.gl.copyBufferSubData(36662,36663,e.sourceOffset??0,e.destinationOffset??0,e.size),r.gl.bindBuffer(36662,null),r.gl.bindBuffer(36663,null)}function RX(r,e){throw new Error("Not implemented")}function OX(r,e){const{sourceTexture:t,mipLevel:n=0,aspect:i="all",width:s=e.sourceTexture.width,height:o=e.sourceTexture.height,depthOrArrayLayers:l=0,origin:f=[0,0],destinationBuffer:A,byteOffset:v=0,bytesPerRow:T,rowsPerImage:I}=e;if(i!=="all")throw new Error("aspect not supported in WebGL");if(n!==0||l!==0||T||I)throw new Error("not implemented");const{framebuffer:F,destroyFramebuffer:N}=OD(t);let U;try{const $=A,V=s||F.width,G=o||F.height,X=TD(F.colorAttachments[0].texture.props.format),ue=X.format,K=X.type;r.gl.bindBuffer(35051,$.handle),U=r.gl.bindFramebuffer(36160,F.handle),r.gl.readPixels(f[0],f[1],V,G,ue,K,v)}finally{r.gl.bindBuffer(35051,null),U!==void 0&&r.gl.bindFramebuffer(36160,U),N&&F.destroy()}}function DX(r,e){const{sourceTexture:t,destinationMipLevel:n=0,origin:i=[0,0],destinationOrigin:s=[0,0],destinationTexture:o}=e;let{width:l=e.destinationTexture.width,height:f=e.destinationTexture.height}=e;const{framebuffer:A,destroyFramebuffer:v}=OD(t),[T,I]=i,[F,N,U]=s,$=r.gl.bindFramebuffer(36160,A.handle);let V=null,G;if(o instanceof zA)V=o,l=Number.isFinite(l)?l:V.width,f=Number.isFinite(f)?f:V.height,V.bind(0),G=V.glTarget;else throw new Error("invalid destination");switch(G){case 3553:case 34067:r.gl.copyTexSubImage2D(G,n,F,N,T,I,l,f);break;case 35866:case 32879:r.gl.copyTexSubImage3D(G,n,F,N,U,T,I,l,f);break}V&&V.unbind(),r.gl.bindFramebuffer(36160,$),v&&A.destroy()}function OD(r){if(r instanceof oi){const{width:e,height:t,id:n}=r;
vendor: 7,094 bytes, line 2007
2007return{framebuffer:r.device.createFramebuffer({id:`framebuffer-for-${n}`,width:e,height:t,colorAttachments:[r]}),destroyFramebuffer:!0}}return{framebuffer:r,destroyFramebuffer:!1}}class FX extends tx{device;commandBuffer;constructor(e,t){super(e,t),this.device=e,this.commandBuffer=new PX(e)}destroy(){}finish(){this.commandBuffer.submitCommands()}copyBufferToBuffer(e){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:e})}copyBufferToTexture(e){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:e})}copyTextureToBuffer(e){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:e})}copyTextureToTexture(e){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:e})}pushDebugGroup(e){}popDebugGroup(){}insertDebugMarker(e){}resolveQuerySet(e,t,n){}}function LX(r){const{target:e,source:t,start:n=0,count:i=1}=r,s=t.length,o=i*s;let l=0;for(let f=n;l<s;l++)e[f++]=t[l];for(;l<o;)l<o-l?(e.copyWithin(n+l,n,n+l),l*=2):(e.copyWithin(n+l,n,n+o-l),l=o);return r.target}class Fx extends nx{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(e){return jN()==="Chrome"}constructor(e,t){super(e,t),this.device=e,this.handle=this.device.gl.createVertexArray()}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(e){const t=e;if(t&&t.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,t?t.handle:null),this.indexBuffer=t,this.device.gl.bindVertexArray(null)}setBuffer(e,t){const n=t;if(n.glTarget===34963)throw new Error("Use .setIndexBuffer()");const{size:i,type:s,stride:o,offset:l,normalized:f,integer:A,divisor:v}=this._getAccessor(e);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,n.handle),A?this.device.gl.vertexAttribIPointer(e,i,s,o,l):this.device.gl.vertexAttribPointer(e,i,s,f,o,l),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(e),this.device.gl.vertexAttribDivisor(e,v||0),this.attributes[e]=n,this.device.gl.bindVertexArray(null)}setConstantWebGL(e,t){this._enable(e,!1),this.attributes[e]=t}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let e=0;e<this.maxVertexAttributes;++e){const t=this.attributes[e];ArrayBuffer.isView(t)&&this.device.setConstantAttributeWebGL(e,t)}}_getAccessor(e){const t=this.attributeInfos[e];if(!t)throw new Error(`Unknown attribute location ${e}`);const n=wD(t.bufferDataType);return{size:t.bufferComponents,type:n,stride:t.byteStride,offset:t.byteOffset,normalized:t.normalized,integer:t.integer,divisor:t.stepMode==="instance"?1:0}}_enable(e,t=!0){const i=Fx.isConstantAttributeZeroSupported(this.device)||e!==0;(t||i)&&(e=Number(e),this.device.gl.bindVertexArray(this.handle),t?this.device.gl.enableVertexAttribArray(e):this.device.gl.disableVertexAttribArray(e),this.device.gl.bindVertexArray(null))}getConstantBuffer(e,t){const n=kX(t),i=n.byteLength*e,s=n.length*e;if(this.buffer&&i!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${i} !== ${this.buffer.byteLength}.`);let o=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:i}),o=o||!NX(n,this.bufferValue),o){const l=Nz(t.constructor,s);LX({target:l,source:n,start:0,count:s}),this.buffer.write(l),this.bufferValue=t}return this.buffer}}function kX(r){return Array.isArray(r)?new Float32Array(r):r}function NX(r,e){if(!r||!e||r.length!==e.length||r.constructor!==e.constructor)return!1;for(let t=0;t<r.length;++t)if(r[t]!==e[t])return!1;return!0}class UX extends ix{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(e,t){super(e,t),this.device=e,this.gl=e.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,t.buffers&&this.setBuffers(t.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(e="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(SX(e))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(e){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(const t in e)this.setBuffer(t,e[t])})}setBuffer(e,t){const n=this._getVaryingIndex(e),{buffer:i,byteLength:s,byteOffset:o}=this._getBufferRange(t);if(n<0){this.unusedBuffers[e]=i,Yt.warn(`${this.id} unusedBuffers varying buffer ${e}`)();return}this.buffers[n]={buffer:i,byteLength:s,byteOffset:o},this.bindOnUse||this._bindBuffer(n,i,o,s)}getBuffer(e){if(sS(e))return this.buffers[e]||null;const t=this._getVaryingIndex(e);return t>=0?this.buffers[t]:null}bind(e=this.handle){if(typeof e!="function")return this.gl.bindTransformFeedback(36386,e),this;let t;return this._bound?t=e():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,t=e(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),t}unbind(){this.bind(null)}_getBufferRange(e){if(e instanceof UA)return{buffer:e,byteOffset:0,byteLength:e.byteLength};const{buffer:t,byteOffset:n=0,byteLength:i=e.buffer.byteLength}=e;return{buffer:t,byteOffset:n,byteLength:i}}_getVaryingIndex(e){if(sS(e))return Number(e);for(const t of this.layout.varyings)if(e===t.name)return t.location;return-1}_bindBuffers(){for(const e in this.buffers){const{buffer:t,byteLength:n,byteOffset:i}=this._getBufferRange(this.buffers[e]);this._bindBuffer(Number(e),t,i,n)}}_unbindBuffers(){for(const e in this.buffers)this.gl.bindBufferBase(35982,Number(e),null)}_bindBuffer(e,t,n=0,i){const s=t&&t.handle;!s||i===void 0?this.gl.bindBufferBase(35982,e,s):this.gl.bindBufferRange(35982,e,s,n,i)}}function sS(r){return typeof r=="number"?Number.isInteger(r):/^\d+$/.test(r)}class zX extends sx{device;handle;target=null;_queryPending=!1;_pollingPromise=null;get[Symbol.toStringTag](){return"Query"}constructor(e,t){if(super(e,t),this.device=e,t.count>1)throw new Error("WebGL QuerySet can only have one value");this.handle=this.device.gl.createQuery(),Object.seal(this)}destroy(){this.device.gl.deleteQuery(this.handle)}beginTimestampQuery(){return this._begin(35007)}endTimestampQuery(){this._end()}beginOcclusionQuery(e){return this._begin(e?.conservative?36202:35887)}endOcclusionQuery(){this._end()}beginTransformFeedbackQuery(){return this._begin(35976)}endTransformFeedbackQuery(){this._end()}async resolveQuery(){return[await this.pollQuery()]}_begin(e){this._queryPending||(this.target=e,this.device.gl.beginQuery(this.target,this.handle))}_end(){this._queryPending||this.target&&(this.device.gl.endQuery(this.target),this.target=null,this._queryPending=!0)}isResultAvailable(){if(!this._queryPending)return!1;const e=this.device.gl.getQueryParameter(this.handle,34919);return e&&(this._queryPending=!1),e}
2007isTimerDisjoint(){return this.device.gl.getParameter(36795)}getResult(){return this.device.gl.getQueryParameter(this.handle,34918)}getTimerMilliseconds(){return this.getResult()/1e6}pollQuery(e=Number.POSITIVE_INFINITY){if(this._pollingPromise)return this._pollingPromise;let t=0;return this._pollingPromise=new Promise((n,i)=>{const s=()=>{this.isResultAvailable()?(n(this.getResult()),this._pollingPromise=null):t++>e?(i("Timed out"),this._pollingPromise=null):requestAnimationFrame(s)};requestAnimationFrame(s)}),this._pollingPromise}}class Gd extends Hu{type="webgl";handle;features;limits;info;canvasContext;lost;_resolveContextLost;gl;debug=!1;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};_extensions={};_polyfilled=!1;spectorJS;constructor(e){super({...e,id:e.id||j$("webgl-device")});const t=Hu._getCanvasContextProps(e);if(!t)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let n=t.canvas?.gl?.device;if(n)throw new Error(`WebGL context already attached to device ${n.id}`);this.canvasContext=new M$(this,t),this.lost=new Promise(v=>{this._resolveContextLost=v});const i={...e.webgl};t.alphaMode==="premultiplied"&&(i.premultipliedAlpha=!0),e.powerPreference!==void 0&&(i.powerPreference=e.powerPreference);const o=this.props._handle||f$(this.canvasContext.canvas,{onContextLost:v=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:v=>console.log("WebGL context restored")},i);if(!o)throw new Error("WebGL context creation failed");if(n=o.device,n){if(e._reuseDevices)return Yt.log(1,`Not creating a new Device, instead returning a reference to Device ${n.id} already attached to WebGL context`,n)(),n._reused=!0,n;throw new Error(`WebGL context already attached to device ${n.id}`)}this.handle=o,this.gl=o,this.spectorJS=D$({...this.props,gl:this.handle}),this.gl.device=this,this.gl._version=2,this.info=h$(this.gl,this._extensions),this.limits=new I$(this.gl),this.features=new S$(this.gl,this._extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),t.autoResize!==!1&&this.canvasContext.resize(),new Yf(this.gl,{log:(...v)=>Yt.log(1,...v)()}).trackState(this.gl,{copyState:!1});const f=e.debugWebGL||e.debug,A=e.debugWebGL;f&&(this.gl=k$(this.gl,{debugWebGL:f,traceWebGL:A}),Yt.warn("WebGL debug mode activated. Performance reduced.")(),e.debugWebGL&&(Yt.level=Math.max(Yt.level,1)))}destroy(){!this.props._reuseDevices&&!this._reused&&delete this.gl.device}get isLost(){return this.gl.isContextLost()}createCanvasContext(e){throw new Error("WebGL only supports a single canvas")}createBuffer(e){const t=this._normalizeBufferProps(e);return new UA(this,t)}createTexture(e){return new zA(this,e)}createExternalTexture(e){throw new Error("createExternalTexture() not implemented")}createSampler(e){return new G1(this,e)}createShader(e){return new $$(this,e)}createFramebuffer(e){return new NA(this,e)}createVertexArray(e){return new Fx(this,e)}createTransformFeedback(e){return new UX(this,e)}createQuerySet(e){return new zX(this,e)}createRenderPipeline(e){return new IX(this,e)}beginRenderPass(e){return new fX(this,e)}createComputePipeline(e){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(e){throw new Error("ComputePass not supported in WebGL")}renderPass=null;createCommandEncoder(e={}){return new FX(this,e)}submit(){this.renderPass?.end(),this.renderPass=null}readPixelsToArrayWebGL(e,t){return oX(e,t)}readPixelsToBufferWebGL(e,t){return aX(e,t)}setParametersWebGL(e){Cp(this.gl,e)}getParametersWebGL(e){return bD(this.gl,e)}withParametersWebGL(e,t){return Zm(this.gl,e,t)}resetWebGL(){Yt.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),o$(this.gl)}_getDeviceSpecificTextureFormatCapabilities(e){return w$(this.gl,e,this._extensions)}loseDevice(){let e=!1;const n=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return n&&(e=!0,n.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),e}pushState(){Yf.get(this.gl).push()}popState(){Yf.get(this.gl).pop()}setSpectorMetadata(e,t){e.__SPECTOR_Metadata=t}getGLKey(e,t){const n=Number(e);for(const i in this.gl)if(this.gl[i]===n)return`GL.${i}`;return t?.emptyIfUnknown?"":String(e)}getGLKeys(e){const t={emptyIfUnknown:!0};return Object.entries(e).reduce((n,[i,s])=>(n[`${i}:${this.getGLKey(i,t)}`]=`${s}:${this.getGLKey(s,t)}`,n),{})}_constants;setConstantAttributeWebGL(e,t){const n=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(n).fill(null);const i=this._constants[e];switch(i&&HX(i,t)&&Yt.info(1,`setConstantAttributeWebGL(${e}) could have been skipped, value unchanged`)(),this._constants[e]=t,t.constructor){case Float32Array:VX(this,e,t);break;case Int32Array:jX(this,e,t);break;case Uint32Array:GX(this,e,t);break;default:throw new Error("constant")}}getExtension(e){return dp(this.gl,e,this._extensions),this._extensions}}function VX(r,e,t){switch(t.length){case 1:r.gl.vertexAttrib1fv(e,t);break;case 2:r.gl.vertexAttrib2fv(e,t);break;case 3:r.gl.vertexAttrib3fv(e,t);break;case 4:r.gl.vertexAttrib4fv(e,t);break}}function jX(r,e,t){r.gl.vertexAttribI4iv(e,t)}function GX(r,e,t){r.gl.vertexAttribI4uiv(e,t)}function HX(r,e){if(!r||!e||r.length!==e.length||r.constructor!==e.constructor)return!1;for(let t=0;t<r.length;++t)if(r[t]!==e[t])return!1;return!0}const WX={WEBGL_depth_texture:{UNSIGNED_INT_24_8_WEBGL:34042},OES_element_index_uint:{},OES_texture_float:{},OES_texture_half_float:{HALF_FLOAT_OES:5131},EXT_color_buffer_float:{},OES_standard_derivatives:{FRAGMENT_SHADER_DERIVATIVE_HINT_OES:35723},EXT_frag_depth:{},EXT_blend_minmax:{MIN_EXT:32775,MAX_EXT:32776},EXT_shader_texture_lod:{}},$X=r=>({drawBuffersWEBGL(e){return r.drawBuffers(e)},COLOR_ATTACHMENT0_WEBGL:36064,COLOR_ATTACHMENT1_WEBGL:36065,COLOR_ATTACHMENT2_WEBGL:36066,COLOR_ATTACHMENT3_WEBGL:36067}),XX=r=>({VERTEX_ARRAY_BINDING_OES:34229,createVertexArrayOES(){return r.createVertexArray()},deleteVertexArrayOES(e){return r.deleteVertexArray(e)},isVertexArrayOES(e){return r.isVertexArray(e)},bindVertexArrayOES(e){return r.bindVertexArray(e)}}),qX=r=>({VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE:35070,drawArraysInstancedANGLE(...e){return r.drawArraysInstanced(...e)}
2007,drawElementsInstancedANGLE(...e){return r.drawElementsInstanced(...e)},vertexAttribDivisorANGLE(...e){return r.vertexAttribDivisor(...e)}});function JX(r=!0){const e=HTMLCanvasElement.prototype;if(!r&&e.originalGetContext){e.getContext=e.originalGetContext,e.originalGetContext=void 0;return}e.originalGetContext=e.getContext,e.getContext=function(t,n){if(t==="webgl"||t==="experimental-webgl"){const i=this.originalGetContext("webgl2",n);return i instanceof HTMLElement&&KX(i),i}return this.originalGetContext(t,n)}}function KX(r){r.getExtension("EXT_color_buffer_float");const e={...WX,WEBGL_disjoint_timer_query:r.getExtension("EXT_disjoint_timer_query_webgl2"),WEBGL_draw_buffers:$X(r),OES_vertex_array_object:XX(r),ANGLE_instanced_arrays:qX(r)},t=r.getExtension;r.getExtension=function(i){const s=t.call(r,i);return s||(i in e?e[i]:null)};const n=r.getSupportedExtensions;r.getSupportedExtensions=function(){return(n.apply(r)||[])?.concat(Object.keys(e))}}const E0=1;class ZX extends pz{type="webgl";constructor(){super(),Hu.defaultProps={...Hu.defaultProps,...Dx},Gd.adapter=this}isSupported(){return typeof WebGL2RenderingContext<"u"}enforceWebGL2(e){JX(e)}async attach(e){if(e instanceof Gd)return e;if(e?.device instanceof Hu)return e.device;if(!YX(e))throw new Error("Invalid WebGL2RenderingContext");return new Gd({_handle:e,createCanvasContext:{canvas:e.canvas,autoResize:!1}})}async create(e={}){Yt.groupCollapsed(E0,"WebGLDevice created")();const t=[];(e.debugWebGL||e.debug)&&t.push(L$()),e.debugSpectorJS&&t.push(O$(e));const n=await Promise.allSettled(t);for(const o of n)o.status==="rejected"&&Yt.error(`Failed to initialize debug libraries ${o.reason}`)();const i=new Gd(e),s=`${i._reused?"Reusing":"Created"} device with WebGL2 ${i.debug?"debug ":""}context: ${i.info.vendor}, ${i.info.renderer} for canvas: ${i.canvasContext.id}`;return Yt.probe(E0,s)(),Yt.table(E0,i.info)(),Yt.groupEnd(E0)(),i}}function YX(r){return typeof WebGL2RenderingContext<"u"&&r instanceof WebGL2RenderingContext?!0:!!(r&&Number.isFinite(r._version))}const oS=new ZX;function Du(){}const QX=({isDragging:r})=>r?"grabbing":"grab",DD={id:"",width:"100%",height:"100%",style:null,viewState:null,initialViewState:null,pickingRadius:0,layerFilter:null,parameters:{},parent:null,device:null,deviceProps:{},gl:null,canvas:null,layers:[],effects:[],views:null,controller:null,useDevicePixels:!0,touchAction:"none",eventRecognizerOptions:{},_framebuffer:null,_animate:!1,_pickable:!0,_typedArrayManagerProps:{},_customRender:null,widgets:[],onDeviceInitialized:Du,onWebGLInitialized:Du,onResize:Du,onViewStateChange:Du,onInteractionStateChange:Du,onBeforeRender:Du,onAfterRender:Du,onLoad:Du,onError:r=>Zr.error(r.message,r.cause)(),onHover:null,onClick:null,onDragStart:null,onDrag:null,onDragEnd:null,_onMetrics:null,getCursor:QX,getTooltip:null,debug:!1,drawPickingColors:!1};class Lx{constructor(e){this.width=0,this.height=0,this.userData={},this.device=null,this.canvas=null,this.viewManager=null,this.layerManager=null,this.effectManager=null,this.deckRenderer=null,this.deckPicker=null,this.eventManager=null,this.widgetManager=null,this.tooltip=null,this.animationLoop=null,this.cursorState={isHovering:!1,isDragging:!1},this.stats=new hh({id:"deck.gl"}),this.metrics={fps:0,setPropsTime:0,updateAttributesTime:0,framesRedrawn:0,pickTime:0,pickCount:0,gpuTime:0,gpuTimePerFrame:0,cpuTime:0,cpuTimePerFrame:0,bufferMemory:0,textureMemory:0,renderbufferMemory:0,gpuMemory:0},this._metricsCounter=0,this._needsRedraw="Initial render",this._pickRequest={mode:"hover",x:-1,y:-1,radius:0,event:null},this._lastPointerDownInfo=null,this._onPointerMove=n=>{const{_pickRequest:i}=this;if(n.type==="pointerleave")i.x=-1,i.y=-1,i.radius=0;else{if(n.leftButton||n.rightButton)return;{const s=n.offsetCenter;if(!s)return;i.x=s.x,i.y=s.y,i.radius=this.props.pickingRadius}}this.layerManager&&(this.layerManager.context.mousePosition={x:i.x,y:i.y}),i.event=n},this._onEvent=n=>{const i=R1[n.type],s=n.offsetCenter;if(!i||!s||!this.layerManager)return;const o=this.layerManager.getLayers(),l=this.deckPicker.getLastPickedObject({x:s.x,y:s.y,layers:o,viewports:this.getViewports(s)},this._lastPointerDownInfo),{layer:f}=l,A=f&&(f[i]||f.props[i]),v=this.props[i];let T=!1;A&&(T=A.call(f,l,n)),T||(v?.(l,n),this.widgetManager.onEvent(l,n))},this._onPointerDown=n=>{if(this.device?.type==="webgpu")return;const i=n.offsetCenter,s=this._pick("pickObject","pickObject Time",{x:i.x,y:i.y,radius:this.props.pickingRadius});this._lastPointerDownInfo=s.result[0]||s.emptyInfo},this.props={...DD,...e},e=this.props,e.viewState&&e.initialViewState&&Zr.warn("View state tracking is disabled. Use either `initialViewState` for auto update or `viewState` for manual update.")(),this.viewState=this.props.initialViewState,e.device&&(this.device=e.device);let t=this.device;!t&&e.gl&&(e.gl instanceof WebGLRenderingContext&&Zr.error("WebGL1 context not supported.")(),t=oS.attach(e.gl)),t||(t=b1.createDevice({type:"best-available",_reuseDevices:!0,adapters:[oS],...e.deviceProps,createCanvasContext:{canvas:this._createCanvas(e),useDevicePixels:this.props.useDevicePixels,autoResize:!1}})),this.animationLoop=this._createAnimationLoop(t,e),this.setProps(e),e._typedArrayManagerProps&&fp.setOptions(e._typedArrayManagerProps),this.animationLoop.start()}finalize(){this.animationLoop?.stop(),this.animationLoop?.destroy(),this.animationLoop=null,this._lastPointerDownInfo=null,this.layerManager?.finalize(),this.layerManager=null,this.viewManager?.finalize(),this.viewManager=null,this.effectManager?.finalize(),this.effectManager=null,this.deckRenderer?.finalize(),this.deckRenderer=null,this.deckPicker?.finalize(),this.deckPicker=null,this.eventManager?.destroy(),this.eventManager=null,this.widgetManager?.finalize(),this.widgetManager=null,!this.props.canvas&&!this.props.device&&!this.props.gl&&this.canvas&&(this.canvas.parentElement?.removeChild(this.canvas),this.canvas=null)}setProps(e){this.stats.get("setProps Time").timeStart(),"onLayerHover"in e&&Zr.removed("onLayerHover","onHover")(),"onLayerClick"in e&&Zr.removed("onLayerClick","onClick")(),e.initialViewState&&!rs(this.props.initialViewState,e.initialViewState,3)&&(this.viewState=e.initialViewState),Object.assign(this.props,e),this._setCanvasSize(this.props);const t=Object.create(this.props);Object.assign(t,{views:this._getViews(),width:this.width,height:this.height,viewState:this._getViewState()}),this.animationLoop?.setProps(t),this.layerManager&&(this.viewManager.setProps(t),this.layerManager.activateViewport(this.getViewports()[0]),this.layerManager.setProps(t),this.effectManager.setProps(t),this.deckRenderer.setProps(t),this.deckPicker.setProps(t),this.widgetManager.setProps(t)),this.stats.get("setProps Time").timeEnd()}needsRedraw(e={clearRedrawFlags:!1}){if(!this.layerManager)return!1;if(this.props._animate)return"Deck._animate";let t=this._needsRedraw;e.clearRedrawFlags&&(this._needsRedraw=!1);const n=this.viewManager.needsRedraw(e),i=this.layerManager.needsRedraw(e),s=this.effectManager.needsRedraw(e),o=this.deckRenderer.needsRedraw(e);return t=t||n||i||s||o,t}redraw(e){if(!this.layerManager)return;let t=this.needsRedraw({clearRedrawFlags:!0});t=e||t,t&&(this.stats.get("Redraw Count").incrementCount(),this.props._customRender?this.props._customRender(t):this._drawLayers(t))}get isInitialized(){return this.viewManager!==null}getViews(){return Ks(this.viewManager),this.viewManager.views}getViewports(e){return Ks(this.viewManager),this.viewManager.getViewports(e)}getCanvas(){return this.canvas}pickObject(e){const t=this._pick("pickObject","pickObject Time",e).result;return t.length?t[0]:null}pickMultipleObjects(e){return e.depth=e.depth||10,this._pick("pickObject","pickMultipleObjects Time",e).result}pickObjects(e){return this._pick("pickObjects","pickObjects Time",e)}
vendor: 57,705 bytes, lines 2007-2087
2007_addResources(e,t=!1){for(const n in e)this.layerManager.resourceManager.add({resourceId:n,data:e[n],forceUpdate:t})}_removeResources(e){for(const t of e)this.layerManager.resourceManager.remove(t)}_addDefaultEffect(e){this.effectManager.addDefaultEffect(e)}_addDefaultShaderModule(e){this.layerManager.addDefaultShaderModule(e)}_removeDefaultShaderModule(e){this.layerManager?.removeDefaultShaderModule(e)}_pick(e,t,n){Ks(this.deckPicker);const{stats:i}=this;i.get("Pick Count").incrementCount(),i.get(t).timeStart();const s=this.deckPicker[e]({layers:this.layerManager.getLayers(n),views:this.viewManager.getViews(),viewports:this.getViewports(n),onViewportActive:this.layerManager.activateViewport,effects:this.effectManager.getEffects(),...n});return i.get(t).timeEnd(),s}_createCanvas(e){let t=e.canvas;return typeof t=="string"&&(t=document.getElementById(t),Ks(t)),t||(t=document.createElement("canvas"),t.id=e.id||"deckgl-overlay",(e.parent||document.body).appendChild(t)),Object.assign(t.style,e.style),t}_setCanvasSize(e){if(!this.canvas)return;const{width:t,height:n}=e;if(t||t===0){const i=Number.isFinite(t)?`${t}px`:t;this.canvas.style.width=i}if(n||n===0){const i=Number.isFinite(n)?`${n}px`:n;this.canvas.style.position=e.style?.position||"absolute",this.canvas.style.height=i}}_updateCanvasSize(){const{canvas:e}=this;if(!e)return;const t=e.clientWidth??e.width,n=e.clientHeight??e.height;(t!==this.width||n!==this.height)&&(this.width=t,this.height=n,this.viewManager?.setProps({width:t,height:n}),this.layerManager?.activateViewport(this.getViewports()[0]),this.props.onResize({width:t,height:n}))}_createAnimationLoop(e,t){const{gl:n,onError:i,useDevicePixels:s}=t;return new FH({device:e,useDevicePixels:s,autoResizeDrawingBuffer:!n,autoResizeViewport:!1,onInitialize:o=>this._setDevice(o.device),onRender:this._onRenderFrame.bind(this),onError:i})}_getViewState(){return this.props.viewState||this.viewState}_getViews(){const{views:e}=this.props,t=Array.isArray(e)?e:e?[e]:[new _D({id:"default-view"})];return t.length&&this.props.controller&&(t[0].props.controller=this.props.controller),t}_onContextLost(){const{onError:e}=this.props;this.animationLoop&&e&&e(new Error("WebGL context is lost"))}_pickAndCallback(){if(this.device?.type==="webgpu")return;const{_pickRequest:e}=this;if(e.event){const{result:t,emptyInfo:n}=this._pick("pickObject","pickObject Time",e);this.cursorState.isHovering=t.length>0;let i=n,s=!1;for(const o of t)i=o,s=o.layer?.onHover(o,e.event)||s;s||(this.props.onHover?.(i,e.event),this.widgetManager.onHover(i,e.event)),e.event=null}}_updateCursor(){const e=this.props.parent||this.canvas;e&&(e.style.cursor=this.props.getCursor(this.cursorState))}_setDevice(e){if(this.device=e,!this.animationLoop)return;this.canvas||(this.canvas=this.device.canvasContext?.canvas),this.device.type==="webgl"&&this.device.setParametersWebGL({blend:!0,blendFunc:[770,771,1,771],polygonOffsetFill:!0,depthTest:!0,depthFunc:515}),this.props.onDeviceInitialized(this.device),this.device.type==="webgl"&&this.props.onWebGLInitialized(this.device.gl);const t=new cD;t.play(),this.animationLoop.attachTimeline(t),this.eventManager=new hG(this.props.parent||this.canvas,{touchAction:this.props.touchAction,recognizers:Object.keys(E3).map(i=>{const[s,o,l,f]=E3[i],A=this.props.eventRecognizerOptions?.[i],v={...o,...A,event:i};return{recognizer:new s(v),recognizeWith:l,requestFailure:f}}),events:{pointerdown:this._onPointerDown,pointermove:this._onPointerMove,pointerleave:this._onPointerMove}});for(const i in R1)this.eventManager.on(i,this._onEvent);this.viewManager=new CW({timeline:t,eventManager:this.eventManager,onViewStateChange:this._onViewStateChange.bind(this),onInteractionStateChange:this._onInteractionStateChange.bind(this),views:this._getViews(),viewState:this._getViewState(),width:this.width,height:this.height});const n=this.viewManager.getViewports()[0];this.layerManager=new EW(this.device,{deck:this,stats:this.stats,viewport:n,timeline:t}),this.effectManager=new jW({deck:this,device:this.device}),this.deckRenderer=new WW(this.device),this.deckPicker=new ZW(this.device),this.widgetManager=new e$({deck:this,parentElement:this.canvas?.parentElement}),this.widgetManager.addDefault(new r$),this.setProps(this.props),this._updateCanvasSize(),this.props.onLoad()}_drawLayers(e,t){const{device:n,gl:i}=this.layerManager.context;this.props.onBeforeRender({device:n,gl:i});const s={target:this.props._framebuffer,layers:this.layerManager.getLayers(),viewports:this.viewManager.getViewports(),onViewportActive:this.layerManager.activateViewport,views:this.viewManager.getViews(),pass:"screen",effects:this.effectManager.getEffects(),...t};this.deckRenderer?.renderLayers(s),s.pass==="screen"&&this.widgetManager.onRedraw({viewports:s.viewports,layers:s.layers}),this.props.onAfterRender({device:n,gl:i})}_onRenderFrame(){this._getFrameStats(),this._metricsCounter++%60===0&&(this._getMetrics(),this.stats.reset(),Zr.table(4,this.metrics)(),this.props._onMetrics&&this.props._onMetrics(this.metrics)),this._updateCanvasSize(),this._updateCursor(),this.layerManager.updateLayers(),this.device?.type!=="webgpu"&&this._pickAndCallback(),this.redraw(),this.viewManager&&this.viewManager.updateViewStates()}_onViewStateChange(e){const t=this.props.onViewStateChange(e)||e.viewState;this.viewState&&(this.viewState={...this.viewState,[e.viewId]:t},this.props.viewState||this.viewManager&&this.viewManager.setProps({viewState:this.viewState}))}_onInteractionStateChange(e){this.cursorState.isDragging=e.isDragging||!1,this.props.onInteractionStateChange(e)}_getFrameStats(){const{stats:e}=this;e.get("frameRate").timeEnd(),e.get("frameRate").timeStart();const t=this.animationLoop.stats;e.get("GPU Time").addTime(t.get("GPU Time").lastTiming),e.get("CPU Time").addTime(t.get("CPU Time").lastTiming)}_getMetrics(){const{metrics:e,stats:t}=this;e.fps=t.get("frameRate").getHz(),e.setPropsTime=t.get("setProps Time").time,e.updateAttributesTime=t.get("Update Attributes").time,e.framesRedrawn=t.get("Redraw Count").count,e.pickTime=t.get("pickObject Time").time+t.get("pickMultipleObjects Time").time+t.get("pickObjects Time").time,e.pickCount=t.get("Pick Count").count,e.gpuTime=t.get("GPU Time").time,e.cpuTime=t.get("CPU Time").time,e.gpuTimePerFrame=t.get("GPU Time").getAverageTime(),e.cpuTimePerFrame=t.get("CPU Time").getAverageTime();const n=b1.stats.get("Memory Usage");e.bufferMemory=n.get("Buffer Memory").count,e.textureMemory=n.get("Texture Memory").count,e.renderbufferMemory=n.get("Renderbuffer Memory").count,e.gpuMemory=n.get("GPU Memory").count}}Lx.defaultProps=DD;Lx.VERSION=b9;function eq(r){switch(r){case"float64":return Float64Array;case"uint8":case"unorm8":return Uint8ClampedArray;default:return Y4(r)}}const tq=Z4;function C0(r,e,t){const n=t==="webgpu"&&e.type==="uint8"?"unorm8":e.type;return{attribute:r,format:e.size>1?`${n}x${e.size}`:e.type,byteOffset:e.offset||0}}function $f(r){return r.stride||r.size*r.bytesPerElement}function rq(r,e){return r.type===e.type&&r.size===e.size&&$f(r)===$f(e)&&(r.offset||0)===(e.offset||0)}function H1(r,e){e.offset&&Zr.removed("shaderAttribute.offset","vertexOffset, elementOffset")();const t=$f(r),n=e.vertexOffset!==void 0?e.vertexOffset:r.vertexOffset||0,i=e.elementOffset||0,s=n*t+i*r.bytesPerElement+(r.offset||0);return{...e,offset:s,stride:t}}function nq(r,e){const t=H1(r,e);return{high:t,low:{...t,offset:t.offset+r.size*4}}}class iq{constructor(e,t,n){this._buffer=null,this.device=e,this.id=t.id||"",this.size=t.size||1;const i=t.logicalType||t.type,s=i==="float64";let{defaultValue:o}=t;o=Number.isFinite(o)?[o]:o||new Array(this.size).fill(0);let l;s?l="float32":!i&&t.isIndexed?l="uint32":l=i||"float32";let f=eq(i||l);this.doublePrecision=s,s&&t.fp64===!1&&(f=Float32Array),this.value=null,this.settings={...t,defaultType:f,defaultValue:o,logicalType:i,type:l,normalized:l.includes("norm"),size:this.size,bytesPerElement:f.BYTES_PER_ELEMENT},this.state={...n,externalBuffer:null,bufferAccessor:this.settings,allocatedValue:null,numInstances:0,bounds:null,constant:!1}}get isConstant(){return this.state.constant}get buffer(){return this._buffer}get byteOffset(){const e=this.getAccessor();return e.vertexOffset?e.vertexOffset*$f(e):0}get numInstances(){return this.state.numInstances}set numInstances(e){this.state.numInstances=e}delete(){this._buffer&&(this._buffer.delete(),this._buffer=null),fp.release(this.state.allocatedValue)}getBuffer(){return this.state.constant?null:this.state.externalBuffer||this._buffer}getValue(e=this.id,t=null){const n={};if(this.state.constant){const i=this.value;if(t){const s=H1(this.getAccessor(),t),o=s.offset/i.BYTES_PER_ELEMENT,l=s.size||this.size;n[e]=i.subarray(o,o+l)}else n[e]=i}else n[e]=this.getBuffer();return this.doublePrecision&&(this.value instanceof Float64Array?n[`${e}64Low`]=n[e]:n[`${e}64Low`]=new Float32Array(this.size)),n}_getBufferLayout(e=this.id,t=null){const n=this.getAccessor(),i=[],s={name:this.id,byteStride:$f(n),attributes:i};if(this.doublePrecision){const o=nq(n,t||{});i.push(C0(e,{...n,...o.high},this.device.type),C0(`${e}64Low`,{...n,...o.low},this.device.type))}else if(t){const o=H1(n,t);i.push(C0(e,{...n,...o},this.device.type))}else i.push(C0(e,n,this.device.type));return s}setAccessor(e){this.state.bufferAccessor=e}getAccessor(){return this.state.bufferAccessor}getBounds(){if(this.state.bounds)return this.state.bounds;let e=null;if(this.state.constant&&this.value){const t=Array.from(this.value);e=[t,t]}else{const{value:t,numInstances:n,size:i}=this,s=n*i;if(t&&s&&t.length>=s){const o=new Array(i).fill(1/0),l=new Array(i).fill(-1/0);for(let f=0;f<s;)for(let A=0;A<i;A++){const v=t[f++];v<o[A]&&(o[A]=v),v>l[A]&&(l[A]=v)}e=[o,l]}}return this.state.bounds=e,e}setData(e){const{state:t}=this;let n;ArrayBuffer.isView(e)?n={value:e}:e instanceof Hi?n={buffer:e}:n=e;const i={...this.settings,...n};if(ArrayBuffer.isView(n.value)){if(!n.type)if(this.doublePrecision&&n.value instanceof Float64Array)i.type="float32";else{const o=tq(n.value);i.type=i.normalized?o.replace("int","norm"):o}i.bytesPerElement=n.value.BYTES_PER_ELEMENT,i.stride=$f(i)}if(t.bounds=null,n.constant){let s=n.value;if(s=this._normalizeValue(s,[],0),this.settings.normalized&&(s=this.normalizeConstant(s)),!(!t.constant||!this._areValuesEqual(s,this.value)))return!1;t.externalBuffer=null,t.constant=!0,this.value=ArrayBuffer.isView(s)?s:new Float32Array(s)}else if(n.buffer){const s=n.buffer;t.externalBuffer=s,t.constant=!1,this.value=n.value||null}else if(n.value){this._checkExternalBuffer(n);let s=n.value;t.externalBuffer=null,t.constant=!1,this.value=s;let{buffer:o}=this;const l=$f(i),f=(i.vertexOffset||0)*l;if(this.doublePrecision&&s instanceof Float64Array&&(s=xv(s,i)),this.settings.isIndexed){const v=this.settings.defaultType;s.constructor!==v&&(s=new v(s))}const A=s.byteLength+f+l*2;(!o||o.byteLength<A)&&(o=this._createBuffer(A)),o.write(s,f)}return this.setAccessor(i),!0}updateSubBuffer(e={}){this.state.bounds=null;const t=this.value,{startOffset:n=0,endOffset:i}=e;this.buffer.write(this.doublePrecision&&t instanceof Float64Array?xv(t,{size:this.size,startIndex:n,endIndex:i}):t.subarray(n,i),n*t.BYTES_PER_ELEMENT+this.byteOffset)}allocate(e,t=!1){const{state:n}=this,i=n.allocatedValue,s=fp.allocate(i,e+1,{size:this.size,type:this.settings.defaultType,copy:t});this.value=s;const{byteOffset:o}=this;let{buffer:l}=this;return(!l||l.byteLength<s.byteLength+o)&&(l=this._createBuffer(s.byteLength+o),t&&i&&l.write(i instanceof Float64Array?xv(i,this):i,o)),n.allocatedValue=s,n.constant=!1,n.externalBuffer=null,this.setAccessor(this.settings),!0}_checkExternalBuffer(e){const{value:t}=e;if(!ArrayBuffer.isView(t))throw new Error(`Attribute ${this.id} value is not TypedArray`);const n=this.settings.defaultType;let i=!1;if(this.doublePrecision&&(i=t.BYTES_PER_ELEMENT<4),i)throw new Error(`Attribute ${this.id} does not support ${t.constructor.name}`);!(t instanceof n)&&this.settings.normalized&&!("normalized"in e)&&Zr.warn(`Attribute ${this.id} is normalized`)()}normalizeConstant(e){switch(this.settings.type){case"snorm8":return new Float32Array(e).map(t=>(t+128)/255*2-1);case"snorm16":return new Float32Array(e).map(t=>(t+32768)/65535*2-1);case"unorm8":return new Float32Array(e).map(t=>t/255);case"unorm16":return new Float32Array(e).map(t=>t/65535);default:return e}}_normalizeValue(e,t,n){const{defaultValue:i,size:s}=this.settings;if(Number.isFinite(e))return t[n]=e,t;if(!e){let o=s;for(;--o>=0;)t[n+o]=i[o];return t}switch(s){case 4:t[n+3]=Number.isFinite(e[3])?e[3]:i[3];case 3:t[n+2]=Number.isFinite(e[2])?e[2]:i[2];case 2:t[n+1]=Number.isFinite(e[1])?e[1]:i[1];case 1:t[n+0]=Number.isFinite(e[0])?e[0]:i[0];break;default:let o=s;for(;--o>=0;)t[n+o]=Number.isFinite(e[o])?e[o]:i[o]}return t}_areValuesEqual(e,t){if(!e||!t)return!1;const{size:n}=this;for(let i=0;i<n;i++)if(e[i]!==t[i])return!1;return!0}_createBuffer(e){this._buffer&&this._buffer.destroy();const{isIndexed:t,type:n}=this.settings;return this._buffer=this.device.createBuffer({...this._buffer?.props,id:this.id,usage:(t?Hi.INDEX:Hi.VERTEX)|Hi.COPY_DST,indexType:t?n:void 0,byteLength:e}),this._buffer}}const aS=[],lS=[];function dc(r,e=0,t=1/0){let n=aS;const i={index:-1,data:r,target:[]};return r?typeof r[Symbol.iterator]=="function"?n=r:r.length>0&&(lS.length=r.length,n=lS):n=aS,(e>0||Number.isFinite(t))&&(n=(Array.isArray(n)?n:Array.from(n)).slice(e,t),i.index=e-1),{iterable:n,objectInfo:i}}function FD(r){return r&&r[Symbol.asyncIterator]}function LD(r,e){const{size:t,stride:n,offset:i,startIndices:s,nested:o}=e,l=r.BYTES_PER_ELEMENT,f=n?n/l:t,A=i?i/l:0,v=Math.floor((r.length-A)/f);return(T,{index:I,target:F})=>{if(!s){const V=I*f+A;for(let G=0;G<t;G++)F[G]=r[V+G];return F}const N=s[I],U=s[I+1]||v;let $;if(o){$=new Array(U-N);for(let V=N;V<U;V++){const G=V*f+A;F=new Array(t);for(let X=0;X<t;X++)F[X]=r[G+X];$[V-N]=F}}else if(f===t)$=r.subarray(N*t+A,U*t+A);else{$=new r.constructor((U-N)*t);let V=0;for(let G=N;G<U;G++){const X=G*f+A;for(let ue=0;ue<t;ue++)$[V++]=r[X+ue]}}return $}}const sq=[],mm=[[0,1/0]];function oq(r,e){if(r===mm||(e[0]<0&&(e[0]=0),e[0]>=e[1]))return r;const t=[],n=r.length;let i=0;for(let s=0;s<n;s++){const o=r[s];o[1]<e[0]?(t.push(o),i=s+1):o[0]>e[1]?t.push(o):e=[Math.min(o[0],e[0]),Math.max(o[1],e[1])]}return t.splice(i,0,e),t}const aq={interpolation:{duration:0,easing:r=>r},spring:{stiffness:.05,damping:.5}};function kD(r,e){if(!r)return null;Number.isFinite(r)&&(r={type:"interpolation",duration:r});const t=r.type||"interpolation";return{...aq[t],...e,...r,type:t}}class ND extends iq{constructor(e,t){super(e,t,{startIndices:null,lastExternalBuffer:null,binaryValue:null,binaryAccessor:null,needsUpdate:!0,needsRedraw:!1,layoutChanged:!1,updateRanges:mm}),this.constant=!1,this.settings.update=t.update||(t.accessor?this._autoUpdater:void 0),Object.seal(this.settings),Object.seal(this.state),this._validateAttributeUpdaters()}get startIndices(){return this.state.startIndices}set startIndices(e){this.state.startIndices=e}needsUpdate(){return this.state.needsUpdate}needsRedraw({clearChangedFlags:e=!1}={}){const t=this.state.needsRedraw;return this.state.needsRedraw=t&&!e,t}layoutChanged(){return this.state.layoutChanged}setAccessor(e){var t;(t=this.state).layoutChanged||(t.layoutChanged=!rq(e,this.getAccessor())),super.setAccessor(e)}getUpdateTriggers(){const{accessor:e}=this.settings;return[this.id].concat(typeof e!="function"&&e||[])}supportsTransition(){return!!this.settings.transition}getTransitionSetting(e){if(!e||!this.supportsTransition())return null;const{accessor:t}=this.settings,n=this.settings.transition,i=Array.isArray(t)?e[t.find(s=>e[s])]:e[t];return kD(i,n)}setNeedsUpdate(e=this.id,t){if(this.state.needsUpdate=this.state.needsUpdate||e,this.setNeedsRedraw(e),t){const{startRow:n=0,endRow:i=1/0}=t;this.state.updateRanges=oq(this.state.updateRanges,[n,i])}else this.state.updateRanges=mm}clearNeedsUpdate(){this.state.needsUpdate=!1,this.state.updateRanges=sq}setNeedsRedraw(e=this.id){this.state.needsRedraw=this.state.needsRedraw||e}allocate(e){const{state:t,settings:n}=this;return n.noAlloc?!1:n.update?(super.allocate(e,t.updateRanges!==mm),!0):!1}updateBuffer({numInstances:e,data:t,props:n,context:i}){if(!this.needsUpdate())return!1;const{state:{updateRanges:s},settings:{update:o,noAlloc:l}}=this;let f=!0;if(o){for(const[A,v]of s)o.call(i,this,{data:t,startRow:A,endRow:v,props:n,numInstances:e});if(this.value)if(this.constant||!this.buffer||this.buffer.byteLength<this.value.byteLength+this.byteOffset)this.setData({value:this.value,constant:this.constant}),this.constant=!1;else for(const[A,v]of s){const T=Number.isFinite(A)?this.getVertexOffset(A):0,I=Number.isFinite(v)?this.getVertexOffset(v):l||!Number.isFinite(e)?this.value.length:e*this.size;super.updateSubBuffer({startOffset:T,endOffset:I})}this._checkAttributeArray()}else f=!1;return this.clearNeedsUpdate(),this.setNeedsRedraw(),f}setConstantValue(e){return this.device.type==="webgpu"||e===void 0||typeof e=="function"?!1:(this.setData({constant:!0,value:e})&&this.setNeedsRedraw(),this.clearNeedsUpdate(),!0)}setExternalBuffer(e){const{state:t}=this;return e?(this.clearNeedsUpdate(),t.lastExternalBuffer===e||(t.lastExternalBuffer=e,this.setNeedsRedraw(),this.setData(e)),!0):(t.lastExternalBuffer=null,!1)}setBinaryValue(e,t=null){const{state:n,settings:i}=this;if(!e)return n.binaryValue=null,n.binaryAccessor=null,!1;if(i.noAlloc)return!1;if(n.binaryValue===e)return this.clearNeedsUpdate(),!0;if(n.binaryValue=e,this.setNeedsRedraw(),i.transform||t!==this.startIndices){ArrayBuffer.isView(e)&&(e={value:e});const o=e;Ks(ArrayBuffer.isView(o.value),`invalid ${i.accessor}`);const l=!!o.size&&o.size!==this.size;return n.binaryAccessor=LD(o.value,{size:o.size||this.size,stride:o.stride,offset:o.offset,startIndices:t,nested:l}),!1}return this.clearNeedsUpdate(),this.setData(e),!0}getVertexOffset(e){const{startIndices:t}=this;return(t?e<t.length?t[e]:this.numInstances:e)*this.size}getValue(){const e=this.settings.shaderAttributes,t=super.getValue();if(!e)return t;for(const n in e)Object.assign(t,super.getValue(n,e[n]));return t}getBufferLayout(e){this.state.layoutChanged=!1;const t=this.settings.shaderAttributes,n=super._getBufferLayout(),{stepMode:i}=this.settings;if(i==="dynamic"?n.stepMode=e?e.isInstanced?"instance":"vertex":"instance":n.stepMode=i??"vertex",!t)return n;for(const s in t){const o=super._getBufferLayout(s,t[s]);n.attributes.push(...o.attributes)}return n}_autoUpdater(e,{data:t,startRow:n,endRow:i,props:s,numInstances:o}){if(e.constant&&this.context.device.type!=="webgpu")return;const{settings:l,state:f,value:A,size:v,startIndices:T}=e,{accessor:I,transform:F}=l;let N=f.binaryAccessor||(typeof I=="function"?I:s[I]);typeof N!="function"&&(N=()=>N),Ks(typeof N=="function",`accessor "${I}" is not a function`);let U=e.getVertexOffset(n);const{iterable:$,objectInfo:V}=dc(t,n,i);for(const G of $){V.index++;let X=N(G,V);if(F&&(X=F.call(this,X)),T){const ue=(V.index<T.length-1?T[V.index+1]:o)-T[V.index];if(X&&Array.isArray(X[0])){let K=U;for(const se of X)e._normalizeValue(se,A,K),K+=v}else X&&X.length>v?A.set(X,U):(e._normalizeValue(X,V.target,0),vW({target:A,source:V.target,start:U,count:ue}));U+=ue*v}else e._normalizeValue(X,A,U),U+=v}}_validateAttributeUpdaters(){const{settings:e}=this;if(!(e.noAlloc||typeof e.update=="function"))throw new Error(`Attribute ${this.id} missing update or accessor`)}_checkAttributeArray(){const{value:e}=this,t=Math.min(4,this.size);if(e&&e.length>=t){let n=!0;switch(t){case 4:n=n&&Number.isFinite(e[3]);case 3:n=n&&Number.isFinite(e[2]);case 2:n=n&&Number.isFinite(e[1]);case 1:n=n&&Number.isFinite(e[0]);break;default:n=!1}if(!n)throw new Error(`Illegal attribute generated for ${this.id}`)}}}function Rv(r){const{source:e,target:t,start:n=0,size:i,getData:s}=r,o=r.end||t.length,l=e.length,f=o-n;if(l>f){t.set(e.subarray(0,f),n);return}if(t.set(e,n),!s)return;let A=l;for(;A<f;){const v=s(A,e);for(let T=0;T<i;T++)t[n+A]=v[T]||0,A++}}function lq({source:r,target:e,size:t,getData:n,sourceStartIndices:i,targetStartIndices:s}){if(!i||!s)return Rv({source:r,target:e,size:t,getData:n}),e;let o=0,l=0;const f=n&&((v,T)=>n(v+l,T)),A=Math.min(i.length,s.length);for(let v=1;v<A;v++){const T=i[v]*t,I=s[v]*t;Rv({source:r.subarray(o,T),target:e,start:l,end:I,size:t,getData:f}),o=T,l=I}return l<e.length&&Rv({source:[],target:e,start:l,size:t,getData:f}),e}function cq(r){const{device:e,settings:t,value:n}=r,i=new ND(e,t);return i.setData({value:n instanceof Float64Array?new Float64Array(0):new Float32Array(0),normalized:t.normalized}),i}function UD(r){switch(r){case 1:return"float";case 2:return"vec2";case 3:return"vec3";case 4:return"vec4";default:throw new Error(`No defined attribute type for size "${r}"`)}}function zD(r){switch(r){case 1:return"float32";case 2:return"float32x2";case 3:return"float32x3";case 4:return"float32x4";default:throw new Error("invalid type size")}}function VD(r){r.push(r.shift())}function uq(r,e){const{doublePrecision:t,settings:n,value:i,size:s}=r,o=t&&i instanceof Float64Array?2:1;let l=0;const{shaderAttributes:f}=r.settings;if(f)for(const A of Object.values(f))l=Math.max(l,A.vertexOffset??0);return(n.noAlloc?i.length:(e+l)*s)*o}function jD({device:r,source:e,target:t}){return(!t||t.byteLength<e.byteLength)&&(t?.destroy(),t=r.createBuffer({byteLength:e.byteLength,usage:e.usage})),t}function GD({device:r,buffer:e,attribute:t,fromLength:n,toLength:i,fromStartIndices:s,getData:o=l=>l}){const l=t.doublePrecision&&t.value instanceof Float64Array?2:1,f=t.size*l,A=t.byteOffset,v=t.settings.bytesPerElement<4?A/t.settings.bytesPerElement*4:A,T=t.startIndices,I=s&&T,F=t.isConstant;if(!I&&e&&n>=i)return e;const N=t.value instanceof Float64Array?Float32Array:t.value.constructor,U=F?t.value:new N(t.getBuffer().readSyncWebGL(A,i*N.BYTES_PER_ELEMENT).buffer);if(t.settings.normalized&&!F){const X=o;o=(ue,K)=>t.normalizeConstant(X(ue,K))}const $=F?(X,ue)=>o(U,ue):(X,ue)=>o(U.subarray(X+A,X+A+f),ue),V=e?new Float32Array(e.readSyncWebGL(v,n*4).buffer):new Float32Array(0),G=new Float32Array(i);return lq({source:V,target:G,sourceStartIndices:s,targetStartIndices:T,size:f,getData:$}),(!e||e.byteLength<G.byteLength+v)&&(e?.destroy(),e=r.createBuffer({byteLength:G.byteLength+v,usage:35050})),e.write(G,v),e}class HD{constructor({device:e,attribute:t,timeline:n}){this.buffers=[],this.currentLength=0,this.device=e,this.transition=new L_(n),this.attribute=t,this.attributeInTransition=cq(t),this.currentStartIndices=t.startIndices}get inProgress(){return this.transition.inProgress}start(e,t,n=1/0){this.settings=e,this.currentStartIndices=this.attribute.startIndices,this.currentLength=uq(this.attribute,t),this.transition.start({...e,duration:n})}update(){const e=this.transition.update();return e&&this.onUpdate(),e}setBuffer(e){this.attributeInTransition.setData({buffer:e,normalized:this.attribute.settings.normalized,value:this.attributeInTransition.value})}cancel(){this.transition.cancel()}delete(){this.cancel();for(const e of this.buffers)e.destroy();this.buffers.length=0}}class fq extends HD{constructor({device:e,attribute:t,timeline:n}){super({device:e,attribute:t,timeline:n}),this.type="interpolation",this.transform=Aq(e,t)}start(e,t){const n=this.currentLength,i=this.currentStartIndices;if(super.start(e,t,e.duration),e.duration<=0){this.transition.cancel();return}const{buffers:s,attribute:o}=this;VD(s),s[0]=GD({device:this.device,buffer:s[0],attribute:o,fromLength:n,toLength:this.currentLength,fromStartIndices:i,getData:e.enter}),s[1]=jD({device:this.device,source:s[0],target:s[1]}),this.setBuffer(s[1]);const{transform:l}=this,f=l.model;let A=Math.floor(this.currentLength/o.size);WD(o)&&(A/=2),f.setVertexCount(A),o.isConstant?(f.setAttributes({aFrom:s[0]}),f.setConstantAttributes({aTo:o.value})):f.setAttributes({aFrom:s[0],aTo:o.getBuffer()}),l.transformFeedback.setBuffers({vCurrent:s[1]})}onUpdate(){const{duration:e,easing:t}=this.settings,{time:n}=this.transition;let i=n/e;t&&(i=t(i));const{model:s}=this.transform,o={time:i};s.shaderInputs.setProps({interpolation:o}),this.transform.run({discard:!0})}delete(){super.delete(),this.transform.destroy()}}const hq=`uniform interpolationUniforms { 2008 float time; 2009} interpolation; 2010`,cS={name:"interpolation",vs:hq,uniformTypes:{time:"f32"}},dq=`#version 300 es 2011#define SHADER_NAME interpolation-transition-vertex-shader 2012 2013in ATTRIBUTE_TYPE aFrom; 2014in ATTRIBUTE_TYPE aTo; 2015out ATTRIBUTE_TYPE vCurrent; 2016 2017void main(void) { 2018 vCurrent = mix(aFrom, aTo, interpolation.time); 2019 gl_Position = vec4(0.0); 2020} 2021`,pq=`#version 300 es 2022#define SHADER_NAME interpolation-transition-vertex-shader 2023 2024in ATTRIBUTE_TYPE aFrom; 2025in ATTRIBUTE_TYPE aFrom64Low; 2026in ATTRIBUTE_TYPE aTo; 2027in ATTRIBUTE_TYPE aTo64Low; 2028out ATTRIBUTE_TYPE vCurrent; 2029out ATTRIBUTE_TYPE vCurrent64Low; 2030 2031vec2 mix_fp64(vec2 a, vec2 b, float x) { 2032 vec2 range = sub_fp64(b, a); 2033 return sum_fp64(a, mul_fp64(range, vec2(x, 0.0))); 2034} 2035 2036void main(void) { 2037 for (int i=0; i<ATTRIBUTE_SIZE; i++) { 2038 vec2 value = mix_fp64(vec2(aFrom[i], aFrom64Low[i]), vec2(aTo[i], aTo64Low[i]), interpolation.time); 2039 vCurrent[i] = value.x; 2040 vCurrent64Low[i] = value.y; 2041 } 2042 gl_Position = vec4(0.0); 2043} 2044`;function WD(r){return r.doublePrecision&&r.value instanceof Float64Array}function Aq(r,e){const t=e.size,n=UD(t),i=zD(t),s=e.getBufferLayout();return WD(e)?new nh(r,{vs:pq,bufferLayout:[{name:"aFrom",byteStride:8*t,attributes:[{attribute:"aFrom",format:i,byteOffset:0},{attribute:"aFrom64Low",format:i,byteOffset:4*t}]},{name:"aTo",byteStride:8*t,attributes:[{attribute:"aTo",format:i,byteOffset:0},{attribute:"aTo64Low",format:i,byteOffset:4*t}]}],modules:[rj,cS],defines:{ATTRIBUTE_TYPE:n,ATTRIBUTE_SIZE:t},moduleSettings:{},varyings:["vCurrent","vCurrent64Low"],bufferMode:35980,disableWarnings:!0}):new nh(r,{vs:dq,bufferLayout:[{name:"aFrom",format:i},{name:"aTo",format:s.attributes[0].format}],modules:[cS],defines:{ATTRIBUTE_TYPE:n},varyings:["vCurrent"],disableWarnings:!0})}class gq extends HD{constructor({device:e,attribute:t,timeline:n}){super({device:e,attribute:t,timeline:n}),this.type="spring",this.texture=xq(e),this.framebuffer=wq(e,this.texture),this.transform=bq(e,t)}start(e,t){const n=this.currentLength,i=this.currentStartIndices;super.start(e,t);const{buffers:s,attribute:o}=this;for(let f=0;f<2;f++)s[f]=GD({device:this.device,buffer:s[f],attribute:o,fromLength:n,toLength:this.currentLength,fromStartIndices:i,getData:e.enter});s[2]=jD({device:this.device,source:s[0],target:s[2]}),this.setBuffer(s[1]);const{model:l}=this.transform;l.setVertexCount(Math.floor(this.currentLength/o.size)),o.isConstant?l.setConstantAttributes({aTo:o.value}):l.setAttributes({aTo:o.getBuffer()})}onUpdate(){const{buffers:e,transform:t,framebuffer:n,transition:i}=this,s=this.settings;t.model.setAttributes({aPrev:e[0],aCur:e[1]}),t.transformFeedback.setBuffers({vNext:e[2]});const o={stiffness:s.stiffness,damping:s.damping};t.model.shaderInputs.setProps({spring:o}),t.run({framebuffer:n,discard:!1,parameters:{viewport:[0,0,1,1]},clearColor:[0,0,0,0]}),VD(e),this.setBuffer(e[1]),this.device.readPixelsToArrayWebGL(n)[0]>0||i.end()}delete(){super.delete(),this.transform.destroy(),this.texture.destroy(),this.framebuffer.destroy()}}const mq=`uniform springUniforms { 2045 float damping; 2046 float stiffness; 2047} spring; 2048`,_q={name:"spring",vs:mq,uniformTypes:{damping:"f32",stiffness:"f32"}},yq=`#version 300 es 2049#define SHADER_NAME spring-transition-vertex-shader 2050 2051#define EPSILON 0.00001 2052 2053in ATTRIBUTE_TYPE aPrev; 2054in ATTRIBUTE_TYPE aCur; 2055in ATTRIBUTE_TYPE aTo; 2056out ATTRIBUTE_TYPE vNext; 2057out float vIsTransitioningFlag; 2058 2059ATTRIBUTE_TYPE getNextValue(ATTRIBUTE_TYPE cur, ATTRIBUTE_TYPE prev, ATTRIBUTE_TYPE dest) { 2060 ATTRIBUTE_TYPE velocity = cur - prev; 2061 ATTRIBUTE_TYPE delta = dest - cur; 2062 ATTRIBUTE_TYPE force = delta * spring.stiffness; 2063 ATTRIBUTE_TYPE resistance = velocity * spring.damping; 2064 return force - resistance + velocity + cur; 2065} 2066 2067void main(void) { 2068 bool isTransitioning = length(aCur - aPrev) > EPSILON || length(aTo - aCur) > EPSILON; 2069 vIsTransitioningFlag = isTransitioning ? 1.0 : 0.0; 2070 2071 vNext = getNextValue(aCur, aPrev, aTo); 2072 gl_Position = vec4(0, 0, 0, 1); 2073 gl_PointSize = 100.0; 2074} 2075`,vq=`#version 300 es 2076#define SHADER_NAME spring-transition-is-transitioning-fragment-shader 2077 2078in float vIsTransitioningFlag; 2079 2080out vec4 fragColor; 2081 2082void main(void) { 2083 if (vIsTransitioningFlag == 0.0) { 2084 discard; 2085 } 2086 fragColor = vec4(1.0); 2087}`;function bq(r,e){const t=UD(e.size),n=zD(e.size);return new nh(r,{vs:yq,fs:vq,bufferLayout:[{name:"aPrev",format:n},{name:"aCur",format:n},{name:"aTo",format:e.getBufferLayout().attributes[0].format}],varyings:["vNext"],modules:[_q],defines:{ATTRIBUTE_TYPE:t},parameters:{depthCompare:"always",blendColorOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaOperation:"max",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}})}function xq(r){return r.createTexture({data:new Uint8Array(4),format:"rgba8unorm",mipmaps:!1,width:1,height:1})}function wq(r,e){return r.createFramebuffer({id:"spring-transition-is-transitioning-framebuffer",width:1,height:1,colorAttachments:[e]})}const Tq={interpolation:fq,spring:gq};class Eq{constructor(e,{id:t,timeline:n}){if(!e)throw new Error("AttributeTransitionManager is constructed without device");this.id=t,this.device=e,this.timeline=n,this.transitions={},this.needsRedraw=!1,this.numInstances=1}finalize(){for(const e in this.transitions)this._removeTransition(e)}update({attributes:e,transitions:t,numInstances:n}){this.numInstances=n||1;for(const i in e){const s=e[i],o=s.getTransitionSetting(t);o&&this._updateAttribute(i,s,o)}for(const i in this.transitions){const s=e[i];(!s||!s.getTransitionSetting(t))&&this._removeTransition(i)}}hasAttribute(e){const t=this.transitions[e];return t&&t.inProgress}getAttributes(){const e={};for(const t in this.transitions){const n=this.transitions[t];n.inProgress&&(e[t]=n.attributeInTransition)}return e}run(){if(this.numInstances===0)return!1;for(const t in this.transitions)this.transitions[t].update()&&(this.needsRedraw=!0);const e=this.needsRedraw;return this.needsRedraw=!1,e}_removeTransition(e){this.transitions[e].delete(),delete this.transitions[e]}_updateAttribute(e,t,n){const i=this.transitions[e];let s=!i||i.type!==n.type;if(s){i&&this._removeTransition(e);const o=Tq[n.type];o?this.transitions[e]=new o({attribute:t,timeline:this.timeline,device:this.device}):(Zr.error(`unsupported transition type '${n.type}'`)(),s=!1)}(s||t.needsRedraw())&&(this.needsRedraw=!0,this.transitions[e].start(n,this.numInstances))}}const uS="attributeManager.invalidate",Cq="attributeManager.updateStart",Sq="attributeManager.updateEnd",Iq="attribute.updateStart",Bq="attribute.allocate",Pq="attribute.updateEnd";class k_{constructor(e,{id:t="attribute-manager",stats:n,timeline:i}={}){this.mergeBoundsMemoized=dg(xH),this.id=t,this.device=e,this.attributes={},this.updateTriggers={},this.needsRedraw=!0,this.userData={},this.stats=n,this.attributeTransitionManager=new Eq(e,{id:`${t}-transitions`,timeline:i}),Object.seal(this)}finalize(){for(const e in this.attributes)this.attributes[e].delete();this.attributeTransitionManager.finalize()}getNeedsRedraw(e={clearRedrawFlags:!1}){const t=this.needsRedraw;return this.needsRedraw=this.needsRedraw&&!e.clearRedrawFlags,t&&this.id}setNeedsRedraw(){this.needsRedraw=!0}add(e){this._add(e)}addInstanced(e){this._add(e,{stepMode:"instance"})}remove(e){for(const t of e)this.attributes[t]!==void 0&&(this.attributes[t].delete(),delete this.attributes[t])}invalidate(e,t){const n=this._invalidateTrigger(e,t);Ao(uS,this,e,n)}invalidateAll(e){for(const t in this.attributes)this.attributes[t].setNeedsUpdate(t,e);Ao(uS,this,"all")}update({data:e,numInstances:t,startIndices:n=null,transitions:i,props:s={},buffers:o={},context:l={}}){let f=!1;Ao(Cq,this),this.stats&&this.stats.get("Update Attributes").timeStart();for(const A in this.attributes){const v=this.attributes[A],T=v.settings.accessor;v.startIndices=n,v.numInstances=t,s[A]&&Zr.removed(`props.${A}`,`data.attributes.${A}`)(),v.setExternalBuffer(o[A])||v.setBinaryValue(typeof T=="string"?o[T]:void 0,e.startIndices)||typeof T=="string"&&!o[T]&&v.setConstantValue(s[T])||v.needsUpdate()&&(f=!0,this._updateAttribute({attribute:v,numInstances:t,data:e,props:s,context:l})),this.needsRedraw=this.needsRedraw||v.needsRedraw()}f&&Ao(Sq,this,t),this.stats&&this.stats.get("Update Attributes").timeEnd(),this.attributeTransitionManager.update({attributes:this.attributes,numInstances:t,transitions:i})}updateTransition(){const{attributeTransitionManager:e}=this,t=e.run();return this.needsRedraw=this.needsRedraw||t,t}getAttributes(){return{...this.attributes,...this.attributeTransitionManager.getAttributes()}}getBounds(e){const t=e.map(n=>this.attributes[n]?.getBounds());return this.mergeBoundsMemoized(t)}getChangedAttributes(e={clearChangedFlags:!1}){const{attributes:t,attributeTransitionManager:n}=this,i={...n.getAttributes()};for(const s in t){const o=t[s];o.needsRedraw(e)&&!n.hasAttribute(s)&&(i[s]=o)}return i}getBufferLayouts(e){return Object.values(this.getAttributes()).map(t=>t.getBufferLayout(e))}_add(e,t){for(const n in e){const i=e[n],s={...i,id:n,size:i.isIndexed&&1||i.size||1,...t};this.attributes[n]=new ND(this.device,s)}this._mapUpdateTriggersToAttributes()}_mapUpdateTriggersToAttributes(){const e={};for(const t in this.attributes)this.attributes[t].getUpdateTriggers().forEach(i=>{e[i]||(e[i]=[]),e[i].push(t)});this.updateTriggers=e}_invalidateTrigger(e,t){const{attributes:n,updateTriggers:i}=this,s=i[e];return s&&s.forEach(o=>{const l=n[o];l&&l.setNeedsUpdate(l.id,t)}),s}_updateAttribute(e){const{attribute:t,numInstances:n}=e;if(Ao(Iq,t),t.constant){t.setConstantValue(t.value);return}t.allocate(n)&&Ao(Bq,t,n),t.updateBuffer(e)&&(this.needsRedraw=!0,Ao(Pq,t,n))}}class Mq extends L_{get value(){return this._value}_onUpdate(){const{time:e,settings:{fromValue:t,toValue:n,duration:i,easing:s}}=this,o=s(e/i);this._value=wl(t,n,o)}}const fS=1e-5;function hS(r,e,t,n,i){const s=e-r,l=(t-e)*i,f=-s*n;return l+f+s+e}function Rq(r,e,t,n,i){if(Array.isArray(t)){const s=[];for(let o=0;o<t.length;o++)s[o]=hS(r[o],e[o],t[o],n,i);return s}return hS(r,e,t,n,i)}function dS(r,e){if(Array.isArray(r)){let t=0;for(let n=0;n<r.length;n++){const i=r[n]-e[n];t+=i*i}return Math.sqrt(t)}return Math.abs(r-e)}class Oq extends L_{get value(){return this._currValue}_onUpdate(){const{fromValue:e,toValue:t,damping:n,stiffness:i}=this.settings,{_prevValue:s=e,_currValue:o=e}=this;let l=Rq(s,o,t,n,i);const f=dS(l,t),A=dS(l,o);f<fS&&A<fS&&(l=t,this.end()),this._prevValue=o,this._currValue=l}}const Dq={interpolation:Mq,spring:Oq};class Fq{constructor(e){this.transitions=new Map,this.timeline=e}get active(){return this.transitions.size>0}add(e,t,n,i){const{transitions:s}=this;if(s.has(e)){const f=s.get(e),{value:A=f.settings.fromValue}=f;t=A,this.remove(e)}if(i=kD(i),!i)return;const o=Dq[i.type];if(!o){Zr.error(`unsupported transition type '${i.type}'`)();return}const l=new o(this.timeline);l.start({...i,fromValue:t,toValue:n}),s.set(e,l)}remove(e){const{transitions:t}=this;t.has(e)&&(t.get(e).cancel(),t.delete(e))}update(){const e={};for(const[t,n]of this.transitions)n.update(),e[t]=n.value,n.inProgress||this.remove(t);return e}clear(){for(const e of this.transitions.keys())this.remove(e)}}function Lq(r){const e=r[$u];for(const t in e){const n=e[t],{validate:i}=n;if(i&&!i(r[t],n))throw new Error(`Invalid prop ${t}: ${r[t]}`)}}function kq(r,e){const t=kx({newProps:r,oldProps:e,propTypes:r[$u],ignoreProps:{data:null,updateTriggers:null,extensions:null,transitions:null}}),n=Uq(r,e);let i=!1;return n||(i=zq(r,e)),{dataChanged:n,propsChanged:t,updateTriggersChanged:i,extensionsChanged:Vq(r,e),transitionsChanged:Nq(r,e)}}function Nq(r,e){if(!r.transitions)return!1;const t={},n=r[$u];let i=!1;for(const s in r.transitions){const o=n[s],l=o&&o.type;(l==="number"||l==="color"||l==="array")&&W1(r[s],e[s],o)&&(t[s]=!0,i=!0)}return i?t:!1}function kx({newProps:r,oldProps:e,ignoreProps:t={},propTypes:n={},triggerName:i="props"}){if(e===r)return!1;if(typeof r!="object"||r===null)return`${i} changed shallowly`;if(typeof e!="object"||e===null)return`${i} changed shallowly`;for(const s of Object.keys(r))if(!(s in t)){if(!(s in e))return`${i}.${s} added`;const o=W1(r[s],e[s],n[s]);if(o)return`${i}.${s} ${o}`}for(const s of Object.keys(e))if(!(s in t)){if(!(s in r))return`${i}.${s} dropped`;if(!Object.hasOwnProperty.call(r,s)){const o=W1(r[s],e[s],n[s]);if(o)return`${i}.${s} ${o}`}}return!1}function W1(r,e,t){let n=t&&t.equal;return n&&!n(r,e,t)||!n&&(n=r&&e&&r.equals,n&&!n.call(r,e))?"changed deeply":!n&&e!==r?"changed shallowly":null}function Uq(r,e){if(e===null)return"oldProps is null, initial diff";let t=!1;const{dataComparator:n,_dataDiff:i}=r;return n?n(r.data,e.data)||(t="Data comparator detected a change"):r.data!==e.data&&(t="A new data container was supplied"),t&&i&&(t=i(r.data,e.data)||t),t}function zq(r,e){if(e===null)return{all:!0};if("all"in r.updateTriggers&&pS(r,e,"all"))return{all:!0};const t={};let n=!1;for(const i in r.updateTriggers)i!=="all"&&pS(r,e,i)&&(t[i]=!0,n=!0);return n?t:!1}function Vq(r,e){if(e===null)return!0;const t=e.extensions,{extensions:n}=r;if(n===t)return!1;if(!t||!n||n.length!==t.length)return!0;for(let i=0;i<n.length;i++)if(!n[i].equals(t[i]))return!0;return!1}function pS(r,e,t){let n=r.updateTriggers[t];n=n??{};let i=e.updateTriggers[t];return i=i??{},kx({oldProps:i,newProps:n,triggerName:t})}const jq="count(): argument not an object",Gq="count(): argument not a container";function Hq(r){if(!$q(r))throw new Error(jq);if(typeof r.count=="function")return r.count();if(Number.isFinite(r.size))return r.size;if(Number.isFinite(r.length))return r.length;if(Wq(r))return Object.keys(r).length;throw new Error(Gq)}function Wq(r){return r!==null&&typeof r=="object"&&r.constructor===Object}function $q(r){return r!==null&&typeof r=="object"}function AS(r,e){if(!e)return r;const t={...r,...e};if("defines"in e&&(t.defines={...r.defines,...e.defines}),"modules"in e&&(t.modules=(r.modules||[]).concat(e.modules),e.modules.some(n=>n.name==="project64"))){const n=t.modules.findIndex(i=>i.name==="project32");n>=0&&t.modules.splice(n,1)}if("inject"in e)if(!r.inject)t.inject=e.inject;else{const n={...r.inject};for(const i in e.inject)n[i]=(n[i]||"")+e.inject[i];t.inject=n}return t}const Xq={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},$1={};function qq(r,e,t,n){if(t instanceof oi)return t;t.constructor&&t.constructor.name!=="Object"&&(t={data:t});let i=null;t.compressed&&(i={minFilter:"linear",mipmapFilter:t.data.length>1?"nearest":"linear"});const s=e.createTexture({...t,sampler:{...Xq,...i,...n},mipmaps:!0});return $1[s.id]=r,s}function Jq(r,e){!e||!(e instanceof oi)||$1[e.id]===r&&(e.delete(),delete $1[e.id])}const Kq={boolean:{validate(r,e){return!0},equal(r,e,t){return!!r==!!e}},number:{validate(r,e){return Number.isFinite(r)&&(!("max"in e)||r<=e.max)&&(!("min"in e)||r>=e.min)}},color:{validate(r,e){return e.optional&&!r||X1(r)&&(r.length===3||r.length===4)},equal(r,e,t){return rs(r,e,1)}},accessor:{validate(r,e){const t=Ym(r);return t==="function"||t===Ym(e.value)},equal(r,e,t){return typeof e=="function"?!0:rs(r,e,1)}},array:{validate(r,e){return e.optional&&!r||X1(r)},equal(r,e,t){const{compare:n}=t,i=Number.isInteger(n)?n:n?1:0;return n?rs(r,e,i):r===e}},object:{equal(r,e,t){if(t.ignore)return!0;const{compare:n}=t,i=Number.isInteger(n)?n:n?1:0;return n?rs(r,e,i):r===e}},function:{validate(r,e){return e.optional&&!r||typeof r=="function"},equal(r,e,t){return!t.compare&&t.ignore!==!1||r===e}},data:{transform:(r,e,t)=>{if(!r)return r;const{dataTransform:n}=t.props;return n?n(r):typeof r.shape=="string"&&r.shape.endsWith("-table")&&Array.isArray(r.data)?r.data:r}},image:{transform:(r,e,t)=>{const n=t.context;return!n||!n.device?null:qq(t.id,n.device,r,{...e.parameters,...t.props.textureParameters})},release:(r,e,t)=>{Jq(t.id,r)}}};function Zq(r){const e={},t={},n={};for(const[i,s]of Object.entries(r)){const o=s?.deprecatedFor;if(o)n[i]=Array.isArray(o)?o:[o];else{const l=Yq(i,s);e[i]=l,t[i]=l.value}}return{propTypes:e,defaultProps:t,deprecatedProps:n}}function Yq(r,e){switch(Ym(e)){case"object":return pA(r,e);case"array":return pA(r,{type:"array",value:e,compare:!1});case"boolean":return pA(r,{type:"boolean",value:e});case"number":return pA(r,{type:"number",value:e});case"function":return pA(r,{type:"function",value:e,compare:!0});default:return{name:r,type:"unknown",value:e}}}function pA(r,e){return"type"in e?{name:r,...Kq[e.type],...e}:"value"in e?{name:r,type:Ym(e.value),...e}:{name:r,type:"object",value:e}}function X1(r){return Array.isArray(r)||ArrayBuffer.isView(r)}function Ym(r){return X1(r)?"array":r===null?"null":typeof r}function Qq(r,e){let t;for(let s=e.length-1;s>=0;s--){const o=e[s];"extensions"in o&&(t=o.extensions)}const n=q1(r.constructor,t),i=Object.create(n);i[Km]=r,i[ih]={},i[Vu]={};for(let s=0;s<e.length;++s){const o=e[s];for(const l in o)i[l]=o[l]}return Object.freeze(i),i}const eJ="_mergedDefaultProps";function q1(r,e){if(!(r instanceof N_.constructor))return{};let t=eJ;if(e)for(const i of e){const s=i.constructor;s&&(t+=`:${s.extensionName||s.name}`)}const n=$D(r,t);return n||(r[t]=tJ(r,e||[]))}function tJ(r,e){if(!r.prototype)return null;const n=Object.getPrototypeOf(r),i=q1(n),s=$D(r,"defaultProps")||{},o=Zq(s),l=Object.assign(Object.create(null),i,o.defaultProps),f=Object.assign(Object.create(null),i?.[$u],o.propTypes),A=Object.assign(Object.create(null),i?.[Sv],o.deprecatedProps);for(const v of e){const T=q1(v.constructor);T&&(Object.assign(l,T),Object.assign(f,T[$u]),Object.assign(A,T[Sv]))}return rJ(l,r),iJ(l,f),nJ(l,A),l[$u]=f,l[Sv]=A,e.length===0&&!Nx(r,"_propTypes")&&(r._propTypes=f),l}function rJ(r,e){const t=oJ(e);Object.defineProperties(r,{id:{writable:!0,value:t}})}function nJ(r,e){for(const t in e)Object.defineProperty(r,t,{enumerable:!1,set(n){const i=`${this.id}: ${t}`;for(const s of e[t])Nx(this,s)||(this[s]=n);Zr.deprecated(i,e[t].join("/"))()}})}function iJ(r,e){const t={},n={};for(const i in e){const s=e[i],{name:o,value:l}=s;s.async&&(t[o]=l,n[o]=sJ(o))}r[ep]=t,r[ih]={},Object.defineProperties(r,n)}function sJ(r){return{enumerable:!0,set(e){typeof e=="string"||e instanceof Promise||FD(e)?this[ih][r]=e:this[Vu][r]=e},get(){if(this[Vu]){if(r in this[Vu])return this[Vu][r]||this[ep][r];if(r in this[ih]){const e=this[Km]&&this[Km].internalState;if(e&&e.hasAsyncProp(r))return e.getAsyncProp(r)||this[ep][r]}}return this[ep][r]}}}function Nx(r,e){return Object.prototype.hasOwnProperty.call(r,e)}function $D(r,e){return Nx(r,e)&&r[e]}function oJ(r){const e=r.componentName;return e||Zr.warn(`${r.name}.componentName not specified`)(),e||r.name}let aJ=0;class N_{constructor(...e){this.props=Qq(this,e),this.id=this.props.id,this.count=aJ++}clone(e){const{props:t}=this,n={};for(const i in t[ep])i in t[Vu]?n[i]=t[Vu][i]:i in t[ih]&&(n[i]=t[ih][i]);return new this.constructor({...t,...n,...e})}}N_.componentName="Component";N_.defaultProps={};const lJ=Object.freeze({});class cJ{constructor(e){this.component=e,this.asyncProps={},this.onAsyncPropUpdated=()=>{},this.oldProps=null,this.oldAsyncProps=null}finalize(){for(const e in this.asyncProps){const t=this.asyncProps[e];t&&t.type&&t.type.release&&t.type.release(t.resolvedValue,t.type,this.component)}this.asyncProps={},this.component=null,this.resetOldProps()}getOldProps(){return this.oldAsyncProps||this.oldProps||lJ}resetOldProps(){this.oldAsyncProps=null,this.oldProps=this.component?this.component.props:null}hasAsyncProp(e){return e in this.asyncProps}getAsyncProp(e){const t=this.asyncProps[e];return t&&t.resolvedValue}isAsyncPropLoading(e){if(e){const t=this.asyncProps[e];return!!(t&&t.pendingLoadCount>0&&t.pendingLoadCount!==t.resolvedLoadCount)}for(const t in this.asyncProps)if(this.isAsyncPropLoading(t))return!0;return!1}reloadAsyncProp(e,t){this._watchPromise(e,Promise.resolve(t))}setAsyncProps(e){this.component=e[Km]||this.component;const t=e[Vu]||{},n=e[ih]||e,i=e[ep]||{};for(const s in t){const o=t[s];this._createAsyncPropData(s,i[s]),this._updateAsyncProp(s,o),t[s]=this.getAsyncProp(s)}for(const s in n){const o=n[s];this._createAsyncPropData(s,i[s]),this._updateAsyncProp(s,o)}}_fetch(e,t){return null}_onResolve(e,t){}_onError(e,t){}_updateAsyncProp(e,t){if(this._didAsyncInputValueChange(e,t)){if(typeof t=="string"&&(t=this._fetch(e,t)),t instanceof Promise){this._watchPromise(e,t);return}if(FD(t)){this._resolveAsyncIterable(e,t);return}this._setPropValue(e,t)}}_freezeAsyncOldProps(){if(!this.oldAsyncProps&&this.oldProps){this.oldAsyncProps=Object.create(this.oldProps);for(const e in this.asyncProps)Object.defineProperty(this.oldAsyncProps,e,{enumerable:!0,value:this.oldProps[e]})}}_didAsyncInputValueChange(e,t){const n=this.asyncProps[e];return t===n.resolvedValue||t===n.lastValue?!1:(n.lastValue=t,!0)}_setPropValue(e,t){this._freezeAsyncOldProps();const n=this.asyncProps[e];n&&(t=this._postProcessValue(n,t),n.resolvedValue=t,n.pendingLoadCount++,n.resolvedLoadCount=n.pendingLoadCount)}_setAsyncPropValue(e,t,n){const i=this.asyncProps[e];i&&n>=i.resolvedLoadCount&&t!==void 0&&(this._freezeAsyncOldProps(),i.resolvedValue=t,i.resolvedLoadCount=n,this.onAsyncPropUpdated(e,t))}_watchPromise(e,t){const n=this.asyncProps[e];if(n){n.pendingLoadCount++;const i=n.pendingLoadCount;t.then(s=>{this.component&&(s=this._postProcessValue(n,s),this._setAsyncPropValue(e,s,i),this._onResolve(e,s))}).catch(s=>{this._onError(e,s)})}}async _resolveAsyncIterable(e,t){if(e!=="data"){this._setPropValue(e,t);return}const n=this.asyncProps[e];if(!n)return;n.pendingLoadCount++;const i=n.pendingLoadCount;let s=[],o=0;for await(const l of t){if(!this.component)return;const{dataTransform:f}=this.component.props;f?s=f(l,s):s=s.concat(l),Object.defineProperty(s,"__diff",{enumerable:!1,value:[{startRow:o,endRow:s.length}]}),o=s.length,this._setAsyncPropValue(e,s,i)}this._onResolve(e,s)}_postProcessValue(e,t){const n=e.type;return n&&this.component&&(n.release&&n.release(e.resolvedValue,n,this.component),n.transform)?n.transform(t,n,this.component):t}_createAsyncPropData(e,t){if(!this.asyncProps[e]){const i=this.component&&this.component.props[$u];this.asyncProps[e]={type:i&&i[e],lastValue:null,resolvedValue:t,pendingLoadCount:0,resolvedLoadCount:0}}}}class uJ extends cJ{constructor({attributeManager:e,layer:t}){super(t),this.attributeManager=e,this.needsRedraw=!0,this.needsUpdate=!0,this.subLayers=null,this.usesPickingColorCache=!1}get layer(){return this.component}_fetch(e,t){const n=this.layer,i=n?.props.fetch;return i?i(t,{propName:e,layer:n}):super._fetch(e,t)}_onResolve(e,t){const n=this.layer;if(n){const i=n.props.onDataLoad;e==="data"&&i&&i(t,{propName:e,layer:n})}}_onError(e,t){const n=this.layer;n&&n.raiseError(t,`loading ${e} of ${this.layer}`)}}const fJ="layer.changeFlag",hJ="layer.initialize",dJ="layer.update",pJ="layer.finalize",AJ="layer.matched",gS=2**24-1,gJ=Object.freeze([]),mJ=dg(({oldViewport:r,viewport:e})=>r.equals(e));let ll=new Uint8ClampedArray(0);const _J={data:{type:"data",value:gJ,async:!0},dataComparator:{type:"function",value:null,optional:!0},_dataDiff:{type:"function",value:r=>r&&r.__diff,optional:!0},dataTransform:{type:"function",value:null,optional:!0},onDataLoad:{type:"function",value:null,optional:!0},onError:{type:"function",value:null,optional:!0},fetch:{type:"function",value:(r,{propName:e,layer:t,loaders:n,loadOptions:i,signal:s})=>{const{resourceManager:o}=t.context;i=i||t.getLoadOptions(),n=n||t.props.loaders,s&&(i={...i,fetch:{...i?.fetch,signal:s}});let l=o.contains(r);return!l&&!i&&(o.add({resourceId:r,data:Kc(r,n),persistent:!1}),l=!0),l?o.subscribe({resourceId:r,onChange:f=>t.internalState?.reloadAsyncProp(e,f),consumerId:t.id,requestId:e}):Kc(r,n,i)}},updateTriggers:{},visible:!0,pickable:!1,opacity:{type:"number",min:0,max:1,value:1},operation:"draw",onHover:{type:"function",value:null,optional:!0},onClick:{type:"function",value:null,optional:!0},onDragStart:{type:"function",value:null,optional:!0},onDrag:{type:"function",value:null,optional:!0},onDragEnd:{type:"function",value:null,optional:!0},coordinateSystem:Qr.DEFAULT,coordinateOrigin:{type:"array",value:[0,0,0],compare:!0},modelMatrix:{type:"array",value:null,compare:!0,optional:!0},wrapLongitude:!1,positionFormat:"XYZ",colorFormat:"RGBA",parameters:{type:"object",value:{},optional:!0,compare:2},loadOptions:{type:"object",value:null,optional:!0,ignore:!0},transitions:null,extensions:[],loaders:{type:"array",value:[],optional:!0,ignore:!0},getPolygonOffset:{type:"function",value:({layerIndex:r})=>[0,-r*100]},highlightedObjectIndex:null,autoHighlight:!1,highlightColor:{type:"accessor",value:[0,0,128,128]}};class Cs extends N_{constructor(){super(...arguments),this.internalState=null,this.lifecycle=Od.NO_STATE,this.parent=null}static get componentName(){return Object.prototype.hasOwnProperty.call(this,"layerName")?this.layerName:""}get root(){let e=this;for(;e.parent;)e=e.parent;return e}toString(){return`${this.constructor.layerName||this.constructor.name}({id: '${this.props.id}'})`}project(e){Ks(this.internalState);const t=this.internalState.viewport||this.context.viewport,n=lD(e,{viewport:t,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem}),[i,s,o]=nD(n,t.pixelProjectionMatrix);return e.length===2?[i,s]:[i,s,o]}unproject(e){return Ks(this.internalState),(this.internalState.viewport||this.context.viewport).unproject(e)}projectPosition(e,t){Ks(this.internalState);const n=this.internalState.viewport||this.context.viewport;return IH(e,{viewport:n,modelMatrix:this.props.modelMatrix,coordinateOrigin:this.props.coordinateOrigin,coordinateSystem:this.props.coordinateSystem,...t})}get isComposite(){return!1}get isDrawable(){return!0}setState(e){this.setChangeFlags({stateChanged:!0}),Object.assign(this.state,e),this.setNeedsRedraw()}setNeedsRedraw(){this.internalState&&(this.internalState.needsRedraw=!0)}setNeedsUpdate(){this.internalState&&(this.context.layerManager.setNeedsUpdate(String(this)),this.internalState.needsUpdate=!0)}get isLoaded(){return this.internalState?!this.internalState.isAsyncPropLoading():!1}get wrapLongitude(){return this.props.wrapLongitude}isPickable(){return this.props.pickable&&this.props.visible}getModels(){const e=this.state;return e&&(e.models||e.model&&[e.model])||[]}setShaderModuleProps(...e){for(const t of this.getModels())t.shaderInputs.setProps(...e)}getAttributeManager(){return this.internalState&&this.internalState.attributeManager}getCurrentLayer(){return this.internalState&&this.internalState.layer}getLoadOptions(){return this.props.loadOptions}use64bitPositions(){const{coordinateSystem:e}=this.props;return e===Qr.DEFAULT||e===Qr.LNGLAT||e===Qr.CARTESIAN}onHover(e,t){return this.props.onHover&&this.props.onHover(e,t)||!1}onClick(e,t){return this.props.onClick&&this.props.onClick(e,t)||!1}nullPickingColor(){return[0,0,0]}encodePickingColor(e,t=[]){return t[0]=e+1&255,t[1]=e+1>>8&255,t[2]=e+1>>8>>8&255,t}decodePickingColor(e){Ks(e instanceof Uint8Array);const[t,n,i]=e;return t+n*256+i*65536-1}getNumInstances(){return Number.isFinite(this.props.numInstances)?this.props.numInstances:this.state&&this.state.numInstances!==void 0?this.state.numInstances:Hq(this.props.data)}getStartIndices(){return this.props.startIndices?this.props.startIndices:this.state&&this.state.startIndices?this.state.startIndices:null}getBounds(){return this.getAttributeManager()?.getBounds(["positions","instancePositions"])}getShaders(e){e=AS(e,{disableWarnings:!0,modules:this.context.defaultShaderModules});for(const t of this.props.extensions)e=AS(e,t.getShaders.call(this,t));return e}shouldUpdateState(e){return e.changeFlags.propsOrDataChanged}updateState(e){const t=this.getAttributeManager(),{dataChanged:n}=e.changeFlags;if(n&&t)if(Array.isArray(n))for(const i of n)t.invalidateAll(i);else t.invalidateAll();if(t){const{props:i}=e,s=this.internalState.hasPickingBuffer,o=Number.isInteger(i.highlightedObjectIndex)||i.pickable||i.extensions.some(l=>l.getNeedsPickingBuffer.call(this,l));if(s!==o){this.internalState.hasPickingBuffer=o;const{pickingColors:l,instancePickingColors:f}=t.attributes,A=l||f;A&&(o&&A.constant&&(A.constant=!1,t.invalidate(A.id)),!A.value&&!o&&(A.constant=!0,A.value=[0,0,0]))}}}finalizeState(e){for(const n of this.getModels())n.destroy();const t=this.getAttributeManager();t&&t.finalize(),this.context&&this.context.resourceManager.unsubscribe({consumerId:this.id}),this.internalState&&(this.internalState.uniformTransitions.clear(),this.internalState.finalize())}draw(e){for(const t of this.getModels())t.draw(e.renderPass)}getPickingInfo({info:e,mode:t,sourceLayer:n}){const{index:i}=e;return i>=0&&Array.isArray(this.props.data)&&(e.object=this.props.data[i]),e}raiseError(e,t){t&&(e=new Error(`${t}: ${e.message}`,{cause:e})),this.props.onError?.(e)||this.context?.onError?.(e,this)}getNeedsRedraw(e={clearRedrawFlags:!1}){return this._getNeedsRedraw(e)}needsUpdate(){return this.internalState?this.internalState.needsUpdate||this.hasUniformTransition()||this.shouldUpdateState(this._getUpdateParams()):!1}hasUniformTransition(){return this.internalState?.uniformTransitions.active||!1}activateViewport(e){if(!this.internalState)return;const t=this.internalState.viewport;this.internalState.viewport=e,(!t||!mJ({oldViewport:t,viewport:e}))&&(this.setChangeFlags({viewportChanged:!0}),this.isComposite?this.needsUpdate()&&this.setNeedsUpdate():this._update())}invalidateAttribute(e="all"){const t=this.getAttributeManager();t&&(e==="all"?t.invalidateAll():t.invalidate(e))}updateAttributes(e){let t=!1;for(const n in e)e[n].layoutChanged()&&(t=!0);for(const n of this.getModels())this._setModelAttributes(n,e,t)}_updateAttributes(){const e=this.getAttributeManager();if(!e)return;const t=this.props,n=this.getNumInstances(),i=this.getStartIndices();e.update({data:t.data,numInstances:n,startIndices:i,props:t,transitions:t.transitions,buffers:t.data.attributes,context:this});const s=e.getChangedAttributes({clearChangedFlags:!0});this.updateAttributes(s)}_updateAttributeTransition(){const e=this.getAttributeManager();e&&e.updateTransition()}_updateUniformTransition(){const{uniformTransitions:e}=this.internalState;if(e.active){const t=e.update(),n=Object.create(this.props);for(const i in t)Object.defineProperty(n,i,{value:t[i]});return n}return this.props}calculateInstancePickingColors(e,{numInstances:t}){if(e.constant)return;const n=Math.floor(ll.length/4);if(this.internalState.usesPickingColorCache=!0,n<t){t>gS&&Zr.warn("Layer has too many data objects. Picking might not be able to distinguish all objects.")(),ll=fp.allocate(ll,t,{size:4,copy:!0,maxCount:Math.max(t,gS)});const i=Math.floor(ll.length/4),s=[0,0,0];for(let o=n;o<i;o++)this.encodePickingColor(o,s),ll[o*4+0]=s[0],ll[o*4+1]=s[1],ll[o*4+2]=s[2],ll[o*4+3]=0}e.value=ll.subarray(0,t*4)}_setModelAttributes(e,t,n=!1){if(!Object.keys(t).length)return;if(n){const l=this.getAttributeManager();e.setBufferLayout(l.getBufferLayouts(e)),t=l.getAttributes()}const i=e.userData?.excludeAttributes||{},s={},o={};for(const l in t){if(i[l])continue;const f=t[l].getValue();for(const A in f){const v=f[A];v instanceof Hi?t[l].settings.isIndexed?e.setIndexBuffer(v):s[A]=v:v&&(o[A]=v)}}e.setAttributes(s),e.setConstantAttributes(o)}disablePickingIndex(e){const t=this.props.data;if(!("attributes"in t)){this._disablePickingIndex(e);return}const{pickingColors:n,instancePickingColors:i}=this.getAttributeManager().attributes,s=n||i,o=s&&t.attributes&&t.attributes[s.id];if(o&&o.value){const l=o.value,f=this.encodePickingColor(e);for(let A=0;A<t.length;A++){const v=s.getVertexOffset(A);l[v]===f[0]&&l[v+1]===f[1]&&l[v+2]===f[2]&&this._disablePickingIndex(A)}}else this._disablePickingIndex(e)}_disablePickingIndex(e){const{pickingColors:t,instancePickingColors:n}=this.getAttributeManager().attributes,i=t||n;if(!i)return;const s=i.getVertexOffset(e),o=i.getVertexOffset(e+1);i.buffer.write(new Uint8Array(o-s),s)}restorePickingColors(){const{pickingColors:e,instancePickingColors:t}=this.getAttributeManager().attributes,n=e||t;n&&(this.internalState.usesPickingColorCache&&n.value.buffer!==ll.buffer&&(n.value=ll.subarray(0,n.value.length)),n.updateSubBuffer({startOffset:0}))}_initialize(){Ks(!this.internalState),Ks(Number.isFinite(this.props.coordinateSystem)),Ao(hJ,this);const e=this._getAttributeManager();e&&e.addInstanced({instancePickingColors:{type:"uint8",size:4,noAlloc:!0,update:this.calculateInstancePickingColors}}),this.internalState=new uJ({attributeManager:e,layer:this}),this._clearChangeFlags(),this.state={},Object.defineProperty(this.state,"attributeManager",{get:()=>(Zr.deprecated("layer.state.attributeManager","layer.getAttributeManager()")(),e)}),this.internalState.uniformTransitions=new Fq(this.context.timeline),this.internalState.onAsyncPropUpdated=this._onAsyncPropUpdated.bind(this),this.internalState.setAsyncProps(this.props),this.initializeState(this.context);for(const t of this.props.extensions)t.initializeState.call(this,this.context,t);this.setChangeFlags({dataChanged:"init",propsChanged:"init",viewportChanged:!0,extensionsChanged:!0}),this._update()}_transferState(e){Ao(AJ,this,this===e);const{state:t,internalState:n}=e;this!==e&&(this.internalState=n,this.state=t,this.internalState.setAsyncProps(this.props),this._diffProps(this.props,this.internalState.getOldProps()))}
2087_update(){const e=this.needsUpdate();if(Ao(dJ,this,e),!e)return;const t=this.props,n=this.context,i=this.internalState,s=n.viewport,o=this._updateUniformTransition();i.propsInTransition=o,n.viewport=i.viewport||s,this.props=o;try{const l=this._getUpdateParams(),f=this.getModels();if(n.device)this.updateState(l);else try{this.updateState(l)}catch{}for(const v of this.props.extensions)v.updateState.call(this,l,v);this.setNeedsRedraw(),this._updateAttributes();const A=this.getModels()[0]!==f[0];this._postUpdate(l,A)}finally{n.viewport=s,this.props=t,this._clearChangeFlags(),i.needsUpdate=!1,i.resetOldProps()}}_finalize(){Ao(pJ,this),this.finalizeState(this.context);for(const e of this.props.extensions)e.finalizeState.call(this,this.context,e)}_drawLayer({renderPass:e,shaderModuleProps:t=null,uniforms:n={},parameters:i={}}){this._updateAttributeTransition();const s=this.props,o=this.context;this.props=this.internalState.propsInTransition||s;try{t&&this.setShaderModuleProps(t);const{getPolygonOffset:l}=this.props,f=l&&l(n)||[0,0];o.device instanceof Gd&&o.device.setParametersWebGL({polygonOffset:f});for(const A of this.getModels())A.device.type==="webgpu"?A.setParameters({...A.parameters,...i}):A.setParameters(i);if(o.device instanceof Gd)o.device.withParametersWebGL(i,()=>{const A={renderPass:e,shaderModuleProps:t,uniforms:n,parameters:i,context:o};for(const v of this.props.extensions)v.draw.call(this,A,v);this.draw(A)});else{const A={renderPass:e,shaderModuleProps:t,uniforms:n,parameters:i,context:o};for(const v of this.props.extensions)v.draw.call(this,A,v);this.draw(A)}}finally{this.props=s}}getChangeFlags(){return this.internalState?.changeFlags}setChangeFlags(e){if(!this.internalState)return;const{changeFlags:t}=this.internalState;for(const i in e)if(e[i]){let s=!1;switch(i){case"dataChanged":const o=e[i],l=t[i];o&&Array.isArray(l)&&(t.dataChanged=Array.isArray(o)?l.concat(o):o,s=!0);default:t[i]||(t[i]=e[i],s=!0)}s&&Ao(fJ,this,i,e)}const n=!!(t.dataChanged||t.updateTriggersChanged||t.propsChanged||t.extensionsChanged);t.propsOrDataChanged=n,t.somethingChanged=n||t.viewportChanged||t.stateChanged}_clearChangeFlags(){this.internalState.changeFlags={dataChanged:!1,propsChanged:!1,updateTriggersChanged:!1,viewportChanged:!1,stateChanged:!1,extensionsChanged:!1,propsOrDataChanged:!1,somethingChanged:!1}}_diffProps(e,t){const n=kq(e,t);if(n.updateTriggersChanged)for(const i in n.updateTriggersChanged)n.updateTriggersChanged[i]&&this.invalidateAttribute(i);if(n.transitionsChanged)for(const i in n.transitionsChanged)this.internalState.uniformTransitions.add(i,t[i],e[i],e.transitions?.[i]);return this.setChangeFlags(n)}validateProps(){Lq(this.props)}updateAutoHighlight(e){this.props.autoHighlight&&!Number.isInteger(this.props.highlightedObjectIndex)&&this._updateAutoHighlight(e)}_updateAutoHighlight(e){const t={highlightedObjectColor:e.picked?e.color:null},{highlightColor:n}=this.props;e.picked&&typeof n=="function"&&(t.highlightColor=n(e)),this.setShaderModuleProps({picking:t}),this.setNeedsRedraw()}_getAttributeManager(){const e=this.context;return new k_(e.device,{id:this.props.id,stats:e.stats,timeline:e.timeline})}_postUpdate(e,t){const{props:n,oldProps:i}=e,s=this.state.model;s?.isInstanced&&s.setInstanceCount(this.getNumInstances());const{autoHighlight:o,highlightedObjectIndex:l,highlightColor:f}=n;if(t||i.autoHighlight!==o||i.highlightedObjectIndex!==l||i.highlightColor!==f){const A={};Array.isArray(f)&&(A.highlightColor=f),(t||i.autoHighlight!==o||l!==i.highlightedObjectIndex)&&(A.highlightedObjectColor=Number.isFinite(l)&&l>=0?this.encodePickingColor(l):null),this.setShaderModuleProps({picking:A})}}_getUpdateParams(){return{props:this.props,oldProps:this.internalState.getOldProps(),context:this.context,changeFlags:this.internalState.changeFlags}}_getNeedsRedraw(e){if(!this.internalState)return!1;let t=!1;t=t||this.internalState.needsRedraw&&this.id;const n=this.getAttributeManager(),i=n?n.getNeedsRedraw(e):!1;if(t=t||i,t)for(const s of this.props.extensions)s.onNeedsRedraw.call(this,s);return this.internalState.needsRedraw=this.internalState.needsRedraw&&!e.clearRedrawFlags,t}_onAsyncPropUpdated(){this._diffProps(this.props,this.internalState.getOldProps()),this.setNeedsUpdate()}}Cs.defaultProps=_J;
2087Cs.layerName="Layer";const yJ="compositeLayer.renderLayers";class Ss extends Cs{get isComposite(){return!0}get isDrawable(){return!1}get isLoaded(){return super.isLoaded&&this.getSubLayers().every(e=>e.isLoaded)}getSubLayers(){return this.internalState&&this.internalState.subLayers||[]}initializeState(e){}setState(e){super.setState(e),this.setNeedsUpdate()}getPickingInfo({info:e}){const{object:t}=e;return t&&t.__source&&t.__source.parent&&t.__source.parent.id===this.id&&(e.object=t.__source.object,e.index=t.__source.index),e}filterSubLayer(e){return!0}shouldRenderSubLayer(e,t){return t&&t.length}getSubLayerClass(e,t){const{_subLayerProps:n}=this.props;return n&&n[e]&&n[e].type||t}getSubLayerRow(e,t,n){return e.__source={parent:this,object:t,index:n},e}getSubLayerAccessor(e){if(typeof e=="function"){const t={index:-1,data:this.props.data,target:[]};return(n,i)=>n&&n.__source?(t.index=n.__source.index,e(n.__source.object,t)):e(n,i)}return e}getSubLayerProps(e={}){const{opacity:t,pickable:n,visible:i,parameters:s,getPolygonOffset:o,highlightedObjectIndex:l,autoHighlight:f,highlightColor:A,coordinateSystem:v,coordinateOrigin:T,wrapLongitude:I,positionFormat:F,modelMatrix:N,extensions:U,fetch:$,operation:V,_subLayerProps:G}=this.props,X={id:"",updateTriggers:{},opacity:t,pickable:n,visible:i,parameters:s,getPolygonOffset:o,highlightedObjectIndex:l,autoHighlight:f,highlightColor:A,coordinateSystem:v,coordinateOrigin:T,wrapLongitude:I,positionFormat:F,modelMatrix:N,extensions:U,fetch:$,operation:V},ue=G&&e.id&&G[e.id],K=ue&&ue.updateTriggers,se=e.id||"sublayer";if(ue){const Ee=this.props[$u],Ue=e.type?e.type._propTypes:{};for(const de in ue){const me=Ue[de]||Ee[de];me&&me.type==="accessor"&&(ue[de]=this.getSubLayerAccessor(ue[de]))}}Object.assign(X,e,ue),X.id=`${this.props.id}-${se}`,X.updateTriggers={all:this.props.updateTriggers?.all,...e.updateTriggers,...K};for(const Ee of U){const Ue=Ee.getSubLayerProps.call(this,Ee);Ue&&Object.assign(X,Ue,{updateTriggers:Object.assign(X.updateTriggers,Ue.updateTriggers)})}return X}_updateAutoHighlight(e){for(const t of this.getSubLayers())t.updateAutoHighlight(e)}_getAttributeManager(){return null}_postUpdate(e,t){let n=this.internalState.subLayers;const i=!n||this.needsUpdate();if(i){const s=this.renderLayers();n=F_(s,Boolean),this.internalState.subLayers=n}Ao(yJ,this,i,n);for(const s of n)s.parent=this}}Ss.layerName="CompositeLayer";const S0=Math.PI/180,mS=180/Math.PI,_m=6370972,Hd=256;function vJ(){const r=Hd/_m,e=Math.PI/180*Hd;return{unitsPerMeter:[r,r,r],unitsPerMeter2:[0,0,0],metersPerUnit:[1/r,1/r,1/r],unitsPerDegree:[e,e,r],unitsPerDegree2:[0,0,0],degreesPerUnit:[1/e,1/e,1/r]}}class bJ extends eu{constructor(e={}){const{longitude:t=0,zoom:n=0,nearZMultiplier:i=.5,farZMultiplier:s=1,resolution:o=10}=e;let{latitude:l=0,height:f,altitude:A=1.5,fovy:v}=e;l=Math.max(Math.min(l,Nd),-Nd),f=f||1,v?A=Sx(v):v=eg(A);const T=1/Math.PI/Math.cos(l*Math.PI/180),I=Math.pow(2,n)*T,F=e.nearZ??i,N=e.farZ??(A+Hd*2*I/f)*s,U=new vn().lookAt({eye:[0,-A,0],up:[0,0,1]});U.rotateX(l*S0),U.rotateZ(-t*S0),U.scale(I/f),super({...e,height:f,viewMatrix:U,longitude:t,latitude:l,zoom:n,distanceScales:vJ(),fovy:v,focalDistance:A,near:F,far:N}),this.scale=I,this.latitude=l,this.longitude=t,this.resolution=o}get projectionMode(){return ha.GLOBE}getDistanceScales(){return this.distanceScales}getBounds(e={}){const t={targetZ:e.z||0},n=this.unproject([0,this.height/2],t),i=this.unproject([this.width/2,0],t),s=this.unproject([this.width,this.height/2],t),o=this.unproject([this.width/2,this.height],t);return s[0]<this.longitude&&(s[0]+=360),n[0]>this.longitude&&(n[0]-=360),[Math.min(n[0],s[0],i[0],o[0]),Math.min(n[1],s[1],i[1],o[1]),Math.max(n[0],s[0],i[0],o[0]),Math.max(n[1],s[1],i[1],o[1])]}unproject(e,{topLeft:t=!0,targetZ:n}={}){const[i,s,o]=e,l=t?s:this.height-s,{pixelUnprojectionMatrix:f}=this;let A;if(Number.isFinite(o))A=Ov(f,[i,l,o,1]);else{const F=Ov(f,[i,l,-1,1]),N=Ov(f,[i,l,1,1]),U=((n||0)/_m+1)*Hd,$=pv(PO([],F,N)),V=pv(F),G=pv(N),ue=4*((4*V*G-($-V-G)**2)/16)/$,K=Math.sqrt(V-ue),se=Math.sqrt(Math.max(0,U*U-ue)),Ee=(K-se)/Math.sqrt($);A=H7([],F,N,Ee)}const[v,T,I]=this.unprojectPosition(A);return Number.isFinite(o)?[v,T,I]:Number.isFinite(n)?[v,T,n]:[v,T]}projectPosition(e){const[t,n,i=0]=e,s=t*S0,o=n*S0,l=Math.cos(o),f=(i/_m+1)*Hd;return[Math.sin(s)*l*f,-Math.cos(s)*l*f,Math.sin(o)*f]}unprojectPosition(e){const[t,n,i]=e,s=MO(e),o=Math.asin(i/s),f=Math.atan2(t,-n)*mS,A=o*mS,v=(s/Hd-1)*_m;return[f,A,v]}projectFlat(e){return e}unprojectFlat(e){return e}panByPosition(e,t){const n=this.unproject(t);return{longitude:e[0]-n[0]+this.longitude,latitude:e[1]-n[1]+this.latitude}}}function Ov(r,e){const t=Ep([],e,r);return wx(t,t,1/t[3]),t}class U_{static get componentName(){return Object.prototype.hasOwnProperty.call(this,"extensionName")?this.extensionName:""}constructor(e){e&&(this.opts=e)}equals(e){return this===e?!0:this.constructor===e.constructor&&rs(this.opts,e.opts,1)}getShaders(e){return null}getSubLayerProps(e){const{defaultProps:t}=e.constructor,n={updateTriggers:{}};for(const i in t)if(i in this.props){const s=t[i],o=this.props[i];n[i]=o,s&&s.type==="accessor"&&(n.updateTriggers[i]=this.props.updateTriggers[i],typeof o=="function"&&(n[i]=this.getSubLayerAccessor(
2087o)))}return n}initializeState(e,t){}updateState(e,t){}onNeedsRedraw(e){}getNeedsPickingBuffer(e){return!1}draw(e,t){}finalizeState(e,t){}}U_.defaultProps={};U_.extensionName="LayerExtension";class XD{constructor(e){this.indexStarts=[0],this.vertexStarts=[0],this.vertexCount=0,this.instanceCount=0;const{attributes:t={}}=e;this.typedArrayManager=fp,this.attributes={},this._attributeDefs=t,this.opts=e,this.updateGeometry(e)}updateGeometry(e){Object.assign(this.opts,e);const{data:t,buffers:n={},getGeometry:i,geometryBuffer:s,positionFormat:o,dataChanged:l,normalize:f=!0}=this.opts;if(this.data=t,this.getGeometry=i,this.positionSize=s&&s.size||(o==="XY"?2:3),this.buffers=n,this.normalize=f,s&&(Ks(t.startIndices),this.getGeometry=this.getGeometryFromBuffer(s),f||(n.vertexPositions=s)),this.geometryBuffer=n.vertexPositions,Array.isArray(l))for(const A of l)this._rebuildGeometry(A);else this._rebuildGeometry()}updatePartialGeometry({startRow:e,endRow:t}){this._rebuildGeometry({startRow:e,endRow:t})}getGeometryFromBuffer(e){const t=e.value||e;return ArrayBuffer.isView(t)?LD(t,{size:this.positionSize,offset:e.offset,stride:e.stride,startIndices:this.data.startIndices}):null}_allocate(e,t){const{attributes:n,buffers:i,_attributeDefs:s,typedArrayManager:o}=this;for(const l in s)if(l in i)o.release(n[l]),n[l]=null;else{const f=s[l];f.copy=t,n[l]=o.allocate(n[l],e,f)}}_forEachGeometry(e,t,n){const{data:i,getGeometry:s}=this,{iterable:o,objectInfo:l}=dc(i,t,n);for(const f of o){l.index++;const A=s?s(f,l):null;e(A,l.index)}}_rebuildGeometry(e){if(!this.data)return;let{indexStarts:t,vertexStarts:n,instanceCount:i}=this;const{data:s,geometryBuffer:o}=this,{startRow:l=0,endRow:f=1/0}=e||{},A={};if(e||(t=[0],n=[0]),this.normalize||!o)this._forEachGeometry((T,I)=>{const F=T&&this.normalizeGeometry(T);A[I]=F,n[I+1]=n[I]+(F?this.getGeometrySize(F):0)},l,f),i=n[n.length-1];else if(n=s.startIndices,i=n[s.length]||0,ArrayBuffer.isView(o))i=i||o.length/this.positionSize;else if(o instanceof Hi){const T=this.positionSize*4;i=i||o.byteLength/T}else if(o.buffer){const T=o.stride||this.positionSize*4;i=i||o.buffer.byteLength/T}else if(o.value){const T=o.value,I=o.stride/T.BYTES_PER_ELEMENT||this.positionSize;i=i||T.length/I}this._allocate(i,!!e),this.indexStarts=t,this.vertexStarts=n,this.instanceCount=i;const v={};this._forEachGeometry((T,I)=>
2087{const F=A[I]||T;v.vertexStart=n[I],v.indexStart=t[I];const N=I<n.length-1?n[I+1]:i;v.geometrySize=N-n[I],v.geometryIndex=I,this.updateGeometryAttributes(F,v)},l,f),this.vertexCount=t[t.length-1]}}const xJ=typeof window<"u"?Bt.useLayoutEffect:Bt.useEffect;function Qm(r,e){for(;r;){if(r===e)return!0;r=Object.getPrototypeOf(r)}return!1}const wJ={position:"absolute",zIndex:-1};function qD(r,e){if(typeof r=="function")return r(e);if(Array.isArray(r))return r.map(t=>qD(t,e));if(z_(r)){if(TJ(r))return e.style=wJ,Bt.cloneElement(r,e);if(EJ(r))return Bt.cloneElement(r,e)}return r}function z_(r){return r&&typeof r=="object"&&"type"in r||!1}function TJ(r){return r.props?.mapStyle}function EJ(r){const e=r.type;return e&&e.deckGLViewProps}function J1(r){if(typeof r=="function")return Bt.createElement(hp,{},r);if(Array.isArray(r))return r.map(J1);if(z_(r)){if(r.type===Bt.Fragment)return J1(r.props.children);if(Qm(r.type,hp))return r}return r}function CJ({children:r,layers:e=[],views:t=null}){const n=[],i=[],s={};return Bt.Children.forEach(J1(r),o=>{if(z_(o)){const l=o.type;if(Qm(l,Cs)){const f=SJ(l,o.props);i.push(f)}else n.push(o);if(Qm(l,hp)&&l!==hp&&o.props.id){const f=new l(o.props);s[f.id]=f}}else o&&n.push(o)}),Object.keys(s).length>0&&(Array.isArray(t)?t.forEach(o=>{s[o.id]=o}):t&&(s[t.id]=t),t=Object.values(s)),e=i.length>0?[...i,...e]:e,{layers:e,children:n,views:t}}function SJ(r,e){const t={},n=r.defaultProps||{};for(const i in e)n[i]!==e[i]&&(t[i]=e[i]);return new r(t)}const IJ=Bt.createContext();function BJ({children:r,deck:e,ContextProvider:t=IJ.Provider}){const{viewManager:n}=e||{};if(!n||!n.views.length)return[];const i={},s=n.views[0].id;for(const o of r){let l=s,f=o;z_(o)&&Qm(o.type,hp)&&(l=o.props.id||s,f=o.props.children);const A=n.getViewport(l),v=n.getViewState(l);if(A){v.padding=A.padding;const{x:T,y:I,width:F,height:N}=A;f=qD(f,{x:T,y:I,width:F,height:N,viewport:A,viewState:v}),i[l]||(i[l]={viewport:A,children:[]}),i[l].children.push(f)}}return Object.keys(i).map(o=>{const{viewport:l,children:f}=i[o],{x:A,y:v,width:T,height:I}=l,F={position:"absolute",left:A,top:v,width:T,height:I},N=`view-${o}`,U=Bt.createElement("div",{key:N,id:N,style:F},...f),$={deck:e,viewport:l,container:e.canvas.offsetParent,eventManager:e.eventManager,onViewStateChange:G=>{G.viewId=o,e._onViewStateChange(G)},widgets:[]},V=`view-${o}-context`;return Bt.createElement(t,{key:V,value:$},U)})}const PJ={mixBlendMode:null};function MJ({width:r,height:e,style:t}){const n={position:"absolute",zIndex:0,left:0,top:0,width:r,height:e},i={left:0,top:0};if(t)for(const s in t)s in PJ?i[s]=t[s]:n[s]=t[s];return{containerStyle:n,canvasStyle:i}}function RJ(r){return{get deck(){return r.deck},pickObject:e=>r.deck.pickObject(e),pickMultipleObjects:e=>r.deck.pickMultipleObjects(e),pickObjects:e=>r.deck.pickObjects(e)}}function JD(r){r.redrawReason&&(r.deck._drawLayers(r.redrawReason),r.redrawReason=null)}function OJ(r,e,t){const n=new e({...t,_customRender:t.deviceProps?.adapters?.[0]?.type==="webgpu"?void 0:i=>{r.redrawReason=i;const s=n.getViewports();r.lastRenderedViewports!==s?r.forceUpdate():JD(r)}});return n}function DJ(r,e){const[t,n]=Bt.useState(0),s=Bt.useRef({control:null,version:t,forceUpdate:()=>n(K=>K+1)}).current,o=Bt.useRef(null),l=Bt.useRef(null),f=Bt.useMemo(()=>CJ(r),[r.layers,r.views,r.children]);let A=!0;const v=K=>A&&r.viewState?(s.viewStateUpdateRequested=K,null):(s.viewStateUpdateRequested=null,r.onViewStateChange?.(K)),T=K=>{A?s.interactionStateUpdateRequested=K:(s.interactionStateUpdateRequested=null,r.onInteractionStateChange?.(K))},I=Bt.useMemo(()=>{const K={widgets:[],...r,style:null,width:"100%",height:"100%",parent:o.current,canvas:l.current,layers:f.layers,views:f.views,onViewStateChange:v,onInteractionStateChange:T};return delete K._customRender,s.deck&&s.deck.setProps(K),K},[r]);Bt.useEffect(()=>{const K=r.Deck||Lx;return s.deck=OJ(s,K,{...I,parent:o.current,canvas:l.current}),()=>s.deck?.finalize()},[]),xJ(()=>{JD(s);const{viewStateUpdateRequested:K,interactionStateUpdateRequested:se}=s;K&&v(K),se&&T(se)}),Bt.useImperativeHandle(e,()=>RJ(s),[]);const F=s.deck&&s.deck.isInitialized?s.deck.getViewports():void 0,{ContextProvider:N,width:U="100%",height:$="
2087100%",id:V,style:G}=r,{containerStyle:X,canvasStyle:ue}=Bt.useMemo(()=>MJ({width:U,height:$,style:G}),[U,$,G]);if(!s.viewStateUpdateRequested&&s.lastRenderedViewports===F||s.version!==t){s.lastRenderedViewports=F,s.version=t;const K=BJ({children:f.children,deck:s.deck,ContextProvider:N}),se=Bt.createElement("canvas",{key:"canvas",id:V||"deckgl-overlay",ref:l,style:ue});s.control=Bt.createElement("div",{id:`${V||"deckgl"}-wrapper`,ref:o,style:X},[se,K])}return A=!1,s.control}const FJ=Bt.forwardRef(DJ);const _S="\uFEFF";function LJ(r,e={},t=NJ){e=e||{};var n=e.dynamicTyping||!1;yl(n)&&(e.dynamicTypingFunction=n,n={}),e.dynamicTyping=n,e.transform=yl(e.transform)?e.transform:!1;var i=new t(e);return i.stream(r)}function kJ(r,e){var t=!1,n=!0,i=",",s=`\r 2088`,o='"',l=o+o,f=!1,A=null;T();var v=new RegExp(rg(o),"g");if(typeof r=="string"&&(r=JSON.parse(r)),Array.isArray(r)){if(!r.length||Array.isArray(r[0]))return I(null,r,f);if(typeof r[0]=="object")return I(A||Object.keys(r[0]),r,f)}else if(typeof r=="object")return typeof r.data=="string"&&(r.data=JSON.parse(r.data)),Array.isArray(r.data)&&(r.fields||(r.fields=r.meta&&r.meta.fields),r.fields||(r.fields=Array.isArray(r.data[0])?r.fields:Object.keys(r.data[0])),!Array.isArray(r.data[0])&&typeof r.data[0]!="object"&&(r.data=[r.data])),I(r.fields||[],r.data||[],f);throw new Error("Unable to serialize unrecognized input");function T(){if(typeof e=="object"){if(typeof e.delimiter=="string"&&!La.BAD_DELIMITERS.filter(function(U){return e.delimiter.indexOf(U)!==-1}).length&&(i=e.delimiter),(typeof e.quotes=="boolean"||Array.isArray(e.quotes))&&(t=e.quotes),(typeof e.skipEmptyLines=="boolean"||typeof e.skipEmptyLines=="string")&&(f=e.skipEmptyLines),typeof e.newline=="string"&&(s=e.newline),typeof e.quoteChar=="string"&&(o=e.quoteChar),typeof e.header=="boolean"&&(n=e.header),Array.isArray(e.columns)){if(e.columns.length===0)throw new Error("Option columns is empty");A=e.columns}e.escapeChar!==void 0&&(l=e.escapeChar+o)}}function I(U,$,V){var G="";typeof U=="string"&&(U=JSON.parse(U)),typeof $=="string"&&($=JSON.parse($));var X=Array.isArray(U)&&U.length>0,ue=!Array.isArray($[0]);if(X&&n){for(var K=0;K<U.length;K++)K>0&&(G+=i),G+=F(U[K],K);$.length>0&&(G+=s)}for(var se=0;se<$.length;se++){var Ee=X?U.length:$[se].length,Ue=!1,de=X?Object.keys($[se]).length===0:$[se].length===0;if(V&&!X&&(Ue=V==="greedy"?$[se].join("").trim()==="":$[se].length===1&&$[se][0].length===0),V==="greedy"&&X){for(var me=[],pe=0;pe<Ee;pe++){var W=ue?U[pe]:pe;me.push($[se][W])}Ue=me.join("").trim()===""}if(!Ue){for(var te=0;te<Ee;te++){te>0&&!de&&(G+=i);var Ce=X&&ue?U[te]:te;G+=F($[se][Ce],te)}se<$.length-1&&(!V||Ee>0&&!de)&&(G+=s)}}return G}function F(U,$){if(typeof U>"u"||U===null)return"";if(U.constructor===Date)return JSON.stringify(U).slice(1,25);U=U.toString().replace(v,l);var V=typeof t=="boolean"&&t||Array.isArray(t)&&t[$]||N(U,La.BAD_DELIMITERS)||U.indexOf(i)>-1||U.charAt(0)===" "||U.charAt(U.length-1)===" ";return V?o+U+o:U}function N(U,$){for(var V=0;V<$.length;V++)if(U.indexOf($[V])>-1)return!0;return!1}}let KD=class{_handle;_config;_finished=!1;_completed=!1;_input=null;_baseIndex=0;_partialLine="";_rowCount=0;_start=0;isFirstChunk=!0;_completeResults={data:[],errors:[],meta:{}};constructor(e){var t={...e};t.chunkSize=parseInt(t.chunkSize),!e.step&&!e.chunk&&(t.chunkSize=null),this._handle=new ZD(t),this._handle.streamer=this,this._config=t}parseChunk(e,t){if(this.isFirstChunk&&yl(this._config.beforeFirstChunk)){var n=this._config.beforeFirstChunk(e);n!==void 0&&(e=n)}this.isFirstChunk=!1;var i=this._partialLine+e;this._partialLine="";var s=this._handle.parse(i,this._baseIndex,!this._finished);if(!(this._handle.paused()||this._handle.aborted())){var o=s.meta.cursor;this._finished||(this._partialLine=i.substring(o-this._baseIndex),this._baseIndex=o),s&&s.data&&(this._rowCount+=s.data.length);var l=this._finished||this._config.preview&&this._rowCount>=this._config.preview;if(yl(this._config.chunk)&&!t){if(this._config.chunk(s,this._handle),this._handle.paused()||this._handle.aborted())return;s=void 0,this._completeResults=void 0}return!this._config.step&&!this._config.chunk&&(this._completeResults.data=this._completeResults.data.concat(s.data),this._completeResults.errors=this._completeResults.errors.concat(s.errors),this._completeResults.meta=s.meta),!this._completed&&l&&yl(this._config.complete)&&(!s||!s.meta.aborted)&&(this._config.complete(this._completeResults,this._input),this._completed=!0),s}}_sendError(e){yl(this._config.error)&&this._config.error(e)}};class NJ extends KD{remaining;constructor(e={}){super(e)}stream(e){return this.remaining=e,this._nextChunk()}_nextChunk(){if(!this._finished){var e=this._config.chunkSize,t=e?this.remaining.substr(0,e):this.remaining;return this.remaining=e?this.remaining.substr(e):"",this._finished=!this.remaining,this.parseChunk(t)}}}const UJ=/^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i,zJ=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/;class ZD{_config;_stepCounter=0;_rowCounter=0;_input;_parser;_paused=!1;_aborted=!1;_delimiterError=!1;_fields=[];_results={data:[],errors:[],meta:{}};constructor(e){if(yl(e.step)){var t=e.step;e.step=n=>{if(this._results=n,this.needsHeaderRow())this.processResults();else{if(this.processResults(),!this._results.data||this._results.data.length===0)return;this._stepCounter+=n.data.length,e.preview&&this._stepCounter>e.preview?this._parser.abort():t(this._results,this)}}}this._config=e}parse(e,t,n){var i=this._config.quoteChar||'"';if(this._config.newline||(this._config.newline=VJ(e,i)),this._delimiterError=!1,this._config.delimiter)yl(this._config.delimiter)&&(this._config.delimiter=this._config.delimiter(e),this._results.meta.delimiter=this._config.delimiter);else{var s=this.guessDelimiter(e,this._config.newline,this._config.skipEmptyLines,this._config.comments,this._config.delimitersToGuess);s.successful?this._config.delimiter=s.bestDelimiter:(this._delimiterError=!0,this._config.delimiter=La.DefaultDelimiter),this._results.meta.delimiter=this._config.delimiter}var o=YD(this._config);return this._config.preview&&this._config.header&&o.preview++,this._input=e,this._parser=new K1(o),this._results=this._parser.parse(this._input,t,n),this.processResults(),this._paused?{meta:{paused:!0}}:this._results||{meta:{paused:!1}}}paused(){return this._paused}pause(){this._paused=!0,this._parser.abort(),this._input=this._input.substr(this._parser.getCharIndex())}resume(){this._paused=!1,this.streamer.parseChunk(this._input,!0)}aborted(){return this._aborted}abort(){this._aborted=!0,this._parser.abort(),this._results.meta.aborted=!0,yl(this._config.complete)&&this._config.complete(this._results),this._input=""}testEmptyLine(e){return this._config.skipEmptyLines==="greedy"?e.join("").trim()==="":e.length===1&&e[0].length===0}processResults(){if(this._results&&this._delimiterError&&(this.addError("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+La.DefaultDelimiter+"'"),this._delimiterError=!1),this._config.skipEmptyLines)for(var e=0;e<this._results.data.length;e++)this.testEmptyLine(this._results.data[e])&&this._results.data.splice(e--,1);return this.needsHeaderRow()&&this.fillHeaderFields(),this.applyHeaderAndDynamicTypingAndTransformation()}needsHeaderRow(){return this._config.header&&this._fields.length===0}fillHeaderFields(){if(!this._results)return;const e=n=>{yl(this._config.transformHeader)&&(n=this._config.transformHeader(n)),this._fields.push(n)};if(Array.isArray(this._results.data[0])){for(var t=0;this.needsHeaderRow()&&t<this._results.data.length;t++)this._results.data[t].forEach(e);this._results.data.splice(0,1)}else this._results.data.forEach(e)}shouldApplyDynamicTyping(e){return this._config.dynamicTypingFunction&&this._config.dynamicTyping[e]===void 0&&(this._config.dynamicTyping[e]=this._config.dynamicTypingFunction(e)),(this._config.dynamicTyping[e]||this._config.dynamicTyping)===!0}parseDynamic(e,t){return this.shouldApplyDynamicTyping(e)?t==="true"||t==="TRUE"?!0:t==="false"||t==="FALSE"?!1:UJ.test(t)?parseFloat(t):zJ.test(t)?new Date(t):t===""?null:t:t}applyHeaderAndDynamicTypingAndTransformation(){if(!this._results||!this._results.data||!this._config.header&&!this._config.dynamicTyping&&!this._config.transform)return this._results;var e=1;return!this._results.data[0]||Array.isArray(this._results.data[0])?(this._results.data=this._results.data.map(this.processRow.bind(this)),e=this._results.data.length):this._results.data=this.processRow(this._results.data,0),this._config.header&&this._results.meta&&(this._results.meta.fields=this._fields),this._rowCounter+=e,this._results}processRow(e,t){var n=this._config.header?{}:[],i;for(i=0;i<e.length;i++){var s=i,o=e[i];this._config.header&&(s=i>=this._fields.length?"__parsed_extra":this._fields[i]),this._config.transform&&(o=this._config.transform(o,s)),o=this.parseDynamic(s,o),s==="__parsed_extra"?(n[s]=n[s]||[],n[s].push(o)):n[s]=o}return this._config.header&&(i>this._fields.length?this.addError("FieldMismatch","TooManyFields","Too many fields: expected "+this._fields.length+" fields but parsed "+i,this._rowCounter+t):i<this._fields.length&&this.addError("FieldMismatch","TooFewFields","Too few fields: expected "+this._fields.length+" fields but parsed "+i,this._rowCounter+t)),n}guessDelimiter(e,t,n,i,s){var o,l,f;s=s||[","," ","|",";",La.RECORD_SEP,La.UNIT_SEP];for(var A=0;A<s.length;A++){var v=s[A],T=0,I=0,F=0;f=void 0;for(var N=new K1({comments:i,delimiter:v,newline:t,preview:10}).parse(e),U=0;U<N.data.length;U++){if(n&&this.testEmptyLine(N.data[U])){F++;continue}var $=N.data[U].length;if(I+=$,typeof f>"u"){f=0;continue}else $>1&&(T+=Math.abs($-f),f=$)}N.data.length>0&&(I/=N.data.length-F),(typeof l>"u"||T>l)&&I>1.99&&(l=T,o=v)}return this._config.delimiter=o,{successful:!!o,bestDelimiter:o}}addError(e,t,n,i){this._results.errors.push({type:e,code:t,message:n,row:i})}}function VJ(r,e){r=r.substr(0,1024*1024);var t=new RegExp(rg(e)+"([^]*?)"+rg(e),"gm");r=r.replace(t,"");var n=r.split("\r"),i=r.split(` 2089`),s=i.length>1&&i[0].length<n[0].length;if(n.length===1||s)return` 2090`;for(var o=0,l=0;l<n.length;l++)n[l][0]===` 2091`&&o++;return o>=n.length/2?`\r 2092`:"\r"}function rg(r){return r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function K1(r){r=r||{};var e=r.delimiter,t=r.newline,n=r.comments,i=r.step,s=r.preview,o=r.fastMode,l;r.quoteChar===void 0?l='"':l=r.quoteChar;var f=l;if(r.escapeChar!==void 0&&(f=r.escapeChar),(typeof e!="string"||La.BAD_DELIMITERS.indexOf(e)>-1)&&(e=","),n===e)throw new Error("Comment character same as delimiter");
2092n===!0?n="#":(typeof n!="string"||La.BAD_DELIMITERS.indexOf(n)>-1)&&(n=!1),t!==` 2093`&&t!=="\r"&&t!==`\r 2094`&&(t=` 2095`);var A=0,v=!1;this.parse=function(T,I,F){if(typeof T!="string")throw new Error("Input must be a string");var N=T.length,U=e.length,$=t.length,V=n.length,G=yl(i);A=0;var X=[],ue=[],K=[],se=0;if(!T)return rt();if(o||o!==!1&&T.indexOf(l)===-1){for(var Ee=T.split(t),Ue=0;Ue<Ee.length;Ue++){const bt=Ee[Ue];if(A+=bt.length,Ue!==Ee.length-1)A+=t.length;else if(F)return rt();if(!(n&&bt.substr(0,V)===n)){if(G){if(X=[],De(bt.split(e)),ct(),v)return rt()}else De(bt.split(e));if(s&&Ue>=s)return X=X.slice(0,s),rt(!0)}}return rt()}for(var de=T.indexOf(e,A),me=T.indexOf(t,A),pe=new RegExp(rg(f)+rg(l),"g"),W;;){if(T[A]===l){for(W=A,A++;;){if(W=T.indexOf(l,W+1),W===-1)return F||ue.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:X.length,index:A}),Ze();if(W===N-1){var te=T.substring(A,W).replace(pe,l);return Ze(te)}if(l===f&&T[W+1]===f){W++;continue}if(!(l!==f&&W!==0&&T[W-1]===f)){var Ce=me===-1?de:Math.min(de,me),Qe=ze(Ce);if(T[W+1+Qe]===e){if(K.push(T.substring(A,W).replace(pe,l)),A=W+1+Qe+U,de=T.indexOf(e,A),me=T.indexOf(t,A),G&&(ct(),v))return rt();if(s&&X.length>=s)return rt(!0);break}var we=ze(me);if(T.substr(W+1+we,$)===t){if(K.push(T.substring(A,W).replace(pe,l)),tt(W+1+we+$),de=T.indexOf(e,A),G&&(ct(),v))return rt();if(s&&X.length>=s)return rt(!0);break}ue.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:X.length,index:A}),W++}}if(G&&(ct(),v))return rt();if(s&&X.length>=s)return rt(!0);continue}if(n&&K.length===0&&T.substr(A,V)===n){if(me===-1)return rt();A=me+$,me=T.indexOf(t,A),de=T.indexOf(e,A);continue}if(de!==-1&&(de<me||me===-1)){K.push(T.substring(A,de)),A=de+U,de=T.indexOf(e,A);continue}if(me!==-1){if(K.push(T.substring(A,me)),tt(me+$),G&&(ct(),v))return rt();if(s&&X.length>=s)return rt(!0);continue}break}return Ze();function De(bt){X.push(bt),se=A}function ze(bt){var It=0;if(bt!==-1){var st=T.substring(W+1,bt);st&&st.trim()===""&&(It=st.length)}return It}function Ze(bt){return F||(typeof bt>"u"&&(bt=T.substr(A)),K.push(bt),A=N,De(K),G&&ct()),rt()}function tt(bt){A=bt,De(K),K=[],me=T.indexOf(t,A)}function rt(bt,It){var st=It||!1;return{data:st?X[0]:X,errors:ue,meta:{delimiter:e,linebreak:t,aborted:v,truncated:!!bt,cursor:se+(I||0)}}}function ct(){i(rt(void 0,!0)),X=[],ue=[]}},this.abort=function(){v=!0},this.getCharIndex=function(){return A}}function YD(r){if(typeof r!="object"||r===null)return r;var e=Array.isArray(r)?[]:{};for(var t in r)e[t]=YD(r[t]);return e}function yl(r){return typeof r=="function"}const La={parse:LJ,unparse:kJ,RECORD_SEP:"�",UNIT_SEP:"�",BYTE_ORDER_MARK:_S,BAD_DELIMITERS:["\r",` 2096`,'"',_S],WORKERS_SUPPORTED:!1,NODE_STREAM_INPUT:1,LocalChunkSize:1024*1024*10,RemoteChunkSize:1024*1024*5,DefaultDelimiter:",",Parser:K1,ParserHandle:ZD,ChunkStreamer:KD},{ChunkStreamer:jJ}=La;class GJ extends jJ{textDecoder=new TextDecoder(this._config.encoding);constructor(e={}){super(e)}async stream(e){this._input=e;try{for await(const t of e)this.parseChunk(this.getStringChunk(t));this._finished=!0,this.parseChunk("")}catch(t){this._sendError(t)}}_nextChunk(){}getStringChunk(e){return typeof e=="string"?e:this.textDecoder.decode(e,{stream:!0})}}const HJ="4.3.3",Ux="object-row-table",zx={dataType:null,batchType:null,id:"csv",module:"csv",name:"CSV",version:HJ,extensions:["csv","tsv","dsv"],mimeTypes:["text/csv","text/tab-separated-values","text/dsv"],category:"table",parse:async(r,e)=>yS(new TextDecoder().decode(r),e),parseText:(r,e)=>yS(r,e),parseInBatches:WJ,options:{csv:{shape:Ux,optimizeMemoryUsage:!1,header:"auto",columnPrefix:"column",quoteChar:'"',escapeChar:'"',dynamicTyping:!0,comments:!1,skipEmptyLines:!0,delimitersToGuess:[","," ","|",";"]}}};async function yS(r,e){const t={...zx.options.csv,...e?.csv},n=$J(r),s=t.header==="auto"?QD(n):!!t.header,o={...t,header:s,download:!1,transformHeader:s?eF():void 0,error:T=>{throw new Error(T)}},l=La.parse(r,o),f=l.data,A=l.meta.fields||tF(t.columnPrefix,n.length),v=t.shape||Ux;switch(v){case"object-row-table":return{shape:"object-row-table",data:f.map(T=>Array.isArray(T)?E4(T,A):T)};case"array-row-table":return{shape:"array-row-table",data:f.map(T=>Array.isArray(T)?T:C4(T,A))};default:throw new Error(v)}}function WJ(r,e){e={...e},e.batchSize==="auto"&&(e.batchSize=4e3);const t={...zx.options.csv,...e?.csv},n=new FU;let i=!0,s=null,o=null,l=null;const f={...t,header:!1,download:!1,chunkSize:1024*1024*5,skipEmptyLines:!1,step(A){let v=A.data;if(t.skipEmptyLines&&v.flat().join("").trim()==="")return;const T=A.meta.cursor;if(i&&!s&&(t.header==="auto"?QD(v):!!t.header)){s=v.map(eF());return}i&&(i=!1,s||(s=tF(t.columnPrefix,v.length)),l=XJ(v,s)),t.optimizeMemoryUsage&&(v=JSON.parse(JSON.stringify(v)));const I=t.shape||Ux;o=o||new Lm(l,{shape:I,...e});try{o.addRow(v);const F=o&&o.getFullBatch({bytesUsed:T});F&&n.enqueue(F)}
2096catch(F){n.enqueue(F)}},complete(A){try{const v=A.meta.cursor,T=o&&o.getFinalBatch({bytesUsed:v});T&&n.enqueue(T)}catch(v){n.enqueue(v)}n.close()}};return La.parse(r,f,GJ),n}function QD(r){return r&&r.every(e=>typeof e=="string")}function $J(r){return La.parse(r,{dynamicTyping:!0,preview:1}).data[0]}function eF(){const r=new Set;return e=>{let t=e,n=1;for(;r.has(t);)t=`${e}.${n}`,n++;return r.add(t),t}}function tF(r,e=0){const t=[];for(let n=0;n<e;n++)t.push(`${r}${n+1}`);return t}function XJ(r,e){const t=e?{}:[];for(let n=0;n<r.length;n++){const i=e&&e[n]||n;switch(typeof r[n]){case"number":case"boolean":t[i]={name:String(i),index:n,type:Float32Array};break;case"string":default:t[i]={name:String(i),index:n,type:Array}}}return t}const qJ="4.3.3";async function rF(r,e,t,n){return n._parse(r,e,t,n)}function sh(r,e){if(!r)throw new Error("loader assertion failed.")}const nF=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),vS=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);vS&&parseFloat(vS[1]);function JJ(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.3"),globalThis._loadersgl_.version}const KJ=JJ();function ZJ(r,e){if(!r)throw new Error("loaders.gl assertion failed.")}const pg=typeof process!="object"||String(process)!=="[object process]"||process.browser,Vx=typeof importScripts=="function",bS=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);bS&&parseFloat(bS[1]);const Dv={};async function Fv(r,e=null,t={},n=null){return e&&(r=YJ(r,e,t,n)),Dv[r]=Dv[r]||QJ(r),await Dv[r]}function YJ(r,e,t={},n=null){if(!t.useLocalLibraries&&r.startsWith("http"))return r;n=n||r;const i=t.modules||{};return i[n]?i[n]:pg?t.CDN?(ZJ(t.CDN.startsWith("http")),`${t.CDN}/${e}@${KJ}/dist/libs/${n}`):Vx?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function QJ(r){if(r.endsWith("wasm"))return await tK(r);if(!pg)try{const{requireFromFile:t}=globalThis.loaders||{};return await t?.(r)}catch(t){return console.error(t),null}if(Vx)return importScripts(r);const e=await rK(r);return eK(e,r)}function eK(r,e){if(!pg){const{requireFromString:n}=globalThis.loaders||{};return n?.(r,e)}if(Vx)return eval.call(globalThis,r),null;const t=document.createElement("script");t.id=e;try{t.appendChild(document.createTextNode(r))}catch{t.text=r}return document.body.appendChild(t),null}async function tK(r){const{readFileAsArrayBuffer:e}=globalThis.loaders||{};return pg||!e||r.startsWith("http")?await(await fetch(r)).arrayBuffer():await e(r)}async function rK(r){const{readFileAsText:e}=globalThis.loaders||{};return pg||!e||r.startsWith("http")?await(await fetch(r)).text():await e(r)}function nK(r,e=5){return typeof r=="string"?r.slice(0,e):ArrayBuffer.isView(r)?xS(r.buffer,r.byteOffset,e):r instanceof ArrayBuffer?xS(r,0,e):""}function xS(r,e,t){if(r.byteLength<=e+t)return"";const n=new DataView(r);let i="";for(let s=0;s<t;s++)i+=String.fromCharCode(n.getUint8(e+s));return i}function iK(r){try{return JSON.parse(r)}catch{throw new Error(`Failed to parse JSON from data starting with "${nK(r)}"`)}}function iF(r,e,t){const n=t!==void 0?new Uint8Array(r).subarray(e,e+t):new Uint8Array(r).subarray(e);return new Uint8Array(n).buffer}function Ag(r,e){return sh(r>=0),sh(e>0),r+(e-1)&-4}function sK(r,e,t){let n;if(r instanceof ArrayBuffer)n=new Uint8Array(r);else{const i=r.byteOffset,s=r.byteLength;n=new Uint8Array(r.buffer||r.arrayBuffer,i,s)}return e.set(n,t),t+Ag(n.byteLength,4)}const oK=globalThis.loaders?.parseImageNode,Z1=typeof Image<"u",Y1=typeof ImageBitmap<"u",aK=!!oK,Q1=nF?!0:aK;function lK(r){switch(r){case"auto":return Y1||Z1||Q1;case"imagebitmap":return Y1;case"image":return Z1;case"data":return Q1;default:throw new Error(`@loaders.gl/images: image ${r} not supported in this environment`)}}function cK(){if(Y1)return"imagebitmap";if(Z1)return"image";if(Q1)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function uK(r){const e=fK(r);if(!e)throw new Error("Not an image");return e}function sF(r){switch(uK(r)){case"data":return r;case"image":case"imagebitmap":const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)throw new Error("getImageData");return e.width=r.width,e.height=r.height,t.drawImage(r,0,0),t.getImageData(0,0,r.width,r.height);default:throw new Error("getImageData")}}function fK(r){return typeof ImageBitmap<"u"&&r instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&r instanceof Image?"image":r&&typeof r=="object"&&r.data&&r.width&&r.height?"data":null}const hK=/^data:image\/svg\+xml/,dK=/\.svg((\?|#).*)?$/;function jx(r){return r&&(hK.test(r)||dK.test(r))}function pK(r,e){if(jx(e)){let n=new TextDecoder().decode(r);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(s){throw new Error(s.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return oF(r,e)}function oF(r,e){if(jx(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(r)])}
vendor: 23,833 bytes, line 2096
2096async function aF(r,e,t){const n=pK(r,t),i=self.URL||self.webkitURL,s=typeof n!="string"&&i.createObjectURL(n);try{return await AK(s||n,e)}finally{s&&i.revokeObjectURL(s)}}async function AK(r,e){const t=new Image;return t.src=r,e.image&&e.image.decode&&t.decode?(await t.decode(),t):await new Promise((n,i)=>{try{t.onload=()=>n(t),t.onerror=s=>{const o=s instanceof Error?s.message:"error";i(new Error(o))}}catch(s){i(s)}})}const gK={};let wS=!0;async function mK(r,e,t){let n;jx(t)?n=await aF(r,e,t):n=oF(r,t);const i=e&&e.imagebitmap;return await _K(n,i)}async function _K(r,e=null){if((yK(e)||!wS)&&(e=null),e)try{return await createImageBitmap(r,e)}catch(t){console.warn(t),wS=!1}return await createImageBitmap(r)}function yK(r){for(const e in r||gK)return!1;return!0}function vK(r){return!TK(r,"ftyp",4)||(r[8]&96)===0?null:bK(r)}function bK(r){switch(xK(r,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function xK(r,e,t){return String.fromCharCode(...r.slice(e,t))}function wK(r){return[...r].map(e=>e.charCodeAt(0))}function TK(r,e,t=0){const n=wK(e);for(let i=0;i<n.length;++i)if(n[i]!==r[i+t])return!1;return!0}const nc=!1,VA=!0;function Gx(r){const e=gg(r);return CK(e)||BK(e)||SK(e)||IK(e)||EK(e)}function EK(r){const e=new Uint8Array(r instanceof DataView?r.buffer:r),t=vK(e);return t?{mimeType:t.mimeType,width:0,height:0}:null}function CK(r){const e=gg(r);return e.byteLength>=24&&e.getUint32(0,nc)===2303741511?{mimeType:"image/png",width:e.getUint32(16,nc),height:e.getUint32(20,nc)}:null}function SK(r){const e=gg(r);return e.byteLength>=10&&e.getUint32(0,nc)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,VA),height:e.getUint16(8,VA)}:null}function IK(r){const e=gg(r);return e.byteLength>=14&&e.getUint16(0,nc)===16973&&e.getUint32(2,VA)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,VA),height:e.getUint32(22,VA)}:null}function BK(r){const e=gg(r);if(!(e.byteLength>=3&&e.getUint16(0,nc)===65496&&e.getUint8(2)===255))return null;const{tableMarkers:n,sofMarkers:i}=PK();let s=2;for(;s+9<e.byteLength;){const o=e.getUint16(s,nc);if(i.has(o))return{mimeType:"image/jpeg",height:e.getUint16(s+5,nc),width:e.getUint16(s+7,nc)};if(!n.has(o))return null;s+=2,s+=e.getUint16(s,nc)}return null}function PK(){const r=new Set([65499,65476,65484,65501,65534]);for(let t=65504;t<65520;++t)r.add(t);return{tableMarkers:r,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function gg(r){if(r instanceof DataView)return r;if(ArrayBuffer.isView(r))return new DataView(r.buffer);if(r instanceof ArrayBuffer)return new DataView(r);throw new Error("toDataView")}async function MK(r,e){const{mimeType:t}=Gx(r)||{},n=globalThis.loaders?.parseImageNode;return sh(n),await n(r,t)}async function RK(r,e,t){e=e||{};const i=(e.image||{}).type||"auto",{url:s}=t||{},o=OK(i);let l;switch(o){case"imagebitmap":l=await mK(r,e,s);break;case"image":l=await aF(r,e,s);break;case"data":l=await MK(r);break;default:sh(!1)}return i==="data"&&(l=sF(l)),l}function OK(r){switch(r){case"auto":case"data":return cK();default:return lK(r),r}}const DK=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],FK=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],LK={image:{type:"auto",decode:!0}},kK={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:qJ,mimeTypes:FK,extensions:DK,parse:RK,tests:[r=>!!Gx(new DataView(r))],options:LK},Lv={};function NK(r){if(Lv[r]===void 0){const e=nF?zK(r):UK(r);Lv[r]=e}return Lv[r]}function UK(r){const e=["image/png","image/jpeg","image/gif"],t=globalThis.loaders?.imageFormatsNode||e;return!!globalThis.loaders?.parseImageNode&&t.includes(r)}function zK(r){switch(r){case"image/avif":case"image/webp":return VK(r);default:return!0}}function VK(r){try{return document.createElement("canvas").toDataURL(r).indexOf(`data:${r}`)===0}catch{return!1}}function da(r,e){if(!r)throw new Error(e||"assert failed: gltf")}const lF={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},cF={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},TS=["SCALAR","VEC2","VEC3","VEC4"],jK=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],GK=new Map(jK),HK={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},WK={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},$K={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function uF(r){return TS[r-1]||TS[0]}function V_(r){const e=GK.get(r.constructor);if(!e)throw new Error("Illegal typed array");return e}function Hx(r,e){const t=$K[r.componentType],n=HK[r.type],i=WK[r.componentType],s=r.count*n,o=r.count*n*i;da(o>=0&&o<=e.byteLength);const l=cF[r.componentType],f=lF[r.type];return{ArrayType:t,length:s,byteLength:o,componentByteSize:l,numberOfComponentsInElement:f}}function XK(r,e,t){const n=r.bufferViews[t];da(n);const i=n.buffer,s=e[i];da(s);const o=(n.byteOffset||0)+s.byteOffset;return new Uint8Array(s.arrayBuffer,o,n.byteLength)}function qK(r,e,t){const n=typeof t=="number"?r.accessors?.[t]:t;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(t)}`);const i=r.bufferViews?.[n.bufferView||0];if(!i)throw new Error(`No gltf buffer view for accessor ${i}`);const{arrayBuffer:s,byteOffset:o}=e[i.buffer],l=(o||0)+(n.byteOffset||0)+(i.byteOffset||0),{ArrayType:f,length:A,componentByteSize:v,numberOfComponentsInElement:T}=Hx(n,i),I=v*T,F=i.byteStride||I;if(typeof i.byteStride>"u"||i.byteStride===I)return new f(s,l,A);const N=new f(A);for(let U=0;U<n.count;U++){const $=new f(s,l+U*F,T);N.set($,U*T)}return N}function JK(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}let ks=class{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||JK(),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){const t=this.getUsedExtensions().find(i=>i===e),n=this.getRequiredExtensions().find(i=>i===e);return typeof t=="string"||typeof n=="string"}getExtension(e){const t=this.getUsedExtensions().find(i=>i===e),n=this.json.extensions||{};return t?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,t){return(e.extensions||{})[t]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,t){if(typeof t=="object")return t;const n=this.json[e]&&this.json[e][t];if(!n)throw new Error(`glTF file error: Could not find ${e}[${t}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);const t=e.buffer,n=this.gltf.buffers[t];da(n);const i=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,i,e.byteLength)}getTypedArrayForAccessor(e){const t=this.getAccessor(e);return qK(this.gltf.json,this.gltf.buffers,t)}getTypedArrayForImageData(e){e=this.getAccessor(e);const t=this.getBufferView(e.bufferView),i=this.getBuffer(t.buffer).data,s=t.byteOffset||0;return new Uint8Array(i,s,t.byteLength)}addApplicationData(e,t){return this.json[e]=t,this}addExtraData(e,t){return this.json.extras=this.json.extras||{},this.json.extras[e]=t,this}addObjectExtension(e,t,n){return e.extensions=e.extensions||{},e.extensions[t]=n,this.registerUsedExtension(t),this}setObjectExtension(e,t,n){const i=e.extensions||{};i[t]=n}removeObjectExtension(e,t){const n=e?.extensions||{};if(n[t]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];const i=this.json.extensionsRemoved;i.includes(t)||i.push(t)}delete n[t]}addExtension(e,t={}){return da(t),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=t,this.registerUsedExtension(e),t}addRequiredExtension(e,t={}){return da(t),this.addExtension(e,t),this.registerRequiredExtension(e),t}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(t=>t===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(t=>t===e)||this.json.extensionsRequired.push(e)}removeExtension(e){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];const t=this.json.extensionsRemoved;t.includes(e)||t.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){const{nodeIndices:t}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:t}),this.json.scenes.length-1}addNode(e){const{meshIndex:t,matrix:n}=e;this.json.nodes=this.json.nodes||[];const i={mesh:t};return n&&(i.matrix=n),this.json.nodes.push(i),this.json.nodes.length-1}addMesh(e){const{attributes:t,indices:n,material:i,mode:s=4}=e,l={primitives:[{attributes:this._addAttributes(t),mode:s}]};if(n){const f=this._addIndices(n);l.primitives[0].indices=f}return Number.isFinite(i)&&(l.primitives[0].material=i),this.json.meshes=this.json.meshes||[],this.json.meshes.push(l),this.json.meshes.length-1}addPointCloud(e){const n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,t){const n=Gx(e),i=t||n?.mimeType,o={bufferView:this.addBufferView(e),mimeType:i};return this.json.images=this.json.images||[],this.json.images.push(o),this.json.images.length-1}addBufferView(e,t=0,n=this.byteLength){const i=e.byteLength;da(Number.isFinite(i)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);const s={buffer:t,byteOffset:n,byteLength:i};return this.byteLength+=Ag(i,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(s),this.json.bufferViews.length-1}addAccessor(e,t){const n={bufferView:e,type:uF(t.size),componentType:t.componentType,count:t.count,max:t.max,min:t.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,t={size:3}){const n=this.addBufferView(e);let i={min:t.min,max:t.max};(!i.min||!i.max)&&(i=this._getAccessorMinMax(e,t.size));const s={size:t.size,componentType:V_(e),count:Math.round(e.length/t.size),min:i.min,max:i.max};return this.addAccessor(n,Object.assign(s,t))}addTexture(e){const{imageIndex:t}=e,n={source:t};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){const e=this.byteLength,t=new ArrayBuffer(e),n=new Uint8Array(t);let i=0;for(const s of this.sourceBuffers||[])i=sK(s,n,i);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=t,this.sourceBuffers=[t],this.gltf.buffers=[{arrayBuffer:t,byteOffset:0,byteLength:t.byteLength}]}_removeStringFromArray(e,t){let n=!0;for(;n;){const i=e.indexOf(t);i>-1?e.splice(i,1):n=!1}}_addAttributes(e={}){const t={};for(const n in e){const i=e[n],s=this._getGltfAttributeName(n),o=this.addBinaryBuffer(i.value,i);t[s]=o}return t}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,t){const n={min:null,max:null};if(e.length<t)return n;n.min=[],n.max=[];const i=e.subarray(0,t);for(const s of i)n.min.push(s),n.max.push(s);for(let s=t;s<e.length;s+=t)for(let o=0;o<t;o++)n.min[0+o]=Math.min(n.min[0+o],e[s+o]),n.max[0+o]=Math.max(n.max[0+o],e[s+o]);return n}};function ES(r){return(r%1+1)%1}const fF={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},KK={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},hF={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function Wx(r,e){return hF[e]*fF[r]}function j_(r,e,t,n){if(t!=="UINT8"&&t!=="UINT16"&&t!=="UINT32"&&t!=="UINT64")return null;const i=r.getTypedArrayForBufferView(e),s=G_(i,"SCALAR",t,n+1);return s instanceof BigInt64Array||s instanceof BigUint64Array?null:s}function G_(r,e,t,n=1){const i=fF[e],s=KK[t],o=hF[t],l=n*i,f=l*o;let A=r.buffer,v=r.byteOffset;return v%o!==0&&(A=new Uint8Array(A).slice(v,v+f).buffer,v=0),new s(A,v,l)}function $x(r,e,t){const n=`TEXCOORD_${e.texCoord||0}`,i=t.attributes[n],s=r.getTypedArrayForAccessor(i),o=r.gltf.json,l=e.index,f=o.textures?.[l]?.source;if(typeof f<"u"){const A=o.images?.[f]?.mimeType,v=r.gltf.images?.[f];if(v&&typeof v.width<"u"){const T=[];for(let I=0;I<s.length;I+=2){const F=ZK(v,A,s,I,e.channels);T.push(F)}return T}}return[]}function dF(r,e,t,n,i){if(!t?.length)return;const s=[];for(const v of t){let T=n.findIndex(I=>I===v);T===-1&&(T=n.push(v)-1),s.push(T)}const o=new Uint32Array(s),l=r.gltf.buffers.push({arrayBuffer:o.buffer,byteOffset:o.byteOffset,byteLength:o.byteLength})-1,f=r.addBufferView(o,l,0),A=r.addAccessor(f,{size:1,componentType:V_(o),count:o.length});i.attributes[e]=A}function ZK(r,e,t,n,i=[0]){const s={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},o=t[n],l=t[n+1];let f=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(f=4);const A=YK(o,l,r,f);let v=0;for(const T of i){const I=typeof T=="number"?Object.values(s)[T]:s[T],F=A+I.offset,N=sF(r);if(N.data.length<=F)throw new Error(`${N.data.length} <= ${F}`);const U=N.data[F];v|=U<<I.shift}return v}function YK(r,e,t,n=1){const i=t.width,s=ES(r)*(i-1),o=Math.round(s),l=t.height,f=ES(e)*(l-1),A=Math.round(f),v=t.components?t.components:n;return(A*i+o)*v}function pF(r,e,t,n,i){const s=[];for(let o=0;o<e;o++){const l=t[o],f=t[o+1]-t[o];if(f+l>n)break;const A=l/i,v=f/i;s.push(r.slice(A,A+v))}return s}function AF(r,e,t){const n=[];for(let i=0;i<e;i++){const s=i*t;n.push(r.slice(s,s+t))}return n}function gF(r,e,t,n){if(t)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){const i=[],s=new TextDecoder("utf8");let o=0;for(let l=0;l<r;l++){const f=n[l+1]-n[l];if(f+o<=e.length){const A=e.subarray(o,f+o),v=s.decode(A);i.push(v),o+=f}}return i}return[]}const tp="EXT_mesh_features",QK=tp;async function eZ(r,e){const t=new ks(r);rZ(t,e)}function tZ(r,e){const t=new ks(r);return iZ(t),t.createBinaryChunk(),t.gltf}function rZ(r,e){const t=r.gltf.json;if(t.meshes)for(const n of t.meshes)for(const i of n.primitives)nZ(r,i,e)}function nZ(r,e,t){if(!t?.gltf?.loadBuffers)return;const i=e.extensions?.[tp]?.featureIds;if(i)for(const s of i){let o;if(typeof s.attribute<"u"){const l=`_FEATURE_ID_${s.attribute}`,f=e.attributes[l];o=r.getTypedArrayForAccessor(f)}else typeof s.texture<"u"&&t?.gltf?.loadImages?o=$x(r,s.texture,e):o=[];s.data=o}}function iZ(r,e){const t=r.gltf.json.meshes;if(t)for(const n of t)for(const i of n.primitives)oZ(r,i)}function sZ(r,e,t,n){e.extensions||(e.extensions={});let i=e.extensions[tp];i||(i={featureIds:[]},e.extensions[tp]=i);const{featureIds:s}=i,o={featureCount:t.length,propertyTable:n,data:t};s.push(o),r.addObjectExtension(e,tp,i)}function oZ(r,e){const t=e.extensions?.[tp];if(!t)return;const n=t.featureIds;n.forEach((i,s)=>{if(i.data){const{accessorKey:o,index:l}=aZ(e.attributes),f=new Uint32Array(i.data);n[s]={featureCount:f.length,propertyTable:i.propertyTable,attribute:l},r.gltf.buffers.push({arrayBuffer:f.buffer,byteOffset:f.byteOffset,byteLength:f.byteLength});const A=r.addBufferView(f),v=r.addAccessor(A,{size:1,componentType:V_(f),count:f.length});e.attributes[o]=v}})}function aZ(r){const e="_FEATURE_ID_",t=Object.keys(r).filter(s=>s.indexOf(e)===0);let n=-1;for(const s of t){const o=Number(s.substring(e.length));o>n&&(n=o)}return n++,{accessorKey:`${e}${n}`,index:n}}const lZ=Object.freeze(Object.defineProperty({__proto__:null,createExtMeshFeatures:sZ,decode:eZ,encode:tZ,name:QK},Symbol.toStringTag,{value:"Module"})),pp="EXT_structural_metadata",cZ=pp;async function uZ(r,e){const t=new ks(r);hZ(t,e)}function fZ(r,e){const t=new ks(r);return IZ(t),t.createBinaryChunk(),t.gltf}function hZ(r,e){if(!e.gltf?.loadBuffers)return;const t=r.getExtension(pp);t&&(e.gltf?.loadImages&&dZ(r,t),pZ(r,t))}function dZ(r,e){const t=e.propertyTextures,n=r.gltf.json;if(t&&n.meshes)for(const i of n.meshes)for(const s of i.primitives)gZ(r,t,s,e)}function pZ(r,e){const t=e.schema;if(!t)return;const n=t.classes,i=e.propertyTables;if(n&&i)for(const s in n){const o=AZ(i,s);o&&_Z(r,t,o)}}function AZ(r,e){for(const t of r)if(t.class===e)return t;return null}function gZ(r,e,t,n){if(!e)return;const s=t.extensions?.[pp]?.propertyTextures;if(s)for(const o of s){const l=e[o];mZ(r,l,t,n)}}function mZ(r,e,t,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);const i=e.class;for(const s in e.properties){const o=`${i}_${s}`,l=e.properties?.[s];if(!l)continue;l.data||(l.data=[]);const f=l.data,A=$x(r,l,t);A!==null&&(dF(r,o,A,f,t),l.data=f,n.dataAttributeNames.push(o))}}function _Z(r,e,t){const n=e.classes?.[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${t.class}`);const i=t.count;for(const s in n.properties){const o=n.properties[s],l=t.properties?.[s];if(l){const f=yZ(r,e,o,i,l);l.data=f}}}function yZ(r,e,t,n,i){let s=[];const o=i.values,l=r.getTypedArrayForBufferView(o),f=vZ(r,t,i,n),A=bZ(r,i,n);switch(t.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{s=xZ(t,n,l,f);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${t.type}`);case"STRING":{s=gF(n,l,f,A);break}case"ENUM":{s=wZ(e,t,n,l,f);break}default:throw new Error(`Unknown classProperty type ${t.type}`)}return s}function vZ(r,e,t,n){return e.array&&typeof e.count>"u"&&typeof t.arrayOffsets<"u"?j_(r,t.arrayOffsets,t.arrayOffsetType||"UINT32",n):null}function bZ(r,e,t){return typeof e.stringOffsets<"u"?j_(r,e.stringOffsets,e.stringOffsetType||"UINT32",t):null}function xZ(r,e,t,n){const i=r.array,s=r.count,o=Wx(r.type,r.componentType),l=t.byteLength/o;let f;return r.componentType?f=G_(t,r.type,r.componentType,l):f=t,i?n?pF(f,e,n,t.length,o):s?AF(f,e,s):[]:f}function wZ(r,e,t,n,i){const s=e.enumType;if(!s)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");const o=r.enums?.[s];if(!o)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${s}`);const l=o.valueType||"UINT16",f=Wx(e.type,l),A=n.byteLength/f;let v=G_(n,e.type,l,A);if(v||(v=n),e.array){if(i)return TZ({valuesData:v,numberOfElements:t,arrayOffsets:i,valuesDataBytesLength:n.length,elementSize:f,enumEntry:o});const T=e.count;return T?EZ(v,t,T,o):[]}return Xx(v,0,t,o)}function TZ(r){const{valuesData:e,numberOfElements:t,arrayOffsets:n,valuesDataBytesLength:i,elementSize:s,enumEntry:o}=r,l=[];for(let f=0;f<t;f++){const A=n[f],v=n[f+1]-n[f];if(v+A>i)break;const T=A/s,I=v/s,F=Xx(e,T,I,o);l.push(F)}return l}function EZ(r,e,t,n){const i=[];for(let s=0;s<e;s++){const o=t*s,l=Xx(r,o,t,n);i.push(l)}return i}function Xx(r,e,t,n){const i=[];for(let s=0;s<t;s++)if(r instanceof BigInt64Array||r instanceof BigUint64Array)i.push("");else{const o=r[e+s],l=CZ(n,o);l?i.push(l.name):i.push("")}return i}function CZ(r,e){for(const t of r.values)if(t.value===e)return t;return null}const SZ="schemaClassId";function IZ(r,e){const t=r.getExtension(pp);if(t&&t.propertyTables)for(const n of t.propertyTables){const i=n.class,s=t.schema?.classes?.[i];n.properties&&s&&BZ(n,s,r)}}function BZ(r,e,t){for(const n in r.properties){const i=r.properties[n].data;if(i){const s=e.properties[n];if(s){const o=OZ(i,s,t);r.properties[n]=o}}}}function PZ(r,e,t=SZ){let n=r.getExtension(pp);n||(n=r.addExtension(pp)),n.schema=MZ(e,t,n.schema);const i=RZ(e,t,n.schema);return n.propertyTables||(n.propertyTables=[]),n.propertyTables.push(i)-1}function MZ(r,e,t){const n=t??{id:"schema_id"},i={properties:{}};for(const s of r){const o={type:s.elementType,componentType:s.componentType};i.properties[s.name]=o}return n.classes={},n.classes[e]=i,n}function RZ(r,e,t){const n={class:e,count:0};let i=0;const s=t.classes?.[e];for(const o of r){if(i===0&&(i=o.values.length),i!==o.values.length&&o.values.length)throw new Error("Illegal values in attributes");s?.properties[o.name]&&(n.properties||(n.properties={}),n.properties[o.name]={values:0,data:o.values})}return n.count=i,n}function OZ(r,e,t){const n={values:0};if(e.type==="STRING"){const{stringData:i,stringOffsets:s}=LZ(r);n.stringOffsets=kv(s,t),n.values=kv(i,t)}else if(e.type==="SCALAR"&&e.componentType){const i=FZ(r,e.componentType);n.values=kv(i,t)}return n}const DZ={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:Int32Array,UINT64:Uint32Array,FLOAT32:Float32Array,FLOAT64:Float64Array};function FZ(r,e){const t=[];for(const i of r)t.push(Number(i));const n=DZ[e];if(!n)throw new Error("Illegal component type");return new n(t)}function LZ(r){const e=new TextEncoder,t=[];let n=0;for(const f of r){const A=e.encode(f);n+=A.length,t.push(A)}const i=new Uint8Array(n),s=[];let o=0;for(const f of t)i.set(f,o),s.push(o),o+=f.length;s.push(o);const l=new Uint32Array(s);return{stringData:i,stringOffsets:l}}function kv(r,e){return e.gltf.buffers.push({arrayBuffer:r.buffer,byteOffset:r.byteOffset,byteLength:r.byteLength}),e.addBufferView(r)}const kZ=Object.freeze(Object.defineProperty({__proto__:null,createExtStructuralMetadata:PZ,decode:uZ,encode:fZ,name:cZ},Symbol.toStringTag,{value:"Module"})),mF="EXT_feature_metadata",NZ=mF;async function UZ(r,e){const t=new ks(r);zZ(t,e)}function zZ(r,e){if(!e.gltf?.loadBuffers)return;const t=r.getExtension(mF);t&&(e.gltf?.loadImages&&VZ(r,t),jZ(r,t))}function VZ(r,e){const t=e.schema;if(!t)return;const n=t.classes,{featureTextures:i}=e;if(n&&i)for(const s in n){const o=n[s],l=HZ(i,s);l&&$Z(r,l,o)}}function jZ(r,e){const t=e.schema;if(!t)return;const n=t.classes,i=e.featureTables;if(n&&i)for(const s in n){const o=GZ(i,s);o&&WZ(r,t,o)}}function GZ(r,e){for(const t in r){const n=r[t];if(n.class===e)return n}return null}function HZ(r,e){for(const t in r){const n=r[t];if(n.class===e)return n}return null}function WZ(r,e,t){if(!t.class)return;const n=e.classes?.[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with
2096name ${t.class}`);const i=t.count;for(const s in n.properties){const o=n.properties[s],l=t.properties?.[s];if(l){const f=XZ(r,e,o,i,l);l.data=f}}}function $Z(r,e,t){const n=e.class;for(const i in t.properties){const s=e?.properties?.[i];if(s){const o=YZ(r,s,n);s.data=o}}}function XZ(r,e,t,n,i){let s=[];const o=i.bufferView,l=r.getTypedArrayForBufferView(o),f=qZ(r,t,i,n),A=JZ(r,t,i,n);return t.type==="STRING"||t.componentType==="STRING"?s=gF(n,l,f,A):KZ(t)&&(s=ZZ(t,n,l,f)),s}function qZ(r,e,t,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof t.arrayOffsetBufferView<"u"?j_(r,t.arrayOffsetBufferView,t.offsetType||"UINT32",n):null}function JZ(r,e,t,n){return typeof t.stringOffsetBufferView<"u"?j_(r,t.stringOffsetBufferView,t.offsetType||"UINT32",n):null}function KZ(r){const e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(r.type)||typeof r.componentType<"u"&&e.includes(r.componentType)}function ZZ(r,e,t,n){const i=r.type==="ARRAY",s=r.componentCount,o="SCALAR",l=r.componentType||r.type,f=Wx(o,l),A=t.byteLength/f,v=G_(t,o,l,A);return i?n?pF(v,e,n,t.length,f):s?AF(v,e,s):[]:v}function YZ(r,e,t){const n=r.gltf.json;if(!n.meshes)return[];const i=[];for(const s of n.meshes)for(const o of s.primitives)QZ(r,t,e,i,o);return i}function QZ(r,e,t,n,i){const s={channels:t.channels,...t.texture},o=$x(r,s,i);o&&dF(r,e,o,n,i)}const eY=Object.freeze(Object.defineProperty({__proto__:null,decode:UZ,name:NZ},Symbol.toStringTag,{value:"Module"})),tY="4.3.3",rY="4.3.3";function nY(r){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,r)}function iY(r){return globalThis.loaders?.modules?.[r]||null}function sY(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.3.3"),globalThis._loadersgl_.version}const oY=sY();function aY(r,e){if(!r)throw new Error("loaders.gl assertion failed.")}const mg=typeof process!="object"||String(process)!=="[object process]"||process.browser,qx=typeof importScripts=="function",CS=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);CS&&parseFloat(CS[1]);const Nv={};async function e_(r,e=null,t={},n=null){return e&&(r=lY(r,e,t,n)),Nv[r]=Nv[r]||cY(r),await Nv[r]}function lY(r,e,t={},n=null){if(!t.useLocalLibraries&&r.startsWith("http"))return r;n=n||r;const i=t.modules||{};return i[n]?i[n]:mg?t.CDN?(aY(t.CDN.startsWith("http")),`${t.CDN}/${e}@${oY}/dist/libs/${n}`):qx?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function cY(r){if(r.endsWith("wasm"))return await fY(r);if(!mg)try{const{requireFromFile:t}=globalThis.loaders||{};return await t?.(r)}catch(t){return console.error(t),null}if(qx)return importScripts(r);const e=await hY(r);return uY(e,r)}function uY(r,e){if(!mg){const{requireFromString:n}=globalThis.loaders||{};return n?.(r,e)}if(qx)return eval.call(globalThis,r),null;const t=document.createElement("script");t.id=e;try{t.appendChild(document.createTextNode(r))}catch{t.text=r}return document.body.appendChild(t),null}async function fY(r){const{readFileAsArrayBuffer:e}=globalThis.loaders||{};return mg||!e||r.startsWith("http")?await(await fetch(r)).arrayBuffer():await e(r)}async function hY(r){const{readFileAsText:e}=globalThis.loaders||{};return mg||!e||r.startsWith("http")?await(await fetch(r)).text():await e(r)}const t_={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"};let SS;async function IS(r){nY(r.modules);const e=iY("basis");return e||(SS||=dY(r),await SS)}async function dY(r){let e=null,t=null;return[e,t]=await Promise.all([await e_(t_.TRANSCODER,"textures",r),await e_(t_.TRANSCODER_WASM,"textures",r)]),e=e||globalThis.BASIS,await pY(e,t)}function pY(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(t).then(i=>{const{BasisFile:s,initializeBasis:o}=i;o(),n({BasisFile:s})})})}let Uv;async function BS(r){const e=r.modules||{};return e.basisEncoder?e.basisEncoder:(Uv=Uv||AY(r),await Uv)}async function AY(r){let e=null,t=null;
vendor: 6,514 bytes, line 2096
2096return[e,t]=await Promise.all([await e_(t_.ENCODER,"textures",r),await e_(t_.ENCODER_WASM,"textures",r)]),e=e||globalThis.BASIS,await gY(e,t)}function gY(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(t).then(i=>{const{BasisFile:s,KTX2File:o,initializeBasis:l,BasisEncoder:f}=i;l(),n({BasisFile:s,KTX2File:o,BasisEncoder:f})})})}const pd={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_ASTC_4X4_KHR:37808},mY=["","WEBKIT_","MOZ_"],PS={WEBGL_compressed_texture_s3tc:"dxt",WEBGL_compressed_texture_s3tc_srgb:"dxt-srgb",WEBGL_compressed_texture_etc1:"etc1",WEBGL_compressed_texture_etc:"etc2",WEBGL_compressed_texture_pvrtc:"pvrtc",WEBGL_compressed_texture_atc:"atc",WEBGL_compressed_texture_astc:"astc",EXT_texture_compression_rgtc:"rgtc"};let I0=null;function _Y(r){if(!I0){r=r||yY()||void 0,I0=new Set;for(const e of mY)for(const t in PS)if(r&&r.getExtension(`${e}${t}`)){const n=PS[t];I0.add(n)}}return I0}function yY(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}const la=[171,75,84,88,32,50,48,187,13,10,26,10];function vY(r){const e=new Uint8Array(r);return!(e.byteLength<la.length||e[0]!==la[0]||e[1]!==la[1]||e[2]!==la[2]||e[3]!==la[3]||e[4]!==la[4]||e[5]!==la[5]||e[6]!==la[6]||e[7]!==la[7]||e[8]!==la[8]||e[9]!==la[9]||e[10]!==la[10]||e[11]!==la[11])}const bY={etc1:{basisFormat:0,compressed:!0,format:pd.COMPRESSED_RGB_ETC1_WEBGL},etc2:{basisFormat:1,compressed:!0},bc1:{basisFormat:2,compressed:!0,format:pd.COMPRESSED_RGB_S3TC_DXT1_EXT},bc3:{basisFormat:3,compressed:!0,format:pd.COMPRESSED_RGBA_S3TC_DXT5_EXT},bc4:{basisFormat:4,compressed:!0},bc5:{basisFormat:5,compressed:!0},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0},"bc7-m5":{basisFormat:7,compressed:!0},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:pd.COMPRESSED_RGB_PVRTC_4BPPV1_IMG},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:pd.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG},"astc-4x4":{basisFormat:10,compressed:!0,format:pd.COMPRESSED_RGBA_ASTC_4X4_KHR},"atc-rgb":{basisFormat:11,compressed:!0},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0},rgba32:{basisFormat:13,compressed:!1},rgb565:{basisFormat:14,compressed:!1},bgr565:{basisFormat:15,compressed:!1},rgba4444:{basisFormat:16,compressed:!1}};async function xY(r,e){if(e.basis.containerFormat==="auto"){if(vY(r)){const n=await BS(e);return MS(n.KTX2File,r,e)}const{BasisFile:t}=await IS(e);return zv(t,r,e)}switch(e.basis.module){case"encoder":const t=await BS(e);switch(e.basis.containerFormat){case"ktx2":return MS(t.KTX2File,r,e);case"basis":default:return zv(t.BasisFile,r,e)}case"transcoder":default:const{BasisFile:n}=await IS(e);return zv(n,r,e)}}function zv(r,e,t){const n=new r(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");const i=n.getNumImages(),s=[];for(let o=0;o<i;o++){const l=n.getNumLevels(o),f=[];for(let A=0;A<l;A++)f.push(wY(n,o,A,t));s.push(f)}return s}finally{n.close(),n.delete()}}function wY(r,e,t,n){const i=r.getImageWidth(e,t),s=r.getImageHeight(e,t),o=r.getHasAlpha(),{compressed:l,format:f,basisFormat:A}=_F(n,o),v=r.getImageTranscodedSizeInBytes(e,t,A),T=new Uint8Array(v);if(!r.transcodeImage(T,e,t,A,0,0))throw new Error("failed to start Basis transcoding");return{width:i,height:s,data:T,compressed:l,format:f,hasAlpha:o}}function MS(r,e,t){const n=new r(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");const i=n.getLevels(),s=[];for(let o=0;o<i;o++)s.push(TY(n,o,t));return[s]}finally{n.close(),n.delete()}}function TY(r,e,t){const{alphaFlag:n,height:i,width:s}=r.getImageLevelInfo(e,0,0),{compressed:o,format:l,basisFormat:f}=_F(t,n),A=r.getImageTranscodedSizeInBytes(e,0,0,f),v=new Uint8Array(A);if(!r.transcodeImage(v,e,0,0,f,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{width:s,height:i,data:v,compressed:o,levelSize:A,hasAlpha:n,format:l}}function _F(r,e){let t=r&&r.basis&&r.basis.format;return t==="auto"&&(t=yF()),typeof t=="object"&&(t=e?t.alpha:t.noAlpha),t=t.toLowerCase(),bY[t]}function yF(){const r=_Y();return r.has("astc")?"astc-4x4":r.has("dxt")?{alpha:"bc3",noAlpha:"bc1"}:r.has("pvrtc")?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:r.has("etc1")?"etc1":r.has("etc2")?"etc2":"rgb565"}const EY={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:rY,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",libraryPath:"libs/",containerFormat:"auto",module:"transcoder"}}},CY={...EY,parse:xY},Ap=!0,RS=1735152710,Jx=12,r_=8,SY=1313821514,IY=5130562,BY=0,PY=0,MY=1;function RY(r,e=0){return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}function OY(r,e=0,t={}){const n=new DataView(r),{magic:i=RS}=t,s=n.getUint32(e,!1);return s===i||s===RS}function DY(r,e,t=0,n={}){const i=new DataView(e),s=RY(i,t+0),o=i.getUint32(t+4,Ap),l=i.getUint32(t+8,Ap);switch(Object.assign(r,{header:{byteOffset:t,byteLength:l,hasBinChunk:!1},type:s,version:o,json:{},binChunks:[]}),t+=Jx,r.version){case 1:return FY(r,i,t);case 2:return LY(r,i,t,n={});default:throw new Error(`Invalid GLB version ${r.version}. Only supports version 1 and 2.`)}}function FY(r,e,t){sh(r.header.byteLength>Jx+r_);const n=e.getUint32(t+0,Ap),i=e.getUint32(t+4,Ap);return t+=r_,sh(i===BY),e2(r,e,t,n),t+=n,t+=t2(r,e,t,r.header.byteLength),t}function LY(r,e,t,n){return sh(r.header.byteLength>Jx+r_),kY(r,e,t,n),t+r.header.byteLength}function kY(r,e,t,n){for(;t+8<=r.header.byteLength;){const i=e.getUint32(t+0,Ap),s=e.getUint32(t+4,Ap);switch(t+=r_,s){case SY:e2(r,e,t,i);break;case IY:t2(r,e,t,i);break;case PY:n.strict||e2(r,e,t,i);break;case MY:n.strict||t2(r,e,t,i);break}t+=Ag(i,4)}return t}function e2(r,e,t,n){const i=new Uint8Array(e.buffer,t,n),o=new TextDecoder("utf8").decode(i);return r.json=JSON.parse(o),Ag(n,4)}function t2(r,e,t,n){return r.header.hasBinChunk=!0,r.binChunks.push({byteOffset:t,byteLength:n,arrayBuffer:e.buffer}),Ag(n,4)}function vF(r,e){if(r.startsWith("data:")||r.startsWith("http:")||r.startsWith("https:"))return r;const n=e.baseUri||e.uri;if(!n)throw new Error(`'baseUri' must be provided to resolve relative url ${r}`);return n.substr(0,n.lastIndexOf("/")+1)+r}
2096const NY="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIA
2096LAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",UY
vendor: 10,662 bytes, line 2096
2096="B9h9z9tFBBBF8dL9gBB9gLaaaaaFa9gEaaaB9gGaaB9gFaFaEQSBBFBFFGEGEGIILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBNn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBcI9z9iqlBMc/j9JSIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMkRIbaG97FaK978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAnDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAnDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBRnCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBHiCFD9tAiAPD9OD9hD9RHiDQBTFtGmEYIPLdKeOnH8ZAIAQJDBIBHpCFD9tApAPD9OD9hD9RHpAIASJDBIBHyCFD9tAyAPD9OD9hD9RHyDQBTFtGmEYIPLdKeOnH8cDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAnD9uHnDyBjGBAEAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnA8ZA8cDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNiV8ZcpMyS8cQ8df8eb8fHdApAyDQNiV8ZcpMyS8cQ8df8eb8fHiDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/xLGEaK978jUUUUBCAlHE8kUUUUBGXGXAGCI9HQBGXAFC98ZHI9FQBABRGCBRLEXAGAGDBBBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMBBAGCTJRGALCIJHLAI9JQBMMAIAF9PQFAEAFCEZHLCGWHGqCBCTAGl/8MBAEABAICGWJHIAG/8cBBGXAL9FQBAEAEDBIBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMIBMAIAEAG/8cBBSFMABAFC98ZHGT+HUUUBAGAF9PQBAEAFCEZHICEWHLJCBCAALl/8MBAEABAGCEWJHGAL/8cBBAEAIT+HUUUBAGAEAL/8cBBMAECAJ8kUUUUBM+yEGGaO97GXAF9FQBCBRGEXABCTJHEAEDBBBHICBDtHLCUU98D8cFCUU98D8cEHKD9OABDBBBHOAIDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAOAIDQBFGENVcMTtmYi8ZpyHICTD+sFD/6FHND/gFAICTD+rFCTD+sFD/6FHVD/gFD/kFD/lFHI9DB/+g6DYAVAIALD+2FHLAVCUUUU94DtHcD9OD9RD/kFHVAVD/mFAIAID/mFANALANAcD9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHLD/kFCTD+rFAVAND/mFALD/kFCggEDtD9OD9QHVAIAND/mFALD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHIDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAOAKD9OAVAIDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM94FEa8jUUUUBCAlHE8kUUUUBABAFC98ZHIT+JUUUBGXAIAF9PQBAEAFCEZHLCEWHFJCBCAAFl/8MBAEABAICEWJHBAF/8cBBAEALT+JUUUBABAEAF/8cBBMAECAJ8kUUUUBM/hEIGaF97FaL978jUUUUBCTlRGGXAF9FQBCBREEXAGABDBBBHIABCTJHLDBBBHKDQILKOSQfbPden8c8d8e8fHOCTD+sFHNCID+rFDMIBAB9DBBU8/DY9D/zI818/DYANCEDtD9QD/6FD/nFHNAIAKDQBFGENVcMTtmYi8ZpyHICTD+rFCTD+sFD/6FD/mFHKAKD/mFANAICTD+sFD/6FD/mFHVAVD/mFANAOCTD+rFCTD+sFD/6FD/mFHOAOD/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHND/mF9DBBX9LDYHID/kFCggEDtHcD9OAVAND/mFAID/kFCTD+rFD9QHVAOAND/mFAID/kFCTD+rFAKAND/mFAID/kFAcD9OD9QHNDQBFTtGEmYILPdKOenHID8dBAGDBIBDyB+t+J83EBABCNJAID8dFAGDBIBDyF+t+J83EBALAVANDQNVi8ZcMpySQ8c8dfb8e8fHND8dBAGDBIBDyG+t+J83EBABCiJAND8dFAGDBIBDyE+t+J83EBABCAJRBAECIJHEAF9JQBMMM/3FGEaF978jUUUUBCoBlREGXAGCGrAF9sHIC98ZHL9FQBCBRGABRFEXAFAFDBBBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBAFCTJRFAGCIJHGAL9JQBMMGXALAI9PQBAEAICEZHGCGWHFqCBCoBAFl/8MBAEABALCGWJHLAF/8cBBGXAG9FQBAEAEDBIBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMIBMALAEAF/8cBBMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",
vendor: 30,101 bytes, line 2096
2096zY=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]),VY=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]),jY={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},GY={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function HY(r,e,t,n,i,s="NONE"){const o=await WY();qY(o,o.exports[GY[i]],r,e,t,n,o.exports[jY[s||"NONE"]])}let Vv;async function WY(){return Vv||(Vv=$Y()),Vv}async function $Y(){let r=NY;WebAssembly.validate(zY)&&(r=UY,console.log("Warning: meshopt_decoder is using experimental SIMD support"));const e=await WebAssembly.instantiate(XY(r),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function XY(r){const e=new Uint8Array(r.length);for(let n=0;n<r.length;++n){const i=r.charCodeAt(n);e[n]=i>96?i-71:i>64?i-65:i>47?i+4:i>46?63:62}let t=0;for(let n=0;n<r.length;++n)e[t++]=e[n]<60?VY[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,t)}function qY(r,e,t,n,i,s,o){const l=r.exports.sbrk,f=n+3&-4,A=l(f*i),v=l(s.length),T=new Uint8Array(r.exports.memory.buffer);T.set(s,v);const I=e(A,n,i,v,s.length);if(I===0&&o&&o(A,f,i),t.set(T.subarray(A,A+n*i)),l(A-l(0)),I!==0)throw new Error(`Malformed buffer data: ${I}`)}const n_="EXT_meshopt_compression",JY=n_;async function KY(r,e){const t=new ks(r);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;const n=[];for(const i of r.json.bufferViews||[])n.push(ZY(t,i));await Promise.all(n),t.removeExtension(n_)}async function ZY(r,e){const t=r.getObjectExtension(e,n_);if(t){const{byteOffset:n=0,byteLength:i=0,byteStride:s,count:o,mode:l,filter:f="NONE",buffer:A}=t,v=r.gltf.buffers[A],T=new Uint8Array(v.arrayBuffer,v.byteOffset+n,i),I=new Uint8Array(r.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await HY(I,o,s,T,l,f),r.removeObjectExtension(e,n_)}}const YY=Object.freeze(Object.defineProperty({__proto__:null,decode:KY,name:JY},Symbol.toStringTag,{value:"Module"})),Dd="EXT_texture_webp",QY=Dd;function eQ(r,e){const t=new ks(r);if(!NK("image/webp")){if(t.getRequiredExtensions().includes(Dd))throw new Error(`gltf: Required extension ${Dd} not supported by browser`);return}const{json:n}=t;for(const i of n.textures||[]){const s=t.getObjectExtension(i,Dd);s&&(i.source=s.source),t.removeObjectExtension(i,Dd)}t.removeExtension(Dd)}const tQ=Object.freeze(Object.defineProperty({__proto__:null,name:QY,preprocess:eQ},Symbol.toStringTag,{value:"Module"})),ym="KHR_texture_basisu",rQ=ym;function nQ(r,e){const t=new ks(r),{json:n}=t;for(const i of n.textures||[]){const s=t.getObjectExtension(i,ym);s&&(i.source=s.source,t.removeObjectExtension(i,ym))}t.removeExtension(ym)}const iQ=Object.freeze(Object.defineProperty({__proto__:null,name:rQ,preprocess:nQ},Symbol.toStringTag,{value:"Module"})),sQ="4.3.3",oQ={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:sQ,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",libraryPath:"libs/",extraAttributes:{},attributeNameEntry:void 0}}};function aQ(r,e,t){const n=bF(e.metadata),i=[],s=lQ(e.attributes);for(const o in r){const l=r[o],f=OS(o,l,s[o]);i.push(f)}if(t){const o=OS("indices",t);i.push(o)}return{fields:i,metadata:n}}function lQ(r){const e={};for(const t in r){const n=r[t];e[n.name||"undefined"]=n}return e}function OS(r,e,t){const n=t?bF(t.metadata):void 0;return OU(r,e,n)}function bF(r){Object.entries(r);const e={};for(const t in r)e[`${t}.string`]=JSON.stringify(r[t]);return e}const DS={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},cQ={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},uQ=4;let fQ=class{draco;decoder;metadataQuerier;constructor(e){this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e,t={}){const n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(t);const i=this.decoder.GetEncodedGeometryType(n),s=i===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let o;switch(i){case this.draco.TRIANGULAR_MESH:o=this.decoder.DecodeBufferToMesh(n,s);break;case this.draco.POINT_CLOUD:o=this.decoder.DecodeBufferToPointCloud(n,s);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!o.ok()||!s.ptr){const I=`DRACO decompression failed: ${o.error_msg()}`;throw new Error(I)}const l=this._getDracoLoaderData(s,i,t),f=this._getMeshData(s,l,t),A=S4(f.attributes),v=aQ(f.attributes,l,f.indices);return{loader:"draco",loaderData:l,header:{vertexCount:s.num_points(),boundingBox:A},...f,schema:v}}finally{this.draco.destroy(n),s&&this.draco.destroy(s)}}_getDracoLoaderData(e,t,n){const i=this._getTopLevelMetadata(e),s=this._getDracoAttributes(e,n);return{geometry_type:t,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:i,attributes:s}}_getDracoAttributes(e,t){const n={};for(let i=0;i<e.num_attributes();i++){const s=this.decoder.GetAttribute(e,i),o=this._getAttributeMetadata(e,i);n[s.unique_id()]={unique_id:s.unique_id(),attribute_type:s.attribute_type(),data_type:s.data_type(),num_components:s.num_components(),byte_offset:s.byte_offset(),byte_stride:s.byte_stride(),normalized:s.normalized(),attribute_index:i,metadata:o};const l=this._getQuantizationTransform(s,t);l&&(n[s.unique_id()].quantization_transform=l);const f=this._getOctahedronTransform(s,t);f&&(n[s.unique_id()].octahedron_transform=f)}return n}_getMeshData(e,t,n){const i=this._getMeshAttributes(t,e,n);if(!i.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:i,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:i,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:i}}_getMeshAttributes(e,t,n){const i={};for(const s of Object.values(e.attributes)){const o=this._deduceAttributeName(s,n);s.name=o;const l=this._getAttributeValues(t,s);if(l){const{value:f,size:A}=l;i[o]={value:f,size:A,byteOffset:s.byte_offset,byteStride:s.byte_stride,normalized:s.normalized}}}return i}_getTriangleListIndices(e){const n=e.num_faces()*3,i=n*uQ,s=this.draco._malloc(i);try{return this.decoder.GetTrianglesUInt32Array(e,i,s),new Uint32Array(this.draco.HEAPF32.buffer,s,n).slice()}finally{this.draco._free(s)}}_getTriangleStripIndices(e){const t=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,t),pQ(t)}finally{this.draco.destroy(t)}}_getAttributeValues(e,t){const n=cQ[t.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${t.data_type}`),null;const i=t.num_components,o=e.num_points()*i,l=o*n.BYTES_PER_ELEMENT,f=hQ(this.draco,n);let A;const v=this.draco._malloc(l);try{const T=this.decoder.GetAttribute(e,t.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,T,f,l,v),A=new n(this.draco.HEAPF32.buffer,v,o).slice()}finally{this.draco._free(v)}return{value:A,size:i}}_deduceAttributeName(e,t){const n=e.unique_id;for(const[o,l]of Object.entries(t.extraAttributes||{}))if(l===n)return o;const i=e.attribute_type;for(const o in DS)if(this.draco[o]===i)return DS[o];const s=t.attributeNameEntry||"name";return e.metadata[s]?e.metadata[s].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){const t=this.decoder.GetMetadata(e);return this._getDracoMetadata(t)}_getAttributeMetadata(e,t){const n=this.decoder.GetAttributeMetadata(e,t);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};const t={},n=this.metadataQuerier.NumEntries(e);for(let i=0;i<n;i++){const s=this.metadataQuerier.GetEntryName(e,i);t[s]=this._getDracoMetadataField(e,s)}return t}_getDracoMetadataField(e,t){const n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,t,n);const i=dQ(n);return{int:this.metadataQuerier.GetIntEntry(e,t),string:this.metadataQuerier.GetStringEntry(e,t),double:this.metadataQuerier.GetDoubleEntry(e,t),intArray:i}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){const{quantizedAttributes:t=[],octahedronAttributes:n=[]}=e,i=[...t,...n];for(const s of i)this.decoder.SkipAttributeTransform(this.draco[s])}_getQuantizationTransform(e,t){const{quantizedAttributes:n=[]}=t,i=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(i)){const o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits(),range:o.range(),min_values:new Float32Array([1,2,3]).map(l=>o.min_value(l))}}finally{this.draco.destroy(o)}}return null}_getOctahedronTransform(e,t){const{octahedronAttributes:n=[]}=t,i=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(i)){const o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits()}}finally{this.draco.destroy(o)}}return null}};function hQ(r,e){switch(e){case Float32Array:return r.DT_FLOAT32;case Int8Array:return r.DT_INT8;case Int16Array:return r.DT_INT16;case Int32Array:return r.DT_INT32;case Uint8Array:return r.DT_UINT8;case Uint16Array:return r.DT_UINT16;case Uint32Array:return r.DT_UINT32;default:return r.DT_INVALID}}function dQ(r){const e=r.size(),t=new Int32Array(e);for(let n=0;n<e;n++)t[n]=r.GetValue(n);return t}function pQ(r){const e=r.size(),t=new Int32Array(e);for(let n=0;n<e;n++)t[n]=r.GetValue(n);return t}const AQ="1.5.6",gQ="1.4.1",jv=`https://www.gstatic.com/draco/versioned/decoders/${AQ}`,Vo={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},Gv={[Vo.DECODER]:`${jv}/${Vo.DECODER}`,[Vo.DECODER_WASM]:`${jv}/${Vo.DECODER_WASM}`,[Vo.FALLBACK_DECODER]:`${jv}/${Vo.FALLBACK_DECODER}`,[Vo.ENCODER]:`https://raw.githubusercontent.com/google/draco/${gQ}/javascript/${Vo.ENCODER}`};let Hv;async function mQ(r){const e=r.modules||{};return e.draco3d?Hv||=e.draco3d.createDecoderModule({}).then(t=>({draco:t})):Hv||=_Q(r),await Hv}async function _Q(r){let e,t;switch(r.draco&&r.draco.decoderType){case"js":e=await Fv(Gv[Vo.FALLBACK_DECODER],"draco",r,Vo.FALLBACK_DECODER);break;case"wasm":default:[e,t]=await Promise.all([await Fv(Gv[Vo.DECODER],"draco",r,Vo.DECODER),await Fv(Gv[Vo.DECODER_WASM],"draco",r,Vo.DECODER_WASM)])}return e=e||globalThis.DracoDecoderModule,await yQ(e,t)}function yQ(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r({...t,onModuleLoaded:i=>n({draco:i})})})}const vQ={...oQ,parse:bQ};async function bQ(r,e){const{draco:t}=await mQ(e),n=new fQ(t);try{return n.parseSync(r,e?.draco)}finally{n.destroy()}}function xQ(r){const e={};for(const t in r){const n=r[t];if(t!=="indices"){const i=xF(n);e[t]=i}}return e}function xF(r){const{buffer:e,size:t,count:n}=wQ(r);return{value:e,size:t,byteOffset:0,count:n,type:uF(t),componentType:V_(e)}}function wQ(r){let e=r,t=1,n=0;return r&&r.value&&(e=r.value,t=r.size||1),e&&(ArrayBuffer.isView(e)||(e=TQ(e,Float32Array)),n=e.length/t),{buffer:e,size:t,count:n}}function TQ(r,e,t=!1){return r?Array.isArray(r)?new e(r):t&&!(r instanceof e)?new e(r):r:null}const Ku="KHR_draco_mesh_compression",EQ=Ku;function CQ(r,e,t){const n=new ks(r);for(const i of wF(n))n.getObjectExtension(i,Ku)}async function SQ(r,e,t){if(!e?.gltf?.decompressMeshes)return;const n=new ks(r),i=[];for(const s of wF(n))n.getObjectExtension(s,Ku)&&i.push(BQ(n,s,e,t));await Promise.all(i),n.removeExtension(Ku)}function IQ(r,e={}){const t=new ks(r);for(const n of t.json.meshes||[])PQ(n),t.addRequiredExtension(Ku)}async function BQ(r,e,t,n){const i=r.getObjectExtension(e,Ku);if(!i)return;const s=r.getTypedArrayForBufferView(i.bufferView),o=iF(s.buffer,s.byteOffset),l={...t};delete l["3d-tiles"];const f=await rF(o,vQ,l,n),A=xQ(f.attributes);for(const[v,T]of Object.entries(A))if(v in e.attributes){const I=e.attributes[v],F=r.getAccessor(I);F?.min&&F?.max&&(T.min=F.min,T.max=F.max)}e.attributes=A,f.indices&&(e.indices=xF(f.indices)),r.removeObjectExtension(e,Ku),MQ(e)}function PQ(r,e,t=4,n,i){if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");const s=n.DracoWriter.encodeSync({attributes:r}),o=i?.parseSync?.({attributes:r}),l=n._addFauxAttributes(o.attributes),f=n.addBufferView(s);return{primitives:[{attributes:l,mode:t,extensions:{[Ku]:{bufferView:f,attributes:l}}}]}}function MQ(r){if(!r.attributes&&Object.keys(r.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*wF(r){for(const e of r.json.meshes||[])for(const t of e.primitives)yield t}const RQ=Object.freeze(Object.defineProperty({__proto__:null,decode:SQ,encode:IQ,name:EQ,preprocess:CQ},Symbol.toStringTag,{value:"Module"})),H_="KHR_texture_transform",OQ=H_,B0=new dt,DQ=new Oi,FQ=new Oi;async function LQ(r,e){if(!new ks(r).hasExtension(H_)||!e.gltf?.loadBuffers)return;const i=r.json.materials||[];for(let s=0;s<i.length;s++)kQ(s,r)}function kQ(r,e){const t=e.json.materials?.[r],n=[t?.pbrMetallicRoughness?.baseColorTexture,t?.emissiveTexture,t?.normalTexture,t?.occlusionTexture,t?.pbrMetallicRoughness?.metallicRoughnessTexture],i=[];for(const s of n)s&&s?.extensions?.[H_]&&NQ(e,r,s,i)}function NQ(r,e,t,n){const i=UQ(t,n);if(!i)return;const s=r.json.meshes||[];for(const o of s)for(const l of o.primitives){const f=l.material;Number.isFinite(f)&&e===f&&zQ(r,l,i)}}function UQ(r,e){const t=r.extensions?.[H_],{texCoord:n=0}=r,{texCoord:i=n}=t;if(!(e.findIndex(([o,l])=>o===n&&l===i)!==-1)){const o=GQ(t);return n!==i&&(r.texCoord=i),e.push([n,i]),{originalTexCoord:n,texCoord:i,matrix:o}}return null}function zQ(r,e,t){const{originalTexCoord:n,texCoord:i,matrix:s}=t,o=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(o)){const l=r.json.accessors?.[o];if(l&&l.bufferView){const f=r.json.bufferViews?.[l.bufferView];if(f){const{arrayBuffer:A,byteOffset:v}=r.buffers[f.buffer],T=(v||0)+(l.byteOffset||0)+(f.byteOffset||0),{ArrayType:I,length:F}=Hx(l,f),N=cF[l.componentType],U=lF[l.type],$=f.byteStride||N*U,V=new Float32Array(F);for(let G=0;G<l.count;G++){const X=new I(A,T+G*$,2);B0.set(X[0],X[1],1),B0.transformByMatrix3(s),V.set([B0[0],B0[1]],G*U)}n===i?VQ(l,f,r.buffers,V):jQ(i,l,e,r,V)}}}}function VQ(r,e,t,n){r.componentType=5126,t.push({arrayBuffer:n.buffer,byteOffset:0,byteLength:n.buffer.byteLength}),e.buffer=t.length-1,e.byteLength=n.buffer.byteLength,e.byteOffset=0,delete e.byteStride}function jQ(r,e,t,n,i){n.buffers.push({arrayBuffer:i.buffer,byteOffset:0,byteLength:i.buffer.byteLength});const s=n.json.bufferViews;if(!s)return;s.push({buffer:n.buffers.length-1,byteLength:i.buffer.byteLength,byteOffset:0});const o=n.json.accessors;o&&(o.push({bufferView:s?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),t.attributes[`TEXCOORD_${r}`]=o.length-1)}function GQ(r){const{offset:e=[0,0],rotation:t=0,scale:n=[1,1]}=r,i=new Oi().set(1,0,0,0,1,0,e[0],e[1],1),s=DQ.set(Math.cos(t),Math.sin(t),0,-Math.sin(t),Math.cos(t),0,0,0,1),o=FQ.set(n[0],0,0,0,n[1],0,0,0,1);return i.multiplyRight(s).multiplyRight(o)}const HQ=Object.freeze(Object.defineProperty({__proto__:null,decode:LQ,name:OQ},Symbol.toStringTag,{value:"Module"})),Xf="KHR_lights_punctual",WQ=Xf;async function $Q(r){const e=new ks(r),{json:t}=e,n=e.getExtension(Xf);n&&(e.json.lights=n.lights,e.removeExtension(Xf));for(const i of t.nodes||[]){const s=e.getObjectExtension(i,Xf);s&&(i.light=s.light),e.removeObjectExtension(i,Xf)}}async function XQ(r){const e=new ks(r),{json:t}=e;if(t.lights){const n=e.addExtension(Xf);da(!n.lights),n.lights=t.lights,delete t.lights}if(e.json.lights){for(const n of e.json.lights){const i=n.node;e.addObjectExtension(i,Xf,n)}delete e.json.lights}}const qQ=Object.freeze(Object.defineProperty({__proto__:null,decode:$Q,encode:XQ,name:WQ},Symbol.toStringTag,{value:"Module"})),ng="KHR_materials_unlit",JQ=ng;async function KQ(r){const e=new ks(r),{json:t}=e;for(const n of t.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,ng);e.removeExtension(ng)}function ZQ(r){const e=new ks(r),{json:t}=e;if(e.materials)for(const n of t.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,ng,{}),e.addExtension(ng))}const YQ=Object.freeze(Object.defineProperty({__proto__:null,decode:KQ,encode:ZQ,name:JQ},Symbol.toStringTag,{value:"Module"})),IA="KHR_techniques_webgl",QQ=IA;async function eee(r){const e=new ks(r),{json:t}=e,n=e.getExtension(IA);if(n){const i=ree(n,e);for(const s of t.materials||[]){const o=e.getObjectExtension(s,IA);o&&(s.technique=Object.assign({},o,i[o.technique]),s.technique.values=nee(s.technique,e)),e.removeObjectExtension(s,IA)}e.removeExtension(IA)}}async function tee(r,e){}function ree(r,e){const{programs:t=[],shaders:n=[],techniques:i=[]}=r,s=new TextDecoder;return n.forEach(o=>{if(Number.isFinite(o.bufferView))o.code=s.decode(e.getTypedArrayForBufferView(o.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),t.forEach(o=>{o.fragmentShader=n[o.fragmentShader],o.vertexShader=n[o.vertexShader]}),i.forEach(o=>{o.program=t[o.program]}),i}function nee(r,e){const t=Object.assign({},r.values);return Object.keys(r.uniforms||{}).forEach(n=>{r.uniforms[n].value&&!(n in t)&&(t[n]=r.uniforms[n].value)}),Object.keys(t).forEach(n=>{typeof t[n]=="object"&&t[n].index!==void 0&&(t[n].texture=e.getTexture(t[n].index))}),t}const iee=Object.freeze(Object.defineProperty({__proto__:null,decode:eee,encode:tee,name:QQ},Symbol.toStringTag,{value:"Module"})),TF=[kZ,lZ,YY,tQ,iQ,RQ,qQ,YQ,iee,HQ,eY];function see(r,e={},t){const n=TF.filter(i=>EF(i.name,e));for(const i of n)i.preprocess?.(r,e,t)}async function oee(r,e={},t){const n=TF.filter(i=>EF(i.name,e));for(const i of n)await i.decode?.(r,e,t)}function EF(r,e){const t=e?.gltf?.excludeExtensions||{};return!(r in t&&!t[r])}const Wv="KHR_binary_glTF";function aee(r){const e=new ks(r),{json:t}=e;for(const n of t.images||[]){const i=e.getObjectExtension(n,Wv);i&&Object.assign(n,i),e.removeObjectExtension(n,Wv)}t.buffers&&t.buffers[0]&&delete t.buffers[0].uri,e.removeExtension(Wv)}const FS={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},lee={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"};let cee=class{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,t){this.json=e.json;const n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!t.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),aee(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(const t in FS)this._convertTopLevelObjectToArray(e,t)}_convertTopLevelObjectToArray(e,t){const n=e[t];if(!(!n||Array.isArray(n))){e[t]=[];for(const i in n){const s=n[i];s.id=s.id||i;const o=e[t].length;e[t].push(s),this.idToIndexMap[t][i]=o}}}_convertObjectIdsToArrayIndices(e){for(const t in FS)this._convertIdsToIndices(e,t);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(const t of e.textures)this._convertTextureIds(t);for(const t of e.meshes)this._convertMeshIds(t);for(const t of e.nodes)this._convertNodeIds(t);for(const t of e.scenes)this._convertSceneIds(t)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(const t of e.primitives){const{attributes:n,indices:i,material:s}=t;for(const o in n)n[o]=this._convertIdToIndex(n[o],"accessor");i&&(t.indices=this._convertIdToIndex(i,"accessor")),s&&(t.material=this._convertIdToIndex(s,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(t=>this._convertIdToIndex(t,"node"))),e.meshes&&(e.meshes=e.meshes.map(t=>this._convertIdToIndex(t,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(t=>this._convertIdToIndex(t,"node")))}_convertIdsToIndices(e,t){e[t]||(console.warn(`gltf v1: json doesn't contain attribute ${t}`),e[t]=[]);for(const n of e[t])for(const i in n){const s=n[i],o=this._convertIdToIndex(s,i);n[i]=o}}_convertIdToIndex(e,t){const n=lee[t];if(n in this.idToIndexMap){const i=this.idToIndexMap[n][e];if(!Number.isFinite(i))throw new Error(`gltf v1: failed to resolve ${t} with id ${e}`);return i}return e}_updateObjects(e){for(const t of this.json.buffers)delete t.type}_updateMaterial(e){for(const t of e.materials){t.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};const n=t.values?.tex||t.values?.texture2d_0||t.values?.diffuseTex,i=e.textures.findIndex(s=>s.id===n);i!==-1&&(t.pbrMetallicRoughness.baseColorTexture={index:i})}}};function uee(r,e={}){return new cee().normalize(r,e)}async function fee(r,e,t=0,n,i){return hee(r,e,t,n),uee(r,{normalize:n?.gltf?.normalize}),see(r,n,i),n?.gltf?.loadBuffers&&r.json.buffers&&await dee(r,n,i),n?.gltf?.loadImages&&await pee(r,n,i),await oee(r,n,i),r}function hee(r,e,t,n){if(n.uri&&(r.baseUri=n.uri),e instanceof ArrayBuffer&&!OY(e,t,n)&&(e=new TextDecoder().decode(e)),typeof e=="string")r.json=iK(e);else if(e instanceof ArrayBuffer){const o={};t=DY(o,e,t,n.glb),da(o.type==="glTF",`Invalid GLB magic string ${o.type}`),r._glb=o,r.json=o.json}else da(!1,"GLTF: must be ArrayBuffer or string");const i=r.json.buffers||[];if(r.buffers=new Array(i.length).fill(null),r._glb&&r._glb.header.hasBinChunk){const{binChunks:o}=r._glb;r.buffers[0]={arrayBuffer:o[0].arrayBuffer,byteOffset:o[0].byteOffset,byteLength:o[0].byteLength}}const s=r.json.images||[];r.images=new Array(s.length).fill({})}async function dee(r,e,t){const n=r.json.buffers||[];for(let i=0;i<n.length;++i){const s=n[i];if(s.uri){const{fetch:o}=t;da(o);const l=vF(s.uri,e),A=await(await t?.fetch?.(l))?.arrayBuffer?.();r.buffers[i]={arrayBuffer:A,byteOffset:0,byteLength:A.byteLength},delete s.uri}else r.buffers[i]===null&&(r.buffers[i]={arrayBuffer:new ArrayBuffer(s.byteLength),byteOffset:0,byteLength:s.byteLength})}}async function pee(r,e,t){const n=Aee(r),i=r.json.images||[],s=[];for(const o of n)s.push(gee(r,i[o],o,e,t));return await Promise.all(s)}function Aee(r){const e=new Set,t=r.json.textures||[];for(const n of t)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function gee(r,e,t,n,i){let s;if(e.uri&&!e.hasOwnProperty("bufferView")){const l=vF(e.uri,n),{fetch:f}=i;s=await(await f(l)).arrayBuffer(),e.bufferView={data:s}}if(Number.isFinite(e.bufferView)){const l=XK(r.json,r.buffers,e.bufferView);s=iF(l.buffer,l.byteOffset,l.byteLength)}da(s,"glTF image has no data");let o=await rF(s,[kK,CY],{...n,mimeType:e.mimeType,basis:n.basis||{format:yF()}},i);o&&o[0]&&(o={compressed:!0,mipmaps:!1,width:o[0].width,height:o[0].height,data:o[0]}),r.images=r.images||[],r.images[t]=o}const i_={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:tY,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:mee,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0},log:console}};async function mee(r,e={},t){e={...i_.options,...e},e.gltf={...i_.options.gltf,...e.gltf};const{byteOffset:n=0}=e;return await fee({},r,n,e,t)}const _ee={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},yee={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Oa={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},vee={magFilter:Oa.TEXTURE_MAG_FILTER,minFilter:Oa.TEXTURE_MIN_FILTER,wrapS:Oa.TEXTURE_WRAP_S,wrapT:Oa.TEXTURE_WRAP_T},bee={[Oa.TEXTURE_MAG_FILTER]:Oa.LINEAR,[Oa.TEXTURE_MIN_FILTER]:Oa.NEAREST_MIPMAP_LINEAR,[Oa.TEXTURE_WRAP_S]:Oa.REPEAT,[Oa.TEXTURE_WRAP_T]:Oa.REPEAT};function xee(){return{id:"default-sampler",parameters:bee}}function wee(r){return yee[r]}function Tee(r){return _ee[r]}let Eee=class{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,t={}){const{json:n,buffers:i=[],images:s=[]}=e,{baseUri:o=""}=e;return da(n),this.baseUri=o,this.buffers=i,this.images=s,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,t),this.json}_resolveTree(e,t={}){const n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((i,s)=>this._resolveBufferView(i,s))),e.images&&(n.images=e.images.map((i,s)=>this._resolveImage(i,s))),e.samplers&&(n.samplers=e.samplers.map((i,s)=>this._resolveSampler(i,s))),e.textures&&(n.textures=e.textures.map((i,s)=>this._resolveTexture(i,s))),e.accessors&&(n.accessors=e.accessors.map((i,s)=>this._resolveAccessor(i,s))),e.materials&&(n.materials=e.materials.map((i,s)=>this._resolveMaterial(i,s))),e.meshes&&(n.meshes=e.meshes.map((i,s)=>this._resolveMesh(i,s))),e.nodes&&(n.nodes=e.nodes.map((i,s)=>this._resolveNode(i,s)),n.nodes=n.nodes.map((i,s)=>this._resolveNodeChildren(i))),e.skins&&(n.skins=e.skins.map((i,s)=>this._resolveSkin(i,s))),e.scenes&&(n.scenes=e.scenes.map((i,s)=>this._resolveScene(i,s))),typeof this.json.scene=="number"&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,t){if(typeof t=="object")return t;const n=e&&e[t];return n||console.warn(`glTF file error: Could not find ${e}[${t}]`),n}_resolveScene(e,t){return{...e,id:e.id||`scene-${t}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))}}_resolveNode(e,t){const n={...e,id:e?.id||`node-${t}`};return e.mesh!==void 0&&(n.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(n.camera=this.getCamera(e.camera)),e.skin!==void 0&&(n.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(n.mesh=e.meshes.reduce((i,s)=>{const o=this.getMesh(s);return i.id=o.id,i.primitives=i.primitives.concat(o.primitives),i},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(t=>this.getNode(t))),e}_resolveSkin(e,t){const n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${t}`,inverseBindMatrices:n}}_resolveMesh(e,t){const n={...e,id:e.id||`mesh-${t}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(i=>{const s={...i,attributes:{},indices:void 0,material:void 0},o=i.attributes;for(const l in o)s.attributes[l]=this.getAccessor(o[l]);return i.indices!==void 0&&(s.indices=this.getAccessor(i.indices)),i.material!==void 0&&(s.material=this.getMaterial(i.material)),s})),n}_resolveMaterial(e,t){const n={...e,id:e.id||`material-${t}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};const i=n.pbrMetallicRoughness;i.baseColorTexture&&(i.baseColorTexture={...i.baseColorTexture},i.baseColorTexture.texture=this.getTexture(i.baseColorTexture.index)),i.metallicRoughnessTexture&&(i.metallicRoughnessTexture={...i.metallicRoughnessTexture},i.metallicRoughnessTexture.texture=this.getTexture(i.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,t){const n=wee(e.componentType),i=Tee(e.type),s=n*i,o={...e,id:e.id||`accessor-${t}`,bytesPerComponent:n,components:i,bytesPerElement:s,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(o.bufferView=this.getBufferView(e.bufferView)),o.bufferView){const l=o.bufferView.buffer,{ArrayType:f,byteLength:A}=Hx(o,o.bufferView),v=(o.bufferView.byteOffset||0)+(o.byteOffset||0)+l.byteOffset;let T=l.arrayBuffer.slice(v,v+A);o.bufferView.byteStride&&(T=this._getValueFromInterleavedBuffer(l,v,o.bufferView.byteStride,o.bytesPerElement,o.count)),o.value=new f(T)}return o}_getValueFromInterleavedBuffer(e,t,n,i,s){const o=new Uint8Array(s*i);for(let l=0;l<s;l++){const f=t+l*n;o.set(new Uint8Array(e.arrayBuffer.slice(f,f+i)),l*i)}return o.buffer}_resolveTexture(e,t){return{...e,id:e.id||`texture-${t}
2096`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):xee(),source:typeof e.source=="number"?this.getImage(e.source):void 0}}_resolveSampler(e,t){const n={id:e.id||`sampler-${t}`,...e,parameters:{}};for(const i in n){const s=this._enumSamplerParameter(i);s!==void 0&&(n.parameters[s]=n[i])}return n}_enumSamplerParameter(e){return vee[e]}_resolveImage(e,t){const n={...e,id:e.id||`image-${t}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0},i=this.images[t];return i&&(n.image=i),n}_resolveBufferView(e,t){const n=e.buffer,i=this.buffers[n].arrayBuffer;let s=this.buffers[n].byteOffset||0;return e.byteOffset&&(s+=e.byteOffset),{id:`bufferView-${t}`,...e,buffer:this.buffers[n],data:new Uint8Array(i,s,e.byteLength)}}_resolveCamera(e,t){const n={...e,id:e.id||`camera-${t}`};return n.perspective,n.orthographic,n}};function Cee(r,e){return new Eee().postProcess(r,e)}var fo=1e-6,gp=typeof Float32Array<"u"?Float32Array:Array;Math.hypot||(Math.hypot=function(){for(var r=0,e=arguments.length;e--;)r+=arguments[e]*arguments[e];return Math.sqrt(r)});function See(){var r=new gp(4);return gp!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0,r[3]=0),r}function Iee(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r}function Bee(r,e,t){var n=e[0],i=e[1],s=e[2],o=e[3];return r[0]=t[0]*n+t[4]*i+t[8]*s+t[12]*o,r[1]=t[1]*n+t[5]*i+t[9]*s+t[13]*o,r[2]=t[2]*n+t[6]*i+t[10]*s+t[14]*o,r[3]=t[3]*n+t[7]*i+t[11]*s+t[15]*o,r}(function(){var r=See();return function(e,t,n,i,s,o){var l,f;for(t||(t=4),n||(n=0),i?f=Math.min(i*t+n,e.length):f=e.length,l=n;l<f;l+=t)r[0]=e[l],r[1]=e[l+1],r[2]=e[l+2],r[3]=e[l+3],s(r,r,o),e[l]=r[0],e[l+1]=r[1],e[l+2]=r[2],e[l+3]=r[3];return e}})();function vm(){return[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]}function rp(r,e){const t=Bee([],e,r);return Iee(t,t,1/t[3]),t}function LS(r,e){const t=r%e;return t<0?e+t:t}function Pee(r,e,t){return t*e+(1-t)*r}function r2(r,e,t){return r<e?e:r>t?t:r}function Mee(r){return Math.log(r)*Math.LOG2E}const Kx=Math.log2||Mee;function Ree(r,e){var t=e[0],n=e[1],i=e[2],s=e[3],o=e[4],l=e[5],f=e[6],A=e[7],v=e[8],T=e[9],I=e[10],F=e[11],N=e[12],U=e[13],$=e[14],V=e[15],G=t*l-n*o,X=t*f-i*o,ue=t*A-s*o,K=n*f-i*l,se=n*A-s*l,Ee=i*A-s*f,Ue=v*U-T*N,de=v*$-I*N,me=v*V-F*N,pe=T*$-I*U,W=T*V-F*U,te=I*V-F*$,Ce=G*te-X*W+ue*pe+K*me-se*de+Ee*Ue;return Ce?(Ce=1/Ce,r[0]=(l*te-f*W+A*pe)*Ce,r[1]=(i*W-n*te-s*pe)*Ce,r[2]=(U*Ee-$*se+V*K)*Ce,r[3]=(I*se-T*Ee-F*K)*Ce,r[4]=(f*me-o*te-A*de)*Ce,r[5]=(t*te-i*me+s*de)*Ce,r[6]=($*ue-N*Ee-V*X)*Ce,r[7]=(v*Ee-I*ue+F*X)*Ce,r[8]=(o*W-l*me+A*Ue)*Ce,r[9]=(n*me-t*W-s*Ue)*Ce,r[10]=(N*se-U*ue+V*G)*Ce,r[11]=(T*ue-v*se-F*G)*Ce,r[12]=(l*de-o*pe-f*Ue)*Ce,r[13]=(t*pe-n*de+i*Ue)*Ce,r[14]=(U*X-N*K-$*G)*Ce,r[15]=(v*K-T*X+I*G)*Ce,r):null}function $v(r,e,t){var n=e[0],i=e[1],s=e[2],o=e[3],l=e[4],f=e[5],A=e[6],v=e[7],T=e[8],I=e[9],F=e[10],N=e[11],U=e[12],$=e[13],V=e[14],G=e[15],X=t[0],ue=t[1],K=t[2],se=t[3];return r[0]=X*n+ue*l+K*T+se*U,r[1]=X*i+ue*f+K*I+se*$,r[2]=X*s+ue*A+K*F+se*V,r[3]=X*o+ue*v+K*N+se*G,X=t[4],ue=t[5],K=t[6],se=t[7],r[4]=X*n+ue*l+K*T+se*U,r[5]=X*i+ue*f+K*I+se*$,r[6]=X*s+ue*A+K*F+se*V,r[7]=X*o+ue*v+K*N+se*G,X=t[8],ue=t[9],K=t[10],se=t[11],r[8]=X*n+ue*l+K*T+se*U,r[9]=X*i+ue*f+K*I+se*$,r[10]=X*s+ue*A+K*F+se*V,r[11]=X*o+ue*v+K*N+se*G,X=t[12],ue=t[13],K=t[14],se=t[15],r[12]=X*n+ue*l+K*T+se*U,r[13]=X*i+ue*f+K*I+se*$,r[14]=X*s+ue*A+K*F+se*V,r[15]=X*o+ue*v+K*N+se*G,r}function n2(r,e,t){var n=t[0],i=t[1],s=t[2],o,l,f,A,v,T,I,F,N,U,$,V;return e===r?(r[12]=e[0]*n+e[4]*i+e[8]*s+e[12],r[13]=e[1]*n+e[5]*i+e[9]*s+e[13],r[14]=e[2]*n+e[6]*i+e[10]*s+e[14],r[15]=e[3]*n+e[7]*i+e[11]*s+e[15]):(o=e[0],l=e[1],f=e[2],A=e[3],v=e[4],T=e[5],I=e[6],F=e[7],N=e[8],U=e[9],$=e[10],V=e[11],r[0]=o,r[1]=l,r[2]=f,r[3]=A,r[4]=v,r[5]=T,r[6]=I,r[7]=F,r[8]=N,r[9]=U,r[10]=$,r[11]=V,r[12]=o*n+v*i+N*s+e[12],r[13]=l*n+T*i+U*s+e[13],r[14]=f*n+I*i+$*s+e[14],r[15]=A*n+F*i+V*s+e[15]),r}function CF(r,e,t){var n=t[0],i=t[1],s=t[2];return r[0]=e[0]*n,r[1]=e[1]*n,r[2]=e[2]*n,r[3]=e[3]*n,r[4]=e[4]*i,r[5]=e[5]*i,r[6]=e[6]*i,r[7]=e[7]*i,r[8]=e[8]*s,r[9]=e[9]*s,r[10]=e[10]*s,r[11]=e[11]*s,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r}function Oee(r,e,t){var n=Math.sin(t),i=Math.cos(t),s=e[4],o=e[5],l=e[6],f=e[7],A=e[8],v=e[9],T=e[10],I=e[11];return e!==r&&(r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[4]=s*i+A*n,r[5]=o*i+v*n,r[6]=l*i+T*n,r[7]=f*i+I*n,r[8]=A*i-s*n,r[9]=v*i-o*n,r[10]=T*i-l*n,r[11]=I*i-f*n,r}function Dee(r,e,t){var n=Math.sin(t),i=Math.cos(t),s=e[0],o=e[1],l=e[2],f=e[3],A=e[4],v=e[5],T=e[6],I=e[7];return e!==r&&(r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15]),r[0]=s*i+A*n,r[1]=o*i+v*n,r[2]=l*i+T*n,r[3]=f*i+I*n,r[4]=A*i-s*n,r[5]=v*i-o*n,r[6]=T*i-l*n,r[7]=I*i-f*n,r}function Fee(r,e,t,n,i){var s=1/Math.tan(e/2),o;return r[0]=s/t,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=s,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[11]=-1,r[12]=0,r[13]=0,r[15]=0,i!=null&&i!==1/0?(o=1/(n-i),r[10]=(i+n)*o,r[14]=2*i*n*o):(r[10]=-1,r[14]=-2*n),r}var Lee=Fee;function kS(r,e){var t=r[0],n=r[1],i=r[2],s=r[3],o=r[4],l=r[5],f=r[6],A=r[7],v=r[8],T=r[9],I=r[10],F=r[11],N=r[12],U=r[13],$=r[14],V=r[15],G=e[0],X=e[1],ue=e[2],K=e[3],se=e[4],Ee=e[5],Ue=e[6],de=e[7],me=e[8],pe=e[9],W=e[10],te=e[11],Ce=e[12],Qe=e[13],we=e[14],De=e[15];return Math.abs(t-G)<=fo*Math.max(1,Math.abs(t),Math.abs(G))&&Math.abs(n-X)<=fo*Math.max(1,Math.abs(n),Math.abs(X))&&Math.abs(i-ue)<=fo*Math.max(1,Math.abs(i),Math.abs(ue))&&Math.abs(s-K)<=fo*Math.max(1,Math.abs(s),Math.abs(K))&&Math.abs(o-se)<=fo*Math.max(1,Math.abs(o),Math.abs(se))&&Math.abs(l-Ee)<=fo*Math.max(1,Math.abs(l),Math.abs(Ee))&&Math.abs(f-Ue)<=fo*Math.max(1,Math.abs(f),Math.abs(Ue))&&Math.abs(A-de)<=fo*Math.max(1,Math.abs(A),Math.abs(de))&&Math.abs(v-me)<=fo*Math.max(1,Math.abs(v),Math.abs(me))&&Math.abs(T-pe)<=fo*Math.max(1,Math.abs(T),Math.abs(pe))&&Math.abs(I-W)<=fo*Math.max(1,Math.abs(I),Math.abs(W))&&Math.abs(F-te)<=fo*Math.max(1,Math.abs(F),Math.abs(te))&&Math.abs(N-Ce)<=fo*Math.max(1,Math.abs(N),Math.abs(Ce))&&Math.abs(U-Qe)<=fo*Math.max(1,Math.abs(U),Math.abs(Qe))&&Math.abs($-we)<=fo*Math.max(1,Math.abs($),Math.abs(we))&&Math.abs(V-De)<=fo*Math.max(1,Math.abs(V),Math.abs(De))}function kee(){var r=new gp(2);return gp!=Float32Array&&(r[0]=0,r[1]=0),r}function i2(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r}function Nee(r,e,t){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r}function Uee(r,e,t){return r[0]=e[0]*t,r[1]=e[1]*t,r}function zee(r){var e=r[0],t=r[1];return Math.hypot(e,t)}function Vee(r,e){return r[0]=-e[0],r[1]=-e[1],r}function SF(r,e,t,n){var i=e[0],s=e[1];return r[0]=i+n*(t[0]-i),r[1]=s+n*(t[1]-s),r}var jee=Nee;(function(){var r=kee();return function(e,t,n,i,s,o){var l,f;for(t||(t=2),n||(n=0),i?f=Math.min(i*t+n,e.length):f=e.length,l=n;l<f;l+=t)r[0]=e[l],r[1]=e[l+1],s(r,r,o),e[l]=r[0],e[l+1]=r[1];return e}})();function Gee(){var r=new gp(3);return gp!=Float32Array&&(r[0]=0,r[1]=0,r[2]=0),r}function Hee(r,e,t){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r}function Wee(r,e,t){return r[0]=e[0]*t[0],r[1]=e[1]*t[1],r[2]=e[2]*t[2],r}function $ee(r,e){return r[0]=-e[0],r[1]=-e[1],r[2]=-e[2],r}var Xee=Wee;(function(){var r=Gee();return function(e,t,n,i,s,o){var l,f;for(t||(t=3),n||(n=0),i?f=Math.min(i*t+n,e.length):f=e.length,l=n;l<f;l+=t)r[0]=e[l],r[1]=e[l+1],r[2]=e[l+2],s(r,r,o),e[l]=r[0],e[l+1]=r[1],e[l+2]=r[2];return e}})();function Zu(r,e){if(!r)throw new Error(e||"@math.gl/web-mercator: assertion failed.")}const vl=Math.PI,IF=vl/4,lc=vl/180,s2=180/vl,ig=512,NS=4003e4,P0=85.051129,BF=1.5;function o2(r){return Math.pow(2,r)}function qee(r){return Kx(r)}function ju(r){const[e,t]=r;Zu(Number.isFinite(e)),Zu(Number.isFinite(t)&&t>=-90&&t<=90,"invalid latitude");const n=e*lc,i=t*lc,s=ig*(n+vl)/(2*vl),o=ig*(vl+Math.log(Math.tan(IF+i*.5)))/(2*vl);return[s,o]}function Xu(r){const[e,t]=r,n=e/ig*(2*vl)-vl,i=2*(Math.atan(Math.exp(t/ig*(2*vl)-vl))-IF);return[n*s2,i*s2]}function Jee(r){const{latitude:e,longitude:t,highPrecision:n=!1}=r;Zu(Number.isFinite(e)&&Number.isFinite(t));const i=ig,s=Math.cos(e*lc),o=i/360,l=o/s,f=i/NS/s,A={unitsPerMeter:[f,f,f],metersPerUnit:[1/f,1/f,1/f],unitsPerDegree:[o,l,f],degreesPerUnit:[1/o,1/l,1/f]};if(n){const v=lc*Math.tan(e*lc)/s,T=o*v/2,I=i/NS*v,F=I/l*f;A.unitsPerDegree2=[0,T,I],A.unitsPerMeter2=[F,0,F]}return A}function Kee(r){const{height:e,pitch:t,bearing:n,altitude:i,scale:s,center:o}=r,l=vm();n2(l,l,[0,0,-i]),Oee(l,l,-t*lc),Dee(l,l,n*lc);const f=s/e;return CF(l,l,[f,f,f]),o&&n2(l,l,$ee([],o)),l}function Zee(r){const{width:e,height:t,altitude:n,pitch:i=0,offset:s,center:o,scale:l,nearZMultiplier:f=1,farZMultiplier:A=1}=r;let{fovy:v=s_(BF)}=r;n!==void 0&&(v=s_(n));const T=v*lc,I=i*lc,F=PF(v);let N=F;o&&(N+=o[2]*l/Math.cos(I)/t);const U=T*(.5+(s?s[1]:0)/t),$=Math.sin(U)*N/Math.sin(r2(Math.PI/2-I-U,.01,Math.PI-.01)),V=Math.sin(I)*$+N,G=N*10,X=Math.min(V*A,G);return{fov:T,aspect:e/t,focalDistance:F,near:f,far:X}}function Yee(r){const{fov:e,aspect:t,near:n,far:i}=Zee(r);return Lee([],e,t,n,i)}function s_(r){return 2*Math.atan(.5/r)*s2}function PF(r){return .5/Math.tan(.5*r*lc)}function Qee(r,e){const[t,n,i=0]=r;return Zu(Number.isFinite(t)&&Number.isFinite(n)&&Number.isFinite(i)),rp(e,[t,n,i,1])}function US(r,e,t=0){const[n,i,s]=r;if(Zu(Number.isFinite(n)&&Number.isFinite(i),"invalid pixel coordinate"),Number.isFinite(s))return rp(e,[n,i,s,1]);const o=rp(e,[n,i,0,1]),l=rp(e,[n,i,1,1]),f=o[2],A=l[2],v=f===A?0:((t||0)-f)/(A-f);return SF([],o,l,v)}function ete(r){const{width:e,height:t,bounds:n,minExtent:i=0,maxZoom:s=24,offset:o=[0,0]}
2096=r,[[l,f],[A,v]]=n,T=tte(r.padding),I=ju([l,r2(v,-P0,P0)]),F=ju([A,r2(f,-P0,P0)]),N=[Math.max(Math.abs(F[0]-I[0]),i),Math.max(Math.abs(F[1]-I[1]),i)],U=[e-T.left-T.right-Math.abs(o[0])*2,t-T.top-T.bottom-Math.abs(o[1])*2];Zu(U[0]>0&&U[1]>0);const $=U[0]/N[0],V=U[1]/N[1],G=(T.right-T.left)/2/$,X=(T.top-T.bottom)/2/V,ue=[(F[0]+I[0])/2+G,(F[1]+I[1])/2+X],K=Xu(ue),se=Math.min(s,Kx(Math.abs(Math.min($,V))));return Zu(Number.isFinite(se)),{longitude:K[0],latitude:K[1],zoom:se}}function tte(r=0){return typeof r=="number"?{top:r,bottom:r,left:r,right:r}:(Zu(Number.isFinite(r.top)&&Number.isFinite(r.bottom)&&Number.isFinite(r.left)&&Number.isFinite(r.right)),r)}const zS=Math.PI/180;function rte(r,e=0){const{width:t,height:n,unproject:i}=r,s={targetZ:e},o=i([0,n],s),l=i([t,n],s);let f,A;const v=r.fovy?.5*r.fovy*zS:Math.atan(.5/r.altitude),T=(90-r.pitch)*zS;return v>T-.01?(f=VS(r,0,e),A=VS(r,t,e)):(f=i([0,0],s),A=i([t,0],s)),[o,l,A,f]}function VS(r,e,t){const{pixelUnprojectionMatrix:n}=r,i=rp(n,[e,0,1,1]),s=rp(n,[e,r.height,1,1]),l=(t*r.distanceScales.unitsPerMeter[2]-i[2])/(s[2]-i[2]),f=SF([],i,s,l),A=Xu(f);return A.push(t),A}class cc{constructor(e={width:1,height:1}){Er(this,"latitude",void 0),Er(this,"longitude",void 0),Er(this,"zoom",void 0),Er(this,"pitch",void 0),Er(this,"bearing",void 0),Er(this,"altitude",void 0),Er(this,"fovy",void 0),Er(this,"meterOffset",void 0),Er(this,"center",void 0),Er(this,"width",void 0),Er(this,"height",void 0),Er(this,"scale",void 0),Er(this,"distanceScales",void 0),Er(this,"viewMatrix",void 0),Er(this,"projectionMatrix",void 0),Er(this,"viewProjectionMatrix",void 0),Er(this,"pixelProjectionMatrix",void 0),Er(this,"pixelUnprojectionMatrix",void 0),Er(this,"equals",V=>V instanceof cc?V.width===this.width&&V.height===this.height&&kS(V.projectionMatrix,this.projectionMatrix)&&kS(V.viewMatrix,this.viewMatrix):!1),Er(this,"project",(V,G={})=>{const{topLeft:X=!0}=G,ue=this.projectPosition(V),K=Qee(ue,this.pixelProjectionMatrix),[se,Ee]=K,Ue=X?Ee:this.height-Ee;return V.length===2?[se,Ue]:[se,Ue,K[2]]}),Er(this,"unproject",(V,G={})=>{const{topLeft:X=!0,targetZ:ue=void 0}=G,[K,se,Ee]=V,Ue=X?se:this.height-se,de=ue&&ue*this.distanceScales.unitsPerMeter[2],me=US([K,Ue,Ee],this.pixelUnprojectionMatrix,de),[pe,W,te]=this.unprojectPosition(me);return Number.isFinite(Ee)?[pe,W,te]:Number.isFinite(ue)?[pe,W,ue]:[pe,W]}),Er(this,"projectPosition",V=>{const[G,X]=ju(V),ue=(V[2]||0)*this.distanceScales.unitsPerMeter[2];return[G,X,ue]}),Er(this,"unprojectPosition",V=>{const[G,X]=Xu(V),ue=(V[2]||0)*this.distanceScales.metersPerUnit[2];return[G,X,ue]});let{width:t,height:n,altitude:i=null,fovy:s=null}=e;const{latitude:o=0,longitude:l=0,zoom:f=0,pitch:A=0,bearing:v=0,position:T=null,nearZMultiplier:I=.02,farZMultiplier:F=1.01}=e;t=t||1,n=n||1,s===null&&i===null?(i=BF,s=s_(i)):s===null?s=s_(i):i===null&&(i=PF(s));const N=o2(f);i=Math.max(.75,i);const U=Jee({longitude:l,latitude:o}),$=ju([l,o]);$.push(0),T&&Hee($,$,Xee([],T,U.unitsPerMeter)),this.projectionMatrix=Yee({width:t,height:n,scale:N,center:$,pitch:A,fovy:s,nearZMultiplier:I,farZMultiplier:F}),this.viewMatrix=Kee({height:n,scale:N,center:$,pitch:A,bearing:v,altitude:i}),this.width=t,this.height=n,this.scale=N,this.latitude=o,this.longitude=l,this.zoom=f,this.pitch=A,this.bearing=v,this.altitude=i,this.fovy=s,this.center=$,this.meterOffset=T||[0,0,0],this.distanceScales=U,this._initMatrices(),Object.freeze(this)}_initMatrices(){const{width:e,height:t,projectionMatrix:n,viewMatrix:i}=this,s=vm();$v(s,s,n),$v(s,s,i),this.viewProjectionMatrix=s;const o=vm();CF(o,o,[e/2,-t/2,1]),n2(o,o,[1,-1,0]),$v(o,o,s);const l=Ree(vm(),o);if(!l)throw new Error("Pixel project matrix not invertible");this.pixelProjectionMatrix=o,this.pixelUnprojectionMatrix=l}projectFlat(e){return ju(e)}unprojectFlat(e){return Xu(e)}getMapCenterByLngLatPosition({lngLat:e,pos:t}){const n=US(t,this.pixelUnprojectionMatrix),i=ju(e),s=i2([],i,Vee([],n)),o=i2([],this.center,s);return Xu(o)}fitBounds(e,t={}){const{width:n,height:i}=this,{longitude:s,latitude:o,zoom:l}=ete(Object.assign({width:n,height:i,bounds:e},t));return new cc({width:n,height:i,longitude:s,latitude:o,zoom:l})}getBounds(e){const t=this.getBoundingRegion(e),n=Math.min(...t.map(l=>l[0])),i=Math.max(...t.map(l=>l[0])),s=Math.min(...t.map(l=>l[1])),o=Math.max(...t.map(l=>l[1]));return[[n,s],[i,o]]}getBoundingRegion(e={}){return rte(this,e.z||0)}getLocationAtPoint({lngLat:e,pos:t}){return this.getMapCenterByLngLatPosition({lngLat:e,pos:t})}}const jS=512;function nte(r){const{width:e,height:t,pitch:n=0}=r;let{longitude:i,latitude:s,zoom:o,bearing:l=0}=r;(i<-180||i>180)&&(i=LS(i+180,360)-180),(l<-180||l>180)&&(l=LS(l+180,360)-180);const f=Kx(t/jS);if(o<=f)o=f,s=0;else{const A=t/2/Math.pow(2,o),v=Xu([0,A])[1];if(s<v)s=v;else{const T=Xu([0,jS-A])[1];s>T&&(s=T)}}return{width:e,height:t,longitude:i,latitude:s,zoom:o,pitch:n,bearing:l}}const MF=.01,ite=["longitude","latitude","zoom"],RF={curve:1.414,speed:1.2};function ste(r,e,t,n){const{startZoom:i,startCenterXY:s,uDelta:o,w0:l,u1:f,S:A,rho:v,rho2:T,r0:I}=OF(r,e,n);if(f<MF){const ue={};for(const K of ite){const se=r[K],Ee=e[K];ue[K]=Pee(se,Ee,t)}return ue}
2096const F=t*A,N=Math.cosh(I)/Math.cosh(I+v*F),U=l*((Math.cosh(I)*Math.tanh(I+v*F)-Math.sinh(I))/T)/f,$=1/N,V=i+qee($),G=Uee([],o,U);i2(G,G,s);const X=Xu(G);return{longitude:X[0],latitude:X[1],zoom:V}}function ote(r,e,t){const n={...RF,...t},{screenSpeed:i,speed:s,maxDuration:o}=n,{S:l,rho:f}=OF(r,e,n),A=1e3*l;let v;return Number.isFinite(i)?v=A/(i/f):v=A/s,Number.isFinite(o)&&v>o?0:v}function OF(r,e,t){t=Object.assign({},RF,t);const n=t.curve,i=r.zoom,s=[r.longitude,r.latitude],o=o2(i),l=e.zoom,f=[e.longitude,e.latitude],A=o2(l-i),v=ju(s),T=ju(f),I=jee([],T,v),F=Math.max(r.width,r.height),N=F/A,U=zee(I)*o,$=Math.max(U,MF),V=n*n,G=(N*N-F*F+V*V*$*$)/(2*F*V*$),X=(N*N-F*F-V*V*$*$)/(2*N*V*$),ue=Math.log(Math.sqrt(G*G+1)-G),K=Math.log(Math.sqrt(X*X+1)-X),se=(K-ue)/n;return{startZoom:i,startCenterXY:v,uDelta:I,w0:F,u1:U,S:se,rho:n,rho2:V,r0:ue,r1:K}}var Wc=typeof document<"u"?document:{};function GS(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function M0(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?GS(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):GS(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}function HS(r,e){var t;if(typeof Symbol>"u"||r[Symbol.iterator]==null){if(Array.isArray(r)||(t=ate(r))||e){t&&(r=t);var n=0,i=function(){};return{s:i,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(A){throw A},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. 2097In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,o=!1,l;return{s:function(){t=r[Symbol.iterator]()},n:function(){var A=t.next();return s=A.done,A},e:function(A){o=!0,l=A},f:function(){try{!s&&t.return!=null&&t.return()}finally{if(o)throw l}}}}function ate(r,e){if(r){if(typeof r=="string")return WS(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return WS(r,e)}}function WS(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}var lte=["type","source","source-layer","minzoom","maxzoom","filter","layout"];function Xv(r){if(!r)return null;if(typeof r=="string")return r;r.toJS&&(r=r.toJS());var e={},t=HS(r.layers),n;try{for(t.s();!(n=t.n()).done;){var i=n.value;e[i.id]=i}}catch(o){t.e(o)}finally{t.f()}var s=r.layers.map(function(o){var l=e[o.ref],f=null;if("interactive"in o&&(f=M0({},o),delete f.interactive),l){f=f||M0({},o),delete f.ref;var A=HS(lte),v;try{for(A.s();!(v=A.n()).done;){var T=v.value;T in l&&(f[T]=l[T])}}catch(I){A.e(I)}finally{A.f()}}return f||o});return M0(M0({},r),{},{layers:s})}var $S={};function cte(){}function ute(r){r&&console.error(r.error)}var DF={container:At.object,gl:At.object,mapboxApiAccessToken:At.string,mapboxApiUrl:At.string,attributionControl:At.bool,preserveDrawingBuffer:At.bool,reuseMaps:At.bool,transformRequest:At.func,mapOptions:At.object,mapStyle:At.oneOfType([At.string,At.object]),preventStyleDiffing:At.bool,visible:At.bool,asyncRender:At.bool,onLoad:At.func,onError:At.func,width:At.number,height:At.number,viewState:At.object,longitude:At.number,latitude:At.number,zoom:At.number,bearing:At.number,pitch:At.number,altitude:At.number},bm={container:Wc.body,mapboxApiAccessToken:fte(),mapboxApiUrl:"https://api.mapbox.com",preserveDrawingBuffer:!1,attributionControl:!0,reuseMaps:!1,mapOptions:{},mapStyle:"mapbox://styles/mapbox/light-v8",preventStyleDiffing:!1,visible:!0,asyncRender:!1,onLoad:cte,onError:ute,width:0,height:0,longitude:0,latitude:0,zoom:0,bearing:0,pitch:0,altitude:1.5};function fte(){var r=null;if(typeof window<"u"&&window.location){var e=window.location.search.match(/access_token=([^&\/]*)/);r=e&&e[1]}return!r&&typeof process<"u"&&(r=r||$S.MapboxAccessToken||$S.REACT_APP_MAPBOX_ACCESS_TOKEN),r||"no-token"}function XS(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"component";r.debug&&At.checkPropTypes(DF,r,"prop",e)}var gh=(function(){function r(e){var t=this;if(tf(this,r),Er(this,"props",bm),Er(this,"width",0),Er(this,"height",0),Er(this,"_fireLoadEvent",function(){t.props.onLoad({type:"load",target:t._map})}),Er(this,"_handleError",function(n){t.props.onError(n)}),!e.mapboxgl)throw new Error("Mapbox not available");this.mapboxgl=e.mapboxgl,r.initialized||(r.initialized=!0,this._checkStyleSheet(this.mapboxgl.version)),this._initialize(e)}return ef(r,[{key:"finalize",value:function(){return this._destroy(),this}},{key:"setProps",value:function(t){return this._update(this.props,t),this}},{key:"redraw",value:function(){var t=this._map;t.style&&(t._frame&&(t._frame.cancel(),t._frame=null),t._render())}},{key:"getMap",value:function(){return this._map}},{key:"_reuse",value:function(t){this._map=r.savedMap;var n=this._map.getContainer(),i=t.container;for(i.classList.add("mapboxgl-map");n.childNodes.length>0;)i.appendChild(n.childNodes[0]);this._map._container=i,r.savedMap=null,t.mapStyle&&this._map.setStyle(Xv(t.mapStyle),{diff:!1}),this._map.isStyleLoaded()?this._fireLoadEvent():this._map.once("styledata",this._fireLoadEvent)}},{key:"_create",value:function(t){if(t.reuseMaps&&r.savedMap)this._reuse(t);else{if(t.gl){var n=HTMLCanvasElement.prototype.getContext;HTMLCanvasElement.prototype.getContext=function(){return HTMLCanvasElement.prototype.getContext=n,t.gl}}var i={container:t.container,center:[0,0],zoom:8,pitch:0,bearing:0,maxZoom:24,style:Xv(t.mapStyle),interactive:!1,trackResize:!1,attributionControl:t.attributionControl,preserveDrawingBuffer:t.preserveDrawingBuffer};t.transformRequest&&(i.transformRequest=t.transformRequest),this._map=new this.mapboxgl.Map(Object.assign({},i,t.mapOptions)),this._map.once("load",this._fireLoadEvent),this._map.on("error",this._handleError)}return this}},{key:"_destroy",value:function(){this._map&&(this.props.reuseMaps&&!r.savedMap?(r.savedMap=this._map,this._map.off("load",this._fireLoadEvent),this._map.off("error",this._handleError),this._map.off("styledata",this._fireLoadEvent)):this._map.remove(),this._map=null)}},{key:"_initialize",value:function(t){var n=this;t=Object.assign({},bm,t),XS(t,"Mapbox"),this.mapboxgl.accessToken=t.mapboxApiAccessToken||bm.mapboxApiAccessToken,this.mapboxgl.baseApiUrl=t.mapboxApiUrl,this._create(t);var i=t,s=i.container;Object.defineProperty(s,"offsetWidth",{configurable:!0,get:function(){return n.width}}),Object.defineProperty(s,"clientWidth",{configurable:!0,get:function(){return n.width}}),Object.defineProperty(s,"offsetHeight",{configurable:!0,get:function(){return n.height}}),Object.defineProperty(s,"clientHeight",{configurable:!0,get:function(){return n.height}});var o=this._map.getCanvas();o&&(o.style.outline="none"),this._updateMapViewport({},t),this._updateMapSize({},t),this.props=t}},{key:"_update",value:function(t,n){if(this._map){n=Object.assign({},this.props,n),XS(n,"Mapbox");var i=this._updateMapViewport(t,n),s=this._updateMapSize(t,n);this._updateMapStyle(t,n),!n.asyncRender&&(i||s)&&this.redraw(),this.props=n}}},{key:"_updateMapStyle",value:function(t,n){var i=t.mapStyle!==n.mapStyle;i&&this._map.setStyle(Xv(n.mapStyle),{diff:!n.preventStyleDiffing})}},{key:"_updateMapSize",value:function(t,n){var i=t.width!==n.width||t.height!==n.height;return i&&(this.width=n.width,this.height=n.height,this._map.resize()),i}},{key:"_updateMapViewport",value:function(t,n){var i=this._getViewState(t),s=this._getViewState(n),o=s.latitude!==i.latitude||s.longitude!==i.longitude||s.zoom!==i.zoom||s.pitch!==i.pitch||s.bearing!==i.bearing||s.altitude!==i.altitude;return o&&(this._map.jumpTo(this._viewStateToMapboxProps(s)),s.altitude!==i.altitude&&(this._map.transform.altitude=s.altitude)),o}},{key:"_getViewState",value:function(t){var n=t.viewState||t,i=n.longitude,s=n.latitude,o=n.zoom,l=n.pitch,f=l===void 0?0:l,A=n.bearing,v=A===void 0?0:A,T=n.altitude,I=T===void 0?1.5:T;return{longitude:i,latitude:s,zoom:o,pitch:f,bearing:v,altitude:I}}},{key:"_checkStyleSheet",value:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"0.47.0";if(!(typeof Wc>"u"))try{var n=Wc.createElement("div");n.className="mapboxgl-map",n.style.display="none",Wc.body.appendChild(n);var i=window.getComputedStyle(n).position!=="static";if(!i){var s=Wc.createElement("link");s.setAttribute("rel","stylesheet"),s.setAttribute("type","text/css"),s.setAttribute("href","https://api.tiles.mapbox.com/mapbox-gl-js/v".concat(t,"/mapbox-gl.css")),Wc.head.appendChild(s)}}catch{}}},{key:"_viewStateToMapboxProps",value:function(t){return{center:[t.longitude,t.latitude],zoom:t.zoom,bearing:t.bearing,pitch:t.pitch}}}]),r})();Er(gh,"initialized",!1);
2097Er(gh,"propTypes",DF);Er(gh,"defaultProps",bm);Er(gh,"savedMap",null);var xm={exports:{}},hte=xm.exports,qS;function dte(){return qS||(qS=1,(function(r,e){(function(t,n){r.exports=n()})(hte,(function(){var t,n,i;function s(o,l){if(!t)t=l;else if(!n)n=l;else{var f="var sharedChunk = {}; ("+t+")(sharedChunk); ("+n+")(sharedChunk);",A={};t(A),i=l(A),typeof window<"u"&&(i.workerUrl=window.URL.createObjectURL(new Blob([f],{type:"text/javascript"})))}}return s(["exports"],(function(o){function l(a,u){return a(u={exports:{}},u.exports),u.exports}var f=A;function A(a,u,p,x){this.cx=3*a,this.bx=3*(p-a)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*u,this.by=3*(x-u)-this.cy,this.ay=1-this.cy-this.by,this.p1x=a,this.p1y=x,this.p2x=p,this.p2y=x}A.prototype.sampleCurveX=function(a){return((this.ax*a+this.bx)*a+this.cx)*a},A.prototype.sampleCurveY=function(a){return((this.ay*a+this.by)*a+this.cy)*a},A.prototype.sampleCurveDerivativeX=function(a){return(3*this.ax*a+2*this.bx)*a+this.cx},A.prototype.solveCurveX=function(a,u){var p,x,C,B,O;for(u===void 0&&(u=1e-6),C=a,O=0;O<8;O++){if(B=this.sampleCurveX(C)-a,Math.abs(B)<u)return C;var k=this.sampleCurveDerivativeX(C);if(Math.abs(k)<1e-6)break;C-=B/k}if((C=a)<(p=0))return p;if(C>(x=1))return x;for(;p<x;){if(B=this.sampleCurveX(C),Math.abs(B-a)<u)return C;a>B?p=C:x=C,C=.5*(x-p)+p}return C},A.prototype.solve=function(a,u){return this.sampleCurveY(this.solveCurveX(a,u))};var v=T;function T(a,u){this.x=a,this.y=u}T.prototype={clone:function(){return new T(this.x,this.y)},add:function(a){return this.clone()._add(a)},sub:function(a){return this.clone()._sub(a)},multByPoint:function(a){return this.clone()._multByPoint(a)},divByPoint:function(a){return this.clone()._divByPoint(a)},mult:function(a){return this.clone()._mult(a)},div:function(a){return this.clone()._div(a)},rotate:function(a){return this.clone()._rotate(a)},rotateAround:function(a,u){return this.clone()._rotateAround(a,u)},matMult:function(a){return this.clone()._matMult(a)},unit:function(){return this.clone()._unit()},perp:function(){return this.clone()._perp()},round:function(){return this.clone()._round()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(a){return this.x===a.x&&this.y===a.y},dist:function(a){return Math.sqrt(this.distSqr(a))},distSqr:function(a){var u=a.x-this.x,p=a.y-this.y;return u*u+p*p},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(a){return Math.atan2(this.y-a.y,this.x-a.x)},angleWith:function(a){return this.angleWithSep(a.x,a.y)},angleWithSep:function(a,u){return Math.atan2(this.x*u-this.y*a,this.x*a+this.y*u)},_matMult:function(a){var u=a[2]*this.x+a[3]*this.y;return this.x=a[0]*this.x+a[1]*this.y,this.y=u,this},_add:function(a){return this.x+=a.x,this.y+=a.y,this},_sub:function(a){return this.x-=a.x,this.y-=a.y,this},_mult:function(a){return this.x*=a,this.y*=a,this},_div:function(a){return this.x/=a,this.y/=a,this},_multByPoint:function(a){return this.x*=a.x,this.y*=a.y,this},_divByPoint:function(a){return this.x/=a.x,this.y/=a.y,this},_unit:function(){return this._div(this.mag()),this},_perp:function(){var a=this.y;return this.y=this.x,this.x=-a,this},_rotate:function(a){var u=Math.cos(a),p=Math.sin(a),x=p*this.x+u*this.y;return this.x=u*this.x-p*this.y,this.y=x,this},_rotateAround:function(a,u){var p=Math.cos(a),x=Math.sin(a),C=u.y+x*(this.x-u.x)+p*(this.y-u.y);return this.x=u.x+p*(this.x-u.x)-x*(this.y-u.y),this.y=C,this},_round:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},T.convert=function(a){return a instanceof T?a:Array.isArray(a)?new T(a[0],a[1]):a};var I=typeof self<"u"?self:{},F=Math.pow(2,53)-1;function N(a,u,p,x){var C=new f(a,u,p,x);return function(B){return C.solve(B)}}var U=N(.25,.1,.25,1);function $(a,u,p){return Math.min(p,Math.max(u,a))}function V(a,u,p){var x=p-u,C=((a-u)%x+x)%x+u;return C===u?p:C}function G(a){for(var u=[],p=arguments.length-1;p-- >0;)u[p]=arguments[p+1];for(var x=0,C=u;x<C.length;x+=1){var B=C[x];for(var O in B)a[O]=B[O]}return a}var X=1;function ue(){return X++}function K(){return(function a(u){return u?(u^16*Math.random()>>u/4).toString(16):([1e7]+-[1e3]+-4e3+-8e3+-1e11).replace(/[018]/g,a)})()}function se(a){return!!a&&/^[0-9a-f]{8}-[0-9a-f]{4}-[4][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i.test(a)}function Ee(a,u){a.forEach((function(p){u[p]&&(u[p]=u[p].bind(u))}))}function Ue(a,u){return a.indexOf(u,a.length-u.length)!==-1}function de(a,u,p){var x={};for(var C in a)x[C]=u.call(p||this,a[C],C,a);return x}
2097function me(a,u,p){var x={};for(var C in a)u.call(p||this,a[C],C,a)&&(x[C]=a[C]);return x}function pe(a){return Array.isArray(a)?a.map(pe):typeof a=="object"&&a?de(a,pe):a}var W={};function te(a){W[a]||(typeof console<"u"&&console.warn(a),W[a]=!0)}function Ce(a,u,p){return(p.y-a.y)*(u.x-a.x)>(u.y-a.y)*(p.x-a.x)}function Qe(a){for(var u=0,p=0,x=a.length,C=x-1,B=void 0,O=void 0;p<x;C=p++)u+=((O=a[C]).x-(B=a[p]).x)*(B.y+O.y);return u}function we(){return typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope}function De(a){var u={};if(a.replace(/(?:^|(?:\s*\,\s*))([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)(?:\=(?:([^\x00-\x20\(\)<>@\,;\:\\"\/\[\]\?\=\{\}\x7F]+)|(?:\"((?:[^"\\]|\\.)*)\")))?/g,(function(x,C,B,O){var k=B||O;return u[C]=!k||k.toLowerCase(),""})),u["max-age"]){var p=parseInt(u["max-age"],10);isNaN(p)?delete u["max-age"]:u["max-age"]=p}return u}var ze=null;function Ze(a){if(ze==null){var u=a.navigator?a.navigator.userAgent:null;ze=!!a.safari||!(!u||!(/\b(iPad|iPhone|iPod)\b/.test(u)||u.match("Safari")&&!u.match("Chrome")))}return ze}function tt(a){try{var u=I[a];return u.setItem("_mapbox_test_",1),u.removeItem("_mapbox_test_"),!0}catch{return!1}}var rt,ct,bt,It,st=I.performance&&I.performance.now?I.performance.now.bind(I.performance):Date.now.bind(Date),pr=I.requestAnimationFrame||I.mozRequestAnimationFrame||I.webkitRequestAnimationFrame||I.msRequestAnimationFrame,Qt=I.cancelAnimationFrame||I.mozCancelAnimationFrame||I.webkitCancelAnimationFrame||I.msCancelAnimationFrame,Jt={now:st,frame:function(a){var u=pr(a);return{cancel:function(){return Qt(u)}}},getImageData:function(a,u){u===void 0&&(u=0);var p=I.document.createElement("canvas"),x=p.getContext("2d");if(!x)throw new Error("failed to create canvas 2d context");return p.width=a.width,p.height=a.height,x.drawImage(a,0,0,a.width,a.height),x.getImageData(-u,-u,a.width+2*u,a.height+2*u)},resolveURL:function(a){return rt||(rt=I.document.createElement("a")),rt.href=a,rt.href},hardwareConcurrency:I.navigator&&I.navigator.hardwareConcurrency||4,get devicePixelRatio(){return I.devicePixelRatio},get prefersReducedMotion(){return!!I.matchMedia&&(ct==null&&(ct=I.matchMedia("(prefers-reduced-motion: reduce)")),ct.matches)}},Nt={API_URL:"https://api.mapbox.com",get EVENTS_URL(){return this.API_URL?this.API_URL.indexOf("https://api.mapbox.cn")===0?"https://events.mapbox.cn/events/v2":this.API_URL.indexOf("https://api.mapbox.com")===0?"https://events.mapbox.com/events/v2":null:null},FEEDBACK_URL:"https://apps.mapbox.com/feedback",REQUIRE_ACCESS_TOKEN:!0,ACCESS_TOKEN:null,MAX_PARALLEL_IMAGE_REQUESTS:16},Ar={supported:!1,testSupport:function(a){!cn&&It&&(Mr?_r(a):bt=a)}},cn=!1,Mr=!1;function _r(a){var u=a.createTexture();a.bindTexture(a.TEXTURE_2D,u);try{if(a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,It),a.isContextLost())return;Ar.supported=!0}
2097catch{}a.deleteTexture(u),cn=!0}I.document&&((It=I.document.createElement("img")).onload=function(){bt&&_r(bt),bt=null,Mr=!0},It.onerror=function(){cn=!0,bt=null},It.src="data:image/webp;base64,UklGRh4AAABXRUJQVlA4TBEAAAAvAQAAAAfQ//73v/+BiOh/AAA=");var Gn="01",yr=function(a,u){this._transformRequestFn=a,this._customAccessToken=u,this._createSkuToken()};function vr(a){return a.indexOf("mapbox:")===0}yr.prototype._createSkuToken=function(){var a=(function(){for(var u="",p=0;p<10;p++)u+="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"[Math.floor(62*Math.random())];return{token:["1",Gn,u].join(""),tokenExpiresAt:Date.now()+432e5}})();this._skuToken=a.token,this._skuTokenExpiresAt=a.tokenExpiresAt},yr.prototype._isSkuTokenExpired=function(){return Date.now()>this._skuTokenExpiresAt},yr.prototype.transformRequest=function(a,u){return this._transformRequestFn&&this._transformRequestFn(a,u)||{url:a}},yr.prototype.normalizeStyleURL=function(a,u){if(!vr(a))return a;var p=Yn(a);return p.path="/styles/v1"+p.path,this._makeAPIURL(p,this._customAccessToken||u)},yr.prototype.normalizeGlyphsURL=function(a,u){if(!vr(a))return a;var p=Yn(a);return p.path="/fonts/v1"+p.path,this._makeAPIURL(p,this._customAccessToken||u)},yr.prototype.normalizeSourceURL=function(a,u){if(!vr(a))return a;var p=Yn(a);return p.path="/v4/"+p.authority+".json",p.params.push("secure"),this._makeAPIURL(p,this._customAccessToken||u)},yr.prototype.normalizeSpriteURL=function(a,u,p,x){var C=Yn(a);return vr(a)?(C.path="/styles/v1"+C.path+"/sprite"+u+p,this._makeAPIURL(C,this._customAccessToken||x)):(C.path+=""+u+p,mn(C))},yr.prototype.normalizeTileURL=function(a,u){if(this._isSkuTokenExpired()&&this._createSkuToken(),a&&!vr(a))return a;var p=Yn(a);p.path=p.path.replace(/(\.(png|jpg)\d*)(?=$)/,(Jt.devicePixelRatio>=2||u===512?"@2x":"")+(Ar.supported?".webp":"$1")),p.path=p.path.replace(/^.+\/v4\//,"/"),p.path="/v4"+p.path;var x=this._customAccessToken||(function(C){for(var B=0,O=C;B<O.length;B+=1){var k=O[B].match(/^access_token=(.*)$/);if(k)return k[1]}return null})(p.params)||Nt.ACCESS_TOKEN;return Nt.REQUIRE_ACCESS_TOKEN&&x&&this._skuToken&&p.params.push("sku="+this._skuToken),this._makeAPIURL(p,x)},yr.prototype.canonicalizeTileURL=function(a,u){var p=Yn(a);if(!p.path.match(/(^\/v4\/)/)||!p.path.match(/\.[\w]+$/))return a;var x="mapbox://tiles/";x+=p.path.replace("/v4/","");var C=p.params;return u&&(C=C.filter((function(B){return!B.match(/^access_token=/)}))),C.length&&(x+="?"+C.join("&")),x},yr.prototype.canonicalizeTileset=function(a,u){for(var p=!!u&&vr(u),x=[],C=0,B=a.tiles||[];C<B.length;C+=1){var O=B[C];Dr(O)?x.push(this.canonicalizeTileURL(O,p)):x.push(O)}return x},yr.prototype._makeAPIURL=function(a,u){var p="See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes",x=Yn(Nt.API_URL);if(a.protocol=x.protocol,a.authority=x.authority,a.protocol==="http"){var C=a.params.indexOf("secure");C>=0&&a.params.splice(C,1)}if(x.path!=="/"&&(a.path=""+x.path+a.path),!Nt.REQUIRE_ACCESS_TOKEN)return mn(a);if(!(u=u||Nt.ACCESS_TOKEN))throw new Error("An API access token is required to use Mapbox GL. "+p);if(u[0]==="s")throw new Error("Use a public access token (pk.*) with Mapbox GL, not a secret access token (sk.*). "+p);return a.params=a.params.filter((function(B){return B.indexOf("access_token")===-1})),a.params.push("access_token="+u),mn(a)};var un=/^((https?:)?\/\/)?([^\/]+\.)?mapbox\.c(n|om)(\/|\?|$)/i;function Dr(a){return un.test(a)}var li=/^(\w+):\/\/([^/?]*)(\/[^?]+)?\??(.+)?/;function Yn(a){var u=a.match(li);if(!u)throw new Error("Unable to parse URL object");return{protocol:u[1],authority:u[2],path:u[3]||"/",params:u[4]?u[4].split("&"):[]}}function mn(a){var u=a.params.length?"?"+a.params.join("&"):"";return a.protocol+"://"+a.authority+a.path+u}function ri(a){if(!a)return null;var u=a.split(".");if(!u||u.length!==3)return null;try{return JSON.parse(decodeURIComponent(I.atob(u[1]).split("").map((function(p){return"%"+("00"+p.charCodeAt(0).toString(16)).slice(-2)})).join("")))}catch{return null}}var Hn=function(a){this.type=a,this.anonId=null,this.eventData={},this.queue=[],this.pendingRequest=null};Hn.prototype.getStorageKey=function(a){var u,p=ri(Nt.ACCESS_TOKEN);return u=p&&p.u?I.btoa(encodeURIComponent(p.u).replace(/%([0-9A-F]{2})/g,(function(x,C){return String.fromCharCode(+("0x"+C))}))):Nt.ACCESS_TOKEN||"",a?"mapbox.eventData."+a+":"+u:"mapbox.eventData:"+u},Hn.prototype.fetchEventData=function(){var a=tt("localStorage"),u=this.getStorageKey(),p=this.getStorageKey("uuid");if(a)try{var x=I.localStorage.getItem(u);x&&(this.eventData=JSON.parse(x));var C=I.localStorage.getItem(p);C&&(this.anonId=C)}catch{te("Unable to read from LocalStorage")}},Hn.prototype.saveEventData=function(){var a=tt("localStorage"),u=this.getStorageKey(),p=this.getStorageKey("uuid");if(a)try{I.localStorage.setItem(p,this.anonId),Object.keys(this.eventData).length>=1&&I.localStorage.setItem(u,JSON.stringify(this.eventData))}catch{te("Unable to write to LocalStorage")}},Hn.prototype.processRequests=function(a){},Hn.prototype.postEvent=function(a,u,p,x){var C=this;if(Nt.EVENTS_URL){var B=Yn(Nt.EVENTS_URL);B.params.push("access_token="+(x||Nt.ACCESS_TOKEN||""));var O={event:this.type,created:new Date(a).toISOString(),sdkIdentifier:"mapbox-gl-js",sdkVersion:"1.13.3",skuId:Gn,userId:this.anonId},k=u?G(O,u):O,j={url:mn(B),headers:{"Content-Type":"text/plain"},body:JSON.stringify([k])};this.pendingRequest=ut(j,(function(J){C.pendingRequest=null,p(J),C.saveEventData(),C.processRequests(x)}))}},Hn.prototype.queueRequest=function(a,u){this.queue.push(a),this.processRequests(u)};var Sn,Qn,jt=(function(a){function u(){a.call(this,"map.load"),this.success={},this.skuToken=""}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.postMapLoadEvent=function(p,x,C,B){this.skuToken=C;var O=!(!B&&!Nt.ACCESS_TOKEN),k=Array.isArray(p)&&p.some((function(j){return vr(j)||Dr(j)}));Nt.EVENTS_URL&&O&&k&&this.queueRequest({id:x,timestamp:Date.now()},B)},u.prototype.processRequests=function(p){var x=this;if(!this.pendingRequest&&this.queue.length!==0){var C=this.queue.shift(),B=C.id,O=C.timestamp;B&&this.success[B]||(this.anonId||this.fetchEventData(),se(this.anonId)||(this.anonId=K()),this.postEvent(O,{skuToken:this.skuToken},(function(k){k||B&&(x.success[B]=!0)}),p))}},u})(Hn),mr=new((function(a){function u(p){a.call(this,"appUserTurnstile"),this._customAccessToken=p}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.postTurnstileEvent=function(p,x){Nt.EVENTS_URL&&Nt.ACCESS_TOKEN&&Array.isArray(p)&&p.some((function(C){return vr(C)||Dr(C)}))&&this.queueRequest(Date.now(),x)},u.prototype.processRequests=function(p){var x=this;if(!this.pendingRequest&&this.queue.length!==0){this.anonId&&this.eventData.lastSuccess&&this.eventData.tokenU||this.fetchEventData();var C=ri(Nt.ACCESS_TOKEN),B=C?C.u:Nt.ACCESS_TOKEN,O=B!==this.eventData.tokenU;se(this.anonId)||(this.anonId=K(),O=!0);var k=this.queue.shift();if(this.eventData.lastSuccess){var j=new Date(this.eventData.lastSuccess),J=new Date(k),Q=(k-this.eventData.lastSuccess)/864e5;O=O||Q>=1||Q<-1||j.getDate()!==J.getDate()}else O=!0;
2097if(!O)return this.processRequests();this.postEvent(k,{"enabled.telemetry":!1},(function(ie){ie||(x.eventData.lastSuccess=k,x.eventData.tokenU=B)}),p)}},u})(Hn)),Rr=mr.postTurnstileEvent.bind(mr),nn=new jt,gi=nn.postMapLoadEvent.bind(nn),Pe=500,kt=50;function Wt(){I.caches&&!Sn&&(Sn=I.caches.open("mapbox-tiles"))}function cr(a){var u=a.indexOf("?");return u<0?a:a.slice(0,u)}var Ye,Rt=1/0;function Ae(){return Ye==null&&(Ye=I.OffscreenCanvas&&new I.OffscreenCanvas(1,1).getContext("2d")&&typeof I.createImageBitmap=="function"),Ye}var Vt={Unknown:"Unknown",Style:"Style",Source:"Source",Tile:"Tile",Glyphs:"Glyphs",SpriteImage:"SpriteImage",SpriteJSON:"SpriteJSON",Image:"Image"};typeof Object.freeze=="function"&&Object.freeze(Vt);var Et=(function(a){function u(p,x,C){x===401&&Dr(C)&&(p+=": you may have provided an invalid Mapbox access token. See https://www.mapbox.com/api-documentation/#access-tokens-and-token-scopes"),a.call(this,p),this.status=x,this.url=C,this.name=this.constructor.name,this.message=p}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.toString=function(){return this.name+": "+this.message+" ("+this.status+"): "+this.url},u})(Error),H=we()?function(){return self.worker&&self.worker.referrer}:function(){return(I.location.protocol==="blob:"?I.parent:I).location.href},vt,St,Te=function(a,u){if(!(/^file:/.test(p=a.url)||/^file:/.test(H())&&!/^\w+:/.test(p))){if(I.fetch&&I.Request&&I.AbortController&&I.Request.prototype.hasOwnProperty("signal"))return(function(x,C){var B,O=new I.AbortController,k=new I.Request(x.url,{method:x.method||"GET",body:x.body,credentials:x.credentials,headers:x.headers,referrer:H(),signal:O.signal}),j=!1,J=!1,Q=(B=k.url).indexOf("sku=")>0&&Dr(B);x.type==="json"&&k.headers.set("Accept","application/json");var ie=function(_e,ke,Ne){if(!J){if(_e&&_e.message!=="SecurityError"&&te(_e),ke&&Ne)return fe(ke);var He=Date.now();I.fetch(k).then((function(je){if(je.ok){var Ke=Q?je.clone():null;return fe(je,Ke,He)}return C(new Et(je.statusText,je.status,x.url))})).catch((function(je){je.code!==20&&C(new Error(je.message))}))}},fe=function(_e,ke,Ne){(x.type==="arrayBuffer"?_e.arrayBuffer():x.type==="json"?_e.json():_e.text()).then((function(He){J||(ke&&Ne&&(function(je,Ke,lt){if(Wt(),Sn){var mt={status:Ke.status,statusText:Ke.statusText,headers:new I.Headers};Ke.headers.forEach((function(Ot,Ht){return mt.headers.set(Ht,Ot)}));var yt=De(Ke.headers.get("Cache-Control")||"");yt["no-store"]||(yt["max-age"]&&mt.headers.set("Expires",new Date(lt+1e3*yt["max-age"]).toUTCString()),new Date(mt.headers.get("Expires")).getTime()-lt<42e4||(function(Ot,Ht){if(Qn===void 0)try{new Response(new ReadableStream),Qn=!0}catch{Qn=!1}Qn?Ht(Ot.body):Ot.blob().then(Ht)})(Ke,(function(Ot){var Ht=new I.Response(Ot,mt);Wt(),Sn&&Sn.then((function(Kt){return Kt.put(cr(je.url),Ht)})).catch((function(Kt){return te(Kt.message)}))})))}})(k,ke,Ne),j=!0,C(null,He,_e.headers.get("Cache-Control"),_e.headers.get("Expires")))})).catch((function(He){J||C(new Error(He.message))}))};return Q?(function(_e,ke){if(Wt(),!Sn)return ke(null);var Ne=cr(_e.url);Sn.then((function(He){He.match(Ne).then((function(je){var Ke=(function(lt){if(!lt)return!1;var mt=new Date(lt.headers.get("Expires")||0),yt=De(lt.headers.get("Cache-Control")||"");return mt>Date.now()&&!yt["no-cache"]})(je);He.delete(Ne),Ke&&He.put(Ne,je.clone()),ke(null,je,Ke)})).catch(ke)})).catch(ke)})(k,ie):ie(null,null),{cancel:function(){J=!0,j||O.abort()}}})(a,u);if(we()&&self.worker&&self.worker.actor)return self.worker.actor.send("getResource",a,u,void 0,!0)}var p;return(function(x,C){var B=new I.XMLHttpRequest;for(var O in B.open(x.method||"GET",x.url,!0),x.type==="arrayBuffer"&&(B.responseType="arraybuffer"),x.headers)B.setRequestHeader(O,x.headers[O]);return x.type==="json"&&(B.responseType="text",B.setRequestHeader("Accept","application/json")),B.withCredentials=x.credentials==="include",B.onerror=function(){C(new Error(B.statusText))},B.onload=function(){if((B.status>=200&&B.status<300||B.status===0)&&B.response!==null){var k=B.response;if(x.type==="json")try{k=JSON.parse(B.response)}catch(j){return C(j)}
2097C(null,k,B.getResponseHeader("Cache-Control"),B.getResponseHeader("Expires"))}else C(new Et(B.statusText,B.status,x.url))},B.send(x.body),{cancel:function(){return B.abort()}}})(a,u)},Xe=function(a,u){return Te(G(a,{type:"arrayBuffer"}),u)},ut=function(a,u){return Te(G(a,{method:"POST"}),u)},Z="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQYV2NgAAIAAAUAAarVyFEAAAAASUVORK5CYII=";vt=[],St=0;var ne=function(a,u){if(Ar.supported&&(a.headers||(a.headers={}),a.headers.accept="image/webp,*/*"),St>=Nt.MAX_PARALLEL_IMAGE_REQUESTS){var p={requestParameters:a,callback:u,cancelled:!1,cancel:function(){this.cancelled=!0}};return vt.push(p),p}St++;var x=!1,C=function(){if(!x)for(x=!0,St--;vt.length&&St<Nt.MAX_PARALLEL_IMAGE_REQUESTS;){var O=vt.shift();O.cancelled||(O.cancel=ne(O.requestParameters,O.callback).cancel)}},B=Xe(a,(function(O,k,j,J){C(),O?u(O):k&&(Ae()?(function(Q,ie){var fe=new I.Blob([new Uint8Array(Q)],{type:"image/png"});I.createImageBitmap(fe).then((function(_e){ie(null,_e)})).catch((function(_e){ie(new Error("Could not load image because of "+_e.message+". Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))}))})(k,u):(function(Q,ie,fe,_e){var ke=new I.Image,Ne=I.URL;ke.onload=function(){ie(null,ke),Ne.revokeObjectURL(ke.src),ke.onload=null,I.requestAnimationFrame((function(){ke.src=Z}))},ke.onerror=function(){return ie(new Error("Could not load image. Please make sure to use a supported image type such as PNG or JPEG. Note that SVGs are not supported."))};var He=new I.Blob([new Uint8Array(Q)],{type:"image/png"});ke.cacheControl=fe,ke.expires=_e,ke.src=Q.byteLength?Ne.createObjectURL(He):Z})(k,u,j,J))}));return{cancel:function(){B.cancel(),C()}}};function ce(a,u,p){p[a]&&p[a].indexOf(u)!==-1||(p[a]=p[a]||[],p[a].push(u))}function ye(a,u,p){if(p&&p[a]){var x=p[a].indexOf(u);x!==-1&&p[a].splice(x,1)}}var Le=function(a,u){u===void 0&&(u={}),G(this,u),this.type=a},he=(function(a){function u(p,x){x===void 0&&(x={}),a.call(this,"error",G({error:p},x))}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u})(Le),ve=function(){};ve.prototype.on=function(a,u){return this._listeners=this._listeners||{},ce(a,u,this._listeners),this},ve.prototype.off=function(a,u){return ye(a,u,this._listeners),ye(a,u,this._oneTimeListeners),this},ve.prototype.once=function(a,u){return this._oneTimeListeners=this._oneTimeListeners||{},ce(a,u,this._oneTimeListeners),this},ve.prototype.fire=function(a,u){typeof a=="string"&&(a=new Le(a,u||{}));var p=a.type;if(this.listens(p)){a.target=this;for(var x=0,C=this._listeners&&this._listeners[p]?this._listeners[p].slice():[];x<C.length;x+=1)C[x].call(this,a);for(var B=0,O=this._oneTimeListeners&&this._oneTimeListeners[p]?this._oneTimeListeners[p].slice():[];B<O.length;B+=1){var k=O[B];ye(p,k,this._oneTimeListeners),k.call(this,a)}var j=this._eventedParent;j&&(G(a,typeof this._eventedParentData=="function"?this._eventedParentData():this._eventedParentData),j.fire(a))}else a instanceof he&&console.error(a.error);return this},ve.prototype.listens=function(a){return this._listeners&&this._listeners[a]&&this._listeners[a].length>0||this._oneTimeListeners&&this._oneTimeListeners[a]&&this._oneTimeListeners[a].length>0||this._eventedParent&&this._eventedParent.listens(a)},ve.prototype.setEventedParent=function(a,u){return this._eventedParent=a,this._eventedParentData=u,this};var ae
vendor: 19,005 bytes, line 2097
2097={$version:8,$root:{version:{required:!0,type:"enum",values:[8]},name:{type:"string"},metadata:{type:"*"},center:{type:"array",value:"number"},zoom:{type:"number"},bearing:{type:"number",default:0,period:360,units:"degrees"},pitch:{type:"number",default:0,units:"degrees"},light:{type:"light"},sources:{required:!0,type:"sources"},sprite:{type:"string"},glyphs:{type:"string"},transition:{type:"transition"},layers:{required:!0,type:"array",value:"layer"}},sources:{"*":{type:"source"}},source:["source_vector","source_raster","source_raster_dem","source_geojson","source_video","source_image"],source_vector:{type:{required:!0,type:"enum",values:{vector:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},attribution:{type:"string"},promoteId:{type:"promoteId"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster:{type:{required:!0,type:"enum",values:{raster:{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},scheme:{type:"enum",values:{xyz:{},tms:{}},default:"xyz"},attribution:{type:"string"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_raster_dem:{type:{required:!0,type:"enum",values:{"raster-dem":{}}},url:{type:"string"},tiles:{type:"array",value:"string"},bounds:{type:"array",value:"number",length:4,default:[-180,-85.051129,180,85.051129]},minzoom:{type:"number",default:0},maxzoom:{type:"number",default:22},tileSize:{type:"number",default:512,units:"pixels"},attribution:{type:"string"},encoding:{type:"enum",values:{terrarium:{},mapbox:{}},default:"mapbox"},volatile:{type:"boolean",default:!1},"*":{type:"*"}},source_geojson:{type:{required:!0,type:"enum",values:{geojson:{}}},data:{type:"*"},maxzoom:{type:"number",default:18},attribution:{type:"string"},buffer:{type:"number",default:128,maximum:512,minimum:0},filter:{type:"*"},tolerance:{type:"number",default:.375},cluster:{type:"boolean",default:!1},clusterRadius:{type:"number",default:50,minimum:0},clusterMaxZoom:{type:"number"},clusterMinPoints:{type:"number"},clusterProperties:{type:"*"},lineMetrics:{type:"boolean",default:!1},generateId:{type:"boolean",default:!1},promoteId:{type:"promoteId"}},source_video:{type:{required:!0,type:"enum",values:{video:{}}},urls:{required:!0,type:"array",value:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},source_image:{type:{required:!0,type:"enum",values:{image:{}}},url:{required:!0,type:"string"},coordinates:{required:!0,type:"array",length:4,value:{type:"array",length:2,value:"number"}}},layer:{id:{type:"string",required:!0},type:{type:"enum",values:{fill:{},line:{},symbol:{},circle:{},heatmap:{},"fill-extrusion":{},raster:{},hillshade:{},background:{}},required:!0},metadata:{type:"*"},source:{type:"string"},"source-layer":{type:"string"},minzoom:{type:"number",minimum:0,maximum:24},maxzoom:{type:"number",minimum:0,maximum:24},filter:{type:"filter"},layout:{type:"layout"},paint:{type:"paint"}},layout:["layout_fill","layout_line","layout_circle","layout_heatmap","layout_fill-extrusion","layout_symbol","layout_raster","layout_hillshade","layout_background"],layout_background:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_fill:{"fill-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_circle:{"circle-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_heatmap:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},"layout_fill-extrusion":{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_line:{"line-cap":{type:"enum",values:{butt:{},round:{},square:{}},default:"butt",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-join":{type:"enum",values:{bevel:{},round:{},miter:{}},default:"miter",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"line-miter-limit":{type:"number",default:2,requires:[{"line-join":"miter"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-round-limit":{type:"number",default:1.05,requires:[{"line-join":"round"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_symbol:{"symbol-placement":{type:"enum",values:{point:{},line:{},"line-center":{}},default:"point",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-spacing":{type:"number",default:250,minimum:1,units:"pixels",requires:[{"symbol-placement":"line"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"symbol-avoid-edges":{type:"boolean",default:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"symbol-sort-key":{type:"number",expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"symbol-z-order":{type:"enum",values:{auto:{},"viewport-y":{},source:{}},default:"auto",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-allow-overlap":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-ignore-placement":{type:"boolean",default:!1,requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-optional":{type:"boolean",default:!1,requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-size":{type:"number",default:1,minimum:0,units:"factor of the original icon size",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-text-fit":{type:"enum",values:{none:{},width:{},height:{},both:{}},default:"none",requires:["icon-image","text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-text-fit-padding":{type:"array",value:"number",length:4,default:[0,0,0,0],units:"pixels",requires:["icon-image","text-field",{"icon-text-fit":["both","width","height"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-image":{type:"resolvedImage",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-keep-upright":{type:"boolean",default:!1,requires:["icon-image",{"icon-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"icon-offset":{type:"array",value:"number",length:2,default:[0,0],requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"icon-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-pitch-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotation-alignment":{type:"enum",values:{map:{},viewport:{},auto:{}},default:"auto",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-field":{type:"formatted",default:"",tokens:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-font":{type:"array",value:"string",default:["Open Sans Regular","Arial Unicode MS Regular"],requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-size":{type:"number",default:16,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-width":{type:"number",default:10,minimum:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-line-height":{type:"number",default:1.2,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-letter-spacing":{type:"number",default:0,units:"ems",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-justify":{type:"enum",values:{auto:{},left:{},center:{},right:{}},default:"center",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-radial-offset":{type:"number",units:"ems",default:0,requires:["text-field"],"property-type":"data-driven",expression:{interpolated:!0,parameters:["zoom","feature"]}},"text-variable-anchor":{type:"array",value:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-anchor":{type:"enum",values:{center:{},left:{},right:{},top:{},bottom:{},"top-left":{},"top-right":{},"bottom-left":{},"bottom-right":{}},default:"center",requires:["text-field",{"!":"text-variable-anchor"}],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-max-angle":{type:"number",default:45,units:"degrees",requires:["text-field",{"symbol-placement":["line","line-center"]}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-writing-mode":{type:"array",value:"enum",values:{horizontal:{},vertical:{}},requires:["text-field",{"symbol-placement":["point"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-rotate":{type:"number",default:0,period:360,units:"degrees",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-padding":{type:"number",default:2,minimum:0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-keep-upright":{type:"boolean",default:!0,requires:["text-field",{"text-rotation-alignment":"map"},{"symbol-placement":["line","line-center"]}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-transform":{type:"enum",values:{none:{},uppercase:{},lowercase:{}},default:"none",requires:["text-field"],expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-offset":{type:"array",value:"number",units:"ems",length:2,default:[0,0],requires:["text-field",{"!":"text-radial-offset"}],expression:{interpolated:!0,parameters:["zoom","feature"]},"property-type":"data-driven"},"text-allow-overlap":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-ignore-placement":{type:"boolean",default:!1,requires:["text-field"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-optional":{type:"boolean",default:!1,requires:["text-field","icon-image"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_raster:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},layout_hillshade:{visibility:{type:"enum",values:{visible:{},none:{}},default:"visible","property-type":"constant"}},filter:{type:"array",value:"*"},filter_operator:{type:"enum",values:{"==":{},"!=":{},">":{},">=":{},"<":{},"<=":{},in:{},"!in":{},all:{},any:{},none:{},has:{},"!has":{},within:{}}},geometry_type:{type:"enum",values:{Point:{},LineString:{},Polygon:{}}},function:{expression:{type:"expression"},stops:{type:"array",value:"function_stop"},base:{type:"number",default:1,minimum:0},property:{type:"string",default:"$zoom"},type:{type:"enum",values:{identity:{},exponential:{},interval:{},categorical:{}},default:"exponential"},colorSpace:{type:"enum",values:{rgb:{},lab:{},hcl:{}},default:"rgb"},default:{type:"*",required:!1}},function_stop:{type:"array",minimum:0,maximum:24,value:["number","color"],length:2},expression:{type:"array",value:"*",minimum:1},light:{anchor:{type:"enum",default:"viewport",values:{map:{},viewport:{}},"property-type":"data-constant",transition:!1,expression:{interpolated:!1,parameters:["zoom"]}},position:{type:"array",default:[1.15,210,30],length:3,value:"number","property-type":"data-constant",transition:!0,expression:{interpolated:!0,parameters:["zoom"]}},color:{type:"color","property-type":"data-constant",default:"#ffffff",expression:{interpolated:!0,parameters:["zoom"]},transition:!0},intensity:{type:"number","property-type":"data-constant",default:.5,minimum:0,maximum:1,expression:{interpolated:!0,parameters:["zoom"]},transition:!0}},paint:["paint_fill","paint_line","paint_circle","paint_heatmap","paint_fill-extrusion","paint_symbol","paint_raster","paint_hillshade","paint_background"],paint_fill:{"fill-antialias":{type:"boolean",default:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-outline-color":{type:"color",transition:!0,requires:[{"!":"fill-pattern"},{"fill-antialias":!0}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"}},"paint_fill-extrusion":{"fill-extrusion-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"fill-extrusion-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["fill-extrusion-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"fill-extrusion-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"fill-extrusion-height":{type:"number",default:0,minimum:0,units:"meters",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-base":{type:"number",default:0,minimum:0,units:"meters",transition:!0,requires:["fill-extrusion-height"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"fill-extrusion-vertical-gradient":{type:"boolean",default:!0,transition:!1,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_line:{"line-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"line-pattern"}],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"line-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["line-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"line-width":{type:"number",default:1,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-gap-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-offset":{type:"number",default:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}
vendor: 9,823 bytes, line 2097
2097,"line-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"line-dasharray":{type:"array",value:"number",minimum:0,transition:!0,units:"line widths",requires:[{"!":"line-pattern"}],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"line-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom","feature"]},"property-type":"cross-faded-data-driven"},"line-gradient":{type:"color",transition:!1,requires:[{"!":"line-dasharray"},{"!":"line-pattern"},{source:"geojson",has:{lineMetrics:!0}}],expression:{interpolated:!0,parameters:["line-progress"]},"property-type":"color-ramp"}},paint_circle:{"circle-radius":{type:"number",default:5,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-blur":{type:"number",default:0,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"circle-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["circle-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-scale":{type:"enum",values:{map:{},viewport:{}},default:"map",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-pitch-alignment":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"circle-stroke-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"circle-stroke-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"}},paint_heatmap:{"heatmap-radius":{type:"number",default:30,minimum:1,transition:!0,units:"pixels",expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-weight":{type:"number",default:1,minimum:0,transition:!1,expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"heatmap-intensity":{type:"number",default:1,minimum:0,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"heatmap-color":{type:"color",default:["interpolate",["linear"],["heatmap-density"],0,"rgba(0, 0, 255, 0)",.1,"royalblue",.3,"cyan",.5,"lime",.7,"yellow",1,"red"],transition:!1,expression:{interpolated:!0,parameters:["heatmap-density"]},"property-type":"color-ramp"},"heatmap-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_symbol:{"icon-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-color":{type:"color",default:"#000000",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"icon-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["icon-image"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"icon-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["icon-image","icon-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"text-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-color":{type:"color",default:"#000000",transition:!0,overridable:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-color":{type:"color",default:"rgba(0, 0, 0, 0)",transition:!0,requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-width":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-halo-blur":{type:"number",default:0,minimum:0,transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom","feature","feature-state"]},"property-type":"data-driven"},"text-translate":{type:"array",value:"number",length:2,default:[0,0],transition:!0,units:"pixels",requires:["text-field"],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"text-translate-anchor":{type:"enum",values:{map:{},viewport:{}},default:"map",requires:["text-field","text-translate"],expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"}},paint_raster:{"raster-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-hue-rotate":{type:"number",default:0,period:360,transition:!0,units:"degrees",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-min":{type:"number",default:0,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-brightness-max":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-saturation":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-contrast":{type:"number",default:0,minimum:-1,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"raster-resampling":{type:"enum",values:{linear:{},nearest:{}},default:"linear",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"raster-fade-duration":{type:"number",default:300,minimum:0,transition:!1,units:"milliseconds",expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_hillshade:{"hillshade-illumination-direction":{type:"number",default:335,minimum:0,maximum:359,transition:!1,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-illumination-anchor":{type:"enum",values:{map:{},viewport:{}},default:"viewport",expression:{interpolated:!1,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-exaggeration":{type:"number",default:.5,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-shadow-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-highlight-color":{type:"color",default:"#FFFFFF",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"hillshade-accent-color":{type:"color",default:"#000000",transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},paint_background:{"background-color":{type:"color",default:"#000000",transition:!0,requires:[{"!":"background-pattern"}],expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"},"background-pattern":{type:"resolvedImage",transition:!0,expression:{interpolated:!1,parameters:["zoom"]},"property-type":"cross-faded"},"background-opacity":{type:"number",default:1,minimum:0,maximum:1,transition:!0,expression:{interpolated:!0,parameters:["zoom"]},"property-type":"data-constant"}},transition:{duration:{type:"number",default:300,minimum:0,units:"milliseconds"},delay:{type:"number",default:0,minimum:0,units:"milliseconds"}},"property-type":{"data-driven":{type:"property-type"},"cross-faded":{type:"property-type"},"cross-faded-data-driven":{type:"property-type"},"color-ramp":{type:"property-type"},"data-constant":{type:"property-type"},constant:{type:"property-type"}},promoteId:{"*":{type:"string"}}}
2097,Se=function(a,u,p,x){this.message=(a?a+": ":"")+p,x&&(this.identifier=x),u!=null&&u.__line__&&(this.line=u.__line__)};function g(a){var u=a.value;return u?[new Se(a.key,u,"constants have been deprecated as of v8")]:[]}function le(a){for(var u=[],p=arguments.length-1;p-- >0;)u[p]=arguments[p+1];for(var x=0,C=u;x<C.length;x+=1){var B=C[x];for(var O in B)a[O]=B[O]}return a}function xt(a){return a instanceof Number||a instanceof String||a instanceof Boolean?a.valueOf():a}function Je(a){if(Array.isArray(a))return a.map(Je);if(a instanceof Object&&!(a instanceof Number||a instanceof String||a instanceof Boolean)){var u={};for(var p in a)u[p]=Je(a[p]);return u}return xt(a)}var Ct=(function(a){function u(p,x){a.call(this,x),this.message=x,this.key=p}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u})(Error),Mt=function(a,u){u===void 0&&(u=[]),this.parent=a,this.bindings={};for(var p=0,x=u;p<x.length;p+=1){var C=x[p];this.bindings[C[0]]=C[1]}};Mt.prototype.concat=function(a){return new Mt(this,a)}
2097,Mt.prototype.get=function(a){if(this.bindings[a])return this.bindings[a];if(this.parent)return this.parent.get(a);throw new Error(a+" not found in scope.")},Mt.prototype.has=function(a){return!!this.bindings[a]||!!this.parent&&this.parent.has(a)};var Ft={kind:"null"},ht={kind:"number"},Lt={kind:"string"},Pt={kind:"boolean"},Gt={kind:"color"},Ur={kind:"object"},er={kind:"value"},en={kind:"collator"},ln={kind:"formatted"},$r={kind:"resolvedImage"};function Xr(a,u){return{kind:"array",itemType:a,N:u}}function jr(a){if(a.kind==="array"){var u=jr(a.itemType);return typeof a.N=="number"?"array<"+u+", "+a.N+">":a.itemType.kind==="value"?"array":"array<"+u+">"}return a.kind}var mi=[Ft,ht,Lt,Pt,Gt,ln,Ur,Xr(er),$r];function qr(a,u){if(u.kind==="error")return null;if(a.kind==="array"){if(u.kind==="array"&&(u.N===0&&u.itemType.kind==="value"||!qr(a.itemType,u.itemType))&&(typeof a.N!="number"||a.N===u.N))return null}else{if(a.kind===u.kind)return null;if(a.kind==="value"){for(var p=0,x=mi;p<x.length;p+=1)if(!qr(x[p],u))return null}}return"Expected "+jr(a)+" but found "+jr(u)+" instead."}function dr(a,u){return u.some((function(p){return p.kind===a.kind}))}function Be(a,u){return u.some((function(p){return p==="null"?a===null:p==="array"?Array.isArray(a):p==="object"?a&&!Array.isArray(a)&&typeof a=="object":p===typeof a}))}var qt=l((function(a,u){var p={transparent:[0,0,0,0],aliceblue:[240,248,255,1],antiquewhite:[250,235,215,1],aqua:[0,255,255,1],aquamarine:[127,255,212,1],azure:[240,255,255,1],beige:[245,245,220,1],bisque:[255,228,196,1],black:[0,0,0,1],blanchedalmond:[255,235,205,1],blue:[0,0,255,1],blueviolet:[138,43,226,1],brown:[165,42,42,1],burlywood:[222,184,135,1],cadetblue:[95,158,160,1],chartreuse:[127,255,0,1],chocolate:[210,105,30,1],coral:[255,127,80,1],cornflowerblue:[100,149,237,1],cornsilk:[255,248,220,1],crimson:[220,20,60,1],cyan:[0,255,255,1],darkblue:[0,0,139,1],darkcyan:[0,139,139,1],darkgoldenrod:[184,134,11,1],darkgray:[169,169,169,1],darkgreen:[0,100,0,1],darkgrey:[169,169,169,1],darkkhaki:[189,183,107,1],darkmagenta:[139,0,139,1],darkolivegreen:[85,107,47,1],darkorange:[255,140,0,1],darkorchid:[153,50,204,1],darkred:[139,0,0,1],darksalmon:[233,150,122,1],darkseagreen:[143,188,143,1],darkslateblue:[72,61,139,1],darkslategray:[47,79,79,1],darkslategrey:[47,79,79,1],darkturquoise:[0,206,209,1],darkviolet:[148,0,211,1],deeppink:[255,20,147,1],deepskyblue:[0,191,255,1],dimgray:[105,105,105,1],dimgrey:[105,105,105,1],dodgerblue:[30,144,255,1],firebrick:[178,34,34,1],floralwhite:[255,250,240,1],forestgreen:[34,139,34,1],fuchsia:[255,0,255,1],gainsboro:[220,220,220,1],ghostwhite:[248,248,255,1],gold:[255,215,0,1],goldenrod:[218,165,32,1],gray:[128,128,128,1],green:[0,128,0,1],greenyellow:[173,255,47,1],grey:[128,128,128,1],honeydew:[240,255,240,1],hotpink:[255,105,180,1],indianred:[205,92,92,1],indigo:[75,0,130,1],ivory:[255,255,240,1],khaki:[240,230,140,1],lavender:[230,230,250,1],lavenderblush:[255,240,245,1],lawngreen:[124,252,0,1],lemonchiffon:[255,250,205,1],lightblue:[173,216,230,1],lightcoral:[240,128,128,1],lightcyan:[224,255,255,1],lightgoldenrodyellow:[250,250,210,1],lightgray:[211,211,211,1],lightgreen:[144,238,144,1],lightgrey:[211,211,211,1],lightpink:[255,182,193,1],lightsalmon:[255,160,122,1],lightseagreen:[32,178,170,1],lightskyblue:[135,206,250,1],lightslategray:[119,136,153,1],lightslategrey:[119,136,153,1],lightsteelblue:[176,196,222,1],lightyellow:[255,255,224,1],lime:[0,255,0,1],limegreen:[50,205,50,1],linen:[250,240,230,1],magenta:[255,0,255,1],maroon:[128,0,0,1],mediumaquamarine:[102,205,170,1],mediumblue:[0,0,205,1],mediumorchid:[186,85,211,1],mediumpurple:[147,112,219,1],mediumseagreen:[60,179,113,1],mediumslateblue:[123,104,238,1],mediumspringgreen:[0,250,154,1],mediumturquoise:[72,209,204,1],mediumvioletred:[199,21,133,1],midnightblue:[25,25,112,1],mintcream:[245,255,250,1],mistyrose:[255,228,225,1],moccasin:[255,228,181,1],navajowhite:[255,222,173,1],navy:[0,0,128,1],oldlace:[253,245,230,1],olive:[128,128,0,1],olivedrab:[107,142,35,1],orange:[255,165,0,1],orangered:[255,69,0,1],orchid:[218,112,214,1],palegoldenrod:[238,232,170,1],palegreen:[152,251,152,1],paleturquoise:[175,238,238,1],palevioletred:[219,112,147,1],papayawhip:[255,239,213,1],peachpuff:[255,218,185,1],peru:[205,133,63,1],pink:[255,192,203,1],plum:[221,160,221,1],powderblue:[176,224,230,1],purple:[128,0,128,1],rebeccapurple:[102,51,153,1],red:[255,0,0,1],rosybrown:[188,143,143,1],royalblue:[65,105,225,1],saddlebrown:[139,69,19,1],salmon:[250,128,114,1],sandybrown:[244,164,96,1],seagreen:[46,139,87,1],seashell:[255,245,238,1],sienna:[160,82,45,1],silver:[192,192,192,1],skyblue:[135,206,235,1],slateblue:[106,90,205,1],slategray:[112,128,144,1],slategrey:[112,128,144,1],snow:[255,250,250,1],springgreen:[0,255,127,1],steelblue:[70,130,180,1],tan:[210,180,140,1],teal:[0,128,128,1],thistle:[216,191,216,1],tomato:[255,99,71,1],turquoise:[64,224,208,1],violet:[238,130,238,1],wheat:[245,222,179,1],white:[255,255,255,1],whitesmoke:[245,245,245,1],yellow:[255,255,0,1],yellowgreen:[154,205,50,1]};function x(k){return(k=Math.round(k))<0?0:k>255?255:k}function C(k){return x(k[k.length-1]==="%"?parseFloat(k)/100*255:parseInt(k))}function B(k){return(j=k[k.length-1]==="%"?parseFloat(k)/100:parseFloat(k))<0?0:j>1?1:j;var j}function O(k,j,J){return J<0?J+=1:J>1&&(J-=1),6*J<1?k+(j-k)*J*6:2*J<1?j:3*J<2?k+(j-k)*(2/3-J)*6:k}try{u.parseCSSColor=function(k){var j,J=k.replace(/ /g,"").toLowerCase();if(J in p)return p[J].slice();if(J[0]==="#")return J.length===4?(j=parseInt(J.substr(1),16))>=0&&j<=4095?[(3840&j)>>4|(3840&j)>>8,240&j|(240&j)>>4,15&j|(15&j)<<4,1]:null:J.length===7&&(j=parseInt(J.substr(1),16))>=0&&j<=16777215?[(16711680&j)>>16,(65280&j)>>8,255&j,1]:null;var Q=J.indexOf("("),ie=J.indexOf(")");if(Q!==-1&&ie+1===J.length){var fe=J.substr(0,Q),_e=J.substr(Q+1,ie-(Q+1)).split(","),ke=1;switch(fe){case"rgba":if(_e.length!==4)return null;
2097ke=B(_e.pop());case"rgb":return _e.length!==3?null:[C(_e[0]),C(_e[1]),C(_e[2]),ke];case"hsla":if(_e.length!==4)return null;ke=B(_e.pop());case"hsl":if(_e.length!==3)return null;var Ne=(parseFloat(_e[0])%360+360)%360/360,He=B(_e[1]),je=B(_e[2]),Ke=je<=.5?je*(He+1):je+He-je*He,lt=2*je-Ke;return[x(255*O(lt,Ke,Ne+1/3)),x(255*O(lt,Ke,Ne)),x(255*O(lt,Ke,Ne-1/3)),ke];default:return null}}return null}}catch{}})).parseCSSColor,tn=function(a,u,p,x){x===void 0&&(x=1),this.r=a,this.g=u,this.b=p,this.a=x};tn.parse=function(a){if(a){if(a instanceof tn)return a;if(typeof a=="string"){var u=qt(a);if(u)return new tn(u[0]/255*u[3],u[1]/255*u[3],u[2]/255*u[3],u[3])}}},tn.prototype.toString=function(){var a=this.toArray(),u=a[1],p=a[2],x=a[3];return"rgba("+Math.round(a[0])+","+Math.round(u)+","+Math.round(p)+","+x+")"},tn.prototype.toArray=function(){var a=this.a;return a===0?[0,0,0,0]:[255*this.r/a,255*this.g/a,255*this.b/a,a]},tn.black=new tn(0,0,0,1),tn.white=new tn(1,1,1,1),tn.transparent=new tn(0,0,0,0),tn.red=new tn(1,0,0,1);var Wi=function(a,u,p){this.sensitivity=a?u?"variant":"case":u?"accent":"base",this.locale=p,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})};Wi.prototype.compare=function(a,u){return this.collator.compare(a,u)},Wi.prototype.resolvedLocale=function(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale};var _a=function(a,u,p,x,C){this.text=a,this.image=u,this.scale=p,this.fontStack=x,this.textColor=C},ci=function(a){this.sections=a};ci.fromString=function(a){return new ci([new _a(a,null,null,null,null)])},ci.prototype.isEmpty=function(){return this.sections.length===0||!this.sections.some((function(a){return a.text.length!==0||a.image&&a.image.name.length!==0}))},ci.factory=function(a){return a instanceof ci?a:ci.fromString(a)},ci.prototype.toString=function(){return this.sections.length===0?"":this.sections.map((function(a){return a.text})).join("")},ci.prototype.serialize=function(){for(var a=["format"],u=0,p=this.sections;u<p.length;u+=1){var x=p[u];if(x.image)a.push(["image",x.image.name]);else{a.push(x.text);var C={};x.fontStack&&(C["text-font"]=["literal",x.fontStack.split(",")]),x.scale&&(C["font-scale"]=x.scale),x.textColor&&(C["text-color"]=["rgba"].concat(x.textColor.toArray())),a.push(C)}}return a};var Wn=function(a){this.name=a.name,this.available=a.available};function Ie(a,u,p,x){return typeof a=="number"&&a>=0&&a<=255&&typeof u=="number"&&u>=0&&u<=255&&typeof p=="number"&&p>=0&&p<=255?x===void 0||typeof x=="number"&&x>=0&&x<=1?null:"Invalid rgba value ["+[a,u,p,x].join(", ")+"]: 'a' must be between 0 and 1.":"Invalid rgba value ["+(typeof x=="number"?[a,u,p,x]:[a,u,p]).join(", ")+"]: 'r', 'g', and 'b' must be between 0 and 255."}function Ho(a){if(a===null||typeof a=="string"||typeof a=="boolean"||typeof a=="number"||a instanceof tn||a instanceof Wi||a instanceof ci||a instanceof Wn)return!0;if(Array.isArray(a)){for(var u=0,p=a;u<p.length;u+=1)if(!Ho(p[u]))return!1;return!0}if(typeof a=="object"){for(var x in a)if(!Ho(a[x]))return!1;return!0}return!1}function $n(a){if(a===null)return Ft;if(typeof a=="string")return Lt;if(typeof a=="boolean")return Pt;if(typeof a=="number")return ht;if(a instanceof tn)return Gt;if(a instanceof Wi)return en;if(a instanceof ci)return ln;if(a instanceof Wn)return $r;if(Array.isArray(a)){for(var u,p=a.length,x=0,C=a;x<C.length;x+=1){var B=$n(C[x]);if(u){if(u===B)continue;u=er;break}u=B}return Xr(u||er,p)}return Ur}function Wo(a){var u=typeof a;return a===null?"":u==="string"||u==="number"||u==="boolean"?String(a):a instanceof tn||a instanceof ci||a instanceof Wn?a.toString():JSON.stringify(a)}Wn.prototype.toString=function(){return this.name},Wn.fromString=function(a){return a?new Wn({name:a,available:!1}):null},Wn.prototype.serialize=function(){return["image",this.name]};var Fi=function(a,u){this.type=a,this.value=u};Fi.parse=function(a,u){if(a.length!==2)return u.error("'literal' expression requires exactly one argument, but found "+(a.length-1)+" instead.");if(!Ho(a[1]))return u.error("invalid value");var p=a[1],x=$n(p),C=u.expectedType;return x.kind!=="array"||x.N!==0||!C||C.kind!=="array"||typeof C.N=="number"&&C.N!==0||(x=C),new Fi(x,p)},Fi.prototype.evaluate=function(){return this.value},Fi.prototype.eachChild=function(){},Fi.prototype.outputDefined=function(){return!0},Fi.prototype.serialize=function(){return this.type.kind==="array"||this.type.kind==="object"?["literal",this.value]:this.value instanceof tn?["rgba"].concat(this.value.toArray()):this.value instanceof ci?this.value.serialize():this.value};var ui=function(a){this.name="ExpressionEvaluationError",this.message=a};ui.prototype.toJSON=function(){return this.message};var Si={string:Lt,number:ht,boolean:Pt,object:Ur},Rn=function(a,u){this.type=a,this.args=u};Rn.parse=function(a,u){if(a.length<2)return u.error("Expected at least one argument.");var p,x=1,C=a[0];if(C==="array"){var B,O;if(a.length>2){var k=a[1];if(typeof k!="string"||!(k in Si)||k==="object")return u.error('The item type argument of "array" must be one of string, number, boolean',1);B=Si[k],x++}else B=er;if(a.length>3){if(a[2]!==null&&(typeof a[2]!="number"||a[2]<0||a[2]!==Math.floor(a[2])))return u.error('The length argument to "array" must be a positive integer literal',2);O=a[2],x++}p=Xr(B,O)}else p=Si[C];for(var j=[];x<a.length;x++){var J=u.parse(a[x],x,er);if(!J)return null;j.push(J)}return new Rn(p,j)},Rn.prototype.evaluate=function(a){for(var u=0;u<this.args.length;u++){var p=this.args[u].evaluate(a);if(!qr(this.type,$n(p)))return p;if(u===this.args.length-1)throw new ui("Expected value to be of type "+jr(this.t
2097ype)+", but found "+jr($n(p))+" instead.")}return null},Rn.prototype.eachChild=function(a){this.args.forEach(a)},Rn.prototype.outputDefined=function(){return this.args.every((function(a){return a.outputDefined()}))},Rn.prototype.serialize=function(){var a=this.type,u=[a.kind];if(a.kind==="array"){var p=a.itemType;if(p.kind==="string"||p.kind==="number"||p.kind==="boolean"){u.push(p.kind);var x=a.N;(typeof x=="number"||this.args.length>1)&&u.push(x)}}return u.concat(this.args.map((function(C){return C.serialize()})))};var ms=function(a){this.type=ln,this.sections=a};ms.parse=function(a,u){if(a.length<2)return u.error("Expected at least one argument.");var p=a[1];if(!Array.isArray(p)&&typeof p=="object")return u.error("First argument must be an image or text section.");for(var x=[],C=!1,B=1;B<=a.length-1;++B){var O=a[B];if(C&&typeof O=="object"&&!Array.isArray(O)){C=!1;var k=null;if(O["font-scale"]&&!(k=u.parse(O["font-scale"],1,ht)))return null;var j=null;if(O["text-font"]&&!(j=u.parse(O["text-font"],1,Xr(Lt))))return null;var J=null;if(O["text-color"]&&!(J=u.parse(O["text-color"],1,Gt)))return null;var Q=x[x.length-1];Q.scale=k,Q.font=j,Q.textColor=J}else{var ie=u.parse(a[B],1,er);if(!ie)return null;var fe=ie.type.kind;if(fe!=="string"&&fe!=="value"&&fe!=="null"&&fe!=="resolvedImage")return u.error("Formatted text type must be 'string', 'value', 'image' or 'null'.");C=!0,x.push({content:ie,scale:null,font:null,textColor:null})}}return new ms(x)},ms.prototype.evaluate=function(a){return new ci(this.sections.map((function(u){var p=u.content.evaluate(a);return $n(p)===$r?new _a("",p,null,null,null):new _a(Wo(p),null,u.scale?u.scale.evaluate(a):null,u.font?u.font.evaluate(a).join(","):null,u.textColor?u.textColor.evaluate(a):null)})))},ms.prototype.eachChild=function(a){for(var u=0,p=this.sections;u<p.length;u+=1){var x=p[u];a(x.content),x.scale&&a(x.scale),x.font&&a(x.font),x.textColor&&a(x.textColor)}},ms.prototype.outputDefined=function(){return!1},ms.prototype.serialize=function(){for(var a=["format"],u=0,p=this.sections;u<p.length;u+=1){var x=p[u];a.push(x.content.serialize());var C={};x.scale&&(C["font-scale"]=x.scale.serialize()),x.font&&(C["text-font"]=x.font.serialize()),x.textColor&&(C["text-color"]=x.textColor.serialize()),a.push(C)}return a};var $i=function(a){this.type=$r,this.input=a};$i.parse=function(a,u){if(a.length!==2)return u.error("Expected two arguments.");var p=u.parse(a[1],1,Lt);return p?new $i(p):u.error("No image name provided.")},$i.prototype.evaluate=function(a){var u=this.input.evaluate(a),p=Wn.fromString(u);return p&&a.availableImages&&(p.available=a.availableImages.indexOf(u)>-1),p},$i.prototype.eachChild=function(a){a(this.input)},$i.prototype.outputDefined=function(){return!1},$i.prototype.serialize=function(){return["image",this.input.serialize()]};var Ns={"to-boolean":Pt,"to-color":Gt,"to-number":ht,"to-string":Lt},In=function(a,u){this.type=a,this.args=u};In.parse=function(a,u){if(a.length<2)return u.error("Expected at least one argument.");var p=a[0];if((p==="to-boolean"||p==="to-string")&&a.length!==2)return u.error("Expected one argument.");for(var x=Ns[p],C=[],B=1;B<a.length;B++){var O=u.parse(a[B],B,er);if(!O)return null;C.push(O)}return new In(x,C)},In.prototype.evaluate=function(a){if(this.type.kind==="boolean")return!!this.args[0].evaluate(a);if(this.type.kind==="color"){for(var u,p,x=0,C=this.args;x<C.length;x+=1){if(p=null,(u=C[x].evaluate(a))instanceof tn)return u;if(typeof u=="string"){var B=a.parseColor(u);if(B)return B}else if(Array.isArray(u)&&!(p=u.length<3||u.length>4?"Invalid rbga value "+JSON.stringify(u)+": expected an array containing either three or four numeric values.":Ie(u[0],u[1],u[2],u[3])))return new tn(u[0]/255,u[1]/255,u[2]/255,u[3])}throw new ui(p||"Could not parse color from value '"+(typeof u=="string"?u:String(JSON.stringify(u)))+"'")}if(this.type.kind==="number"){for(var O=null,k=0,j=this.args;k<j.length;k+=1){if((O=j[k].evaluate(a))===null)return 0;var J=Number(O);if(!isNaN(J))return J}throw new ui("Could not convert "+JSON.stringify(O)+" to number.")}return this.type.kind==="formatted"?ci.fromString(Wo(this.args[0].evaluate(a))):this.type.kind==="resolvedImage"?Wn.fromString(Wo(this.args[0].evaluate(a))):Wo(this.args[0].evaluate(a))}
vendor: 4,261 bytes, line 2097
2097,In.prototype.eachChild=function(a){this.args.forEach(a)},In.prototype.outputDefined=function(){return this.args.every((function(a){return a.outputDefined()}))},In.prototype.serialize=function(){if(this.type.kind==="formatted")return new ms([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if(this.type.kind==="resolvedImage")return new $i(this.args[0]).serialize();var a=["to-"+this.type.kind];return this.eachChild((function(u){a.push(u.serialize())})),a};var gc=["Unknown","Point","LineString","Polygon"],be=function(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this._parseColorCache={},this.availableImages=null,this.canonical=null};be.prototype.id=function(){return this.feature&&"id"in this.feature?this.feature.id:null},be.prototype.geometryType=function(){return this.feature?typeof this.feature.type=="number"?gc[this.feature.type]:this.feature.type:null},be.prototype.geometry=function(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null},be.prototype.canonicalID=function(){return this.canonical},be.prototype.properties=function(){return this.feature&&this.feature.properties||{}},be.prototype.parseColor=function(a){var u=this._parseColorCache[a];return u||(u=this._parseColorCache[a]=tn.parse(a)),u};var Me=function(a,u,p,x){this.name=a,this.type=u,this._evaluate=p,this.args=x};Me.prototype.evaluate=function(a){return this._evaluate(a,this.args)},Me.prototype.eachChild=function(a){this.args.forEach(a)},Me.prototype.outputDefined=function(){return!1},Me.prototype.serialize=function(){return[this.name].concat(this.args.map((function(a){return a.serialize()})))},Me.parse=function(a,u){var p,x=a[0],C=Me.definitions[x];if(!C)return u.error('Unknown expression "'+x+'". If you wanted a literal array, use ["literal", [...]].',0);for(var B=Array.isArray(C)?C[0]:C.type,O=Array.isArray(C)?[[C[1],C[2]]]:C.overloads,k=O.filter((function(Sr){var ir=Sr[0];return!Array.isArray(ir)||ir.length===a.length-1})),j=null,J=0,Q=k;J<Q.length;J+=1){var ie=Q[J],fe=ie[0],_e=ie[1];j=new _i(u.registry,u.path,null,u.scope);for(var ke=[],Ne=!1,He=1;He<a.length;He++){var je=a[He],Ke=Array.isArray(fe)?fe[He-1]:fe.type,lt=j.parse(je,1+ke.length,Ke);if(!lt){Ne=!0;break}ke.push(lt)}if(!Ne)if(Array.isArray(fe)&&fe.length!==ke.length)j.error("Expected "+fe.length+" arguments, but found "+ke.length+" instead.");else{for(var mt=0;mt<ke.length;mt++){var yt=Array.isArray(fe)?fe[mt]:fe.type,Ot=ke[mt];j.concat(mt+1).checkSubtype(yt,Ot.type)}if(j.errors.length===0)return new Me(x,B,_e,ke)}}if(k.length===1)(p=u.errors).push.apply(p,j.errors);else{for(var Ht=(k.length?k:O).map((function(Sr){var ir;return ir=Sr[0],Array.isArray(ir)?"("+ir.map(jr).join(", ")+")":"("+jr(ir.type)+"...)"})).join(" | "),Kt=[],xr=1;xr<a.length;xr++){var nr=u.parse(a[xr],1+Kt.length);if(!nr)return null;Kt.push(jr(nr.type))}u.error("Expected arguments of type "+Ht+", but found ("+Kt.join(", ")+") instead.")}return null},Me.register=function(a,u){for(var p in Me.definitions=u,u)a[p]=Me};var We=function(a,u,p){this.type=en,this.locale=p,this.caseSensitive=a,this.diacriticSensitive=u};function gt(a,u){a[0]=Math.min(a[0],u[0]),a[1]=Math.min(a[1],u[1]),a[2]=Math.max(a[2],u[0]),a[3]=Math.max(a[3],u[1])}function $t(a,u){return!(a[0]<=u[0]||a[2]>=u[2]||a[1]<=u[1]||a[3]>=u[3])}function br(a,u){var p=(180+a[0])/360,x=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+a[1]*Math.PI/360)))/360,C=Math.pow(2,u.z);return[Math.round(p*C*8192),Math.round(x*C*8192)]}function Br(a,u,p){return u[1]>a[1]!=p[1]>a[1]&&a[0]<(p[0]-u[0])*(a[1]-u[1])/(p[1]-u[1])+u[0]}function fi(a,u){for(var p,x,C,B,O,k,j,J=!1,Q=0,ie=u.length;Q<ie;Q++)for(var fe=u[Q],_e=0,ke=fe.length;_e<ke-1;_e++){if((B=(p=a)[0]-(x=fe[_e])[0])*(j=p[1]-(C=fe[_e+1])[1])-(k=p[0]-C[0])*(O=p[1]-x[1])==0&&B*k<=0&&O*j<=0)return!1;Br(a,fe[_e],fe[_e+1])&&(J=!J)}return J}function Li(a,u){for(var p=0;p<u.length;p++)if(fi(a,u[p]))return!0;return!1}function Xi(a,u,p,x){var C=x[0]-p[0],B=x[1]-p[1],O=(a[0]-p[0])*B-C*(a[1]-p[1]),k=(u[0]-p[0])*B-C*(u[1]-p[1]);return O>0&&k<0||O<0&&k>0}function Qs(a,u,p){for(var x=0,C=p;x<C.length;x+=1)for(var B=C[x],O=0;O<B.length-1;++O)if((ie=[(Q=B[O+1])[0]-(J=B[O])[0],Q[1]-J[1]])[0]*(fe=[(j=u)[0]-(k=a)[0],j[1]-k[1]])[
20971]-ie[1]*fe[0]!=0&&Xi(k,j,J,Q)&&Xi(J,Q,k,j))return!0;var k,j,J,Q,ie,fe;return!1}function xh(a,u){for(var p=0;p<a.length;++p)if(!fi(a[p],u))return!1;for(var x=0;x<a.length-1;++x)if(Qs(a[x],a[x+1],u))return!1;return!0}function uf(a,u){for(var p=0;p<u.length;p++)if(xh(a,u[p]))return!0;return!1}function ya(a,u,p){for(var x=[],C=0;C<a.length;C++){for(var B=[],O=0;O<a[C].length;O++){var k=br(a[C][O],p);gt(u,k),B.push(k)}x.push(B)}return x}function mc(a,u,p){for(var x=[],C=0;C<a.length;C++){var B=ya(a[C],u,p);x.push(B)}return x}function _c(a,u,p,x){if(a[0]<p[0]||a[0]>p[2]){var C=.5*x,B=a[0]-p[0]>C?-x:p[0]-a[0]>C?x:0;B===0&&(B=a[0]-p[2]>C?-x:p[2]-a[0]>C?x:0),a[0]+=B}gt(u,a)}function wh(a,u,p,x){for(var C=8192*Math.pow(2,x.z),B=[8192*x.x,8192*x.y],O=[],k=0,j=a;k<j.length;k+=1)for(var J=0,Q=j[k];J<Q.length;J+=1){var ie=Q[J],fe=[ie.x+B[0],ie.y+B[1]];_c(fe,u,p,C),O.push(fe)}return O}function yc(a,u,p,x){for(var C,B=8192*Math.pow(2,x.z),O=[8192*x.x,8192*x.y],k=[],j=0,J=a;j<J.length;j+=1){for(var Q=[],ie=0,fe=J[j];ie<fe.length;ie+=1){var _e=fe[ie],ke=[_e.x+O[0],_e.y+O[1]];gt(u,ke),Q.push(ke)}k.push(Q)}if(u[2]-u[0]<=B/2){(C=u)[0]=C[1]=1/0,C[2]=C[3]=-1/0;for(var Ne=0,He=k;Ne<He.length;Ne+=1)for(var je=0,Ke=He[Ne];je<Ke.length;je+=1)_c(Ke[je],u,p,B)}return k}We.parse=function(a,u){if(a.length!==2)return u.error("Expected one argument.");var p=a[1];if(typeof p!="object"||Array.isArray(p))return u.error("Collator options argument must be an object.");var x=u.parse(p["case-sensitive"]!==void 0&&p["case-sensitive"],1,Pt);if(!x)return null;var C=u.parse(p["diacritic-sensitive"]!==void 0&&p["diacritic-sensitive"],1,Pt);if(!C)return null;var B=null;return p.locale&&!(B=u.parse(p.locale,1,Lt))?null:new We(x,C,B)},We.prototype.evaluate=function(a){return new Wi(this.caseSensitive.evaluate(a),this.diacriticSensitive.evaluate(a),this.locale?this.locale.evaluate(a):null)},We.prototype.eachChild=function(a){a(this.caseSensitive),a(this.diacriticSensitive),this.locale&&a(this.locale)},We.prototype.outputDefined=function(){return!1},We.prototype.serialize=function(){var a={};return a["case-sensitive"]=this.caseSensitive.serialize(),a["diacritic-sensitive"]=this.diacriticSensitive.serialize(),this.locale&&(a.locale=this.locale.serialize()),["collator",a]};var Us=function(a,u){this.type=Pt,this.geojson=a,this.geometries=u};function $o(a){if(a instanceof Me&&(a.name==="get"&&a.args.length===1||a.name==="feature-state"||a.name==="has"&&a.args.length===1||a.name==="properties"||a.name==="geometry-type"||a.name==="id"||/^filter-/.test(a.name))||a instanceof Us)return!1;var u=!0;return a.eachChild((function(p){u&&!$o(p)&&(u=!1)})),u}
2097function va(a){if(a instanceof Me&&a.name==="feature-state")return!1;var u=!0;return a.eachChild((function(p){u&&!va(p)&&(u=!1)})),u}function Wa(a,u){if(a instanceof Me&&u.indexOf(a.name)>=0)return!1;var p=!0;return a.eachChild((function(x){p&&!Wa(x,u)&&(p=!1)})),p}Us.parse=function(a,u){if(a.length!==2)return u.error("'within' expression requires exactly one argument, but found "+(a.length-1)+" instead.");if(Ho(a[1])){var p=a[1];if(p.type==="FeatureCollection")for(var x=0;x<p.features.length;++x){var C=p.features[x].geometry.type;if(C==="Polygon"||C==="MultiPolygon")return new Us(p,p.features[x].geometry)}else if(p.type==="Feature"){var B=p.geometry.type;if(B==="Polygon"||B==="MultiPolygon")return new Us(p,p.geometry)}else if(p.type==="Polygon"||p.type==="MultiPolygon")return new Us(p,p)}return u.error("'within' expression requires valid geojson object that contains polygon geometry type.")},Us.prototype.evaluate=function(a){if(a.geometry()!=null&&a.canonicalID()!=null){if(a.geometryType()==="Point")return(function(u,p){var x=[1/0,1/0,-1/0,-1/0],C=[1/0,1/0,-1/0,-1/0],B=u.canonicalID();if(p.type==="Polygon"){var O=ya(p.coordinates,C,B),k=wh(u.geometry(),x,C,B);if(!$t(x,C))return!1;for(var j=0,J=k;j<J.length;j+=1)if(!fi(J[j],O))return!1}if(p.type==="MultiPolygon"){var Q=mc(p.coordinates,C,B),ie=wh(u.geometry(),x,C,B);if(!$t(x,C))return!1;for(var fe=0,_e=ie;fe<_e.length;fe+=1)if(!Li(_e[fe],Q))return!1}return!0})(a,this.geometries);if(a.geometryType()==="LineString")return(function(u,p){var x=[1/0,1/0,-1/0,-1/0],C=[1/0,1/0,-1/0,-1/0],B=u.canonicalID();if(p.type==="Polygon"){var O=ya(p.coordinates,C,B),k=yc(u.geometry(),x,C,B);if(!$t(x,C))return!1;for(var j=0,J=k;j<J.length;j+=1)if(!xh(J[j],O))return!1}if(p.type==="MultiPolygon"){var Q=mc(p.coordinates,C,B),ie=yc(u.geometry(),x,C,B);if(!$t(x,C))return!1;for(var fe=0,_e=ie;fe<_e.length;fe+=1)if(!uf(_e[fe],Q))return!1}return!0})(a,this.geometries)}return!1},Us.prototype.eachChild=function(){},Us.prototype.outputDefined=function(){return!0},Us.prototype.serialize=function(){return["within",this.geojson]};var ba=function(a,u){this.type=u.type,this.name=a,this.boundExpression=u};
2097ba.parse=function(a,u){if(a.length!==2||typeof a[1]!="string")return u.error("'var' expression requires exactly one string literal argument.");var p=a[1];return u.scope.has(p)?new ba(p,u.scope.get(p)):u.error('Unknown variable "'+p+'". Make sure "'+p+'" has been bound in an enclosing "let" expression before using it.',1)},ba.prototype.evaluate=function(a){return this.boundExpression.evaluate(a)},ba.prototype.eachChild=function(){},ba.prototype.outputDefined=function(){return!1},ba.prototype.serialize=function(){return["var",this.name]};var _i=function(a,u,p,x,C){u===void 0&&(u=[]),x===void 0&&(x=new Mt),C===void 0&&(C=[]),this.registry=a,this.path=u,this.key=u.map((function(B){return"["+B+"]"})).join(""),this.scope=x,this.errors=C,this.expectedType=p};function Mo(a,u){for(var p,x=a.length-1,C=0,B=x,O=0;C<=B;)if((p=a[O=Math.floor((C+B)/2)])<=u){if(O===x||u<a[O+1])return O;C=O+1}else{if(!(p>u))throw new ui("Input is not a number.");B=O-1}return 0}_i.prototype.parse=function(a,u,p,x,C){return C===void 0&&(C={}),u?this.concat(u,p,x)._parse(a,C):this._parse(a,C)},_i.prototype._parse=function(a,u){function p(J,Q,ie){return ie==="assert"?new Rn(Q,[J]):ie==="coerce"?new In(Q,[J]):J}if(a!==null&&typeof a!="string"&&typeof a!="boolean"&&typeof a!="number"||(a=["literal",a]),Array.isArray(a)){if(a.length===0)return this.error('Expected an array with at least one element. If you wanted a literal array, use ["literal", []].');var x=a[0];if(typeof x!="string")return this.error("Expression name must be a string, but found "+typeof x+' instead. If you wanted a literal array, use ["literal", [...]].',0),null;var C=this.registry[x];if(C){var B=C.parse(a,this);if(!B)return null;if(this.expectedType){var O=this.expectedType,k=B.type;if(O.kind!=="string"&&O.kind!=="number"&&O.kind!=="boolean"&&O.kind!=="object"&&O.kind!=="array"||k.kind!=="value")if(O.kind!=="color"&&O.kind!=="formatted"&&O.kind!=="resolvedImage"||k.kind!=="value"&&k.kind!=="string"){if(this.checkSubtype(O,k))return null}else B=p(B,O,u.typeAnnotation||"coerce");else B=p(B,O,u.typeAnnotation||"assert")}if(!(B instanceof Fi)&&B.type.kind!=="resolvedImage"&&(function J(Q){if(Q instanceof ba)return J(Q.boundExpression);if(Q instanceof Me&&Q.name==="error"||Q instanceof We||Q instanceof Us)return!1;var ie=Q instanceof In||Q instanceof Rn,fe=!0;return Q.eachChild((function(_e){fe=ie?fe&&J(_e):fe&&_e instanceof Fi})),!!fe&&$o(Q)&&Wa(Q,["zoom","heatmap-density","line-progress","accumulated","is-supported-script"])})(B)){var j=new be;try{B=new Fi(B.type,B.evaluate(j))}catch(J){return this.error(J.message),null}}return B}return this.error('Unknown expression "'+x+'". If you wanted a literal array, use ["literal", [...]].',0)}return this.error(a===void 0?"'undefined' value invalid. Use null instead.":typeof a=="object"?'Bare objects invalid. Use ["literal", {...}] instead.':"Expected an array, but found "+typeof a+" instead.")},_i.prototype.concat=function(a,u,p){var x=typeof a=="number"?this.path.concat(a):this.path,C=p?this.scope.concat(p):this.scope;return new _i(this.registry,x,u||null,C,this.errors)},_i.prototype.error=function(a){for(var u=[],p=arguments.length-1;p-- >0;)u[p]=arguments[p+1];var x=""+this.key+u.map((function(C){return"["+C+"]"})).join("");this.errors.push(new Ct(x,a))},_i.prototype.checkSubtype=function(a,u){var p=qr(a,u);return p&&this.error(p),p};var Vn=function(a,u,p){this.type=a,this.input=u,this.labels=[],this.outputs=[];for(var x=0,C=p;x<C.length;x+=1){var B=C[x],O=B[1];this.labels.push(B[0]),this.outputs.push(O)}};function hi(a,u,p){return a*(1-p)+u*p}Vn.parse=function(a,u){if(a.length-1<4)return u.error("Expected at least 4 arguments, but found only "+(a.length-1)+".");if((a.length-1)%2!=0)return u.error("Expected an even number of arguments.");var p=u.parse(a[1],1,ht);if(!p)return null;var x=[],C=null;u.expectedType&&u.expectedType.kind!=="value"&&(C=u.expectedType);for(var B=1;B<a.length;B+=2){var O=B===1?-1/0:a[B],k=a[B+1],j=B,J=B+1;if(typeof O!="number")return u.error('Input/output pairs for "step" expressions must be defined using literal numeric values (not c
2097omputed expressions) for the input values.',j);if(x.length&&x[x.length-1][0]>=O)return u.error('Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.',j);var Q=u.parse(k,J,C);if(!Q)return null;C=C||Q.type,x.push([O,Q])}return new Vn(C,p,x)},Vn.prototype.evaluate=function(a){var u=this.labels,p=this.outputs;if(u.length===1)return p[0].evaluate(a);var x=this.input.evaluate(a);if(x<=u[0])return p[0].evaluate(a);var C=u.length;return x>=u[C-1]?p[C-1].evaluate(a):p[Mo(u,x)].evaluate(a)},Vn.prototype.eachChild=function(a){a(this.input);for(var u=0,p=this.outputs;u<p.length;u+=1)a(p[u])},Vn.prototype.outputDefined=function(){return this.outputs.every((function(a){return a.outputDefined()}))},Vn.prototype.serialize=function(){for(var a=["step",this.input.serialize()],u=0;u<this.labels.length;u++)u>0&&a.push(this.labels[u]),a.push(this.outputs[u].serialize());return a};var $a=Object.freeze({__proto__:null,number:hi,color:function(a,u,p){return new tn(hi(a.r,u.r,p),hi(a.g,u.g,p),hi(a.b,u.b,p),hi(a.a,u.a,p))},array:function(a,u,p){return a.map((function(x,C){return hi(x,u[C],p)}))}}),vc=6/29*3*(6/29),Op=Math.PI/180,Dp=180/Math.PI;function ff(a){return a>.008856451679035631?Math.pow(a,1/3):a/vc+4/29}function iu(a){return a>6/29?a*a*a:vc*(a-4/29)}function Bl(a){return 255*(a<=.0031308?12.92*a:1.055*Math.pow(a,1/2.4)-.055)}function Xo(a){return(a/=255)<=.04045?a/12.92:Math.pow((a+.055)/1.055,2.4)}function hf(a){var u=Xo(a.r),p=Xo(a.g),x=Xo(a.b),C=ff((.4124564*u+.3575761*p+.1804375*x)/.95047),B=ff((.2126729*u+.7151522*p+.072175*x)/1);return{l:116*B-16,a:500*(C-B),b:200*(B-ff((.0193339*u+.119192*p+.9503041*x)/1.08883)),alpha:a.a}}function df(a){var u=(a.l+16)/116,p=isNaN(a.a)?u:u+a.a/500,x=isNaN(a.b)?u:u-a.b/200;return u=1*iu(u),p=.95047*iu(p),x=1.08883*iu(x),new tn(Bl(3.2404542*p-1.5371385*u-.4985314*x),Bl(-.969266*p+1.8760108*u+.041556*x),Bl(.0556434*p-.2040259*u+1.0572252*x),a.alpha)}function su(a,u,p){var x=u-a;return a+p*(x>180||x<-180?x-360*Math.round(x/360):x)}var bo={forward:hf,reverse:df,interpolate:function(a,u,p){return{l:hi(a.l,u.l,p),a:hi(a.a,u.a,p),b:hi(a.b,u.b,p),alpha:hi(a.alpha,u.alpha,p)}}},eo={forward:function(a){var u=hf(a),p=u.l,x=u.a,C=u.b,B=Math.atan2(C,x)*Dp;return{h:B<0?B+360:B,c:Math.sqrt(x*x+C*C),l:p,alpha:a.a}},reverse:function(a){var u=a.h*Op,p=a.c;return df({l:a.l,a:Math.cos(u)*p,b:Math.sin(u)*p,alpha:a.alpha})},interpolate:function(a,u,p){return{h:su(a.h,u.h,p),c:hi(a.c,u.c,p),l:hi(a.l,u.l,p),alpha:hi(a.alpha,u.alpha,p)}}},pf=Object.freeze({__proto__:null,lab:bo,hcl:eo}),zi=function(a,u,p,x,C){this.type=a,this.operator=u,this.interpolation=p,this.input=x,this.labels=[],this.outputs=[];for(var B=0,O=C;B<O.length;B+=1){var k=O[B],j=k[1];this.labels.push(k[0]),this.outputs.push(j)}};function bc(a,u,p,x){var C=x-p,B=a-p;return C===0?0:u===1?B/C:(Math.pow(u,B)-1)/(Math.pow(u,C)-1)}zi.interpolationFactor=function(a,u,p,x){var C=0;if(a.name==="exponential")C=bc(u,a.base,p,x);else if(a.name==="linear")C=bc(u,1,p,x);else if(a.name==="cubic-bezier"){var B=a.controlPoints;C=new f(B[0],B[1],B[2],B[3]).solve(bc(u,1,p,x))}return C},zi.parse=function(a,u){var p=a[0],x=a[1],C=a[2],B=a.slice(3);if(!Array.isArray(x)||x.length===0)return u.error("Expected an interpolation type expression.",1);if(x[0]==="linear")x={name:"linear"};else if(x[0]==="exponential"){var O=x[1];if(typeof O!="number")return u.error("Exponential interpolation requires a numeric base.",1,1);x={name:"exponential",base:O}}else{if(x[0]!=="cubic-bezier")return u.error("Unknown interpolation type "+String(x[0]),1,0);var k=x.slice(1);if(k.length!==4||k.some((function(He){return typeof He!="number"||He<0||He>1})))return u.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);x={name:"cubic-bezier",controlPoints:k}}if(a.length-1<4)return u.error("Expected at least 4 arguments, but found only "+(a.length-1)+".");if((a.length-1)%2!=0)return u.error("Expected an even number of arguments.");if(!(C=u.parse(C,2,ht)))return null;var j=[],J=null;p==="interpolate-hcl"||p==="interpolate-lab"?J=Gt:u.expectedType&&u.expectedType.kind!=="value"&&(J=u.expectedType);for(var Q=0;Q<B.length;Q+=2){var ie=B[Q],fe=B[Q+1],_e=Q+3,ke=Q+4;if(typeof ie!="number")return u.error('Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not c
2097omputed expressions) for the input values.',_e);if(j.length&&j[j.length-1][0]>=ie)return u.error('Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.',_e);var Ne=u.parse(fe,ke,J);if(!Ne)return null;J=J||Ne.type,j.push([ie,Ne])}return J.kind==="number"||J.kind==="color"||J.kind==="array"&&J.itemType.kind==="number"&&typeof J.N=="number"?new zi(J,p,x,C,j):u.error("Type "+jr(J)+" is not interpolatable.")},zi.prototype.evaluate=function(a){var u=this.labels,p=this.outputs;if(u.length===1)return p[0].evaluate(a);var x=this.input.evaluate(a);if(x<=u[0])return p[0].evaluate(a);var C=u.length;if(x>=u[C-1])return p[C-1].evaluate(a);var B=Mo(u,x),O=zi.interpolationFactor(this.interpolation,x,u[B],u[B+1]),k=p[B].evaluate(a),j=p[B+1].evaluate(a);return this.operator==="interpolate"?$a[this.type.kind.toLowerCase()](k,j,O):this.operator==="interpolate-hcl"?eo.reverse(eo.interpolate(eo.forward(k),eo.forward(j),O)):bo.reverse(bo.interpolate(bo.forward(k),bo.forward(j),O))},zi.prototype.eachChild=function(a){a(this.input);for(var u=0,p=this.outputs;u<p.length;u+=1)a(p[u])},zi.prototype.outputDefined=function(){return this.outputs.every((function(a){return a.outputDefined()}))},zi.prototype.serialize=function(){var a;a=this.interpolation.name==="linear"?["linear"]:this.interpolation.name==="exponential"?this.interpolation.base===1?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);for(var u=[this.operator,a,this.input.serialize()],p=0;p<this.labels.length;p++)u.push(this.labels[p],this.outputs[p].serialize());return u};var xa=function(a,u){this.type=a,this.args=u};xa.parse=function(a,u){if(a.length<2)return u.error("Expectected at least one argument.");var p=null,x=u.expectedType;x&&x.kind!=="value"&&(p=x);for(var C=[],B=0,O=a.slice(1);B<O.length;B+=1){var k=u.parse(O[B],1+C.length,p,void 0,{typeAnnotation:"omit"});if(!k)return null;p=p||k.type,C.push(k)}var j=x&&C.some((function(J){return qr(x,J.type)}));return new xa(j?er:p,C)},xa.prototype.evaluate=function(a){for(var u,p=null,x=0,C=0,B=this.args;C<B.length&&(x++,(p=B[C].evaluate(a))&&p instanceof Wn&&!p.available&&(u||(u=p.name),p=null,x===this.args.length&&(p=u)),p===null);C+=1);return p},xa.prototype.eachChild=function(a){this.args.forEach(a)},xa.prototype.outputDefined=function(){return this.args.every((function(a){return a.outputDefined()}))},xa.prototype.serialize=function(){var a=["coalesce"];return this.eachChild((function(u){a.push(u.serialize())})),a};var wa=function(a,u){this.type=u.type,this.bindings=[].concat(a),this.result=u};wa.prototype.evaluate=function(a){return this.result.evaluate(a)},wa.prototype.eachChild=function(a){for(var u=0,p=this.bindings;u<p.length;u+=1)a(p[u][1]);a(this.result)},wa.parse=function(a,u){if(a.length<4)return u.error("Expected at least 3 arguments, but found "+(a.length-1)+" instead.");for(var p=[],x=1;x<a.length-1;x+=2){var C=a[x];if(typeof C!="string")return u.error("Expected string, but found "+typeof C+" instead.",x);if(/[^a-zA-Z0-9_]/.test(C))return u.error("Variable names must contain only alphanumeric characters or '_'.",x);var B=u.parse(a[x+1],x+1);if(!B)return null;p.push([C,B])}var O=u.parse(a[a.length-1],a.length-1,u.expectedType,p);return O?new wa(p,O):null},wa.prototype.outputDefined=function(){return this.result.outputDefined()},wa.prototype.serialize=function(){for(var a=["let"],u=0,p=this.bindings;u<p.length;u+=1){var x=p[u];a.push(x[0],x[1].serialize())}return a.push(this.result.serialize()),a};var Ta=function(a,u,p){this.type=a,this.index=u,this.input=p};Ta.parse=function(a,u){if(a.length!==3)return u.error("Expected 2 arguments, but found "+(a.length-1)+" instead.");var p=u.parse(a[1],1,ht),x=u.parse(a[2],2,Xr(u.expectedType||er));return p&&x?new Ta(x.type.itemType,p,x):null},Ta.prototype.evaluate=function(a){var u=this.index.evaluate(a),p=this.input.evaluate(a);if(u<0)throw new ui("Array index out of bounds: "+u+" < 0.");if(u>=p.length)throw new ui("Array index out of bounds: "+u+" > "+(p.length-1)+".");if(u!==Math.floor(u))throw new ui("Array index must be an integer, but found "+u+" instead.");return p[u]},Ta.prototype.eachChild=function(a){a(this.index),a(this.input)},Ta.prototype.outputDefined=function(){return!1},Ta.prototype.serialize=function(){return["at",this.index.serialize(),this.input.serialize()]};var Xa=function(a,u){this.type=Pt,this.needle=a,this.haystack=u};Xa.parse=function(a,u){if(a.length!==3)return u.error("Expected 2 arguments, but found "+(a.length-1)+" instead.");var p=u.parse(a[1],1,er),x=u.parse(a[2],2,er);return p&&x?dr(p.type,[Pt,Lt,ht,Ft,er])?new Xa(p,x):u.error("Expected first argument to be of type boolean, string, number or null, but found "+jr(p.type)+" instead"):null},Xa.prototype.evaluate=function(a){var u=this.needle.evaluate(a),p=this.haystack.evaluate(a);if(!p)return!1;if(!Be(u,["boolean","string","number","null"]))throw new ui("Expected first argument to be of type boolean, string, number or null, but found "+jr($n(u))+" instead.");if(!Be(p,["string","array"]))throw new ui("Expected second argument to be of type array or string, but found "+jr($n(p))+" instead.");return p.indexOf(u)>=0},Xa.prototype.eachChild=function(a){a(this.needle),a(this.haystack)},Xa.prototype.outputDefined=function(){return!0},Xa.prototype.serialize=function(){return["in",this.needle.serialize(),this.haystack.serialize()]};var Ea=function(a,u,p){this.type=ht,this.needle=a,this.haystack=u,this.fromIndex=p};Ea.parse=function(a,u){if(a.length<=2||a.length>=5)return u.error("Expected 3 or 4 arguments, but found "+(a.length-1)+" instead.");var p=u.parse(a[1],1,er),x=u.parse(a[2],2,er);if(!p||!x)return null;if(!dr(p.type,[Pt,Lt,ht,Ft,er]))return u.error("Expected first argument to be of type boolean, string, number or null, but found "+jr(p.type)+" instead");if(a.length===4){var C=u.parse(a[3],3,ht);return C?new Ea(p,x,C):null}return new Ea(p,x)},Ea.prototype.evaluate=function(a){var u=this.needle.evaluate(a),p=this.haystack.evaluate(a);if(!Be(u,["boolean","string","number","null"]))throw new ui("Expected first argument to be of type boolean, string, number or null, but found "+jr($n(u))+" instead.");if(!Be(p,["string","array"]))throw new ui("Expected second argument to be of type array or string, but found "+jr($n(p))+" instead.");if(this.fromIndex){var x=this.fromIndex.evaluate(a);return p.indexOf(u,x)}return p.indexOf(u)},Ea.prototype.eachChild=function(a){a(this.needle),a(this.haystack),this.fromIndex&&a(this.fromIndex)},Ea.prototype.outputDefined=function(){return!1},Ea.prototype.serialize=function(){if(this.fromIndex!=null&&this.fromIndex!==void 0){var a=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),a]}return["index-of",this.needle.serialize(),this.haystack.serialize()]};var qa=function(a,u,p,x,C,B){this.inputType=a,this.type=u,this.input=p,this.cases=x,this.outputs=C,this.otherwise=B};qa.parse=function(a,u){if(a.length<5)return u.error("Expected at least 4 arguments, but found only "+(a.length-1)+".");if(a.length%2!=1)return u.error("Expected an even number of arguments.");var p,x;u.expectedType&&u.expectedType.kind!=="value"&&(x=u.expectedType);for(var C={},B=[],O=2;O<a.length-1;O+=2){var k=a[O],j=a[O+1];Array.isArray(k)||(k=[k]);var J=u.concat(O);if(k.length===0)return J.error("Expected at least one branch label.");for(var Q=0,ie=k;Q<ie.length;Q+=1){var fe=ie[Q];if(typeof fe!="number"&&typeof fe!="string")return J.error("Branch labels must be numbers or strings.");if(typeof fe=="number"&&Math.abs(fe)>Number.MAX_SAFE_INTEGER)return J.error("Branch labels must be integers no larger than "+Number.MAX_SAFE_INTEGER+".");if(typeof fe=="number"&&Math.floor(fe)!==fe)return J.error("Numeric branch labels must be integer values.");if(p){if(J.checkSubtype(p,$n(fe)))return null}else p=$n(fe);if(C[String(fe)]!==void 0)return J.error("Branch labels must be unique.");C[String(fe)]=B.length}var _e=u.parse(j,O,x);if(!_e)return null;x=x||_e.type,B.push(_e)}var ke=u.parse(a[1],1,er);if(!ke)return null;var Ne=u.parse(a[a.length-1],a.length-1,x);return Ne?ke.type.kind!=="value"&&u.concat(1).checkSubtype(p,ke.type)?null:new qa(p,x,ke,C,B,Ne):null},qa.prototype.evaluate=function(a){var u=this.input.evaluate(a);return($n(u)===this.inputType&&this.outputs[this.cases[u]]||this.otherwise).evaluate(a)},qa.prototype.eachChild=function(a){a(this.input),this.outputs.forEac
2097h(a),a(this.otherwise)},qa.prototype.outputDefined=function(){return this.outputs.every((function(a){return a.outputDefined()}))&&this.otherwise.outputDefined()},qa.prototype.serialize=function(){for(var a=this,u=["match",this.input.serialize()],p=[],x={},C=0,B=Object.keys(this.cases).sort();C<B.length;C+=1){var O=B[C];(ie=x[this.cases[O]])===void 0?(x[this.cases[O]]=p.length,p.push([this.cases[O],[O]])):p[ie][1].push(O)}for(var k=function(_e){return a.inputType.kind==="number"?Number(_e):_e},j=0,J=p;j<J.length;j+=1){var Q=J[j],ie=Q[0],fe=Q[1];u.push(fe.length===1?k(fe[0]):fe.map(k)),u.push(this.outputs[outputIndex$1].serialize())}return u.push(this.otherwise.serialize()),u};var Ja=function(a,u,p){this.type=a,this.branches=u,this.otherwise=p};Ja.parse=function(a,u){if(a.length<4)return u.error("Expected at least 3 arguments, but found only "+(a.length-1)+".");if(a.length%2!=0)return u.error("Expected an odd number of arguments.");var p;u.expectedType&&u.expectedType.kind!=="value"&&(p=u.expectedType);for(var x=[],C=1;C<a.length-1;C+=2){var B=u.parse(a[C],C,Pt);if(!B)return null;var O=u.parse(a[C+1],C+1,p);if(!O)return null;x.push([B,O]),p=p||O.type}var k=u.parse(a[a.length-1],a.length-1,p);return k?new Ja(p,x,k):null},Ja.prototype.evaluate=function(a){for(var u=0,p=this.branches;u<p.length;u+=1){var x=p[u],C=x[1];if(x[0].evaluate(a))return C.evaluate(a)}return this.otherwise.evaluate(a)},Ja.prototype.eachChild=function(a){for(var u=0,p=this.branches;u<p.length;u+=1){var x=p[u],C=x[1];a(x[0]),a(C)}a(this.otherwise)},Ja.prototype.outputDefined=function(){return this.branches.every((function(a){return a[1].outputDefined()}))&&this.otherwise.outputDefined()},Ja.prototype.serialize=function(){var a=["case"];return this.eachChild((function(u){a.push(u.serialize())})),a};var Ca=function(a,u,p,x){this.type=a,this.input=u,this.beginIndex=p,this.endIndex=x};function Th(a,u){return a==="=="||a==="!="?u.kind==="boolean"||u.kind==="string"||u.kind==="number"||u.kind==="null"||u.kind==="value":u.kind==="string"||u.kind==="number"||u.kind==="value"}function Eh(a,u,p,x){return x.compare(u,p)===0}function Bn(a,u,p){var x=a!=="=="&&a!=="!=";return(function(){function C(B,O,k){this.type=Pt,this.lhs=B,this.rhs=O,this.collator=k,this.hasUntypedArgument=B.type.kind==="value"||O.type.kind==="value"}return C.parse=function(B,O){if(B.length!==3&&B.length!==4)return O.error("Expected two or three arguments.");var k=B[0],j=O.parse(B[1],1,er);if(!j)return null;if(!Th(k,j.type))return O.concat(1).error('"'+k+`" comparisons are not supported for type '`+jr(j.type)+"'.");var J=O.parse(B[2],2,er);if(!J)return null;if(!Th(k,J.type))return O.concat(2).error('"'+k+`" comparisons are not supported for type '`+jr(J.type)+"'.");if(j.type.kind!==J.type.kind&&j.type.kind!=="value"&&J.type.kind!=="value")return O.error("Cannot compare types '"+jr(j.type)+"' and '"+jr(J.type)+"'.");x&&(j.type.kind==="value"&&J.type.kind!=="value"?j=new Rn(J.type,[j]):j.type.kind!=="value"&&J.type.kind==="value"&&(J=new Rn(j.type,[J])));var Q=null;if(B.length===4){if(j.type.kind!=="string"&&J.type.kind!=="string"&&j.type.kind!=="value"&&J.type.kind!=="value")return O.error("Cannot use collator to compare non-string types.");if(!(Q=O.parse(B[3],3,en)))return null}return new C(j,J,Q)},C.prototype.evaluate=function(B){var O=this.lhs.evaluate(B),k=this.rhs.evaluate(B);if(x&&this.hasUntypedArgument){var j=$n(O),J=$n(k);if(j.kind!==J.kind||j.kind!=="string"&&j.kind!=="number")throw new ui('Expected arguments for "'+a+'" to be (string, string) or (number, number), but found ('+j.kind+", "+J.kind+") instead.")}if(this.collator&&!x&&this.hasUntypedArgument){var Q=$n(O),ie=$n(k);if(Q.kind!=="string"||ie.kind!=="string")return u(B,O,k)}return this.collator?p(B,O,k,this.collator.evaluate(B)):u(B,O,k)},C.prototype.eachChild=function(B){B(this.lhs),B(this.rhs),this.collator&&B(this.collator)},C.prototype.outputDefined=function(){return!0},C.prototype.serialize=function(){var B=[a];return this.eachChild((function(O){B.push(O.serialize())})),B},C})()}Ca.parse=function(a,u){if(a.length<=2||a.length>=5)return u.error("Expected 3 or 4 arguments, but found "+(a.length-1)+" instead.");var p=u.parse(a[1],1,er),x=u.parse(a[2],2,ht);if(!p||!x)return null;if(!dr(p.type,[Xr(er),Lt,er]))return u.error("Expected first argument to be of type array or string, but found "+jr(p.type)+" instead");if(a.length===4){var C=u.parse(a[3],3,ht);return C?new Ca(p.type,p,x,C):null}return new Ca(p.type,p,x)},Ca.prototype.evaluate=function(a){var u=this.input.evaluate(a),p=this.beginIndex.evaluate(a);if(!Be(u,["string","array"]))throw new ui("Expected first argument to be of type array or string, but found "+jr($n(u))+" instead.");if(this.endIndex){var x=this.endIndex.evaluate(a);return u.slice(p,x)}return u.slice(p)},Ca.prototype.eachChild=function(a){a(this.input),a(this.beginIndex),this.endIndex&&a(this.endIndex)},Ca.prototype.outputDefined=function(){return!1},Ca.prototype.serialize=function(){if(this.endIndex!=null&&this.endIndex!==void 0){var a=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),a]}return["slice",this.input.serialize(),this.beginIndex.serialize()]};var ou=Bn("==",(function(a,u,p){return u===p}),Eh),au=Bn("!=",(function(a,u,p){return u!==p}),(function(a,u,p,x){return!Eh(0,u,p,x)})),Ch=Bn("<",(function(a,u,p){return u<p}),(function(a,u,p,x){return x.compare(u,p)<0})),Sh=Bn(">",(function(a,u,p){return u>p}),(function(a,u,p,x){return x.compare(u,p)>0})),Pl=Bn("<=",(function(a,u,p){return u<=p}),(function(a,u,p,x){return x.compare(u,p)<=0})),Ih=Bn(">=",(function(a,u,p){return u>=p}),(function(a,u,p,x){return x.compare(u,p)>=0})),qo=function(a,u,p,x,C){this.type=Lt,this.number=a,this.locale=u,this.currency=p,this.minFractionDigits=x,this.maxFractionDigits=C};qo.parse=function(a,u){if(a.length!==3)return u.error("Expected two arguments.");var p=u.parse(a[1],1,ht);if(!p)return null;var x=a[2];if(typeof x!="object"||Array.isArray(x))return u.error("NumberFormat options argument must be an object.");var C=null;if(x.locale&&!(C=u.parse(x.locale,1,Lt)))return null;var B=null;if(x.currency&&!(B=u.parse(x.currency,1,Lt)))return null;var O=null;if(x["min-fraction-digits"]&&!(O=u.parse(x["min-fraction-digits"],1,ht)))return null;var k=null;return x["max-fraction-digits"]&&!(k=u.parse(x["max-fraction-digits"],1,ht))?null:new qo(p,C,B,O,k)},qo.prototype.evaluate=function(a){return new Intl.NumberFormat(this.locale?this.locale.evaluate(a):[],{style:this.currency?"currency":"decimal",currency:this.currency?this.currency.evaluate(a):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(a):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(a):void 0}).format(this.number.evaluate(a))},qo.prototype.eachChild=function(a){a(this.number),this.locale&&a(this.locale),this.currency&&a(this.currency),this.minFractionDigits&&a(this.minFractionDigits),this.maxFractionDigits&&a(this.maxFractionDigits)},qo.prototype.outputDefined=function(){return!1},qo.prototype.serialize=function(){var a={};return this.locale&&(a.locale=this.locale.serialize()),this.currency&&(a.currency=this.currency.serialize()),this.minFractionDigits&&(a["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(a["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),a]};var Jo=function(a){this.type=ht,this.input=a};Jo.parse=function(a,u){if(a.length!==2)return u.error("Expected 1 argument, but found "+(a.length-1)+" instead.");var p=u.parse(a[1],1);return p?p.type.kind!=="array"&&p.type.kind!=="string"&&p.type.kind!=="value"?u.error("Expected argument of type string or array, but found "+jr(p.type)+" instead."):new Jo(p):null},Jo.prototype.evaluate=function(a){var u=this.input.evaluate(a);if(typeof u=="string"||Array.isArray(u))return u.length;throw new ui("Expected value to be of type string or array, but found "+jr($n(u))+" instead.")},Jo.prototype.eachChild=function(a){a(this.input)},Jo.prototype.outputDefined=function(){return!1},Jo.prototype.serialize=function(){var a=["length"];return this.eachChild((function(u){a.push(u.serialize())})),a};var to={"==":ou,"!=":au,">":Sh,"<":Ch,">=":Ih,"<=":Pl,array:Rn,at:Ta,boolean:Rn,case:Ja,coalesce:xa,collator:We,format:ms,image:$i,in:Xa,"index-of":Ea,interpolate:zi,"interpolate-hcl":zi,"interpolate-lab":zi,length:Jo,let:wa,literal:Fi,match:qa,number:Rn,"number-format":qo,object:Rn,slice:Ca,step:Vn,string:Rn,"to-boolean":In,"to-color":In,"to-number":In,"to-string":In,var:ba,within:Us};function Bh(a,u){var p=u[0],x=u[1],C=u[2],B=u[3];p=p.evaluate(a),x=x.evaluate(a),C=C.evaluate(a);var O=B?B.evaluate(a):1,k=Ie(p,x,C,O);if(k)throw new ui(k);
2097return new tn(p/255*O,x/255*O,C/255*O,O)}function lu(a,u){return a in u}function cu(a,u){var p=u[a];return p===void 0?null:p}function Ka(a){return{type:a}}function Af(a){return{result:"success",value:a}}function Ko(a){return{result:"error",value:a}}function Zo(a){return a["property-type"]==="data-driven"||a["property-type"]==="cross-faded-data-driven"}function xc(a){return!!a.expression&&a.expression.parameters.indexOf("zoom")>-1}function On(a){return!!a.expression&&a.expression.interpolated}function Fn(a){return a instanceof Number?"number":a instanceof String?"string":a instanceof Boolean?"boolean":Array.isArray(a)?"array":a===null?"null":typeof a}function uu(a){return typeof a=="object"&&a!==null&&!Array.isArray(a)}function Fp(a){return a}function Ml(a,u,p){return a!==void 0?a:u!==void 0?u:p!==void 0?p:void 0}function Ph(a,u,p,x,C){return Ml(typeof p===C?x[p]:void 0,a.default,u.default)}function Lp(a,u,p){if(Fn(p)!=="number")return Ml(a.default,u.default);var x=a.stops.length;if(x===1||p<=a.stops[0][0])return a.stops[0][1];if(p>=a.stops[x-1][0])return a.stops[x-1][1];var C=Mo(a.stops.map((function(B){return B[0]})),p);return a.stops[C][1]}function Mh(a,u,p){var x=a.base!==void 0?a.base:1;if(Fn(p)!=="number")return Ml(a.default,u.default);var C=a.stops.length;if(C===1||p<=a.stops[0][0])return a.stops[0][1];if(p>=a.stops[C-1][0])return a.stops[C-1][1];var B=Mo(a.stops.map((function(ie){return ie[0]})),p),O=(function(ie,fe,_e,ke){var Ne=ke-_e,He=ie-_e;return Ne===0?0:fe===1?He/Ne:(Math.pow(fe,He)-1)/(Math.pow(fe,Ne)-1)})(p,x,a.stops[B][0],a.stops[B+1][0]),k=a.stops[B][1],j=a.stops[B+1][1],J=$a[u.type]||Fp;if(a.colorSpace&&a.colorSpace!=="rgb"){var Q=pf[a.colorSpace];J=function(ie,fe){return Q.reverse(Q.interpolate(Q.forward(ie),Q.forward(fe),O))}}return typeof k.evaluate=="function"?{evaluate:function(){for(var ie=[],fe=arguments.length;fe--;)ie[fe]=arguments[fe];var _e=k.evaluate.apply(void 0,ie),ke=j.evaluate.apply(void 0,ie);if(_e!==void 0&&ke!==void 0)return J(_e,ke,O)}}:J(k,j,O)}function ns(a,u,p){return u.type==="color"?p=tn.parse(p):u.type==="formatted"?p=ci.fromString(p.toString()):u.type==="resolvedImage"?p=Wn.fromString(p.toString()):Fn(p)===u.type||u.type==="enum"&&u.values[p]||(p=void 0),Ml(p,a.default,u.default)}Me.register(to,{error:[{kind:"error"},[Lt],function(a,u){throw new ui(u[0].evaluate(a))}],typeof:[Lt,[er],function(a,u){return jr($n(u[0].evaluate(a)))}],"to-rgba":[Xr(ht,4),[Gt],function(a,u){return u[0].evaluate(a).toArray()}],rgb:[Gt,[ht,ht,ht],Bh],rgba:[Gt,[ht,ht,ht,ht],Bh],has:{type:Pt,overloads:[[[Lt],function(a,u){return lu(u[0].evaluate(a),a.properties())}],[[Lt,Ur],function(a,u){var p=u[1];return lu(u[0].evaluate(a),p.evaluate(a))}]]},get:{type:er,overloads:[[[Lt],function(a,u){return cu(u[0].evaluate(a),a.properties())}],[[Lt,Ur],function(a,u){var p=u[1];return cu(u[0].evaluate(a),p.evaluate(a))}]]},"feature-state":[er,[Lt],function(a,u){return cu(u[0].evaluate(a),a.featureState||{})}],properties:[Ur,[],function(a){return a.properties()}],"geometry-type":[Lt,[],function(a){return a.geometryType()}],id:[er,[],function(a){return a.id()}],zoom:[ht,[],function(a){return a.globals.zoom}],"heatmap-density":[ht,[],function(a){return a.globals.heatmapDensity||0}],"line-progress":[ht,[],function(a){return a.globals.lineProgress||0}],accumulated:[er,[],function(a){return a.globals.accumulated===void 0?null:a.globals.accumulated}],"+":[ht,Ka(ht),function(a,u){for(var p=0,x=0,C=u;x<C.length;x+=1)p+=C[x].evaluate(a);return p}],"*":[ht,Ka(ht),function(a,u){for(var p=1,x=0,C=u;x<C.length;x+=1)p*=C[x].evaluate(a);return p}],"-":{type:ht,overloads:[[[ht,ht],function(a,u){var p=u[1];return u[0].evaluate(a)-p.evaluate(a)}],[[ht],function(a,u){return-u[0].evaluate(a)}]]},"/":[ht,[ht,ht],function(a,u){var p=u[1];return u[0].evaluate(a)/p.evaluate(a)}],"%":[ht,[ht,ht],function(a,u){var p=u[1];return u[0].evaluate(a)%p.evaluate(a)}],ln2:[ht,[],function(){return Math.LN2}],pi:[ht,[],function(){return Math.PI}],e:[ht,[],function(){return Math.E}],"^":[ht,[ht,ht],function(a,u){var p=u[1];return Math.pow(u[0].evaluate(a),p.evaluate(a))}],sqrt:[ht,[ht],function(a,u){return Math.sqrt(u[0].evaluate(a))}],log10:[ht,[ht],function(a,u){return Math.log(u[0].evaluate(a))/Math.LN10}],ln:[ht,[ht],function(a,u){return Math.log(u[0].evaluate(a))}],log2:[ht,[ht],function(a,u){return Math.log(u[0].evaluate(a))/Math.LN2}],sin:[ht,[ht],function(a,u){return Math.sin(u[0].evaluate(a))}],cos:[ht,[ht],function(a,u){return Math.cos(u[0].evaluate(a))}],tan:[ht,[ht],function(a,u){return Math.tan(u[0].evaluate(a))}],asin:[ht,[ht],function(a,u){return Math.asin(u[0].evaluate(a))}],acos:[ht,[ht],function(a,u){return Math.acos(u[0].evaluate(a))}],atan:[ht,[ht],function(a,u){return Math.atan(u[0].evaluate(a))}],min:[ht,Ka(ht),function(a,u){return Math.min.apply(Math,u.map((function(p){return p.evaluate(a)})))}],max:[ht,Ka(ht),function(a,u){return Math.max.apply(Math,u.map((function(p){return p.evaluate(a)})))}],abs:[ht,[ht],function(a,u){return Math.abs(u[0].evaluate(a))}],round:[ht,[ht],function(a,u){var p=u[0].evaluate(a);return p<0?-Math.round(-p):Math.round(p)}],floor:[ht,[ht],function(a,u){return Math.floor(u[0].evaluate(a))}],ceil:[ht,[ht],function(a,u){return Math.ceil(u[0].evaluate(a))}],"filter-==":[Pt,[Lt,er],function(a,u){var p=u[0],x=u[1];return a.properties()[p.value]===x.value}],"filter-id-==":[Pt,[er],function(a,u){var p=u[0];return a.id()===p.value}],"filter-type-==":[Pt,[Lt],function(a,u){var p=u[0];return a.geometryType()===p.value}],"filter-<":[Pt,[Lt,er],function(a,u){var p=u[0],x=u[1],C=a.properties()[p.value],B=x.value;return typeof C==typeof B&&C<B}],"filter-id-<":[Pt,[er],function(a,u){var p=u[0],x=a.id(),C=p.value;return typeof x==typeof C&&x<C}],"filter->":[Pt,[Lt,er],function(a,u){var p=u[0],x=u[1],C=a.properties()[p.value],B=x.value;return typeof C==typeof B&&C>B}],"filter-id->":[Pt,[er],function(a,u){var p=u[0],x=a.id(),C=p.value;return typeof x==typeof C&&x>C}],"filter-<=":[Pt,[Lt,er],function(a,u){var p=u[0],x=u[1],C=a.properties()[p.value],B=x.value;return typeof C==typeof B&&C<=B}],"filter-id-<=":[Pt,[er],function(a,u){var p=u[0],x=a.id(),C=p.value;return typeof x==typeof C&&x<=C}],"filter->=":[Pt,[Lt,er],function(a,u){var p=u[0],x=u[1],C=a.properties()[p.value],B=x.value;return typeof C==typeof B&&C>=B}],"filter-id->=":[Pt,[er],function(a,u){var p=u[0],x=a.id(),C=p.value;return typeof x==typeof C&&x>=C}],"filter-has":[Pt,[er],function(a,u){return u[0].value in a.properties()}],"filter-has-id":[Pt,[],function(a){return a.id()!==null&&a.id()!==void 0}],"filter-type-in":[Pt,[Xr(Lt)],function(a,u){return u[0].value.indexOf(a.geometryType())>=0}],"filter-id-in":[Pt,[Xr(er)],function(a,u){return u[0].value.indexOf(a.id())>=0}],"filter-in-small":[Pt,[Lt,Xr(er)],function(a,u){var p=u[0];return u[1].value.indexOf(a.properties()[p.value])>=0}],"filter-in-large":[Pt,[Lt,Xr(er)],function(a,u){var p=u[0],x=u[1];return(function(C,B,O,k){for(;O<=k;){var j=O+k>>1;
2097if(B[j]===C)return!0;B[j]>C?k=j-1:O=j+1}return!1})(a.properties()[p.value],x.value,0,x.value.length-1)}],all:{type:Pt,overloads:[[[Pt,Pt],function(a,u){var p=u[1];return u[0].evaluate(a)&&p.evaluate(a)}],[Ka(Pt),function(a,u){for(var p=0,x=u;p<x.length;p+=1)if(!x[p].evaluate(a))return!1;return!0}]]},any:{type:Pt,overloads:[[[Pt,Pt],function(a,u){var p=u[1];return u[0].evaluate(a)||p.evaluate(a)}],[Ka(Pt),function(a,u){for(var p=0,x=u;p<x.length;p+=1)if(x[p].evaluate(a))return!0;return!1}]]},"!":[Pt,[Pt],function(a,u){return!u[0].evaluate(a)}],"is-supported-script":[Pt,[Lt],function(a,u){var p=a.globals&&a.globals.isSupportedScript;return!p||p(u[0].evaluate(a))}],upcase:[Lt,[Lt],function(a,u){return u[0].evaluate(a).toUpperCase()}],downcase:[Lt,[Lt],function(a,u){return u[0].evaluate(a).toLowerCase()}],concat:[Lt,Ka(er),function(a,u){return u.map((function(p){return Wo(p.evaluate(a))})).join("")}],"resolved-locale":[Lt,[en],function(a,u){return u[0].evaluate(a).resolvedLocale()}]});var Sa=function(a,u){this.expression=a,this._warningHistory={},this._evaluator=new be,this._defaultValue=u?(function(p){return p.type==="color"&&uu(p.default)?new tn(0,0,0,0):p.type==="color"?tn.parse(p.default)||null:p.default===void 0?null:p.default})(u):null,this._enumValues=u&&u.type==="enum"?u.values:null};function xo(a){return Array.isArray(a)&&a.length>0&&typeof a[0]=="string"&&a[0]in to}function fu(a,u){var p=new _i(to,[],u?(function(C){var B={color:Gt,string:Lt,number:ht,enum:Lt,boolean:Pt,formatted:ln,resolvedImage:$r};return C.type==="array"?Xr(B[C.value]||er,C.length):B[C.type]})(u):void 0),x=p.parse(a,void 0,void 0,void 0,u&&u.type==="string"?{typeAnnotation:"coerce"}:void 0);return x?Af(new Sa(x,u)):Ko(p.errors)}Sa.prototype.evaluateWithoutErrorHandling=function(a,u,p,x,C,B){return this._evaluator.globals=a,this._evaluator.feature=u,this._evaluator.featureState=p,this._evaluator.canonical=x,this._evaluator.availableImages=C||null,this._evaluator.formattedSection=B,this.expression.evaluate(this._evaluator)},Sa.prototype.evaluate=function(a,u,p,x,C,B){this._evaluator.globals=a,this._evaluator.feature=u||null,this._evaluator.featureState=p||null,this._evaluator.canonical=x,this._evaluator.availableImages=C||null,this._evaluator.formattedSection=B||null;try{var O=this.expression.evaluate(this._evaluator);if(O==null||typeof O=="number"&&O!=O)return this._defaultValue;if(this._enumValues&&!(O in this._enumValues))throw new ui("Expected value to be one of "+Object.keys(this._enumValues).map((function(k){return JSON.stringify(k)})).join(", ")+", but found "+JSON.stringify(O)+" instead.");return O}catch(k){return this._warningHistory[k.message]||(this._warningHistory[k.message]=!0,typeof console<"u"&&console.warn(k.message)),this._defaultValue}};var Za=function(a,u){this.kind=a,this._styleExpression=u,this.isStateDependent=a!=="constant"&&!va(u.expression)};Za.prototype.evaluateWithoutErrorHandling=function(a,u,p,x,C,B){return this._styleExpression.evaluateWithoutErrorHandling(a,u,p,x,C,B)},Za.prototype.evaluate=function(a,u,p,x,C,B){return this._styleExpression.evaluate(a,u,p,x,C,B)};var Rl=function(a,u,p,x){this.kind=a,this.zoomStops=p,this._styleExpression=u,this.isStateDependent=a!=="camera"&&!va(u.expression),this.interpolationType=x};function zs(a,u){if((a=fu(a,u)).result==="error")return a;var p=a.value.expression,x=$o(p);if(!x&&!Zo(u))return Ko([new Ct("","data expressions not supported")]);var C=Wa(p,["zoom"]);if(!C&&!xc(u))return Ko([new Ct("","zoom expressions not supported")]);var B=(function O(k){var j=null;if(k instanceof wa)j=O(k.result);else if(k instanceof xa)for(var J=0,Q=k.args;J<Q.length&&!(j=O(Q[J]));J+=1);else(k instanceof Vn||k instanceof zi)&&k.input instanceof Me&&k.input.name==="zoom"&&(j=k);return j instanceof Ct||k.eachChild((function(ie){var fe=O(ie);fe instanceof Ct?j=fe:!j&&fe?j=new Ct("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.'):j&&fe&&j!==fe&&(j=new Ct("",'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'))})),j})(p);return B||C?B instanceof Ct?Ko([B]):B instanceof zi&&!On(u)?Ko([new Ct("",'"interpolate" expressions cannot be used with this property')]):Af(B?new Rl(x?"camera":"composite",a.value,B.labels,B instanceof zi?B.interpolation:void 0):new Za(x?"constant":"source",a.value)):Ko([new Ct("",'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.')])}Rl.prototype.evaluateWithoutErrorHandling=function(a,u,p,x,C,B){return this._styleExpression.evaluateWithoutErrorHandling(a,u,p,x,C,B)},Rl.prototype.evaluate=function(a,u,p,x,C,B){return this._styleExpression.evaluate(a,u,p,x,C,B)},Rl.prototype.interpolationFactor=function(a,u,p){return this.interpolationType?zi.interpolationFactor(this.interpolationType,a,u,p):0};var Ya=function(a,u){this._parameters=a,this._specification=u,le(this,(function p(x,C){var B,O,k,j=C.type==="color",J=x.stops&&typeof x.stops[0][0]=="object",Q=J||!(J||x.property!==void 0),ie=x.type||(On(C)?"exponential":"interval");if(j&&((x=le({},x)).stops&&(x.stops=x.stops.map((function(nr){return[nr[0],tn.parse(nr[1])]}))),x.default=tn.parse(x.default?x.default:C.default)),x.colorSpace&&x.colorSpace!=="rgb"&&!pf[x.colorSpace])throw new Error("Unknown color space: "+x.colorSpace);if(ie==="exponential")B=Mh;else if(ie==="interval")B=Lp;else if(ie==="categorical"){B=Ph,O=Object.create(null);for(var fe=0,_e=x.stops;fe<_e.length;fe+=1){var ke=_e[fe];O[ke[0]]=ke[1]}k=typeof x.stops[0][0]}else{if(ie!=="identity")throw new Error('Unknown function type "'+ie+'"');B=ns}if(J){for(var Ne={},He=[],je=0;je<x.stops.length;je++){var Ke=x.stops[je],lt=Ke[0].zoom;Ne[lt]===void 0&&(Ne[lt]={zoom:lt,type:x.type,property:x.property,default:x.default,stops:[]},He.push(lt)),Ne[lt].stops.push([Ke[0].value,Ke[1]])}for(var mt=[],yt=0,Ot=He;yt<Ot.length;yt+=1){var Ht=Ot[yt];mt.push([Ne[Ht].zoom,p(Ne[Ht],C)])}var Kt={name:"linear"};return{kind:"composite",interpolationType:Kt,interpolationFactor:zi.interpolationFactor.bind(void 0,Kt),zoomStops:mt.map((function(nr){return nr[0]})),evaluate:function(nr,Sr){var ir=nr.zoom;return Mh({stops:mt,base:x.base},C,ir).evaluate(ir,Sr)}}}if(Q){var xr=ie==="exponential"?{name:"exponential",base:x.base!==void 0?x.base:1}:null;return{kind:"camera",interpolationType:xr,interpolationFactor:zi.interpolationFactor.bind(void 0,xr),zoomStops:x.stops.map((function(nr){return nr[0]})),evaluate:function(nr){return B(x,C,nr.zoom,O,k)}}}return{kind:"source",evaluate:function(nr,Sr){var ir=Sr&&Sr.properties?Sr.properties[x.property]:void 0;return ir===void 0?Ml(x.default,C.default):B(x,C,ir,O,k)}}})(this._parameters,this._specification))};function Vs(a){var u=a.key,p=a.value,x=a.valueSpec||{},C=a.objectElementValidators||{},B=a.style,O=a.styleSpec,k=[],j=Fn(p);if(j!=="object")return[new Se(u,p,"object expected, "+j+" found")];for(var J in p){var Q=J.split(".")[0],ie=x[Q]||x["*"],fe=void 0;if(C[Q])fe=C[Q];else if(x[Q])fe=fn;else if(C["*"])fe=C["*"];else{if(!x["*"]){k.push(new Se(u,p[J],'unknown property "'+J+'"'));continue}fe=fn}k=k.concat(fe({key:(u&&u+".")+J,value:p[J],valueSpec:ie,style:B,styleSpec:O,object:p,objectKey:J},p))}for(var _e in x)C[_e]||x[_e].required&&x[_e].default===void 0&&p[_e]===void 0&&k.push(new Se(u,p,'missing required property "'+_e+'"'));return k}function Qa(a){var u=a.value,p=a.valueSpec,x=a.style,C=a.styleSpec,B=a.key,O=a.arrayElementValidator||fn;if(Fn(u)!=="array")return[new Se(B,u,"array expected, "+Fn(u)+" found")];if(p.length&&u.length!==p.length)return[new Se(B,u,"array length "+p.length+" expected, length "+u.length+" found")];if(p["min-length"]&&u.length<p["min-length"])return[new Se(B,u,"array length at least "+p["min-length"]+" expected, length "+u.length+" found")];var k={type:p.value,values:p.values};C.$version<7&&(k.function=p.function),Fn(p.value)==="object"&&(k=p.value);for(var j=[],J=0;J<u.length;J++)j=j.concat(O({array:u,arrayIndex:J,value:u[J],valueSpec:k,style:x,styleSpec:C,key:B+"["+J+"]"}));return j}function Ol(a){var u=a.key,p=a.value,x=a.valueSpec,C=Fn(p);return C==="number"&&p!=p&&(C="NaN"),C!=="number"?[new Se(u,p,"number expected, "+C+" found")]:"minimum"in x&&p<x.minimum?[new Se(u,p,p+" is less than the minimum value "+
vendor: 5,089 bytes, line 2097
2097x.minimum)]:"maximum"in x&&p>x.maximum?[new Se(u,p,p+" is greater than the maximum value "+x.maximum)]:[]}function Dl(a){var u,p,x,C=a.valueSpec,B=xt(a.value.type),O={},k=B!=="categorical"&&a.value.property===void 0,j=!k,J=Fn(a.value.stops)==="array"&&Fn(a.value.stops[0])==="array"&&Fn(a.value.stops[0][0])==="object",Q=Vs({key:a.key,value:a.value,valueSpec:a.styleSpec.function,style:a.style,styleSpec:a.styleSpec,objectElementValidators:{stops:function(_e){if(B==="identity")return[new Se(_e.key,_e.value,'identity function may not have a "stops" property')];var ke=[],Ne=_e.value;return ke=ke.concat(Qa({key:_e.key,value:Ne,valueSpec:_e.valueSpec,style:_e.style,styleSpec:_e.styleSpec,arrayElementValidator:ie})),Fn(Ne)==="array"&&Ne.length===0&&ke.push(new Se(_e.key,Ne,"array must have at least one stop")),ke},default:function(_e){return fn({key:_e.key,value:_e.value,valueSpec:C,style:_e.style,styleSpec:_e.styleSpec})}}});return B==="identity"&&k&&Q.push(new Se(a.key,a.value,'missing required property "property"')),B==="identity"||a.value.stops||Q.push(new Se(a.key,a.value,'missing required property "stops"')),B==="exponential"&&a.valueSpec.expression&&!On(a.valueSpec)&&Q.push(new Se(a.key,a.value,"exponential functions not supported")),a.styleSpec.$version>=8&&(j&&!Zo(a.valueSpec)?Q.push(new Se(a.key,a.value,"property functions not supported")):k&&!xc(a.valueSpec)&&Q.push(new Se(a.key,a.value,"zoom functions not supported"))),B!=="categorical"&&!J||a.value.property!==void 0||Q.push(new Se(a.key,a.value,'"property" property is required')),Q;function ie(_e){var ke=[],Ne=_e.value,He=_e.key;if(Fn(Ne)!=="array")return[new Se(He,Ne,"array expected, "+Fn(Ne)+" found")];if(Ne.length!==2)return[new Se(He,Ne,"array length 2 expected, length "+Ne.length+" found")];if(J){if(Fn(Ne[0])!=="object")return[new Se(He,Ne,"object expected, "+Fn(Ne[0])+" found")];if(Ne[0].zoom===void 0)return[new Se(He,Ne,"object stop key must have zoom")];if(Ne[0].value===void 0)return[new Se(He,Ne,"object stop key must have value")];if(x&&x>xt(Ne[0].zoom))return[new Se(He,Ne[0].zoom,"stop zoom values must appear in ascending order")];xt(Ne[0].zoom)!==x&&(x=xt(Ne[0].zoom),p=void 0,O={}),ke=ke.concat(Vs({key:He+"[0]",value:Ne[0],valueSpec:{zoom:{}},style:_e.style,styleSpec:_e.styleSpec,objectElementValidators:{zoom:Ol,value:fe}}))}else ke=ke.concat(fe({key:He+"[0]",value:Ne[0],style:_e.style,styleSpec:_e.styleSpec},Ne));return xo(Je(Ne[1]))?ke.concat([new Se(He+"[1]",Ne[1],"expressions are not allowed in function stops.")]):ke.concat(fn({key:He+"[1]",value:Ne[1],valueSpec:C,style:_e.style,styleSpec:_e.styleSpec}))}function fe(_e,ke){var Ne=Fn(_e.value),He=xt(_e.value),je=_e.value!==null?_e.value:ke;if(u){if(Ne!==u)return[new Se(_e.key,je,Ne+" stop domain type must match previous stop domain type "+u)]}else u=Ne;if(Ne!=="number"&&Ne!=="string"&&Ne!=="boolean")return[new Se(_e.key,je,"stop domain value must be a number, string, or boolean")];if(Ne!=="number"&&B!=="categorical"){var Ke="number expected, "+Ne+" found";return Zo(C)&&B===void 0&&(Ke+='\nIf you intended to use a categorical function, specify `"type": "categorical"`.'),[new Se(_e.key,je,Ke)]}return B!=="categorical"||Ne!=="number"||isFinite(He)&&Math.floor(He)===He?B!=="categorical"&&Ne==="number"&&p!==void 0&&He<p?[new Se(_e.key,je,"stop domain values must appear in ascending order")]:(p=He,B==="categorical"&&He in O?[new Se(_e.key,je,"stop domain values must be unique")]:(O[He]=!0,[])):[new Se(_e.key,je,"integer expected, found "+He)]}}function el(a){var u=(a.expressionContext==="property"?zs:fu)(Je(a.value),a.valueSpec);if(u.result==="error")return u.value.map((function(x){return new Se(""+a.key+x.key,a.value,x.message)}));var p=u.value.expression||u.value._styleExpression.expression;if(a.expressionContext==="property"&&a.propertyKey==="text-font"&&!p.outputDefined())return[new Se(a.key,a.value,'Invalid data expression for "'+a.propertyKey+'". Output values must be contained as literals within the expression.')];if(a.expressionContext==="property"&&a.propertyType==="layout"&&!va(p))return[new Se(a.key,a.value,'"feature-state" data expressions are not supported with layout properties.')];if(a.expressionContext==="filter"&&!va(p))return[new Se(a.key,a.value,'"feature-state" data expressions are not supported with filters.')];if(a.expressionContext&&a.expressionContext.indexOf("cluster")===0){if(!Wa(p,["zoom","feature-state"]))return[new Se(a.key,a.value,'"zoom" and "feature-state" expressions are not supported with cluster properties.')];if(a.expressionContext==="cluster-initial"&&!$o(p))return[new Se(a.key,a.value,"Feature data expressions are not supported with initial expression part of cluster properties.")]}return[]}function Fl(a){var u=a.key,p=a.value,x=a.valueSpec,C=[];return Array.isArray(x.values)?x.values.indexOf(xt(p))===-1&&C.push(new Se(u,p,"expected one of ["+x.values.join(", ")+"], "+JSON.stringify(p)+" found")):Object.keys(x.values).indexOf(xt(p))===-1&&C.push(new Se(u,p,"expected one of ["+Object.keys(x.values).join(", ")+"], "+JSON.stringify(p)+" found")),C}
2097function hu(a){if(a===!0||a===!1)return!0;if(!Array.isArray(a)||a.length===0)return!1;switch(a[0]){case"has":return a.length>=2&&a[1]!=="$id"&&a[1]!=="$type";case"in":return a.length>=3&&(typeof a[1]!="string"||Array.isArray(a[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return a.length!==3||Array.isArray(a[1])||Array.isArray(a[2]);case"any":case"all":for(var u=0,p=a.slice(1);u<p.length;u+=1){var x=p[u];if(!hu(x)&&typeof x!="boolean")return!1}return!0;default:return!0}}Ya.deserialize=function(a){return new Ya(a._parameters,a._specification)},Ya.serialize=function(a){return{_parameters:a._parameters,_specification:a._specification}};var wc={type:"boolean",default:!1};function du(a){if(a==null)return{filter:function(){return!0},needGeometry:!1};hu(a)||(a=Tc(a));var u=fu(a,wc);if(u.result==="error")throw new Error(u.value.map((function(p){return p.key+": "+p.message})).join(", "));return{filter:function(p,x,C){return u.value.evaluate(p,x,{},C)},needGeometry:(function p(x){if(!Array.isArray(x))return!1;if(x[0]==="within")return!0;for(var C=1;C<x.length;C++)if(p(x[C]))return!0;return!1})(a)}}function kp(a,u){return a<u?-1:a>u?1:0}function Tc(a){if(!a)return!0;var u,p=a[0];return a.length<=1?p!=="any":p==="=="?pu(a[1],a[2],"=="):p==="!="?Au(pu(a[1],a[2],"==")):p==="<"||p===">"||p==="<="||p===">="?pu(a[1],a[2],p):p==="any"?(u=a.slice(1),["any"].concat(u.map(Tc))):p==="all"?["all"].concat(a.slice(1).map(Tc)):p==="none"?["all"].concat(a.slice(1).map(Tc).map(Au)):p==="in"?Ll(a[1],a.slice(2)):p==="!in"?Au(Ll(a[1],a.slice(2))):p==="has"?tl(a[1]):p==="!has"?Au(tl(a[1])):p!=="within"||a}function pu(a,u,p){switch(a){case"$type":return["filter-type-"+p,u];case"$id":return["filter-id-"+p,u];default:return["filter-"+p,a,u]}}function Ll(a,u){if(u.length===0)return!1;switch(a){case"$type":return["filter-type-in",["literal",u]];case"$id":return["filter-id-in",["literal",u]];default:return u.length>200&&!u.some((function(p){return typeof p!=typeof u[0]}))?["filter-in-large",a,["literal",u.sort(kp)]]:["filter-in-small",a,["literal",u]]}}function tl(a){switch(a){case"$type":return!0;case"$id":return["filter-has-id"];default:return["filter-has",a]}}function Au(a){return["!",a]}function rl(a){return hu(Je(a.value))?el(le({},a,{expressionContext:"filter",valueSpec:{value:"boolean"}})):(function u(p){var x=p.value,C=p.key;if(Fn(x)!=="array")return[new Se(C,x,"array expected, "+Fn(x)+" found")];var B,O=p.styleSpec,k=[];if(x.length<1)return[new Se(C,x,"filter array must have at least 1 element")];switch(k=k.concat(Fl({key:C+"[0]",value:x[0],valueSpec:O.filter_operator,style:p.style,styleSpec:p.styleSpec})),xt(x[0])){case"<":case"<=":case">":case">=":x.length>=2&&xt(x[1])==="$type"&&k.push(new Se(C,x,'"$type" cannot be use with operator "'+x[0]+'"'));case"==":case"!=":x.length!==3&&k.push(new Se(C,x,'filter array for operator "'+x[0]+'" must have 3 elements'));case"in":case"!in":x.length>=2&&(B=Fn(x[1]))!=="string"&&k.push(new Se(C+"[1]",x[1],"string expected, "+B+" found"));for(var j=2;j<x.length;j++)B=Fn(x[j]),xt(x[1])==="$type"?k=k.concat(Fl({key:C+"["+j+"]",value:x[j],valueSpec:O.geometry_type,style:p.style,styleSpec:p.styleSpec})):B!=="string"&&B!=="number"&&B!=="boolean"&&k.push(new Se(C+"["+j+"]",x[j],"string, number, or boolean expected, "+B+" found"));break;case"any":case"all":case"none":for(var J=1;J<x.length;J++)k=k.concat(u({key:C+"["+J+"]",value:x[J],style:p.style,styleSpec:p.styleSpec}));break;case"has":case"!has":B=Fn(x[1]),x.length!==2?k.push(new Se(C,x,'filter array for "'+x[0]+'" operator must have 2 elements')):B!=="string"&&k.push(new Se(C+"[1]",x[1],"string expected, "+B+" found"));break;case"within":B=Fn(x[1]),x.length!==2?k.push(new Se(C,x,'filter array for "'+x[0]+'" operator must have 2 elements')):B!=="object"&&k.push(new Se(C+"[1]",x[1],"object expected, "+B+" found"))}return k})(a)}function gf(a,u){var p=a.key,x=a.style,C=a.styleSpec,B=a.value,O=a.objectKey,k=C[u+"_"+a.layerType];if(!k)return[];var j=O.match(/^(.*)-transition$/);
2097if(u==="paint"&&j&&k[j[1]]&&k[j[1]].transition)return fn({key:p,value:B,valueSpec:C.transition,style:x,styleSpec:C});var J,Q=a.valueSpec||k[O];if(!Q)return[new Se(p,B,'unknown property "'+O+'"')];if(Fn(B)==="string"&&Zo(Q)&&!Q.tokens&&(J=/^{([^}]+)}$/.exec(B)))return[new Se(p,B,'"'+O+'" does not support interpolation syntax\nUse an identity property function instead: `{ "type": "identity", "property": '+JSON.stringify(J[1])+" }`.")];var ie=[];return a.layerType==="symbol"&&(O==="text-field"&&x&&!x.glyphs&&ie.push(new Se(p,B,'use of "text-field" requires a style "glyphs" property')),O==="text-font"&&uu(Je(B))&&xt(B.type)==="identity"&&ie.push(new Se(p,B,'"text-font" does not support identity functions'))),ie.concat(fn({key:a.key,value:B,valueSpec:Q,style:x,styleSpec:C,expressionContext:"property",propertyType:u,propertyKey:O}))}function mf(a){return gf(a,"paint")}function Ec(a){return gf(a,"layout")}function Rh(a){var u=[],p=a.value,x=a.key,C=a.style,B=a.styleSpec;p.type||p.ref||u.push(new Se(x,p,'either "type" or "ref" is required'));var O,k=xt(p.type),j=xt(p.ref);if(p.id)for(var J=xt(p.id),Q=0;Q<a.arrayIndex;Q++){var ie=C.layers[Q];xt(ie.id)===J&&u.push(new Se(x,p.id,'duplicate layer id "'+p.id+'", previously used at line '+ie.id.__line__))}if("ref"in p)["type","source","source-layer","filter","layout"].forEach((function(ke){ke in p&&u.push(new Se(x,p[ke],'"'+ke+'" is prohibited for ref layers'))})),C.layers.forEach((function(ke){xt(ke.id)===j&&(O=ke)})),O?O.ref?u.push(new Se(x,p.ref,"ref cannot reference another ref layer")):k=xt(O.type):u.push(new Se(x,p.ref,'ref layer "'+j+'" not found'));else if(k!=="background")if(p.source){var fe=C.sources&&C.sources[p.source],_e=fe&&xt(fe.type);fe?_e==="vector"&&k==="raster"?u.push(new Se(x,p.source,'layer "'+p.id+'" requires a raster source')):_e==="raster"&&k!=="raster"?u.push(new Se(x,p.source,'layer "'+p.id+'" requires a vector source')):_e!=="vector"||p["source-layer"]?_e==="raster-dem"&&k!=="hillshade"?u.push(new Se(x,p.source,"raster-dem source can only be used with layer type 'hillshade'.")):k!=="line"||!p.paint||!p.paint["line-gradient"]||_e==="geojson"&&fe.lineMetrics||u.push(new Se(x,p,'layer "'+p.id+'" specifies a line-gradient, which requires a GeoJSON source with `lineMetrics` enabled.')):u.push(new Se(x,p,'layer "'+p.id+'" must specify a "source-layer"')):u.push(new Se(x,p.source,'source "'+p.source+'" not found'))}else u.push(new Se(x,p,'missing required property "source"'));return u=u.concat(Vs({key:x,value:p,valueSpec:B.layer,style:a.style,styleSpec:a.styleSpec,objectElementValidators:{"*":function(){return[]},type:function(){return fn({key:x+".type",value:p.type,valueSpec:B.layer.type,style:a.style,styleSpec:a.styleSpec,object:p,objectKey:"type"})},filter:rl,layout:function(ke){return Vs({layer:p,key:ke.key,value:ke.value,style:ke.style,styleSpec:ke.styleSpec,objectElementValidators:{"*":function(Ne){return Ec(le({layerType:k},Ne))}}})},paint:function(ke){return Vs({layer:p,key:ke.key,value:ke.value,style:ke.style,styleSpec:ke.styleSpec,objectElementValidators:{"*":function(Ne){return mf(le({layerType:k},Ne))}}})}}}))}function nl(a){var u=a.value,p=a.key,x=Fn(u);return x!=="string"?[new Se(p,u,"string expected, "+x+" found")]:[]}var Xn={promoteId:function(a){var u=a.key,p=a.value;if(Fn(p)==="string")return nl({key:u,value:p});var x=[];for(var C in p)x.push.apply(x,nl({key:u+"."+C,value:p[C]}));return x}};function gu(a){var u=a.value,p=a.key,x=a.styleSpec,C=a.style;if(!u.type)return[new Se(p,u,'"type" is required')];var B,O=xt(u.type);switch(O){case"vector":case"raster":case"raster-dem":return Vs({key:p,value:u,valueSpec:x["source_"+O.replace("-","_")],style:a.style,styleSpec:x,objectElementValidators:Xn});case"geojson":if(B=Vs({key:p,value:u,valueSpec:x.source_geojson,style:C,styleSpec:x,objectElementValidators:Xn}),u.cluster)for(var k in u.clusterProperties){var j=u.clusterProperties[k],J=j[0],Q=typeof J=="string"?[J,["accumulated"],["get",k]]:J;B.push.apply(B,el({key:p+"."+k+".map",value:j[1],expressionContext:"cluster-map"})),B.push.apply(B,el({key:p+"."+k+".reduce",value:Q,expressionContext:"cluster-reduce"}))}return B;case"video":return Vs({key:p,value:u,valueSpec:x.source_video,style:C,styleSpec:x});case"image":return Vs({key:p,value:u,valueSpec:x.source_image,style:C,styleSpec:x});case"canvas":return[new Se(p,null,"Please use runtime APIs to add canvas sources, rather than
2097including them in stylesheets.","source.canvas")];default:return Fl({key:p+".type",value:u.type,valueSpec:{values:["vector","raster","raster-dem","geojson","video","image"]}})}}function Yo(a){var u=a.value,p=a.styleSpec,x=p.light,C=a.style,B=[],O=Fn(u);if(u===void 0)return B;if(O!=="object")return B.concat([new Se("light",u,"object expected, "+O+" found")]);for(var k in u){var j=k.match(/^(.*)-transition$/);B=B.concat(j&&x[j[1]]&&x[j[1]].transition?fn({key:k,value:u[k],valueSpec:p.transition,style:C,styleSpec:p}):x[k]?fn({key:k,value:u[k],valueSpec:x[k],style:C,styleSpec:p}):[new Se(k,u[k],'unknown property "'+k+'"')])}return B}var Qo={"*":function(){return[]},array:Qa,boolean:function(a){var u=a.value,p=a.key,x=Fn(u);return x!=="boolean"?[new Se(p,u,"boolean expected, "+x+" found")]:[]},number:Ol,color:function(a){var u=a.key,p=a.value,x=Fn(p);return x!=="string"?[new Se(u,p,"color expected, "+x+" found")]:qt(p)===null?[new Se(u,p,'color expected, "'+p+'" found')]:[]},constants:g,enum:Fl,filter:rl,function:Dl,layer:Rh,object:Vs,source:gu,light:Yo,string:nl,formatted:function(a){return nl(a).length===0?[]:el(a)},resolvedImage:function(a){return nl(a).length===0?[]:el(a)}};function fn(a){var u=a.value,p=a.valueSpec,x=a.styleSpec;return p.expression&&uu(xt(u))?Dl(a):p.expression&&xo(Je(u))?el(a):p.type&&Qo[p.type]?Qo[p.type](a):Vs(le({},a,{valueSpec:p.type?x[p.type]:p}))}function Ln(a){var u=a.value,p=a.key,x=nl(a);return x.length||(u.indexOf("{fontstack}")===-1&&x.push(new Se(p,u,'"glyphs" url must include a "{fontstack}" token')),u.indexOf("{range}")===-1&&x.push(new Se(p,u,'"glyphs" url must include a "{range}" token'))),x}function js(a,u){u===void 0&&(u=ae);var p=[];return p=p.concat(fn({key:"",value:a,valueSpec:u.$root,styleSpec:u,style:a,objectElementValidators:{glyphs:Ln,"*":function(){return[]}}})),a.constants&&(p=p.concat(g({key:"constants",value:a.constants}))),Cc(p)}function Cc(a){return[].concat(a).sort((function(u,p){return u.line-p.line}))}function kl(a){return function(){for(var u=[],p=arguments.length;p--;)u[p]=arguments[p];return Cc(a.apply(this,u))}}js.source=kl(gu),js.light=kl(Yo),js.layer=kl(Rh),js.filter=kl(rl),js.paintProperty=kl(mf),js.layoutProperty=kl(Ec);var Sc=js,Np=Sc.light,Up=Sc.paintProperty,Nl=Sc.layoutProperty;function Ic(a,u){var p=!1;if(u&&u.length)for(var x=0,C=u;x<C.length;x+=1)a.fire(new he(new Error(C[x].message))),p=!0;return p}var Ro=kn;function kn(a,u,p){var x=this.cells=[];if(a instanceof ArrayBuffer){this.arrayBuffer=a;var C=new Int32Array(this.arrayBuffer);a=C[0],this.d=(u=C[1])+2*(p=C[2]);for(var B=0;B<this.d*this.d;B++){var O=C[3+B],k=C[3+B+1];x.push(O===k?null:C.subarray(O,k))}var j=C[3+x.length+1];this.keys=C.subarray(C[3+x.length],j),this.bboxes=C.subarray(j),this.insert=this._insertReadonly}else{this.d=u+2*p;for(var J=0;J<this.d*this.d;J++)x.push([]);this.keys=[],this.bboxes=[]}this.n=u,this.extent=a,this.padding=p,this.scale=u/a,this.uid=0;var Q=p/u*a;this.min=-Q,this.max=a+Q}kn.prototype.insert=function(a,u,p,x,C){this._forEachCell(u,p,x,C,this._insertCell,this.uid++),this.keys.push(a),this.bboxes.push(u),this.bboxes.push(p),this.bboxes.push(x),this.bboxes.push(C)},kn.prototype._insertReadonly=function(){throw"Cannot insert into a GridIndex created from an ArrayBuffer."},kn.prototype._insertCell=function(a,u,p,x,C,B){this.cells[C].push(B)},kn.prototype.query=function(a,u,p,x,C){var B=this.min,O=this.max;if(a<=B&&u<=B&&O<=p&&O<=x&&!C)return Array.prototype.slice.call(this.keys);var k=[];return this._forEachCell(a,u,p,x,this._queryCell,k,{},C),k},kn.prototype._queryCell=function(a,u,p,x,C,B,O,k){var j=this.cells[C];if(j!==null)for(var J=this.keys,Q=this.bboxes,ie=0;ie<j.length;ie++){var fe=j[ie];if(O[fe]===void 0){var _e=4*fe;(k?k(Q[_e+0],Q[_e+1],Q[_e+2],Q[_e+3]):a<=Q[_e+2]&&u<=Q[_e+3]&&p>=Q[_e+0]&&x>=Q[_e+1])?(O[fe]=!0,B.push(J[fe])):O[fe]=!1}}},kn.prototype._forEachCell=function(a,u,p,x,C,B,O,k){for(var j=this._convertToCellCoord(a),J=this._convertToCellCoord(u),Q=this._convertToCellCoord(p),ie=this._convertToCellCoord(x),fe=j;fe<=Q;fe++)for(var _e=J;_e<=ie;_e++){var ke=this.d*_e+fe;if((!k||k(this._convertFromCellCoord(fe),this._convertFromCellCoord(_e),this._convertFromCellCoord(fe+1),this._convertFromCellCoord(_e+1)))&&C.call(this,a,u,p,x,ke,B,O,k))return}},kn.prototype._convertFromCellCoord=function(a){return(a-this.padding)/this.scale},kn.prototype._convertToCellCoord=function(a){return Math.max(0,Math.min(this.d-1,Math.floor(a*this.scale)+this.padding))},kn.prototype.toArrayBuffer=function(){if(this.arrayBuffer)return this.arrayBuffer;for(var a=this.cells,u=3+this.cells.length+1+1,p=0,x=0;x<this.cells.length;x++)p+=this.cells[x].length;var C=new Int32Array(u+p+this.keys.length+this.bboxes.length);C[0]=this.extent,C[1]=this.n,C[2]=this.padding;
2097for(var B=u,O=0;O<a.length;O++){var k=a[O];C[3+O]=B,C.set(k,B),B+=k.length}return C[3+a.length]=B,C.set(this.keys,B),C[3+a.length+1]=B+=this.keys.length,C.set(this.bboxes,B),B+=this.bboxes.length,C.buffer};var Ul=I.ImageData,Oh=I.ImageBitmap,xi={};function or(a,u,p){p===void 0&&(p={}),Object.defineProperty(u,"_classRegistryKey",{value:a,writeable:!1}),xi[a]={klass:u,omit:p.omit||[],shallow:p.shallow||[]}}for(var Is in or("Object",Object),Ro.serialize=function(a,u){var p=a.toArrayBuffer();return u&&u.push(p),{buffer:p}},Ro.deserialize=function(a){return new Ro(a.buffer)},or("Grid",Ro),or("Color",tn),or("Error",Error),or("ResolvedImage",Wn),or("StylePropertyFunction",Ya),or("StyleExpression",Sa,{omit:["_evaluator"]}),or("ZoomDependentExpression",Rl),or("ZoomConstantExpression",Za),or("CompoundExpression",Me,{omit:["_evaluate"]}),to)to[Is]._classRegistryKey||or("Expression_"+Is,to[Is]);function mu(a){return a&&typeof ArrayBuffer<"u"&&(a instanceof ArrayBuffer||a.constructor&&a.constructor.name==="ArrayBuffer")}function Gs(a){return Oh&&a instanceof Oh}function ro(a,u){if(a==null||typeof a=="boolean"||typeof a=="number"||typeof a=="string"||a instanceof Boolean||a instanceof Number||a instanceof String||a instanceof Date||a instanceof RegExp)return a;if(mu(a)||Gs(a))return u&&u.push(a),a;if(ArrayBuffer.isView(a)){var p=a;return u&&u.push(p.buffer),p}if(a instanceof Ul)return u&&u.push(a.data.buffer),a;if(Array.isArray(a)){for(var x=[],C=0,B=a;C<B.length;C+=1)x.push(ro(B[C],u));return x}if(typeof a=="object"){var O=a.constructor,k=O._classRegistryKey;if(!k)throw new Error("can't serialize object of unregistered class");var j=O.serialize?O.serialize(a,u):{};if(!O.serialize){for(var J in a)if(a.hasOwnProperty(J)&&!(xi[k].omit.indexOf(J)>=0)){var Q=a[J];j[J]=xi[k].shallow.indexOf(J)>=0?Q:ro(Q,u)}a instanceof Error&&(j.message=a.message)}if(j.$name)throw new Error("$name property is reserved for worker serialization logic.");return k!=="Object"&&(j.$name=k),j}throw new Error("can't serialize object of type "+typeof a)}function _s(a){if(a==null||typeof a=="boolean"||typeof a=="number"||typeof a=="string"||a instanceof Boolean||a instanceof Number||a instanceof String||a instanceof Date||a instanceof RegExp||mu(a)||Gs(a)||ArrayBuffer.isView(a)||a instanceof Ul)return a;
2097if(Array.isArray(a))return a.map(_s);if(typeof a=="object"){var u=a.$name||"Object",p=xi[u].klass;if(!p)throw new Error("can't deserialize unregistered class "+u);if(p.deserialize)return p.deserialize(a);for(var x=Object.create(p.prototype),C=0,B=Object.keys(a);C<B.length;C+=1){var O=B[C];if(O!=="$name"){var k=a[O];x[O]=xi[u].shallow.indexOf(O)>=0?k:_s(k)}}return x}throw new Error("can't deserialize object of type "+typeof a)}var _f=function(){this.first=!0};_f.prototype.update=function(a,u){var p=Math.floor(a);return this.first?(this.first=!1,this.lastIntegerZoom=p,this.lastIntegerZoomTime=0,this.lastZoom=a,this.lastFloorZoom=p,!0):(this.lastFloorZoom>p?(this.lastIntegerZoom=p+1,this.lastIntegerZoomTime=u):this.lastFloorZoom<p&&(this.lastIntegerZoom=p,this.lastIntegerZoomTime=u),a!==this.lastZoom&&(this.lastZoom=a,this.lastFloorZoom=p,!0))};var Zt={"Latin-1 Supplement":function(a){return a>=128&&a<=255},Arabic:function(a){return a>=1536&&a<=1791},"Arabic Supplement":function(a){return a>=1872&&a<=1919},"Arabic Extended-A":function(a){return a>=2208&&a<=2303},"Hangul Jamo":function(a){return a>=4352&&a<=4607},"Unified Canadian Aboriginal Syllabics":function(a){return a>=5120&&a<=5759},Khmer:function(a){return a>=6016&&a<=6143},"Unified Canadian Aboriginal Syllabics Extended":function(a){return a>=6320&&a<=6399},"General Punctuation":function(a){return a>=8192&&a<=8303},"Letterlike Symbols":function(a){return a>=8448&&a<=8527},"Number Forms":function(a){return a>=8528&&a<=8591},"Miscellaneous Technical":function(a){return a>=8960&&a<=9215},"Control Pictures":function(a){return a>=9216&&a<=9279},"Optical Character Recognition":function(a){return a>=9280&&a<=9311},"Enclosed Alphanumerics":function(a){return a>=9312&&a<=9471},"Geometric Shapes":function(a){return a>=9632&&a<=9727},"Miscellaneous Symbols":function(a){return a>=9728&&a<=9983},"Miscellaneous Symbols and Arrows":function(a){return a>=11008&&a<=11263},"CJK Radicals Supplement":function(a){return a>=11904&&a<=12031},"Kangxi Radicals":function(a){return a>=12032&&a<=12255},"Ideographic Description Characters":function(a){return a>=12272&&a<=12287},"CJK Symbols and Punctuation":function(a){return a>=12288&&a<=12351},Hiragana:function(a){return a>=12352&&a<=12447},Katakana:function(a){return a>=12448&&a<=12543},Bopomofo:function(a){return a>=12544&&a<=12591},"Hangul Compatibility Jamo":function(a){return a>=12592&&a<=12687},Kanbun:function(a){return a>=12688&&a<=12703},"Bopomofo Extended":function(a){return a>=12704&&a<=12735},"CJK Strokes":function(a){return a>=12736&&a<=12783},"Katakana Phonetic Extensions":function(a){return a>=12784&&a<=12799},"Enclosed CJK Letters and Months":function(a){return a>=12800&&a<=13055},"CJK Compatibility":function(a){return a>=13056&&a<=13311},"CJK Unified Ideographs Extension A":function(a){return a>=13312&&a<=19903},"Yijing Hexagram Symbols":function(a){return a>=19904&&a<=19967},"CJK Unified Ideographs":function(a){return a>=19968&&a<=40959},"Yi Syllables":function(a){return a>=40960&&a<=42127},"Yi Radicals":function(a){return a>=42128&&a<=42191},"Hangul Jamo Extended-A":function(a){return a>=43360&&a<=43391},"Hangul Syllables":function(a){return a>=44032&&a<=55215},"Hangul Jamo Extended-B":function(a){return a>=55216&&a<=55295},"Private Use Area":function(a){return a>=57344&&a<=63743},"CJK Compatibility Ideographs":function(a){return a>=63744&&a<=64255},"Arabic Presentation Forms-A":function(a){return a>=64336&&a<=65023},"Vertical Forms":function(a){return a>=65040&&a<=65055},"CJK Compatibility Forms":function(a){return a>=65072&&a<=65103},"Small Form Variants":function(a){return a>=65104&&a<=65135},"Arabic Presentation Forms-B":function(a){return a>=65136&&a<=65279},"Halfwidth and Fullwidth Forms":function(a){return a>=65280&&a<=65519}};function yf(a){for(var u=0,p=a;u<p.length;u+=1)if(_u(p[u].charCodeAt(0)))return!0;return!1}function _u(a){return!(a!==746&&a!==747&&(a<4352||!(Zt["Bopomofo Extended"](a)||Zt.Bopomofo(a)||Zt["CJK Compatibility Forms"](a)&&!(a>=65097&&a<=65103)||Zt["CJK Compatibility Ideographs"](a)||Zt["CJK Compatibility"](a)||Zt["CJK Radicals Supplement"](a)||Zt["CJK Strokes"](a)||!(!Zt["CJK Symbols and Punctuation"](a)||a>=12296&&a<=12305||a>
2097=12308&&a<=12319||a===12336)||Zt["CJK Unified Ideographs Extension A"](a)||Zt["CJK Unified Ideographs"](a)||Zt["Enclosed CJK Letters and Months"](a)||Zt["Hangul Compatibility Jamo"](a)||Zt["Hangul Jamo Extended-A"](a)||Zt["Hangul Jamo Extended-B"](a)||Zt["Hangul Jamo"](a)||Zt["Hangul Syllables"](a)||Zt.Hiragana(a)||Zt["Ideographic Description Characters"](a)||Zt.Kanbun(a)||Zt["Kangxi Radicals"](a)||Zt["Katakana Phonetic Extensions"](a)||Zt.Katakana(a)&&a!==12540||!(!Zt["Halfwidth and Fullwidth Forms"](a)||a===65288||a===65289||a===65293||a>=65306&&a<=65310||a===65339||a===65341||a===65343||a>=65371&&a<=65503||a===65507||a>=65512&&a<=65519)||!(!Zt["Small Form Variants"](a)||a>=65112&&a<=65118||a>=65123&&a<=65126)||Zt["Unified Canadian Aboriginal Syllabics"](a)||Zt["Unified Canadian Aboriginal Syllabics Extended"](a)||Zt["Vertical Forms"](a)||Zt["Yijing Hexagram Symbols"](a)||Zt["Yi Syllables"](a)||Zt["Yi Radicals"](a))))}function vf(a){return!(_u(a)||(function(u){return!!(Zt["Latin-1 Supplement"](u)&&(u===167||u===169||u===174||u===177||u===188||u===189||u===190||u===215||u===247)||Zt["General Punctuation"](u)&&(u===8214||u===8224||u===8225||u===8240||u===8241||u===8251||u===8252||u===8258||u===8263||u===8264||u===8265||u===8273)||Zt["Letterlike Symbols"](u)||Zt["Number Forms"](u)||Zt["Miscellaneous Technical"](u)&&(u>=8960&&u<=8967||u>=8972&&u<=8991||u>=8996&&u<=9e3||u===9003||u>=9085&&u<=9114||u>=9150&&u<=9165||u===9167||u>=9169&&u<=9179||u>=9186&&u<=9215)||Zt["Control Pictures"](u)&&u!==9251||Zt["Optical Character Recognition"](u)||Zt["Enclosed Alphanumerics"](u)||Zt["Geometric Shapes"](u)||Zt["Miscellaneous Symbols"](u)&&!(u>=9754&&u<=9759)||Zt["Miscellaneous Symbols and Arrows"](u)&&(u>=11026&&u<=11055||u>=11088&&u<=11097||u>=11192&&u<=11243)||Zt["CJK Symbols and Punctuation"](u)||Zt.Katakana(u)||Zt["Private Use Area"](u)||Zt["CJK Compatibility Forms"](u)||Zt["Small Form Variants"](u)||Zt["Halfwidth and Fullwidth Forms"](u)||u===8734||u===8756||u===8757||u>=9984&&u<=10087||u>=10102&&u<=10131||u===65532||u===65533)})(a))}function no(a){return a>=1424&&a<=2303||Zt["Arabic Presentation Forms-A"](a)||Zt["Arabic Presentation Forms-B"](a)}function Bs(a,u){return!(!u&&no(a)||a>=2304&&a<=3583||a>=3840&&a<=4255||Zt.Khmer(a))}function yu(a){for(var u=0,p=a;u<p.length;u+=1)if(no(p[u].charCodeAt(0)))return!0;return!1}var vu=null,Ps="unavailable",ea=null,bf=function(a){a&&typeof a=="string"&&a.indexOf("NetworkError")>-1&&(Ps="error"),vu&&vu(a)};function zl(){wi.fire(new Le("pluginStateChange",{pluginStatus:Ps,pluginURL:ea}))}var wi=new ve,xf=function(){return Ps},wo=function(){if(Ps!=="deferred"||!ea)throw new Error("rtl-text-plugin cannot be downloaded unless a pluginURL is specified");Ps="loading",zl(),ea&&Xe({url:ea},(function(a){a?bf(a):(Ps="loaded",zl())}))},is={applyArabicShaping:null,processBidirectionalText:null,processStyledBidirectionalText:null,isLoaded:function(){return Ps==="loaded"||is.applyArabicShaping!=null},isLoading:function(){return Ps==="loading"},setState:function(a){Ps=a.pluginStatus,ea=a.pluginURL},isParsed:function(){return is.applyArabicShaping!=null&&is.processBidirectionalText!=null&&is.processStyledBidirectionalText!=null},getPluginURL:function(){return ea}},Gr=function(a,u){this.zoom=a,u?(this.now=u.now,this.fadeDuration=u.fadeDuration,this.zoomHistory=u.zoomHistory,this.transition=u.transition):(this.now=0,this.fadeDuration=0,this.zoomHistory=new _f,this.transition={})};Gr.prototype.isSupportedScript=function(a){return(function(u,p){for(var x=0,C=u;x<C.length;x+=1)if(!Bs(C[x].charCodeAt(0),p))return!1;return!0})(a,is.isLoaded())},Gr.prototype.crossFadingFactor=function(){return this.fadeDuration===0?1:Math.min((this.now-this.zoomHistory.lastIntegerZoomTime)/this.fadeDuration,1)},Gr.prototype.getCrossfadeParameters=function(){var a=this.zoom,u=a-Math.floor(a),p=this.crossFadingFactor();return a>this.zoomHistory.lastIntegerZoom?{fromScale:2,toScale:1,t:u+(1-u)*p}:{fromScale:.5,toScale:1,t:1-(1-p)*u}};var Oo=function(a,u){this.property=a,this.value=u,this.expression=(function(p,x){if(uu(p))return new Ya(p,x);if(xo(p)){var C=zs(p,x);if(C.result==="error")throw new Error(C.value.map((function(O){return O.key+": "+O.message})).join(", "));return C.value}var B=p;return typeof p=="string"&&x.type==="color"&&(B=tn.parse(p)),{kind:"constant",evaluate:function(){return B}}})(u===void 0?a.specification.default:u,a.specification)};Oo.prototype.isDataDriven=function(){return this.expression.kind==="source"||this.expression.kind==="composite"},Oo.prototype.possiblyEvaluate=function(a,u,p){return this.property.possiblyEvaluate(this,a,u,p)};var io=function(a){this.property=a,this.value=new Oo(a,void 0)};io.prototype.transitioned=function(a,u){return new Ia(this.property,this.value,u,G({},a.transition,this.transition),a.now)},io.prototype.untransitioned=function(){return new Ia(this.property,this.value,
2097null,{},0)};var qi=function(a){this._properties=a,this._values=Object.create(a.defaultTransitionablePropertyValues)};qi.prototype.getValue=function(a){return pe(this._values[a].value.value)},qi.prototype.setValue=function(a,u){this._values.hasOwnProperty(a)||(this._values[a]=new io(this._values[a].property)),this._values[a].value=new Oo(this._values[a].property,u===null?void 0:pe(u))},qi.prototype.getTransition=function(a){return pe(this._values[a].transition)},qi.prototype.setTransition=function(a,u){this._values.hasOwnProperty(a)||(this._values[a]=new io(this._values[a].property)),this._values[a].transition=pe(u)||void 0},qi.prototype.serialize=function(){for(var a={},u=0,p=Object.keys(this._values);u<p.length;u+=1){var x=p[u],C=this.getValue(x);C!==void 0&&(a[x]=C);var B=this.getTransition(x);B!==void 0&&(a[x+"-transition"]=B)}return a},qi.prototype.transitioned=function(a,u){for(var p=new ta(this._properties),x=0,C=Object.keys(this._values);x<C.length;x+=1){var B=C[x];p._values[B]=this._values[B].transitioned(a,u._values[B])}return p},qi.prototype.untransitioned=function(){for(var a=new ta(this._properties),u=0,p=Object.keys(this._values);u<p.length;u+=1){var x=p[u];a._values[x]=this._values[x].untransitioned()}return a};var Ia=function(a,u,p,x,C){this.property=a,this.value=u,this.begin=C+x.delay||0,this.end=this.begin+x.duration||0,a.specification.transition&&(x.delay||x.duration)&&(this.prior=p)};Ia.prototype.possiblyEvaluate=function(a,u,p){var x=a.now||0,C=this.value.possiblyEvaluate(a,u,p),B=this.prior;if(B){if(x>this.end)return this.prior=null,C;if(this.value.isDataDriven())return this.prior=null,C;if(x<this.begin)return B.possiblyEvaluate(a,u,p);var O=(x-this.begin)/(this.end-this.begin);return this.property.interpolate(B.possiblyEvaluate(a,u,p),C,(function(k){if(k<=0)return 0;if(k>=1)return 1;var j=k*k,J=j*k;return 4*(k<.5?J:3*(k-j)+J-.75)})(O))}return C};var ta=function(a){this._properties=a,this._values=Object.create(a.defaultTransitioningPropertyValues)};ta.prototype.possiblyEvaluate=function(a,u,p){for(var x=new Bc(this._properties),C=0,B=Object.keys(this._values);C<B.length;C+=1){var O=B[C];x._values[O]=this._values[O].possiblyEvaluate(a,u,p)}return x},ta.prototype.hasTransition=function(){for(var a=0,u=Object.keys(this._values);a<u.length;a+=1)if(this._values[u[a]].prior)return!0;return!1};var so=function(a){this._properties=a,this._values=Object.create(a.defaultPropertyValues)};so.prototype.getValue=function(a){return pe(this._values[a].value)},so.prototype.setValue=function(a,u){this._values[a]=new Oo(this._values[a].property,u===null?void 0:pe(u))},so.prototype.serialize=function(){for(var a={},u=0,p=Object.keys(this._values);u<p.length;u+=1){var x=p[u],C=this.getValue(x);C!==void 0&&(a[x]=C)}return a},so.prototype.possiblyEvaluate=function(a,u,p){for(var x=new Bc(this._properties),C=0,B=Object.keys(this._values);C<B.length;C+=1){var O=B[C];x._values[O]=this._values[O].possiblyEvaluate(a,u,p)}return x};var ss=function(a,u,p){this.property=a,this.value=u,this.parameters=p};ss.prototype.isConstant=function(){return this.value.kind==="constant"},ss.prototype.constantOr=function(a){return this.value.kind==="constant"?this.value.value:a},ss.prototype.evaluate=function(a,u,p,x){return this.property.evaluate(this.value,this.parameters,a,u,p,x)};var Bc=function(a){this._properties=a,this._values=Object.create(a.defaultPossiblyEvaluatedValues)};Bc.prototype.get=function(a){return this._values[a]};var wr=function(a){this.specification=a};wr.prototype.possiblyEvaluate=function(a,u){return a.expression.evaluate(u)},wr.prototype.interpolate=function(a,u,p){var x=$a[this.specification.type];return x?x(a,u,p):a};var ur=function(a,u){this.specification=a,this.overrides=u};ur.prototype.possiblyEvaluate=function(a,u,p,x){return new ss(this,a.expression.kind==="constant"||a.expression.kind==="camera"?{kind:"constant",value:a.expression.evaluate(u,null,{},p,x)}:a.expression,u)},ur.prototype.interpolate=function(a,u,p){if(a.value.kind!=="constant"||u.value.kind!=="constant")return a;
2097if(a.value.value===void 0||u.value.value===void 0)return new ss(this,{kind:"constant",value:void 0},a.parameters);var x=$a[this.specification.type];return x?new ss(this,{kind:"constant",value:x(a.value.value,u.value.value,p)},a.parameters):a},ur.prototype.evaluate=function(a,u,p,x,C,B){return a.kind==="constant"?a.value:a.evaluate(u,p,x,C,B)};var bu=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.possiblyEvaluate=function(p,x,C,B){if(p.value===void 0)return new ss(this,{kind:"constant",value:void 0},x);if(p.expression.kind==="constant"){var O=p.expression.evaluate(x,null,{},C,B),k=p.property.specification.type==="resolvedImage"&&typeof O!="string"?O.name:O,j=this._calculate(k,k,k,x);return new ss(this,{kind:"constant",value:j},x)}if(p.expression.kind==="camera"){var J=this._calculate(p.expression.evaluate({zoom:x.zoom-1}),p.expression.evaluate({zoom:x.zoom}),p.expression.evaluate({zoom:x.zoom+1}),x);return new ss(this,{kind:"constant",value:J},x)}return new ss(this,p.expression,x)},u.prototype.evaluate=function(p,x,C,B,O,k){if(p.kind==="source"){var j=p.evaluate(x,C,B,O,k);return this._calculate(j,j,j,x)}return p.kind==="composite"?this._calculate(p.evaluate({zoom:Math.floor(x.zoom)-1},C,B),p.evaluate({zoom:Math.floor(x.zoom)},C,B),p.evaluate({zoom:Math.floor(x.zoom)+1},C,B),x):p.value},u.prototype._calculate=function(p,x,C,B){return B.zoom>B.zoomHistory.lastIntegerZoom?{from:p,to:x}:{from:C,to:x}},u.prototype.interpolate=function(p){return p},u})(ur),fs=function(a){this.specification=a};fs.prototype.possiblyEvaluate=function(a,u,p,x){if(a.value!==void 0){if(a.expression.kind==="constant"){var C=a.expression.evaluate(u,null,{},p,x);return this._calculate(C,C,C,u)}return this._calculate(a.expression.evaluate(new Gr(Math.floor(u.zoom-1),u)),a.expression.evaluate(new Gr(Math.floor(u.zoom),u)),a.expression.evaluate(new Gr(Math.floor(u.zoom+1),u)),u)}},fs.prototype._calculate=function(a,u,p,x){return x.zoom>x.zoomHistory.lastIntegerZoom?{from:a,to:u}:{from:p,to:u}},fs.prototype.interpolate=function(a){return a};var Ji=function(a){this.specification=a};Ji.prototype.possiblyEvaluate=function(a,u,p,x){return!!a.expression.evaluate(u,null,{},p,x)},Ji.prototype.interpolate=function(){return!1};var qn=function(a){for(var u in this.properties=a,this.defaultPropertyValues={},this.defaultTransitionablePropertyValues={},this.defaultTransitioningPropertyValues={},this.defaultPossiblyEvaluatedValues={},this.overridableProperties=[],a){var p=a[u];p.specification.overridable&&this.overridableProperties.push(u);var x=this.defaultPropertyValues[u]=new Oo(p,void 0),C=this.defaultTransitionablePropertyValues[u]=new io(p);this.defaultTransitioningPropertyValues[u]=C.untransitioned(),this.defaultPossiblyEvaluatedValues[u]=x.possiblyEvaluate({})}};or("DataDrivenProperty",ur),or("DataConstantProperty",wr),or("CrossFadedDataDrivenProperty",bu),or("CrossFadedProperty",fs),or("ColorRampProperty",Ji);var zr=(function(a){function u(p,x){if(a.call(this),this.id=p.id,this.type=p.type,this._featureFilter={filter:function(){return!0},needGeometry:!1},p.type!=="custom"&&(this.metadata=(p=p).metadata,this.minzoom=p.minzoom,this.maxzoom=p.maxzoom,p.type!=="background"&&(this.source=p.source,this.sourceLayer=p["source-layer"],this.filter=p.filter),x.layout&&(this._unevaluatedLayout=new so(x.layout)),x.paint)){for(var C in this._transitionablePaint=new qi(x.paint),p.paint)this.setPaintProperty(C,p.paint[C],{validate:!1});for(var B in p.layout)this.setLayoutProperty(B,p.layout[B],{validate:!1});this._transitioningPaint=this._transitionablePaint.untransitioned(),this.paint=new Bc(x.paint)}}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.getCrossfadeParameters=function(){return this._crossfadeParameters},u.prototype.getLayoutProperty=function(p){return p==="visibility"?this.visibility:this._unevaluatedLayout.getValue(p)},u.prototype.setLayoutProperty=function(p,x,C){C===void 0&&(C={}),x!=null&&this._validate(Nl,"layers."+this.id+".layout."+p,p,x,C)||(p!=="visibility"?this._unevaluatedLayout.setValue(p,x):this.visibility=x)},u.prototype.getPaintProperty=function(p){return Ue(p,"-transition")?this._transitionablePaint.getTransition(p.slice(0,-11)):this._transitionablePaint.getValue(p)},u.prototype.setPaintProperty=function(p,x,C){if(C===void 0&&(C={}
2097),x!=null&&this._validate(Up,"layers."+this.id+".paint."+p,p,x,C))return!1;if(Ue(p,"-transition"))return this._transitionablePaint.setTransition(p.slice(0,-11),x||void 0),!1;var B=this._transitionablePaint._values[p],O=B.property.specification["property-type"]==="cross-faded-data-driven",k=B.value.isDataDriven(),j=B.value;this._transitionablePaint.setValue(p,x),this._handleSpecialPaintPropertyUpdate(p);var J=this._transitionablePaint._values[p].value;return J.isDataDriven()||k||O||this._handleOverridablePaintPropertyUpdate(p,j,J)},u.prototype._handleSpecialPaintPropertyUpdate=function(p){},u.prototype._handleOverridablePaintPropertyUpdate=function(p,x,C){return!1},u.prototype.isHidden=function(p){return!!(this.minzoom&&p<this.minzoom)||!!(this.maxzoom&&p>=this.maxzoom)||this.visibility==="none"},u.prototype.updateTransitions=function(p){this._transitioningPaint=this._transitionablePaint.transitioned(p,this._transitioningPaint)},u.prototype.hasTransition=function(){return this._transitioningPaint.hasTransition()},u.prototype.recalculate=function(p,x){p.getCrossfadeParameters&&(this._crossfadeParameters=p.getCrossfadeParameters()),this._unevaluatedLayout&&(this.layout=this._unevaluatedLayout.possiblyEvaluate(p,void 0,x)),this.paint=this._transitioningPaint.possiblyEvaluate(p,void 0,x)}
2097,u.prototype.serialize=function(){var p={id:this.id,type:this.type,source:this.source,"source-layer":this.sourceLayer,metadata:this.metadata,minzoom:this.minzoom,maxzoom:this.maxzoom,filter:this.filter,layout:this._unevaluatedLayout&&this._unevaluatedLayout.serialize(),paint:this._transitionablePaint&&this._transitionablePaint.serialize()};return this.visibility&&(p.layout=p.layout||{},p.layout.visibility=this.visibility),me(p,(function(x,C){return!(x===void 0||C==="layout"&&!Object.keys(x).length||C==="paint"&&!Object.keys(x).length)}))},u.prototype._validate=function(p,x,C,B,O){return O===void 0&&(O={}),(!O||O.validate!==!1)&&Ic(this,p.call(Sc,{key:x,layerType:this.type,objectKey:C,value:B,styleSpec:ae,style:{glyphs:!0,sprite:!0}}))},u.prototype.is3D=function(){return!1},u.prototype.isTileClipped=function(){return!1},u.prototype.hasOffscreenPass=function(){return!1},u.prototype.resize=function(){},u.prototype.isStateDependent=function(){for(var p in this.paint._values){var x=this.paint.get(p);if(x instanceof ss&&Zo(x.property.specification)&&(x.value.kind==="source"||x.value.kind==="composite")&&x.value.isStateDependent)return!0}return!1},u})(ve),oo={Int8:Int8Array,Uint8:Uint8Array,Int16:Int16Array,Uint16:Uint16Array,Int32:Int32Array,Uint32:Uint32Array,Float32:Float32Array},An=function(a,u){this._structArray=a,this._pos1=u*this.size,this._pos2=this._pos1/2,this._pos4=this._pos1/4,this._pos8=this._pos1/8},Jr=function(){this.isTransferred=!1,this.capacity=-1,this.resize(0)};function ki(a,u){u===void 0&&(u=1);var p=0,x=0;return{members:a.map((function(C){var B=oo[C.type].BYTES_PER_ELEMENT,O=p=xu(p,Math.max(u,B)),k=C.components||1;return x=Math.max(x,B),p+=B*k,{name:C.name,type:C.type,components:k,offset:O}})),size:xu(p,Math.max(x,u)),alignment:u}}function xu(a,u){return Math.ceil(a/u)*u}Jr.serialize=function(a,u){return a._trim(),u&&(a.isTransferred=!0,u.push(a.arrayBuffer)),{length:a.length,arrayBuffer:a.arrayBuffer}},Jr.deserialize=function(a){var u=Object.create(this.prototype);return u.arrayBuffer=a.arrayBuffer,u.length=a.length,u.capacity=a.arrayBuffer.byteLength/u.bytesPerElement,u._refreshViews(),u},Jr.prototype._trim=function(){this.length!==this.capacity&&(this.capacity=this.length,this.arrayBuffer=this.arrayBuffer.slice(0,this.length*this.bytesPerElement),this._refreshViews())},Jr.prototype.clear=function(){this.length=0},Jr.prototype.resize=function(a){this.reserve(a),this.length=a},Jr.prototype.reserve=function(a){if(a>this.capacity){this.capacity=Math.max(a,Math.floor(5*this.capacity),128),this.arrayBuffer=new ArrayBuffer(this.capacity*this.bytesPerElement);var u=this.uint8;this._refreshViews(),u&&this.uint8.set(u)}},Jr.prototype._refreshViews=function(){throw new Error("_refreshViews() must be implemented by each concrete StructArray layout")};var Hs=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x){var C=this.length;return this.resize(C+1),this.emplace(C,p,x)},u.prototype.emplace=function(p,x,C){var B=2*p;return this.int16[B+0]=x,this.int16[B+1]=C,p},u})(Jr);Hs.prototype.bytesPerElement=4,or("StructArrayLayout2i4",Hs);var wf=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B){var O=this.length;return this.resize(O+1),this.emplace(O,p,x,C,B)},u.prototype.emplace=function(p,x,C,B,O){var k=4*p;return this.int16[k+0]=x,this.int16[k+1]=C,this.int16[k+2]=B,this.int16[k+3]=O,p},u})(Jr);wf.prototype.bytesPerElement=8,or("StructArrayLayout4i8",wf);var di=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B,O,k){var j=this.length;return this.resize(j+1),this.emplace(j,p,x,C,B,O,k)},u.prototype.emplace=function(p,x,C,B,O,k,j){var J=6*p;return this.int16[J+0]=x,this.int16[J+1]=C,this.int16[J+2]=B,this.int16[J+3]=O,this.int16[J+4]=k,this.int16[J+5]=j,p},u})(Jr);di.prototype.bytesPerElement=12,or("StructArrayLayout2i4i12",di);var os=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B,O,k){var j=this.length;return this.resize(j+1),this.emplace(j,p,x,C,B,O,k)},u.prototype.emplace=function(p,x,C,B,O,k,j){var J=4*p,Q=8*p;return this.int16[J+0]=x,this.int16[J+1]=C,this.uint8[Q+4]=B,this.uint8[Q+5]=O,this.uint8[Q+6]=k,this.uint8[Q+7]=j,p},u})(Jr);os.prototype.bytesPerElement=8,or("StructArrayLayout2i4ub8",os);var To=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x){var C=this.length;return this.resize(C+1),this.emplace(C,p,x)},u.prototype.emplace=function(p,x,C){var B=2*p;return this.float32[B+0]=x,this.float32[B+1]=C,p},u})(Jr);To.prototype.bytesPerElement=8,or("StructArrayLayout2f8",To);var Eo=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B,O,k,j,J,Q,ie){var fe=this.length;return this.resize(fe+1),this.emplace(fe,p,x,C,B,O,k,j,J,Q,ie)},u.prototype.emplace=function(p,x,C,B,O,k,j,J,Q,ie,fe){var _e=10*p;
2097return this.uint16[_e+0]=x,this.uint16[_e+1]=C,this.uint16[_e+2]=B,this.uint16[_e+3]=O,this.uint16[_e+4]=k,this.uint16[_e+5]=j,this.uint16[_e+6]=J,this.uint16[_e+7]=Q,this.uint16[_e+8]=ie,this.uint16[_e+9]=fe,p},u})(Jr);Eo.prototype.bytesPerElement=20,or("StructArrayLayout10ui20",Eo);var Xt=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B,O,k,j,J,Q,ie,fe,_e){var ke=this.length;return this.resize(ke+1),this.emplace(ke,p,x,C,B,O,k,j,J,Q,ie,fe,_e)},u.prototype.emplace=function(p,x,C,B,O,k,j,J,Q,ie,fe,_e,ke){var Ne=12*p;return this.int16[Ne+0]=x,this.int16[Ne+1]=C,this.int16[Ne+2]=B,this.int16[Ne+3]=O,this.uint16[Ne+4]=k,this.uint16[Ne+5]=j,this.uint16[Ne+6]=J,this.uint16[Ne+7]=Q,this.int16[Ne+8]=ie,this.int16[Ne+9]=fe,this.int16[Ne+10]=_e,this.int16[Ne+11]=ke,p},u})(Jr);Xt.prototype.bytesPerElement=24,or("StructArrayLayout4i4ui4i24",Xt);var rr=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C){var B=this.length;return this.resize(B+1),this.emplace(B,p,x,C)},u.prototype.emplace=function(p,x,C,B){var O=3*p;return this.float32[O+0]=x,this.float32[O+1]=C,this.float32[O+2]=B,p},u})(Jr);rr.prototype.bytesPerElement=12,or("StructArrayLayout3f12",rr);var Vl=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p){var x=this.length;return this.resize(x+1),this.emplace(x,p)},u.prototype.emplace=function(p,x){return this.uint32[1*p+0]=x,p},u})(Jr);Vl.prototype.bytesPerElement=4,or("StructArrayLayout1ul4",Vl);var Pc=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B,O,k,j,J,Q){var ie=this.length;return this.resize(ie+1),this.emplace(ie,p,x,C,B,O,k,j,J,Q)},u.prototype.emplace=function(p,x,C,B,O,k,j,J,Q,ie){var fe=10*p,_e=5*p;return this.int16[fe+0]=x,this.int16[fe+1]=C,this.int16[fe+2]=B,this.int16[fe+3]=O,this.int16[fe+4]=k,this.int16[fe+5]=j,this.uint32[_e+3]=J,this.uint16[fe+8]=Q,this.uint16[fe+9]=ie,p},u})(Jr);Pc.prototype.bytesPerElement=20,or("StructArrayLayout6i1ul2ui20",Pc);var ra=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B,O,k){var j=this.length;return this.resize(j+1),this.emplace(j,p,x,C,B,O,k)},u.prototype.emplace=function(p,x,C,B,O,k,j){var J=6*p;return this.int16[J+0]=x,this.int16[J+1]=C,this.int16[J+2]=B,this.int16[J+3]=O,this.int16[J+4]=k,this.int16[J+5]=j,p},u})(Jr);ra.prototype.bytesPerElement=12,or("StructArrayLayout2i2i2i12",ra);var Do=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B,O){var k=this.length;return this.resize(k+1),this.emplace(k,p,x,C,B,O)},u.prototype.emplace=function(p,x,C,B,O,k){var j=4*p,J=8*p;return this.float32[j+0]=x,this.float32[j+1]=C,this.float32[j+2]=B,this.int16[J+6]=O,this.int16[J+7]=k,p},u})(Jr);Do.prototype.bytesPerElement=16,or("StructArrayLayout2f1f2i16",Do);var na=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B){var O=this.length;return this.resize(O+1),this.emplace(O,p,x,C,B)},u.prototype.emplace=function(p,x,C,B,O){var k=12*p,j=3*p;return this.uint8[k+0]=x,this.uint8[k+1]=C,this.float32[j+1]=B,this.float32[j+2]=O,p},u})(Jr);na.prototype.bytesPerElement=12,or("StructArrayLayout2ub2f12",na);var ia=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C){var B=this.length;return this.resize(B+1),this.emplace(B,p,x,C)},u.prototype.emplace=function(p,x,C,B){var O=3*p;return this.uint16[O+0]=x,this.uint16[O+1]=C,this.uint16[O+2]=B,p},u})(Jr);ia.prototype.bytesPerElement=6,or("StructArrayLayout3ui6",ia);var ys=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B,O,k,j,J,Q,ie,fe,_e,ke,Ne,He,je,Ke){var lt=this.length;return this.resize(lt+1),this.emplace(lt,p,x,C,B,O,k,j,J,Q,ie,fe,_e,ke,Ne,He,je,Ke)},u.prototype.emplace=function(p,x,C,B,O,k,j,J,Q,ie,fe,_e,ke,Ne,He,je,Ke,lt){var mt=24*p,yt=12*p,Ot=48*p;return this.int16[mt+0]=x,this.int16[mt+1]=C,this.uint16[mt+2]=B,this.uint16[mt+3]=O,this.uint32[yt+2]=k,this.uint32[yt+3]=j,this.uint32[yt+4]=J,this.uint16[mt+10]=Q,this.uint16[mt+11]=ie,this.uint16[mt+12]=fe,this.float32[yt+7]=_e,this.float32[yt+8]=ke,this.uint8[Ot+36]=Ne,this.uint8[Ot+37]=He,this.uint8[Ot+38]=je,this.uint32[yt+10]=Ke,this.int16[mt+22]=lt,p},u})(Jr);ys.prototype.bytesPerElement=48,or("StructArrayLayout2i2ui3ul3ui2f3ub1ul1i48",ys);var y=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B,O,k,j,J,Q,ie,fe,_e,ke,Ne,He,je,Ke,lt,mt,yt,Ot,Ht,Kt,xr,nr,Sr,ir,sn){var Lr=this.length;return this.resize(Lr+1),this.emplace(Lr,p,x,C,B,O,k,j,J,Q,ie,fe,_e,ke,Ne,He,je,Ke,lt,mt,yt,Ot,Ht,Kt,xr,nr,Sr,ir,sn)},u.prototype.emplace=function(p,x,C,B,O,k,j,J,Q,ie,fe,_e,ke,Ne,He,je,Ke,lt,mt,yt,Ot,Ht,Kt,xr,nr,Sr,ir,sn,Lr){var hr=34*p,hn=17*p;return this.int16[hr+0]=x,this.int16[hr+1]=C,this.int16[hr+2]=B,this.int16[hr+3]=O,this.int16[hr+4]=k,this.int16[hr+5]=j,this.int16[hr+6]=J,this.int16[hr+7]=Q,this.uint16[hr+8]=ie,this.uint16[hr+9]=fe,this.uint16[hr+10]=_e,this.uint16[hr+11]=ke,this.uint16[hr+12]=Ne,this.uint16[hr+13]=He,this.uint16[hr+14]=je,this.uint16[hr+15]=Ke,this.uint16[hr+16]=lt,this.uint16[hr+1
20977]=mt,this.uint16[hr+18]=yt,this.uint16[hr+19]=Ot,this.uint16[hr+20]=Ht,this.uint16[hr+21]=Kt,this.uint16[hr+22]=xr,this.uint32[hn+12]=nr,this.float32[hn+13]=Sr,this.float32[hn+14]=ir,this.float32[hn+15]=sn,this.float32[hn+16]=Lr,p},u})(Jr);y.prototype.bytesPerElement=68,or("StructArrayLayout8i15ui1ul4f68",y);var _=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p){var x=this.length;return this.resize(x+1),this.emplace(x,p)},u.prototype.emplace=function(p,x){return this.float32[1*p+0]=x,p},u})(Jr);_.prototype.bytesPerElement=4,or("StructArrayLayout1f4",_);var b=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.int16=new Int16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C){var B=this.length;return this.resize(B+1),this.emplace(B,p,x,C)},u.prototype.emplace=function(p,x,C,B){var O=3*p;return this.int16[O+0]=x,this.int16[O+1]=C,this.int16[O+2]=B,p},u})(Jr);b.prototype.bytesPerElement=6,or("StructArrayLayout3i6",b);var w=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint32=new Uint32Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C){var B=this.length;return this.resize(B+1),this.emplace(B,p,x,C)},u.prototype.emplace=function(p,x,C,B){var O=4*p;return this.uint32[2*p+0]=x,this.uint16[O+2]=C,this.uint16[O+3]=B,p},u})(Jr);w.prototype.bytesPerElement=8,or("StructArrayLayout1ul2ui8",w);var S=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x){var C=this.length;return this.resize(C+1),this.emplace(C,p,x)},u.prototype.emplace=function(p,x,C){var B=2*p;return this.uint16[B+0]=x,this.uint16[B+1]=C,p},u})(Jr);S.prototype.bytesPerElement=4,or("StructArrayLayout2ui4",S);var P=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.uint16=new Uint16Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p){var x=this.length;return this.resize(x+1),this.emplace(x,p)},u.prototype.emplace=function(p,x){return this.uint16[1*p+0]=x,p},u})(Jr);P.prototype.bytesPerElement=2,or("StructArrayLayout1ui2",P);var D=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._refreshViews=function(){this.uint8=new Uint8Array(this.arrayBuffer),this.float32=new Float32Array(this.arrayBuffer)},u.prototype.emplaceBack=function(p,x,C,B){var O=this.length;return this.resize(O+1),this.emplace(O,p,x,C,B)},u.prototype.emplace=function(p,x,C,B,O){var k=4*p;return this.float32[k+0]=x,this.float32[k+1]=C,this.float32[k+2]=B,this.float32[k+3]=O,p},u})(Jr);D.prototype.bytesPerElement=16,or("StructArrayLayout4f16",D);var c=(function(a){function u(){a.apply(this,arguments)}a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u;var p={anchorPointX:{configurable:!0},anchorPointY:{configurable:!0},x1:{configurable:!0},y1:{configurable:!0},x2:{configurable:!0},y2:{configurable:!0},featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0},anchorPoint:{configurable:!0}};return p.anchorPointX.get=function(){return this._structArray.int16[this._pos2+0]},p.anchorPointY.get=function(){return this._structArray.int16[this._pos2+1]},p.x1.get=function(){return this._structArray.int16[this._pos2+2]},p.y1.get=function(){return this._structArray.int16[this._pos2+3]},p.x2.get=function(){return this._structArray.int16[this._pos2+4]},p.y2.get=function(){return this._structArray.int16[this._pos2+5]},p.featureIndex.get=function(){return this._structArray.uint32[this._pos4+3]},p.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+8]},p.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+9]}
2097,p.anchorPoint.get=function(){return new v(this.anchorPointX,this.anchorPointY)},Object.defineProperties(u.prototype,p),u})(An);c.prototype.size=20;var d=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.get=function(p){return new c(this,p)},u})(Pc);or("CollisionBoxArray",d);var h=(function(a){function u(){a.apply(this,arguments)}a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u;var p={anchorX:{configurable:!0},anchorY:{configurable:!0},glyphStartIndex:{configurable:!0},numGlyphs:{configurable:!0},vertexStartIndex:{configurable:!0},lineStartIndex:{configurable:!0},lineLength:{configurable:!0},segment:{configurable:!0},lowerSize:{configurable:!0},upperSize:{configurable:!0},lineOffsetX:{configurable:!0},lineOffsetY:{configurable:!0},writingMode:{configurable:!0},placedOrientation:{configurable:!0},hidden:{configurable:!0},crossTileID:{configurable:!0},associatedIconIndex:{configurable:!0}};return p.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},p.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},p.glyphStartIndex.get=function(){return this._structArray.uint16[this._pos2+2]},p.numGlyphs.get=function(){return this._structArray.uint16[this._pos2+3]},p.vertexStartIndex.get=function(){return this._structArray.uint32[this._pos4+2]},p.lineStartIndex.get=function(){return this._structArray.uint32[this._pos4+3]},p.lineLength.get=function(){return this._structArray.uint32[this._pos4+4]},p.segment.get=function(){return this._structArray.uint16[this._pos2+10]},p.lowerSize.get=function(){return this._structArray.uint16[this._pos2+11]},p.upperSize.get=function(){return this._structArray.uint16[this._pos2+12]},p.lineOffsetX.get=function(){return this._structArray.float32[this._pos4+7]},p.lineOffsetY.get=function(){return this._structArray.float32[this._pos4+8]},p.writingMode.get=function(){return this._structArray.uint8[this._pos1+36]},p.placedOrientation.get=function(){return this._structArray.uint8[this._pos1+37]},p.placedOrientation.set=function(x){this._structArray.uint8[this._pos1+37]=x},p.hidden.get=function(){return this._structArray.uint8[this._pos1+38]},p.hidden.set=function(x){this._structArray.uint8[this._pos1+38]=x},p.crossTileID.get=function(){return this._structArray.uint32[this._pos4+10]},p.crossTileID.set=function(x){this._structArray.uint32[this._pos4+10]=x},p.associatedIconIndex.get=function(){return this._structArray.int16[this._pos2+22]},Object.defineProperties(u.prototype,p),u})(An);h.prototype.size=48;var m=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.get=function(p){return new h(this,p)},u})(ys);or("PlacedSymbolArray",m);var E=(function(a){function u(){a.apply(this,arguments)}a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u;var p={anchorX:{configurable:!0},anchorY:{configurable:!0},rightJustifiedTextSymbolIndex:{configurable:!0},centerJustifiedTextSymbolIndex:{configurable:!0},leftJustifiedTextSymbolIndex:{configurable:!0},verticalPlacedTextSymbolIndex:{configurable:!0},placedIconSymbolIndex:{configurable:!0},verticalPlacedIconSymbolIndex:{configurable:!0},key:{configurable:!0},textBoxStartIndex:{configurable:!0},textBoxEndIndex:{configurable:!0},verticalTextBoxStartIndex:{configurable:!0},verticalTextBoxEndIndex:{configurable:!0},iconBoxStartIndex:{configurable:!0},iconBoxEndIndex:{configurable:!0},verticalIconBoxStartIndex:{configurable:!0},verticalIconBoxEndIndex:{configurable:!0},featureIndex:{configurable:!0},numHorizontalGlyphVertices:{configurable:!0},numVerticalGlyphVertices:{configurable:!0},numIconVertices:{configurable:!0},numVerticalIconVertices:{configurable:!0},useRuntimeCollisionCircles:{configurable:!0},crossTileID:{configurable:!0},textBoxScale:{configurable:!0},textOffset0:{configurable:!0},textOffset1:{configurable:!0},collisionCircleDiameter:{configurable:!0}};return p.anchorX.get=function(){return this._structArray.int16[this._pos2+0]},p.anchorY.get=function(){return this._structArray.int16[this._pos2+1]},p.rightJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+2]},p.centerJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+3]},p.leftJustifiedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+4]},p.verticalPlacedTextSymbolIndex.get=function(){return this._structArray.int16[this._pos2+5]},p.placedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+6]},p.verticalPlacedIconSymbolIndex.get=function(){return this._structArray.int16[this._pos2+7]},p.key.get=function(){return this._structArray.uint16[this._pos2+8]},p.textBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+9]}
2097,p.textBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+10]},p.verticalTextBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+11]},p.verticalTextBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+12]},p.iconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+13]},p.iconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+14]},p.verticalIconBoxStartIndex.get=function(){return this._structArray.uint16[this._pos2+15]},p.verticalIconBoxEndIndex.get=function(){return this._structArray.uint16[this._pos2+16]},p.featureIndex.get=function(){return this._structArray.uint16[this._pos2+17]},p.numHorizontalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+18]},p.numVerticalGlyphVertices.get=function(){return this._structArray.uint16[this._pos2+19]},p.numIconVertices.get=function(){return this._structArray.uint16[this._pos2+20]},p.numVerticalIconVertices.get=function(){return this._structArray.uint16[this._pos2+21]},p.useRuntimeCollisionCircles.get=function(){return this._structArray.uint16[this._pos2+22]},p.crossTileID.get=function(){return this._structArray.uint32[this._pos4+12]},p.crossTileID.set=function(x){this._structArray.uint32[this._pos4+12]=x},p.textBoxScale.get=function(){return this._structArray.float32[this._pos4+13]},p.textOffset0.get=function(){return this._structArray.float32[this._pos4+14]},p.textOffset1.get=function(){return this._structArray.float32[this._pos4+15]},p.collisionCircleDiameter.get=function(){return this._structArray.float32[this._pos4+16]},Object.defineProperties(u.prototype,p),u})(An);E.prototype.size=68;var M=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.get=function(p){return new E(this,p)},u})(y);or("SymbolInstanceArray",M);var R=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.getoffsetX=function(p){return this.float32[1*p+0]},u})(_);or("GlyphOffsetArray",R);var L=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.getx=function(p){return this.int16[3*p+0]},u.prototype.gety=function(p){return this.int16[3*p+1]},u.prototype.gettileUnitDistanceFromAnchor=function(p){return this.int16[3*p+2]},u})(b);or("SymbolLineVertexArray",L);var z=(function(a){function u(){a.apply(this,arguments)}a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u;var p={featureIndex:{configurable:!0},sourceLayerIndex:{configurable:!0},bucketIndex:{configurable:!0}};return p.featureIndex.get=function(){return this._structArray.uint32[this._pos4+0]},p.sourceLayerIndex.get=function(){return this._structArray.uint16[this._pos2+2]},p.bucketIndex.get=function(){return this._structArray.uint16[this._pos2+3]},Object.defineProperties(u.prototype,p),u})(An);z.prototype.size=8;var q=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.get=function(p){return new z(this,p)},u})(w);or("FeatureIndexArray",q);var ee=ki([{name:"a_pos",components:2,type:"Int16"}],4).members,Y=function(a){a===void 0&&(a=[]),this.segments=a};function re(a,u){return 256*(a=$(Math.floor(a),0,255))+$(Math.floor(u),0,255)}Y.prototype.prepareSegment=function(a,u,p,x){var C=this.segments[this.segments.length-1];return a>Y.MAX_VERTEX_ARRAY_LENGTH&&te("Max vertices per segment is "+Y.MAX_VERTEX_ARRAY_LENGTH+": bucket requested "+a),(!C||C.vertexLength+a>Y.MAX_VERTEX_ARRAY_LENGTH||C.sortKey!==x)&&(C={vertexOffset:u.length,primitiveOffset:p.length,vertexLength:0,primitiveLength:0},x!==void 0&&(C.sortKey=x),this.segments.push(C)),C},Y.prototype.get=function(){return this.segments},Y.prototype.destroy=function(){for(var a=0,u=this.segments;a<u.length;a+=1){var p=u[a];for(var x in p.vaos)p.vaos[x].destroy()}}
vendor: 2,595 bytes, line 2097
2097,Y.simpleSegment=function(a,u,p,x){return new Y([{vertexOffset:a,primitiveOffset:u,vertexLength:p,primitiveLength:x,vaos:{},sortKey:0}])},Y.MAX_VERTEX_ARRAY_LENGTH=Math.pow(2,16)-1,or("SegmentVector",Y);var oe=ki([{name:"a_pattern_from",components:4,type:"Uint16"},{name:"a_pattern_to",components:4,type:"Uint16"},{name:"a_pixel_ratio_from",components:1,type:"Uint16"},{name:"a_pixel_ratio_to",components:1,type:"Uint16"}]),xe=l((function(a){a.exports=function(u,p){var x,C,B,O,k,j,J,Q;for(C=u.length-(x=3&u.length),B=p,k=3432918353,j=461845907,Q=0;Q<C;)J=255&u.charCodeAt(Q)|(255&u.charCodeAt(++Q))<<8|(255&u.charCodeAt(++Q))<<16|(255&u.charCodeAt(++Q))<<24,++Q,B=27492+(65535&(O=5*(65535&(B=(B^=J=(65535&(J=(J=(65535&J)*k+(((J>>>16)*k&65535)<<16)&4294967295)<<15|J>>>17))*j+(((J>>>16)*j&65535)<<16)&4294967295)<<13|B>>>19))+((5*(B>>>16)&65535)<<16)&4294967295))+((58964+(O>>>16)&65535)<<16);switch(J=0,x){case 3:J^=(255&u.charCodeAt(Q+2))<<16;case 2:J^=(255&u.charCodeAt(Q+1))<<8;case 1:B^=J=(65535&(J=(J=(65535&(J^=255&u.charCodeAt(Q)))*k+(((J>>>16)*k&65535)<<16)&4294967295)<<15|J>>>17))*j+(((J>>>16)*j&65535)<<16)&4294967295}return B^=u.length,B=2246822507*(65535&(B^=B>>>16))+((2246822507*(B>>>16)&65535)<<16)&4294967295,B=3266489909*(65535&(B^=B>>>13))+((3266489909*(B>>>16)&65535)<<16)&4294967295,(B^=B>>>16)>>>0}})),Oe=l((function(a){a.exports=function(u,p){for(var x,C=u.length,B=p^C,O=0;C>=4;)x=1540483477*(65535&(x=255&u.charCodeAt(O)|(255&u.charCodeAt(++O))<<8|(255&u.charCodeAt(++O))<<16|(255&u.charCodeAt(++O))<<24))+((1540483477*(x>>>16)&65535)<<16),B=1540483477*(65535&B)+((1540483477*(B>>>16)&65535)<<16)^(x=1540483477*(65535&(x^=x>>>24))+((1540483477*(x>>>16)&65535)<<16)),C-=4,++O;switch(C){case 3:B^=(255&u.charCodeAt(O+2))<<16;case 2:B^=(255&u.charCodeAt(O+1))<<8;case 1:B=1540483477*(65535&(B^=255&u.charCodeAt(O)))+((1540483477*(B>>>16)&65535)<<16)}return B=1540483477*(65535&(B^=B>>>13))+((1540483477*(B>>>16)&65535)<<16),(B^=B>>>15)>>>0}})),ge=xe,Re=Oe;ge.murmur3=xe,ge.murmur2=Re;var Ge=function(){this.ids=[],this.positions=[],this.indexed=!1};Ge.prototype.add=function(a,u,p,x){this.ids.push(nt(a)),this.positions.push(u,p,x)},Ge.prototype.getPositions=function(a){for(var u=nt(a),p=0,x=this.ids.length-1;p<x;){var C=p+x>>1;this.ids[C]>=u?x=C:p=C+1}for(var B=[];this.ids[p]===u;)B.push({index:this.positions[3*p],start:this.positions[3*p+1],end:this.positions[3*p+2]}),p++;return B},Ge.serialize=function(a,u){var p=new Float64Array(a.ids),x=new Uint32Array(a.positions);return(function C(B,O,k,j){for(;k<j;){for(var J=B[k+j>>1],Q=k-1,ie=j+1;;){do Q++;while(B[Q]<J);
2097do ie--;while(B[ie]>J);if(Q>=ie)break;qe(B,Q,ie),qe(O,3*Q,3*ie),qe(O,3*Q+1,3*ie+1),qe(O,3*Q+2,3*ie+2)}ie-k<j-ie?(C(B,O,k,ie),k=ie+1):(C(B,O,ie+1,j),j=ie)}})(p,x,0,p.length-1),u&&u.push(p.buffer,x.buffer),{ids:p,positions:x}},Ge.deserialize=function(a){var u=new Ge;return u.ids=a.ids,u.positions=a.positions,u.indexed=!0,u};var $e=Math.pow(2,53)-1;function nt(a){var u=+a;return!isNaN(u)&&u<=$e?u:ge(String(a))}function qe(a,u,p){var x=a[u];a[u]=a[p],a[p]=x}or("FeaturePositionMap",Ge);var et=function(a,u){this.gl=a.gl,this.location=u},pt=(function(a){function u(p,x){a.call(this,p,x),this.current=0}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.set=function(p){this.current!==p&&(this.current=p,this.gl.uniform1i(this.location,p))},u})(et),Dt=(function(a){function u(p,x){a.call(this,p,x),this.current=0}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.set=function(p){this.current!==p&&(this.current=p,this.gl.uniform1f(this.location,p))},u})(et),Tt=(function(a){function u(p,x){a.call(this,p,x),this.current=[0,0]}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.set=function(p){p[0]===this.current[0]&&p[1]===this.current[1]||(this.current=p,this.gl.uniform2f(this.location,p[0],p[1]))},u})(et),zt=(function(a){function u(p,x){a.call(this,p,x),this.current=[0,0,0]}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.set=function(p){p[0]===this.current[0]&&p[1]===this.current[1]&&p[2]===this.current[2]||(this.current=p,this.gl.uniform3f(this.location,p[0],p[1],p[2]))},u})(et),sr=(function(a){function u(p,x){a.call(this,p,x),this.current=[0,0,0,0]}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.set=function(p){p[0]===this.current[0]&&p[1]===this.current[1]&&p[2]===this.current[2]&&p[3]===this.current[3]||(this.current=p,this.gl.uniform4f(this.location,p[0],p[1],p[2],p[3]))},u})(et),Cr=(function(a){function u(p,x){a.call(this,p,x),this.current=tn.transparent}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.set=function(p){p.r===this.current.r&&p.g===this.current.g&&p.b===this.current.b&&p.a===this.current.a||(this.current=p,this.gl.uniform4f(this.location,p.r,p.g,p.b,p.a))},u})(et),Pr=new Float32Array(16),xn=(function(a){function u(p,x){a.call(this,p,x),this.current=Pr}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.set=function(p){if(p[12]!==this.current[12]||p[0]!==this.current[0])return this.current=p,void this.gl.uniformMatrix4fv(this.location,!1,p);for(var x=1;x<16;x++)if(p[x]!==this.current[x]){this.current=p,this.gl.uniformMatrix4fv(this.location,!1,p);break}},u})(et);function ar(a){return[re(255*a.r,255*a.g),re(255*a.b,255*a.a)]}var Wr=function(a,u,p){this.value=a,this.uniformNames=u.map((function(x){return"u_"+x})),this.type=p};Wr.prototype.setUniform=function(a,u,p){a.set(p.constantOr(this.value))},Wr.prototype.getBinding=function(a,u,p){return this.type==="color"?new Cr(a,u):new Dt(a,u)};var rn=function(a,u){this.uniformNames=u.map((function(p){return"u_"+p})),this.patternFrom=null,this.patternTo=null,this.pixelRatioFrom=1,this.pixelRatioTo=1};rn.prototype.setConstantPatternPositions=function(a,u){this.pixelRatioFrom=u.pixelRatio,this.pixelRatioTo=a.pixelRatio,this.patternFrom=u.tlbr,this.patternTo=a.tlbr},rn.prototype.setUniform=function(a,u,p,x){var C=x==="u_pattern_to"?this.patternTo:x==="u_pattern_from"?this.patternFrom:x==="u_pixel_ratio_to"?this.pixelRatioTo:x==="u_pixel_ratio_from"?this.pixelRatioFrom:null;C&&a.set(C)},rn.prototype.getBinding=function(a,u,p){return p.substr(0,9)==="u_pattern"?new sr(a,u):new Dt(a,u)};var Hr=function(a,u,p,x){this.expression=a,this.type=p,this.maxValue=0,this.paintVertexAttributes=u.map((function(C){return{name:"a_"+C,type:"Float32",components:p==="color"?2:1,offset:0}})),this.paintVertexArray=new x};Hr.prototype.populatePaintArray=function(a,u,p,x,C){var B=this.paintVertexArray.length,O=this.expression.evaluate(new Gr(0),u,{},x,[],C);this.paintVertexArray.resize(a),this._setPaintValue(B,a,O)},Hr.prototype.updatePaintArray=function(a,u,p,x){var C=this.expression.evaluate({zoom:0},p,x);this._setPaintValue(a,u,C)}
vendor: 17,774 bytes, line 2097
2097,Hr.prototype._setPaintValue=function(a,u,p){if(this.type==="color")for(var x=ar(p),C=a;C<u;C++)this.paintVertexArray.emplace(C,x[0],x[1]);else{for(var B=a;B<u;B++)this.paintVertexArray.emplace(B,p);this.maxValue=Math.max(this.maxValue,Math.abs(p))}},Hr.prototype.upload=function(a){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=a.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))},Hr.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()};var Vr=function(a,u,p,x,C,B){this.expression=a,this.uniformNames=u.map((function(O){return"u_"+O+"_t"})),this.type=p,this.useIntegerZoom=x,this.zoom=C,this.maxValue=0,this.paintVertexAttributes=u.map((function(O){return{name:"a_"+O,type:"Float32",components:p==="color"?4:2,offset:0}})),this.paintVertexArray=new B};Vr.prototype.populatePaintArray=function(a,u,p,x,C){var B=this.expression.evaluate(new Gr(this.zoom),u,{},x,[],C),O=this.expression.evaluate(new Gr(this.zoom+1),u,{},x,[],C),k=this.paintVertexArray.length;this.paintVertexArray.resize(a),this._setPaintValue(k,a,B,O)},Vr.prototype.updatePaintArray=function(a,u,p,x){var C=this.expression.evaluate({zoom:this.zoom},p,x),B=this.expression.evaluate({zoom:this.zoom+1},p,x);this._setPaintValue(a,u,C,B)},Vr.prototype._setPaintValue=function(a,u,p,x){if(this.type==="color")for(var C=ar(p),B=ar(x),O=a;O<u;O++)this.paintVertexArray.emplace(O,C[0],C[1],B[0],B[1]);else{for(var k=a;k<u;k++)this.paintVertexArray.emplace(k,p,x);this.maxValue=Math.max(this.maxValue,Math.abs(p),Math.abs(x))}},Vr.prototype.upload=function(a){this.paintVertexArray&&this.paintVertexArray.arrayBuffer&&(this.paintVertexBuffer&&this.paintVertexBuffer.buffer?this.paintVertexBuffer.updateData(this.paintVertexArray):this.paintVertexBuffer=a.createVertexBuffer(this.paintVertexArray,this.paintVertexAttributes,this.expression.isStateDependent))},Vr.prototype.destroy=function(){this.paintVertexBuffer&&this.paintVertexBuffer.destroy()},Vr.prototype.setUniform=function(a,u){var p=this.useIntegerZoom?Math.floor(u.zoom):u.zoom,x=$(this.expression.interpolationFactor(p,this.zoom,this.zoom+1),0,1);a.set(x)},Vr.prototype.getBinding=function(a,u,p){return new Dt(a,u)};var Yr=function(a,u,p,x,C,B){this.expression=a,this.type=u,this.useIntegerZoom=p,this.zoom=x,this.layerId=B,this.zoomInPaintVertexArray=new C,this.zoomOutPaintVertexArray=new C};Yr.prototype.populatePaintArray=function(a,u,p){var x=this.zoomInPaintVertexArray.length;this.zoomInPaintVertexArray.resize(a),this.zoomOutPaintVertexArray.resize(a),this._setPaintValues(x,a,u.patterns&&u.patterns[this.layerId],p)},Yr.prototype.updatePaintArray=function(a,u,p,x,C){this._setPaintValues(a,u,p.patterns&&p.patterns[this.layerId],C)},Yr.prototype._setPaintValues=function(a,u,p,x){if(x&&p){var C=x[p.min],B=x[p.mid],O=x[p.max];if(C&&B&&O)for(var k=a;k<u;k++)this.zoomInPaintVertexArray.emplace(k,B.tl[0],B.tl[1],B.br[0],B.br[1],C.tl[0],C.tl[1],C.br[0],C.br[1],B.pixelRatio,C.pixelRatio),this.zoomOutPaintVertexArray.emplace(k,B.tl[0],B.tl[1],B.br[0],B.br[1],O.tl[0],O.tl[1],O.br[0],O.br[1],B.pixelRatio,O.pixelRatio)}},Yr.prototype.upload=function(a){this.zoomInPaintVertexArray&&this.zoomInPaintVertexArray.arrayBuffer&&this.zoomOutPaintVertexArray&&this.zoomOutPaintVertexArray.arrayBuffer&&(this.zoomInPaintVertexBuffer=a.createVertexBuffer(this.zoomInPaintVertexArray,oe.members,this.expression.isStateDependent),this.zoomOutPaintVertexBuffer=a.createVertexBuffer(this.zoomOutPaintVertexArray,oe.members,this.expression.isStateDependent))},Yr.prototype.destroy=function(){this.zoomOutPaintVertexBuffer&&this.zoomOutPaintVertexBuffer.destroy(),this.zoomInPaintVertexBuffer&&this.zoomInPaintVertexBuffer.destroy()};var kr=function(a,u,p){this.binders={},this._buffers=[];var x=[];for(var C in a.paint._values)if(p(C)){var B=a.paint.get(C);if(B instanceof ss&&Zo(B.property.specification)){var O=Ki(C,a.type),k=B.value,j=B.property.specification.type,J=B.property.useIntegerZoom,Q=B.property.specification["property-type"],ie=Q==="cross-faded"||Q==="cross-faded-data-driven";if(k.kind==="constant")this.binders[C]=ie?new rn(k.value,O):new Wr(k.value,O,j),x.push("/u_"+C);else if(k.kind==="source"||ie){var fe=Ti(C,j,"source");this.binders[C]=ie?new Yr(k,j,J,u,fe,a.id):new Hr(k,O,j,fe),x.push("/a_"+C)}else{var _e=Ti(C,j,"composite");this.binders[C]=new Vr(k,O,j,J,u,_e),x.push("/z_"+C)}}}this.cacheKey=x.sort().join("")};kr.prototype.getMaxValue=function(a){var u=this.binders[a];return u instanceof Hr||u instanceof Vr?u.maxValue:0},kr.prototype.populatePaintArrays=function(a,u,p,x,C){for(var B in this.binders){var O=this.binders[B];(O instanceof Hr||O instanceof Vr||O instanceof Yr)&&O.populatePaintArray(a,u,p,x,C)}},kr.prototype.setConstantPatternPositions=function(a,u){for(var p in this.binders){var x=this.binders[p];x instanceof rn&&x.setConstantPatternPositions(a,u)}},kr.prototype.updatePaintArrays=function(a,u,p,x,C){var B=!1;for(var O in a)for(var k=0,j=u.getPositions(O);k<j.length;k+=1){var J=j[k],Q=p.feature(J.index);for(var ie in this.binders){var fe=this.binders[ie];if((fe instanceof Hr||fe instanceof Vr||fe instanceof Yr)&&fe.expression.isStateDependent===!0){var _e=x.paint.get(ie);fe.expression=_e.value,fe.updatePaintArray(J.start,J.end,Q,a[O],C),B=!0}}}return B},kr.prototype.defines=function(){var a=[];for(var u in this.binders){var p=this.binders[u];(p instanceof Wr||p instanceof rn)&&a.push.apply(a,p.uniformNames.map((function(x){return"#define HAS_UNIFORM_"+x})))}return a},kr.prototype.getBinderAttributes=function(){var a=[];for(var u in this.binders){var p=this.binders[u];if(p instanceof Hr||p instanceof Vr)for(var x=0;x<p.paintVertexAttributes.length;x++)a.push(p.paintVertexAttributes[x].name);else if(p instanceof Yr)for(var C=0;C<oe.members.length;C++)a.push(oe.members[C].name)}return a},kr.prototype.getBinderUniforms=function(){var a=[];for(var u in this.binders){var p=this.binders[u];if(p instanceof Wr||p instanceof rn||p instanceof Vr)for(var x=0,C=p.uniformNames;x<C.length;x+=1)a.push(C[x])}return a},kr.prototype.getPaintVertexBuffers=function(){return this._buffers},kr.prototype.getUniforms=function(a,u){var p=[];for(var x in this.binders){var C=this.binders[x];if(C instanceof Wr||C instanceof rn||C instanceof Vr)for(var B=0,O=C.uniformNames;B<O.length;B+=1){var k=O[B];if(u[k]){var j=C.getBinding(a,u[k],k);p.push({name:k,property:x,binding:j})}}}return p},kr.prototype.setUniforms=function(a,u,p,x){for(var C=0,B=u;C<B.length;C+=1){var O=B[C],k=O.name,j=O.property;this.binders[j].setUniform(O.binding,x,p.get(j),k)}},kr.prototype.updatePaintBuffers=function(a){for(var u in this._buffers=[],this.binders){var p=this.binders[u];if(a&&p instanceof Yr){var x=a.fromScale===2?p.zoomInPaintVertexBuffer:p.zoomOutPaintVertexBuffer;x&&this._buffers.push(x)}else(p instanceof Hr||p instanceof Vr)&&p.paintVertexBuffer&&this._buffers.push(p.paintVertexBuffer)}},kr.prototype.upload=function(a){for(var u in this.binders){var p=this.binders[u];(p instanceof Hr||p instanceof Vr||p instanceof Yr)&&p.upload(a)}this.updatePaintBuffers()},kr.prototype.destroy=function(){for(var a in this.binders){var u=this.binders[a];(u instanceof Hr||u instanceof Vr||u instanceof Yr)&&u.destroy()}};var Fr=function(a,u,p){p===void 0&&(p=function(){return!0}),this.programConfigurations={};for(var x=0,C=a;x<C.length;x+=1){var B=C[x];this.programConfigurations[B.id]=new kr(B,u,p)}this.needsUpload=!1,this._featureMap=new Ge,this._bufferOffset=0};function Ki(a,u){return{"text-opacity":["opacity"],"icon-opacity":["opacity"],"text-color":["fill_color"],"icon-color":["fill_color"],"text-halo-color":["halo_color"],"icon-halo-color":["halo_color"],"text-halo-blur":["halo_blur"],"icon-halo-blur":["halo_blur"],"text-halo-width":["halo_width"],"icon-halo-width":["halo_width"],"line-gap-width":["gapwidth"],"line-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"],"fill-extrusion-pattern":["pattern_to","pattern_from","pixel_ratio_to","pixel_ratio_from"]}[a]||[a.replace(u+"-","").replace(/-/g,"_")]}function Ti(a,u,p){var x={color:{source:To,composite:D},number:{source:_,composite:To}},C=(function(B){return{"line-pattern":{source:Eo,composite:Eo},"fill-pattern":{source:Eo,composite:Eo},"fill-extrusion-pattern":{source:Eo,composite:Eo}}[B]})(a);return C&&C[p]||x[u][p]}Fr.prototype.populatePaintArrays=function(a,u,p,x,C,B){for(var O in this.programConfigurations)this.programConfigurations[O].populatePaintArrays(a,u,x,C,B);u.id!==void 0&&this._featureMap.add(u.id,p,this._bufferOffset,a),this._bufferOffset=a,this.needsUpload=!0},Fr.prototype.updatePaintArrays=function(a,u,p,x){for(var C=0,B=p;C<B.length;C+=1){var O=B[C];this.needsUpload=this.programConfigurations[O.id].updatePaintArrays(a,this._featureMap,u,O,x)||this.needsUpload}},Fr.prototype.get=function(a){return this.programConfigurations[a]},Fr.prototype.upload=function(a){if(this.needsUpload){for(var u in this.programConfigurations)this.programConfigurations[u].upload(a);this.needsUpload=!1}},Fr.prototype.destroy=function(){for(var a in this.programConfigurations)this.programConfigurations[a].destroy()},or("ConstantBinder",Wr),or("CrossFadedConstantBinder",rn),or("SourceExpressionBinder",Hr),or("CrossFadedCompositeBinder",Yr),or("CompositeExpressionBinder",Vr),or("ProgramConfiguration",kr,{omit:["_buffers"]}),or("ProgramConfigurationSet",Fr);var vs=Math.pow(2,14)-1,as=-vs-1;function yi(a){for(var u=8192/a.extent,p=a.loadGeometry(),x=0;x<p.length;x++)for(var C=p[x],B=0;B<C.length;B++){var O=C[B],k=Math.round(O.x*u),j=Math.round(O.y*u);O.x=$(k,as,vs),O.y=$(j,as,vs),(k<O.x||k>O.x+1||j<O.y||j>O.y+1)&&te("Geometry exceeds allowed extent, reduce your vector tile buffer size")}return p}function Ii(a,u){return{type:a.type,id:a.id,properties:a.properties,geometry:u?yi(a):[]}}function ao(a,u,p,x,C){a.emplaceBack(2*u+(x+1)/2,2*p+(C+1)/2)}var Ms=function(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map((function(u){return u.id})),this.index=a.index,this.hasPattern=!1,this.layoutVertexArray=new Hs,this.indexArray=new ia,this.segments=new Y,this.programConfigurations=new Fr(a.layers,a.zoom),this.stateDependentLayerIds=this.layers.filter((function(u){return u.isStateDependent()})).map((function(u){return u.id}))};function jl(a,u){for(var p=0;p<a.length;p++)if(Ba(u,a[p]))return!0;for(var x=0;x<u.length;x++)if(Ba(a,u[x]))return!0;return!!Tf(a,u)}function Ws(a,u,p){return!!Ba(a,u)||!!Gl(u,a,p)}function sa(a,u){if(a.length===1)return Ef(u,a[0]);for(var p=0;p<u.length;p++)for(var x=u[p],C=0;C<x.length;C++)if(Ba(a,x[C]))return!0;for(var B=0;B<a.length;B++)if(Ef(u,a[B]))return!0;for(var O=0;O<u.length;O++)if(Tf(a,u[O]))return!0;return!1}function Fo(a,u,p){if(a.length>1){if(Tf(a,u))return!0;for(var x=0;x<u.length;x++)if(Gl(u[x],a,p))return!0}for(var C=0;C<a.length;C++)if(Gl(a[C],u,p))return!0;return!1}function Tf(a,u){if(a.length===0||u.length===0)return!1;for(var p=0;p<a.length-1;p++)for(var x=a[p],C=a[p+1],B=0;B<u.length-1;B++)if(wu(x,C,u[B],u[B+1]))return!0;return!1}function wu(a,u,p,x){return Ce(a,p,x)!==Ce(u,p,x)&&Ce(a,u,p)!==Ce(a,u,x)}function Gl(a,u,p){var x=p*p;if(u.length===1)return a.distSqr(u[0])<x;for(var C=1;C<u.length;C++)if(Tu(a,u[C-1],u[C])<x)return!0;return!1}function Tu(a,u,p){var x=u.distSqr(p);if(x===0)return a.distSqr(u);var C=((a.x-u.x)*(p.x-u.x)+(a.y-u.y)*(p.y-u.y))/x;return a.distSqr(C<0?u:C>1?p:p.sub(u)._mult(C)._add(u))}function Ef(a,u){for(var p,x,C,B=!1,O=0;O<a.length;O++)for(var k=0,j=(p=a[O]).length-1;k<p.length;j=k++)(x=p[k]).y>u.y!=(C=p[j]).y>u.y&&u.x<(C.x-x.x)*(u.y-x.y)/(C.y-x.y)+x.x&&(B=!B);return B}function Ba(a,u){for(var p=!1,x=0,C=a.length-1;x<a.length;C=x++){var B=a[x],O=a[C];B.y>u.y!=O.y>u.y&&u.x<(O.x-B.x)*(u.y-B.y)/(O.y-B.y)+B.x&&(p=!p)}return p}function Cf(a,u,p){var x=p[0],C=p[2];if(a.x<x.x&&u.x<x.x||a.x>C.x&&u.x>C.x||a.y<x.y&&u.y<x.y||a.y>C.y&&u.y>C.y)return!1;var B=Ce(a,u,p[0]);return B!==Ce(a,u,p[1])||B!==Ce(a,u,p[2])||B!==Ce(a,u,p[3])}function Pa(a,u,p){var x=u.paint.get(a).value;return x.kind==="constant"?x.value:p.programConfigurations.get(u.id).getMaxValue(a)}function Zi(a){return Math.sqrt(a[0]*a[0]+a[1]*a[1])}function il(a,u,p,x,C){if(!u[0]&&!u[1])return a;var B=v.convert(u)._mult(C);p==="viewport"&&B._rotate(-x);for(var O=[],k=0;k<a.length;k++)O.push(a[k].sub(B));return O}Ms.prototype.populate=function(a,u,p){var x=this.layers[0],C=[],B=null;x.type==="circle"&&(B=x.layout.get("circle-sort-key"));for(var O=0,k=a;O<k.length;O+=1){var j=k[O],J=j.feature,Q=j.id,ie=j.index,fe=j.sourceLayerIndex,_e=this.layers[0]._featureFilter.needGeometry,ke=Ii(J,_e);if(this.layers[0]._featureFilter.filter(new Gr(this.zoom),ke,p)){var Ne=B?B.evaluate(ke,{},p):void 0,He={id:Q,properties:J.properties,type:J.type,sourceLayerIndex:fe,index:ie,geometry:_e?ke.geometry:yi(J),patterns:{},sortKey:Ne};C.push(He)}}B&&C.sort((function(Kt,xr){return Kt.sortKey-xr.sortKey}));for(var je=0,Ke=C;je<Ke.length;je+=1){var lt=Ke[je],mt=lt.geometry,yt=lt.index,Ot=lt.sourceLayerIndex,Ht=a[yt].feature;this.addFeature(lt,mt,yt,p),u.featureIndex.insert(Ht,mt,yt,Ot,this.index)}},Ms.prototype.update=function(a,u,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,u,this.stateDependentLayers,p)},Ms.prototype.isEmpty=function(){return this.layoutVertexArray.length===0},Ms.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},Ms.prototype.upload=function(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,ee),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0},Ms.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},Ms.prototype.addFeature=function(a,u,p,x){for(var C=0,B=u;C<B.length;C+=1)for(var O=0,k=B[C];O<k.length;O+=1){var j=k[O],J=j.x,Q=j.y;if(!(J<0||J>=8192||Q<0||Q>=8192)){var ie=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray,a.sortKey),fe=ie.vertexLength;ao(this.layoutVertexArray,J,Q,-1,-1),ao(this.layoutVertexArray,J,Q,1,-1),ao(this.layoutVertexArray,J,Q,1,1),ao(this.layoutVertexArray,J,Q,-1,1),this.indexArray.emplaceBack(fe,fe+1,fe+2),this.indexArray.emplaceBack(fe,fe+3,fe+2),ie.vertexLength+=4,ie.primitiveLength+=2}}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,p,{},x)},or("CircleBucket",Ms,{omit:["layers"]});var Hl=new qn({"circle-sort-key":new ur(ae.layout_circle["circle-sort-key"])}),Mc={paint:new qn({"circle-radius":new ur(ae.paint_circle["circle-radius"]),"circle-color":new ur(ae.paint_circle["circle-color"]),"circle-blur":new ur(ae.paint_circle["circle-blur"]),"circle-opacity":new ur(ae.paint_circle["circle-opacity"]),"circle-translate":new wr(ae.paint_circle["circle-translate"]),"circle-translate-anchor":new wr(ae.paint_circle["circle-translate-anchor"]),"circle-pitch-scale":new wr(ae.paint_circle["circle-pitch-scale"]),"circle-pitch-alignment":new wr(ae.paint_circle["circle-pitch-alignment"]),"circle-stroke-width":new ur(ae.paint_circle["circle-stroke-width"]),"circle-stroke-color":new ur(ae.paint_circle["circle-stroke-color"]),"circle-stroke-opacity":new ur(ae.paint_circle["circle-stroke-opacity"])}),layout:Hl},Cn=typeof Float32Array<"u"?Float32Array:Array;function Co(a){return a[0]=1,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=1,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=1,a[11]=0,a[12]=0,a[13]=0,a[14]=0,a[15]=1,a}function $s(a,u,p){var x=u[0],C=u[1],B=u[2],O=u[3],k=u[4],j=u[5],J=u[6],Q=u[7],ie=u[8],fe=u[9],_e=u[10],ke=u[11],Ne=u[12],He=u[13],je=u[14],Ke=u[15],lt=p[0],mt=p[1],yt=p[2],Ot=p[3];return a[0]=lt*x+mt*k+yt*ie+Ot*Ne,a[1]=lt*C+mt*j+yt*fe+Ot*He,a[2]=lt*B+mt*J+yt*_e+Ot*je,a[3]=lt*O+mt*Q+yt*ke+Ot*Ke,a[4]=(lt=p[4])*x+(mt=p[5])*k+(yt=p[6])*ie+(Ot=p[7])*Ne,a[5]=lt*C+mt*j+yt*fe+Ot*He,a[6]=lt*B+mt*J+yt*_e+Ot*je,a[7]=lt*O+mt*Q+yt*ke+Ot*Ke,a[8]=(lt=p[8])*x+(mt=p[9])*k+(yt=p[10])*ie+(Ot=p[11])*Ne,a[9]=lt*C+mt*j+yt*fe+Ot*He,a[10]=lt*B+mt*J+yt*_e+Ot*je,a[11]=lt*O+mt*Q+yt*ke+Ot*Ke,a[12]=(lt=p[12])*x+(mt=p[13])*k+(yt=p[14])*ie+(Ot=p[15])*Ne,a[13]=lt*C+mt*j+yt*fe+Ot*He,a[14]=lt*B+mt*J+yt*_e+Ot*je,a[15]=lt*O+mt*Q+yt*ke+Ot*Ke,a}Math.hypot||(Math.hypot=function(){for(var a=arguments,u=0,p=arguments.length;p--;)u+=a[p]*a[p];return Math.sqrt(u)});var Rc,by=$s;function Dh(a,u,p){var x=u[0],C=u[1],B=u[2],O=u[3];return a[0]=p[0]*x+p[4]*C+p[8]*B+p[12]*O,a[1]=p[1]*x+p[5]*C+p[9]*B+p[13]*O,a[2]=p[2]*x+p[6]*C+p[10]*B+p[14]*O,a[3]=p[3]*x+p[7]*C+p[11]*B+p[15]*O,a}Rc=new Cn(3),Cn!=Float32Array&&(Rc[0]=0,Rc[1]=0,Rc[2]=0),(function(){var a=new Cn(4);Cn!=Float32Array&&(a[0]=0,a[1]=0,a[2]=0,a[3]=0)})();var xy=((function(){var a=new Cn(2);Cn!=Float32Array&&(a[0]=0,a[1]=0)})(),(function(a){function u(p){a.call(this,p,Mc)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.createBucket=function(p){return new Ms(p)},u.prototype.queryRadius=function(p){var x=p;return Pa("circle-radius",this,x)+Pa("circle-stroke-width",this,x)+Zi(this.paint.get("circle-translate"))},u.prototype.queryIntersectsFeature=function(p,x,C,B,O,k,j,J){for(var Q=il(p,this.paint.get("circle-translate"),this.paint.get("circle-translate-anchor"),k.angle,j),ie=this.paint.get("circle-radius").evaluate(x,C)+this.paint.get("circle-stroke-width").evaluate(x,C),fe=this.paint.get("circle-pitch-alignment")==="map",_e=fe?Q:(function(Ht,Kt){return Ht.map((function(xr){return Sf(xr,Kt)}
2097))})(Q,J),ke=fe?ie*j:ie,Ne=0,He=B;Ne<He.length;Ne+=1)for(var je=0,Ke=He[Ne];je<Ke.length;je+=1){var lt=Ke[je],mt=fe?lt:Sf(lt,J),yt=ke,Ot=Dh([],[lt.x,lt.y,0,1],J);if(this.paint.get("circle-pitch-scale")==="viewport"&&this.paint.get("circle-pitch-alignment")==="map"?yt*=Ot[3]/k.cameraToCenterDistance:this.paint.get("circle-pitch-scale")==="map"&&this.paint.get("circle-pitch-alignment")==="viewport"&&(yt*=k.cameraToCenterDistance/Ot[3]),Ws(_e,mt,yt))return!0}return!1},u})(zr));function Sf(a,u){var p=Dh([],[a.x,a.y,0,1],u);return new v(p[0]/p[3],p[1]/p[3])}var Rg=(function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u})(Ms);function Eu(a,u,p,x){var C=u.width,B=u.height;if(x){if(x instanceof Uint8ClampedArray)x=new Uint8Array(x.buffer);else if(x.length!==C*B*p)throw new RangeError("mismatched image size")}else x=new Uint8Array(C*B*p);return a.width=C,a.height=B,a.data=x,a}function Fh(a,u,p){var x=u.width,C=u.height;if(x!==a.width||C!==a.height){var B=Eu({},{width:x,height:C},p);wy(a,B,{x:0,y:0},{x:0,y:0},{width:Math.min(a.width,x),height:Math.min(a.height,C)},p),a.width=x,a.height=C,a.data=B.data}}function wy(a,u,p,x,C,B){if(C.width===0||C.height===0)return u;if(C.width>a.width||C.height>a.height||p.x>a.width-C.width||p.y>a.height-C.height)throw new RangeError("out of range source coordinates for image copy");if(C.width>u.width||C.height>u.height||x.x>u.width-C.width||x.y>u.height-C.height)throw new RangeError("out of range destination coordinates for image copy");for(var O=a.data,k=u.data,j=0;j<C.height;j++)for(var J=((p.y+j)*a.width+p.x)*B,Q=((x.y+j)*u.width+x.x)*B,ie=0;ie<C.width*B;ie++)k[Q+ie]=O[J+ie];return u}or("HeatmapBucket",Rg,{omit:["layers"]});var If=function(a,u){Eu(this,a,1,u)};If.prototype.resize=function(a){Fh(this,a,1)},If.prototype.clone=function(){return new If({width:this.width,height:this.height},new Uint8Array(this.data))},If.copy=function(a,u,p,x,C){wy(a,u,p,x,C,1)};var lo=function(a,u){Eu(this,a,4,u)};lo.prototype.resize=function(a){Fh(this,a,4)},lo.prototype.replace=function(a,u){u?this.data.set(a):this.data=a instanceof Uint8ClampedArray?new Uint8Array(a.buffer):a},lo.prototype.clone=function(){return new lo({width:this.width,height:this.height},new Uint8Array(this.data))},lo.copy=function(a,u,p,x,C){wy(a,u,p,x,C,4)},or("AlphaImage",If),or("RGBAImage",lo);var Xk={paint:new qn({"heatmap-radius":new ur(ae.paint_heatmap["heatmap-radius"]),"heatmap-weight":new ur(ae.paint_heatmap["heatmap-weight"]),"heatmap-intensity":new wr(ae.paint_heatmap["heatmap-intensity"]),"heatmap-color":new Ji(ae.paint_heatmap["heatmap-color"]),"heatmap-opacity":new wr(ae.paint_heatmap["heatmap-opacity"])})};function LT(a){var u={},p=a.resolution||256,x=a.clips?a.clips.length:1,C=a.image||new lo({width:p,height:x}),B=function(ke,Ne,He){u[a.evaluationKey]=He;var je=a.expression.evaluate(u);C.data[ke+Ne+0]=Math.floor(255*je.r/je.a),C.data[ke+Ne+1]=Math.floor(255*je.g/je.a),C.data[ke+Ne+2]=Math.floor(255*je.b/je.a),C.data[ke+Ne+3]=Math.floor(255*je.a)};if(a.clips)for(var O=0,k=0;O<x;++O,k+=4*p)for(var j=0,J=0;j<p;j++,J+=4){var Q=j/(p-1),ie=a.clips[O];B(k,J,ie.start*(1-Q)+ie.end*Q)}else for(var fe=0,_e=0;fe<p;fe++,_e+=4)B(0,_e,fe/(p-1));return C}var qk=(function(a){function u(p){a.call(this,p,Xk),this._updateColorRamp()}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.createBucket=function(p){return new Rg(p)},u.prototype._handleSpecialPaintPropertyUpdate=function(p){p==="heatmap-color"&&this._updateColorRamp()},u.prototype._updateColorRamp=function(){this.colorRamp=LT({expression:this._transitionablePaint._values["heatmap-color"].value.expression,evaluationKey:"heatmapDensity",image:this.colorRamp}),this.colorRampTexture=null},u.prototype.resize=function(){this.heatmapFbo&&(this.heatmapFbo.destroy(),this.heatmapFbo=null)},u.prototype.queryRadius=function(){return 0},u.prototype.queryIntersectsFeature=function(){return!1},u.prototype.hasOffscreenPass=function(){return this.paint.get("heatmap-opacity")!==0&&this.visibility!=="none"},u})(zr),Jk={paint:new qn({"hillshade-illumination-direction":new wr(ae.paint_hillshade["hillshade-illumination-direction"]),"hillshade-illumination-anchor":new wr(ae.paint_hillshade["hillshade-illumination-anchor"]),"hillshade-exaggeration":new wr(ae.paint_hillshade["hillshade-exaggeration"]),"hillshade-shadow-color":new wr(ae.paint_hillshade["hillshade-shadow-color"]),"hillshade-highlight-color":new wr(ae.paint_hillshade["hillshade-highlight-color"]),"hillshade-accent-color":new wr(ae.paint_hillshade["hillshade-accent-color"])})},Kk=(function(a){function u(p){a.call(this,p,Jk)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.hasOffscreenPass=function(){return this.paint.get("hillshade-exaggeration")!==0&&this.visibility!=="none"},u})(zr),Zk=ki([{name:"a_pos",components:2,type:"Int16"}],4).members,Ty=Og,Yk=Og;function Og(a,u,p){p=p||2;var x,C,B,O,k,j,J,Q=u&&u.length,ie=Q?u[0]*p:a.length,fe=kT(a,0,ie,p,!0),_e=[];
2097if(!fe||fe.next===fe.prev)return _e;if(Q&&(fe=(function(Ne,He,je,Ke){var lt,mt,yt,Ot=[];for(lt=0,mt=He.length;lt<mt;lt++)(yt=kT(Ne,He[lt]*Ke,lt<mt-1?He[lt+1]*Ke:Ne.length,Ke,!1))===yt.next&&(yt.steiner=!0),Ot.push(o8(yt));for(Ot.sort(n8),lt=0;lt<Ot.length;lt++)i8(Ot[lt],je),je=Cu(je,je.next);return je})(a,u,fe,p)),a.length>80*p){x=B=a[0],C=O=a[1];for(var ke=p;ke<ie;ke+=p)(k=a[ke])<x&&(x=k),(j=a[ke+1])<C&&(C=j),k>B&&(B=k),j>O&&(O=j);J=(J=Math.max(B-x,O-C))!==0?1/J:0}return zp(fe,_e,p,x,C,J),_e}function kT(a,u,p,x,C){var B,O;if(C===Sy(a,u,p,x)>0)for(B=u;B<p;B+=x)O=zT(B,a[B],a[B+1],O);else for(B=p-x;B>=u;B-=x)O=zT(B,a[B],a[B+1],O);return O&&Dg(O,O.next)&&(jp(O),O=O.next),O}function Cu(a,u){if(!a)return a;u||(u=a);var p,x=a;do if(p=!1,x.steiner||!Dg(x,x.next)&&Vi(x.prev,x,x.next)!==0)x=x.next;else{if(jp(x),(x=u=x.prev)===x.next)break;p=!0}while(p||x!==u);return u}function zp(a,u,p,x,C,B,O){if(a){!O&&B&&(function(Q,ie,fe,_e){var ke=Q;do ke.z===null&&(ke.z=Ey(ke.x,ke.y,ie,fe,_e)),ke.prevZ=ke.prev,ke.nextZ=ke.next,ke=ke.next;while(ke!==Q);ke.prevZ.nextZ=null,ke.prevZ=null,(function(Ne){var He,je,Ke,lt,mt,yt,Ot,Ht,Kt=1;do{for(je=Ne,Ne=null,mt=null,yt=0;je;){for(yt++,Ke=je,Ot=0,He=0;He<Kt&&(Ot++,Ke=Ke.nextZ);He++);for(Ht=Kt;Ot>0||Ht>0&&Ke;)Ot!==0&&(Ht===0||!Ke||je.z<=Ke.z)?(lt=je,je=je.nextZ,Ot--):(lt=Ke,Ke=Ke.nextZ,Ht--),mt?mt.nextZ=lt:Ne=lt,lt.prevZ=mt,mt=lt;je=Ke}mt.nextZ=null,Kt*=2}while(yt>1)})(ke)})(a,x,C,B);for(var k,j,J=a;a.prev!==a.next;)if(k=a.prev,j=a.next,B?e8(a,x,C,B):Qk(a))u.push(k.i/p),u.push(a.i/p),u.push(j.i/p),jp(a),a=j.next,J=j.next;else if((a=j)===J){O?O===1?zp(a=t8(Cu(a),u,p),u,p,x,C,B,2):O===2&&r8(a,u,p,x,C,B):zp(Cu(a),u,p,x,C,B,1);break}}}function Qk(a){var u=a.prev,p=a,x=a.next;if(Vi(u,p,x)>=0)return!1;for(var C=a.next.next;C!==a.prev;){if(Lh(u.x,u.y,p.x,p.y,x.x,x.y,C.x,C.y)&&Vi(C.prev,C,C.next)>=0)return!1;C=C.next}return!0}function e8(a,u,p,x){var C=a.prev,B=a,O=a.next;if(Vi(C,B,O)>=0)return!1;for(var k=C.x>B.x?C.x>O.x?C.x:O.x:B.x>O.x?B.x:O.x,j=C.y>B.y?C.y>O.y?C.y:O.y:B.y>O.y?B.y:O.y,J=Ey(C.x<B.x?C.x<O.x?C.x:O.x:B.x<O.x?B.x:O.x,C.y<B.y?C.y<O.y?C.y:O.y:B.y<O.y?B.y:O.y,u,p,x),Q=Ey(k,j,u,p,x),ie=a.prevZ,fe=a.nextZ;ie&&ie.z>=J&&fe&&fe.z<=Q;){if(ie!==a.prev&&ie!==a.next&&Lh(C.x,C.y,B.x,B.y,O.x,O.y,ie.x,ie.y)&&Vi(ie.prev,ie,ie.next)>=0||(ie=ie.prevZ,fe!==a.prev&&fe!==a.next&&Lh(C.x,C.y,B.x,B.y,O.x,O.y,fe.x,fe.y)&&Vi(fe.prev,fe,fe.next)>=0))return!1;fe=fe.nextZ}for(;ie&&ie.z>=J;){if(ie!==a.prev&&ie!==a.next&&Lh(C.x,C.y,B.x,B.y,O.x,O.y,ie.x,ie.y)&&Vi(ie.prev,ie,ie.next)>=0)return!1;ie=ie.prevZ}for(;fe&&fe.z<=Q;){if(fe!==a.prev&&fe!==a.next&&Lh(C.x,C.y,B.x,B.y,O.x,O.y,fe.x,fe.y)&&Vi(fe.prev,fe,fe.next)>=0)return!1;fe=fe.nextZ}return!0}function t8(a,u,p){var x=a;do{var C=x.prev,B=x.next.next;!Dg(C,B)&&NT(C,x,x.next,B)&&Vp(C,B)&&Vp(B,C)&&(u.push(C.i/p),u.push(x.i/p),u.push(B.i/p),jp(x),jp(x.next),x=a=B),x=x.next}while(x!==a);return Cu(x)}function r8(a,u,p,x,C,B){var O=a;do{for(var k=O.next.next;k!==O.prev;){if(O.i!==k.i&&a8(O,k)){var j=UT(O,k);return O=Cu(O,O.next),j=Cu(j,j.next),zp(O,u,p,x,C,B),void zp(j,u,p,x,C,B)}k=k.next}O=O.next}while(O!==a)}function n8(a,u){return a.x-u.x}function i8(a,u){if(u=(function(x,C){var B,O=C,k=x.x,j=x.y,J=-1/0;do{if(j<=O.y&&j>=O.next.y&&O.next.y!==O.y){var Q=O.x+(j-O.y)*(O.next.x-O.x)/(O.next.y-O.y);if(Q<=k&&Q>J){if(J=Q,Q===k){if(j===O.y)return O;if(j===O.next.y)return O.next}B=O.x<O.next.x?O:O.next}}O=O.next}while(O!==C);if(!B)return null;if(k===J)return B;var ie,fe=B,_e=B.x,ke=B.y,Ne=1/0;O=B;do k>=O.x&&O.x>=_e&&k!==O.x&&Lh(j<ke?k:J,j,_e,ke,j<ke?J:k,j,O.x,O.y)&&(ie=Math.abs(j-O.y)/(k-O.x),Vp(O,x)&&(ie<Ne||ie===Ne&&(O.x>B.x||O.x===B.x&&s8(B,O)))&&(B=O,Ne=ie)),O=O.next;while(O!==fe);return B})(a,u)){var p=UT(u,a);Cu(u,u.next),Cu(p,p.next)}}function s8(a,u){return Vi(a.prev,a,u.prev)<0&&Vi(u.next,a,a.next)<0}function Ey(a,u,p,x,C){return(a=1431655765&((a=858993459&((a=252645135&((a=16711935&((a=32767*(a-p)*C)|a<<8))|a<<4))|a<<2))|a<<1))|(u=1431655765&((u=858993459&((u=252645135&((u=16711935&((u=32767*(u-x)*C)|u<<8))|u<<4))|u<<2))|u<<1))<<1}function o8(a){var u=a,p=a;do(u.x<p.x||u.x===p.x&&u.y<p.y)&&(p=u),u=u.next;while(u!==a);return p}function Lh(a,u,p,x,C,B,O,k){return(C-O)*(u-k)-(a-O)*(B-k)>=0&&(a-O)*(x-k)-(p-O)*(u-k)>=0&&(p-O)*(B-k)-(C-O)*(x-k)>=0}function a8(a,u){return a.next.i!==u.i&&a.prev.i!==u.i&&!(function(p,x){var C=p;do{if(C.i!==p.i&&C.next.i!==p.i&&C.i!==x.i&&C.next.i!==x.i&&NT(C,C.next,p,x))return!0;C=C.next}while(C!==p);return!1})(a,u)&&(Vp(a,u)&&Vp(u,a)&&(function(p,x){var C=p,B=!1,O=(p.x+x.x)/2,k=(p.y+x.y)/2;do C.y>k!=C.next.y>k&&C.next.y!==C.y&&O<(C.next.x-C.x)*(k-C.y)/(C.next.y-C.y)+C.x&&(B=!B),C=C.next;while(C!==p);return B})(a,u)&&(Vi(a.prev,a,u.prev)||Vi(a,u.prev,u))||Dg(a,u)&&Vi(a.prev,a,a.next)>0&&Vi(u.prev,u,u.next)>0)}function Vi(a,u,p){return(u.y-a.y)*(p.x-u.x)-(u.x-a.x)*(p.y-u.y)}function Dg(a,u){return a.x===u.x&&a.y===u.y}function NT(a,u,p,x){var C=Lg(Vi(a,u,p)),B=Lg(Vi(a,u,x)),O=Lg(Vi(p,x,a)),k=Lg(Vi(p,x,u));return C!==B&&O!==k||!(C!==0||!Fg(a,p,u))||!(B!==0||!Fg(a,x,u))||!(O!==0||!Fg(p,a,x))||!(k!==0||!Fg(p,u,x))}
vendor: 4,214 bytes, line 2097
2097function Fg(a,u,p){return u.x<=Math.max(a.x,p.x)&&u.x>=Math.min(a.x,p.x)&&u.y<=Math.max(a.y,p.y)&&u.y>=Math.min(a.y,p.y)}function Lg(a){return a>0?1:a<0?-1:0}function Vp(a,u){return Vi(a.prev,a,a.next)<0?Vi(a,u,a.next)>=0&&Vi(a,a.prev,u)>=0:Vi(a,u,a.prev)<0||Vi(a,a.next,u)<0}function UT(a,u){var p=new Cy(a.i,a.x,a.y),x=new Cy(u.i,u.x,u.y),C=a.next,B=u.prev;return a.next=u,u.prev=a,p.next=C,C.prev=p,x.next=p,p.prev=x,B.next=x,x.prev=B,x}function zT(a,u,p,x){var C=new Cy(a,u,p);return x?(C.next=x.next,C.prev=x,x.next.prev=C,x.next=C):(C.prev=C,C.next=C),C}function jp(a){a.next.prev=a.prev,a.prev.next=a.next,a.prevZ&&(a.prevZ.nextZ=a.nextZ),a.nextZ&&(a.nextZ.prevZ=a.prevZ)}function Cy(a,u,p){this.i=a,this.x=u,this.y=p,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Sy(a,u,p,x){for(var C=0,B=u,O=p-x;B<p;B+=x)C+=(a[O]-a[B])*(a[B+1]+a[O+1]),O=B;return C}function l8(a,u,p,x,C){(function B(O,k,j,J,Q){for(;J>j;){if(J-j>600){var ie=J-j+1,fe=k-j+1,_e=Math.log(ie),ke=.5*Math.exp(2*_e/3),Ne=.5*Math.sqrt(_e*ke*(ie-ke)/ie)*(fe-ie/2<0?-1:1);B(O,k,Math.max(j,Math.floor(k-fe*ke/ie+Ne)),Math.min(J,Math.floor(k+(ie-fe)*ke/ie+Ne)),Q)}var He=O[k],je=j,Ke=J;for(Gp(O,j,k),Q(O[J],He)>0&&Gp(O,j,J);je<Ke;){for(Gp(O,je,Ke),je++,Ke--;Q(O[je],He)<0;)je++;for(;Q(O[Ke],He)>0;)Ke--}Q(O[j],He)===0?Gp(O,j,Ke):Gp(O,++Ke,J),Ke<=k&&(j=Ke+1),k<=Ke&&(J=Ke-1)}})(a,u,p,x||a.length-1,C||c8)}function Gp(a,u,p){var x=a[u];a[u]=a[p],a[p]=x}function c8(a,u){return a<u?-1:a>u?1:0}function Iy(a,u){var p=a.length;if(p<=1)return[a];for(var x,C,B=[],O=0;O<p;O++){var k=Qe(a[O]);k!==0&&(a[O].area=Math.abs(k),C===void 0&&(C=k<0),C===k<0?(x&&B.push(x),x=[a[O]]):x.push(a[O]))}if(x&&B.push(x),u>1)for(var j=0;j<B.length;j++)B[j].length<=u||(l8(B[j],u,1,B[j].length-1,u8),B[j]=B[j].slice(0,u));return B}function u8(a,u){return u.area-a.area}function By(a,u,p){for(var x=p.patternDependencies,C=!1,B=0,O=u;B<O.length;B+=1){var k=O[B].paint.get(a+"-pattern");k.isConstant()||(C=!0);var j=k.constantOr(null);j&&(C=!0,x[j.to]=!0,x[j.from]=!0)}return C}function Py(a,u,p,x,C){for(var B=C.patternDependencies,O=0,k=u;O<k.length;O+=1){var j=k[O],J=j.paint.get(a+"-pattern").value;if(J.kind!=="constant"){var Q=J.evaluate({zoom:x-1},p,{},C.availableImages),ie=J.evaluate({zoom:x},p,{},C.availableImages),fe=J.evaluate({zoom:x+1},p,{},C.availableImages);ie=ie&&ie.name?ie.name:ie,fe=fe&&fe.name?fe.name:fe,B[Q=Q&&Q.name?Q.name:Q]=!0,B[ie]=!0,B[fe]=!0,p.patterns[j.id]={min:Q,mid:ie,max:fe}}}return p}Og.deviation=function(a,u,p,x){var C=u&&u.length,B=Math.abs(Sy(a,0,C?u[0]*p:a.length,p));if(C)for(var O=0,k=u.length;O<k;O++)B-=Math.abs(Sy(a,u[O]*p,O<k-1?u[O+1]*p:a.length,p));var j=0;for(O=0;O<x.length;O+=3){var J=x[O]*p,Q=x[O+1]*p,ie=x[O+2]*p;j+=Math.abs((a[J]-a[ie])*(a[Q+1]-a[J+1])-(a[J]-a[Q])*(a[ie+1]-a[J+1]))}return B===0&&j===0?0:Math.abs((j-B)/B)},Og.flatten=function(a){for(var u=a[0][0].length,p={vertices:[],holes:[],dimensions:u},x=0,C=0;C<a.length;C++){for(var B=0;B<a[C].length;B++)for(var O=0;O<u;O++)p.vertices.push(a[C][B][O]);C>0&&p.holes.push(x+=a[C-1].length)}return p},Ty.default=Yk;var sl=function(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map((function(u){return u.id})),this.index=a.index,this.hasPattern=!1,this.patternFeatures=[],this.layoutVertexArray=new Hs,this.indexArray=new ia,this.indexArray2=new S,this.programConfigurations=new Fr(a.layers,a.zoom),this.segments=new Y,this.segments2=new Y,this.stateDependentLayerIds=this.layers.filter((function(u){return u.isStateDependent()})).map((function(u){return u.id}))};sl.prototype.populate=function(a,u,p){this.hasPattern=By("fill",this.layers,u);for(var x=this.layers[0].layout.get("fill-sort-key"),C=[],B=0,O=a;B<O.length;B+=1){var k=O[B],j=k.feature,J=k.id,Q=k.index,ie=k.sourceLayerIndex,fe=this.layers[0]._featureFilter.needGeometry,_e=Ii(j,fe);if(this.layers[0]._featureFilter.filter(new Gr(this.zoom),_e,p)){var ke=x?x.evaluate(_e,{},p,u.availableImages):void 0,Ne={id:J,properties:j.properties,type:j.type,sourceLayerIndex:ie,index:Q,geometry:fe?_e.geometry:yi(j),patterns:{},sortKey:ke};C.push(Ne)}}x&&C.sort((function(Ht,Kt){return Ht.sortKey-Kt.sortKey}
2097));for(var He=0,je=C;He<je.length;He+=1){var Ke=je[He],lt=Ke.geometry,mt=Ke.index,yt=Ke.sourceLayerIndex;if(this.hasPattern){var Ot=Py("fill",this.layers,Ke,this.zoom,u);this.patternFeatures.push(Ot)}else this.addFeature(Ke,lt,mt,p,{});u.featureIndex.insert(a[mt].feature,lt,mt,yt,this.index)}},sl.prototype.update=function(a,u,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,u,this.stateDependentLayers,p)},sl.prototype.addFeatures=function(a,u,p){for(var x=0,C=this.patternFeatures;x<C.length;x+=1){var B=C[x];this.addFeature(B,B.geometry,B.index,u,p)}},sl.prototype.isEmpty=function(){return this.layoutVertexArray.length===0},sl.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},sl.prototype.upload=function(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,Zk),this.indexBuffer=a.createIndexBuffer(this.indexArray),this.indexBuffer2=a.createIndexBuffer(this.indexArray2)),this.programConfigurations.upload(a),this.uploaded=!0},sl.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.indexBuffer2.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.segments2.destroy())},sl.prototype.addFeature=function(a,u,p,x,C){for(var B=0,O=Iy(u,500);B<O.length;B+=1){for(var k=O[B],j=0,J=0,Q=k;J<Q.length;J+=1)j+=Q[J].length;for(var ie=this.segments.prepareSegment(j,this.layoutVertexArray,this.indexArray),fe=ie.vertexLength,_e=[],ke=[],Ne=0,He=k;Ne<He.length;Ne+=1){var je=He[Ne];if(je.length!==0){je!==k[0]&&ke.push(_e.length/2);var Ke=this.segments2.prepareSegment(je.length,this.layoutVertexArray,this.indexArray2),lt=Ke.vertexLength;this.layoutVertexArray.emplaceBack(je[0].x,je[0].y),this.indexArray2.emplaceBack(lt+je.length-1,lt),_e.push(je[0].x),_e.push(je[0].y);for(var mt=1;mt<je.length;mt++)this.layoutVertexArray.emplaceBack(je[mt].x,je[mt].y),this.indexArray2.emplaceBack(lt+mt-1,lt+mt),_e.push(je[mt].x),_e.push(je[mt].y);Ke.vertexLength+=je.length,Ke.primitiveLength+=je.length}}for(var yt=Ty(_e,ke),Ot=0;Ot<yt.length;Ot+=3)this.indexArray.emplaceBack(fe+yt[Ot],fe+yt[Ot+1],fe+yt[Ot+2]);ie.vertexLength+=j,ie.primitiveLength+=yt.length/3}this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,p,C,x)},or("FillBucket",sl,{omit:["layers","patternFeatures"]});var f8=new qn({"fill-sort-key":new ur(ae.layout_fill["fill-sort-key"])}),h8={paint:new qn({"fill-antialias":new wr(ae.paint_fill["fill-antialias"]),"fill-opacity":new ur(ae.paint_fill["fill-opacity"]),"fill-color":new ur(ae.paint_fill["fill-color"]),"fill-outline-color":new ur(ae.paint_fill["fill-outline-color"]),"fill-translate":new wr(ae.paint_fill["fill-translate"]),"fill-translate-anchor":new wr(ae.paint_fill["fill-translate-anchor"]),"fill-pattern":new bu(ae.paint_fill["fill-pattern"])}),layout:f8},d8=(function(a){function u(p){a.call(this,p,h8)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.recalculate=function(p,x){a.prototype.recalculate.call(this,p,x);var C=this.paint._values["fill-outline-color"];C.value.kind==="constant"&&C.value.value===void 0&&(this.paint._values["fill-outline-color"]=this.paint._values["fill-color"])},u.prototype.createBucket=function(p){return new sl(p)},u.prototype.queryRadius=function(){return Zi(this.paint.get("fill-translate"))},u.prototype.queryIntersectsFeature=function(p,x,C,B,O,k,j){return sa(il(p,this.paint.get("fill-translate"),this.paint.get("fill-translate-anchor"),k.angle,j),B)},u.prototype.isTileClipped=function(){return!0},u})(zr),p8=ki([{name:"a_pos",components:2,type:"Int16"},{name:"a_normal_ed",components:4,type:"Int16"}],4).members,VT=kh;function kh(a,u,p,x,C){this.properties={},this.extent=p,this.type=0,this._pbf=a,this._geometry=-1,this._keys=x,this._values=C,a.readFields(A8,this,u)}function A8(a,u,p){a==1?u.id=p.readVarint():a==2?(function(x,C){for(var B=x.readVarint()+x.pos;x.pos<B;){var O=C._keys[x.readVarint()],k=C._values[x.readVarint()];C.properties[O]=k}})(p,u):a==3?u.type=p.readVarint():a==4&&(u._geometry=p.pos)}function g8(a){for(var u,p,x=0,C=0,B=a.length,O=B-1;C<B;O=C++)x+=((p=a[O]).x-(u=a[C]).x)*(u.y+p.y);return x}kh.types=["Unknown","Point","LineString","Polygon"],kh.prototype.loadGeometry=function(){var a=this._pbf;a.pos=this._geometry;for(var u,p=a.readVarint()+a.pos,x=1,C=0,B=0,O=0,k=[];a.pos<p;){if(C<=0){var j=a.readVarint();x=7&j,C=j>>3}if(C--,x===1||x===2)B+=a.readSVarint(),O+=a.readSVarint(),x===1&&(u&&k.push(u),u=[]),u.push(new v(B,O));else{if(x!==7)throw new Error("unknown command "+x);u&&u.push(u[0].clone())}}return u&&k.push(u),k},kh.prototype.bbox=function(){var a=this._pbf;a.pos=this._geometry;for(var u=a.readVarint()+a.pos,p=1,x=0,C=0,B=0,O=1/0,k=-1/0,j=1/0,J=-1/0;a.pos<u;){if(x<=0){var Q=a.readVarint();p=7&Q,x=Q>>3}if(x--,p===1||p===2)(C+=a.readSVarint())<O&&(O=C),C>k&&(k=C),(B+=a.readSVarint())<j&&(j=B),B>J&&(J=B);else if(p!==7)throw new Error("unknown command "+p)}return[O,j,k,J]},kh.prototype.toGeoJSON=function(a,u,p){var x,C,B=this.extent*Math.pow(2,p),O=this.extent*a,k=this.extent*u,j=this.loadGeometry(),J=kh.types[this.type];function Q(_e){for(var ke=0;ke<_e.length;ke++){var Ne=_e[ke];_e[ke]=[360*(Ne.x+O)/B-180,360/Math.PI*Math.atan(Math.exp((180-360*(Ne.y+k)/B)*Math.PI/180)
2097)-90]}}switch(this.type){case 1:var ie=[];for(x=0;x<j.length;x++)ie[x]=j[x][0];Q(j=ie);break;case 2:for(x=0;x<j.length;x++)Q(j[x]);break;case 3:for(j=(function(_e){var ke=_e.length;if(ke<=1)return[_e];for(var Ne,He,je=[],Ke=0;Ke<ke;Ke++){var lt=g8(_e[Ke]);lt!==0&&(He===void 0&&(He=lt<0),He===lt<0?(Ne&&je.push(Ne),Ne=[_e[Ke]]):Ne.push(_e[Ke]))}return Ne&&je.push(Ne),je})(j),x=0;x<j.length;x++)for(C=0;C<j[x].length;C++)Q(j[x][C])}j.length===1?j=j[0]:J="Multi"+J;var fe={type:"Feature",geometry:{type:J,coordinates:j},properties:this.properties};return"id"in this&&(fe.id=this.id),fe};var jT=GT;function GT(a,u){this.version=1,this.name=null,this.extent=4096,this.length=0,this._pbf=a,this._keys=[],this._values=[],this._features=[],a.readFields(m8,this,u),this.length=this._features.length}function m8(a,u,p){a===15?u.version=p.readVarint():a===1?u.name=p.readString():a===5?u.extent=p.readVarint():a===2?u._features.push(p.pos):a===3?u._keys.push(p.readString()):a===4&&u._values.push((function(x){for(var C=null,B=x.readVarint()+x.pos;x.pos<B;){var O=x.readVarint()>>3;C=O===1?x.readString():O===2?x.readFloat():O===3?x.readDouble():O===4?x.readVarint64():O===5?x.readVarint():O===6?x.readSVarint():O===7?x.readBoolean():null}return C})(p))}function _8(a,u,p){if(a===3){var x=new jT(p,p.readVarint()+p.pos);x.length&&(u[x.name]=x)}}GT.prototype.feature=function(a){if(a<0||a>=this._features.length)throw new Error("feature index out of bounds");this._pbf.pos=this._features[a];var u=this._pbf.readVarint()+this._pbf.pos;return new VT(this._pbf,u,this.extent,this._keys,this._values)};var Nh={VectorTile:function(a,u){this.layers=a.readFields(_8,{},u)},VectorTileFeature:VT,VectorTileLayer:jT},y8=Nh.VectorTileFeature.types,My=Math.pow(2,13);function Hp(a,u,p,x,C,B,O,k){a.emplaceBack(u,p,2*Math.floor(x*My)+O,C*My*2,B*My*2,Math.round(k))}var ol=function(a){this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map((function(u){return u.id})),this.index=a.index,this.hasPattern=!1,this.layoutVertexArray=new di,this.indexArray=new ia,this.programConfigurations=new Fr(a.layers,a.zoom),this.segments=new Y,this.stateDependentLayerIds=this.layers.filter((function(u){return u.isStateDependent()})).map((function(u){return u.id}))};function v8(a,u){return a.x===u.x&&(a.x<0||a.x>8192)||a.y===u.y&&(a.y<0||a.y>8192)}ol.prototype.populate=function(a,u,p){this.features=[],this.hasPattern=By("fill-extrusion",this.layers,u);for(var x=0,C=a;x<C.length;x+=1){var B=C[x],O=B.feature,k=B.id,j=B.index,J=B.sourceLayerIndex,Q=this.layers[0]._featureFilter.needGeometry,ie=Ii(O,Q);if(this.layers[0]._featureFilter.filter(new Gr(this.zoom),ie,p)){var fe={id:k,sourceLayerIndex:J,index:j,geometry:Q?ie.geometry:yi(O),properties:O.properties,type:O.type,patterns:{}};this.hasPattern?this.features.push(Py("fill-extrusion",this.layers,fe,this.zoom,u)):this.addFeature(fe,fe.geometry,j,p,{}),u.featureIndex.insert(O,fe.geometry,j,J,this.index,!0)}}},ol.prototype.addFeatures=function(a,u,p){for(var x=0,C=this.features;x<C.length;x+=1){var B=C[x];this.addFeature(B,B.geometry,B.index,u,p)}},ol.prototype.update=function(a,u,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,u,this.stateDependentLayers,p)},ol.prototype.isEmpty=function(){return this.layoutVertexArray.length===0},ol.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},ol.prototype.upload=function(a){this.uploaded||(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,p8),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0},ol.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},ol.prototype.addFeature=function(a,u,p,x,C){for(var B=0,O=Iy(u,500);B<O.length;B+=1){for(var k=O[B],j=0,J=0,Q=k;J<Q.length;J+=1)j+=Q[J].length;for(var ie=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray),fe=0,_e=k;fe<_e.length;fe+=1){var ke=_e[fe];
2097if(ke.length!==0&&!((hn=ke).every((function(Kr){return Kr.x<0}))||hn.every((function(Kr){return Kr.x>8192}))||hn.every((function(Kr){return Kr.y<0}))||hn.every((function(Kr){return Kr.y>8192}))))for(var Ne=0,He=0;He<ke.length;He++){var je=ke[He];if(He>=1){var Ke=ke[He-1];if(!v8(je,Ke)){ie.vertexLength+4>Y.MAX_VERTEX_ARRAY_LENGTH&&(ie=this.segments.prepareSegment(4,this.layoutVertexArray,this.indexArray));var lt=je.sub(Ke)._perp()._unit(),mt=Ke.dist(je);Ne+mt>32768&&(Ne=0),Hp(this.layoutVertexArray,je.x,je.y,lt.x,lt.y,0,0,Ne),Hp(this.layoutVertexArray,je.x,je.y,lt.x,lt.y,0,1,Ne),Hp(this.layoutVertexArray,Ke.x,Ke.y,lt.x,lt.y,0,0,Ne+=mt),Hp(this.layoutVertexArray,Ke.x,Ke.y,lt.x,lt.y,0,1,Ne);var yt=ie.vertexLength;this.indexArray.emplaceBack(yt,yt+2,yt+1),this.indexArray.emplaceBack(yt+1,yt+2,yt+3),ie.vertexLength+=4,ie.primitiveLength+=2}}}}if(ie.vertexLength+j>Y.MAX_VERTEX_ARRAY_LENGTH&&(ie=this.segments.prepareSegment(j,this.layoutVertexArray,this.indexArray)),y8[a.type]==="Polygon"){for(var Ot=[],Ht=[],Kt=ie.vertexLength,xr=0,nr=k;xr<nr.length;xr+=1){var Sr=nr[xr];if(Sr.length!==0){Sr!==k[0]&&Ht.push(Ot.length/2);for(var ir=0;ir<Sr.length;ir++){var sn=Sr[ir];Hp(this.layoutVertexArray,sn.x,sn.y,0,0,1,1,0),Ot.push(sn.x),Ot.push(sn.y)}}}for(var Lr=Ty(Ot,Ht),hr=0;hr<Lr.length;hr+=3)this.indexArray.emplaceBack(Kt+Lr[hr],Kt+Lr[hr+2],Kt+Lr[hr+1]);ie.primitiveLength+=Lr.length/3,ie.vertexLength+=j}}var hn;this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,p,C,x)},or("FillExtrusionBucket",ol,{omit:["layers","features"]});var b8={paint:new qn({"fill-extrusion-opacity":new wr(ae["paint_fill-extrusion"]["fill-extrusion-opacity"]),"fill-extrusion-color":new ur(ae["paint_fill-extrusion"]["fill-extrusion-color"]),"fill-extrusion-translate":new wr(ae["paint_fill-extrusion"]["fill-extrusion-translate"]),"fill-extrusion-translate-anchor":new wr(ae["paint_fill-extrusion"]["fill-extrusion-translate-anchor"]),"fill-extrusion-pattern":new bu(ae["paint_fill-extrusion"]["fill-extrusion-pattern"]),"fill-extrusion-height":new ur(ae["paint_fill-extrusion"]["fill-extrusion-height"]),"fill-extrusion-base":new ur(ae["paint_fill-extrusion"]["fill-extrusion-base"]),"fill-extrusion-vertical-gradient":new wr(ae["paint_fill-extrusion"]["fill-extrusion-vertical-gradient"])})},x8=(function(a){function u(p){a.call(this,p,b8)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.createBucket=function(p){return new ol(p)},u.prototype.queryRadius=function(){return Zi(this.paint.get("fill-extrusion-translate"))},u.prototype.is3D=function(){return!0},u.prototype.queryIntersectsFeature=function(p,x,C,B,O,k,j,J){var Q=il(p,this.paint.get("fill-extrusion-translate"),this.paint.get("fill-extrusion-translate-anchor"),k.angle,j),ie=this.paint.get("fill-extrusion-height").evaluate(x,C),fe=this.paint.get("fill-extrusion-base").evaluate(x,C),_e=(function(Ne,He,je,Ke){for(var lt=[],mt=0,yt=Ne;mt<yt.length;mt+=1){var Ot=yt[mt],Ht=[Ot.x,Ot.y,0,1];Dh(Ht,Ht,He),lt.push(new v(Ht[0]/Ht[3],Ht[1]/Ht[3]))}return lt})(Q,J),ke=(function(Ne,He,je,Ke){for(var lt=[],mt=[],yt=Ke[8]*He,Ot=Ke[9]*He,Ht=Ke[10]*He,Kt=Ke[11]*He,xr=Ke[8]*je,nr=Ke[9]*je,Sr=Ke[10]*je,ir=Ke[11]*je,sn=0,Lr=Ne;sn<Lr.length;sn+=1){for(var hr=[],hn=[],Kr=0,bn=Lr[sn];Kr<bn.length;Kr+=1){var Ir=bn[Kr],Tn=Ir.x,ii=Ir.y,Ei=Ke[0]*Tn+Ke[4]*ii+Ke[12],vi=Ke[1]*Tn+Ke[5]*ii+Ke[13],si=Ke[2]*Tn+Ke[6]*ii+Ke[14],Ci=Ke[3]*Tn+Ke[7]*ii+Ke[15],Yi=si+Ht,Qi=Ci+Kt,Os=Ei+xr,cs=vi+nr,Ds=si+Sr,Bi=Ci+ir,us=new v((Ei+yt)/Qi,(vi+Ot)/Qi);us.z=Yi/Qi,hr.push(us);var gn=new v(Os/Bi,cs/Bi);gn.z=Ds/Bi,hn.push(gn)}lt.push(hr),mt.push(hn)}return[lt,mt]})(B,fe,ie,J);return(function(Ne,He,je){var Ke=1/0;sa(je,He)&&(Ke=HT(je,He[0]));for(var lt=0;lt<He.length;lt++)for(var mt=He[lt],yt=Ne[lt],Ot=0;Ot<mt.length-1;Ot++){var Ht=mt[Ot],Kt=[Ht,mt[Ot+1],yt[Ot+1],yt[Ot],Ht];jl(je,Kt)&&(Ke=Math.min(Ke,HT(je,Kt)))}return Ke!==1/0&&Ke})(ke[0],ke[1],_e)},u})(zr);function Wp(a,u){return a.x*u.x+a.y*u.y}function HT(a,u){if(a.length===1){for(var p,x=0,C=u[x++];!p||C.equals(p);)if(!(p=u[x++]))return 1/0;for(;x<u.length;x++){var B=u[x],O=a[0],k=p.sub(C),j=B.sub(C),J=O.sub(C),Q=Wp(k,k),ie=Wp(k,j),fe=Wp(j,j),_e=Wp(J,k),ke=Wp(J,j
vendor: 4,705 bytes, line 2097
2097),Ne=Q*fe-ie*ie,He=(fe*_e-ie*ke)/Ne,je=(Q*ke-ie*_e)/Ne,Ke=C.z*(1-He-je)+p.z*He+B.z*je;if(isFinite(Ke))return Ke}return 1/0}for(var lt=1/0,mt=0,yt=u;mt<yt.length;mt+=1)lt=Math.min(lt,yt[mt].z);return lt}var w8=ki([{name:"a_pos_normal",components:2,type:"Int16"},{name:"a_data",components:4,type:"Uint8"}],4).members,T8=ki([{name:"a_uv_x",components:1,type:"Float32"},{name:"a_split_index",components:1,type:"Float32"}]).members,E8=Nh.VectorTileFeature.types,C8=Math.cos(Math.PI/180*37.5),WT=Math.pow(2,14)/.5,Xs=function(a){var u=this;this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map((function(p){return p.id})),this.index=a.index,this.hasPattern=!1,this.patternFeatures=[],this.lineClipsArray=[],this.gradients={},this.layers.forEach((function(p){u.gradients[p.id]={}})),this.layoutVertexArray=new os,this.layoutVertexArray2=new To,this.indexArray=new ia,this.programConfigurations=new Fr(a.layers,a.zoom),this.segments=new Y,this.maxLineLength=0,this.stateDependentLayerIds=this.layers.filter((function(p){return p.isStateDependent()})).map((function(p){return p.id}))};Xs.prototype.populate=function(a,u,p){this.hasPattern=By("line",this.layers,u);for(var x=this.layers[0].layout.get("line-sort-key"),C=[],B=0,O=a;B<O.length;B+=1){var k=O[B],j=k.feature,J=k.id,Q=k.index,ie=k.sourceLayerIndex,fe=this.layers[0]._featureFilter.needGeometry,_e=Ii(j,fe);if(this.layers[0]._featureFilter.filter(new Gr(this.zoom),_e,p)){var ke=x?x.evaluate(_e,{},p):void 0,Ne={id:J,properties:j.properties,type:j.type,sourceLayerIndex:ie,index:Q,geometry:fe?_e.geometry:yi(j),patterns:{},sortKey:ke};C.push(Ne)}}x&&C.sort((function(Ht,Kt){return Ht.sortKey-Kt.sortKey}));for(var He=0,je=C;He<je.length;He+=1){var Ke=je[He],lt=Ke.geometry,mt=Ke.index,yt=Ke.sourceLayerIndex;if(this.hasPattern){var Ot=Py("line",this.layers,Ke,this.zoom,u);this.patternFeatures.push(Ot)}else this.addFeature(Ke,lt,mt,p,{});u.featureIndex.insert(a[mt].feature,lt,mt,yt,this.index)}},Xs.prototype.update=function(a,u,p){this.stateDependentLayers.length&&this.programConfigurations.updatePaintArrays(a,u,this.stateDependentLayers,p)},Xs.prototype.addFeatures=function(a,u,p){for(var x=0,C=this.patternFeatures;x<C.length;x+=1){var B=C[x];this.addFeature(B,B.geometry,B.index,u,p)}},Xs.prototype.isEmpty=function(){return this.layoutVertexArray.length===0},Xs.prototype.uploadPending=function(){return!this.uploaded||this.programConfigurations.needsUpload},Xs.prototype.upload=function(a){this.uploaded||(this.layoutVertexArray2.length!==0&&(this.layoutVertexBuffer2=a.createVertexBuffer(this.layoutVertexArray2,T8)),this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,w8),this.indexBuffer=a.createIndexBuffer(this.indexArray)),this.programConfigurations.upload(a),this.uploaded=!0},Xs.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy())},Xs.prototype.lineFeatureClips=function(a){if(a.properties&&a.properties.hasOwnProperty("mapbox_clip_start")&&a.properties.hasOwnProperty("mapbox_clip_end"))return{start:+a.properties.mapbox_clip_start,end:+a.properties.mapbox_clip_end}},Xs.prototype.addFeature=function(a,u,p,x,C){var B=this.layers[0].layout,O=B.get("line-join").evaluate(a,{}),k=B.get("line-cap"),j=B.get("line-miter-limit"),J=B.get("line-round-limit");this.lineClips=this.lineFeatureClips(a);for(var Q=0,ie=u;Q<ie.length;Q+=1)this.addLine(ie[Q],a,O,k,j,J);this.programConfigurations.populatePaintArrays(this.layoutVertexArray.length,a,p,C,x)},Xs.prototype.addLine=function(a,u,p,x,C,B){if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.lineClips){this.lineClipsArray.push(this.lineClips);for(var O=0;O<a.length-1;O++)this.totalDistance+=a[O].dist(a[O+1]);this.updateScaledDistance(),this.maxLineLength=Math.max(this.maxLineLength,this.totalDistance)}for(var k=E8[u.type]==="Polygon",j=a.length;j>=2&&a[j-1].equals(a[j-2]);)j--;for(var J=0;J<j-1&&a[J].equals(a[J+1]);)J++;if(!(j<(k?3:2))){p==="bevel"&&(C=1.05);var Q,ie=this.overscaling<=16?122880/(512*this.overscaling):0,fe=this.segments.prepareSegment(10*j,this.layoutVertexArray,this.indexArray),_e=void 0,ke=void 0,Ne=void 0,He=void 0;this.e1=this.e2=-1,k&&(He=a[J].sub(Q=a[j-2])._unit()._perp());for(var je=J;je<j;je++)if(!(ke=je===j-1?k?a[J+1]:void 0:a[je+1])||!a[je].equals(ke)){He&&(Ne=He),Q&&(_e=Q),Q=a[je],He=ke?ke.sub(Q)._unit()._perp():Ne;var Ke=(Ne=Ne||He).add(He);Ke.x===0&&Ke.y===0||Ke._unit();var lt=Ne.x*He.x+Ne.y*He.y,mt=Ke.x*He.x+Ke.y*He.y,yt=mt!==0?1/mt:1/0,Ot=2*Math.sqrt(2-2*mt),Ht=mt<C8&&_e&&ke,Kt=Ne.x*He.y-Ne.y*He.x>0;if(Ht&&je>J){var xr=Q.dist(_e);if(xr>
20972*ie){var nr=Q.sub(Q.sub(_e)._mult(ie/xr)._round());this.updateDistance(_e,nr),this.addCurrentVertex(nr,Ne,0,0,fe),_e=nr}}var Sr=_e&&ke,ir=Sr?p:k?"butt":x;if(Sr&&ir==="round"&&(yt<B?ir="miter":yt<=2&&(ir="fakeround")),ir==="miter"&&yt>C&&(ir="bevel"),ir==="bevel"&&(yt>2&&(ir="flipbevel"),yt<C&&(ir="miter")),_e&&this.updateDistance(_e,Q),ir==="miter")Ke._mult(yt),this.addCurrentVertex(Q,Ke,0,0,fe);else if(ir==="flipbevel"){if(yt>100)Ke=He.mult(-1);else{var sn=yt*Ne.add(He).mag()/Ne.sub(He).mag();Ke._perp()._mult(sn*(Kt?-1:1))}this.addCurrentVertex(Q,Ke,0,0,fe),this.addCurrentVertex(Q,Ke.mult(-1),0,0,fe)}else if(ir==="bevel"||ir==="fakeround"){var Lr=-Math.sqrt(yt*yt-1),hr=Kt?Lr:0,hn=Kt?0:Lr;if(_e&&this.addCurrentVertex(Q,Ne,hr,hn,fe),ir==="fakeround")for(var Kr=Math.round(180*Ot/Math.PI/20),bn=1;bn<Kr;bn++){var Ir=bn/Kr;if(Ir!==.5){var Tn=Ir-.5;Ir+=Ir*Tn*(Ir-1)*((1.0904+lt*(lt*(3.55645-1.43519*lt)-3.2452))*Tn*Tn+(.848013+lt*(.215638*lt-1.06021)))}var ii=He.sub(Ne)._mult(Ir)._add(Ne)._unit()._mult(Kt?-1:1);this.addHalfVertex(Q,ii.x,ii.y,!1,Kt,0,fe)}ke&&this.addCurrentVertex(Q,He,-hr,-hn,fe)}else if(ir==="butt")this.addCurrentVertex(Q,Ke,0,0,fe);else if(ir==="square"){var Ei=_e?1:-1;this.addCurrentVertex(Q,Ke,Ei,Ei,fe)}else ir==="round"&&(_e&&(this.addCurrentVertex(Q,Ne,0,0,fe),this.addCurrentVertex(Q,Ne,1,1,fe,!0)),ke&&(this.addCurrentVertex(Q,He,-1,-1,fe,!0),this.addCurrentVertex(Q,He,0,0,fe)));if(Ht&&je<j-1){var vi=Q.dist(ke);if(vi>2*ie){var si=Q.add(ke.sub(Q)._mult(ie/vi)._round());this.updateDistance(Q,si),this.addCurrentVertex(si,He,0,0,fe),Q=si}}}}},Xs.prototype.addCurrentVertex=function(a,u,p,x,C,B){B===void 0&&(B=!1);var O=u.y*x-u.x,k=-u.y-u.x*x;this.addHalfVertex(a,u.x+u.y*p,u.y-u.x*p,B,!1,p,C),this.addHalfVertex(a,O,k,B,!0,-
2097x,C),this.distance>WT/2&&this.totalDistance===0&&(this.distance=0,this.addCurrentVertex(a,u,p,x,C,B))},Xs.prototype.addHalfVertex=function(a,u,p,x,C,B,O){var k=.5*(this.lineClips?this.scaledDistance*(WT-1):this.scaledDistance);this.layoutVertexArray.emplaceBack((a.x<<1)+(x?1:0),(a.y<<1)+(C?1:0),Math.round(63*u)+128,Math.round(63*p)+128,1+(B===0?0:B<0?-1:1)|(63&k)<<2,k>>6),this.lineClips&&this.layoutVertexArray2.emplaceBack((this.scaledDistance-this.lineClips.start)/(this.lineClips.end-this.lineClips.start),this.lineClipsArray.length);var j=O.vertexLength++;this.e1>=0&&this.e2>=0&&(this.indexArray.emplaceBack(this.e1,this.e2,j),O.primitiveLength++),C?this.e2=j:this.e1=j},Xs.prototype.updateScaledDistance=function(){this.scaledDistance=this.lineClips?this.lineClips.start+(this.lineClips.end-this.lineClips.start)*this.distance/this.totalDistance:this.distance},Xs.prototype.updateDistance=function(a,u){this.distance+=a.dist(u),this.updateScaledDistance()},or("LineBucket",Xs,{omit:["layers","patternFeatures"]});var S8=new qn({"line-cap":new wr(ae.layout_line["line-cap"]),"line-join":new ur(ae.layout_line["line-join"]),"line-miter-limit":new wr(ae.layout_line["line-miter-limit"]),"line-round-limit":new wr(ae.layout_line["line-round-limit"]),"line-sort-key":new ur(ae.layout_line["line-sort-key"])}),$T={paint:new qn({"line-opacity":new ur(ae.paint_line["line-opacity"]),"line-color":new ur(ae.paint_line["line-color"]),"line-translate":new wr(ae.paint_line["line-translate"]),"line-translate-anchor":new wr(ae.paint_line["line-translate-anchor"]),"line-width":new ur(ae.paint_line["line-width"]),"line-gap-width":new ur(ae.paint_line["line-gap-width"]),"line-offset":new ur(ae.paint_line["line-offset"]),"line-blur":new ur(ae.paint_line["line-blur"]),"line-dasharray":new fs(ae.paint_line["line-dasharray"]),"line-pattern":new bu(ae.paint_line["line-pattern"]),"line-gradient":new Ji(ae.paint_line["line-gradient"])}),layout:S8},XT=new((function(a){function u(){a.apply(this,arguments)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.possiblyEvaluate=function(p,x){return x=new Gr(Math.floor(x.zoom),{now:x.now,fadeDuration:x.fadeDuration,zoomHistory:x.zoomHistory,transition:x.transition}),a.prototype.possiblyEvaluate.call(this,p,x)},u.prototype.evaluate=function(p,x,C,B){return x=G({},x,{zoom:Math.floor(x.zoom)}),a.prototype.evaluate.call(this,p,x,C,B)},u})(ur))($T.paint.properties["line-width"].specification);XT.useIntegerZoom=!0;var I8=(function(a){function u(p){a.call(this,p,$T),this.gradientVersion=0}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype._handleSpecialPaintPropertyUpdate=function(p){p==="line-gradient"&&(this.stepInterpolant=this._transitionablePaint._values["line-gradient"].value.expression._styleExpression.expression instanceof Vn,this.gradientVersion=(this.gradientVersion+1)%F)},u.prototype.gradientExpression=function(){return this._transitionablePaint._values["line-gradient"].value.expression},u.prototype.recalculate=function(p,x){a.prototype.recalculate.call(this,p,x),this.paint._values["line-floorwidth"]=XT.possiblyEvaluate(this._transitioningPaint._values["line-width"].value,p)},u.prototype.createBucket=function(p){return new Xs(p)},u.prototype.queryRadius=function(p){var x=p,C=qT(Pa("line-width",this,x),Pa("line-gap-width",this,x)),B=Pa("line-offset",this,x);return C/2+Math.abs(B)+Zi(this.paint.get("line-translate"))},u.prototype.queryIntersectsFeature=function(p,x,C,B,O,k,j){var J=il(p,this.paint.get("line-translate"),this.paint.get("line-translate-anchor"),k.angle,j),Q=j/2*qT(this.paint.get("line-width").evaluate(x,C),this.paint.get("line-gap-width").evaluate(x,C)),ie=this.paint.get("line-offset").evaluate(x,C);return ie&&(B=(function(fe,_e){for(var ke=[],Ne=new v(0,0),He=0;He<fe.length;He++){for(var je=fe[He],Ke=[],lt=0;lt<je.length;lt++){var mt=je[lt],yt=je[lt+1],Ot=lt===0?Ne:mt.sub(je[lt-1])._unit()._perp(),Ht=lt===je.length-1?Ne:yt.sub(mt)._unit()._perp(),Kt=Ot._add(Ht)._unit();Kt._mult(1/(Kt.x*Ht.x+Kt.y*Ht.y)),Ke.push(Kt._mult(_e)._add(mt))}ke.push(Ke)}return ke})(B,ie*j)),(function(fe,_e,ke){for(var Ne=0;Ne<_e.length;Ne++){var He=_e[Ne];if(fe.length>=3){for(var je=0;je<He.length;je++)if(Ba(fe,He[je]))return!0}if(Fo(fe,He,ke))return!0}return!1})(J,B,Q)},u.prototype.isTileClipped=function(){return!0},u})(zr);function qT(a,u){return u>0?u+2*a:a}var B8=ki([{name:"a_pos_offset",components:4,type:"Int16"},{name:"a_data",components:4,type:"Uint16"},{name:"a_pixeloffset",components:4,type:"Int16"}],4),P8=ki([{name:"a_projected_pos",components:3,type:"Float32"}],4),M8=(ki([{name:"a_fade_opacity",components:1,type:"Uint32"}],4),ki([{name:"a_placed",components:2,type:"Uint8"},{name:"a_shift",components:2,type:"Float32"}])),JT=(ki([{type:"Int16",name:"anchorPointX"},{type:"Int16",name:"anchorPointY"},{type:"Int16",name:"x1"},{type:"Int16",name:"y1"},{type:"Int16",name:"x2"},{type:"Int16",name:"y2"},{type:"Uint32",name:"featureIndex"},{type:"Uint16",name:"sourceLayerIndex"},{type:"Uint16",name:"bucketIndex"}]),ki([{name:"a_pos",components:2,type:"Int16"},{name:"a_anchor_pos",components:2,type:"Int16"},{name:"a_extrude",components:2,type:"Int16"}],4)),R8=ki([{name:"a_pos",components:2,type:"Float32"},{name:"a_radius",components:1,type:"Float32"},{name:"a_flags",components:2,type:"Int16"}],4);function O8(a,u,p){return a.sections.forEach((function(x){x.text=(function(C,B,O){var k=B.layout.get("text-transform").evaluate(O,{});return k==="uppercase"?C=C.toLocaleUpperCase():k==="lowercase"&&(C=C.toLocaleLowerCase()),is.applyArabicShaping&&(C=is.applyArabicShaping(C)),C})(x.text,u,p)})),a}ki([{name:"triangle",components:3,type:"Uint16"}]),ki([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Uint16",name:"glyphStartIndex"},{type:"Uint16",name:"numGlyphs"},{type:"Uint32",name:"vertexStartIndex"},{type:"Uint32",name:"lineStartIndex"},{type:"Uint32",name:"lineLength"},{type:"Uint16",name:"segment"},{type:"Uint16",name:"lowerSize"},{type:"Uint16",name:"upperSize"},{type:"Float32",name:"lineOffsetX"},{type:"Float32",name:"lineOffsetY"},{type:"Uint8",name:"writingMode"},{type:"Uint8",name:"placedOrientation"},{type:"Uint8",name:"hidden"},{type:"Uint32",name:"crossTileID"},{type:"Int16",name:"associatedIconIndex"}]),ki([{type:"Int16",name:"anchorX"},{type:"Int16",name:"anchorY"},{type:"Int16",name:"rightJustifiedTextSymbolIndex"},{type:"Int16",name:"centerJustifiedTextSymbolIndex"},{type:"Int16",name:"leftJustifiedTextSymbolIndex"},{type:"Int16",name:"verticalPlacedTextSymbolIndex"},{type:"Int16",name:"placedIconSymbolIndex"},{type:"Int16",name:"verticalPlacedIconSymbolIndex"},{type:"Uint16",name:"key"},{type:"Uint16",name:"textBoxStartIndex"},{type:"Uint16",name:"textBoxEndIndex"},{type:"Uint16",name:"verticalTextBoxStartIndex"},{type:"Uint16",name:"verticalTextBoxEndIndex"},{type:"Uint16",name:"iconBoxStartIndex"},{type:"Uint16",name:"iconBoxEndIndex"},{type:"Uint16",name:"verticalIconBoxStartIndex"},{type:"Uint16",name:"verticalIconBoxEndIndex"},{type:"Uint16",name:"featureIndex"},{type:"Uint16",name:"numHorizontalGlyphVertices"},{type:"Uint16",name:"numVerticalGlyphVertices"},{type:"Uint16",name:"numIconVertices"},{type:"Uint16",name:"numVerticalIconVertices"},{type:"Uint16",name:"useRuntimeCollisionCircles"},{type:"Uint32",name:"crossTileID"},{type:"Float32",name:"textBoxScale"},{type:"Float32",components:2,name:"textOffset"},{type:"Float32",name:"collisionCircleDiameter"}]),ki([{type:"Float32",name:"offsetX"}]),ki([{type:"Int16",name:"x"},{type:"Int16",name:"y"},{type:"Int16",name:"tileUnitDistanceFromAnchor"}]);var $p={"!":"ï¸","#":"ï¼",$:"ï¼","%":"ï¼
","&":"ï¼","(":"︵",")":"︶","*":"ï¼","+":"ï¼",",":"ï¸","-":"︲",".":"ã»","/":"ï¼",":":"ï¸",";":"ï¸","<":"︿","=":"ï¼",">":"ï¹","?":"ï¸","@":"ï¼ ","[":"ï¹","\\":"ï¼¼","]":"ï¹","^":"ï¼¾",_:"︳","`":"ï½","{":"︷","|":"â","}":"︸","~":"ï½","¢":"ï¿ ","£":"ï¿¡","Â¥":"ï¿¥","¦":"¦","¬":"ï¿¢","¯":"ï¿£","â":"︲","â":"︱","â":"ï¹","â":"ï¹","â":"ï¹","â":"ï¹","â¦":"ï¸","â§":"ã»","â©":"₩","ã":"ï¸","ã":"ï¸","ã":"︿","ã":"ï¹","ã":"︽","ã":"︾","ã":"ï¹","ã":"ï¹","ã":"ï¹","ã":"ï¹","ã":"︻","ã":"︼","ã":"︹","ã":"︺","ã":"ï¸","ã":"ï¸","ï¼":"ï¸","ï¼":"︵","ï¼":"︶","ï¼":"ï¸","ï¼":"︲","ï¼":"ã»","ï¼":"ï¸","ï¼":"ï¸","ï¼":"︿","ï¼":"ï¹","ï¼":"ï¸","ï¼»":"ï¹","ï¼½":"ï¹","_":"︳","ï½":"︷","ï½":"â","ï½":"︸","ï½":"︵","ï½ ":"︶","。":"ï¸","ï½¢":"ï¹","ï½£":"ï¹"},KT=function(a,u,p,x,C){var B,O,k=8*C-x-1,j=(1<<k)-1,J=j>>1,Q=-7,ie=C-1,fe=-1,_e=a[u+ie];for(ie+=fe,B=_e&(1<<-Q)-1,_e>>=-Q,Q+=k;Q>0;B=256*B+a[u+ie],ie+=fe,Q-=8);for(O=B&(1<<-Q)-1,B>>=-Q,Q+=x;Q>0;O=256*O+a[u+ie],ie+=fe,Q-=8);if(B===0)B=1-J;else{if(B===j)return O?NaN:1/0*(_e?-1:1);O+=Math.pow(2,x),B-=J}return(_e?-1:1)*O*Math.pow(2,B-x)},ZT=function(a,u,p,x,C,B){var O,k,j,J=8*B-C-1,Q=(1<<J)-1,ie=Q>>1,fe=C===23?Math.pow(2,-24)-Math.pow(2,-77):0,_e=0,ke=1,Ne=u<0||u===0&&1/u<0?1:0;for(u=Math.abs(u),isNaN(u)||u===1/0?(k=isNaN(u)?1:0,O=Q):(O=Math.floor(Math.log(u)/Math.LN2),u*(j=Math.pow(2,-O))<1&&(O--,j*=2),(u+=O+ie>=1?fe/j:fe*Math.pow(2,1-ie))*j>=2&&(O++,j/=2),O+ie>=Q?(k=0,O=Q):O+ie>=1?(k=(u*j-1)*Math.pow(2,C),O+=ie):(k=u*Math.pow(2,ie-1)*Math.pow(2,C),O=0));C>=8;a[p+_e]=255&k,_e+=ke,k/=256,C-=8);for(O=O<<C|k,J+=C;J>0;a[p+_e]=255&O,_e+=ke,O/=256,J-=8);a[p+_e-ke]|=128*Ne},kg=Jn;function Jn(a){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(a)?a:new Uint8Array(a||0),this.pos=0,this.type=0,this.length=this.buf.length}Jn.Varint=0,Jn.Fixed64=1,Jn.Bytes=2,Jn.Fixed32=5;var YT=typeof TextDecoder>"u"?null:new TextDecoder("utf8");function Oc(a){return a.type===Jn.Bytes?a.readVarint()+a.pos:a.pos+1}function Uh(a,u,p){return p?4294967296*u+(a>>>0):4294967296*(u>>>0)+(a>>>0)}function QT(a,u,p){var x=u<=16383?1:u<=2097151?2:u<=268435455?3:Math.floor(Math.log(u)/(7*Math.LN2));p.realloc(x);for(var C=p.pos-1;C>=a;C--)p.buf[C+x]=p.buf[C]}function D8(a,u){for(var p=0;p<a.length;p++)u.writeVarint(a[p])}function F8(a,u){for(var p=0;p<a.length;p++)u.writeSVarint(a[p])}function L8(a,u){for(var p=0;p<a.length;p++)u.writeFloat(a[p])}function k8(a,u){for(var p=0;p<a.length;p++)u.writeDouble(a[p])}function N8(a,u){for(var p=0;p<a.length;p++)u.writeBoolean(a[p])}function U8(a,u){for(var p=0;p<a.length;p++)u.writeFixed32(a[p])}function z8(a,u){for(var p=0;p<a.length;p++)u.writeSFixed32(a[p])}function V8(a,u){for(var p=0;p<a.length;
2097p++)u.writeFixed64(a[p])}function j8(a,u){for(var p=0;p<a.length;p++)u.writeSFixed64(a[p])}function Ng(a,u){return(a[u]|a[u+1]<<8|a[u+2]<<16)+16777216*a[u+3]}function zh(a,u,p){a[p]=u,a[p+1]=u>>>8,a[p+2]=u>>>16,a[p+3]=u>>>24}function eE(a,u){return(a[u]|a[u+1]<<8|a[u+2]<<16)+(a[u+3]<<24)}function G8(a,u,p){a===1&&p.readMessage(H8,u)}function H8(a,u,p){if(a===3){var x=p.readMessage(W8,{}),C=x.width,B=x.height,O=x.left,k=x.top,j=x.advance;u.push({id:x.id,bitmap:new If({width:C+6,height:B+6},x.bitmap),metrics:{width:C,height:B,left:O,top:k,advance:j}})}}function W8(a,u,p){a===1?u.id=p.readVarint():a===2?u.bitmap=p.readBytes():a===3?u.width=p.readVarint():a===4?u.height=p.readVarint():a===5?u.left=p.readSVarint():a===6?u.top=p.readSVarint():a===7&&(u.advance=p.readVarint())}function tE(a){for(var u=0,p=0,x=0,C=a;x<C.length;x+=1){var B=C[x];u+=B.w*B.h,p=Math.max(p,B.w)}a.sort((function(Ne,He){return He.h-Ne.h}));for(var O=[{x:0,y:0,w:Math.max(Math.ceil(Math.sqrt(u/.95)),p),h:1/0}],k=0,j=0,J=0,Q=a;J<Q.length;J+=1)for(var ie=Q[J],fe=O.length-1;fe>=0;fe--){var _e=O[fe];if(!(ie.w>_e.w||ie.h>_e.h)){if(ie.x=_e.x,ie.y=_e.y,j=Math.max(j,ie.y+ie.h),k=Math.max(k,ie.x+ie.w),ie.w===_e.w&&ie.h===_e.h){var ke=O.pop();fe<O.length&&(O[fe]=ke)}else ie.h===_e.h?(_e.x+=ie.w,_e.w-=ie.w):ie.w===_e.w?(_e.y+=ie.h,_e.h-=ie.h):(O.push({x:_e.x+ie.w,y:_e.y,w:_e.w-ie.w,h:ie.h}),_e.y+=ie.h,_e.h-=ie.h);break}}return{w:k,h:j,fill:u/(k*j)||0}}Jn.prototype={destroy:function(){this.buf=null},readFields:function(a,u,p){for(p=p||this.length;this.pos<p;){var x=this.readVarint(),C=x>>3,B=this.pos;this.type=7&x,a(C,u,this),this.pos===B&&this.skip(x)}return u},readMessage:function(a,u){return this.readFields(a,u,this.readVarint()+this.pos)},readFixed32:function(){var a=Ng(this.buf,this.pos);return this.pos+=4,a},readSFixed32:function(){var a=eE(this.buf,this.pos);return this.pos+=4,a},readFixed64:function(){var a=Ng(this.buf,this.pos)+4294967296*Ng(this.buf,this.pos+4);return this.pos+=8,a},readSFixed64:function(){var a=Ng(this.buf,this.pos)+4294967296*eE(this.buf,this.pos+4);return this.pos+=8,a},readFloat:function(){var a=KT(this.buf,this.pos,!0,23,4);return this.pos+=4,a},readDouble:function(){var a=KT(this.buf,this.pos,!0,52,8);return this.pos+=8,a},readVarint:function(a){var u,p,x=this.buf;return u=127&(p=x[this.pos++]),p<128?u:(u|=(127&(p=x[this.pos++]))<<7,p<128?u:(u|=(127&(p=x[this.pos++]))<<14,p<128?u:(u|=(127&(p=x[this.pos++]))<<21,p<128?u:(function(C,B,O){var k,j,J=O.buf;if(k=(112&(j=J[O.pos++]))>>4,j<128||(k|=(127&(j=J[O.pos++]))<<3,j<128)||(k|=(127&(j=J[O.pos++]))<<10,j<128)||(k|=(127&(j=J[O.pos++]))<<17,j<128)||(k|=(127&(j=J[O.pos++]))<<24,j<128)||(k|=(1&(j=J[O.pos++]))<<31,j<128))return Uh(C,k,B);throw new Error("Expected varint not more than 10 bytes")})(u|=(15&(p=x[this.pos]))<<28,a,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var a=this.readVarint();return a%2==1?(a+1)/-2:a/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var a=this.readVarint()+this.pos,u=this.pos;return this.pos=a,a-u>=12&&YT?(function(p,x,C){return YT.decode(p.subarray(x,C))})(this.buf,u,a):(function(p,x,C){for(var B="",O=x;O<C;){var k,j,J,Q=p[O],ie=null,fe=Q>239?4:Q>223?3:Q>191?2:1;if(O+fe>C)break;fe===1?Q<128&&(ie=Q):fe===2?(192&(k=p[O+1]))==128&&(ie=(31&Q)<<6|63&k)<=127&&(ie=null):fe===3?(j=p[O+2],(192&(k=p[O+1]))==128&&(192&j)==128&&((ie=(15&Q)<<12|(63&k)<<6|63&j)<=2047||ie>=55296&&ie<=57343)&&(ie=null)):fe===4&&(j=p[O+2],J=p[O+3],(192&(k=p[O+1]))==128&&(192&j)==128&&(192&J)==128&&((ie=(15&Q)<<18|(63&k)<<12|(63&j)<<6|63&J)<=65535||ie>=1114112)&&(ie=null)),ie===null?(ie=65533,fe=1):ie>65535&&(ie-=65536,B+=String.fromCharCode(ie>>>10&1023|55296),ie=56320|1023&ie),B+=String.fromCharCode(ie),O+=fe}return B})(this.buf,u,a)},readBytes:function(){var a=this.readVarint()+this.pos,u=this.buf.subarray(this.pos,a);return this.pos=a,u},readPackedVarint:function(a,u){if(this.type!==Jn.Bytes)return a.push(this.readVarint(u));var p=Oc(this);for(a=a||[];this.pos<p;)a.push(this.readVarint(u));return a}
vendor: 11,225 bytes, line 2097
2097,readPackedSVarint:function(a){if(this.type!==Jn.Bytes)return a.push(this.readSVarint());var u=Oc(this);for(a=a||[];this.pos<u;)a.push(this.readSVarint());return a},readPackedBoolean:function(a){if(this.type!==Jn.Bytes)return a.push(this.readBoolean());var u=Oc(this);for(a=a||[];this.pos<u;)a.push(this.readBoolean());return a},readPackedFloat:function(a){if(this.type!==Jn.Bytes)return a.push(this.readFloat());var u=Oc(this);for(a=a||[];this.pos<u;)a.push(this.readFloat());return a},readPackedDouble:function(a){if(this.type!==Jn.Bytes)return a.push(this.readDouble());var u=Oc(this);for(a=a||[];this.pos<u;)a.push(this.readDouble());return a},readPackedFixed32:function(a){if(this.type!==Jn.Bytes)return a.push(this.readFixed32());var u=Oc(this);for(a=a||[];this.pos<u;)a.push(this.readFixed32());return a},readPackedSFixed32:function(a){if(this.type!==Jn.Bytes)return a.push(this.readSFixed32());var u=Oc(this);for(a=a||[];this.pos<u;)a.push(this.readSFixed32());return a},readPackedFixed64:function(a){if(this.type!==Jn.Bytes)return a.push(this.readFixed64());var u=Oc(this);for(a=a||[];this.pos<u;)a.push(this.readFixed64());return a},readPackedSFixed64:function(a){if(this.type!==Jn.Bytes)return a.push(this.readSFixed64());var u=Oc(this);for(a=a||[];this.pos<u;)a.push(this.readSFixed64());return a},skip:function(a){var u=7&a;if(u===Jn.Varint)for(;this.buf[this.pos++]>127;);else if(u===Jn.Bytes)this.pos=this.readVarint()+this.pos;else if(u===Jn.Fixed32)this.pos+=4;else{if(u!==Jn.Fixed64)throw new Error("Unimplemented type: "+u);this.pos+=8}},writeTag:function(a,u){this.writeVarint(a<<3|u)},realloc:function(a){for(var u=this.length||16;u<this.pos+a;)u*=2;if(u!==this.length){var p=new Uint8Array(u);p.set(this.buf),this.buf=p,this.length=u}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(a){this.realloc(4),zh(this.buf,a,this.pos),this.pos+=4},writeSFixed32:function(a){this.realloc(4),zh(this.buf,a,this.pos),this.pos+=4},writeFixed64:function(a){this.realloc(8),zh(this.buf,-1&a,this.pos),zh(this.buf,Math.floor(a*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(a){this.realloc(8),zh(this.buf,-1&a,this.pos),zh(this.buf,Math.floor(a*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(a){(a=+a||0)>268435455||a<0?(function(u,p){var x,C;if(u>=0?(x=u%4294967296|0,C=u/4294967296|0):(C=~(-u/4294967296),4294967295^(x=~(-u%4294967296))?x=x+1|0:(x=0,C=C+1|0)),u>=18446744073709552e3||u<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");p.realloc(10),(function(B,O,k){k.buf[k.pos++]=127&B|128,B>>>=7,k.buf[k.pos++]=127&B|128,B>>>=7,k.buf[k.pos++]=127&B|128,B>>>=7,k.buf[k.pos++]=127&B|128,k.buf[k.pos]=127&(B>>>=7)})(x,0,p),(function(B,O){var k=(7&B)<<4;O.buf[O.pos++]|=k|((B>>>=3)?128:0),B&&(O.buf[O.pos++]=127&B|((B>>>=7)?128:0),B&&(O.buf[O.pos++]=127&B|((B>>>=7)?128:0),B&&(O.buf[O.pos++]=127&B|((B>>>=7)?128:0),B&&(O.buf[O.pos++]=127&B|((B>>>=7)?128:0),B&&(O.buf[O.pos++]=127&B)))))})(C,p)})(a,this):(this.realloc(4),this.buf[this.pos++]=127&a|(a>127?128:0),a<=127||(this.buf[this.pos++]=127&(a>>>=7)|(a>127?128:0),a<=127||(this.buf[this.pos++]=127&(a>>>=7)|(a>127?128:0),a<=127||(this.buf[this.pos++]=a>>>7&127))))},writeSVarint:function(a){this.writeVarint(a<0?2*-a-1:2*a)},writeBoolean:function(a){this.writeVarint(!!a)},writeString:function(a){a=String(a),this.realloc(4*a.length),this.pos++;var u=this.pos;this.pos=(function(x,C,B){for(var O,k,j=0;j<C.length;j++){if((O=C.charCodeAt(j))>55295&&O<57344){if(!k){O>56319||j+1===C.length?(x[B++]=239,x[B++]=191,x[B++]=189):k=O;continue}if(O<56320){x[B++]=239,x[B++]=191,x[B++]=189,k=O;continue}O=k-55296<<10|O-56320|65536,k=null}else k&&(x[B++]=239,x[B++]=191,x[B++]=189,k=null);O<128?x[B++]=O:(O<2048?x[B++]=O>>6|192:(O<65536?x[B++]=O>>12|224:(x[B++]=O>>18|240,x[B++]=O>>12&63|128),x[B++]=O>>6&63|128),x[B++]=63&O|128)}return B})(this.buf,a,this.pos);var p=this.pos-u;p>=128&&QT(u,p,this),this.pos=u-1,this.writeVarint(p),this.pos+=p},writeFloat:function(a){this.realloc(4),ZT(this.buf,a,this.pos,!0,23,4),this.pos+=4},writeDouble:function(a){this.realloc(8),ZT(this.buf,a,this.pos,!0,52,8),this.pos+=8},writeBytes:function(a){var u=a.length;this.writeVarint(u),this.realloc(u);for(var p=0;p<u;p++)this.buf[this.pos++]=a[p]},writeRawMessage:function(a,u){this.pos++;var p=this.pos;a(u,this);var x=this.pos-p;x>=128&&QT(p,x,this),this.pos=p-1,this.writeVarint(x),this.pos+=x},writeMessage:function(a,u,p){this.writeTag(a,Jn.Bytes),this.writeRawMessage(u,p)},writePackedVarint:function(a,u){u.length&&this.writeMessage(a,D8,u)},writePackedSVarint:function(a,u){u.length&&this.writeMessage(a,F8,u)},writePackedBoolean:function(a,u){u.length&&this.writeMessage(a,N8,u)},writePackedFloat:function(a,u){u.length&&this.writeMessage(a,L8,u)},writePackedDouble:function(a,u){u.length&&this.writeMessage(a,k8,u)},writePackedFixed32:function(a,u){u.length&&this.writeMessage(a,U8,u)},writePackedSFixed32:function(a,u){u.length&&this.writeMessage(a,z8,u)},writePackedFixed64:function(a,u){u.length&&this.writeMessage(a,V8,u)},writePackedSFixed64:function(a,u){u.length&&this.writeMessage(a,j8,u)},writeBytesField:function(a,u){this.writeTag(a,Jn.Bytes),this.writeBytes(u)},writeFixed32Field:function(a,u){this.writeTag(a,Jn.Fixed32),this.writeFixed32(u)},writeSFixed32Field:function(a,u){this.writeTag(a,Jn.Fixed32),this.writeSFixed32(u)},writeFixed64Field:function(a,u){this.writeTag(a,Jn.Fixed64),this.writeFixed64(u)},writeSFixed64Field:function(a,u){this.writeTag(a,Jn.Fixed64),this.writeSFixed64(u)},writeVarintField:function(a,u){this.writeTag(a,Jn.Varint),this.writeVarint(u)},writeSVarintField:function(a,u){this.writeTag(a,Jn.Varint),this.writeSVarint(u)},writeStringField:function(a,u){this.writeTag(a,Jn.Bytes),this.writeString(u)},writeFloatField:function(a,u){this.writeTag(a,Jn.Fixed32),this.writeFloat(u)},writeDoubleField:function(a,u){this.writeTag(a,Jn.Fixed64),this.writeDouble(u)},writeBooleanField:function(a,u){this.writeVarintField(a,!!u)}};var Ug=function(a,u){var p=u.pixelRatio,x=u.version,C=u.stretchX,B=u.stretchY,O=u.content;this.paddedRect=a,this.pixelRatio=p,this.stretchX=C,this.stretchY=B,this.content=O,this.version=x},Xp={tl:{configurable:!0},br:{configurable:!0},tlbr:{configurable:!0},displaySize:{configurable:!0}};Xp.tl.get=function(){return[this.paddedRect.x+1,this.paddedRect.y+1]},Xp.br.get=function(){return[this.paddedRect.x+this.paddedRect.w-1,this.paddedRect.y+this.paddedRect.h-1]},Xp.tlbr.get=function(){return this.tl.concat(this.br)},Xp.displaySize.get=function(){return[(this.paddedRect.w-2)/this.pixelRatio,(this.paddedRect.h-2)/this.pixelRatio]},Object.defineProperties(Ug.prototype,Xp);var qp=function(a,u){var p={},x={};this.haveRenderCallbacks=[];var C=[];this.addImages(a,p,C),this.addImages(u,x,C);var B=tE(C),O=new lo({width:B.w||1,height:B.h||1});for(var k in a){var j=a[k],J=p[k].paddedRect;lo.copy(j.data,O,{x:0,y:0},{x:J.x+1,y:J.y+1},j.data)}for(var Q in u){var ie=u[Q],fe=x[Q].paddedRect,_e=fe.x+1,ke=fe.y+1,Ne=ie.data.width,He=ie.data.height;lo.copy(ie.data,O,{x:0,y:0},{x:_e,y:ke},ie.data),lo.copy(ie.data,O,{x:0,y:He-1},{x:_e,y:ke-1},{width:Ne,height:1}),lo.copy(ie.data,O,{x:0,y:0},{x:_e,y:ke+He},{width:Ne,height:1}),lo.copy(ie.data,O,{x:Ne-1,y:0},{x:_e-1,y:ke},{width:1,height:He}),lo.copy(ie.data,O,{x:0,y:0},{x:_e+Ne,y:ke},{width:1,height:He})}this.image=O,this.iconPositions=p,this.patternPositions=x};qp.prototype.addImages=function(a,u,p){for(var x in a){var C=a[x],B={x:0,y:0,w:C.data.width+2,h:C.data.height+2};p.push(B),u[x]=new Ug(B,C),C.hasRenderCallback&&this.haveRenderCallbacks.push(x)}},qp.prototype.patchUpdatedImages=function(a,u){for(var p in a.dispatchRenderCallbacks(this.haveRenderCallbacks),a.updatedImages)this.patchUpdatedImage(this.iconPositions[p],a.getImage(p),u),this.patchUpdatedImage(this.patternPositions[p],a.getImage(p),u)},qp.prototype.patchUpdatedImage=function(a,u,p){if(a&&u&&a.version!==u.version){a.version=u.version;var x=a.tl;p.update(u.data,void 0,{x:x[0],y:x[1]})}},or("ImagePosition",Ug),or("ImageAtlas",qp);var Lo={horizontal:1,vertical:2,horizontalOnly:3},Vh=function(){this.scale=1,this.fontStack="",this.imageName=null};Vh.forText=function(a,u){var p=new Vh;return p.scale=a||1,p.fontStack=u,p},Vh.forImage=function(a){var u=new Vh;return u.imageName=a,u};var Rs=function(){this.text="",this.sectionIndex=[],this.sections=[],this.imageSectionID=null};function zg(a,u,p,x,C,B,O,k,j,J,Q,ie,fe,_e,ke,Ne){var He,je=Rs.fromFeature(a,C);ie===Lo.vertical&&je.verticalizePunctuation();var Ke=is.processBidirectionalText,lt=is.processStyledBidirectionalText;if(Ke&&je.sections.length===1){He=[];for(var mt=0,yt=Ke(je.toString(),Ry(je,J,B,u,x,_e,ke));mt<yt.length;mt+=1){var Ot=yt[mt],Ht=new Rs;Ht.text=Ot,Ht.sections=je.sections;for(var Kt=0;Kt<Ot.length;Kt++)Ht.sectionIndex.push(0);He.push(Ht)}}else if(lt){He=[];for(var xr=0,nr=lt(je.text,je.sectionIndex,Ry(je,J,B,u,x,_e,ke));xr<nr.length;xr+=1){var Sr=nr[xr],ir=new Rs;ir.text=Sr[0],ir.sectionIndex=Sr[1],ir.sections=je.sections,He.push(ir)}}else He=(function(hr,hn){for(var Kr=[],bn=hr.text,Ir=0,Tn=0,ii=hn;Tn<ii.length;Tn+=1){var Ei=ii[Tn];Kr.push(hr.substring(Ir,Ei)),Ir=Ei}return Ir<bn.length&&Kr.push(hr.substring(Ir,bn.length)),Kr})(je,Ry(je,J,B,u,x,_e,ke));var sn=[],Lr={positionedLines:sn,text:je.toString(),top:Q[1],bottom:Q[1],left:Q[0],right:Q[0],writingMode:ie,iconsInText:!1,verticalizable:!1};return(function(hr,hn,Kr,bn,Ir,Tn,ii,Ei,vi,si,Ci,Yi){for(var Qi=0,Os=-17,cs=0,Ds=0,Bi=Ei==="right"?1:Ei==="left"?0:.5,us=0,gn=0,Nn=Ir;gn<Nn.length;gn+=1){var Pn=Nn[gn];Pn.trim();var wn=Pn.getMaxScale(),qs=24*(wn-1),bs={positionedGlyphs:[],lineOffset:0};hr.positionedLines[us]=bs;var ei=bs.positionedGlyphs,Ni=0;if(Pn.length()){for(var xs=0;xs<Pn.length();xs++){var En=Pn.getSection(xs),Wl=Pn.getSectionIndex(xs),ko=Pn.getCharCode(xs),$l=0,Pi=null,Xl=null,Ma=null,Jh=24,Rf=!(vi===Lo.horizontal||!Ci&&!_u(ko)||Ci&&(Vg[ko]||(kc=ko,Zt.Arabic(kc)||Zt["Arabic Supplement"](kc)||Zt["Arabic Extended-A"](kc)||Zt["Arabic Presentation Forms-A"](kc)||Zt["Arabic Presentation Forms-B"](kc))));if(En.imageName){var Kh=bn[En.imageName];if(!Kh)continue;Ma=En.imageName,hr.iconsInText=hr.iconsInText||!0,Xl=Kh.paddedRect;var Lc=Kh.displaySize;En.scale=24*En.scale/Yi,$l=qs+(24-Lc[1]*En.scale),Jh=(Pi={width:Lc[0],height:Lc[1],left:1,top:-3,advance:Rf?Lc[1]:Lc[0]}).advance;var Zh=Rf?Lc[0]*En.scale-24*wn:Lc[1]*En.scale-24*wn;Zh>0&&Zh>Ni&&(Ni=Zh)}else{var Kg=Kr[En.fontStack],Yh=Kg&&Kg[ko];if(Yh&&Yh.rect)Xl=Yh.rect,Pi=Yh.metrics;else{var Zp=hn[En.fontStack],Zg=Zp&&Zp[ko];if(!Zg)continue;Pi=Zg.metrics}$l=24*(wn-En.scale)}Rf?(hr.verticalizable=!0,ei.push({glyph:ko,imageName:Ma,x:Qi,y:Os+$l,vertical:Rf,scale:En.scale,fontStack:En.fontStack,sectionIndex:Wl,metrics:Pi,rect:Xl}),Qi+=Jh*En.scale+si):(ei.push({glyph:ko,imageName:Ma,x:Qi,y:Os+$l,vertical:Rf,scale:En.scale,fontStack:En.fontStack,sectionIndex:Wl,metrics:Pi,rect:Xl}),Qi+=Pi.advance*En.scale+si)}ei.length!==0&&(cs=Math.max(Qi-si,cs),X8(ei,0,ei.length-1,Bi,Ni)),Qi=0;var Yg=Tn*wn+Ni;bs.lineOffset=Math.max(Ni,qs),Os+=Yg,Ds=Math.max(Yg,Ds),++us}else Os+=Tn,++us}var kc,Yp=Os- -17,Qh=Oy(ii),Iu=Qh.horizontalAlign,ed=Qh.verticalAlign;
2097(function(Qg,e0,Qp,eA,t0,tA,rA,nA,r0){var td,n0=(e0-Qp)*t0;td=tA!==rA?-nA*eA- -17:(-eA*r0+.5)*rA;for(var rd=0,iA=Qg;rd<iA.length;rd+=1)for(var Of=0,sA=iA[rd].positionedGlyphs;Of<sA.length;Of+=1){var nd=sA[Of];nd.x+=n0,nd.y+=td}})(hr.positionedLines,Bi,Iu,ed,cs,Ds,Tn,Yp,Ir.length),hr.top+=-ed*Yp,hr.bottom=hr.top+Yp,hr.left+=-Iu*cs,hr.right=hr.left+cs})(Lr,u,p,x,He,O,k,j,ie,J,fe,Ne),!(function(hr){for(var hn=0,Kr=hr;hn<Kr.length;hn+=1)if(Kr[hn].positionedGlyphs.length!==0)return!1;return!0})(sn)&&Lr}Rs.fromFeature=function(a,u){for(var p=new Rs,x=0;x<a.sections.length;x++){var C=a.sections[x];C.image?p.addImageSection(C):p.addTextSection(C,u)}return p},Rs.prototype.length=function(){return this.text.length},Rs.prototype.getSection=function(a){return this.sections[this.sectionIndex[a]]},Rs.prototype.getSectionIndex=function(a){return this.sectionIndex[a]},Rs.prototype.getCharCode=function(a){return this.text.charCodeAt(a)},Rs.prototype.verticalizePunctuation=function(){this.text=(function(a){for(var u="",p=0;p<a.length;p++){var x=a.charCodeAt(p+1)||null,C=a.charCodeAt(p-1)||null;u+=x&&vf(x)&&!$p[a[p+1]]||C&&vf(C)&&!$p[a[p-1]]||!$p[a[p]]?a[p]:$p[a[p]]}return u})(this.text)},Rs.prototype.trim=function(){for(var a=0,u=0;u<this.text.length&&Vg[this.text.charCodeAt(u)];u++)a++;for(var p=this.text.length,x=this.text.length-1;x>=0&&x>=a&&Vg[this.text.charCodeAt(x)];x--)p--;this.text=this.text.substring(a,p),this.sectionIndex=this.sectionIndex.slice(a,p)},Rs.prototype.substring=function(a,u){var p=new Rs;return p.text=this.text.substring(a,u),p.sectionIndex=this.sectionIndex.slice(a,u),p.sections=this.sections,p},Rs.prototype.toString=function(){return this.text},Rs.prototype.getMaxScale=function(){var a=this;return this.sectionIndex.reduce((function(u,p){return Math.max(u,a.sections[p].scale)}),0)},Rs.prototype.addTextSection=function(a,u){this.text+=a.text,this.sections.push(Vh.forText(a.scale,a.fontStack||u));for(var p=this.sections.length-1,x=0;x<a.text.length;++x)this.sectionIndex.push(p)},Rs.prototype.addImageSection=function(a){var u=a.image?a.image.name:"";if(u.length!==0){var p=this.getNextImageSectionCharCode();p?(this.text+=String.fromCharCode(p),this.sections.push(Vh.forImage(u)),this.sectionIndex.push(this.sections.length-1)):te("Reached maximum number of images 6401")}else te("Can't add FormattedSection with an empty image.")},Rs.prototype.getNextImageSectionCharCode=function(){return this.imageSectionID?this.imageSectionID>=63743?null:++this.imageSectionID:(this.imageSectionID=57344,this.imageSectionID)};var Vg={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},So={};function rE(a,u,p,x,C,B){if(u.imageName){var O=x[u.imageName];return O?O.displaySize[0]*u.scale*24/B+C:0}var k=p[u.fontStack],j=k&&k[a];return j?j.metrics.advance*u.scale+C:0}function nE(a,u,p,x){var C=Math.pow(a-u,2);return x?a<u?C/2:2*C:C+Math.abs(p)*p}function $8(a,u,p){var x=0;return a===10&&(x-=1e4),p&&(x+=150),a!==40&&a!==65288||(x+=50),u!==41&&u!==65289||(x+=50),x}function iE(a,u,p,x,C,B){for(var O=null,k=nE(u,p,C,B),j=0,J=x;j<J.length;j+=1){var Q=J[j],ie=nE(u-Q.x,p,C,B)+Q.badness;ie<=k&&(O=Q,k=ie)}return{index:a,x:u,priorBreak:O,badness:k}}function Ry(a,u,p,x,C,B,O){if(B!=="point")return[];if(!a)return[];for(var k,j=[],J=(function(He,je,Ke,lt,mt,yt){for(var Ot=0,Ht=0;Ht<He.length();Ht++){var Kt=He.getSection(Ht);Ot+=rE(He.getCharCode(Ht),Kt,lt,mt,je,yt)}return Ot/Math.max(1,Math.ceil(Ot/Ke))})(a,u,p,x,C,O),Q=a.text.indexOf("â")>=0,ie=0,fe=0;fe<a.length();fe++){var _e=a.getSection(fe),ke=a.getCharCode(fe);if(Vg[ke]||(ie+=rE(ke,_e,x,C,u,O)),fe<a.length()-1){var Ne=!((k=ke)<11904||!(Zt["Bopomofo Extended"](k)||Zt.Bopomofo(k)||Zt["CJK Compatibility Forms"](k)||Zt["CJK Compatibility Ideographs"](k)||Zt["CJK Compatibility"](k)||Zt["CJK Radicals Supplement"](k)||Zt["CJK Strokes"](k)||Zt["CJK Symbols and Punctuation"](k)||Zt["CJK Unified Ideographs Extension A"](k)||Zt["CJK Unified Ideographs"](k)||Zt["Enclosed CJK Letters and Months"](k)||Zt["Halfwidth and Fullwidth Forms"](k)||Zt.Hiragana(k)||Zt["Ideographic Description Characters"](k)||Zt["Kangxi Radicals"](k)||Zt["Katakana Phonet
2097ic Extensions"](k)||Zt.Katakana(k)||Zt["Vertical Forms"](k)||Zt["Yi Radicals"](k)||Zt["Yi Syllables"](k)));(So[ke]||Ne||_e.imageName)&&j.push(iE(fe+1,ie,J,j,$8(ke,a.getCharCode(fe+1),Ne&&Q),!1))}}return(function He(je){return je?He(je.priorBreak).concat(je.index):[]})(iE(a.length(),ie,J,j,0,!0))}function Oy(a){var u=.5,p=.5;switch(a){case"right":case"top-right":case"bottom-right":u=1;break;case"left":case"top-left":case"bottom-left":u=0}switch(a){case"bottom":case"bottom-right":case"bottom-left":p=1;break;case"top":case"top-right":case"top-left":p=0}return{horizontalAlign:u,verticalAlign:p}}function X8(a,u,p,x,C){if(x||C)for(var B=a[p],O=(a[p].x+B.metrics.advance*B.scale)*x,k=u;k<=p;k++)a[k].x-=O,a[k].y+=C}function sE(a,u,p,x,C,B){var O,k=a.image;if(k.content){var j=k.content,J=k.pixelRatio||1;O=[j[0]/J,j[1]/J,k.displaySize[0]-j[2]/J,k.displaySize[1]-j[3]/J]}var Q,ie,fe,_e,ke=u.left*B,Ne=u.right*B;p==="width"||p==="both"?(_e=C[0]+ke-x[3],ie=C[0]+Ne+x[1]):ie=(_e=C[0]+(ke+Ne-k.displaySize[0])/2)+k.displaySize[0];var He=u.top*B,je=u.bottom*B;return p==="height"||p==="both"?(Q=C[1]+He-x[0],fe=C[1]+je+x[2]):fe=(Q=C[1]+(He+je-k.displaySize[1])/2)+k.displaySize[1],{image:k,top:Q,right:ie,bottom:fe,left:_e,collisionPadding:O}}So[10]=!0,So[32]=!0,So[38]=!0,So[40]=!0,So[41]=!0,So[43]=!0,So[45]=!0,So[47]=!0,So[173]=!0,So[183]=!0,So[8203]=!0,So[8208]=!0,So[8211]=!0,So[8231]=!0;var jh=(function(a){function u(p,x,C,B){a.call(this,p,x),this.angle=C,B!==void 0&&(this.segment=B)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.clone=function(){return new u(this.x,this.y,this.angle,this.segment)},u})(v);function Dy(a,u){var p=u.expression;if(p.kind==="constant")return{kind:"constant",layoutSize:p.evaluate(new Gr(a+1))};if(p.kind==="source")return{kind:"source"};for(var x=p.zoomStops,C=p.interpolationType,B=0;B<x.length&&x[B]<=a;)B++;for(var O=B=Math.max(0,B-1);O<x.length&&x[O]<a+1;)O++;O=Math.min(x.length-1,O);var k=x[B],j=x[O];return p.kind==="composite"?{kind:"composite",minZoom:k,maxZoom:j,interpolationType:C}:{kind:"camera",minZoom:k,maxZoom:j,minSize:p.evaluate(new Gr(k)),maxSize:p.evaluate(new Gr(j)),interpolationType:C}}function oE(a,u,p){var x=u.uSize,C=p.lowerSize;return a.kind==="source"?C/128:a.kind==="composite"?hi(C/128,p.upperSize/128,u.uSizeT):x}function aE(a,u){var p=0,x=0;if(a.kind==="constant")x=a.layoutSize;else if(a.kind!=="source"){var C=a.interpolationType,B=C?$(zi.interpolationFactor(C,u,a.minZoom,a.maxZoom),0,1):0;a.kind==="camera"?x=hi(a.minSize,a.maxSize,B):p=B}return{uSizeT:p,uSize:x}}or("Anchor",jh);var q8=Object.freeze({__proto__:null,getSizeData:Dy,evaluateSizeForFeature:oE,evaluateSizeForZoom:aE,SIZE_PACK_FACTOR:128});function lE(a,u,p,x,C){if(u.segment===void 0)return!0;for(var B=u,O=u.segment+1,k=0;k>-p/2;){if(--O<0)return!1;k-=a[O].dist(B),B=a[O]}k+=a[O].dist(a[O+1]),O++;for(var j=[],J=0;k<p/2;){var Q=a[O],ie=a[O+1];if(!ie)return!1;var fe=a[O-1].angleTo(Q)-Q.angleTo(ie);for(fe=Math.abs((fe+3*Math.PI)%(2*Math.PI)-Math.PI),j.push({distance:k,angleDelta:fe}),J+=fe;k-j[0].distance>x;)J-=j.shift().angleDelta;if(J>C)return!1;O++,k+=Q.dist(ie)}return!0}function cE(a){for(var u=0,p=0;p<a.length-1;p++)u+=a[p].dist(a[p+1]);return u}function uE(a,u,p){return a?.6*u*p:0}function fE(a,u){return Math.max(a?a.right-a.left:0,u?u.right-u.left:0)}function J8(a,u,p,x,C,B){for(var O=uE(p,C,B),k=fE(p,x)*B,j=0,J=cE(a)/2,Q=0;Q<a.length-1;Q++){var ie=a[Q],fe=a[Q+1],_e=ie.dist(fe);if(j+_e>J){var ke=(J-j)/_e,Ne=hi(ie.x,fe.x,ke),He=hi(ie.y,fe.y,ke),je=new jh(Ne,He,fe.angleTo(ie),Q);return je._round(),!O||lE(a,je,k,O,u)?je:void 0}j+=_e}}function K8(a,u,p,x,C,B,O,k,j){var J=uE(x,B,O),Q=fE(x,C),ie=Q*O,fe=a[0].x===0||a[0].x===j||a[0].y===0||a[0].y===j;return u-ie<u/4&&(u=ie+u/4),(function _e(ke,Ne,He,je,Ke,lt,mt,yt,Ot){for(var Ht=lt/2,Kt=cE(ke),xr=0,nr=Ne-He,Sr=[],ir=0;ir<ke.length-1;ir++){for(var sn=ke[ir],Lr=ke[ir+1],hr=sn.dist(Lr),hn=Lr.angleTo(sn);nr+He<xr+hr;){var Kr=((nr+=He)-xr)/hr,bn=hi(sn.x,Lr.x,Kr),Ir=hi(sn.y,Lr.y,Kr);if(bn>=0&&bn<Ot&&Ir>=0&&Ir<Ot&&nr-Ht>=0&&nr+Ht<=Kt){var Tn=new jh(bn,Ir,hn,ir);Tn._round(),je&&!lE(ke,Tn,lt,je,Ke)||Sr.push(Tn)}}xr+=hr}return yt||Sr.length||mt||(Sr=_e(ke,xr/2,He,je,Ke,lt,mt,!0,Ot)),Sr})(a,fe?u/2*k%u:(Q/2+2*B)*O*k%u,u,J,p,ie,fe,!1,j)}function hE(a,u,p,x,C){for(var B=[],O=0;O<a.length;O++)for(var k=a[O],j=void 0,J=0;J<k.length-1;J++){var Q=k[J],ie=k[J+1];Q.x<u&&ie.x<u||(Q.x<u?Q=new v(u,Q.y+(u-Q.x)/(ie.x-Q.x)*(ie.y-Q.y))._round():ie.x<u&&(ie=new v(u,Q.y+(u-Q.x)/(ie.x-Q.x)*(ie.y-Q.y))._round()),Q.y<p&&ie.y<p||(Q.y<p?Q=new v(Q.x+(p-Q.y)/(ie.y-Q.y)*(ie.x-Q.x),p)._round():ie.y<p&&(ie=new v(Q.x+(p-Q.y)/(ie.y-Q.y)*(ie.x-Q.x),p)._round()),Q.x>=x&&ie.x>=x||(Q.x>=x?Q=new v(x,Q.y+(x-Q.x)/(ie.x-Q.x)*(ie.y-Q.y))._round():ie.x>=x&&(ie=new v(x,Q.y+(x-Q.x)/(ie.x-Q.x)*(ie.y-Q.y))._round()),Q.y>=C&&ie.y>=C||(Q.y>=C?Q=new v(Q.x+(C-Q.y)/(ie.y-Q.y)*(ie.x-Q.x),C)._round():ie.y>=C&&(ie=new v(Q.x+(C-Q.y)/(ie.y-Q.y)*(ie.x-Q.x),C)._round()),j&&Q.equals(j[j.length-1])||B.push(j=[Q]),j.push(ie)))))}return B}function dE(a,u,p,x){var C=[],B=a.image,O=B.pixelRatio,k=B.paddedRect.w-2,j=B.paddedRect.h-2,J=a.right-a.left,Q=a.bottom-a.top,ie=B.stretchX||[[0,k]],fe=B.stretchY||[[0,j]],_e=function(bn,Ir){return bn+Ir[1]-Ir[0]},ke=ie.reduce(_e,0),Ne=fe.reduce(_e,0),He=k-ke,je=j-Ne,Ke=0,lt=ke,mt=0,yt=Ne,Ot=0,Ht=He,Kt=0,xr=je;if(B.content&&x){var nr=B.content;Ke=jg(ie,0,nr[0]),mt=jg(fe,0,nr[1]),lt=jg(ie,nr[0],nr[2]),yt=jg(fe,nr[1],nr[3]),Ot=nr[0]-Ke,Kt=nr[1]-mt,Ht=nr[2]-nr[0]-lt,xr=nr[3]-nr[1]-yt}var Sr=function(bn,Ir,Tn,ii){var Ei=Gg(bn.stretch-Ke,lt,J,a.left),vi=Hg(bn.fixed-Ot,Ht,bn.stretch,ke),si=Gg(Ir.stretch-mt,yt,Q,a.top),Ci=Hg(Ir.fixed-Kt,xr,Ir.stretch,Ne),Yi=Gg(Tn.stretch-Ke,lt,J,a.left),Qi=Hg(Tn.fixed-Ot,Ht,Tn.stretch,ke),Os=Gg(ii.stretch-mt,yt,Q,a.top),cs=
vendor: 5,989 bytes, line 2097
2097Hg(ii.fixed-Kt,xr,ii.stretch,Ne),Ds=new v(Ei,si),Bi=new v(Yi,si),us=new v(Yi,Os),gn=new v(Ei,Os),Nn=new v(vi/O,Ci/O),Pn=new v(Qi/O,cs/O),wn=u*Math.PI/180;if(wn){var qs=Math.sin(wn),bs=Math.cos(wn),ei=[bs,-qs,qs,bs];Ds._matMult(ei),Bi._matMult(ei),gn._matMult(ei),us._matMult(ei)}var Ni=bn.stretch+bn.fixed,xs=Ir.stretch+Ir.fixed;return{tl:Ds,tr:Bi,bl:gn,br:us,tex:{x:B.paddedRect.x+1+Ni,y:B.paddedRect.y+1+xs,w:Tn.stretch+Tn.fixed-Ni,h:ii.stretch+ii.fixed-xs},writingMode:void 0,glyphOffset:[0,0],sectionIndex:0,pixelOffsetTL:Nn,pixelOffsetBR:Pn,minFontScaleX:Ht/O/J,minFontScaleY:xr/O/Q,isSDF:p}};if(x&&(B.stretchX||B.stretchY))for(var ir=pE(ie,He,ke),sn=pE(fe,je,Ne),Lr=0;Lr<ir.length-1;Lr++)for(var hr=ir[Lr],hn=ir[Lr+1],Kr=0;Kr<sn.length-1;Kr++)C.push(Sr(hr,sn[Kr],hn,sn[Kr+1]));else C.push(Sr({fixed:0,stretch:-1},{fixed:0,stretch:-1},{fixed:0,stretch:k+1},{fixed:0,stretch:j+1}));return C}function jg(a,u,p){for(var x=0,C=0,B=a;C<B.length;C+=1){var O=B[C];x+=Math.max(u,Math.min(p,O[1]))-Math.max(u,Math.min(p,O[0]))}return x}function pE(a,u,p){for(var x=[{fixed:-1,stretch:0}],C=0,B=a;C<B.length;C+=1){var O=B[C],k=O[0],j=O[1],J=x[x.length-1];x.push({fixed:k-J.stretch,stretch:J.stretch}),x.push({fixed:k-J.stretch,stretch:J.stretch+(j-k)})}return x.push({fixed:u+1,stretch:p}),x}function Gg(a,u,p,x){return a/u*p+x}function Hg(a,u,p,x){return a-u*p/x}var Wg=function(a,u,p,x,C,B,O,k,j,J){if(this.boxStartIndex=a.length,j){var Q=B.top,ie=B.bottom,fe=B.collisionPadding;fe&&(Q-=fe[1],ie+=fe[3]);var _e=ie-Q;_e>0&&(_e=Math.max(10,_e),this.circleDiameter=_e)}else{var ke=B.top*O-k,Ne=B.bottom*O+k,He=B.left*O-k,je=B.right*O+k,Ke=B.collisionPadding;if(Ke&&(He-=Ke[0]*O,ke-=Ke[1]*O,je+=Ke[2]*O,Ne+=Ke[3]*O),J){var lt=new v(He,ke),mt=new v(je,ke),yt=new v(He,Ne),Ot=new v(je,Ne),Ht=J*Math.PI/180;lt._rotate(Ht),mt._rotate(Ht),yt._rotate(Ht),Ot._rotate(Ht),He=Math.min(lt.x,mt.x,yt.x,Ot.x),je=Math.max(lt.x,mt.x,yt.x,Ot.x),ke=Math.min(lt.y,mt.y,yt.y,Ot.y),Ne=Math.max(lt.y,mt.y,yt.y,Ot.y)}a.emplaceBack(u.x,u.y,He,ke,je,Ne,p,x,C)}this.boxEndIndex=a.length},Gh=function(a,u){if(a===void 0&&(a=[]),u===void 0&&(u=Z8),this.data=a,this.length=this.data.length,this.compare=u,this.length>0)for(var p=(this.length>>1)-1;p>=0;p--)this._down(p)};function Z8(a,u){return a<u?-1:a>u?1:0}function Y8(a,u,p){p===void 0&&(p=!1);for(var x=1/0,C=1/0,B=-1/0,O=-1/0,k=a[0],j=0;j<k.length;j++){var J=k[j];(!j||J.x<x)&&(x=J.x),(!j||J.y<C)&&(C=J.y),(!j||J.x>B)&&(B=J.x),(!j||J.y>O)&&(O=J.y)}var Q=Math.min(B-x,O-C),ie=Q/2,fe=new Gh([],Q8);if(Q===0)return new v(x,C);for(var _e=x;_e<B;_e+=Q)for(var ke=C;ke<O;ke+=Q)fe.push(new Hh(_e+ie,ke+ie,ie,a));for(var Ne=(function(Ke){for(var lt=0,mt=0,yt=0,Ot=Ke[0],Ht=0,Kt=Ot.length,xr=Kt-1;Ht<Kt;xr=Ht++){var nr=Ot[Ht],Sr=Ot[xr],ir=nr.x*Sr.y-Sr.x*nr.y;mt+=(nr.x+Sr.x)*ir,yt+=(nr.y+Sr.y)*ir,lt+=3*ir}return new Hh(mt/lt,yt/lt,0,Ke)})(a),He=fe.length;fe.length;){var je=fe.pop();(je.d>Ne.d||!Ne.d)&&(Ne=je,p&&console.log("found best %d after %d probes",Math.round(1e4*je.d)/1e4,He)),je.max-Ne.d<=u||(fe.push(new Hh(je.p.x-(ie=je.h/2),je.p.y-ie,ie,a)),fe.push(new Hh(je.p.x+ie,je.p.y-ie,ie,a)),fe.push(new Hh(je.p.x-ie,je.p.y+ie,ie,a)),fe.push(new Hh(je.p.x+ie,je.p.y+ie,ie,a)),He+=4)}return p&&(console.log("num probes: "+He),console.log("best distance: "+Ne.d)),Ne.p}function Q8(a,u){return u.max-a.max}function Hh(a,u,p,x){this.p=new v(a,u),this.h=p,this.d=(function(C,B){for(var O=!1,k=1/0,j=0;j<B.length;j++)for(var J=B[j],Q=0,ie=J.length,fe=ie-1;Q<ie;fe=Q++){var _e=J[Q],ke=J[fe];_e.y>C.y!=ke.y>C.y&&C.x<(ke.x-_e.x)*(C.y-_e.y)/(ke.y-_e.y)+_e.x&&(O=!O),k=Math.min(k,Tu(C,_e,ke))}return(O?1:-1)*Math.sqrt(k)})(this.p,x),this.max=this.d+this.h*Math.SQRT2}Gh.prototype.push=function(a){this.data.push(a),this.length++,this._up(this.length-1)},Gh.prototype.pop=function(){if(this.length!==0){var a=this.data[0],u=this.data.pop();return this.length--,this.length>0&&(this.data[0]=u,this._down(0)),a}},Gh.prototype.peek=function(){return this.data[0]},Gh.prototype._up=function(a){for(var u=this.data,p=this.compare,x=u[a];a>0;){var C=a-1>>1,B=u[C];if(p(x,B)>=0)break;u[a]=B,a=C}u[a]=x},Gh.prototype._down=function(a){for(var u=this.data,p=this.compare,x=this.length>>1,C=u[a];a<x;){var B=1+(a<<1),O=u[B],k=B+1;if(k<this.length&&p(u[k],O)<0&&(B=k,O=u[k]),p(O,C)>=0)break;u[a]=O,a=B}u[a]=C};var Fy=Number.POSITIVE_INFINITY;function AE(a,u){return u[1]!==Fy?(function(p,x,C){var B=0,O=0;switch(x=Math.abs(x),C=Math.abs(C),p){case"top-right":case"top-left":case"top":O=C-7;break;case"bottom-right":case"bottom-left":case"bottom":O=7-C}switch(p){case"top-right":case"bottom-right":case"right":B=-x;break;case"top-left":case"bottom-left":case"left":B=x}return[B,O]})(a,u[0],u[1]):(function(p,x){var C=0,B=0;x<0&&(x=0);var O=x/Math.sqrt(2);switch(p){case"top-right":case"top-left":B=O-7;break;case"bottom-right":case"bottom-left":B=7-O;break;case"bottom":B=7-x;break;case"top":B=x-7}switch(p){case"top-right":case"bottom-right":C=-O;break;case"top-left":case"bottom-left":C=O;break;case"left":C=x;break;case"right":C=-x}return[C,B]})(a,u[0])}function Ly(a){switch(a){case"right":case"top-right":case"bottom-right":return"right";case"left":case"top-left":case"bottom-left":return"left"}return"center"}function gE(a,u,p,x,C,B,O,k,j,J,Q,ie,fe,_e,ke){var Ne=(function(mt,yt,Ot,Ht,Kt,xr,nr,Sr){for(var ir=Ht.layout.get("text-rotate").evaluate(xr,{})*Math.PI/180,sn=[],Lr=0,hr=yt.positionedLines;Lr<hr.length;Lr+=1)for(var hn=hr[Lr],Kr=0,bn=hn.positionedGlyphs;Kr<bn.length;Kr+=1){var Ir=bn[Kr];if(Ir.rect){var Tn=Ir.rect||{},ii=4,Ei=!0,vi=1,si=0,Ci=(Kt||Sr)&&Ir.vertical,Yi=Ir.metrics.advance*Ir.scale/2;if(Sr&&yt.verticalizable&&(si=hn.lineOffset/2-(Ir.imageName?-(24-Ir.metrics.width*Ir.scale)/2:24*(Ir.scale-1))),Ir.imageName){var Qi=nr[Ir.imageName];Ei=Qi.sdf,ii=1/(vi=Qi.pixelRatio)}var Os=Kt?[Ir.x+Yi,Ir.y]:[0,0],cs=Kt?[0,0]:[Ir.x+Yi+Ot[0],Ir.y+Ot[1]-si],Ds=[0,0];Ci&&(Ds=cs,cs=[0,0]);var Bi=(Ir.metrics.left-ii)*Ir.scale-Yi+cs[0],us=(-Ir.metrics.top-ii)*Ir.scale+cs[1],gn=Bi+T
2097n.w*Ir.scale/vi,Nn=us+Tn.h*Ir.scale/vi,Pn=new v(Bi,us),wn=new v(gn,us),qs=new v(Bi,Nn),bs=new v(gn,Nn);if(Ci){var ei=new v(-Yi,Yi- -17),Ni=-Math.PI/2,xs=12-Yi,En=new v(22-xs,-(Ir.imageName?xs:0)),Wl=new(Function.prototype.bind.apply(v,[null].concat(Ds)));Pn._rotateAround(Ni,ei)._add(En)._add(Wl),wn._rotateAround(Ni,ei)._add(En)._add(Wl),qs._rotateAround(Ni,ei)._add(En)._add(Wl),bs._rotateAround(Ni,ei)._add(En)._add(Wl)}if(ir){var ko=Math.sin(ir),$l=Math.cos(ir),Pi=[$l,-ko,ko,$l];Pn._matMult(Pi),wn._matMult(Pi),qs._matMult(Pi),bs._matMult(Pi)}var Xl=new v(0,0),Ma=new v(0,0);sn.push({tl:Pn,tr:wn,bl:qs,br:bs,tex:Tn,writingMode:yt.writingMode,glyphOffset:Os,sectionIndex:Ir.sectionIndex,isSDF:Ei,pixelOffsetTL:Xl,pixelOffsetBR:Ma,minFontScaleX:0,minFontScaleY:0})}}return sn})(0,p,k,C,B,O,x,a.allowVerticalPlacement),He=a.textSizeData,je=null;He.kind==="source"?(je=[128*C.layout.get("text-size").evaluate(O,{})])[0]>32640&&te(a.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'):He.kind==="composite"&&((je=[128*_e.compositeTextSizes[0].evaluate(O,{},ke),128*_e.compositeTextSizes[1].evaluate(O,{},ke)])[0]>32640||je[1]>32640)&&te(a.layerIds[0]+': Value for "text-size" is >= 255. Reduce your "text-size".'),a.addSymbols(a.text,Ne,je,k,B,O,J,u,j.lineStartIndex,j.lineLength,fe,ke);for(var Ke=0,lt=Q;Ke<lt.length;Ke+=1)ie[lt[Ke]]=a.text.placedSymbolArray.length-1;return 4*Ne.length}function mE(a){for(var u in a)return a[u];return null}function eN(a,u,p,x){var C=a.compareText;if(u in C){for(var B=C[u],O=B.length-1;O>=0;O--)if(x.dist(B[O])<p)return!0}else C[u]=[];return C[u].push(x),!1}var tN=Nh.VectorTileFeature.types,rN=[{name:"a_fade_opacity",components:1,type:"Uint8",offset:0}];function $g(a,u,p,x,C,B,O,k,j,J,Q,ie,fe){var _e=k?Math.min(32640,Math.round(k[0])):0,ke=k?Math.min(32640,Math.round(k[1])):0;a.emplaceBack(u,p,Math.round(32*x),Math.round(32*C),B,O,(_e<<1)+(j?1:0),ke,16*J,16*Q,256*ie,256*fe)}function ky(a,u,p){a.emplaceBack(u.x,u.y,p),a.emplaceBack(u.x,u.y,p),a.emplaceBack(u.x,u.y,p),a.emplaceBack(u.x,u.y,p)}function nN(a){for(var u=0,p=a.sections;u<p.length;u+=1)if(yu(p[u].text))return!0;return!1}var Wh=function(a){this.layoutVertexArray=new Xt,this.indexArray=new ia,this.programConfigurations=a,this.segments=new Y,this.dynamicLayoutVertexArray=new rr,this.opacityVertexArray=new Vl,this.placedSymbolArray=new m};Wh.prototype.isEmpty=function(){return this.layoutVertexArray.length===0&&this.indexArray.length===0&&this.dynamicLayoutVertexArray.length===0&&this.opacityVertexArray.length===0},Wh.prototype.upload=function(a,u,p,x){this.isEmpty()||(p&&(this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,B8.members),this.indexBuffer=a.createIndexBuffer(this.indexArray,u),this.dynamicLayoutVertexBuffer=a.createVertexBuffer(this.dynamicLayoutVertexArray,P8.members,!0),this.opacityVertexBuffer=a.createVertexBuffer(this.opacityVertexArray,rN,!0),this.opacityVertexBuffer.itemSize=1),(p||x)&&this.programConfigurations.upload(a))},Wh.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.programConfigurations.destroy(),this.segments.destroy(),this.dynamicLayoutVertexBuffer.destroy(),this.opacityVertexBuffer.destroy())},or("SymbolBuffers",Wh);var Jp=function(a,u,p){this.layoutVertexArray=new a,this.layoutAttributes=u,this.indexArray=new p,this.segments=new Y,this.collisionVertexArray=new na};Jp.prototype.upload=function(a){this.layoutVertexBuffer=a.createVertexBuffer(this.layoutVertexArray,this.layoutAttributes),this.indexBuffer=a.createIndexBuffer(this.indexArray),this.collisionVertexBuffer=a.createVertexBuffer(this.collisionVertexArray,M8.members,!0)},Jp.prototype.destroy=function(){this.layoutVertexBuffer&&(this.layoutVertexBuffer.destroy(),this.indexBuffer.destroy(),this.segments.destroy(),this.collisionVertexBuffer.destroy())},or("CollisionBuffers",Jp);var Dn=function(a){this.collisionBoxArray=a.collisionBoxArray,this.zoom=a.zoom,this.overscaling=a.overscaling,this.layers=a.layers,this.layerIds=this.layers.map((function(B){return B.id})),this.index=a.index,this.pixelRatio=a.pixelRatio,this.sourceLayerIndex=a.sourceLayerIndex,this.hasPattern=!1,this.hasRTLText=!1,this.sortKeyRanges=[],this.collisionCircleArray=[],this.placementInvProjMatrix=Co([]),this.placementViewportMatrix=Co([]);var u=this.layers[0]._unevaluatedLayout._values;this.textSizeData=Dy(this.zoom,u["text-size"]),this.iconSizeData=Dy(this.zoom,u["icon-size"]);var p=this.layers[0].layout,x=p.get("symbol-sort-key"),C=p.get("symbol-z-order");this.canOverlap=p.get("text-allow-overlap")||p.get("icon-allow-overlap")||p.get("text-ignore-placement")||p.get("icon-ignore-placement"),this.sortFeaturesByKey=C!=="viewport-y"&&x.constantOr(1)!==void 0,this.sortFeaturesByY=(C==="viewport-y"||C==="auto"&&!this.sortFeaturesByKey)&&this.canOverlap,p.get("symbol-placement")==="point"&&(this.writingModes=p.get("text-writing-mode").map((function(B){return Lo[B]}))),this.stateDependentLayerIds=this.layers.filter((function(B){return B.isStateDependent()}
vendor: 15,339 bytes, line 2097
2097)).map((function(B){return B.id})),this.sourceID=a.sourceID};Dn.prototype.createArrays=function(){this.text=new Wh(new Fr(this.layers,this.zoom,(function(a){return/^text/.test(a)}))),this.icon=new Wh(new Fr(this.layers,this.zoom,(function(a){return/^icon/.test(a)}))),this.glyphOffsetArray=new R,this.lineVertexArray=new L,this.symbolInstances=new M},Dn.prototype.calculateGlyphDependencies=function(a,u,p,x,C){for(var B=0;B<a.length;B++)if(u[a.charCodeAt(B)]=!0,(p||x)&&C){var O=$p[a.charAt(B)];O&&(u[O.charCodeAt(0)]=!0)}},Dn.prototype.populate=function(a,u,p){var x=this.layers[0],C=x.layout,B=C.get("text-font"),O=C.get("text-field"),k=C.get("icon-image"),j=(O.value.kind!=="constant"||O.value.value instanceof ci&&!O.value.value.isEmpty()||O.value.value.toString().length>0)&&(B.value.kind!=="constant"||B.value.value.length>0),J=k.value.kind!=="constant"||!!k.value.value||Object.keys(k.parameters).length>0,Q=C.get("symbol-sort-key");if(this.features=[],j||J){for(var ie=u.iconDependencies,fe=u.glyphDependencies,_e=u.availableImages,ke=new Gr(this.zoom),Ne=0,He=a;Ne<He.length;Ne+=1){var je=He[Ne],Ke=je.feature,lt=je.id,mt=je.index,yt=je.sourceLayerIndex,Ot=x._featureFilter.needGeometry,Ht=Ii(Ke,Ot);if(x._featureFilter.filter(ke,Ht,p)){Ot||(Ht.geometry=yi(Ke));var Kt=void 0;if(j){var xr=x.getValueAndResolveTokens("text-field",Ht,p,_e),nr=ci.factory(xr);nN(nr)&&(this.hasRTLText=!0),(!this.hasRTLText||xf()==="unavailable"||this.hasRTLText&&is.isParsed())&&(Kt=O8(nr,x,Ht))}var Sr=void 0;if(J){var ir=x.getValueAndResolveTokens("icon-image",Ht,p,_e);Sr=ir instanceof Wn?ir:Wn.fromString(ir)}if(Kt||Sr){var sn=this.sortFeaturesByKey?Q.evaluate(Ht,{},p):void 0;if(this.features.push({id:lt,text:Kt,icon:Sr,index:mt,sourceLayerIndex:yt,geometry:Ht.geometry,properties:Ke.properties,type:tN[Ke.type],sortKey:sn}),Sr&&(ie[Sr.name]=!0),Kt){var Lr=B.evaluate(Ht,{},p).join(","),hr=C.get("text-rotation-alignment")==="map"&&C.get("symbol-placement")!=="point";this.allowVerticalPlacement=this.writingModes&&this.writingModes.indexOf(Lo.vertical)>=0;for(var hn=0,Kr=Kt.sections;hn<Kr.length;hn+=1){var bn=Kr[hn];if(bn.image)ie[bn.image.name]=!0;else{var Ir=yf(Kt.toString()),Tn=bn.fontStack||Lr,ii=fe[Tn]=fe[Tn]||{};this.calculateGlyphDependencies(bn.text,ii,hr,this.allowVerticalPlacement,Ir)}}}}}}C.get("symbol-placement")==="line"&&(this.features=(function(Ei){var vi={},si={},Ci=[],Yi=0;function Qi(ei){Ci.push(Ei[ei]),Yi++}function Os(ei,Ni,xs){var En=si[ei];return delete si[ei],si[Ni]=En,Ci[En].geometry[0].pop(),Ci[En].geometry[0]=Ci[En].geometry[0].concat(xs[0]),En}function cs(ei,Ni,xs){var En=vi[Ni];return delete vi[Ni],vi[ei]=En,Ci[En].geometry[0].shift(),Ci[En].geometry[0]=xs[0].concat(Ci[En].geometry[0]),En}function Ds(ei,Ni,xs){var En=xs?Ni[0][Ni[0].length-1]:Ni[0][0];return ei+":"+En.x+":"+En.y}for(var Bi=0;Bi<Ei.length;Bi++){var us=Ei[Bi],gn=us.geometry,Nn=us.text?us.text.toString():null;if(Nn){var Pn=Ds(Nn,gn),wn=Ds(Nn,gn,!0);if(Pn in si&&wn in vi&&si[Pn]!==vi[wn]){var qs=cs(Pn,wn,gn),bs=Os(Pn,wn,Ci[qs].geometry);delete vi[Pn],delete si[wn],si[Ds(Nn,Ci[bs].geometry,!0)]=bs,Ci[qs].geometry=null}else Pn in si?Os(Pn,wn,gn):wn in vi?cs(Pn,wn,gn):(Qi(Bi),vi[Pn]=Yi-1,si[wn]=Yi-1)}else Qi(Bi)}return Ci.filter((function(ei){return ei.geometry}))})(this.features)),this.sortFeaturesByKey&&this.features.sort((function(Ei,vi){return Ei.sortKey-vi.sortKey}))}},Dn.prototype.update=function(a,u,p){this.stateDependentLayers.length&&(this.text.programConfigurations.updatePaintArrays(a,u,this.layers,p),this.icon.programConfigurations.updatePaintArrays(a,u,this.layers,p))},Dn.prototype.isEmpty=function(){return this.symbolInstances.length===0&&!this.hasRTLText},Dn.prototype.uploadPending=function(){return!this.uploaded||this.text.programConfigurations.needsUpload||this.icon.programConfigurations.needsUpload},Dn.prototype.upload=function(a){!this.uploaded&&this.hasDebugData()&&(this.textCollisionBox.upload(a),this.iconCollisionBox.upload(a)),this.text.upload(a,this.sortFeaturesByY,!this.uploaded,this.text.programConfigurations.needsUpload),this.icon.upload(a,this.sortFeaturesByY,!this.uploaded,this.icon.programConfigurations.needsUpload),this.uploaded=!0},Dn.prototype.destroyDebugData=function(){this.textCollisionBox.destroy(),this.iconCollisionBox.destroy()},Dn.prototype.destroy=function(){this.text.destroy(),this.icon.destroy(),this.hasDebugData()&&this.destroyDebugData()},Dn.prototype.addToLineVertexArray=function(a,u){var p=this.lineVertexArray.length;if(a.segment!==void 0){for(var x=a.dist(u[a.segment+1]),C=a.dist(u[a.segment]),B={},O=a.segment+1;O<u.length;O++)B[O]={x:u[O].x,y:u[O].y,tileUnitDistanceFromAnchor:x},O<u.length-1&&(x+=u[O+1].dist(u[O]));for(var k=a.segment||0;k>=0;k--)B[k]={x:u[k].x,y:u[k].y,tileUnitDistanceFromAnchor:C},k>0&&(C+=u[k-1].dist(u[k]));for(var j=0;j<u.length;j++){var J=B[j];this.lineVertexArray.emplaceBack(J.x,J.y,J.tileUnitDistanceFromAnchor)}}return{lineStartIndex:p,lineLength:this.lineVertexArray.length-p}},Dn.prototype.addSymbols=function(a,u,p,x,C,B,O,k,j,J,Q,ie){for(var fe=a.indexArray,_e=a.layoutVertexArray,ke=a.segments.prepareSegment(4*u.length,_e,fe,this.canOverlap?B.sortKey:void 0),Ne=this.glyphOffsetArray.length,He=ke.vertexLength,je=this.allowVerticalPlacement&&O===Lo.vertical?Math.PI/2:0,Ke=B.text&&B.text.sections,lt=0;lt<u.length;lt++){var mt=u[lt],yt=mt.tl,Ot=mt.tr,Ht=mt.bl,Kt=mt.br,xr=mt.tex,nr=mt.pixelOffsetTL,Sr=mt.pixelOffsetBR,ir=mt.minFontScaleX,sn=mt.minFontScaleY,Lr=mt.glyphOffset,hr=mt.isSDF,hn=mt.sectionIndex,Kr=ke.vertexLength,bn=Lr[1];$g(_e,k.x,k.y,yt.x,bn+yt.y,xr.x,xr.y,p,hr,nr.x,nr.y,ir,sn),$g(_e,k.x,k.y,Ot.x,bn+Ot.y,xr.x+xr.w,xr.y,p,hr,Sr.x,nr.y,ir,sn),$g(_e,k.x,k.y,Ht.x,bn+Ht.y,xr.x,xr.y+xr.h,p,hr,nr.x,Sr.y,ir,sn),$g(_e,k.x,k.y,Kt.x,bn+Kt.y,xr.x+xr.w,xr.y+xr.h,p,hr,Sr.x,Sr.y,ir,sn),ky(a.dynamicLayoutVertexArray,k,je),fe.emplaceBack(Kr,Kr+1,Kr+2),fe.emplaceBack(Kr+1,Kr+2,Kr+3),ke.vertexLength+=4,ke.primitiveLength+=2,this.glyphOffsetArray.emplaceBack(Lr[0]),lt!==u.length-1&&hn===u[lt+1].sectionIndex||a.programConfigurations.populatePaintArrays(_e.length,B,B.index,{},ie,Ke&&Ke[hn])}a.placedSymbolArray.emplaceBack(k.x,k.y,Ne,this.glyphOffsetArray.length-Ne,He,j,J,k.segment,p?p[0]:0,p?p[1]:0,x[0],x[1],O,0,!1,0,Q)},Dn.prototype._addCollisionDebugVertex=function(a,u,p,x,C,B){return u.emplaceBack(0,0),a.emplaceBack(p.x,p.y,x,C,Math.round(B.x),Math.round(B.y))},Dn.prototype.addCollisionDebugVertices=function(a,u,p,x,C,B,O){var k=C.segments.prepareSegment(4,C.layoutVertexArray,C.indexArray),j=k.vertexLength,J=C.layoutVertexArray,Q=C.collisionVertexArray,ie=O.anchorX,fe=O.anchorY;this._addCollisionDebugVertex(J,Q,B,ie,fe,new v(a,u)),this._addCollisionDebugVertex(J,Q,B,ie,fe,new v(p,u)),this._addCollisionDebugVertex(J,Q,B,ie,fe,new v(p,x)),this._addCollisionDebugVertex(J,Q,B,ie,fe,new v(a,x)),k.vertexLength+=4;var _e=C.indexArray;_e.emplaceBack(j,j+1),_e.emplaceBack(j+1,j+2),_e.emplaceBack(j+2,j+3),_e.emplaceBack(j+3,j),k.primitiveLength+=4},Dn.prototype.addDebugCollisionBoxes=function(a,u,p,x){for(var C=a;C<u;C++){var B=this.collisionBoxArray.get(C);this.addCollisionDebugVertices(B.x1,B.y1,B.x2,B.y2,x?this.textCollisionBox:this.iconCollisionBox,B.anchorPoint,p)}},Dn.prototype.generateCollisionDebugBuffers=function(){this.hasDebugData()&&this.destroyDebugData(),this.textCollisionBox=new Jp(ra,JT.members,S),this.iconCollisionBox=new Jp(ra,JT.members,S);for(var a=0;a<this.symbolInstances.length;a++){var u=this.symbolInstances.get(a);this.addDebugCollisionBoxes(u.textBoxStartIndex,u.textBoxEndIndex,u,!0),this.addDebugCollisionBoxes(u.verticalTextBoxStartIndex,u.verticalTextBoxEndIndex,u,!0),this.addDebugCollisionBoxes(u.iconBoxStartIndex,u.iconBoxEndIndex,u,!1),this.addDebugCollisionBoxes(u.verticalIconBoxStartIndex,u.verticalIconBoxEndIndex,u,!1)}},Dn.prototype._deserializeCollisionBoxesForSymbol=function(a,u,p,x,C,B,O,k,j){for(var J={},Q=u;Q<p;Q++){var ie=a.get(Q);J.textBox={x1:ie.x1,y1:ie.y1,x2:ie.x2,y2:ie.y2,anchorPointX:ie.anchorPointX,anchorPointY:ie.anchorPointY},J.textFeatureIndex=ie.featureIndex;break}for(var fe=x;fe<C;fe++){var _e=a.get(fe);J.verticalTextBox={x1:_e.x1,y1:_e.y1,x2:_e.x2,y2:_e.y2,anchorPointX:_e.anchorPointX,anchorPointY:_e.anchorPointY},J.verticalTextFeatureIndex=_e.featureIndex;break}for(var ke=B;ke<O;ke++){var Ne=a.get(ke);J.iconBox={x1:Ne.x1,y1:Ne.y1,x2:Ne.x2,y2:Ne.y2,anchorPointX:Ne.anchorPointX,anchorPointY:Ne.anchorPointY},J.iconFeatureIndex=Ne.featureIndex;break}for(var He=k;He<j;He++){var je=a.get(He);J.verticalIconBox={x1:je.x1,y1:je.y1,x2:je.x2,y2:je.y2,anchorPointX:je.anchorPointX,anchorPointY:je.anchorPointY},J.verticalIconFeatureIndex=je.featureIndex;break}return J},Dn.prototype.deserializeCollisionBoxes=function(a){this.collisionArrays=[];for(var u=0;u<this.symbolInstances.length;u++){var p=this.symbolInstances.get(u);this.collisionArrays.push(this._deserializeCollisionBoxesForSymbol(a,p.textBoxStartIndex,p.textBoxEndIndex,p.verticalTextBoxStartIndex,p.verticalTextBoxEndIndex,p.iconBoxStartIndex,p.iconBoxEndIndex,p.verticalIconBoxStartIndex,p.verticalIconBoxEndIndex))}},Dn.prototype.hasTextData=function(){return this.text.segments.get().length>0},Dn.prototype.hasIconData=function(){return this.icon.segments.get().length>0},Dn.prototype.hasDebugData=function(){return this.textCollisionBox&&this.iconCollisionBox},Dn.prototype.hasTextCollisionBoxData=function(){return this.hasDebugData()&&this.textCollisionBox.segments.get().length>0},Dn.prototype.hasIconCollisionBoxData=function(){return this.hasDebugData()&&this.iconCollisionBox.segments.get().length>0},Dn.prototype.addIndicesForPlacedSymbol=function(a,u){for(var p=a.placedSymbolArray.get(u),x=p.vertexStartIndex+4*p.numGlyphs,C=p.vertexStartIndex;C<x;C+=4)a.indexArray.emplaceBack(C,C+1,C+2),a.indexArray.emplaceBack(C+1,C+2,C+3)},Dn.prototype.getSortedSymbolIndexes=function(a){if(this.sortedAngle===a&&this.symbolInstanceIndexes!==void 0)return this.symbolInstanceIndexes;for(var u=Math.sin(a),p=Math.cos(a),x=[],C=[],B=[],O=0;O<this.symbolInstances.length;++O){B.push(O);var k=this.symbolInstances.get(O);x.push(0|Math.round(u*k.anchorX+p*k.anchorY)),C.push(k.featureIndex)}return B.sort((function(j,J){return x[j]-x[J]||C[J]-C[j]})),B},Dn.prototype.addToSortKeyRanges=function(a,u){var p=this.sortKeyRanges[this.sortKeyRanges.length-1];p&&p.sortKey===u?p.symbolInstanceEnd=a+1:this.sortKeyRanges.push({sortKey:u,symbolInstanceStart:a,symbolInstanceEnd:a+1})},Dn.prototype.sortFeatures=function(a){var u=this;if(this.sortFeaturesByY&&this.sortedAngle!==a&&!(this.text.segments.get().length>1||this.icon.segments.get().length>1)){this.symbolInstanceIndexes=this.getSortedSymbolIndexes(a),this.sortedAngle=a,this.text.indexArray.clear(),this.icon.indexArray.clear(),this.featureSortOrder=[];for(var p=0,x=this.symbolInstanceIndexes;p<x.length;p+=1){var C=this.symbolInstances.get(x[p]);this.featureSortOrder.push(C.featureIndex),[C.rightJustifiedTextSymbolIndex,C.centerJustifiedTextSymbolIndex,C.leftJustifiedTextSymbolIndex].forEach((function(B,O,k){B>=0&&k.indexOf(B)===O&&u.addIndicesForPlacedSymbol(u.text,B)})),C.verticalPlacedTextSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.text,C.verticalPlacedTextSymbolIndex),C.placedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,C.placedIconSymbolIndex),C.verticalPlacedIconSymbolIndex>=0&&this.addIndicesForPlacedSymbol(this.icon,C.verticalPlacedIconSymbolIndex)}this.text.indexBuffer&&this.text.indexBuffer.updateData(this.text.indexArray),this.icon.indexBuffer&&this.icon.indexBuffer.updateData(this.icon.indexArray)}},or("SymbolBucket",Dn,{omit:["layers","collisionBoxArray","features","compareText"]}),Dn.MAX_GLYPHS=65535,Dn.addDynamicAttributes=ky;var iN=new qn({"symbol-placement":new wr(ae.layout_symbol["symbol-placement"]),"symbol-spacing":new wr(ae.layout_symbol["symbol-spacing"]),"symbol-avoid-edges":new wr(ae.layout_symbol["symbol-avoid-edges"]),"symbol-sort-key":new ur(ae.layout_symbol["symbol-sort-key"]),"symbol-z-order":new wr(ae.layout_symbol["symbol-z-order"]),"icon-allow-overlap":new wr(ae.layout_symbol["icon-allow-overlap"]),"icon-ignore-placement":new wr(ae.layout_symbol["icon-ignore-placement"]),"icon-optional":new wr(ae.layout_symbol["icon-optional"]),"icon-rotation-alignment":new wr(ae.layout_symbol["icon-rotation-alignment"]),"icon-size":new ur(ae.layout_symbol["icon-size"]),"icon-text-fit":new wr(ae.layout_symbol["icon-text-fit"]),"icon-text-fit-padding":new wr(ae.layout_symbol["icon-text-fit-padding"]),"icon-image":new ur(ae.layout_symbol["icon-image"]),"icon-rotate":new ur(ae.layout_symbol["icon-rotate"]),"icon-padding":new wr(ae.layout_symbol["icon-padding"]),"icon-keep-upright":new wr(ae.layout_symbol["icon-keep-upright"]),"icon-offset":new ur(ae.layout_symbol["icon-offset"]),"icon-anchor":new ur(ae.layout_symbol["icon-anchor"]),"icon-pitch-alignment":new wr(ae.layout_symbol["icon-pitch-alignment"]),"text-pitch-alignment":new wr(ae.layout_symbol["text-pitch-alignment"]),"text-rotation-alignment":new wr(ae.layout_symbol["text-rotation-alignment"]),"text-field":new ur(ae.layout_symbol["text-field"]),"text-font":new ur(ae.layout_symbol["text-font"]),"text-size":new ur(ae.layout_symbol["text-size"]),"text-max-width":new ur(ae.layout_symbol["text-max-width"]),"text-line-height":new wr(ae.layout_symbol["text-line-height"]),"text-letter-spacing":new ur(ae.layout_symbol["text-letter-spacing"]),"text-justify":new ur(ae.layout_symbol["text-justify"]),"text-radial-offset":new ur(ae.layout_symbol["text-radial-offset"]),"text-variable-anchor":new wr(ae.layout_symbol["text-variable-anchor"]),"text-anchor":new ur(ae.layout_symbol["text-anchor"]),"text-max-angle":new wr(ae.layout_symbol["text-max-angle"]),"text-writing-mode":new wr(ae.layout_symbol["text-writing-mode"]),"text-rotate":new ur(ae.layout_symbol["text-rotate"]),"text-padding":new wr(ae.layout_symbol["text-padding"]),"text-keep-upright":new wr(ae.layout_symbol["text-keep-upright"]),"text-transform":new ur(ae.layout_symbol["text-transform"]),"text-offset":new ur(ae.layout_symbol["text-offset"]),"text-allow-overlap":new wr(ae.layout_symbol["text-allow-overlap"]),"text-ignore-placement":new wr(ae.layout_symbol["text-ignore-placement"]),"text-optional":new wr(ae.layout_symbol["text-optional"])}),Ny={paint:new qn({"icon-opacity":new ur(ae.paint_symbol["icon-opacity"]),"icon-color":new ur(ae.paint_symbol["icon-color"]),"icon-halo-color":new ur(ae.paint_symbol["icon-halo-color"]),"icon-halo-width":new ur(ae.paint_symbol["icon-halo-width"]),"icon-halo-blur":new ur(ae.paint_symbol["icon-halo-blur"]),"icon-translate":new wr(ae.paint_symbol["icon-translate"]),"icon-translate-anchor":new wr(ae.paint_symbol["icon-translate-anchor"]),"text-opacity":new ur(ae.paint_symbol["text-opacity"]),"text-color":new ur(ae.paint_symbol["text-color"],{runtimeType:Gt,getOverride:function(a){return a.textColor},hasOverride:function(a){return!!a.textColor}}),"text-halo-color":new ur(ae.paint_symbol["text-halo-color"]),"text-halo-width":new ur(ae.paint_symbol["text-halo-width"]),"text-halo-blur":new ur(ae.paint_symbol["text-halo-blur"]),"text-translate":new wr(ae.paint_symbol["text-translate"]),"text-translate-anchor":new wr(ae.paint_symbol["text-translate-anchor"])}),layout:iN},$h=function(a){this.type=a.property.overrides?a.property.overrides.runtimeType:Ft,this.defaultValue=a};
2097$h.prototype.evaluate=function(a){if(a.formattedSection){var u=this.defaultValue.property.overrides;if(u&&u.hasOverride(a.formattedSection))return u.getOverride(a.formattedSection)}return a.feature&&a.featureState?this.defaultValue.evaluate(a.feature,a.featureState):this.defaultValue.property.specification.default},$h.prototype.eachChild=function(a){this.defaultValue.isConstant()||a(this.defaultValue.value._styleExpression.expression)},$h.prototype.outputDefined=function(){return!1},$h.prototype.serialize=function(){return null},or("FormatSectionOverride",$h,{omit:["defaultValue"]});var sN=(function(a){function u(p){a.call(this,p,Ny)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.recalculate=function(p,x){if(a.prototype.recalculate.call(this,p,x),this.layout.get("icon-rotation-alignment")==="auto"&&(this.layout._values["icon-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-rotation-alignment")==="auto"&&(this.layout._values["text-rotation-alignment"]=this.layout.get("symbol-placement")!=="point"?"map":"viewport"),this.layout.get("text-pitch-alignment")==="auto"&&(this.layout._values["text-pitch-alignment"]=this.layout.get("text-rotation-alignment")),this.layout.get("icon-pitch-alignment")==="auto"&&(this.layout._values["icon-pitch-alignment"]=this.layout.get("icon-rotation-alignment")),this.layout.get("symbol-placement")==="point"){var C=this.layout.get("text-writing-mode");if(C){for(var B=[],O=0,k=C;O<k.length;O+=1){var j=k[O];B.indexOf(j)<0&&B.push(j)}this.layout._values["text-writing-mode"]=B}else this.layout._values["text-writing-mode"]=["horizontal"]}this._setPaintOverrides()},u.prototype.getValueAndResolveTokens=function(p,x,C,B){var O=this.layout.get(p).evaluate(x,{},C,B),k=this._unevaluatedLayout._values[p];return k.isDataDriven()||xo(k.value)||!O?O:(function(j,J){return J.replace(/{([^{}]+)}/g,(function(Q,ie){return ie in j?String(j[ie]):""}))})(x.properties,O)},u.prototype.createBucket=function(p){return new Dn(p)},u.prototype.queryRadius=function(){return 0},u.prototype.queryIntersectsFeature=function(){return!1},u.prototype._setPaintOverrides=function(){for(var p=0,x=Ny.paint.overridableProperties;p<x.length;p+=1){var C=x[p];if(u.hasPaintOverride(this.layout,C)){var B,O=this.paint.get(C),k=new $h(O),j=new Sa(k,O.property.specification);B=O.value.kind==="constant"||O.value.kind==="source"?new Za("source",j):new Rl("composite",j,O.value.zoomStops,O.value._interpolationType),this.paint._values[C]=new ss(O.property,B,O.parameters)}}},u.prototype._handleOverridablePaintPropertyUpdate=function(p,x,C){return!(!this.layout||x.isDataDriven()||C.isDataDriven())&&u.hasPaintOverride(this.layout,p)},u.hasPaintOverride=function(p,x){var C=p.get("text-field"),B=Ny.paint.properties[x],O=!1,k=function(Q){for(var ie=0,fe=Q;ie<fe.length;ie+=1)if(B.overrides&&B.overrides.hasOverride(fe[ie]))return void(O=!0)};if(C.value.kind==="constant"&&C.value.value instanceof ci)k(C.value.value.sections);else if(C.value.kind==="source"){var j=function(Q){O||(Q instanceof Fi&&$n(Q.value)===ln?k(Q.value.sections):Q instanceof ms?k(Q.sections):Q.eachChild(j))},J=C.value;J._styleExpression&&j(J._styleExpression.expression)}return O},u})(zr),oN={paint:new qn({"background-color":new wr(ae.paint_background["background-color"]),"background-pattern":new fs(ae.paint_background["background-pattern"]),"background-opacity":new wr(ae.paint_background["background-opacity"])})},aN=(function(a){function u(p){a.call(this,p,oN)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u})(zr),lN={paint:new qn({"raster-opacity":new wr(ae.paint_raster["raster-opacity"]),"raster-hue-rotate":new wr(ae.paint_raster["raster-hue-rotate"]),"raster-brightness-min":new wr(ae.paint_raster["raster-brightness-min"]),"raster-brightness-max":new wr(ae.paint_raster["raster-brightness-max"]),"raster-saturation":new wr(ae.paint_raster["raster-saturation"]),"raster-contrast":new wr(ae.paint_raster["raster-contrast"]),"raster-resampling":new wr(ae.paint_raster["raster-resampling"]),"raster-fade-duration":new wr(ae.paint_raster["raster-fade-duration"])})},cN=(function(a){function u(p){a.call(this,p,lN)}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u})(zr),uN=(function(a){function u(p){a.call(this,p,{}),this.implementation=p}return a&&(u.__proto__=a),(u.prototype=Object.create(a&&a.prototype)).constructor=u,u.prototype.is3D=function(){return this.implementation.renderingMode==="3d"},u.prototype.hasOffscreenPass=function(){return this.implementation.prerender!==void 0},u.prototype.recalculate=function(){},u.prototype.updateTransitions=function(){},u.prototype.hasTransition=function(){},u.prototype.serialize=function(){},u.prototype.onAdd=function(p){this.implementation.onAdd&&this.implementation.onAdd(p,p.painter.context.gl)},u.prototype.onRemove=function(p){this.implementation.onRemove&&this.implementation.onRemove(p,p.painter.context.gl)},u})(zr),fN={circle:xy,heatmap:qk,hillshade:Kk,fill:d8,"fill-extrusion":x8,line:I8,symbol
vendor: 14,466 bytes, line 2097
2097:sN,background:aN,raster:cN},_E=I.HTMLImageElement,yE=I.HTMLCanvasElement,vE=I.HTMLVideoElement,bE=I.ImageData,Xg=I.ImageBitmap,Bf=function(a,u,p,x){this.context=a,this.format=p,this.texture=a.gl.createTexture(),this.update(u,x)};Bf.prototype.update=function(a,u,p){var x=a.width,C=a.height,B=!(this.size&&this.size[0]===x&&this.size[1]===C||p),O=this.context,k=O.gl;if(this.useMipmap=!!(u&&u.useMipmap),k.bindTexture(k.TEXTURE_2D,this.texture),O.pixelStoreUnpackFlipY.set(!1),O.pixelStoreUnpack.set(1),O.pixelStoreUnpackPremultiplyAlpha.set(this.format===k.RGBA&&(!u||u.premultiply!==!1)),B)this.size=[x,C],a instanceof _E||a instanceof yE||a instanceof vE||a instanceof bE||Xg&&a instanceof Xg?k.texImage2D(k.TEXTURE_2D,0,this.format,this.format,k.UNSIGNED_BYTE,a):k.texImage2D(k.TEXTURE_2D,0,this.format,x,C,0,this.format,k.UNSIGNED_BYTE,a.data);else{var j=p||{x:0,y:0},J=j.x,Q=j.y;a instanceof _E||a instanceof yE||a instanceof vE||a instanceof bE||Xg&&a instanceof Xg?k.texSubImage2D(k.TEXTURE_2D,0,J,Q,k.RGBA,k.UNSIGNED_BYTE,a):k.texSubImage2D(k.TEXTURE_2D,0,J,Q,x,C,k.RGBA,k.UNSIGNED_BYTE,a.data)}this.useMipmap&&this.isSizePowerOfTwo()&&k.generateMipmap(k.TEXTURE_2D)},Bf.prototype.bind=function(a,u,p){var x=this.context.gl;x.bindTexture(x.TEXTURE_2D,this.texture),p!==x.LINEAR_MIPMAP_NEAREST||this.isSizePowerOfTwo()||(p=x.LINEAR),a!==this.filter&&(x.texParameteri(x.TEXTURE_2D,x.TEXTURE_MAG_FILTER,a),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_MIN_FILTER,p||a),this.filter=a),u!==this.wrap&&(x.texParameteri(x.TEXTURE_2D,x.TEXTURE_WRAP_S,u),x.texParameteri(x.TEXTURE_2D,x.TEXTURE_WRAP_T,u),this.wrap=u)},Bf.prototype.isSizePowerOfTwo=function(){return this.size[0]===this.size[1]&&Math.log(this.size[0])/Math.LN2%1==0},Bf.prototype.destroy=function(){this.context.gl.deleteTexture(this.texture),this.texture=null};var Uy=function(a){var u=this;this._callback=a,this._triggered=!1,typeof MessageChannel<"u"&&(this._channel=new MessageChannel,this._channel.port2.onmessage=function(){u._triggered=!1,u._callback()})};Uy.prototype.trigger=function(){var a=this;this._triggered||(this._triggered=!0,this._channel?this._channel.port1.postMessage(!0):setTimeout((function(){a._triggered=!1,a._callback()}),0))},Uy.prototype.remove=function(){delete this._channel,this._callback=function(){}};var Xh=function(a,u,p){this.target=a,this.parent=u,this.mapId=p,this.callbacks={},this.tasks={},this.taskQueue=[],this.cancelCallbacks={},Ee(["receive","process"],this),this.invoker=new Uy(this.process),this.target.addEventListener("message",this.receive,!1),this.globalScope=we()?a:I};function xE(a,u,p){var x=2*Math.PI*6378137/256/Math.pow(2,p);return[a*x-2*Math.PI*6378137/2,u*x-2*Math.PI*6378137/2]}Xh.prototype.send=function(a,u,p,x,C){var B=this;C===void 0&&(C=!1);var O=Math.round(1e18*Math.random()).toString(36).substring(0,10);p&&(this.callbacks[O]=p);var k=Ze(this.globalScope)?void 0:[];return this.target.postMessage({id:O,type:a,hasCallback:!!p,targetMapId:x,mustQueue:C,sourceMapId:this.mapId,data:ro(u,k)},k),{cancel:function(){p&&delete B.callbacks[O],B.target.postMessage({id:O,type:"<cancel>",targetMapId:x,sourceMapId:B.mapId})}}},Xh.prototype.receive=function(a){var u=a.data,p=u.id;if(p&&(!u.targetMapId||this.mapId===u.targetMapId))if(u.type==="<cancel>"){delete this.tasks[p];var x=this.cancelCallbacks[p];delete this.cancelCallbacks[p],x&&x()}else we()||u.mustQueue?(this.tasks[p]=u,this.taskQueue.push(p),this.invoker.trigger()):this.processTask(p,u)},Xh.prototype.process=function(){if(this.taskQueue.length){var a=this.taskQueue.shift(),u=this.tasks[a];delete this.tasks[a],this.taskQueue.length&&this.invoker.trigger(),u&&this.processTask(a,u)}},Xh.prototype.processTask=function(a,u){var p=this;if(u.type==="<response>"){var x=this.callbacks[a];delete this.callbacks[a],x&&(u.error?x(_s(u.error)):x(null,_s(u.data)))}else{var C=!1,B=Ze(this.globalScope)?void 0:[],O=u.hasCallback?function(Q,ie){C=!0,delete p.cancelCallbacks[a],p.target.postMessage({id:a,type:"<response>",sourceMapId:p.mapId,error:Q?ro(Q):null,data:ro(ie,B)},B)}:function(Q){C=!0},k=null,j=_s(u.data);if(this.parent[u.type])k=this.parent[u.type](u.sourceMapId,j,O);else if(this.parent.getWorkerSource){var J=u.type.split(".");k=this.parent.getWorkerSource(u.sourceMapId,J[0],j.source)[J[1]](j,O)}else O(new Error("Could not find function "+u.type));!C&&k&&k.cancel&&(this.cancelCallbacks[a]=k.cancel)}},Xh.prototype.remove=function(){this.invoker.remove(),this.target.removeEventListener("message",this.receive,!1)};var ji=function(a,u){a&&(u?this.setSouthWest(a).setNorthEast(u):a.length===4?this.setSouthWest([a[0],a[1]]).setNorthEast([a[2],a[3]]):this.setSouthWest(a[0]).setNorthEast(a[1]))};ji.prototype.setNorthEast=function(a){return this._ne=a instanceof ni?new ni(a.lng,a.lat):ni.convert(a),this},ji.prototype.setSouthWest=function(a){return this._sw=a instanceof ni?new ni(a.lng,a.lat):ni.convert(a),this},ji.prototype.extend=function(a){var u,p,x=this._sw,C=this._ne;if(a instanceof ni)u=a,p=a;else{if(!(a instanceof ji))return Array.isArray(a)?a.length===4||a.every(Array.isArray)?this.extend(ji.convert(a)):this.extend(ni.convert(a)):this;if(p=a._ne,!(u=a._sw)||!p)return this}return x||C?(x.lng=Math.min(u.lng,x.lng),x.lat=Math.min(u.lat,x.lat),C.lng=Math.max(p.lng,C.lng),C.lat=Math.max(p.lat,C.lat)):(this._sw=new ni(u.lng,u.lat),this._ne=new ni(p.lng,p.lat)),this},ji.prototype.getCenter=function(){return new ni((this._sw.lng+this._ne.lng)/2,(this._sw.lat+this._ne.lat)/2)},ji.prototype.getSouthWest=function(){return this._sw},ji.prototype.getNorthEast=function(){return this._ne},ji.prototype.getNorthWest=function(){return new ni(this.getWest(),this.getNorth())},ji.prototype.getSouthEast=function(){return new ni(this.getEast(),this.getSouth())},ji.prototype.getWest=function(){return this._sw.lng},ji.prototype.getSouth=function(){return this._sw.lat},ji.prototype.getEast=function(){return this._ne.lng},ji.prototype.getNorth=function(){return this._ne.lat},ji.prototype.toArray=function(){return[this._sw.toArray(),this._ne.toArray()]},ji.prototype.toString=function(){return"LngLatBounds("+this._sw.toString()+", "+this._ne.toString()+")"},ji.prototype.isEmpty=function(){return!(this._sw&&this._ne)},ji.prototype.contains=function(a){var u=ni.convert(a),p=u.lng,x=u.lat,C=this._sw.lng<=p&&p<=this._ne.lng;return this._sw.lng>this._ne.lng&&(C=this._sw.lng>=p&&p>=this._ne.lng),this._sw.lat<=x&&x<=this._ne.lat&&C},ji.convert=function(a){return!a||a instanceof ji?a:new ji(a)};var ni=function(a,u){if(isNaN(a)||isNaN(u))throw new Error("Invalid LngLat object: ("+a+", "+u+")");if(this.lng=+a,this.lat=+u,this.lat>90||this.lat<-90)throw new Error("Invalid LngLat latitude value: must be between -90 and 90")};ni.prototype.wrap=function(){return new ni(V(this.lng,-180,180),this.lat)},ni.prototype.toArray=function(){return[this.lng,this.lat]},ni.prototype.toString=function(){return"LngLat("+this.lng+", "+this.lat+")"},ni.prototype.distanceTo=function(a){var u=Math.PI/180,p=this.lat*u,x=a.lat*u,C=Math.sin(p)*Math.sin(x)+Math.cos(p)*Math.cos(x)*Math.cos((a.lng-this.lng)*u);return 63710088e-1*Math.acos(Math.min(C,1))},ni.prototype.toBounds=function(a){a===void 0&&(a=0);var u=360*a/40075017,p=u/Math.cos(Math.PI/180*this.lat);return new ji(new ni(this.lng-p,this.lat-u),new ni(this.lng+p,this.lat+u))},ni.convert=function(a){if(a instanceof ni)return a;if(Array.isArray(a)&&(a.length===2||a.length===3))return new ni(Number(a[0]),Number(a[1]));if(!Array.isArray(a)&&typeof a=="object"&&a!==null)return new ni(Number("lng"in a?a.lng:a.lon),Number(a.lat));throw new Error("`LngLatLike` argument must be specified as a LngLat instance, an object {lng: <lng>, lat: <lat>}, an object {lon: <lng>, lat: <lat>}, or an array of [<lng>, <lat>]")};var wE=2*Math.PI*63710088e-1;function TE(a){return wE*Math.cos(a*Math.PI/180)}function EE(a){return(180+a)/360}function CE(a){return(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+a*Math.PI/360)))/360}function SE(a,u){return a/TE(u)}function zy(a){return 360/Math.PI*Math.atan(Math.exp((180-360*a)*Math.PI/180))-90}var Pf=function(a,u,p){p===void 0&&(p=0),this.x=+a,this.y=+u,this.z=+p};Pf.fromLngLat=function(a,u){u===void 0&&(u=0);var p=ni.convert(a);return new Pf(EE(p.lng),CE(p.lat),SE(u,p.lat))},Pf.prototype.toLngLat=function(){return new ni(360*this.x-180,zy(this.y))},Pf.prototype.toAltitude=function(){return this.z*TE(zy(this.y))},Pf.prototype.meterInMercatorCoordinateUnits=function(){return 1/wE*(a=zy(this.y),1/Math.cos(a*Math.PI/180));var a};var Mf=function(a,u,p){this.z=a,this.x=u,this.y=p,this.key=Kp(0,a,a,u,p)};Mf.prototype.equals=function(a){return this.z===a.z&&this.x===a.x&&this.y===a.y},Mf.prototype.url=function(a,u){var p,x,C,B,O,k=(x=this.y,C=this.z,B=xE(256*(p=this.x),256*(x=Math.pow(2,C)-x-1),C),O=xE(256*(p+1),256*(x+1),C),B[0]+","+B[1]+","+O[0]+","+O[1]),j=(function(J,Q,ie){for(var fe,_e="",ke=J;ke>0;ke--)_e+=(Q&(fe=1<<ke-1)?1:0)+(ie&fe?2:0);return _e})(this.z,this.x,this.y);return a[(this.x+this.y)%a.length].replace("{prefix}",(this.x%16).toString(16)+(this.y%16).toString(16)).replace("{z}",String(this.z)).replace("{x}",String(this.x)).replace("{y}",String(u==="tms"?Math.pow(2,this.z)-this.y-1:this.y)).replace("{quadkey}",j).replace("{bbox-epsg-3857}",k)},Mf.prototype.getTilePoint=function(a){var u=Math.pow(2,this.z);return new v(8192*(a.x*u-this.x),8192*(a.y*u-this.y))},Mf.prototype.toString=function(){return this.z+"/"+this.x+"/"+this.y};var IE=function(a,u){this.wrap=a,this.canonical=u,this.key=Kp(a,u.z,u.z,u.x,u.y)},Gi=function(a,u,p,x,C){this.overscaledZ=a,this.wrap=u,this.canonical=new Mf(p,+x,+C),this.key=Kp(u,a,p,x,C)};function Kp(a,u,p,x,C){(a*=2)<0&&(a=-1*a-1);var B=1<<p;return(B*B*a+B*C+x).toString(36)+p.toString(36)+u.toString(36)}Gi.prototype.equals=function(a){return this.overscaledZ===a.overscaledZ&&this.wrap===a.wrap&&this.canonical.equals(a.canonical)},Gi.prototype.scaledTo=function(a){var u=this.canonical.z-a;return a>this.canonical.z?new Gi(a,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y):new Gi(a,this.wrap,a,this.canonical.x>>u,this.canonical.y>>u)},Gi.prototype.calculateScaledKey=function(a,u){var p=this.canonical.z-a;return a>this.canonical.z?Kp(this.wrap*+u,a,this.canonical.z,this.canonical.x,this.canonical.y):Kp(this.wrap*+u,a,a,this.canonical.x>>p,this.canonical.y>>p)},Gi.prototype.isChildOf=function(a){if(a.wrap!==this.wrap)return!1;var u=this.canonical.z-a.canonical.z;return a.overscaledZ===0||a.overscaledZ<this.overscaledZ&&a.canonical.x===this.canonical.x>>u&&a.canonical.y===this.canonical.y>>u},Gi.prototype.children=function(a){if(this.overscaledZ>=a)return[new Gi(this.overscaledZ+1,this.wrap,this.canonical.z,this.canonical.x,this.canonical.y)];var u=this.canonical.z+1,p=2*this.canonical.x,x=2*this.canonical.y;return[new Gi(u,this.wrap,u,p,x),new Gi(u,this.wrap,u,p+1,x),new Gi(u,this.wrap,u,p,x+1),new Gi(u,this.wrap,u,p+1,x+1)]},Gi.prototype.isLessThan=function(a){return this.wrap<a.wrap||!(this.wrap>a.wrap)&&(this.overscaledZ<a.overscaledZ||!(this.overscaledZ>a.overscaledZ)&&(this.canonical.x<a.canonical.x||!(this.canonical.x>a.canonical.x)&&this.canonical.y<a.canonical.y))},Gi.prototype.wrapped=function(){return new Gi(this.overscaledZ,0,this.canonical.z,this.canonical.x,this.canonical.y)},Gi.prototype.unwrapTo=function(a){return new Gi(this.overscaledZ,a,this.canonical.z,this.canonical.x,this.canonical.y)},Gi.prototype.overscaleFactor=function(){return Math.pow(2,this.overscaledZ-this.canonical.z)},Gi.prototype.toUnwrapped=function(){return new IE(this.wrap,this.canonical)},Gi.prototype.toString=function(){return this.overscaledZ+"/"+this.canonical.x+"/"+this.canonical.y},Gi.prototype.getTilePoint=function(a){return this.canonical.getTilePoint(new Pf(a.x-this.wrap,a.y))},or("CanonicalTileID",Mf),or("OverscaledTileID",Gi,{omit:["posMatrix"]});var Dc=function(a,u,p){if(this.uid=a,u.height!==u.width)throw new RangeError("DEM tiles must be square");if(p&&p!=="mapbox"&&p!=="terrarium")return te('"'+p+'" is not a valid encoding type. Valid types include "mapbox" and "terrarium".');this.stride=u.height;var x=this.dim=u.height-2;this.data=new Uint32Array(u.data.buffer),this.encoding=p||"mapbox";for(var C=0;C<x;C++)this.data[this._idx(-1,C)]=this.data[this._idx(0,C)],this.data[this._idx(x,C)]=this.data[this._idx(x-1,C)],this.data[this._idx(C,-1)]=this.data[this._idx(C,0)],this.data[this._idx(C,x)]=this.data[this._idx(C,x-1)];this.data[this._idx(-1,-1)]=this.data[this._idx(0,0)],this.data[this._idx(x,-1)]=this.data[this._idx(x-1,0)],this.data[this._idx(-1,x)]=this.data[this._idx(0,x-1)],this.data[this._idx(x,x)]=this.data[this._idx(x-1,x-1)]};Dc.prototype.get=function(a,u){var p=new Uint8Array(this.data.buffer),x=4*this._idx(a,u);return(this.encoding==="terrarium"?this._unpackTerrarium:this._unpackMapbox)(p[x],p[x+1],p[x+2])},Dc.prototype.getUnpackVector=function(){return this.encoding==="terrarium"?[256,1,1/256,32768]:[6553.6,25.6,.1,1e4]},Dc.prototype._idx=function(a,u){if(a<-1||a>=this.dim+1||u<-1||u>=this.dim+1)throw new RangeError("out of range source coordinates for DEM data");return(u+1)*this.stride+(a+1)},Dc.prototype._unpackMapbox=function(a,u,p){return(256*a*256+256*u+p)/10-1e4},Dc.prototype._unpackTerrarium=function(a,u,p){return 256*a+u+p/256-32768},Dc.prototype.getPixels=function(){return new lo({width:this.stride,height:this.stride},new Uint8Array(this.data.buffer))},Dc.prototype.backfillBorder=function(a,u,p){if(this.dim!==a.dim)throw new Error("dem dimension mismatch");var x=u*this.dim,C=u*this.dim+this.dim,B=p*this.dim,O=p*this.dim+this.dim;switch(u){case-1:x=C-1;break;case 1:C=x+1}switch(p){case-1:B=O-1;break;case 1:O=B+1}for(var k=-u*this.dim,j=-p*this.dim,J=B;J<O;J++)for(var Q=x;Q<C;Q++)this.data[this._idx(Q,J)]=a.data[this._idx(Q+k,J+j)]},or("DEMData",Dc);var qg=function(a){this._stringToNumber={},this._numberToString=[];for(var u=0;u<a.length;u++){var p=a[u];this._stringToNumber[p]=u,this._numberToString[u]=p}};qg.prototype.encode=function(a){return this._stringToNumber[a]},qg.prototype.decode=function(a){return this._numberToString[a]};var Jg=function(a,u,p,x,C){this.type="Feature",this._vectorTileFeature=a,a._z=u,a._x=p,a._y=x,this.properties=a.properties,this.id=C},Vy={geometry:{configurable:!0}};Vy.geometry.get=function(){return this._geometry===void 0&&(this._geometry=this._vectorTileFeature.toGeoJSON(this._vectorTileFeature._x,this._vectorTileFeature._y,this._vectorTileFeature._z).geometry),this._geometry}
2097,Vy.geometry.set=function(a){this._geometry=a},Jg.prototype.toJSON=function(){var a={geometry:this.geometry};for(var u in this)u!=="_geometry"&&u!=="_vectorTileFeature"&&(a[u]=this[u]);return a},Object.defineProperties(Jg.prototype,Vy);var qh=function(){this.state={},this.stateChanges={},this.deletedStates={}};qh.prototype.updateState=function(a,u,p){var x=String(u);if(this.stateChanges[a]=this.stateChanges[a]||{},this.stateChanges[a][x]=this.stateChanges[a][x]||{},G(this.stateChanges[a][x],p),this.deletedStates[a]===null)for(var C in this.deletedStates[a]={},this.state[a])C!==x&&(this.deletedStates[a][C]=null);else if(this.deletedStates[a]&&this.deletedStates[a][x]===null)for(var B in this.deletedStates[a][x]={},this.state[a][x])p[B]||(this.deletedStates[a][x][B]=null);else for(var O in p)this.deletedStates[a]&&this.deletedStates[a][x]&&this.deletedStates[a][x][O]===null&&delete this.deletedStates[a][x][O]},qh.prototype.removeFeatureState=function(a,u,p){if(this.deletedStates[a]!==null){var x=String(u);if(this.deletedStates[a]=this.deletedStates[a]||{},p&&u!==void 0)this.deletedStates[a][x]!==null&&(this.deletedStates[a][x]=this.deletedStates[a][x]||{},this.deletedStates[a][x][p]=null);else if(u!==void 0)if(this.stateChanges[a]&&this.stateChanges[a][x])for(p in this.deletedStates[a][x]={},this.stateChanges[a][x])this.deletedStates[a][x][p]=null;else this.deletedStates[a][x]=null;else this.deletedStates[a]=null}},qh.prototype.getState=function(a,u){var p=String(u),x=G({},(this.state[a]||{})[p],(this.stateChanges[a]||{})[p]);if(this.deletedStates[a]===null)return{};if(this.deletedStates[a]){var C=this.deletedStates[a][u];if(C===null)return{};for(var B in C)delete x[B]}return x},qh.prototype.initializeTileState=function(a,u){a.setFeatureState(this.state,u)},qh.prototype.coalesceChanges=function(a,u){var p={};for(var x in this.stateChanges){this.state[x]=this.state[x]||{};var C={};for(var B in this.stateChanges[x])this.state[x][B]||(this.state[x][B]={}),G(this.state[x][B],this.stateChanges[x][B]),C[B]=this.state[x][B];p[x]=C}for(var O in this.deletedStates){this.state[O]=this.state[O]||{};var k={};if(this.deletedStates[O]===null)for(var j in this.state[O])k[j]={},this.state[O][j]={};else for(var J in this.deletedStates[O]){if(this.deletedStates[O][J]===null)this.state[O][J]={};else for(var Q=0,ie=Object.keys(this.deletedStates[O][J]);Q<ie.length;Q+=1)delete this.state[O][J][ie[Q]];k[J]=this.state[O][J]}p[O]=p[O]||{},G(p[O],k)}if(this.stateChanges={},this.deletedStates={},Object.keys(p).length!==0)for(var fe in a)a[fe].setFeatureState(p,u)};var Fc=function(a,u){this.tileID=a,this.x=a.canonical.x,this.y=a.canonical.y,this.z=a.canonical.z,this.grid=new Ro(8192,16,0),this.grid3D=new Ro(8192,16,0),this.featureIndexArray=new q,this.promoteId=u};function BE(a,u,p,x,C){return de(a,(function(B,O){var k=u instanceof Bc?u.get(O):null;return k&&k.evaluate?k.evaluate(p,x,C):k}))}function PE(a){for(var u=1/0,p=1/0,x=-1/0,C=-1/0,B=0,O=a;B<O.length;B+=1){var k=O[B];u=Math.min(u,k.x),p=Math.min(p,k.y),x=Math.max(x,k.x),C=Math.max(C,k.y)}return{minX:u,minY:p,maxX:x,maxY:C}}function hN(a,u){return u-a}Fc.prototype.insert=function(a,u,p,x,C,B){var O=this.featureIndexArray.length;this.featureIndexArray.emplaceBack(p,x,C);for(var k=B?this.grid3D:this.grid,j=0;j<u.length;j++){for(var J=u[j],Q=[1/0,1/0,-1/0,-1/0],ie=0;ie<J.length;ie++){var fe=J[ie];Q[0]=Math.min(Q[0],fe.x),Q[1]=Math.min(Q[1],fe.y),Q[2]=Math.max(Q[2],fe.x),Q[3]=Math.max(Q[3],fe.y)}Q[0]<8192&&Q[1]<8192&&Q[2]>=0&&Q[3]>=0&&k.insert(O,Q[0],Q[1],Q[2],Q[3])}},Fc.prototype.loadVTLayers=function(){return this.vtLayers||(this.vtLayers=new Nh.VectorTile(new kg(this.rawTileData)).layers,this.sourceLayerCoder=new qg(this.vtLayers?Object.keys(this.vtLayers).sort():["_geojsonTileLayer"])),this.vtLayers},Fc.prototype.query=function(a,u,p,x){var C=this;this.loadVTLayers();for(var B=a.params||{},O=8192/a.tileSize/a.scale,k=du(B.filter),j=a.queryGeometry,J=a.queryPadding*O,Q=PE(j),ie=this.grid.query(Q.minX-J,Q.minY-J,Q.maxX+J,Q.maxY+J),fe=PE(a.cameraQueryGeometry),_e=this.grid3D.query(fe.minX-J,fe.minY-J,fe.maxX+J,fe.maxY+J,(function(mt,yt,Ot,Ht){return(function(Kt,xr,nr,Sr,ir){for(var sn=0,Lr=Kt;sn<Lr.length;sn+=1){var hr=Lr[sn];if(xr<=hr.x&&nr<=hr.y&&Sr>=hr.x&&ir>=hr.y)return!0}var hn=[new v(xr,nr),new v(xr,ir),new v(Sr,ir),new v(Sr,nr)];if(Kt.length>2){for(var Kr=0,bn=hn;Kr<bn.length;Kr+=1)if(Ba(Kt,bn[Kr]))return!0}for(var Ir=0;Ir<Kt.length-1;Ir++)if(Cf(Kt[Ir],Kt[Ir+1],hn))return!0;return!1}
2097)(a.cameraQueryGeometry,mt-J,yt-J,Ot+J,Ht+J)})),ke=0,Ne=_e;ke<Ne.length;ke+=1)ie.push(Ne[ke]);ie.sort(hN);for(var He,je={},Ke=function(mt){var yt=ie[mt];if(yt!==He){He=yt;var Ot=C.featureIndexArray.get(yt),Ht=null;C.loadMatchingFeature(je,Ot.bucketIndex,Ot.sourceLayerIndex,Ot.featureIndex,k,B.layers,B.availableImages,u,p,x,(function(Kt,xr,nr){return Ht||(Ht=yi(Kt)),xr.queryIntersectsFeature(j,Kt,nr,Ht,C.z,a.transform,O,a.pixelPosMatrix)}))}},lt=0;lt<ie.length;lt++)Ke(lt);return je},Fc.prototype.loadMatchingFeature=function(a,u,p,x,C,B,O,k,j,J,Q){var ie=this.bucketLayerIDs[u];if(!B||(function(Kt,xr){for(var nr=0;nr<Kt.length;nr++)if(xr.indexOf(Kt[nr])>=0)return!0;return!1})(B,ie)){var fe=this.sourceLayerCoder.decode(p),_e=this.vtLayers[fe].feature(x);if(C.needGeometry){var ke=Ii(_e,!0);if(!C.filter(new Gr(this.tileID.overscaledZ),ke,this.tileID.canonical))return}else if(!C.filter(new Gr(this.tileID.overscaledZ),_e))return;for(var Ne=this.getId(_e,fe),He=0;He<ie.length;He++){var je=ie[He];if(!(B&&B.indexOf(je)<0)){var Ke=k[je];if(Ke){var lt={};Ne!==void 0&&J&&(lt=J.getState(Ke.sourceLayer||"_geojsonTileLayer",Ne));var mt=G({},j[je]);mt.paint=BE(mt.paint,Ke.paint,_e,lt,O),mt.layout=BE(mt.layout,Ke.layout,_e,lt,O);var yt=!Q||Q(_e,Ke,lt);if(yt){var Ot=new Jg(_e,this.z,this.x,this.y,Ne);Ot.layer=mt;var Ht=a[je];Ht===void 0&&(Ht=a[je]=[]),Ht.push({featureIndex:x,feature:Ot,intersectionZ:yt})}}}}}},Fc.prototype.lookupSymbolFeatures=function(a,u,p,x,C,B,O,k){var j={};this.loadVTLayers();for(var J=du(C),Q=0,ie=a;Q<ie.length;Q+=1)this.loadMatchingFeature(j,p,x,ie[Q],J,B,O,k,u);return j},Fc.prototype.hasLayer=function(a){for(var u=0,p=this.bucketLayerIDs;u<p.length;u+=1)for(var x=0,C=p[u];x<C.length;x+=1)if(a===C[x])return!0;return!1},Fc.prototype.getId=function(a,u){var p=a.id;return this.promoteId&&typeof(p=a.properties[typeof this.promoteId=="string"?this.promoteId:this.promoteId[u]])=="boolean"&&(p=Number(p)),p},or("FeatureIndex",Fc,{omit:["rawTileData","sourceLayerCoder"]});var ls=function(a,u){this.tileID=a,this.uid=ue(),this.uses=0,this.tileSize=u,this.buckets={},this.expirationTime=null,this.queryPadding=0,this.hasSymbolBuckets=!1,this.hasRTLText=!1,this.dependencies={},this.expiredRequestCount=0,this.state="loading"};ls.prototype.registerFadeDuration=function(a){var u=a+this.timeAdded;u<Jt.now()||this.fadeEndTime&&u<this.fadeEndTime||(this.fadeEndTime=u)},ls.prototype.wasRequested=function(){return this.state==="errored"||this.state==="loaded"||this.state==="reloading"},ls.prototype.loadVectorData=function(a,u,p){if(this.hasData()&&this.unloadVectorData(),this.state="loaded",a){for(var x in a.featureIndex&&(this.latestFeatureIndex=a.featureIndex,a.rawTileData?(this.latestRawTileData=a.rawTileData,this.latestFeatureIndex.rawTileData=a.rawTileData):this.latestRawTileData&&(this.latestFeatureIndex.rawTileData=this.latestRawTileData)),this.collisionBoxArray=a.collisionBoxArray,this.buckets=(function(J,Q){var ie={};if(!Q)return ie;for(var fe=function(){var Ne=ke[_e],He=Ne.layerIds.map((function(lt){return Q.getLayer(lt)})).filter(Boolean);if(He.length!==0){Ne.layers=He,Ne.stateDependentLayerIds&&(Ne.stateDependentLayers=Ne.stateDependentLayerIds.map((function(lt){return He.filter((function(mt){return mt.id===lt}))[0]})));for(var je=0,Ke=He;je<Ke.length;je+=1)ie[Ke[je].id]=Ne}},_e=0,ke=J;_e<ke.length;_e+=1)fe();return ie})(a.buckets,u.style),this.hasSymbolBuckets=!1,this.buckets){var C=this.buckets[x];if(C instanceof Dn){if(this.hasSymbolBuckets=!0,!p)break;C.justReloaded=!0}}if(this.hasRTLText=!1,this.hasSymbolBuckets)for(var B in this.buckets){var O=this.buckets[B];if(O instanceof Dn&&O.hasRTLText){this.hasRTLText=!0,is.isLoading()||is.isLoaded()||xf()!=="deferred"||wo();break}}for(var k in this.queryPadding=0,this.buckets){var j=this.buckets[k];this.queryPadding=Math.max(this.queryPadding,u.style.getLayer(k).queryRadius(j))}a.imageAtlas&&(this.imageAtlas=a.imageAtlas),a.glyphAtlasImage&&(this.glyphAtlasImage=a.glyphAtlasImage)}else this.collisionBoxArray=new d},ls.prototype.unloadVectorData=function(){for(var a in this.buckets)this.buckets[a].destroy();this.buckets={},this.imageAtlasTexture&&this.imageAtlasTexture.destroy(),this.imageAtlas&&(this.imageAtlas=null),this.glyphAtlasTexture&&this.glyphAtlasTexture.destroy(),this.latestFeatureIndex=null,this.state="unloaded"},ls.prototype.getBucket=function(a){return this.buckets[a.id]},ls.prototype.upload=function(a){for(var u in this.buckets){var p=this.buckets[u];p.uploadPending()&&p.upload(a)}var x=a.gl;this.imageAtlas&&!this.imageAtlas.uploaded&&(this.imageAtlasTexture=new Bf(a,this.imageAtlas.image,x.RGBA),this.imageAtlas.uploaded=!0),this.glyphAtlasImage&&(this.glyphAtlasTexture=new Bf(a,this.glyphAtlasImage,x.ALPHA),this.glyphAtlasImage=null)},ls.prototype.prepare=function(a){this.imageAtlas&&this.imageAtlas.patchUpdatedImages(a,this.imageAtlasTexture)},ls.prototype.queryRenderedFeatures=function(a,u,p,x,C,B,O,k,j,J){return this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData?this.latestFeatureIndex.query({queryGeometry:x,cameraQueryGeometry:C,scale:B,tileSize:this.tileSize,pixelPosMatrix:J,transform:k,params:O,queryPadding:this.queryPadding*j},a,u,p):{}},ls.prototype.querySourceFeatures=function(a,u){var p=this.latestFeatureIndex;if(p&&p.rawTileData){var x=p.loadVTLayers(),C=u?u.sourceLayer:"",B=x._geojsonTileLayer||x[C];if(B)for(var O=du(u&&u.filter),k=this.tileID.canonical,j=k.z,J=k.x,Q=k.y,ie={z:j,x:J,y:Q},fe=0;fe<B.length;fe++){var _e=B.feature(fe);if(O.needGeometry){var ke=Ii(_e,!0);
2097if(!O.filter(new Gr(this.tileID.overscaledZ),ke,this.tileID.canonical))continue}else if(!O.filter(new Gr(this.tileID.overscaledZ),_e))continue;var Ne=p.getId(_e,C),He=new Jg(_e,j,J,Q,Ne);He.tile=ie,a.push(He)}}},ls.prototype.hasData=function(){return this.state==="loaded"||this.state==="reloading"||this.state==="expired"},ls.prototype.patternsLoaded=function(){return this.imageAtlas&&!!Object.keys(this.imageAtlas.patternPositions).length},ls.prototype.setExpiryData=function(a){var u=this.expirationTime;if(a.cacheControl){var p=De(a.cacheControl);p["max-age"]&&(this.expirationTime=Date.now()+1e3*p["max-age"])}else a.expires&&(this.expirationTime=new Date(a.expires).getTime());if(this.expirationTime){var x=Date.now(),C=!1;if(this.expirationTime>x)C=!1;else if(u)if(this.expirationTime<u)C=!0;else{var B=this.expirationTime-u;B?this.expirationTime=x+Math.max(B,3e4):C=!0}else C=!0;C?(this.expiredRequestCount++,this.state="expired"):this.expiredRequestCount=0}},ls.prototype.getExpiryTimeout=function(){if(this.expirationTime)return this.expiredRequestCount?1e3*(1<<Math.min(this.expiredRequestCount-1,31)):Math.min(this.expirationTime-new Date().getTime(),Math.pow(2,31)-1)},ls.prototype.setFeatureState=function(a,u){if(this.latestFeatureIndex&&this.latestFeatureIndex.rawTileData&&Object.keys(a).length!==0){var p=this.latestFeatureIndex.loadVTLayers();for(var x in this.buckets)if(u.style.hasLayer(x)){var C=this.buckets[x],B=C.layers[0].sourceLayer||"_geojsonTileLayer",O=p[B],k=a[B];if(O&&k&&Object.keys(k).length!==0){C.update(k,O,this.imageAtlas&&this.imageAtlas.patternPositions||{});var j=u&&u.style&&u.style.getLayer(x);j&&(this.queryPadding=Math.max(this.queryPadding,j.queryRadius(C)))}}}},ls.prototype.holdingForFade=function(){return this.symbolFadeHoldUntil!==void 0},ls.prototype.symbolFadeFinished=function(){return!this.symbolFadeHoldUntil||this.symbolFadeHoldUntil<Jt.now()},ls.prototype.clearFadeHold=function(){this.symbolFadeHoldUntil=void 0},ls.prototype.setHoldDuration=function(a){this.symbolFadeHoldUntil=Jt.now()+a},ls.prototype.setDependencies=function(a,u){for(var p={},x=0,C=u;x<C.length;x+=1)p[C[x]]=!0;this.dependencies[a]=p},ls.prototype.hasDependency=function(a,u){for(var p=0,x=a;p<x.length;p+=1){var C=this.dependencies[x[p]];if(C){for(var B=0,O=u;B<O.length;B+=1)if(C[O[B]])return!0}}return!1};var Su=I.performance,ME=function(a){this._marks={start:[a.url,"start"].join("#"),end:[a.url,"end"].join("#"),measure:a.url.toString()},Su.mark(this._marks.start)};ME.prototype.finish=function(){Su.mark(this._marks.end);var a=Su.getEntriesByName(this._marks.measure);return a.length===0&&(Su.measure(this._marks.measure,this._marks.start,this._marks.end),a=Su.getEntriesByName(this._marks.measure),Su.clearMarks(this._marks.start),Su.clearMarks(this._marks.end),Su.clearMeasures(this._marks.measure)),a},o.Actor=Xh,o.AlphaImage=If,o.CanonicalTileID=Mf,o.CollisionBoxArray=d,o.Color=tn,o.DEMData=Dc,o.DataConstantProperty=wr,o.DictionaryCoder=qg,o.EXTENT=8192,o.ErrorEvent=he,o.EvaluationParameters=Gr,o.Event=Le,o.Evented=ve,o.FeatureIndex=Fc,o.FillBucket=sl,o.FillExtrusionBucket=ol,o.ImageAtlas=qp,o.ImagePosition=Ug,o.LineBucket=Xs,o.LngLat=ni,o.LngLatBounds=ji,o.MercatorCoordinate=Pf,o.ONE_EM=24,o.OverscaledTileID=Gi,o.Point=v,o.Point$1=v,o.Properties=qn,o.Protobuf=kg,o.RGBAImage=lo,o.RequestManager=yr,o.RequestPerformance=ME,o.ResourceType=Vt,o.SegmentVector=Y,o.SourceFeatureState=qh,o.StructArrayLayout1ui2=P,o.StructArrayLayout2f1f2i16=Do,o.StructArrayLayout2i4=Hs,o.StructArrayLayout3ui6=ia,o.StructArrayLayout4i8=wf,o.SymbolBucket=Dn,o.Texture=Bf,o.Tile=ls,o.Transitionable=qi,o.Uniform1f=Dt,o.Uniform1i=pt,o.Uniform2f=Tt,o.Uniform3f=zt,o.Uniform4f=sr,o.UniformColor=Cr,o.UniformMatrix4f=xn,o.UnwrappedTileID=IE,o.ValidationError=Se,o.WritingMode=Lo,o.ZoomHistory=_f,o.add=function(a,u,p){return a[0]=u[0]+p[0],a[1]=u[1]+p[1],a[2]=u[2]+p[2],a},o.addDynamicAttributes=ky,o.asyncAll=function(a,u,p){if(!a.length)return p(null,[]);var x=a.length,C=new Array(a.length),B=null;a.forEach((function(O,k){u(O,(function(j,J){j&&(B=j),C[k]=J,--x==0&&p(B,C)}
vendor: 4,821 bytes, line 2097
2097))}))},o.bezier=N,o.bindAll=Ee,o.browser=Jt,o.cacheEntryPossiblyAdded=function(a){++Rt>kt&&(a.getActor().send("enforceCacheSizeLimit",Pe),Rt=0)},o.clamp=$,o.clearTileCache=function(a){var u=I.caches.delete("mapbox-tiles");a&&u.catch(a).then((function(){return a()}))},o.clipLine=hE,o.clone=function(a){var u=new Cn(16);return u[0]=a[0],u[1]=a[1],u[2]=a[2],u[3]=a[3],u[4]=a[4],u[5]=a[5],u[6]=a[6],u[7]=a[7],u[8]=a[8],u[9]=a[9],u[10]=a[10],u[11]=a[11],u[12]=a[12],u[13]=a[13],u[14]=a[14],u[15]=a[15],u},o.clone$1=pe,o.clone$2=function(a){var u=new Cn(3);return u[0]=a[0],u[1]=a[1],u[2]=a[2],u},o.collisionCircleLayout=R8,o.config=Nt,o.create=function(){var a=new Cn(16);return Cn!=Float32Array&&(a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[11]=0,a[12]=0,a[13]=0,a[14]=0),a[0]=1,a[5]=1,a[10]=1,a[15]=1,a},o.create$1=function(){var a=new Cn(9);return Cn!=Float32Array&&(a[1]=0,a[2]=0,a[3]=0,a[5]=0,a[6]=0,a[7]=0),a[0]=1,a[4]=1,a[8]=1,a},o.create$2=function(){var a=new Cn(4);return Cn!=Float32Array&&(a[1]=0,a[2]=0),a[0]=1,a[3]=1,a},o.createCommonjsModule=l,o.createExpression=fu,o.createLayout=ki,o.createStyleLayer=function(a){return a.type==="custom"?new uN(a):new fN[a.type](a)},o.cross=function(a,u,p){var x=u[0],C=u[1],B=u[2],O=p[0],k=p[1],j=p[2];return a[0]=C*j-B*k,a[1]=B*O-x*j,a[2]=x*k-C*O,a},o.deepEqual=function a(u,p){if(Array.isArray(u)){if(!Array.isArray(p)||u.length!==p.length)return!1;for(var x=0;x<u.length;x++)if(!a(u[x],p[x]))return!1;return!0}if(typeof u=="object"&&u!==null&&p!==null){if(typeof p!="object"||Object.keys(u).length!==Object.keys(p).length)return!1;for(var C in u)if(!a(u[C],p[C]))return!1;return!0}return u===p},o.dot=function(a,u){return a[0]*u[0]+a[1]*u[1]+a[2]*u[2]},o.dot$1=function(a,u){return a[0]*u[0]+a[1]*u[1]+a[2]*u[2]+a[3]*u[3]},o.ease=U,o.emitValidationErrors=Ic,o.endsWith=Ue,o.enforceCacheSizeLimit=function(a){Wt(),Sn&&Sn.then((function(u){u.keys().then((function(p){for(var x=0;x<p.length-a;x++)u.delete(p[x])}))}))},o.evaluateSizeForFeature=oE,o.evaluateSizeForZoom=aE,o.evaluateVariableOffset=AE,o.evented=wi,o.extend=G,o.featureFilter=du,o.filterObject=me,o.fromRotation=function(a,u){var p=Math.sin(u),x=Math.cos(u);return a[0]=x,a[1]=p,a[2]=0,a[3]=-p,a[4]=x,a[5]=0,a[6]=0,a[7]=0,a[8]=1,a},o.getAnchorAlignment=Oy,o.getAnchorJustification=Ly,o.getArrayBuffer=Xe,o.getImage=ne,o.getJSON=function(a,u){return Te(G(a,{type:"json"}),u)},o.getRTLTextPluginStatus=xf,o.getReferrer=H,o.getVideo=function(a,u){var p,x,C=I.document.createElement("video");C.muted=!0,C.onloadstart=function(){u(null,C)};for(var B=0;B<a.length;B++){var O=I.document.createElement("source");p=a[B],x=void 0,(x=I.document.createElement("a")).href=p,(x.protocol!==I.document.location.protocol||x.host!==I.document.location.host)&&(C.crossOrigin="Anonymous"),O.src=a[B],C.appendChild(O)}return{cancel:function(){}}},o.identity=Co,o.invert=function(a,u){var p=u[0],x=u[1],C=u[2],B=u[3],O=u[4],k=u[5],j=u[6],J=u[7],Q=u[8],ie=u[9],fe=u[10],_e=u[11],ke=u[12],Ne=u[13],He=u[14],je=u[15],Ke=p*k-x*O,lt=p*j-C*O,mt=p*J-B*O,yt=x*j-C*k,Ot=x*J-B*k,Ht=C*J-B*j,Kt=Q*Ne-ie*ke,xr=Q*He-fe*ke,nr=Q*je-_e*ke,Sr=ie*He-fe*Ne,ir=ie*je-_e*Ne,sn=fe*je-_e*He,Lr=Ke*sn-lt*ir+mt*Sr+yt*nr-Ot*xr+Ht*Kt;return Lr?(a[0]=(k*sn-j*ir+J*Sr)*(Lr=1/Lr),a[1]=(C*ir-x*sn-B*Sr)*Lr,a[2]=(Ne*Ht-He*Ot+je*yt)*Lr,a[3]=(fe*Ot-ie*Ht-_e*yt)*Lr,a[4]=(j*nr-O*sn-J*xr)*Lr,a[5]=(p*sn-C*nr+B*xr)*Lr,a[6]=(He*mt-ke*Ht-je*lt)*Lr,a[7]=(Q*Ht-fe*mt+_e*lt)*Lr,a[8]=(O*ir-k*nr+J*Kt)*Lr,a[9]=(x*nr-p*ir-B*Kt)*Lr,a[10]=(ke*Ot-Ne*mt+je*Ke)*Lr,a[11]=(ie*mt-Q*Ot-_e*Ke)*Lr,a[12]=(k*xr-O*Sr-j*Kt)*Lr,a[13]=(p*Sr-x*xr+C*Kt)*Lr,a[14]=(Ne*lt-ke*yt-He*Ke)*Lr,a[15]=(Q*yt-ie*lt+fe*Ke)*Lr,a):null},o.isChar=Zt,o.isMapboxURL=vr,o.keysDifference=function(a,u){var p=[];for(var x in a)x in u||p.push(x);return p},o.makeRequest=Te,o.mapObject=de,o.mercatorXfromLng=EE,o.mercatorYfromLat=CE,o.mercatorZfromAltitude=SE,o.mul=by,o.multiply=$s,o.mvt=Nh,o.nextPowerOfTwo=function(a){return a<=1?1:Math.pow(2,Math.ceil(Math.log(a)/Math.LN2))},o.normalize=function(a,u){var p=u[0],x=u[1],C=u[2],B=p*p+x*x+C*C;return B>0&&(B=1/Math.sqrt(B)),a[0]=u[0]*B,a[1]=u[1]*B,a[2]=u[2]*B,a},o.number=hi,o.offscreenCanvasSupported=Ae,o.ortho=function(a,u,p,x,C,B,O){var k=1/(u-p),j=1/(x-C),J=1/(B-O);return a[0]=-2*k,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=-2*j,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=2*J,a[11]=0,a[12]=(u+p)*k,a[13]=(C+x)*j,a[14]=(O+B)*J,a[15]=1,a},o.parseGlyphPBF=function(a){return new kg(a).readFields(G8,[])},o.pbf=kg,o.performSymbolLayout=function(a,u,p,x,C,B,O){a.createArrays(),a.tilePixelRatio=8192/(512*a.overscaling),a.compareText={},a.iconsNeedLinear=!1;var k=a.layers[0].layout,j=a.layers[0]._unevaluatedLayout._values,J={};if(a.textSizeData.kind==="composite"){var Q=a.textSizeData,ie=Q.maxZoom;J.compositeTextSizes=[j["text-size"].possiblyEvaluate(new Gr(Q.minZ
2097oom),O),j["text-size"].possiblyEvaluate(new Gr(ie),O)]}if(a.iconSizeData.kind==="composite"){var fe=a.iconSizeData,_e=fe.maxZoom;J.compositeIconSizes=[j["icon-size"].possiblyEvaluate(new Gr(fe.minZoom),O),j["icon-size"].possiblyEvaluate(new Gr(_e),O)]}J.layoutTextSize=j["text-size"].possiblyEvaluate(new Gr(a.zoom+1),O),J.layoutIconSize=j["icon-size"].possiblyEvaluate(new Gr(a.zoom+1),O),J.textMaxSize=j["text-size"].possiblyEvaluate(new Gr(18));for(var ke=24*k.get("text-line-height"),Ne=k.get("text-rotation-alignment")==="map"&&k.get("symbol-placement")!=="point",He=k.get("text-keep-upright"),je=k.get("text-size"),Ke=function(){var yt=mt[lt],Ot=k.get("text-font").evaluate(yt,{},O).join(","),Ht=je.evaluate(yt,{},O),Kt=J.layoutTextSize.evaluate(yt,{},O),xr=J.layoutIconSize.evaluate(yt,{},O),nr={horizontal:{},vertical:void 0},Sr=yt.text,ir=[0,0];if(Sr){var sn=Sr.toString(),Lr=24*k.get("text-letter-spacing").evaluate(yt,{},O),hr=(function(gn){for(var Nn=0,Pn=gn;Nn<Pn.length;Nn+=1)if(wn=Pn[Nn].charCodeAt(0),Zt.Arabic(wn)||Zt["Arabic Supplement"](wn)||Zt["Arabic Extended-A"](wn)||Zt["Arabic Presentation Forms-A"](wn)||Zt["Arabic Presentation Forms-B"](wn))return!1;var wn;return!0})(sn)?Lr:0,hn=k.get("text-anchor").evaluate(yt,{},O),Kr=k.get("text-variable-anchor");if(!Kr){var bn=k.get("text-radial-offset").evaluate(yt,{},O);ir=bn?AE(hn,[24*bn,Fy]):k.get("text-offset").evaluate(yt,{},O).map((function(gn){return 24*gn}))}var Ir=Ne?"center":k.get("text-justify").evaluate(yt,{},O),Tn=k.get("symbol-placement"),ii=Tn==="point"?24*k.get("text-max-width").evaluate(yt,{},O):0,Ei=function(){a.allowVerticalPlacement&&yf(sn)&&(nr.vertical=zg(Sr,u,p,C,Ot,ii,ke,hn,"left",hr,ir,Lo.vertical,!0,Tn,Kt,Ht))};if(!Ne&&Kr){for(var vi=Ir==="auto"?Kr.map((function(gn){return Ly(gn)})):[Ir],si=!1,Ci=0;Ci<vi.length;Ci++){var Yi=vi[Ci];if(!nr.horizontal[Yi])if(si)nr.horizontal[Yi]=nr.horizontal[0];else{var Qi=zg(Sr,u,p,C,Ot,ii,ke,"center",Yi,hr,ir,Lo.horizontal,!1,Tn,Kt,Ht);Qi&&(nr.horizontal[Yi]=Qi,si=Qi.positionedLines.length===1)}}Ei()}else{Ir==="auto"&&(Ir=Ly(hn));var Os=zg(Sr,u,p,C,Ot,ii,ke,hn,Ir,hr,ir,Lo.horizontal,!1,Tn,Kt,Ht);Os&&(nr.horizontal[Ir]=Os),Ei(),yf(sn)&&Ne&&He&&(nr.vertical=zg(Sr,u,p,C,Ot,ii,ke,hn,Ir,hr,ir,Lo.vertical,!1,Tn,Kt,Ht))}}var cs=void 0,Ds=!1;if(yt.icon&&yt.icon.name){var Bi=x[yt.icon.name];Bi&&(cs=(function(gn,Nn,Pn){var wn=Oy(Pn),qs=Nn[0]-gn.displaySize[0]*wn.horizontalAlign,bs=Nn[1]-gn.displaySize[1]*wn.verticalAlign;
2097return{image:gn,top:bs,bottom:bs+gn.displaySize[1],left:qs,right:qs+gn.displaySize[0]}})(C[yt.icon.name],k.get("icon-offset").evaluate(yt,{},O),k.get("icon-anchor").evaluate(yt,{},O)),Ds=Bi.sdf,a.sdfIcons===void 0?a.sdfIcons=Bi.sdf:a.sdfIcons!==Bi.sdf&&te("Style sheet warning: Cannot mix SDF and non-SDF icons in one buffer"),(Bi.pixelRatio!==a.pixelRatio||k.get("icon-rotate").constantOr(1)!==0)&&(a.iconsNeedLinear=!0))}var us=mE(nr.horizontal)||nr.vertical;a.iconsInText=!!us&&us.iconsInText,(us||cs)&&(function(gn,Nn,Pn,wn,qs,bs,ei,Ni,xs,En,Wl){var ko=bs.textMaxSize.evaluate(Nn,{});ko===void 0&&(ko=ei);var $l,Pi=gn.layers[0].layout,Xl=Pi.get("icon-offset").evaluate(Nn,{},Wl),Ma=mE(Pn.horizontal),Jh=ei/24,Rf=gn.tilePixelRatio*Jh,Kh=gn.tilePixelRatio*ko/24,Lc=gn.tilePixelRatio*Ni,Zh=gn.tilePixelRatio*Pi.get("symbol-spacing"),Kg=Pi.get("text-padding")*gn.tilePixelRatio,Yh=Pi.get("icon-padding")*gn.tilePixelRatio,Zp=Pi.get("text-max-angle")/180*Math.PI,Zg=Pi.get("text-rotation-alignment")==="map"&&Pi.get("symbol-placement")!=="point",Yg=Pi.get("icon-rotation-alignment")==="map"&&Pi.get("symbol-placement")!=="point",kc=Pi.get("symbol-placement"),Yp=Zh/2,Qh=Pi.get("icon-text-fit");wn&&Qh!=="none"&&(gn.allowVerticalPlacement&&Pn.vertical&&($l=sE(wn,Pn.vertical,Qh,Pi.get("icon-text-fit-padding"),Xl,Jh)),Ma&&(wn=sE(wn,Ma,Qh,Pi.get("icon-text-fit-padding"),Xl,Jh)));var Iu=function(dN,oA){oA.x<0||oA.x>=8192||oA.y<0||oA.y>=8192||(function(Mi,al,pN,Bu,Wy,DE,i0,ql,s0,aA,o0,a0,$y,FE,lA,LE,kE,NE,UE,zE,No,l0,VE,Jl,AN){var jE,Df,id,sd,od,ad=Mi.addToLineVertexArray(al,pN),GE=0,HE=0,WE=0,$E=0,Xy=-1,qy=-1,Nc={},XE=ge(""),Jy=0,Ky=0;if(ql._unevaluatedLayout.getValue("text-radial-offset")===void 0?(Jy=(jE=ql.layout.get("text-offset").evaluate(No,{},Jl).map((function(uA){return 24*uA})))[0],Ky=jE[1]):(Jy=24*ql.layout.get("text-radial-offset").evaluate(No,{},Jl),Ky=Fy),Mi.allowVerticalPlacement&&Bu.vertical){var qE=ql.layout.get("text-rotate").evaluate(No,{},Jl)+90;sd=new Wg(s0,al,aA,o0,a0,Bu.vertical,$y,FE,lA,qE),i0&&(od=new Wg(s0,al,aA,o0,a0,i0,kE,NE,lA,qE))}if(Wy){var Zy=ql.layout.get("icon-rotate").evaluate(No,{}),JE=ql.layout.get("icon-text-fit")!=="none",KE=dE(Wy,Zy,VE,JE),Yy=i0?dE(i0,Zy,VE,JE):void 0;id=new Wg(s0,al,aA,o0,a0,Wy,kE,NE,!1,Zy),GE=4*KE.length;var ZE=Mi.iconSizeData,cA=null;ZE.kind==="source"?(cA=[128*ql.layout.get("icon-size").evaluate(No,{})])[0]>32640&&te(Mi.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'):ZE.kind==="composite"&&((cA=[128*l0.compositeIconSizes[0].evaluate(No,{},Jl),128*l0.compositeIconSizes[1].evaluate(No,{},Jl)])[0]>32640||cA[1]>32640)&&te(Mi.layerIds[0]+': Value for "icon-size" is >= 255. Reduce your "icon-size".'),Mi.addSymbols(Mi.icon,KE,cA,zE,UE,No,!1,al,ad.lineStartIndex,ad.lineLength,-1,Jl),Xy=Mi.icon.placedSymbolArray.length-1,Yy&&(HE=4*Yy.length,Mi.addSymbols(Mi.icon,Yy,cA,zE,UE,No,Lo.vertical,al,ad.lineStartIndex,ad.lineLength,-1,Jl),qy=Mi.icon.placedSymbolArray.length-1)}for(var YE in Bu.horizontal){var c0=Bu.horizontal[YE];if(!Df){XE=ge(c0.text);var gN=ql.layout.get("text-rotate").evaluate(No,{},Jl);Df=new Wg(s0,al,aA,o0,a0,c0,$y,FE,lA,gN)}var QE=c0.positionedLines.length===1;if(WE+=gE(Mi,al,c0,DE,ql,lA,No,LE,ad,Bu.vertical?Lo.horizontal:Lo.horizontalOnly,QE?Object.keys(Bu.horizontal):[YE],Nc,Xy,l0,Jl),QE)break}Bu.vertical&&($E+=gE(Mi,al,Bu.vertical,DE,ql,lA,No,LE,ad,Lo.vertical,["vertical"],Nc,qy,l0,Jl));var mN=Df?Df.boxStartIndex:Mi.collisionBoxArray.length,_N=Df?Df.boxEndIndex:Mi.collisionBoxArray.length,yN=sd?sd.boxStartIndex:Mi.collisionBoxArray.length,vN=sd?sd.boxEndIndex:Mi.collisionBoxArray.length,bN=id?id.boxStartIndex:Mi.collisionBoxArray.length,xN=id?id.boxEndIndex:Mi.collisionBoxArray.length,wN=od?od.boxStartIndex:Mi.collisionBoxArray.length,TN=od?od.boxEndIndex:Mi.collisionBoxArray.length,Kl=-1,u0=function(uA,tC){return uA&&uA.circleDiameter?Math.max(uA.circleDiameter,tC):tC};Kl=u0(Df,Kl),Kl=u0(sd,Kl),Kl=u0(id,Kl);var eC=(Kl=u0(od,Kl))>-1?1:0;eC&&(Kl*=AN/24),Mi.glyphOffsetArray.length>=Dn.MAX_GLYPHS&&te("Too many glyphs being rendered in a tile. See https://github.com/mapbox/mapbox-gl-js/issues/2907"),No.sortKey!==void 0&&Mi.addToSortKey
2097Ranges(Mi.symbolInstances.length,No.sortKey),Mi.symbolInstances.emplaceBack(al.x,al.y,Nc.right>=0?Nc.right:-1,Nc.center>=0?Nc.center:-1,Nc.left>=0?Nc.left:-1,Nc.vertical||-1,Xy,qy,XE,mN,_N,yN,vN,bN,xN,wN,TN,aA,WE,$E,GE,HE,eC,0,$y,Jy,Ky,Kl)})(gn,oA,dN,Pn,wn,qs,$l,gn.layers[0],gn.collisionBoxArray,Nn.index,Nn.sourceLayerIndex,gn.index,Rf,Kg,Zg,xs,Lc,Yh,Yg,Xl,Nn,bs,En,Wl,ei)};if(kc==="line")for(var ed=0,Qg=hE(Nn.geometry,0,0,8192,8192);ed<Qg.length;ed+=1)for(var e0=Qg[ed],Qp=0,eA=K8(e0,Zh,Zp,Pn.vertical||Ma,wn,24,Kh,gn.overscaling,8192);Qp<eA.length;Qp+=1){var t0=eA[Qp];Ma&&eN(gn,Ma.text,Yp,t0)||Iu(e0,t0)}else if(kc==="line-center")for(var tA=0,rA=Nn.geometry;tA<rA.length;tA+=1){var nA=rA[tA];if(nA.length>1){var r0=J8(nA,Zp,Pn.vertical||Ma,wn,24,Kh);r0&&Iu(nA,r0)}}else if(Nn.type==="Polygon")for(var td=0,n0=Iy(Nn.geometry,0);td<n0.length;td+=1){var rd=n0[td],iA=Y8(rd,16);Iu(rd[0],new jh(iA.x,iA.y,0))}else if(Nn.type==="LineString")for(var Of=0,sA=Nn.geometry;Of<sA.length;Of+=1){var nd=sA[Of];Iu(nd,new jh(nd[0].x,nd[0].y,0))}else if(Nn.type==="Point")for(var jy=0,RE=Nn.geometry;jy<RE.length;jy+=1)for(var Gy=0,OE=RE[jy];Gy<OE.length;Gy+=1){var Hy=OE[Gy];Iu([Hy],new jh(Hy.x,Hy.y,0))}})(a,yt,nr,cs,x,J,Kt,xr,ir,Ds,O)},lt=0,mt=a.features;lt<mt.length;lt+=1)Ke();B&&a.generateCollisionDebugBuffers()},o.perspective=function(a,u,p,x,C){var B,O=1/Math.tan(u/2);return a[0]=O/p,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=O,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[11]=-1,a[12]=0,a[13]=0,a[15]=0,C!=null&&C!==1/0?(a[10]=(C+x)*(B=1/(x-C)),a[14]=2*C*x*B):(a[10]=-1,a[14]=-2*x),a},o.pick=function(a,u){for(var p={},x=0;x<u.length;x++){var C=u[x];C in a&&(p[C]=a[C])}return p},o.plugin=is,o.polygonIntersectsPolygon=jl,o.postMapLoadEvent=gi,o.postTurnstileEvent=Rr,o.potpack=tE,o.refProperties=["type","source","source-layer","minzoom","maxzoom","filter","layout"],o.register=or,o.registerForPluginStateChange=function(a){return a({pluginStatus:Ps,pluginURL:ea}),wi.on("pluginStateChange",a),a},o.renderColorRamp=LT,o.rotate=function(a,u,p){var x=u[0],C=u[1],B=u[2],O=u[3],k=Math.sin(p),j=Math.cos(p);return a[0]=x*j+B*k,a[1]=C*j+O*k,a[2]=x*-k+B*j,a[3]=C*-k+O*j,a},o.rotateX=function(a,u,p){var x=Math.sin(p),C=Math.cos(p),B=u[4],O=u[5],k=u[6],j=u[7],J=u[8],Q=u[9],ie=u[10],fe=u[11];return u!==a&&(a[0]=u[0],a[1]=u[1],a[2]=u[2],a[3]=u[3],a[12]=u[12],a[13]=u[13],a[14]=u[14],a[15]=u[15]),a[4]=B*C+J*x,a[5]=O*C+Q*x,a[6]=k*C+ie*x,a[7]=j*C+fe*x,a[8]=J*C-B*x,a[9]=Q*C-O*x,a[10]=ie*C-k*x,a[11]=fe*C-j*x,a},o.rotateZ=function(a,u,p){var x=Math.sin(p),C=Math.cos(p),B=u[0],O=u[1],k=u[2],j=u[3],J=u[4],Q=u[5],ie=u[6],fe=u[7];return u!==a&&(a[8]=u[8],a[9]=u[9],a[10]=u[10],a[11]=u[11],a[12]=u[12],a[13]=u[13],a[14]=u[14],a[15]=u[15]),a[0]=B*C+J*x,a[1]=O*C+Q*x,a[2]=k*C+ie*x,a[3]=j*C+fe*x,a[4]=J*C-B*x,a[5]=Q*C-O*x,a[6]=ie*C-k*x,a[7]=fe*C-j*x,a},o.scale=function(a,u,p){var x=p[0],C=p[1],B=p[2];return a[0]=u[0]*x,a[1]=u[1]*x,a[2]=u[2]*x,a[3]=u[3]*x,a[4]=u[4]*C,a[5]=u[5]*C,a[6]=u[6]*C,a[7]=u[7]*C,a[8]=u[8]*B,a[9]=u[9]*B,a[10]=u[10]*B,a[11]=u[11]*B,a[12]=u[12],a[13]=u[13],a[14]=u[14],a[15]=u[15],a},o.scale$1=function(a,u,p){return a[0]=u[0]*p,a[1]=u[1]*p,a[2]=u[2]*p,a[3]=u[3]*p,a},o.scale$2=function(a,u,p){return a[0]=u[0]*p,a[1]=u[1]*p,a[2]=u[2]*p,a},o.setCacheLimits=function(a,u){Pe=a,kt=u},o.setRTLTextPlugin=function(a,u,p){if(p===void 0&&(p=!1),Ps==="deferred"||Ps==="loading"||Ps==="loaded")throw new Error("setRTLTextPlugin cannot be called multiple times.");ea=Jt.resolveURL(a),Ps="deferred",vu=u,zl(),p||wo()},o.sphericalToCartesian=function(a){var u=a[0],p=a[1],x=a[2];return p+=90,p*=Math.PI/180,x*=Math.PI/180,{x:u*Math.cos(p)*Math.sin(x),y:u*Math.sin(p)*Math.sin(x),z:u*Math.cos(x)}},o.sqrLen=function(a){var u=a[0],p=a[1];return u*u+p*p},o.styleSpec=ae,o.sub=function(a,u,p){return a[0]=u[0]-p[0],a[1]=u[1]-p[1],a[2]=u[2]-p[2],a},o.symbolSize=q8,o.transformMat3=function(a,u,p){var x=u[0],C=u[1],B=u[2];return a[0]=x*p[0]+C*p[3]+B*p[6],a[1]=x*p[1]+C*p[4]+B*p[7],a[2]=x*p[2]+C*p[5]+B*p[8],a},o.transformMat4=Dh,o.translate=function(a,u,p){var x,C,B,O,k,j,J,Q,ie,fe,_e,ke,Ne=p[0],He=p[1],je=p[2];return u===a?(a[12]=u[0]*Ne+u[4]*He+u[8]*je+u[12],a[13]=u[1]*Ne+u[5]*He+u[9]*je+u[13],a[14]=u[2]*Ne+u[6]*He+u[10]*je+u[14],a[15]=u[3]*Ne+u[7]*He+u[11]*je+u[15]):(C=u[1],B=u[2],O=u[3],k=u[4],j=u[5],J=u[6],Q=u[7],ie=u[8],fe=u[9],_e=u[10],ke=u[11],a[0]=x=u[0],a[1]=C,a[2]=B,a[3]=O,a[4]=k,a[5]=j,a[6]=J,a[7]=Q,a[8]=ie,a[9]=fe,a[10]=_e,a[11]=ke,a[12]=x*Ne+k*He+ie*je+u[12],a[13]=C*Ne+j*He+fe*je+u[13],a[14]=B*Ne+J*He+_e*je+u[14],a[15]=O*Ne+Q*He+ke*je+u[15]),a},o.triggerPluginCompletionEvent=bf,o.uniqueId=ue,o.validateCustomStyleLayer=function(a){var u=[],p=a.id;return p===void 0&&u.push({message:"layers."+p+': missing required property "id"'}),a.render===void 0&&u.push({message:"layers."+p+': missing required method "render"'}),a.renderingMode&&a.renderingMode!=="2d"&&a.renderingMode!=="3d"&&u.push({message:"layers."+p+': property "renderingMode" must be either "2d" or "3d"'}),u},o.validateLight=Np,o.validateStyle=Sc,o.values=function(a){var u=[];for(var p in a)u.push(a[p]);return u},o.vectorTile=Nh,o.version="1.13.3",o.warnOnce=te,o.webpSupported=Ar,o.window=I,o.wrap=V})),s(["./shared"],(function(o){function l(Z){var ne=typeof Z;if(ne==="number"||ne==="boolean"||ne==="string"||Z==null)return JSON.stringify(Z);if(Array.isArray(Z)){for(var ce="[",ye=0,Le=Z;ye<Le.length;ye+=1)ce+=l(Le[ye])+",";return ce+"]"}for(var he=Object.keys(Z).sort(),ve="{",ae=0;ae<he.length;ae++)ve+=JSON.stringify(he[ae])+":"+l(Z[he[ae]])+",";return ve+"}"}function f(Z){for(var ne="",ce=0,ye=o.refProperties;ce<ye.length;ce+=1)ne+="/"+l(Z[ye[ce]]);return ne}var A=function(Z){this.keyCache={},Z&&this.replace(Z)};A.prototype.replace=function(Z){this._layerConfigs={},this._layers={},this.update(Z,[])},A.prototype.update=function(Z,ne){for(var ce=this,ye=0,Le=Z;ye<Le.length;ye+=1){var he=Le[ye];this._layerConfigs[he.id]=he;var ve=this._layers[he.id]=o.createStyleLayer(he);ve._featureFilter=o.featureFilter(ve.filter),this.keyCache[he.id]&&delete this.keyCache[he.id]}for(var ae=0,Se=ne;ae<Se.length;ae+=1){var g=Se[ae];delete this.keyCache[g],delete this._layerConfigs[g],delete this._layers[g]}this.familiesBySource={};for(var le=0,xt=(function(Pt,Gt){for(var Ur={},er=0;er<Pt.length;er++){var en=Gt&&Gt[Pt[er].id]||f(Pt[er]);Gt&&(Gt[Pt[er].id]=en);var ln=Ur[en];ln||(ln=Ur[en]=[]),ln.push(Pt[er])}var $r=[];for(var Xr in Ur)$r.push(Ur[Xr]);return $r})(o.values(this._layerConfigs),this.keyCache);le<xt.length;le+=1){var Je=xt[le].map((function(Pt){return ce._layers[Pt.id]})),Ct=Je[0];if(Ct.visibility!=="none"){var Mt=Ct.source||"",Ft=this.familiesBySource[Mt];Ft||(Ft=this.familiesBySource[Mt]={});var ht=Ct.sourceLayer||"_geojsonTileLayer",Lt=Ft[ht];Lt||(Lt=Ft[ht]=[]),Lt.push(Je)}}};var v=function(Z){var ne={},ce=[];for(var ye in Z){var Le=Z[ye],he=ne[ye]={};for(var ve in Le){var ae=Le[+ve];
vendor: 8,791 bytes, line 2097
2097if(ae&&ae.bitmap.width!==0&&ae.bitmap.height!==0){var Se={x:0,y:0,w:ae.bitmap.width+2,h:ae.bitmap.height+2};ce.push(Se),he[ve]={rect:Se,metrics:ae.metrics}}}}var g=o.potpack(ce),le=new o.AlphaImage({width:g.w||1,height:g.h||1});for(var xt in Z){var Je=Z[xt];for(var Ct in Je){var Mt=Je[+Ct];if(Mt&&Mt.bitmap.width!==0&&Mt.bitmap.height!==0){var Ft=ne[xt][Ct].rect;o.AlphaImage.copy(Mt.bitmap,le,{x:0,y:0},{x:Ft.x+1,y:Ft.y+1},Mt.bitmap)}}}this.image=le,this.positions=ne};o.register("GlyphAtlas",v);var T=function(Z){this.tileID=new o.OverscaledTileID(Z.tileID.overscaledZ,Z.tileID.wrap,Z.tileID.canonical.z,Z.tileID.canonical.x,Z.tileID.canonical.y),this.uid=Z.uid,this.zoom=Z.zoom,this.pixelRatio=Z.pixelRatio,this.tileSize=Z.tileSize,this.source=Z.source,this.overscaling=this.tileID.overscaleFactor(),this.showCollisionBoxes=Z.showCollisionBoxes,this.collectResourceTiming=!!Z.collectResourceTiming,this.returnDependencies=!!Z.returnDependencies,this.promoteId=Z.promoteId};function I(Z,ne,ce){for(var ye=new o.EvaluationParameters(ne),Le=0,he=Z;Le<he.length;Le+=1)he[Le].recalculate(ye,ce)}function F(Z,ne){var ce=o.getArrayBuffer(Z.request,(function(ye,Le,he,ve){ye?ne(ye):Le&&ne(null,{vectorTile:new o.vectorTile.VectorTile(new o.pbf(Le)),rawData:Le,cacheControl:he,expires:ve})}));return function(){ce.cancel(),ne()}}T.prototype.parse=function(Z,ne,ce,ye,Le){var he=this;this.status="parsing",this.data=Z,this.collisionBoxArray=new o.CollisionBoxArray;var ve=new o.DictionaryCoder(Object.keys(Z.layers).sort()),ae=new o.FeatureIndex(this.tileID,this.promoteId);ae.bucketLayerIDs=[];var Se,g,le,xt,Je={},Ct={featureIndex:ae,iconDependencies:{},patternDependencies:{},glyphDependencies:{},availableImages:ce},Mt=ne.familiesBySource[this.source];for(var Ft in Mt){var ht=Z.layers[Ft];if(ht){ht.version===1&&o.warnOnce('Vector tile source "'+this.source+'" layer "'+Ft+'" does not use vector tile spec v2 and therefore may have some rendering errors.');for(var Lt=ve.encode(Ft),Pt=[],Gt=0;Gt<ht.length;Gt++){var Ur=ht.feature(Gt),er=ae.getId(Ur,Ft);Pt.push({feature:Ur,id:er,index:Gt,sourceLayerIndex:Lt})}for(var en=0,ln=Mt[Ft];en<ln.length;en+=1){var $r=ln[en],Xr=$r[0];Xr.minzoom&&this.zoom<Math.floor(Xr.minzoom)||Xr.maxzoom&&this.zoom>=Xr.maxzoom||Xr.visibility!=="none"&&(I($r,this.zoom,ce),(Je[Xr.id]=Xr.createBucket({index:ae.bucketLayerIDs.length,layers:$r,zoom:this.zoom,pixelRatio:this.pixelRatio,overscaling:this.overscaling,collisionBoxArray:this.collisionBoxArray,sourceLayerIndex:Lt,sourceID:this.source})).populate(Pt,Ct,this.tileID.canonical),ae.bucketLayerIDs.push($r.map((function(Be){return Be.id}))))}}}var jr=o.mapObject(Ct.glyphDependencies,(function(Be){return Object.keys(Be).map(Number)}));Object.keys(jr).length?ye.send("getGlyphs",{uid:this.uid,stacks:jr},(function(Be,qt){Se||(Se=Be,g=qt,dr.call(he))})):g={};var mi=Object.keys(Ct.iconDependencies);mi.length?ye.send("getImages",{icons:mi,source:this.source,tileID:this.tileID,type:"icons"},(function(Be,qt){Se||(Se=Be,le=qt,dr.call(he))})):le={};var qr=Object.keys(Ct.patternDependencies);function dr(){if(Se)return Le(Se);if(g&&le&&xt){var Be=new v(g),qt=new o.ImageAtlas(le,xt);for(var tn in Je){var Wi=Je[tn];Wi instanceof o.SymbolBucket?(I(Wi.layers,this.zoom,ce),o.performSymbolLayout(Wi,g,Be.positions,le,qt.iconPositions,this.showCollisionBoxes,this.tileID.canonical)):Wi.hasPattern&&(Wi instanceof o.LineBucket||Wi instanceof o.FillBucket||Wi instanceof o.FillExtrusionBucket)&&(I(Wi.layers,this.zoom,ce),Wi.addFeatures(Ct,this.tileID.canonical,qt.patternPositions))}this.status="done",Le(null,{buckets:o.values(Je).filter((function(_a){return!_a.isEmpty()})),featureIndex:ae,collisionBoxArray:this.collisionBoxArray,glyphAtlasImage:Be.image,imageAtlas:qt,glyphMap:this.returnDependencies?g:null,iconMap:this.returnDependencies?le:null,glyphPositions:this.returnDependencies?Be.positions:null})}}qr.length?ye.send("getImages",{icons:qr,source:this.source,tileID:this.tileID,type:"patterns"},(function(Be,qt){Se||(Se=Be,xt=qt,dr.call(he))})):xt={},dr.call(this)};var N=function(Z,ne,ce,ye){this.actor=Z,this.layerIndex=ne,this.availableImages=ce,this.loadVectorData=ye||F,this.loading={},this.loaded={}};N.prototype.loadTile=function(Z,ne){var ce=this,ye=Z.uid;this.loading||(this.loading={});var Le=!!(Z&&Z.request&&Z.request.collectResourceTiming)&&new o.RequestPerformance(Z.request),he=this.loading[ye]=new T(Z);he.abort=this.loadVectorData(Z,(function(ve,ae){if(delete ce.loading[ye],ve||!ae)return he.status="done",ce.loaded[ye]=he,ne(ve);var Se=ae.rawData,g={};ae.expires&&(g.expires=ae.expires),ae.cacheControl&&(g.cacheControl=ae.cacheControl);var le={};if(Le){var xt=Le.finish();xt&&(le.resourceTiming=JSON.parse(JSON.stringify(xt)))}he.vectorTile=ae.vectorTile,he.parse(ae.vectorTile,ce.layerIndex,ce.availableImages,ce.actor,(function(Je,Ct){if(Je||!Ct)return ne(Je);ne(null,o.extend({rawTileData:Se.slice(0)},Ct,g,le))})),ce.loaded=ce.loaded||{},ce.loaded[ye]=he}))},N.prototype.reloadTile=function(Z,ne){var ce=this,ye=this.loaded,Le=Z.uid,he=this;if(ye&&ye[Le]){var ve=ye[Le];ve.showCollisionBoxes=Z.showCollisionBoxes;var ae=function(Se,g){var le=ve.reloadCallback;le&&(delete ve.reloadCallback,ve.parse(ve.vectorTile,he.layerIndex,ce.availableImages,he.actor,le)),ne(Se,g)};ve.status==="parsing"?ve.reloadCallback=ae:ve.status==="done"&&(ve.vectorTile?ve.parse(ve.vectorTile,this.layerIndex,this.availableImages,this.actor,ae):ae())}},N.prototype.abortTile=function(Z,ne){var ce=this.loading,ye=Z.uid;ce&&ce[ye]&&ce[ye].abort&&(ce[ye].abort(),delete ce[ye]),ne()},N.prototype.removeTile=function(Z,ne){var ce=this.loaded,ye=Z.uid;ce&&ce[ye]&&delete ce[ye],ne()};var U=o.window.ImageBitmap,$=function(){this.loaded={}};function V(Z,ne){if(Z.length!==0){G(Z[0],ne);for(var ce=1;ce<Z.length;ce++)G(Z[ce],!ne)}}function G(Z,ne){for(var ce=0,ye=0,Le=0,he=Z.length,ve=he-1;Le<he;ve=Le++){var ae=(Z[Le][0]-Z[ve][0])*(Z[ve][1]+Z[Le][1]),Se=ce+ae;ye+=Math.abs(ce)>=Math.abs(ae)?ce-Se+ae:ae-Se+ce,ce=Se}ce+ye>=0!=!!ne&&Z.reverse()}$.prototype.loadTile=function(Z,ne){var ce=Z.uid,ye=Z.encoding,Le=Z.rawImageData,he=U&&Le instanceof U?this.getImageData(Le):Le,ve=new o.DEMData(ce,he,ye);this.loaded=this.loaded||{},this.loaded[ce]=ve,ne(null,ve)},$.prototype.getImageData=function(Z){this.offscreenCanvas&&this.offscreenCanvasContext||(this.offscreenCanvas=new OffscreenCanvas(Z.width,Z.height),this.offscreenCanvasContext=this.offscreenCanvas.getContext("2d")),this.offscreenCanvas.width=Z.width,this.offscreenCanvas.height=Z.height,this.offscreenCanvasContext.drawImage(Z,0,0,Z.width,Z.height);var ne=this.offscreenCanvasContext.getImageData(-1,-1,Z.width+2,Z.height+2);return this.offscreenCanvasContext.clearRect(0,0,this.offscreenCanvas.width,this.offscreenCanvas.height),new o.RGBAImage({width:ne.width,height:ne.height},ne.data)},$.prototype.removeTile=function(Z){var ne=this.loaded,ce=Z.uid;ne&&ne[ce]&&delete ne[ce]};var X=o.vectorTile.VectorTileFeature.prototype.toGeoJSON,ue=function(Z){this._feature=Z,this.extent=o.EXTENT,this.type=Z.type,this.properties=Z.tags,"id"in Z&&!isNaN(Z.id)&&(this.id=parseInt(Z.id,10))};ue.prototype.loadGeometry=function(){if(this._feature.type===1){for(var Z=[],ne=0,ce=this._feature.geometry;ne<ce.length;ne+=1){var ye=ce[ne];Z.push([new o.Point$1(ye[0],ye[1])])}return Z}for(var Le=[],he=0,ve=this._feature.geometry;he<ve.length;he+=1){for(var ae=[],Se=0,g=ve[he];Se<g.length;Se+=1){var le=g[Se];ae.push(new o.Point$1(le[0],le[1]))}Le.push(ae)}return Le},ue.prototype.toGeoJSON=function(Z,ne,ce){return X.call(this,Z,ne,ce)};var K=function(Z){this.layers={_geojsonTileLayer:this},this.name="_geojsonTileLayer",this.extent=o.EXTENT,this.length=Z.length,this._features=Z};K.prototype.feature=function(Z){return new ue(this._features[Z])};var se=o.vectorTile.VectorTileFeature,Ee=Ue;function Ue(Z,ne){this.options=ne||{},this.features=Z,this.length=Z.length}function de(Z,ne){this.id=typeof Z.id=="number"?Z.id:void 0,this.type=Z.type,this.rawGeometry=Z.type===1?[Z.geometry]:Z.geometry,this.properties=Z.tags,this.extent=ne||4096}Ue.prototype.feature=function(Z){return new de(this.features[Z],this.options.extent)},de.prototype.loadGeometry=function(){var Z=this.rawGeometry;this.geometry=[];for(var ne=0;ne<Z.length;ne++){for(var ce=Z[ne],ye=[],Le=0;Le<ce.length;Le++)ye.push(new o.Point$1(ce[Le][0],ce[Le][1]));this.geometry.push(ye)}return this.geometry},de.prototype.bbox=function(){this.geometry||this.loadGeometry();for(var Z=this.geometry,ne=1/0,ce=-1/0,ye=1/0,Le=-1/0,he=0;he<Z.length;he++)for(var ve=Z[he],ae=0;ae<ve.length;ae++){var Se=ve[ae];ne=Math.min(ne,Se.x),ce=Math.max(ce,Se.x),ye=Math.min(ye,Se.y),Le=Math.max(Le,Se.y)}return[ne,ye,ce,Le]},de.prototype.toGeoJSON=se.prototype.toGeoJSON;var me=W,pe=Ee;function W(Z){var ne=new o.pbf;
2097return(function(ce,ye){for(var Le in ce.layers)ye.writeMessage(3,te,ce.layers[Le])})(Z,ne),ne.finish()}function te(Z,ne){var ce;ne.writeVarintField(15,Z.version||1),ne.writeStringField(1,Z.name||""),ne.writeVarintField(5,Z.extent||4096);var ye={keys:[],values:[],keycache:{},valuecache:{}};for(ce=0;ce<Z.length;ce++)ye.feature=Z.feature(ce),ne.writeMessage(2,Ce,ye);var Le=ye.keys;for(ce=0;ce<Le.length;ce++)ne.writeStringField(3,Le[ce]);var he=ye.values;for(ce=0;ce<he.length;ce++)ne.writeMessage(4,Ze,he[ce])}function Ce(Z,ne){var ce=Z.feature;ce.id!==void 0&&ne.writeVarintField(1,ce.id),ne.writeMessage(2,Qe,Z),ne.writeVarintField(3,ce.type),ne.writeMessage(4,ze,ce)}function Qe(Z,ne){var ce=Z.feature,ye=Z.keys,Le=Z.values,he=Z.keycache,ve=Z.valuecache;for(var ae in ce.properties){var Se=he[ae];Se===void 0&&(ye.push(ae),he[ae]=Se=ye.length-1),ne.writeVarint(Se);var g=ce.properties[ae],le=typeof g;le!=="string"&&le!=="boolean"&&le!=="number"&&(g=JSON.stringify(g));var xt=le+":"+g,Je=ve[xt];Je===void 0&&(Le.push(g),ve[xt]=Je=Le.length-1),ne.writeVarint(Je)}}function we(Z,ne){return(ne<<3)+(7&Z)}function De(Z){return Z<<1^Z>>31}function ze(Z,ne){for(var ce=Z.loadGeometry(),ye=Z.type,Le=0,he=0,ve=ce.length,ae=0;ae<ve;ae++){var Se=ce[ae],g=1;ye===1&&(g=Se.length),ne.writeVarint(we(1,g));for(var le=ye===3?Se.length-1:Se.length,xt=0;xt<le;xt++){xt===1&&ye!==1&&ne.writeVarint(we(2,le-1));var Je=Se[xt].x-Le,Ct=Se[xt].y-he;ne.writeVarint(De(Je)),ne.writeVarint(De(Ct)),Le+=Je,he+=Ct}ye===3&&ne.writeVarint(we(7,1))}}function Ze(Z,ne){var ce=typeof Z;ce==="string"?ne.writeStringField(1,Z):ce==="boolean"?ne.writeBooleanField(7,Z):ce==="number"&&(Z%1!=0?ne.writeDoubleField(3,Z):Z<0?ne.writeSVarintField(6,Z):ne.writeVarintField(5,Z))}function tt(Z,ne,ce,ye){rt(Z,ce,ye),rt(ne,2*ce,2*ye),rt(ne,2*ce+1,2*ye+1)}function rt(Z,ne,ce){var ye=Z[ne];Z[ne]=Z[ce],Z[ce]=ye}function ct(Z,ne,ce,ye){var Le=Z-ce,he=ne-ye;return Le*Le+he*he}me.fromVectorTileJs=W,me.fromGeojsonVt=function(Z,ne){ne=ne||{};var ce={};for(var ye in Z)ce[ye]=new Ee(Z[ye].features,ne),ce[ye].name=ye,ce[ye].version=ne.version,ce[ye].extent=ne.extent;return W({layers:ce})},me.GeoJSONWrapper=pe;var bt=function(Z){return Z[0]},It=function(Z){return Z[1]},st=function(Z,ne,ce,ye,Le){ne===void 0&&(ne=bt),ce===void 0&&(ce=It),ye===void 0&&(ye=64),Le===void 0&&(Le=Float64Array),this.nodeSize=ye,this.points=Z;for(var he=Z.length<65536?Uint16Array:Uint32Array,ve=this.ids=new he(Z.length),ae=this.coords=new Le(2*Z.length),Se=0;Se<Z.length;Se++)ve[Se]=Se,ae[2*Se]=ne(Z[Se]),ae[2*Se+1]=ce(Z[Se]);(function g(le,xt,Je,Ct,Mt,Ft){if(!(Mt-Ct<=Je)){var ht=Ct+Mt>>1;(function Lt(Pt,Gt,Ur,er,en,ln){for(;en>er;){if(en-er>600){var $r=en-er+1,Xr=Ur-er+1,jr=Math.log($r),mi=.5*Math.exp(2*jr/3),qr=.5*Math.sqrt(jr*mi*($r-mi)/$r)*(Xr-$r/2<0?-1:1);Lt(Pt,Gt,Ur,Math.max(er,Math.floor(Ur-Xr*mi/$r+qr)),Math.min(en,Math.floor(Ur+($r-Xr)*mi/$r+qr)),ln)}var dr=Gt[2*Ur+ln],Be=er,qt=en;for(tt(Pt,Gt,er,Ur),Gt[2*en+ln]>dr&&tt(Pt,Gt,er,en);Be<qt;){for(tt(Pt,Gt,Be,qt),Be++,qt--;Gt[2*Be+ln]<dr;)Be++;for(;Gt[2*qt+ln]>dr;)qt--}Gt[2*er+ln]===dr?tt(Pt,Gt,er,qt):tt(Pt,Gt,++qt,en),qt<=Ur&&(er=qt+1),Ur<=qt&&(en=qt-1)}})(le,xt,ht,Ct,Mt,Ft%2),g(le,xt,Je,Ct,ht-1,Ft+1),g(le,xt,Je,ht+1,Mt,Ft+1)}})(ve,ae,ye,0,ve.length-1,0)};st.prototype.range=function(Z,ne,ce,ye){return(function(Le,he,ve,ae,Se,g,le){for(var xt,Je,Ct=[0,Le.length-1,0],Mt=[];Ct.length;){var Ft=Ct.pop(),ht=Ct.pop(),Lt=Ct.pop();if(ht-Lt<=le)for(var Pt=Lt;Pt<=ht;Pt++)Je=he[2*Pt+1],(xt=he[2*Pt])>=ve&&xt<=Se&&Je>=ae&&Je<=g&&Mt.push(Le[Pt]);else{var Gt=Math.floor((Lt+ht)/2);Je=he[2*Gt+1],(xt=he[2*Gt])>=ve&&xt<=Se&&Je>=ae&&Je<=g&&Mt.push(Le[Gt]);var Ur=(Ft+1)%2;(Ft===0?ve<=xt:ae<=Je)&&(Ct.push(Lt),Ct.push(Gt-1),Ct.push(Ur)),(Ft===0?Se>=xt:g>=Je)&&(Ct.push(Gt+1),Ct.push(ht),Ct.push(Ur))}}return Mt})(this.ids,this.coords,Z,ne,ce,ye,this.nodeSize)},st.prototype.within=function(Z,ne,ce){return(function(ye,Le,he,ve,ae,Se){for(var g=[0,ye.length-1,0],le=[],xt=ae*ae;g.length;){var Je=g.pop(),Ct=g.pop(),Mt=g.pop();if(Ct-Mt<=Se)for(var Ft=Mt;Ft<=Ct;Ft++)ct(Le[2*Ft],Le[2*Ft+1],he,ve)<=xt&&le.push(ye[Ft]);else{var ht=Math.floor((Mt+Ct)/2),Lt=Le[2*ht],Pt=Le[2*ht+1];ct(Lt,Pt,he,ve)<=xt&&le.push(ye[ht]);var Gt=(Je+1)%2;(Je===0?he-ae<=Lt:ve-ae<=Pt)&&(g.push(Mt),g.push(ht-1),g.push(Gt)),(Je===0?he+ae>=Lt:ve+ae>=Pt)&&(g.push(ht+1),g.push(Ct),g.push(Gt))}}return le})(this.ids,this.coords,Z,ne,ce,this.nodeSize)};var pr={minZoom:0,maxZoom:16,minPoints:2,radius:40,extent:512,nodeSize:64,log:!1,generateId:!1,reduce:null,map:function(Z){return Z}},Qt=function(Z){this.options=Gn(Object.create(pr),Z),this.trees=new Array(this.options.maxZoom+1)};function Jt(Z,ne,ce,ye,Le){return{x:Z,y:ne,zoom:1/0,id:ce,parentId:-1,numPoints:ye,properties:Le}}function Nt(Z,ne){var ce=Z.geometry.coordinates,ye=ce[1];return{x:Mr(ce[0]),y:_r(ye),zoom:1/0,index:ne,parentId:-1}}function Ar(Z){return{type:"Feature",id:Z.id,properties:cn(Z),geometry:{type:"Point",coordinates:[(ye=Z.x,360*(ye-.5)),(ne=Z.y,ce=(180-360*ne)*Math.PI/180,360*Math.atan(Math.exp(ce))/Math.PI-90)]}};var ne,ce,ye}function cn(Z){var ne=Z.numPoints,ce=ne>=1e4?Math.round(ne/1e3)+"k":ne>=1e3?Math.round(ne/100)/10+"k":ne;return Gn(Gn({},Z.properties),{cluster:!0,cluster_id:Z.id,point_count:ne,point_count_abbreviated:ce})}function Mr(Z){return Z/360+.5}function _r(Z){var ne=Math.sin(Z*Math.PI/180),ce=.5-.25*Math.log((1+ne)/(1-ne))/Math.PI;return ce<0?0:ce>1?1:ce}
vendor: 4,457 bytes, line 2097
2097function Gn(Z,ne){for(var ce in ne)Z[ce]=ne[ce];return Z}function yr(Z){return Z.x}function vr(Z){return Z.y}function un(Z,ne,ce,ye,Le,he){var ve=Le-ce,ae=he-ye;if(ve!==0||ae!==0){var Se=((Z-ce)*ve+(ne-ye)*ae)/(ve*ve+ae*ae);Se>1?(ce=Le,ye=he):Se>0&&(ce+=ve*Se,ye+=ae*Se)}return(ve=Z-ce)*ve+(ae=ne-ye)*ae}function Dr(Z,ne,ce,ye){var Le={id:Z===void 0?null:Z,type:ne,geometry:ce,tags:ye,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};return(function(he){var ve=he.geometry,ae=he.type;if(ae==="Point"||ae==="MultiPoint"||ae==="LineString")li(he,ve);else if(ae==="Polygon"||ae==="MultiLineString")for(var Se=0;Se<ve.length;Se++)li(he,ve[Se]);else if(ae==="MultiPolygon")for(Se=0;Se<ve.length;Se++)for(var g=0;g<ve[Se].length;g++)li(he,ve[Se][g])})(Le),Le}function li(Z,ne){for(var ce=0;ce<ne.length;ce+=3)Z.minX=Math.min(Z.minX,ne[ce]),Z.minY=Math.min(Z.minY,ne[ce+1]),Z.maxX=Math.max(Z.maxX,ne[ce]),Z.maxY=Math.max(Z.maxY,ne[ce+1])}function Yn(Z,ne,ce,ye){if(ne.geometry){var Le=ne.geometry.coordinates,he=ne.geometry.type,ve=Math.pow(ce.tolerance/((1<<ce.maxZoom)*ce.extent),2),ae=[],Se=ne.id;if(ce.promoteId?Se=ne.properties[ce.promoteId]:ce.generateId&&(Se=ye||0),he==="Point")mn(Le,ae);else if(he==="MultiPoint")for(var g=0;g<Le.length;g++)mn(Le[g],ae);else if(he==="LineString")ri(Le,ae,ve,!1);else if(he==="MultiLineString"){if(ce.lineMetrics){for(g=0;g<Le.length;g++)ri(Le[g],ae=[],ve,!1),Z.push(Dr(Se,"LineString",ae,ne.properties));return}Hn(Le,ae,ve,!1)}else if(he==="Polygon")Hn(Le,ae,ve,!0);else{if(he!=="MultiPolygon"){if(he==="GeometryCollection"){for(g=0;g<ne.geometry.geometries.length;g++)Yn(Z,{id:Se,geometry:ne.geometry.geometries[g],properties:ne.properties},ce,ye);return}throw new Error("Input data is not a valid GeoJSON object.")}for(g=0;g<Le.length;g++){var le=[];Hn(Le[g],le,ve,!0),ae.push(le)}}Z.push(Dr(Se,he,ae,ne.properties))}}function mn(Z,ne){ne.push(Sn(Z[0])),ne.push(Qn(Z[1])),ne.push(0)}function ri(Z,ne,ce,ye){for(var Le,he,ve=0,ae=0;ae<Z.length;ae++){var Se=Sn(Z[ae][0]),g=Qn(Z[ae][1]);ne.push(Se),ne.push(g),ne.push(0),ae>0&&(ve+=ye?(Le*g-Se*he)/2:Math.sqrt(Math.pow(Se-Le,2)+Math.pow(g-he,2))),Le=Se,he=g}var le=ne.length-3;ne[2]=1,(function xt(Je,Ct,Mt,Ft){for(var ht,Lt=Ft,Pt=Mt-Ct>>1,Gt=Mt-Ct,Ur=Je[Ct],er=Je[Ct+1],en=Je[Mt],ln=Je[Mt+1],$r=Ct+3;$r<Mt;$r+=3){var Xr=un(Je[$r],Je[$r+1],Ur,er,en,ln);if(Xr>Lt)ht=$r,Lt=Xr;else if(Xr===Lt){var jr=Math.abs($r-Pt);jr<Gt&&(ht=$r,Gt=jr)}}Lt>Ft&&(ht-Ct>3&&xt(Je,Ct,ht,Ft),Je[ht+2]=Lt,Mt-ht>3&&xt(Je,ht,Mt,Ft))})(ne,0,le,ce),ne[le+2]=1,ne.size=Math.abs(ve),ne.start=0,ne.end=ne.size}function Hn(Z,ne,ce,ye){for(var Le=0;Le<Z.length;Le++){var he=[];ri(Z[Le],he,ce,ye),ne.push(he)}}function Sn(Z){return Z/360+.5}function Qn(Z){var ne=Math.sin(Z*Math.PI/180),ce=.5-.25*Math.log((1+ne)/(1-ne))/Math.PI;return ce<0?0:ce>1?1:ce}function jt(Z,ne,ce,ye,Le,he,ve,ae){if(ye/=ne,he>=(ce/=ne)&&ve<ye)return Z;if(ve<ce||he>=ye)return null;for(var Se=[],g=0;g<Z.length;g++){var le=Z[g],xt=le.geometry,Je=le.type,Ct=Le===0?le.minX:le.minY,Mt=Le===0?le.maxX:le.maxY;if(Ct>=ce&&Mt<ye)Se.push(le);else if(!(Mt<ce||Ct>=ye)){var Ft=[];if(Je==="Point"||Je==="MultiPoint")mr(xt,Ft,ce,ye,Le);else if(Je==="LineString")Rr(xt,Ft,ce,ye,Le,!1,ae.lineMetrics);else if(Je==="MultiLineString")gi(xt,Ft,ce,ye,Le,!1);else if(Je==="Polygon")gi(xt,Ft,ce,ye,Le,!0);else if(Je==="MultiPolygon")for(var ht=0;ht<xt.length;ht++){var Lt=[];gi(xt[ht],Lt,ce,ye,Le,!0),Lt.length&&Ft.push(Lt)}if(Ft.length){if(ae.lineMetrics&&Je==="LineString"){for(ht=0;ht<Ft.length;ht++)Se.push(Dr(le.id,Je,Ft[ht],le.tags));continue}Je!=="LineString"&&Je!=="MultiLineString"||(Ft.length===1?(Je="LineString",Ft=Ft[0]):Je="MultiLineString"),Je!=="Point"&&Je!=="MultiPoint"||(Je=Ft.length===3?"Point":"MultiPoint"),Se.push(Dr(le.id,Je,Ft,le.tags))}}}return Se.length?Se:null}function mr(Z,ne,ce,ye,Le){for(var he=0;he<Z.length;he+=3){var ve=Z[he+Le];ve>=ce&&ve<=ye&&(ne.push(Z[he]),ne.push(Z[he+1]),ne.push(Z[he+2]))}}function Rr(Z,ne,ce,ye,Le,he,ve){for(var ae,Se,g=nn(Z),le=Le===0?kt:Wt,xt=Z.start,Je=0;Je<Z.length-3;Je+=3){var Ct=Z[Je],Mt=Z[Je+1],Ft=Z[Je+2],ht=Z[Je+3],Lt=Z[Je+4],Pt=Le===0?Ct:Mt,Gt=Le===0?ht:Lt,Ur=!1;ve&&(ae=Math.sqrt(Math.pow(Ct-ht,2)+Math.pow(Mt-Lt,2))),Pt<ce?Gt>ce&&(Se=le(g,Ct,Mt,ht,Lt,ce),ve&&(g.start=xt+ae*Se)):Pt>ye?Gt<ye&&(Se=le(g,Ct,Mt,ht,Lt,ye),ve&&(g.start=xt+ae*Se)):Pe(g,Ct,Mt,Ft),Gt<ce&&Pt>=ce&&(Se=le(g,Ct,Mt,ht,Lt,ce),Ur=!0),Gt>ye&&Pt<=ye&&(Se=le(g,Ct,Mt,ht,Lt,ye),Ur=!0),!he&&Ur&&(ve&&(g.end=xt+ae*Se),ne.pu
2097sh(g),g=nn(Z)),ve&&(xt+=ae)}var er=Z.length-3;Ct=Z[er],Mt=Z[er+1],Ft=Z[er+2],(Pt=Le===0?Ct:Mt)>=ce&&Pt<=ye&&Pe(g,Ct,Mt,Ft),er=g.length-3,he&&er>=3&&(g[er]!==g[0]||g[er+1]!==g[1])&&Pe(g,g[0],g[1],g[2]),g.length&&ne.push(g)}function nn(Z){var ne=[];return ne.size=Z.size,ne.start=Z.start,ne.end=Z.end,ne}function gi(Z,ne,ce,ye,Le,he){for(var ve=0;ve<Z.length;ve++)Rr(Z[ve],ne,ce,ye,Le,he,!1)}function Pe(Z,ne,ce,ye){Z.push(ne),Z.push(ce),Z.push(ye)}function kt(Z,ne,ce,ye,Le,he){var ve=(he-ne)/(ye-ne);return Z.push(he),Z.push(ce+(Le-ce)*ve),Z.push(1),ve}function Wt(Z,ne,ce,ye,Le,he){var ve=(he-ce)/(Le-ce);return Z.push(ne+(ye-ne)*ve),Z.push(he),Z.push(1),ve}function cr(Z,ne){for(var ce=[],ye=0;ye<Z.length;ye++){var Le,he=Z[ye],ve=he.type;if(ve==="Point"||ve==="MultiPoint"||ve==="LineString")Le=Ye(he.geometry,ne);else if(ve==="MultiLineString"||ve==="Polygon"){Le=[];for(var ae=0;ae<he.geometry.length;ae++)Le.push(Ye(he.geometry[ae],ne))}else if(ve==="MultiPolygon")for(Le=[],ae=0;ae<he.geometry.length;ae++){for(var Se=[],g=0;g<he.geometry[ae].length;g++)Se.push(Ye(he.geometry[ae][g],ne));Le.push(Se)}ce.push(Dr(he.id,ve,Le,he.tags))}return ce}function Ye(Z,ne){var ce=[];ce.size=Z.size,Z.start!==void 0&&(ce.start=Z.start,ce.end=Z.end);for(var ye=0;ye<Z.length;ye+=3)ce.push(Z[ye]+ne,Z[ye+1],Z[ye+2]);return ce}function Rt(Z,ne){if(Z.transformed)return Z;var ce,ye,Le,he=1<<Z.z,ve=Z.x,ae=Z.y;for(ce=0;ce<Z.features.length;ce++){var Se=Z.features[ce],g=Se.geometry,le=Se.type;if(Se.geometry=[],le===1)for(ye=0;ye<g.length;ye+=2)Se.geometry.push(Ae(g[ye],g[ye+1],ne,he,ve,ae));else for(ye=0;ye<g.length;ye++){var xt=[];for(Le=0;Le<g[ye].length;Le+=2)xt.push(Ae(g[ye][Le],g[ye][Le+1],ne,he,ve,ae));Se.geometry.push(xt)}}return Z.transformed=!0,Z}function Ae(Z,ne,ce,ye,Le,he){return[Math.round(ce*(Z*ye-Le)),Math.round(ce*(ne*ye-he))]}function Vt(Z,ne,ce,ye,Le){for(var he=ne===Le.maxZoom?0:Le.tolerance/((1<<ne)*Le.extent),ve={features:[],numPoints:0,numSimplified:0,numFeatures:0,source:null,x:ce,y:ye,z:ne,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0},ae=0;ae<Z.length;ae++){ve.numFeatures++,Et(ve,Z[ae],he,Le);var Se=Z[ae].minX,g=Z[ae].minY,le=Z[ae].maxX,xt=Z[ae].maxY;Se<ve.minX&&(ve.minX=Se),g<ve.minY&&(ve.minY=g),le>ve.maxX&&(ve.maxX=le),xt>ve.maxY&&(ve.maxY=xt)}return ve}function Et(Z,ne,ce,ye){var Le=ne.geometry,he=ne.type,ve=[];if(he==="Point"||he==="MultiPoint")for(var ae=0;ae<Le.length;ae+=3)ve.push(Le[ae]),ve.push(Le[ae+1]),Z.numPoints++,Z.numSimplified++;else if(he==="LineString")H(ve,Le,Z,ce,!1,!1);else if(he==="MultiLineString"||he==="Polygon")for(ae=0;ae<Le.length;ae++)H(ve,Le[ae],Z,ce,he==="Polygon",ae===0);else if(he==="MultiPolygon")for(var Se=0;Se<Le.length;Se++){var g=Le[Se];for(ae=0;ae<g.length;ae++)H(ve,g[ae],Z,ce,!0,ae===0)}if(ve.length){var le=ne.tags||null;if(he==="LineString"&&ye.lineMetrics){for(var xt in le={},ne.tags)le[xt]=ne.tags[xt];le.mapbox_clip_start=Le.start/Le.size,le.mapbox_clip_end=Le.end/Le.size}var Je={geometry:ve,type:he==="Polygon"||he==="MultiPolygon"?3:he==="LineString"||he==="MultiLineString"?2:1,tags:le};ne.id!==null&&(Je.id=ne.id),Z.features.push(Je)}}function H(Z,ne,ce,ye,Le,he){var ve=ye*ye;if(ye>0&&ne.size<(Le?ve:ye))ce.numPoints+=ne.length/3;else{for(var ae=[],Se=0;Se<ne.length;Se+=3)(ye===0||ne[Se+2]>ve)&&(ce.numSimplified++,ae.push(ne[Se]),ae.push(ne[Se+1])),ce.numPoints++;Le&&(function(g,le){for(var xt=0,Je=0,Ct=g.length,Mt=Ct-2;Je<Ct;Mt=Je,Je+=2)xt+=(g[Je]-g[Mt])*(g[Je+1]+g[Mt+1]);if(xt>0===le)for(Je=0,Ct=g.length;Je<Ct/2;Je+=2){var Ft=g[Je],ht=g[Je+1];g[Je]=g[Ct-2-Je],g[Je+1]=g[Ct-1-Je],g[Ct-2-Je]=Ft,g[Ct-1-Je]=ht}})(ae,he),Z.push(ae)}}function vt(Z,ne){var ce=(ne=this.options=(function(Le,he){for(var ve in he)Le[ve]=he[ve];return Le})(Object.create(this.options),ne)).debug;if(ce&&console.time("preprocess data"),ne.maxZoom<0||ne.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(ne.promoteId&&ne.generateId)throw new Error("promoteId and generateId cannot be used together.");var ye=(function(Le,he){var ve=[];if(Le.type==="FeatureCollection")for(var ae=0;ae<Le.features.length;ae++)Yn(ve,Le.features[ae],he,ae);else Yn(ve,Le.type==="Feature"?Le:{geometry:Le},he);return ve})(Z,ne);this.tiles={},this.tileCoords=[],ce&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",ne.indexMaxZoom,ne.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),(ye=(function(Le,he){var ve=he.buffer/he.extent,ae=Le,Se=jt(Le,1,-1-ve,ve,0,-1,2,he),g=jt(Le,1,1-ve,2+ve,0,-1,2,he);return(Se||g)&&(ae=jt(Le,1,-ve,1+ve,0,-1,2,he)||[],Se&&(ae=cr(Se,1).concat(ae)),g&&(ae=ae.concat(cr(g,-1)))),ae})(ye,ne)).length&&this.splitTile(ye,0,0,0),ce&&(ye.length&&console.log("features: %d, points: %d",this.tiles[0].numFeatures,this.tiles[0].numPoints),console.timeEnd("generate tiles"),console.log("tiles generated:",this.total,JSON.stringify(this.stats)))}function St(Z,ne,ce){return 32*((1<<Z)*ce+ne)+Z}function Te(Z,ne){var ce=Z.tileID.canonical;if(!this._geoJSONIndex)return ne(null,null);var ye=this._geoJSONIndex.getTile(ce.z,ce.x,ce.y);if(!ye)return ne(null,null);var Le=new K(ye.features),he=me(Le);he.byteOffset===0&&he.byteLength===he.buffer.byteLength||(he=new Uint8Array(he)),ne(null,{vectorTile:Le,rawData:he.buffer})}Qt.prototype.load=function(Z){var ne=this.options,ce=ne.log,ye=ne.minZoom,Le=ne.maxZoom,he=ne.nodeSize;ce&&console.time("total time");var ve="prepare "+Z.length+" points";ce&&console.time(ve),this.points=Z;for(var ae=[],Se=0;Se<Z.length;Se++)Z[Se].geometry&&ae.push(Nt(Z[Se],Se));this.trees[Le+1]=new st(ae,yr,vr,he,Float32Array),ce&&console.timeEnd(ve);for(var g=Le;g>=ye;g--){var le=+Date.now();ae=this._cluster(ae,g),this.trees[g]=new st(ae,yr,vr,he,Float32Array),ce&&console.log("z%d: %d clusters in %dms",g,ae.length,+Date.now()-le)}return ce&&console.timeEnd("total time"),this},Qt.prototype.getClusters=function(Z,ne){var ce=((Z[0]+180)%360+360)%360-180,ye=Math.max(-90,Math.min(90,Z[1])),Le=Z[2]===180?180:((Z[2]+180)%360+360)%360-180,he=Math.max(-90,Math.min(90,Z[3]));if(Z[2]-Z[0]>=360)ce=-180,Le=180;else if(ce>Le){var ve=this.getClusters([ce,ye,180,he],ne),ae=this.getClusters([-180,ye,Le,he],ne);return ve.concat(ae)}for(var Se=this.trees[this._limitZoom(ne)],g=[],le=0,xt=Se.range(Mr(ce),_r(he),Mr(Le),_r(ye));le<xt.length;le+=1){var Je=Se.points[xt[le]];g.push(Je.numPoints?Ar(Je):this.points[Je.index])}return g},Qt.prototype.getChildren=function(Z){var ne=this._getOriginId(Z),ce=this._getOriginZoom(Z),ye="No cluster with the specified id.",Le=this.trees[ce];if(!Le)throw new Error(ye);var he=Le.points[ne];
vendor: 4,407 bytes, line 2097
2097if(!he)throw new Error(ye);for(var ve=this.options.radius/(this.options.extent*Math.pow(2,ce-1)),ae=[],Se=0,g=Le.within(he.x,he.y,ve);Se<g.length;Se+=1){var le=Le.points[g[Se]];le.parentId===Z&&ae.push(le.numPoints?Ar(le):this.points[le.index])}if(ae.length===0)throw new Error(ye);return ae},Qt.prototype.getLeaves=function(Z,ne,ce){var ye=[];return this._appendLeaves(ye,Z,ne=ne||10,ce=ce||0,0),ye},Qt.prototype.getTile=function(Z,ne,ce){var ye=this.trees[this._limitZoom(Z)],Le=Math.pow(2,Z),he=this.options,ve=he.radius/he.extent,ae=(ce-ve)/Le,Se=(ce+1+ve)/Le,g={features:[]};return this._addTileFeatures(ye.range((ne-ve)/Le,ae,(ne+1+ve)/Le,Se),ye.points,ne,ce,Le,g),ne===0&&this._addTileFeatures(ye.range(1-ve/Le,ae,1,Se),ye.points,Le,ce,Le,g),ne===Le-1&&this._addTileFeatures(ye.range(0,ae,ve/Le,Se),ye.points,-1,ce,Le,g),g.features.length?g:null},Qt.prototype.getClusterExpansionZoom=function(Z){for(var ne=this._getOriginZoom(Z)-1;ne<=this.options.maxZoom;){var ce=this.getChildren(Z);if(ne++,ce.length!==1)break;Z=ce[0].properties.cluster_id}return ne},Qt.prototype._appendLeaves=function(Z,ne,ce,ye,Le){for(var he=0,ve=this.getChildren(ne);he<ve.length;he+=1){var ae=ve[he],Se=ae.properties;if(Se&&Se.cluster?Le+Se.point_count<=ye?Le+=Se.point_count:Le=this._appendLeaves(Z,Se.cluster_id,ce,ye,Le):Le<ye?Le++:Z.push(ae),Z.length===ce)break}return Le},Qt.prototype._addTileFeatures=function(Z,ne,ce,ye,Le,he){for(var ve=0,ae=Z;ve<ae.length;ve+=1){var Se=ne[ae[ve]],g=Se.numPoints,le={type:1,geometry:[[Math.round(this.options.extent*(Se.x*Le-ce)),Math.round(this.options.extent*(Se.y*Le-ye))]],tags:g?cn(Se):this.points[Se.index].properties},xt=void 0;g?xt=Se.id:this.options.generateId?xt=Se.index:this.points[Se.index].id&&(xt=this.points[Se.index].id),xt!==void 0&&(le.id=xt),he.features.push(le)}},Qt.prototype._limitZoom=function(Z){return Math.max(this.options.minZoom,Math.min(+Z,this.options.maxZoom+1))},Qt.prototype._cluster=function(Z,ne){for(var ce=[],ye=this.options,Le=ye.reduce,he=ye.minPoints,ve=ye.radius/(ye.extent*Math.pow(2,ne)),ae=0;ae<Z.length;ae++){var Se=Z[ae];if(!(Se.zoom<=ne)){Se.zoom=ne;for(var g=this.trees[ne+1],le=g.within(Se.x,Se.y,ve),xt=Se.numPoints||1,Je=xt,Ct=0,Mt=le;Ct<Mt.length;Ct+=1){var Ft=g.points[Mt[Ct]];Ft.zoom>ne&&(Je+=Ft.numPoints||1)}if(Je>=he){for(var ht=Se.x*xt,Lt=Se.y*xt,Pt=Le&&xt>1?this._map(Se,!0):null,Gt=(ae<<5)+(ne+1)+this.points.length,Ur=0,er=le;Ur<er.length;Ur+=1){var en=g.points[er[Ur]];if(!(en.zoom<=ne)){en.zoom=ne;var ln=en.numPoints||1;ht+=en.x*ln,Lt+=en.y*ln,en.parentId=Gt,Le&&(Pt||(Pt=this._map(Se,!0)),Le(Pt,this._map(en)))}}Se.parentId=Gt,ce.push(Jt(ht/Je,Lt/Je,Gt,Je,Pt))}else if(ce.push(Se),Je>1)for(var $r=0,Xr=le;$r<Xr.length;$r+=1){var jr=g.points[Xr[$r]];jr.zoom<=ne||(jr.zoom=ne,ce.push(jr))}}}return ce},Qt.prototype._getOriginId=function(Z){return Z-this.points.length>>5},Qt.prototype._getOriginZoom=function(Z){return(Z-this.points.length)%32},Qt.prototype._map=function(Z,ne){if(Z.numPoints)return ne?Gn({},Z.properties):Z.properties;var ce=this.points[Z.index].properties,ye=this.options.map(ce);return ne&&ye===ce?Gn({},ye):ye},vt.prototype.options={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,debug:0},vt.prototype.splitTile=function(Z,ne,ce,ye,Le,he,ve){for(var ae=[Z,ne,ce,ye],Se=this.options,g=Se.debug;ae.length;){ye=ae.pop(),ce=ae.pop(),ne=ae.pop(),Z=ae.pop();var le=1<<ne,xt=St(ne,ce,ye),Je=this.tiles[xt];if(!Je&&(g>1&&console.time("creation"),Je=this.tiles[xt]=Vt(Z,ne,ce,ye,Se),this.tileCoords.push({z:ne,x:ce,y:ye}),g)){g>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",ne,ce,ye,Je.numFeatures,Je.numPoints,Je.numSimplified),console.timeEnd("creation"));var Ct="z"+ne;this.stats[Ct]=(this.stats[Ct]||0)+1,this.total++}if(Je.source=Z,Le){if(ne===Se.maxZoom||ne===Le)continue;var Mt=1<<Le-ne;if(ce!==Math.floor(he/Mt)||ye!==Math.floor(ve/Mt))continue}else if(ne===Se.indexMaxZoom||Je.numPoints<=Se.indexMaxPoints)continue;if(Je.source=null,Z.length!==0){g>1&&console.time("clipping");var Ft,ht,Lt,Pt,Gt,Ur,er=.5*Se.buffer/Se.extent,en=.5-er,ln=.5+er,$r=1+er;Ft=ht=Lt=Pt=null,Gt=jt(Z,le,ce-er,ce+ln,0,Je.minX,Je.maxX,Se),Ur=jt(Z,le,ce+en,ce+$r,0,Je.minX,Je.maxX,Se),Z=null,Gt&&(Ft=jt(Gt,le,ye-er,ye+ln,1,Je.minY,Je.maxY,Se),ht=jt(Gt,le,ye+en,ye+$r,1,Je.minY,Je.maxY,Se),Gt=null),Ur&&(Lt=jt(Ur,le,ye
2097-er,ye+ln,1,Je.minY,Je.maxY,Se),Pt=jt(Ur,le,ye+en,ye+$r,1,Je.minY,Je.maxY,Se),Ur=null),g>1&&console.timeEnd("clipping"),ae.push(Ft||[],ne+1,2*ce,2*ye),ae.push(ht||[],ne+1,2*ce,2*ye+1),ae.push(Lt||[],ne+1,2*ce+1,2*ye),ae.push(Pt||[],ne+1,2*ce+1,2*ye+1)}}},vt.prototype.getTile=function(Z,ne,ce){var ye=this.options,Le=ye.extent,he=ye.debug;if(Z<0||Z>24)return null;var ve=1<<Z,ae=St(Z,ne=(ne%ve+ve)%ve,ce);if(this.tiles[ae])return Rt(this.tiles[ae],Le);he>1&&console.log("drilling down to z%d-%d-%d",Z,ne,ce);for(var Se,g=Z,le=ne,xt=ce;!Se&&g>0;)g--,le=Math.floor(le/2),xt=Math.floor(xt/2),Se=this.tiles[St(g,le,xt)];return Se&&Se.source?(he>1&&console.log("found parent tile z%d-%d-%d",g,le,xt),he>1&&console.time("drilling down"),this.splitTile(Se.source,g,le,xt,Z,ne,ce),he>1&&console.timeEnd("drilling down"),this.tiles[ae]?Rt(this.tiles[ae],Le):null):null};var Xe=(function(Z){function ne(ce,ye,Le,he){Z.call(this,ce,ye,Le,Te),he&&(this.loadGeoJSON=he)}return Z&&(ne.__proto__=Z),(ne.prototype=Object.create(Z&&Z.prototype)).constructor=ne,ne.prototype.loadData=function(ce,ye){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),this._pendingCallback=ye,this._pendingLoadDataParams=ce,this._state&&this._state!=="Idle"?this._state="NeedsLoadData":(this._state="Coalescing",this._loadData())},ne.prototype._loadData=function(){var ce=this;if(this._pendingCallback&&this._pendingLoadDataParams){var ye=this._pendingCallback,Le=this._pendingLoadDataParams;delete this._pendingCallback,delete this._pendingLoadDataParams;var he=!!(Le&&Le.request&&Le.request.collectResourceTiming)&&new o.RequestPerformance(Le.request);this.loadGeoJSON(Le,(function(ve,ae){if(ve||!ae)return ye(ve);if(typeof ae!="object")return ye(new Error("Input data given to '"+Le.source+"' is not a valid GeoJSON object."));(function Je(Ct,Mt){var Ft,ht=Ct&&Ct.type;if(ht==="FeatureCollection")for(Ft=0;Ft<Ct.features.length;
2097Ft++)Je(Ct.features[Ft],Mt);else if(ht==="GeometryCollection")for(Ft=0;Ft<Ct.geometries.length;Ft++)Je(Ct.geometries[Ft],Mt);else if(ht==="Feature")Je(Ct.geometry,Mt);else if(ht==="Polygon")V(Ct.coordinates,Mt);else if(ht==="MultiPolygon")for(Ft=0;Ft<Ct.coordinates.length;Ft++)V(Ct.coordinates[Ft],Mt);return Ct})(ae,!0);try{if(Le.filter){var Se=o.createExpression(Le.filter,{type:"boolean","property-type":"data-driven",overridable:!1,transition:!1});if(Se.result==="error")throw new Error(Se.value.map((function(Je){return Je.key+": "+Je.message})).join(", "));var g=ae.features.filter((function(Je){return Se.value.evaluate({zoom:0},Je)}));ae={type:"FeatureCollection",features:g}}ce._geoJSONIndex=Le.cluster?new Qt((function(Je){var Ct=Je.superclusterOptions,Mt=Je.clusterProperties;if(!Mt||!Ct)return Ct;for(var Ft={},ht={},Lt={accumulated:null,zoom:0},Pt={properties:null},Gt=Object.keys(Mt),Ur=0,er=Gt;Ur<er.length;Ur+=1){var en=er[Ur],ln=Mt[en],$r=ln[0],Xr=o.createExpression(ln[1]),jr=o.createExpression(typeof $r=="string"?[$r,["accumulated"],["get",en]]:$r);Ft[en]=Xr.value,ht[en]=jr.value}return Ct.map=function(mi){Pt.properties=mi;for(var qr={},dr=0,Be=Gt;dr<Be.length;dr+=1){var qt=Be[dr];qr[qt]=Ft[qt].evaluate(Lt,Pt)}return qr},Ct.reduce=function(mi,qr){Pt.properties=qr;for(var dr=0,Be=Gt;dr<Be.length;dr+=1){var qt=Be[dr];Lt.accumulated=mi[qt],mi[qt]=ht[qt].evaluate(Lt,Pt)}},Ct})(Le)).load(ae.features):(function(Je,Ct){return new vt(Je,Ct)})(ae,Le.geojsonVtOptions)}catch(Je){return ye(Je)}ce.loaded={};var le={};if(he){var xt=he.finish();xt&&(le.resourceTiming={},le.resourceTiming[Le.source]=JSON.parse(JSON.stringify(xt)))}ye(null,le)}))}},ne.prototype.coalesce=function(){this._state==="Coalescing"?this._state="Idle":this._state==="NeedsLoadData"&&(this._state="Coalescing",this._loadData())},ne.prototype.reloadTile=function(ce,ye){var Le=this.loaded;return Le&&Le[ce.uid]?Z.prototype.reloadTile.call(this,ce,ye):this.loadTile(ce,ye)},ne.prototype.loadGeoJSON=function(ce,ye){if(ce.request)o.getJSON(ce.request,ye);else{if(typeof ce.data!="string")return ye(new Error("Input data given to '"+ce.source+"' is not a valid GeoJSON object."));try{return ye(null,JSON.parse(ce.data))}catch{return ye(new Error("Input data given to '"+ce.source+"' is not a valid GeoJSON object."))}}},ne.prototype.removeSource=function(ce,ye){this._pendingCallback&&this._pendingCallback(null,{abandoned:!0}),ye()},ne.prototype.getClusterExpansionZoom=function(ce,ye){try{ye(null,this._geoJSONIndex.getClusterExpansionZoom(ce.clusterId))}catch(Le){ye(Le)}},ne.prototype.getClusterChildren=function(ce,ye){try{ye(null,this._geoJSONIndex.getChildren(ce.clusterId))}catch(Le){ye(Le)}},ne.prototype.getClusterLeaves=function(ce,ye){try{ye(null,this._geoJSONIndex.getLeaves(ce.clusterId,ce.limit,ce.offset))}catch(Le){ye(Le)}},ne})(N),ut=function(Z){var ne=this;this.self=Z,this.actor=new o.Actor(Z,this),this.layerIndexes={},this.availableImages={},this.workerSourceTypes={vector:N,geojson:Xe},this.workerSources={},this.demWorkerSources={},this.self.registerWorkerSource=function(ce,ye){if(ne.workerSourceTypes[ce])throw new Error('Worker source with name "'+ce+'" already registered.');ne.workerSourceTypes[ce]=ye},this.self.registerRTLTextPlugin=function(ce){if(o.plugin.isParsed())throw new Error("RTL text plugin already registered.");o.plugin.applyArabicShaping=ce.applyArabicShaping,o.plugin.processBidirectionalText=ce.processBidirectionalText,o.plugin.processStyledBidirectionalText=ce.processStyledBidirectionalText}};return ut.prototype.setReferrer=function(Z,ne){this.referrer=ne},ut.prototype.setImages=function(Z,ne,ce){for(var ye in this.availableImages[Z]=ne,this.workerSources[Z]){var Le=this.workerSources[Z][ye];for(var he in Le)Le[he].availableImages=ne}ce()},ut.prototype.setLayers=function(Z,ne,ce){this.getLayerIndex(Z).replace(ne),ce()},ut.prototype.updateLayers=function(Z,ne,ce){this.getLayerIndex(Z).update(ne.layers,ne.removedIds),ce()},ut.prototype.loadTile=function(Z,ne,ce){this.getWorkerSource(Z,ne.type,ne.source).loadTile(ne,ce)},ut.prototype.loadDEMTile=function(Z,ne,ce){this.getDEMWorkerSource(Z,ne.source).loadTile(ne,ce)},ut.prototype.reloadTile=function(Z,ne,ce){this.getWorkerSource(Z,ne.type,ne.source).reloadTile(ne,ce)},ut.prototype.abortTile=function(Z,ne,ce){this.getWorkerSource(Z,ne.type,ne.source).abortTile(ne,ce)},ut.prototype.removeTile=function(Z,ne,ce){this.getWorkerSource(Z,ne.type,ne.source).removeTile(ne,ce)},ut.prototype.removeDEMTile=function(Z,ne){this.getDEMWorkerSource(Z,ne.source).removeTile(ne)},ut.prototype.removeSource=function(Z,ne,ce){if(this.workerSources[Z]&&this.workerSources[Z][ne.type]&&this.workerSources[Z][ne.type][ne.source]){var ye=this.workerSources[Z][ne.type][ne.source];delete this.workerSources[Z][ne.type][ne.source],ye.removeSource!==void 0?ye.removeSource(ne,ce):ce()}},ut.prototype.loadWorkerSource=function(Z,ne,ce){try{this.self.importScripts(ne.url),ce()}catch(ye){ce(ye.toString())}},ut.prototype.syncRTLPluginState=function(Z,ne,ce){try{o.plugin.setState(ne);var ye=o.plugin.getPluginURL();if(o.plugin.isLoaded()&&!o.plugin.isParsed()&&ye!=null){this.self.importScripts(ye);var Le=o.plugin.isParsed();ce(Le?void 0:new Error("RTL Text Plugin failed to import scripts from "+ye),Le)}}catch(he){ce(he.toString())}},ut.prototype.getAvailableImages=function(Z){var ne=this.availableImages[Z];return ne||(ne=[]),ne},ut.prototype.getLayerIndex=function(Z){var ne=this.layerIndexes[Z];return ne||(ne=this.layerIndexes[Z]=new A),ne},ut.prototype.getWorkerSource=function(Z,ne,ce){var ye=this;return this.workerSources[Z]||(this.workerSources[Z]={}),this.workerSources[Z][ne]||(this.workerSources[Z][ne]={}),this.workerSources[Z][ne][ce]||(this.workerSources[Z][ne][ce]=new this.workerSourceTypes[ne]({send:function(Le,he,ve){ye.actor.send(Le,he,ve,Z)}},this.getLayerIndex(Z),this.getAvailableImages(Z))),this.workerSources[Z][ne][ce]},ut.prototype.getDEMWorkerSource=function(Z,ne){return this.demWorkerSources[Z]||(this.demWorkerSources[Z]={}),this.demWorkerSources[Z][ne]||(this.demWorkerSources[Z][ne]=new $),this.demWorkerSources[Z][ne]},ut.prototype.enforceCacheSizeLimit=function(Z,ne){o.enforceCacheSizeLimit(ne)},typeof WorkerGlobalScope<"u"&&typeof self<"u"&&self instanceof WorkerGlobalScope&&(self.worker=new ut(self)),ut})),s(["./shared"],(function(o){var l=o.createCommonjsModule((function(c){function d(E){return!h(E)}function h(E){return typeof window>"u"||typeof document>"u"?"not a browser":Array.prototype&&Array.prototype.every&&Array.prototype.filter&&Array.prototype.forEach&&Array.prototype.indexOf&&Array.prototype.lastIndexOf&&Array.prototype.map&&Array.prototype.some&&Array.prototype.reduce&&Array.prototype.reduceRight&&Array.isArray?Function.prototype&&Function.prototype.bind?Object.keys&&Object.create&&Object.getPrototypeOf&&Object.getOwnPropertyNames&&Object.isSealed&&Object.isFrozen&&Object.isExtensible&&Object.getOwnPropertyDescriptor&&Object.defineProperty&&Object.defineProperties&&Object.seal&&Object.freeze&&Object.preventExtensions?"JSON"in window&&"parse"in JSON&&"stringify"in JSON?(function(){if(!("Worker"in window&&"Blob"in window&&"URL"in window))return!1;var R,L,z=new Blob([""],{type:"text/javascript"}),q=URL.createObjectURL(z);try{L=new Worker(q),R=!0}catch{R=!1}return L&&L.terminate(),URL.revokeObjectURL(q),R})()?"Uint8ClampedArray"in window?ArrayBuffer.isView?(function(){var R=document.createElement("canvas");R.width=R.height=1;var L=R.getContext("2d");if(!L)return!1;var z=L.getImageData(0,0,1,1);return z&&z.width===R.width})()?(m[M=E&&E.failIfMajorPerformanceCaveat]===void 0&&(m[M]=(function(R){var L=(function(q){var ee=document.createElement("canvas"),Y=Object.create(d.webGLContextAttributes);return Y.failIfMajorPerformanceCaveat=q,ee.probablySupportsContext?ee.probablySupportsContext("webgl",Y)||ee.probablySupportsContext("experimental-webgl",Y):ee.supportsContext?ee.supportsContext("webgl",Y)||ee.supportsContext("experimental-webgl",Y):ee.getContext("webgl",Y)||ee.getContext("experimental-webgl",Y)})(R);if(!L)return!1;var z=L.createShader(L.VERTEX_SHADER);return!(!z||L.isContextLost())&&(L.shaderSource(z,"void main() {}"),L.compileShader(z),L.getShaderParameter(z,L.COMPILE_STATUS)===!0)})(M)),m[M]?void 0:"insufficient WebGL support"):"insufficient Canvas/getImageData support":"insufficient ArrayBuffer support":"insufficient Uint8ClampedArray supp
2097ort":"insufficient worker support":"insufficient JSON support":"insufficient Object support":"insufficient Function support":"insufficent Array support";var M}c.exports?c.exports=d:window&&(window.mapboxgl=window.mapboxgl||{},window.mapboxgl.supported=d,window.mapboxgl.notSupportedReason=h);var m={};d.webGLContextAttributes={antialias:!1,alpha:!0,stencil:!0,depth:!0}})),f={create:function(c,d,h){var m=o.window.document.createElement(c);return d!==void 0&&(m.className=d),h&&h.appendChild(m),m},createNS:function(c,d){return o.window.document.createElementNS(c,d)}},A=o.window.document&&o.window.document.documentElement.style;function v(c){if(!A)return c[0];for(var d=0;d<c.length;d++)if(c[d]in A)return c[d];return c[0]}var T,I=v(["userSelect","MozUserSelect","WebkitUserSelect","msUserSelect"]);f.disableDrag=function(){A&&I&&(T=A[I],A[I]="none")},f.enableDrag=function(){A&&I&&(A[I]=T)};var F=v(["transform","WebkitTransform"]);f.setTransform=function(c,d){c.style[F]=d};var N=!1;try{var U=Object.defineProperty({},"passive",{get:function(){N=!0}});o.window.addEventListener("test",U,U),o.window.removeEventListener("test",U,U)}catch{N=!1}f.addEventListener=function(c,d,h,m){m===void 0&&(m={}),c.addEventListener(d,h,"passive"in m&&N?m:m.capture)},f.removeEventListener=function(c,d,h,m){m===void 0&&(m={}),c.removeEventListener(d,h,"passive"in m&&N?m:m.capture)};var $=function(c){c.preventDefault(),c.stopPropagation(),o.window.removeEventListener("click",$,!0)};function V(c){var d=c.userImage;return!!(d&&d.render&&d.render())&&(c.data.replace(new Uint8Array(d.data.buffer)),!0)}f.suppressClick=function(){o.window.addEventListener("click",$,!0),o.window.setTimeout((function(){o.window.removeEventListener("click",$,!0)}),0)},f.mousePos=function(c,d){var h=c.getBoundingClientRect();return new o.Point(d.clientX-h.left-c.clientLeft,d.clientY-h.top-c.clientTop)},f.touchPos=function(c,d){for(var h=c.getBoundingClientRect(),m=[],E=0;E<d.length;E++)m.push(new o.Point(d[E].clientX-h.left-c.clientLeft,d[E].clientY-h.top-c.clientTop));return m},f.mouseButton=function(c){return o.window.InstallTrigger!==void 0&&c.button===2&&c.ctrlKey&&o.window.navigator.platform.toUpperCase().indexOf("MAC")>=0?0:c.button},f.remove=function(c){c.parentNode&&c.parentNode.removeChild(c)};var G=(function(c){function d(){c.call(this),this.images={},this.updatedImages={},this.callbackDispatchedThisFrame={},this.loaded=!1,this.requestors=[],this.patterns={},this.atlasImage=new o.RGBAImage({width:1,height:1}),this.dirty=!0}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.isLoaded=function(){return this.loaded},d.prototype.setLoaded=function(h){if(this.loaded!==h&&(this.loaded=h,h)){for(var m=0,E=this.requestors;m<E.length;m+=1){var M=E[m];this._notify(M.ids,M.callback)}this.requestors=[]}},d.prototype.getImage=function(h){return this.images[h]},d.prototype.addImage=function(h,m){this._validate(h,m)&&(this.images[h]=m)},d.prototype._validate=function(h,m){var E=!0;return this._validateStretch(m.stretchX,m.data&&m.data.width)||(this.fire(new o.ErrorEvent(new Error('Image "'+h+'" has invalid "stretchX" value'))),E=!1),this._validateStretch(m.stretchY,m.data&&m.data.height)||(this.fire(new o.ErrorEvent(new Error('Image "'+h+'" has invalid "stretchY" value'))),E=!1),this._validateContent(m.content,m)||(this.fire(new o.ErrorEvent(new Error('Image "'+h+'" has invalid "content" value'))),E=!1),E},d.prototype._validateStretch=function(h,m){if(!h)return!0;for(var E=0,M=0,R=h;M<R.length;M+=1){var L=R[M];if(L[0]<E||L[1]<L[0]||m<L[1])return!1;E=L[1]}return!0},d.prototype._validateContent=function(h,m){return!(h&&(h.length!==4||h[0]<0||m.data.width<h[0]||h[1]<0||m.data.height<h[1]||h[2]<0||m.data.width<h[2]||h[3]<0||m.data.height<h[3]||h[2]<h[0]||h[3]<h[1]))},d.prototype.updateImage=function(h,m){m.version=this.images[h].version+1,this.images[h]=m,this.updatedImages[h]=!0},d.prototype.removeImage=function(h){var m=this.images[h];delete this.images[h],delete this.patterns[h],m.userImage&&m.userImage.onRemove&&m.userImage.onRemove()},d.prototype.listImages=function(){return Object.keys(this.images)},d.prototype.getImages=function(h,m){var E=!0;if(!this.isLoaded())for(var M=0,R=h;M<R.length;M+=1)this.images[R[M]]||(E=!1);this.isLoaded()||E?this._notify(h,m):this.requestors.push({ids:h,callback:m})},d.prototype._notify=function(h,m){for(var E={},M=0,R=h;M<R.length;M+=1){var L=R[M];this.images[L]||this.fire(new o.Event("styleimagemissing",{id:L}));var z=this.images[L];z?E[L]={data:z.data.clone(),pixelRatio:z.pixelRatio,sdf:z.sdf,version:z.version,stretchX:z.stretchX,stretchY:z.stretchY,content:z.content,hasRenderCallback:!!(z.userImage&&z.userImage.render)}:o.warnOnce('Image "'+L+'" could not be loaded. Please make sure you have added the image with map.addImage() or a "sprite" property in your style. You can provide missing images by listening for the "styleimagemissing" map event.')}m(null,E)},d.prototype.getPixelSize=function(){var h=this.atlasImage;return{width:h.width,height:h.height}},d.prototype.getPattern=function(h){var m=this.patterns[h],E=this.getImage(h);if(!E)return null;if(m&&m.position.version===E.version)return m.position;if(m)m.position.version=E.version;else{var M={w:E.data.width+2,h:E.data.height+2,x:0,y:0},R=new o.ImagePosition(M,E);this.patterns[h]={bin:M,position:R}}return this._updatePatternAtlas(),this.patterns[h].position},d.prototype.bind=function(h){var m=h.gl;this.atlasTexture?this.dirty&&(this.atlasTexture.update(this.atlasImage),this.dirty=!1):this.atlasTexture=new o.Texture(h,this.atlasImage,m.RGBA),this.atlasTexture.bind(m.LINEAR,m.CLAMP_TO_EDGE)},d.prototype._updatePatternAtlas=function(){var h=[];for(var m in this.patterns)h.push(this.patterns[m].bin);var E=o.potpack(h),M=E.w,R=E.h,L=this.atlasImage;for(var z in L.resize({width:M||1,height:R||1}),this.patterns){var q=this.patterns[z].bin,ee=q.x+1,Y=q.y+1,re=this.images[z].data,oe=re.width,xe=re.height;o.RGBAImage.copy(re,L,{x:0,y:0},{x:ee,y:Y},{width:oe,height:xe}),o.RGBAImage.copy(re,L,{x:0,y:xe-1},{x:ee,y:Y-1},{width:oe,height:1}),o.RGBAImage.copy(re,L,{x:0,y:0},{x:ee,y:Y+xe},{width:oe,height:1}),o.RGBAImage.copy(re,L,{x:oe-1,y:0},{x:ee-1,y:Y},{width:1,height:xe}),o.RGBAImage.copy(re,L,{x:0,y:0},{x:ee+oe,y:Y},{width:1,height:xe})}this.dirty=!0},d.prototype.beginFrame=function(){this.callbackDispatchedThisFrame={}},d.prototype.dispatchRenderCallbacks=function(h){for(var m=0,E=h;m<E.length;m+=1){var M=E[m];if(!this.callbackDispatchedThisFrame[M]){this.callbackDispatchedThisFrame[M]=!0;var R=this.images[M];V(R)&&this.updateImage(M,R)}}},d})(o.Evented),X=se,ue=se,K=1e20;function se(c,d,h,m,E,M){this.fontSize=c||24,this.buffer=d===void 0?3:d,this.cutoff=m||.25,this.fontFamily=E||"sans-serif",this.fontWeight=M||"normal",this.radius=h||8;var R=this.size=this.fontSize+2*this.buffer;this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=R,this.ctx=this.canvas.getContext("2d"),this.ctx.font=this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textBaseline="middle",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(R*R),this.gridInner=new Float64Array(R*R),this.f=new Float64Array(R),this.d=new Float64Array(R),this.z=new Float64Array(R+1),this.v=new Int16Array(R),this.middle=Math.round(R/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function Ee(c,d,h,m,E,M,R){for(var L=0;L<d;L++){for(var z=0;z<h;z++)m[z]=c[z*d+L];for(Ue(m,E,M,R,h),z=0;z<h;z++)c[z*d+L]=E[z]}for(z=0;z<h;z++){for(L=0;L<d;L++)m[L]=c[z*d+L];for(Ue(m,E,M,R,d),L=0;L<d;L++)c[z*d+L]=Math.sqrt(E[L])}}function Ue(c,d,h,m,E){h[0]=0,m[0]=-K,m[1]=+K;for(var M=1,R=0;M<E;M++){for(var L=(c[M]+M*M-(c[h[R]]+h[R]*h[R]))/(2*M-2*h[R]);L<=m[R];)R--,L=(c[M]+M*M-(c[h[R]]+h[R]*h[R]))/(2*M-2*h[R]);h[++R]=M,m[R]=L,m[R+1]=+K}for(M=0,R=0;M<E;M++){for(;m[R+1]<M;)R++;d[M]=(M-h[R])*(M-h[R])+c[h[R]]}}se.prototype.draw=function(c){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.fillText(c,this.buffer,this.middle);for(var d=this.ctx.getImageData(0,0,this.size,this.size),h=new Uint8ClampedArray(this.size*this.size),m=0;m<this.size*this.size;m++){var E=d.data[4*m+3]/255;this.gridOuter[m]=E===1?0:E===0?K:Math.pow(Math.max(0,.5-E),2),this.gridInner[m]=E===1?K:E===0?0:Math.pow(Math.max(0,E-.5),2)}for(Ee(this.gridOuter,this.size,this.size,this.f,this.d,this.v,this.z),Ee(this.gridInner,this.size,this.size,this.f,this.d,this.v,this.z),m=0;m<this.size*this.size;m++)h[m]=Math.max(0,Math.min(255,Math.round(255-255*((this.gridOuter[m]-this.gridInner[m])/this.radius+this.cutoff))));return h},X.default=ue;var de=function(c,d){this.requestManager=c,this.localIdeographFontFamily=d,this.entries={}};de.prototype.setURL=function(c){this.url=c},de.prototype.getGlyphs=function(c,d){var h=this,m=[];for(var E in c)for(var M=0,R=c[E];M<R.length;M+=1)m.push({stack:E,id:R[M]});o.asyncAll(m,(function(L,z){var q=L.stack,ee=L.id,Y=h.entries[q];Y||(Y=h.entries[q]={glyphs:{},requests:{},ranges:{}});var re=Y.glyphs[ee];if(re===void 0){if(re=h._tinySDF(Y,q,ee))return Y.glyphs[ee]=re,void z(null,{stack:q,id:ee,glyph:re});var oe=Math.floor(ee/256);if(256*oe>65535)z(new Error("glyphs > 65535 not supported"));else if(Y.ranges[oe])z(null,{stack:q,id:ee,glyph:re});else{var xe=Y.requests[oe];xe||(xe=Y.requests[oe]=[],de.loadGlyphRange(q,oe,h.url,h.requestManager,(function(Oe,ge){if(ge){for(var Re in ge)h._doesCharSupportLocalGlyph(+Re)||(Y.glyphs[+Re]=ge[+Re]);Y.ranges[oe]=!0}for(var Ge=0,$e=xe;Ge<$e.length;Ge+=1)(0,$e[Ge])(Oe,ge);delete Y.requests[oe]}))),xe.push((function(Oe,ge){Oe?z(Oe):ge&&z(null,{stack:q,id:ee,glyph:ge[ee]||null})}))}}else z(null,{stack:q,id:ee,glyph:re})}),(function(L,z){if(L)d(L);else if(z){for(var q={},ee=0,Y=z;ee<Y.length;ee+=1){var re=Y[ee],oe=re.stack,xe=re.id,Oe=re.glyph;(q[oe]||(q[oe]={}))[xe]=Oe&&{id:Oe.id,bitmap:Oe.bitmap.clone(),metrics:Oe.metrics}}d(null,q)}}
vendor: 9,119 bytes, line 2097
2097))},de.prototype._doesCharSupportLocalGlyph=function(c){return!!this.localIdeographFontFamily&&(o.isChar["CJK Unified Ideographs"](c)||o.isChar["Hangul Syllables"](c)||o.isChar.Hiragana(c)||o.isChar.Katakana(c))},de.prototype._tinySDF=function(c,d,h){var m=this.localIdeographFontFamily;if(m&&this._doesCharSupportLocalGlyph(h)){var E=c.tinySDF;if(!E){var M="400";/bold/i.test(d)?M="900":/medium/i.test(d)?M="500":/light/i.test(d)&&(M="200"),E=c.tinySDF=new de.TinySDF(24,3,8,.25,m,M)}return{id:h,bitmap:new o.AlphaImage({width:30,height:30},E.draw(String.fromCharCode(h))),metrics:{width:24,height:24,left:0,top:-8,advance:24}}}},de.loadGlyphRange=function(c,d,h,m,E){var M=256*d,R=M+255,L=m.transformRequest(m.normalizeGlyphsURL(h).replace("{fontstack}",c).replace("{range}",M+"-"+R),o.ResourceType.Glyphs);o.getArrayBuffer(L,(function(z,q){if(z)E(z);else if(q){for(var ee={},Y=0,re=o.parseGlyphPBF(q);Y<re.length;Y+=1){var oe=re[Y];ee[oe.id]=oe}E(null,ee)}}))},de.TinySDF=X;var me=function(){this.specification=o.styleSpec.light.position};me.prototype.possiblyEvaluate=function(c,d){return o.sphericalToCartesian(c.expression.evaluate(d))},me.prototype.interpolate=function(c,d,h){return{x:o.number(c.x,d.x,h),y:o.number(c.y,d.y,h),z:o.number(c.z,d.z,h)}};var pe=new o.Properties({anchor:new o.DataConstantProperty(o.styleSpec.light.anchor),position:new me,color:new o.DataConstantProperty(o.styleSpec.light.color),intensity:new o.DataConstantProperty(o.styleSpec.light.intensity)}),W=(function(c){function d(h){c.call(this),this._transitionable=new o.Transitionable(pe),this.setLight(h),this._transitioning=this._transitionable.untransitioned()}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getLight=function(){return this._transitionable.serialize()},d.prototype.setLight=function(h,m){if(m===void 0&&(m={}),!this._validate(o.validateLight,h,m))for(var E in h){var M=h[E];o.endsWith(E,"-transition")?this._transitionable.setTransition(E.slice(0,-11),M):this._transitionable.setValue(E,M)}},d.prototype.updateTransitions=function(h){this._transitioning=this._transitionable.transitioned(h,this._transitioning)},d.prototype.hasTransition=function(){return this._transitioning.hasTransition()},d.prototype.recalculate=function(h){this.properties=this._transitioning.possiblyEvaluate(h)},d.prototype._validate=function(h,m,E){return(!E||E.validate!==!1)&&o.emitValidationErrors(this,h.call(o.validateStyle,o.extend({value:m,style:{glyphs:!0,sprite:!0},styleSpec:o.styleSpec})))},d})(o.Evented),te=function(c,d){this.width=c,this.height=d,this.nextRow=0,this.data=new Uint8Array(this.width*this.height),this.dashEntry={}};te.prototype.getDash=function(c,d){var h=c.join(",")+String(d);return this.dashEntry[h]||(this.dashEntry[h]=this.addDash(c,d)),this.dashEntry[h]},te.prototype.getDashRanges=function(c,d,h){var m=[],E=c.length%2==1?-c[c.length-1]*h:0,M=c[0]*h,R=!0;m.push({left:E,right:M,isDash:R,zeroLength:c[0]===0});for(var L=c[0],z=1;z<c.length;z++){var q=c[z];m.push({left:E=L*h,right:M=(L+=q)*h,isDash:R=!R,zeroLength:q===0})}return m},te.prototype.addRoundDash=function(c,d,h){for(var m=d/2,E=-h;E<=h;E++)for(var M=this.width*(this.nextRow+h+E),R=0,L=c[R],z=0;z<this.width;z++){z/L.right>1&&(L=c[++R]);var q=Math.abs(z-L.left),ee=Math.abs(z-L.right),Y=Math.min(q,ee),re=void 0,oe=E/h*(m+1);if(L.isDash){var xe=m-Math.abs(oe);re=Math.sqrt(Y*Y+xe*xe)}else re=m-Math.sqrt(Y*Y+oe*oe);this.data[M+z]=Math.max(0,Math.min(255,re+128))}},te.prototype.addRegularDash=function(c){for(var d=c.length-1;d>=0;--d){var h=c[d],m=c[d+1];h.zeroLength?c.splice(d,1):m&&m.isDash===h.isDash&&(m.left=h.left,c.splice(d,1))}var E=c[0],M=c[c.length-1];E.isDash===M.isDash&&(E.left=M.left-this.width,M.right=E.right+this.width);for(var R=this.width*this.nextRow,L=0,z=c[L],q=0;q<this.width;q++){q/z.right>1&&(z=c[++L]);var ee=Math.abs(q-z.left),Y=Math.abs(q-z.right),re=Math.min(ee,Y);this.data[R+q]=Math.max(0,Math.min(255,(z.isDash?re:-re)+128))}},te.prototype.addDash=function(c,d){var h=d?7:0,m=2*h+1;if(this.nextRow+m>this.height)return o.warnOnce("LineAtlas out of space"),null;for(var E=0,M=0;M<c.length;M++)E+=c[M];if(E!==0){var R=this.width/E,L=this.getDashRanges(c,this.width,R);d?this.addRoundDash(L,R,h):this.addRegularDash(L)}var z={y:(this.nextRow+h+.5)/this.height,height:2*h/this.height,width:E};return this.nextRow+=m,this.dirty=!0,z},te.prototype.bind=function(c){var d=c.gl;this.texture?(d.bindTexture(d.TEXTURE_2D,this.texture),this.dirty&&(this.dirty=!1,d.texSubImage2D(d.TEXTURE_2D,0,0,0,this.width,this.height,d.ALPHA,d.UNSIGNED_BYTE,this.data))):(this.texture=d.createTexture(),d.bindTexture(d.TEXTURE_2D,this.texture),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_S,d.REPEAT),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_WRAP_T,d.REPEAT),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MIN_FILTER,d.LINEAR),d.texParameteri(d.TEXTURE_2D,d.TEXTURE_MAG_FILTER,d.LINEAR),d.texImage2D(d.TEXTURE_2D,0,d.ALPHA,this.width,this.height,0,d.ALPHA,d.UNSIGNED_BYTE,this.data))};var Ce=function c(d,h){this.workerPool=d,this.actors=[],this.currentActor=0,this.id=o.uniqueId();for(var m=this.workerPool.acquire(this.id),E=0;E<m.length;E++){var M=new c.Actor(m[E],h,this.id);M.name="Worker "+E,this.actors.push(M)}};function Qe(c,d,h){var m=function(E,M){if(E)return h(E);if(M){var R=o.pick(o.extend(M,c),["tiles","minzoom","maxzoom","attribution","mapbox_logo","bounds","scheme","tileSize","encoding"]);M.vector_layers&&(R.vectorLayers=M.vector_layers,R.vectorLayerIds=R.vectorLayers.map((function(L){return L.id}))),R.tiles=d.canonicalizeTileset(R,c.url),h(null,R)}};return c.url?o.getJSON(d.transformRequest(d.normalizeSourceURL(c.url),o.ResourceType.Source),m):o.browser.frame((function(){return m(null,c)}))}Ce.prototype.broadcast=function(c,d,h){o.asyncAll(this.actors,(function(m,E){m.send(c,d,E)}),h=h||function(){})},Ce.prototype.getActor=function(){return this.currentActor=(this.currentActor+1)%this.actors.length,this.actors[this.currentActor]},Ce.prototype.remove=function(){this.actors.forEach((function(c){c.remove()})),this.actors=[],this.workerPool.release(this.id)},Ce.Actor=o.Actor;var we=function(c,d,h){this.bounds=o.LngLatBounds.convert(this.validateBounds(c)),this.minzoom=d||0,this.maxzoom=h||24};we.prototype.validateBounds=function(c){return Array.isArray(c)&&c.length===4?[Math.max(-180,c[0]),Math.max(-90,c[1]),Math.min(180,c[2]),Math.min(90,c[3])]:[-180,-90,180,90]},we.prototype.contains=function(c){var d=Math.pow(2,c.z),h=Math.floor(o.mercatorXfromLng(this.bounds.getWest())*d),m=Math.floor(o.mercatorYfromLat(this.bounds.getNorth())*d),E=Math.ceil(o.mercatorXfromLng(this.bounds.getEast())*d),M=Math.ceil(o.mercatorYfromLat(this.bounds.getSouth())*d);return c.x>=h&&c.x<E&&c.y>=m&&c.y<M};var De=(function(c){function d(h,m,E,M){if(c.call(this),this.id=h,this.dispatcher=E,this.type="vector",this.minzoom=0,this.maxzoom=22,this.scheme="xyz",this.tileSize=512,this.reparseOverscaled=!0,this.isTileClipped=!0,this._loaded=!1,o.extend(this,o.pick(m,["url","scheme","tileSize","promoteId"])),this._options=o.extend({type:"vector"},m),this._collectResourceTiming=m.collectResourceTiming,this.tileSize!==512)throw new Error("vector tile sources must have a tileSize of 512");this.setEventedParent(M)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.load=function(){var h=this;this._loaded=!1,this.fire(new o.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=Qe(this._options,this.map._requestManager,(function(m,E){h._tileJSONRequest=null,h._loaded=!0,m?h.fire(new o.ErrorEvent(m)):E&&(o.extend(h,E),E.bounds&&(h.tileBounds=new we(E.bounds,h.minzoom,h.maxzoom)),o.postTurnstileEvent(E.tiles,h.map._requestManager._customAccessToken),o.postMapLoadEvent(E.tiles,h.map._getMapId(),h.map._requestManager._skuToken,h.map._requestManager._customAccessToken),h.fire(new o.Event("data",{dataType:"source",sourceDataType:"metadata"})),h.fire(new o.Event("data",{dataType:"source",sourceDataType:"content"})))}))},d.prototype.loaded=function(){return this._loaded},d.prototype.hasTile=function(h){return!this.tileBounds||this.tileBounds.contains(h.canonical)},d.prototype.onAdd=function(h){this.map=h,this.load()},d.prototype.setSourceProperty=function(h){this._tileJSONRequest&&this._tileJSONRequest.cancel(),h(),this.map.style.sourceCaches[this.id].clearTiles(),this.load()},d.prototype.setTiles=function(h){var m=this;return this.setSourceProperty((function(){m._options.tiles=h})),this},d.prototype.setUrl=function(h){var m=this;return this.setSourceProperty((function(){m.url=h,m._options.url=h})),this},d.prototype.onRemove=function(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)},d.prototype.serialize=function(){return o.extend({},this._options)},d.prototype.loadTile=function(h,m){var E=this.map._requestManager.normalizeTileURL(h.tileID.canonical.url(this.tiles,this.scheme)),M={request:this.map._requestManager.transformRequest(E,o.ResourceType.Tile),uid:h.uid,tileID:h.tileID,zoom:h.tileID.overscaledZ,tileSize:this.tileSize*h.tileID.overscaleFactor(),type:this.t
2097ype,source:this.id,pixelRatio:o.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId};function R(L,z){return delete h.request,h.aborted?m(null):L&&L.status!==404?m(L):(z&&z.resourceTiming&&(h.resourceTiming=z.resourceTiming),this.map._refreshExpiredTiles&&z&&h.setExpiryData(z),h.loadVectorData(z,this.map.painter),o.cacheEntryPossiblyAdded(this.dispatcher),m(null),void(h.reloadCallback&&(this.loadTile(h,h.reloadCallback),h.reloadCallback=null)))}M.request.collectResourceTiming=this._collectResourceTiming,h.actor&&h.state!=="expired"?h.state==="loading"?h.reloadCallback=m:h.request=h.actor.send("reloadTile",M,R.bind(this)):(h.actor=this.dispatcher.getActor(),h.request=h.actor.send("loadTile",M,R.bind(this)))},d.prototype.abortTile=function(h){h.request&&(h.request.cancel(),delete h.request),h.actor&&h.actor.send("abortTile",{uid:h.uid,type:this.type,source:this.id},void 0)},d.prototype.unloadTile=function(h){h.unloadVectorData(),h.actor&&h.actor.send("removeTile",{uid:h.uid,type:this.t
vendor: 4,145 bytes, line 2097
2097ype,source:this.id},void 0)},d.prototype.hasTransition=function(){return!1},d})(o.Evented),ze=(function(c){function d(h,m,E,M){c.call(this),this.id=h,this.dispatcher=E,this.setEventedParent(M),this.type="raster",this.minzoom=0,this.maxzoom=22,this.roundZoom=!0,this.scheme="xyz",this.tileSize=512,this._loaded=!1,this._options=o.extend({type:"raster"},m),o.extend(this,o.pick(m,["url","scheme","tileSize"]))}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.load=function(){var h=this;this._loaded=!1,this.fire(new o.Event("dataloading",{dataType:"source"})),this._tileJSONRequest=Qe(this._options,this.map._requestManager,(function(m,E){h._tileJSONRequest=null,h._loaded=!0,m?h.fire(new o.ErrorEvent(m)):E&&(o.extend(h,E),E.bounds&&(h.tileBounds=new we(E.bounds,h.minzoom,h.maxzoom)),o.postTurnstileEvent(E.tiles),o.postMapLoadEvent(E.tiles,h.map._getMapId(),h.map._requestManager._skuToken),h.fire(new o.Event("data",{dataType:"source",sourceDataType:"metadata"})),h.fire(new o.Event("data",{dataType:"source",sourceDataType:"content"})))}))},d.prototype.loaded=function(){return this._loaded},d.prototype.onAdd=function(h){this.map=h,this.load()},d.prototype.onRemove=function(){this._tileJSONRequest&&(this._tileJSONRequest.cancel(),this._tileJSONRequest=null)},d.prototype.serialize=function(){return o.extend({},this._options)},d.prototype.hasTile=function(h){return!this.tileBounds||this.tileBounds.contains(h.canonical)},d.prototype.loadTile=function(h,m){var E=this,M=this.map._requestManager.normalizeTileURL(h.tileID.canonical.url(this.tiles,this.scheme),this.tileSize);h.request=o.getImage(this.map._requestManager.transformRequest(M,o.ResourceType.Tile),(function(R,L){if(delete h.request,h.aborted)h.state="unloaded",m(null);else if(R)h.state="errored",m(R);else if(L){E.map._refreshExpiredTiles&&h.setExpiryData(L),delete L.cacheControl,delete L.expires;var z=E.map.painter.context,q=z.gl;h.texture=E.map.painter.getTileTexture(L.width),h.texture?h.texture.update(L,{useMipmap:!0}):(h.texture=new o.Texture(z,L,q.RGBA,{useMipmap:!0}),h.texture.bind(q.LINEAR,q.CLAMP_TO_EDGE,q.LINEAR_MIPMAP_NEAREST),z.extTextureFilterAnisotropic&&q.texParameterf(q.TEXTURE_2D,z.extTextureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,z.extTextureFilterAnisotropicMax)),h.state="loaded",o.cacheEntryPossiblyAdded(E.dispatcher),m(null)}}))},d.prototype.abortTile=function(h,m){h.request&&(h.request.cancel(),delete h.request),m()},d.prototype.unloadTile=function(h,m){h.texture&&this.map.painter.saveTileTexture(h.texture),m()},d.prototype.hasTransition=function(){return!1},d})(o.Evented),Ze=(function(c){function d(h,m,E,M){c.call(this,h,m,E,M),this.type="raster-dem",this.maxzoom=22,this._options=o.extend({type:"raster-dem"},m),this.encoding=m.encoding||"mapbox"}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.serialize=function(){return{type:"raster-dem",url:this.url,tileSize:this.tileSize,tiles:this.tiles,bounds:this.bounds,encoding:this.encoding}},d.prototype.loadTile=function(h,m){var E=this.map._requestManager.normalizeTileURL(h.tileID.canonical.url(this.tiles,this.scheme),this.tileSize);function M(R,L){R&&(h.state="errored",m(R)),L&&(h.dem=L,h.needsHillshadePrepare=!0,h.state="loaded",m(null))}h.request=o.getImage(this.map._requestManager.transformRequest(E,o.ResourceType.Tile),(function(R,L){if(delete h.request,h.aborted)h.state="unloaded",m(null);else if(R)h.state="errored",m(R);else if(L){this.map._refreshExpiredTiles&&h.setExpiryData(L),delete L.cacheControl,delete L.expires;var z=o.window.ImageBitmap&&L instanceof o.window.ImageBitmap&&o.offscreenCanvasSupported()?L:o.browser.getImageData(L,1),q={uid:h.uid,coord:h.tileID,source:this.id,rawImageData:z,encoding:this.encoding};h.actor&&h.state!=="expired"||(h.actor=this.dispatcher.getActor(),h.actor.send("loadDEMTile",q,M.bind(this)))}}).bind(this)),h.neighboringTiles=this._getNeighboringTiles(h.tileID)},d.prototype._getNeighboringTiles=function(h){var m=h.canonical,E=Math.pow(2,m.z),M=(m.x-1+E)%E,R=m.x===0?h.wrap-1:h.wrap,L=(m.x+1+E)%E,z=m.x+1===E?h.wrap+1:h.wrap,q={};
2097return q[new o.OverscaledTileID(h.overscaledZ,R,m.z,M,m.y).key]={backfilled:!1},q[new o.OverscaledTileID(h.overscaledZ,z,m.z,L,m.y).key]={backfilled:!1},m.y>0&&(q[new o.OverscaledTileID(h.overscaledZ,R,m.z,M,m.y-1).key]={backfilled:!1},q[new o.OverscaledTileID(h.overscaledZ,h.wrap,m.z,m.x,m.y-1).key]={backfilled:!1},q[new o.OverscaledTileID(h.overscaledZ,z,m.z,L,m.y-1).key]={backfilled:!1}),m.y+1<E&&(q[new o.OverscaledTileID(h.overscaledZ,R,m.z,M,m.y+1).key]={backfilled:!1},q[new o.OverscaledTileID(h.overscaledZ,h.wrap,m.z,m.x,m.y+1).key]={backfilled:!1},q[new o.OverscaledTileID(h.overscaledZ,z,m.z,L,m.y+1).key]={backfilled:!1}),q},d.prototype.unloadTile=function(h){h.demTexture&&this.map.painter.saveTileTexture(h.demTexture),h.fbo&&(h.fbo.destroy(),delete h.fbo),h.dem&&delete h.dem,delete h.neighboringTiles,h.state="unloaded",h.actor&&h.actor.send("removeDEMTile",{uid:h.uid,source:this.id})},d})(ze),tt=(function(c){function d(h,m,E,M){c.call(this),this.id=h,this.type="geojson",this.minzoom=0,this.maxzoom=18,this.tileSize=512,this.isTileClipped=!0,this.reparseOverscaled=!0,this._removed=!1,this._loaded=!1,this.actor=E.getActor(),this.setEventedParent(M),this._data=m.data,this._options=o.extend({},m),this._collectResourceTiming=m.collectResourceTiming,this._resourceTiming=[],m.maxzoom!==void 0&&(this.maxzoom=m.maxzoom),m.type&&(this.type=m.type),m.attribution&&(this.attribution=m.attribution),this.promoteId=m.promoteId;var R=o.EXTENT/this.tileSize;this.workerOptions=o.extend({source:this.id,cluster:m.cluster||!1,geojsonVtOptions:{buffer:(m.buffer!==void 0?m.buffer:128)*R,tolerance:(m.tolerance!==void 0?m.tolerance:.375)*R,extent:o.EXTENT,maxZoom:this.maxzoom,lineMetrics:m.lineMetrics||!1,generateId:m.generateId||!1}
vendor: 7,569 bytes, line 2097
2097,superclusterOptions:{maxZoom:m.clusterMaxZoom!==void 0?Math.min(m.clusterMaxZoom,this.maxzoom-1):this.maxzoom-1,minPoints:Math.max(2,m.clusterMinPoints||2),extent:o.EXTENT,radius:(m.clusterRadius||50)*R,log:!1,generateId:m.generateId||!1},clusterProperties:m.clusterProperties,filter:m.filter},m.workerOptions)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.load=function(){var h=this;this.fire(new o.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(m){if(m)h.fire(new o.ErrorEvent(m));else{var E={dataType:"source",sourceDataType:"metadata"};h._collectResourceTiming&&h._resourceTiming&&h._resourceTiming.length>0&&(E.resourceTiming=h._resourceTiming,h._resourceTiming=[]),h.fire(new o.Event("data",E))}}))},d.prototype.onAdd=function(h){this.map=h,this.load()},d.prototype.setData=function(h){var m=this;return this._data=h,this.fire(new o.Event("dataloading",{dataType:"source"})),this._updateWorkerData((function(E){if(E)m.fire(new o.ErrorEvent(E));else{var M={dataType:"source",sourceDataType:"content"};m._collectResourceTiming&&m._resourceTiming&&m._resourceTiming.length>0&&(M.resourceTiming=m._resourceTiming,m._resourceTiming=[]),m.fire(new o.Event("data",M))}})),this},d.prototype.getClusterExpansionZoom=function(h,m){return this.actor.send("geojson.getClusterExpansionZoom",{clusterId:h,source:this.id},m),this},d.prototype.getClusterChildren=function(h,m){return this.actor.send("geojson.getClusterChildren",{clusterId:h,source:this.id},m),this},d.prototype.getClusterLeaves=function(h,m,E,M){return this.actor.send("geojson.getClusterLeaves",{source:this.id,clusterId:h,limit:m,offset:E},M),this},d.prototype._updateWorkerData=function(h){var m=this;this._loaded=!1;var E=o.extend({},this.workerOptions),M=this._data;typeof M=="string"?(E.request=this.map._requestManager.transformRequest(o.browser.resolveURL(M),o.ResourceType.Source),E.request.collectResourceTiming=this._collectResourceTiming):E.data=JSON.stringify(M),this.actor.send(this.type+".loadData",E,(function(R,L){m._removed||L&&L.abandoned||(m._loaded=!0,L&&L.resourceTiming&&L.resourceTiming[m.id]&&(m._resourceTiming=L.resourceTiming[m.id].slice(0)),m.actor.send(m.type+".coalesce",{source:E.source},null),h(R))}))},d.prototype.loaded=function(){return this._loaded},d.prototype.loadTile=function(h,m){var E=this,M=h.actor?"reloadTile":"loadTile";h.actor=this.actor,h.request=this.actor.send(M,{type:this.type,uid:h.uid,tileID:h.tileID,zoom:h.tileID.overscaledZ,maxZoom:this.maxzoom,tileSize:this.tileSize,source:this.id,pixelRatio:o.browser.devicePixelRatio,showCollisionBoxes:this.map.showCollisionBoxes,promoteId:this.promoteId},(function(R,L){return delete h.request,h.unloadVectorData(),h.aborted?m(null):R?m(R):(h.loadVectorData(L,E.map.painter,M==="reloadTile"),m(null))}))},d.prototype.abortTile=function(h){h.request&&(h.request.cancel(),delete h.request),h.aborted=!0},d.prototype.unloadTile=function(h){h.unloadVectorData(),this.actor.send("removeTile",{uid:h.uid,type:this.type,source:this.id})},d.prototype.onRemove=function(){this._removed=!0,this.actor.send("removeSource",{type:this.type,source:this.id})},d.prototype.serialize=function(){return o.extend({},this._options,{type:this.type,data:this._data})},d.prototype.hasTransition=function(){return!1},d})(o.Evented),rt=o.createLayout([{name:"a_pos",type:"Int16",components:2},{name:"a_texture_pos",type:"Int16",components:2}]),ct=(function(c){function d(h,m,E,M){c.call(this),this.id=h,this.dispatcher=E,this.coordinates=m.coordinates,this.type="image",this.minzoom=0,this.maxzoom=22,this.tileSize=512,this.tiles={},this._loaded=!1,this.setEventedParent(M),this.options=m}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.load=function(h,m){var E=this;this._loaded=!1,this.fire(new o.Event("dataloading",{dataType:"source"})),this.url=this.options.url,o.getImage(this.map._requestManager.transformRequest(this.url,o.ResourceType.Image),(function(M,R){E._loaded=!0,M?E.fire(new o.ErrorEvent(M)):R&&(E.image=R,h&&(E.coordinates=h),m&&m(),E._finishLoading())}))},d.prototype.loaded=function(){return this._loaded},d.prototype.updateImage=function(h){var m=this;return this.image&&h.url?(this.options.url=h.url,this.load(h.coordinates,(function(){m.texture=null})),this):this},d.prototype._finishLoading=function(){this.map&&(this.setCoordinates(this.coordinates),this.fire(new o.Event("data",{dataType:"source",sourceDataType:"metadata"})))},d.prototype.onAdd=function(h){this.map=h,this.load()},d.prototype.setCoordinates=function(h){var m=this;this.coordinates=h;var E=h.map(o.MercatorCoordinate.fromLngLat);this.tileID=(function(R){for(var L=1/0,z=1/0,q=-1/0,ee=-1/0,Y=0,re=R;Y<re.length;Y+=1){var oe=re[Y];L=Math.min(L,oe.x),z=Math.min(z,oe.y),q=Math.max(q,oe.x),ee=Math.max(ee,oe.y)}var xe=Math.max(q-L,ee-z),Oe=Math.max(0,Math.floor(-Math.log(xe)/Math.LN2)),ge=Math.pow(2,Oe);return new o.CanonicalTileID(Oe,Math.floor((L+q)/2*ge),Math.floor((z+ee)/2*ge))})(E),this.minzoom=this.maxzoom=this.tileID.z;var M=E.map((function(R){return m.tileID.getTilePoint(R)._round()}));return this._boundsArray=new o.StructArrayLayout4i8,this._boundsArray.emplaceBack(M[0].x,M[0].y,0,0),this._boundsArray.emplaceBack(M[1].x,M[1].y,o.EXTENT,0),this._boundsArray.emplaceBack(M[3].x,M[3].y,0,o.EXTENT),this._boundsArray.emplaceBack(M[2].x,M[2].y,o.EXTENT,o.EXTENT),this.boundsBuffer&&(this.boundsBuffer.destroy(),delete this.boundsBuffer),this.fire(new o.Event("data",{dataType:"source",sourceDataType:"content"})),this},d.prototype.prepare=function(){if(Object.keys(this.tiles).length!==0&&this.image){var h=this.map.painter.context,m=h.gl;for(var E in this.boundsBuffer||(this.boundsBuffer=h.createVertexBuffer(this._boundsArray,rt.members)),this.boundsSegments||(this.boundsSegments=o.SegmentVector.simpleSegment(0,0,4,2)),this.texture||(this.texture=new o.Texture(h,this.image,m.RGBA),this.texture.bind(m.LINEAR,m.CLAMP_TO_EDGE)),this.tiles){var M=this.tiles[E];M.state!=="loaded"&&(M.state="loaded",M.texture=this.texture)}}},d.prototype.loadTile=function(h,m){this.tileID&&this.tileID.equals(h.tileID.canonical)?(this.tiles[String(h.tileID.wrap)]=h,h.buckets={},m(null)):(h.state="errored",m(null))},d.prototype.serialize=function(){return{type:"image",url:this.options.url,coordinates:this.coordinates}},d.prototype.hasTransition=function(){return!1},d})(o.Evented),bt=(function(c){function d(h,m,E,M){c.call(this,h,m,E,M),this.roundZoom=!0,this.type="video",this.options=m}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.load=function(){var h=this;this._loaded=!1;var m=this.options;this.urls=[];for(var E=0,M=m.urls;E<M.length;E+=1)this.urls.push(this.map._requestManager.transformRequest(M[E],o.ResourceType.Source).url);o.getVideo(this.urls,(function(R,L){h._loaded=!0,R?h.fire(new o.ErrorEvent(R)):L&&(h.video=L,h.video.loop=!0,h.video.setAttribute("playsinline",""),h.video.addEventListener("playing",(function(){h.map.triggerRepaint()})),h.map&&h.video.play(),h._finishLoading())}))},d.prototype.pause=function(){this.video&&this.video.pause()},d.prototype.play=function(){this.video&&this.video.play()},d.prototype.seek=function(h){if(this.video){var m=this.video.seekable;h<m.start(0)||h>m.end(0)?this.fire(new o.ErrorEvent(new o.ValidationError("sources."+this.id,null,"Playback for this video can be set only between the "+m.start(0)+" and "+m.end(0)+"-second mark."))):this.video.currentTime=h}},d.prototype.getVideo=function(){return this.video}
2097,d.prototype.onAdd=function(h){this.map||(this.map=h,this.load(),this.video&&(this.video.play(),this.setCoordinates(this.coordinates)))},d.prototype.prepare=function(){if(!(Object.keys(this.tiles).length===0||this.video.readyState<2)){var h=this.map.painter.context,m=h.gl;for(var E in this.boundsBuffer||(this.boundsBuffer=h.createVertexBuffer(this._boundsArray,rt.members)),this.boundsSegments||(this.boundsSegments=o.SegmentVector.simpleSegment(0,0,4,2)),this.texture?this.video.paused||(this.texture.bind(m.LINEAR,m.CLAMP_TO_EDGE),m.texSubImage2D(m.TEXTURE_2D,0,0,0,m.RGBA,m.UNSIGNED_BYTE,this.video)):(this.texture=new o.Texture(h,this.video,m.RGBA),this.texture.bind(m.LINEAR,m.CLAMP_TO_EDGE)),this.tiles){var M=this.tiles[E];M.state!=="loaded"&&(M.state="loaded",M.texture=this.texture)}}},d.prototype.serialize=function(){return{type:"video",urls:this.urls,coordinates:this.coordinates}},d.prototype.hasTransition=function(){return this.video&&!this.video.paused},d})(ct),It=(function(c){function d(h,m,E,M){c.call(this,h,m,E,M),m.coordinates?Array.isArray(m.coordinates)&&m.coordinates.length===4&&!m.coordinates.some((function(R){return!Array.isArray(R)||R.length!==2||R.some((function(L){return typeof L!="number"}))}))||this.fire(new o.ErrorEvent(new o.ValidationError("sources."+h,null,'"coordinates" property must be an array of 4 longitude/latitude array pairs'))):this.fire(new o.ErrorEvent(new o.ValidationError("sources."+h,null,'missing required property "coordinates"'))),m.animate&&typeof m.animate!="boolean"&&this.fire(new o.ErrorEvent(new o.ValidationError("sources."+h,null,'optional "animate" property must be a boolean value'))),m.canvas?typeof m.canvas=="string"||m.canvas instanceof o.window.HTMLCanvasElement||this.fire(new o.ErrorEvent(new o.ValidationError("sources."+h,null,'"canvas" must be either a string representing the ID of the canvas element from which to read, or an HTMLCanvasElement instance'))):this.fire(new o.ErrorEvent(new o.ValidationError("sources."+h,null,'missing required property "canvas"'))),this.options=m,this.animate=m.animate===void 0||m.animate}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.load=function(){this._loaded=!0,this.canvas||(this.canvas=this.options.canvas instanceof o.window.HTMLCanvasElement?this.options.canvas:o.window.document.getElementById(this.options.canvas)),this.width=this.canvas.width,this.height=this.canvas.height,this._hasInvalidDimensions()?this.fire(new o.ErrorEvent(new Error("Canvas dimensions cannot be less than or equal to zero."))):(this.play=function(){this._playing=!0,this.map.triggerRepaint()},this.pause=function(){this._playing&&(this.prepare(),this._playing=!1)},this._finishLoading())},d.prototype.getCanvas=function(){return this.canvas},d.prototype.onAdd=function(h){this.map=h,this.load(),this.canvas&&this.animate&&this.play()},d.prototype.onRemove=function(){this.pause()},d.prototype.prepare=function(){var h=!1;if(this.canvas.width!==this.width&&(this.width=this.canvas.width,h=!0),this.canvas.height!==this.height&&(this.height=this.canvas.height,h=!0),!this._hasInvalidDimensions()&&Object.keys(this.tiles).length!==0){var m=this.map.painter.context,E=m.gl;for(var M in this.boundsBuffer||(this.boundsBuffer=m.createVertexBuffer(this._boundsArray,rt.members)),this.boundsSegments||(this.boundsSegments=o.SegmentVector.simpleSegment(0,0,4,2)),this.texture?(h||this._playing)&&this.texture.update(this.canvas,{premultiply:!0}):this.texture=new o.Texture(m,this.canvas,E.RGBA,{premultiply:!0}),this.tiles){var R=this.tiles[M];R.state!=="loaded"&&(R.state="loaded",R.texture=this.texture)}}},d.prototype.serialize=function(){return{type:"canvas",coordinates:this.coordinates}},d.prototype.hasTransition=function(){return this._playing},d.prototype._hasInvalidDimensions=function(){for(var h=0,m=[this.canvas.width,this.canvas.height];h<m.length;h+=1){var E=m[h];if(isNaN(E)||E<=0)return!0}return!1},d})(ct),st={vector:De,raster:ze,"raster-dem":Ze,geojson:tt,video:bt,image:ct,canvas:It};function pr(c,d){var h=o.identity([]);return o.translate(h,h,[1,1,0]),o.scale(h,h,[.5*c.width,.5*c.height,1]),o.multiply(h,h,c.calculatePosMatrix(d.toUnwrapped()))}function Qt(c,d,h,m,E,M){var R=(function(Oe,ge,Re){if(Oe)for(var Ge=0,$e=Oe;Ge<$e.length;Ge+=1){var nt=ge[$e[Ge]];if(nt&&nt.source===Re&&nt.type==="fill-extrusion")return!0}else for(var qe in ge){var et=ge[qe];if(et.source===Re&&et.type==="fill-extrusion")return!0}return!1})(E&&E.layers,d,c.id),L=M.maxPitchScaleFactor(),z=c.tilesIn(m,L,R);z.sort(Jt);for(var q=[],ee=0,Y=z;ee<Y.length;ee+=1){var re=Y[ee];q.push({wrappedTileID:re.tileID.wrapped().key,queryResults:re.tile.queryRenderedFeatures(d,h,c._state,re.queryGeometry,re.cameraQueryGeometry,re.scale,E,M,L,pr(c.transform,re.tileID))})}var oe=(function(Oe){for(var ge={},Re={},Ge=0,$e=Oe;Ge<$e.length;Ge+=1){var nt=$e[Ge],qe=nt.queryResults,et=nt.wrappedTileID,pt=Re[et]=Re[et]||{};for(var Dt in qe)for(var Tt=qe[Dt],zt=pt[Dt]=pt[Dt]||{},sr=ge[Dt]=ge[Dt]||[],Cr=0,Pr=Tt;Cr<Pr.length;Cr+=1){var xn=Pr[Cr];zt[xn.featureIndex]||(zt[xn.featureIndex]=!0,sr.push(xn))}}return ge})(q);for(var xe in oe)oe[xe].forEach((function(Oe){var ge=Oe.feature,Re=c.getFeatureState(ge.layer["source-layer"],ge.id);ge.source=ge.layer.source,ge.layer["source-layer"]&&(ge.sourceLayer=ge.layer["source-layer"]),ge.state=Re}));return oe}function Jt(c,d){var h=c.tileID,m=d.tileID;return h.overscaledZ-m.overscaledZ||h.canonical.y-m.canonical.y||h.wrap-m.wrap||h.canonical.x-m.canonical.x}var Nt=function(c,d){this.max=c,this.onRemove=d,this.reset()};Nt.prototype.reset=function(){for(var c in this.data)for(var d=0,h=this.data[c];d<h.length;d+=1){var m=h[d];m.timeout&&clearTimeout(m.timeout),this.onRemove(m.value)}return this.data={},this.order=[],this},Nt.prototype.add=function(c,d,h){var m=this,E=c.wrapped().key;this.data[E]===void 0&&(this.data[E]=[]);var M={value:d,timeout:void 0};if(h!==void 0&&(M.timeout=setTimeout((function(){m.remove(c,M)}),h)),this.data[E].push(M),this.order.push(E),this.order.length>this.max){var R=this._getAndRemoveByKey(this.order[0]);R&&this.onRemove(R)}return this},Nt.prototype.has=function(c){return c.wrapped().key in this.data},Nt.prototype.getAndRemove=function(c){return this.has(c)?this._getAndRemoveByKey(c.wrapped().key):null},Nt.prototype._getAndRemoveByKey=function(c){var d=this.data[c].shift();return d.timeout&&clearTimeout(d.timeout),this.data[c].length===0&&delete this.data[c],this.order.splice(this.order.indexOf(c),1),d.value},Nt.prototype.getByKey=function(c){var d=this.data[c];return d?d[0].value:null},Nt.prototype.get=function(c){return this.has(c)?this.data[c.wrapped().key][0].value:null},Nt.prototype.remove=function(c,d){if(!this.has(c))return this;var h=c.wrapped().key,m=d===void 0?0:this.data[h].indexOf(d),E=this.data[h][m];return this.data[h].splice(m,1),E.timeout&&clearTimeout(E.timeout),this.data[h].length===0&&delete this.data[h],this.onRemove(E.value),this.order.splice(this.order.indexOf(h),1),this},Nt.prototype.setMaxSize=function(c){for(this.max=c;this.order.length>this.max;){var d=this._getAndRemoveByKey(this.order[0]);d&&this.onRemove(d)}return this},Nt.prototype.filter=function(c){var d=[];for(var h in this.data)for(var m=0,E=this.data[h];m<E.length;m+=1){var M=E[m];c(M.value)||d.push(M)}for(var R=0,L=d;R<L.length;R+=1){var z=L[R];this.remove(z.value.tileID,z)}};var Ar=function(c,d,h){this.context=c;var m=c.gl;this.buffer=m.createBuffer(),this.dynamicDraw=!!h,this.context.unbindVAO(),c.bindElementBuffer.set(this.buffer),m.bufferData(m.ELEMENT_ARRAY_BUFFER,d.arrayBuffer,this.dynamicDraw?m.DYNAMIC_DRAW:m.STATIC_DRAW),this.dynamicDraw||delete d.arrayBuffer};Ar.prototype.bind=function(){this.context.bindElementBuffer.set(this.buffer)},Ar.prototype.updateData=function(c){var d=this.context.gl;this.context.unbindVAO(),this.bind(),d.bufferSubData(d.ELEMENT_ARRAY_BUFFER,0,c.arrayBuffer)},Ar.prototype.destroy=function(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)};var cn={Int8:"BYTE",Uint8:"UNSIGNED_BYTE",Int16:"SHORT",Uint16:"UNSIGNED_SHORT",Int32:"INT",Uint32:"UNSIGNED_INT",Float32:"FLOAT"},Mr=function(c,d,h,m){this.length=d.length,this.attributes=h,this.itemSize=d.bytesPerElement,this.dynamicDraw=m,this.context=c;var E=c.gl;this.buffer=E.createBuffer(),c.bindVertexBuffer.set(this.buffer),E.bufferData(E.ARRAY_BUFFER,d.arrayBuffer,this.dynamicDraw?E.DYNAMIC_DRAW:E.STATIC_DRAW),this.dynamicDraw||delete d.arrayBuffer};Mr.prototype.bind=function(){this.context.bindVertexBuffer.set(this.buffer)},Mr.prototype.updateData=function(c){var d=this.context.gl;this.bind(),d.bufferSubData(d.ARRAY_BUFFER,0,c.arrayBuffer)},Mr.prototype.enableAttributes=function(c,d){for(var h=0;h<this.attributes.length;h++){var m=d.attributes[this.attributes[h].name];m!==void 0&&c.enableVertexAttribArray(m)}},Mr.prototype.setVertexAttribPointers=function(c,d,h){for(var m=0;m<this.attributes.length;m++){var E=this.attributes[m],M=d.attributes[E.name];M!==void 0&&c.vertexAttribPointer(M,E.components,c[cn[E.type]],!1,this.itemSize,E.offset+this.itemSize*(h||0))}},Mr.prototype.destroy=function(){this.buffer&&(this.context.gl.deleteBuffer(this.buffer),delete this.buffer)};var _r=function(c){this.gl=c.gl,this.default=this.getDefault(),this.current=this.default,this.dirty=!1};_r.prototype.get=function(){return this.current},_r.prototype.set=function(c){},_r.prototype.getDefault=function(){return this.default},_r.prototype.setDefault=function(){this.set(this.default)};var Gn=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return o.Color.transparent},d.prototype.set=function(h){var m=this.current;(h.r!==m.r||h.g!==m.g||h.b!==m.b||h.a!==m.a||this.dirty)&&(this.gl.clearColor(h.r,h.g,h.b,h.a),this.current=h,this.dirty=!1)},d})(_r),yr=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return 1},d.prototype.set=function(h){(h!==this.current||this.dirty)&&(this.gl.clearDepth(h),this.current=h,this.dirty=!1)},d})(_r),vr=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return 0},d.prototype.set=function(h){(h!==this.current||this.dirty)&&(this.gl.clearStencil(h),this.current=h,this.dirty=!1)},d})(_r),un=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return[!0,
vendor: 4,883 bytes, line 2097
2097!0,!0,!0]},d.prototype.set=function(h){var m=this.current;(h[0]!==m[0]||h[1]!==m[1]||h[2]!==m[2]||h[3]!==m[3]||this.dirty)&&(this.gl.colorMask(h[0],h[1],h[2],h[3]),this.current=h,this.dirty=!1)},d})(_r),Dr=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return!0},d.prototype.set=function(h){(h!==this.current||this.dirty)&&(this.gl.depthMask(h),this.current=h,this.dirty=!1)},d})(_r),li=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return 255},d.prototype.set=function(h){(h!==this.current||this.dirty)&&(this.gl.stencilMask(h),this.current=h,this.dirty=!1)},d})(_r),Yn=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return{func:this.gl.ALWAYS,ref:0,mask:255}},d.prototype.set=function(h){var m=this.current;(h.func!==m.func||h.ref!==m.ref||h.mask!==m.mask||this.dirty)&&(this.gl.stencilFunc(h.func,h.ref,h.mask),this.current=h,this.dirty=!1)},d})(_r),mn=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){var h=this.gl;return[h.KEEP,h.KEEP,h.KEEP]},d.prototype.set=function(h){var m=this.current;(h[0]!==m[0]||h[1]!==m[1]||h[2]!==m[2]||this.dirty)&&(this.gl.stencilOp(h[0],h[1],h[2]),this.current=h,this.dirty=!1)},d})(_r),ri=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;h?m.enable(m.STENCIL_TEST):m.disable(m.STENCIL_TEST),this.current=h,this.dirty=!1}},d})(_r),Hn=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return[0,1]},d.prototype.set=function(h){var m=this.current;(h[0]!==m[0]||h[1]!==m[1]||this.dirty)&&(this.gl.depthRange(h[0],h[1]),this.current=h,this.dirty=!1)},d})(_r),Sn=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;h?m.enable(m.DEPTH_TEST):m.disable(m.DEPTH_TEST),this.current=h,this.dirty=!1}},d})(_r),Qn=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return this.gl.LESS},d.prototype.set=function(h){(h!==this.current||this.dirty)&&(this.gl.depthFunc(h),this.current=h,this.dirty=!1)},d})(_r),jt=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;h?m.enable(m.BLEND):m.disable(m.BLEND),this.current=h,this.dirty=!1}},d})(_r),mr=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){var h=this.gl;return[h.ONE,h.ZERO]},d.prototype.set=function(h){var m=this.current;(h[0]!==m[0]||h[1]!==m[1]||this.dirty)&&(this.gl.blendFunc(h[0],h[1]),this.current=h,this.dirty=!1)},d})(_r),Rr=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return o.Color.transparent},d.prototype.set=function(h){var m=this.current;(h.r!==m.r||h.g!==m.g||h.b!==m.b||h.a!==m.a||this.dirty)&&(this.gl.blendColor(h.r,h.g,h.b,h.a),this.current=h,this.dirty=!1)},d})(_r),nn=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return this.gl.FUNC_ADD},d.prototype.set=function(h){(h!==this.current||this.dirty)&&(this.gl.blendEquation(h),this.current=h,this.dirty=!1)},d})(_r),gi=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;h?m.enable(m.CULL_FACE):m.disable(m.CULL_FACE),this.current=h,this.dirty=!1}},d})(_r),Pe=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return this.gl.BACK}
2097,d.prototype.set=function(h){(h!==this.current||this.dirty)&&(this.gl.cullFace(h),this.current=h,this.dirty=!1)},d})(_r),kt=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return this.gl.CCW},d.prototype.set=function(h){(h!==this.current||this.dirty)&&(this.gl.frontFace(h),this.current=h,this.dirty=!1)},d})(_r),Wt=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(h){(h!==this.current||this.dirty)&&(this.gl.useProgram(h),this.current=h,this.dirty=!1)},d})(_r),cr=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return this.gl.TEXTURE0},d.prototype.set=function(h){(h!==this.current||this.dirty)&&(this.gl.activeTexture(h),this.current=h,this.dirty=!1)},d})(_r),Ye=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){var h=this.gl;return[0,0,h.drawingBufferWidth,h.drawingBufferHeight]},d.prototype.set=function(h){var m=this.current;(h[0]!==m[0]||h[1]!==m[1]||h[2]!==m[2]||h[3]!==m[3]||this.dirty)&&(this.gl.viewport(h[0],h[1],h[2],h[3]),this.current=h,this.dirty=!1)},d})(_r),Rt=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;m.bindFramebuffer(m.FRAMEBUFFER,h),this.current=h,this.dirty=!1}},d})(_r),Ae=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;m.bindRenderbuffer(m.RENDERBUFFER,h),this.current=h,this.dirty=!1}},d})(_r),Vt=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;m.bindTexture(m.TEXTURE_2D,h),this.current=h,this.dirty=!1}},d})(_r),Et=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;m.bindBuffer(m.ARRAY_BUFFER,h),this.current=h,this.dirty=!1}},d})(_r),H=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(h){var m=this.gl;m.bindBuffer(m.ELEMENT_ARRAY_BUFFER,h),this.current=h,this.dirty=!1},d})(_r),vt=(function(c){function d(h){c.call(this,h),this.vao=h.extVertexArrayObject}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d.prototype.set=function(h){this.vao&&(h!==this.current||this.dirty)&&(this.vao.bindVertexArrayOES(h),this.current=h,this.dirty=!1)},d})(_r),St=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return 4},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;m.pixelStorei(m.UNPACK_ALIGNMENT,h),this.current=h,this.dirty=!1}},d})(_r),Te=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;m.pixelStorei(m.UNPACK_PREMULTIPLY_ALPHA_WEBGL,h),this.current=h,this.dirty=!1}},d})(_r),Xe=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return!1},d.prototype.set=function(h){if(h!==this.current||this.dirty){var m=this.gl;m.pixelStorei(m.UNPACK_FLIP_Y_WEBGL,h),this.current=h,this.dirty=!1}},d})(_r),ut=(function(c){function d(h,m){c.call(this,h),this.context=h,this.parent=m}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getDefault=function(){return null},d})(_r),Z=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.setDirty=function(){this.dirty=!0},d.prototype.set=function(h){if(h!==this.current||this.dirty){this.context.bindFramebuffer.set(this.parent);var m=this.gl;m.framebufferTexture2D(m.FRAMEBUFFER,m.COLOR_ATTACHMENT0,m.TEXTURE_2D,h,0),this.current=h,this.dirty=!1}},d})(ut),ne=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.set=function(h){if(h!==this.current||this.dirty){this.context.bindFramebuffer.set(this.parent);var m=this.gl;m.framebufferRenderbuffer(m.FRAMEBUFFER,m.DEPTH_ATTACHMENT,m.RENDERBUFFER,h),this.current=h,this.dirty=!1}},d})(ut),ce=function(c,d,h,m){this.context=c,this.width=d,this.height=h;var E=this.framebuffer=c.gl.createFramebuffer();
2097this.colorAttachment=new Z(c,E),m&&(this.depthAttachment=new ne(c,E))};ce.prototype.destroy=function(){var c=this.context.gl,d=this.colorAttachment.get();if(d&&c.deleteTexture(d),this.depthAttachment){var h=this.depthAttachment.get();h&&c.deleteRenderbuffer(h)}c.deleteFramebuffer(this.framebuffer)};var ye=function(c,d,h){this.func=c,this.mask=d,this.range=h};ye.ReadOnly=!1,ye.ReadWrite=!0,ye.disabled=new ye(519,ye.ReadOnly,[0,1]);var Le=function(c,d,h,m,E,M){this.test=c,this.ref=d,this.mask=h,this.fail=m,this.depthFail=E,this.pass=M};Le.disabled=new Le({func:519,mask:0},0,0,7680,7680,7680);var he=function(c,d,h){this.blendFunction=c,this.blendColor=d,this.mask=h};he.disabled=new he(he.Replace=[1,0],o.Color.transparent,[!1,!1,!1,!1]),he.unblended=new he(he.Replace,o.Color.transparent,[!0,!0,!0,!0]),he.alphaBlended=new he([1,771],o.Color.transparent,[!0,!0,!0,!0]);var ve=function(c,d,h){this.enable=c,this.mode=d,this.frontFace=h};ve.disabled=new ve(!1,1029,2305),ve.backCCW=new ve(!0,1029,2305);var ae=function(c){this.gl=c,this.extVertexArrayObject=this.gl.getExtension("OES_vertex_array_object"),this.clearColor=new Gn(this),this.clearDepth=new yr(this),this.clearStencil=new vr(this),this.colorMask=new un(this),this.depthMask=new Dr(this),this.stencilMask=new li(this),this.stencilFunc=new Yn(this),this.stencilOp=new mn(this),this.stencilTest=new ri(this),this.depthRange=new Hn(this),this.depthTest=new Sn(this),this.depthFunc=new Qn(this),this.blend=new jt(this),this.blendFunc=new mr(this),this.blendColor=new Rr(this),this.blendEquation=new nn(this),this.cullFace=new gi(this),this.cullFaceSide=new Pe(this),this.frontFace=new kt(this),this.program=new Wt(this),this.activeTexture=new cr(this),this.viewport=new Ye(this),this.bindFramebuffer=new Rt(this),this.bindRenderbuffer=new Ae(this),this.bindTexture=new Vt(this),this.bindVertexBuffer=new Et(this),this.bindElementBuffer=new H(this),this.bindVertexArrayOES=this.extVertexArrayObject&&new vt(this),this.pixelStoreUnpack=new St(this),this.pixelStoreUnpackPremultiplyAlpha=new Te(this),this.pixelStoreUnpackFlipY=new Xe(this),this.extTextureFilterAnisotropic=c.getExtension("EXT_texture_filter_anisotropic")||c.getExtension("MOZ_EXT_texture_filter_anisotropic")||c.getExtension("WEBKIT_EXT_texture_filter_anisotropic"),this.extTextureFilterAnisotropic&&(this.extTextureFilterAnisotropicMax=c.getParameter(this.extTextureFilterAnisotropic.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),this.extTextureHalfFloat=c.getExtension("OES_texture_half_float"),this.extTextureHalfFloat&&(c.getExtension("OES_texture_half_float_linear"),this.extRenderToTextureHalfFloat=c.getExtension("EXT_color_buffer_half_float")),this.extTimerQuery=c.getExtension("EXT_disjoint_timer_query"),this.maxTextureSize=c.getParameter(c.MAX_TEXTURE_SIZE)};ae.prototype.setDefault=function(){this.unbindVAO(),this.clearColor.setDefault(),this.clearDepth.setDefault(),this.clearStencil.setDefault(),this.colorMask.setDefault(),this.depthMask.setDefault(),this.stencilMask.setDefault(),this.stencilFunc.setDefault(),this.stencilOp.setDefault(),this.stencilTest.setDefault(),this.depthRange.setDefault(),this.depthTest.setDefault(),this.depthFunc.setDefault(),this.blend.setDefault(),this.blendFunc.setDefault(),this.blendColor.setDefault(),this.blendEquation.setDefault(),this.cullFace.setDefault(),this.cullFaceSide.setDefault(),this.frontFace.setDefault(),this.program.setDefault(),this.activeTexture.setDefault(),this.bindFramebuffer.setDefault(),this.pixelStoreUnpack.setDefault(),this.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.pixelStoreUnpackFlipY.setDefault()},ae.prototype.setDirty=function(){this.clearColor.dirty=!0,this.clearDepth.dirty=!0,this.clearStencil.dirty=!0,this.colorMask.dirty=!0,this.depthMask.dirty=!0,this.stencilMask.dirty=!0,this.stencilFunc.dirty=!0,this.stencilOp.dirty=!0,this.stencilTest.dirty=!0,this.depthRange.dirty=!0,this.depthTest.dirty=!0,this.depthFunc.dirty=!0,this.blend.dirty=!0,this.blendFunc.dirty=!0,this.blendColor.dirty=!0,this.blendEquation.dirty=!0,this.cullFace.dirty=!0,this.cullFaceSide.dirty=!0,this.frontFace.dirty=!0,this.program.dirty=!0,this.activeTexture.dirty=!0,this.viewport.dirty=!0,this.bindFramebuffer.dirty=!0,this.bindRenderbuffer.dirty=!0,this.bindTexture.dirty=!0,this.bindVertexBuffer.dirty=!0,this.bindElementBuffer.dirty=!0,this.extVertexArrayObject&&(this.bindVertexArrayOES.dirty=!0),this.pixelStoreUnpack.dirty=!0,this.pixelStoreUnpackPremultiplyAlpha.dirty=!0,this.pixelStoreUnpackFlipY.dirty=!0},ae.prototype.createIndexBuffer=function(c,d){return new Ar(this,c,d)},ae.prototype.createVertexBuffer=function(c,d,h){return new Mr(this,c,d,h)},ae.prototype.createRenderbuffer=function(c,d,h){var m=this.gl,E=m.createRenderbuffer();return this.bindRenderbuffer.set(E),m.renderbufferStorage(m.RENDERBUFFER,c,d,h),this.bindRenderbuffer.set(null),E},ae.prototype.createFramebuffer=function(c,d,h){return new ce(this,c,d,h)},ae.prototype.clear=function(c){var d=c.color,h=c.depth,m=this.gl,E=0;d&&(E|=m.COLOR_BUFFER_BIT,this.clearColor.set(d),this.colorMask.set([!0,!0,!0,!0])),h!==void 0&&(E|=m.DEPTH_BUFFER_BIT,this.depthRange.set([0,1]),this.clearDepth.set(h),this.depthMask.set(!0)),m.clear(E)},ae.prototype.setCullFace=function(c){c.enable===!1?this.cullFace.set(!1):(this.cullFace.set(!0),this.cullFaceSide.set(c.mode),this.frontFace.set(c.frontFace))},ae.prototype.setDepthMode=function(c){c.func!==this.gl.ALWAYS||c.mask?(this.depthTest.set(!0),this.depthFunc.set(c.func),this.depthMask.set(c.mask),this.depthRange.set(c.range)):this.depthTest.set(!1)},ae.prototype.setStencilMode=function(c){c.test.func!==this.gl.ALWAYS||c.mask?(this.stencilTest.set(!0),this.stencilMask.set(c.mask),this.stencilOp.set([c.fail,c.depthFail,c.pass]),this.stencilFunc.set({func:c.test.func,ref:c.ref,mask:c.test.mask})):this.stencilTest.set(!1)},ae.prototype.setColorMode=function(c){o.deepEqual(c.blendFunction,he.Replace)?this.blend.set(!1):(this.blend.set(!0),this.blendFunc.set(c.blendFunction),this.blendColor.set(c.blendColor)),this.colorMask.set(c.mask)},ae.prototype.unbindVAO=function(){this.extVertexArrayObject&&this.bindVertexArrayOES.set(null)};var Se=(function(c){function d(h,m,E){var M=this;c.call(this),this.id=h,this.dispatcher=E,this.on("data",(function(R){R.dataType==="source"&&R.sourceDataType==="metadata"&&(M._sourceLoaded=!0),M._sourceLoaded&&!M._paused&&R.dataType==="source"&&R.sourceDataType==="content"&&(M.reload(),M.transform&&M.update(M.transform))})),this.on("error",(function(){M._sourceErrored=!0})),this._source=(function(R,L,z,q){var ee=new st[L.type](R,L,z,q);if(ee.id!==R)throw new Error("Expected Source id to be "+R+" instead of "+ee.id);return o.bindAll(["load","abort","unload","serialize","prepare"],ee),ee})(h,m,E,this),this._tiles={},this._cache=new Nt(0,this._unloadTile.bind(this)),this._timers={},this._cacheTimers={}
2097,this._maxTileCacheSize=null,this._loadedParentTiles={},this._coveredTiles={},this._state=new o.SourceFeatureState}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.onAdd=function(h){this.map=h,this._maxTileCacheSize=h?h._maxTileCacheSize:null,this._source&&this._source.onAdd&&this._source.onAdd(h)},d.prototype.onRemove=function(h){this._source&&this._source.onRemove&&this._source.onRemove(h)},d.prototype.loaded=function(){if(this._sourceErrored)return!0;if(!this._sourceLoaded||!this._source.loaded())return!1;for(var h in this._tiles){var m=this._tiles[h];if(m.state!=="loaded"&&m.state!=="errored")return!1}return!0},d.prototype.getSource=function(){return this._source},d.prototype.pause=function(){this._paused=!0},d.prototype.resume=function(){if(this._paused){var h=this._shouldReloadOnResume;this._paused=!1,this._shouldReloadOnResume=!1,h&&this.reload(),this.transform&&this.update(this.transform)}},d.prototype._loadTile=function(h,m){return this._source.loadTile(h,m)},d.prototype._unloadTile=function(h){if(this._source.unloadTile)return this._source.unloadTile(h,(function(){}))},d.prototype._abortTile=function(h){if(this._source.abortTile)return this._source.abortTile(h,(function(){}))},d.prototype.serialize=function(){return this._source.serialize()},d.prototype.prepare=function(h){for(var m in this._source.prepare&&this._source.prepare(),this._state.coalesceChanges(this._tiles,this.map?this.map.painter:null),this._tiles){var E=this._tiles[m];E.upload(h),E.prepare(this.map.style.imageManager)}},d.prototype.getIds=function(){return o.values(this._tiles).map((function(h){return h.tileID})).sort(g).map((function(h){return h.key}))},d.prototype.getRenderableIds=function(h){var m=this,E=[];for(var M in this._tiles)this._isIdRenderable(M,h)&&E.push(this._tiles[M]);return h?E.sort((function(R,L){var z=R.tileID,q=L.tileID,ee=new o.Point(z.canonical.x,z.canonical.y)._rotate(m.transform.angle),Y=new o.Point(q.canonical.x,q.canonical.y)._rotate(m.transform.angle);return z.overscaledZ-q.overscaledZ||Y.y-ee.y||Y.x-ee.x})).map((function(R){return R.tileID.key})):E.map((function(R){return R.tileID})).sort(g).map((function(R){return R.key}))},d.prototype.hasRenderableParent=function(h){var m=this.findLoadedParent(h,0);return!!m&&this._isIdRenderable(m.tileID.key)},d.prototype._isIdRenderable=function(h,m){return this._tiles[h]&&this._tiles[h].hasData()&&!this._coveredTiles[h]&&(m||!this._tiles[h].holdingForFade())},d.prototype.reload=function(){if(this._paused)this._shouldReloadOnResume=!0;else for(var h in this._cache.reset(),this._tiles)this._tiles[h].state!=="errored"&&this._reloadTile(h,"reloading")},d.prototype._reloadTile=function(h,m){var E=this._tiles[h];E&&(E.state!=="loading"&&(E.state=m),this._loadTile(E,this._tileLoaded.bind(this,E,h,m)))},d.prototype._tileLoaded=function(h,m,E,M){if(M)return h.state="errored",void(M.status!==404?this._source.fire(new o.ErrorEvent(M,{tile:h})):this.update(this.transform));h.timeAdded=o.browser.now(),E==="expired"&&(h.refreshedUponExpiration=!0),this._setTileReloadTimer(m,h),this.get
vendor: 44,710 bytes, line 2097
2097Source().type==="raster-dem"&&h.dem&&this._backfillDEM(h),this._state.initializeTileState(h,this.map?this.map.painter:null),this._source.fire(new o.Event("data",{dataType:"source",tile:h,coord:h.tileID}))},d.prototype._backfillDEM=function(h){for(var m=this.getRenderableIds(),E=0;E<m.length;E++){var M=m[E];if(h.neighboringTiles&&h.neighboringTiles[M]){var R=this.getTileByID(M);L(h,R),L(R,h)}}function L(z,q){z.needsHillshadePrepare=!0;var ee=q.tileID.canonical.x-z.tileID.canonical.x,Y=q.tileID.canonical.y-z.tileID.canonical.y,re=Math.pow(2,z.tileID.canonical.z),oe=q.tileID.key;ee===0&&Y===0||Math.abs(Y)>1||(Math.abs(ee)>1&&(Math.abs(ee+re)===1?ee+=re:Math.abs(ee-re)===1&&(ee-=re)),q.dem&&z.dem&&(z.dem.backfillBorder(q.dem,ee,Y),z.neighboringTiles&&z.neighboringTiles[oe]&&(z.neighboringTiles[oe].backfilled=!0)))}},d.prototype.getTile=function(h){return this.getTileByID(h.key)},d.prototype.getTileByID=function(h){return this._tiles[h]},d.prototype._retainLoadedChildren=function(h,m,E,M){for(var R in this._tiles){var L=this._tiles[R];if(!(M[R]||!L.hasData()||L.tileID.overscaledZ<=m||L.tileID.overscaledZ>E)){for(var z=L.tileID;L&&L.tileID.overscaledZ>m+1;){var q=L.tileID.scaledTo(L.tileID.overscaledZ-1);(L=this._tiles[q.key])&&L.hasData()&&(z=q)}for(var ee=z;ee.overscaledZ>m;)if(h[(ee=ee.scaledTo(ee.overscaledZ-1)).key]){M[z.key]=z;break}}}},d.prototype.findLoadedParent=function(h,m){if(h.key in this._loadedParentTiles){var E=this._loadedParentTiles[h.key];return E&&E.tileID.overscaledZ>=m?E:null}for(var M=h.overscaledZ-1;M>=m;M--){var R=h.scaledTo(M),L=this._getLoadedTile(R);if(L)return L}},d.prototype._getLoadedTile=function(h){var m=this._tiles[h.key];return m&&m.hasData()?m:this._cache.getByKey(h.wrapped().key)},d.prototype.updateCacheSize=function(h){var m=Math.ceil(h.width/this._source.tileSize)+1,E=Math.ceil(h.height/this._source.tileSize)+1,M=Math.floor(m*E*5),R=typeof this._maxTileCacheSize=="number"?Math.min(this._maxTileCacheSize,M):M;this._cache.setMaxSize(R)},d.prototype.handleWrapJump=function(h){var m=Math.round((h-(this._prevLng===void 0?h:this._prevLng))/360);if(this._prevLng=h,m){var E={};for(var M in this._tiles){var R=this._tiles[M];R.tileID=R.tileID.unwrapTo(R.tileID.wrap+m),E[R.tileID.key]=R}for(var L in this._tiles=E,this._timers)clearTimeout(this._timers[L]),delete this._timers[L];for(var z in this._tiles)this._setTileReloadTimer(z,this._tiles[z])}},d.prototype.update=function(h){var m=this;if(this.transform=h,this._sourceLoaded&&!this._paused){var E;this.updateCacheSize(h),this.handleWrapJump(this.transform.center.lng),this._coveredTiles={},this.used?this._source.tileID?E=h.getVisibleUnwrappedCoordinates(this._source.tileID).map((function(pt){return new o.OverscaledTileID(pt.canonical.z,pt.wrap,pt.canonical.z,pt.canonical.x,pt.canonical.y)})):(E=h.coveringTiles({tileSize:this._source.tileSize,minzoom:this._source.minzoom,maxzoom:this._source.maxzoom,roundZoom:this._source.roundZoom,reparseOverscaled:this._source.reparseOverscaled}),this._source.hasTile&&(E=E.filter((function(pt){return m._source.hasTile(pt)})))):E=[];var M=h.coveringZoomLevel(this._source),R=Math.max(M-d.maxOverzooming,this._source.minzoom),L=Math.max(M+d.maxUnderzooming,this._source.minzoom),z=this._updateRetainedTiles(E,M);if(le(this._source.type)){for(var q={},ee={},Y=0,re=Object.keys(z);Y<re.length;Y+=1){var oe=re[Y],xe=z[oe],Oe=this._tiles[oe];if(Oe&&!(Oe.fadeEndTime&&Oe.fadeEndTime<=o.browser.now())){var ge=this.findLoadedParent(xe,R);ge&&(this._addTile(ge.tileID),q[ge.tileID.key]=ge.tileID),ee[oe]=xe}}for(var Re in this._retainLoadedChildren(ee,M,L,z),q)z[Re]||(this._coveredTiles[Re]=!0,z[Re]=q[Re])}for(var Ge in z)this._tiles[Ge].clearFadeHold();for(var $e=0,nt=o.keysDifference(this._tiles,z);$e<nt.length;$e+=1){var qe=nt[$e],et=this._tiles[qe];et.hasSymbolBuckets&&!et.holdingForFade()?et.setHoldDuration(this.map._fadeDuration):et.hasSymbolBuckets&&!et.symbolFadeFinished()||this._removeTile(qe)}this._updateLoadedParentTileCache()}},d.prototype.releaseSymbolFadeTiles=function(){for(var h in this._tiles)this._tiles[h].holdingForFade()&&this._removeTile(h)},d.prototype._updateRetainedTiles=function(h,m){for(var E={},M={},R=Math.max(m-d.maxOverzooming,this._source.minzoom),L=Math.max(m+d.maxUnderzooming,this._source.minzoom),z={},q=0,ee=h;q<ee.length;q+=1){var Y=ee[q],re=this._addTile(Y);E[Y.key]=Y,re.hasData()||m<this._source.maxzoom&&(z[Y.key]=Y)}this._retainLoadedChildren(z,m,L,E);for(var oe=0,xe=h;oe<xe.length;oe+=1){var Oe=xe[oe],ge=this._tiles[Oe.key];if(!ge.hasData()){if(m+1>this._source.maxzoom){var Re=Oe.children(this._source.maxzoom)[0],Ge=this.getTile(Re);if(Ge&&Ge.hasData()){E[Re.key]=Re;continue}}else{var $e=Oe.children(this._source.maxzoom);if(E[$e[0].key]&&E[$e[1].key]&&E[$e[2].key]&&E[$e[3].key])continue}for(var nt=ge.wasRequested(),qe=Oe.overscaledZ-1;qe>=R;--qe){var et=Oe.scaledTo(qe);if(M[et.key]||(M[et.key]=!0,!(ge=this.getTile(et))&&nt&&(ge=this._addTile(et)),ge&&(E[et.key]=et,nt=ge.wasRequested(),ge.hasData())))break}}}return E},d.prototype._updateLoadedParentTileCache=function(){for(var h in this._loadedParentTiles={},this._tiles){for(var m=[],E=void 0,M=this._tiles[h].tileID;M.overscaledZ>0;){if(M.key in this._loadedParentTiles){E=this._loadedParentTiles[M.key];break}m.push(M.key);var R=M.scaledTo(M.overscaledZ-1);if(E=this._getLoadedTile(R))break;M=R}for(var L=0,z=m;L<z.length;L+=1)this._loadedParentTiles[z[L]]=E}},d.prototype._addTile=function(h){var m=this._tiles[h.key];if(m)return m;(m=this._cache.getAndRemove(h))&&(this._setTileReloadTimer(h.key,m),m.tileID=h,this._state.initializeTileState(m,this.map?this.map.painter:null),this._cacheTimers[h.key]&&(clearTimeout(this._cacheTimers[h.key]),delete this._cacheTimers[h.key],this._setTileReloadTimer(h.key,m)));var E=!!m;return E||(m=new o.Tile(h,this._source.tileSize*h.overscaleFactor()),this._loadTile(m,this._tileLoaded.bind(this,m,h.key,m.state))),m?(m.uses++,this._tiles[h.key]=m,E||this._source.fire(new o.Event("dataloading",{tile:m,coord:m.tileID,dataType:"source"})),m):null},d.prototype._setTileReloadTimer=function(h,m){var E=this;h in this._timers&&(clearTimeout(this._timers[h]),delete this._timers[h]);var M=m.getExpiryTimeout();M&&(this._timers[h]=setTimeout((function(){E._reloadTile(h,"expired"),delete E._timers[h]}),M))},d.prototype._removeTile=function(h){var m=this._tiles[h];m&&(m.uses--,delete this._tiles[h],this._timers[h]&&(clearTimeout(this._timers[h]),delete this._timers[h]),m.uses>0||(m.hasData()&&m.state!=="reloading"?this._cache.add(m.tileID,m,m.getExpiryTimeout()):(m.aborted=!0,this._abortTile(m),this._unloadTile(m))))},d.prototype.clearTiles=function(){for(var h in this._shouldReloadOnResume=!1,this._paused=!1,this._tiles)this._removeTile(h);this._cache.reset()},d.prototype.tilesIn=function(h,m,E){var M=this,R=[],L=this.transform;if(!L)return R;for(var z=E?L.getCameraQueryGeometry(h):h,q=h.map((function(qe){return L.pointCoordinate(qe)})),ee=z.map((function(qe){return L.pointCoordinate(qe)})),Y=this.getIds(),re=1/0,oe=1/0,xe=-1/0,Oe=-1/0,ge=0,Re=ee;ge<Re.length;ge+=1){var Ge=Re[ge];re=Math.min(re,Ge.x),oe=Math.min(oe,Ge.y),xe=Math.max(xe,Ge.x),Oe=Math.max(Oe,Ge.y)}for(var $e=function(qe){var et=M._tiles[Y[qe]];if(!et.holdingForFade()){var pt=et.tileID,Dt=Math.pow(2,L.zoom-et.tileID.overscaledZ),Tt=m*et.queryPadding*o.EXTENT/et.tileSize/Dt,zt=[pt.getTilePoint(new o.MercatorCoordinate(re,oe)),pt.getTilePoint(new o.MercatorCoordinate(xe,Oe))];if(zt[0].x-Tt<o.EXTENT&&zt[0].y-Tt<o.EXTENT&&zt[1].x+Tt>=0&&zt[1].y+Tt>=0){var sr=q.map((function(Pr){return pt.getTilePoint(Pr)})),Cr=ee.map((function(Pr){return pt.getTilePoint(Pr)}));R.push({tile:et,tileID:pt,queryGeometry:sr,cameraQueryGeometry:Cr,scale:Dt})}}},nt=0;nt<Y.length;nt++)$e(nt);return R},d.prototype.getVisibleCoordinates=function(h){for(var m=this,E=this.getRenderableIds(h).map((function(z){return m._tiles[z].tileID})),M=0,R=E;M<R.length;M+=1){var L=R[M];L.posMatrix=this.transform.calculatePosMatrix(L.toUnwrapped())}return E},d.prototype.hasTransition=function(){if(this._source.hasTransition())return!0;if(le(this._source.type))for(var h in this._tiles){var m=this._tiles[h];if(m.fadeEndTime!==void 0&&m.fadeEndTime>=o.browser.now())return!0}return!1},d.prototype.setFeatureState=function(h,m,E){this._state.updateState(h=h||"_geojsonTileLayer",m,E)},d.prototype.removeFeatureState=function(h,m,E){this._state.removeFeatureState(h=h||"_geojsonTileLayer",m,E)},d.prototype.getFeatureState=function(h,m){return this._state.getState(h=h||"_geojsonTileLayer",m)},d.prototype.setDependencies=function(h,m,E){var M=this._tiles[h];M&&M.setDependencies(m,E)},d.prototype.reloadTilesForDependencies=function(h,m){for(var E in this._tiles)this._tiles[E].hasDependency(h,m)&&this._reloadTile(E,"reloading");this._cache.filter((function(M){return!M.hasDependency(h,m)}))},d})(o.Evented);function g(c,d){var h=Math.abs(2*c.wrap)-+(c.wrap<0),m=Math.abs(2*d.wrap)-+(d.wrap<0);return c.overscaledZ-d.overscaledZ||m-h||d.canonical.y-c.canonical.y||d.canonical.x-c.canonical.x}function le(c){return c==="raster"||c==="image"||c==="video"}function xt(){return new o.window.Worker(D.workerUrl)}Se.maxOverzooming=10,Se.maxUnderzooming=3;var Je="mapboxgl_preloaded_worker_pool",Ct=function(){this.active={}};Ct.prototype.acquire=function(c){if(!this.workers)for(this.workers=[];this.workers.length<Ct.workerCount;)this.workers.push(new xt);return this.active[c]=!0,this.workers.slice()},Ct.prototype.release=function(c){delete this.active[c],this.numActive()===0&&(this.workers.forEach((function(d){d.terminate()})),this.workers=null)},Ct.prototype.isPreloaded=function(){return!!this.active[Je]},Ct.prototype.numActive=function(){return Object.keys(this.active).length};var Mt,Ft=Math.floor(o.browser.hardwareConcurrency/2);function ht(){return Mt||(Mt=new Ct),Mt}function Lt(c,d){var h={};for(var m in c)m!=="ref"&&(h[m]=c[m]);return o.refProperties.forEach((function(E){E in d&&(h[E]=d[E])})),h}function Pt(c){c=c.slice();for(var d=Object.create(null),h=0;h<c.length;h++)d[c[h].id]=c[h];for(var m=0;m<c.length;m++)"ref"in c[m]&&(c[m]=Lt(c[m],d[c[m].ref]));return c}Ct.workerCount=Math.max(Math.min(Ft,6),1);var Gt={setStyle:"setStyle",addLayer:"addLayer",removeLayer:"removeLayer",setPaintProperty:"setPaintProperty",setLayoutProperty:"setLayoutProperty",setFilter:"setFilter",addSource:"addSource",removeSource:"removeSource",setGeoJSONSourceData:"setGeoJSONSourceData",setLayerZoomRange:"setLayerZoomRange",setLayerProperty:"setLayerProperty",setCenter:"setCenter",setZoom:"setZoom",setBearing:"setBearing",setPitch:"setPitch",setSprite:"setSprite",setGlyphs:"setGlyphs",setTransition:"setTransition",setLight:"setLight"};function Ur(c,d,h){h.push({command:Gt.addSource,args:[c,d[c]]})}function er(c,d,h){d.push({command:Gt.removeSource,args:[c]}),h[c]=!0}function en(c,d,h,m){er(c,h,m),Ur(c,d,h)}function ln(c,d,h){var m;for(m in c[h])if(c[h].hasOwnProperty(m)&&m!=="data"&&!o.deepEqual(c[h][m],d[h][m]))return!1;for(m in d[h])if(d[h].hasOwnProperty(m)&&m!=="data"&&!o.deepEqual(c[h][m],d[h][m]))return!1;return!0}function $r(c,d,h,m,E,M){var R;for(R in d=d||{},c=c||{})c.hasOwnProperty(R)&&(o.deepEqual(c[R],d[R])||h.push({command:M,args:[m,R,d[R],E]}));for(R in d)d.hasOwnProperty(R)&&!c.hasOwnProperty(R)&&(o.deepEqual(c[R],d[R])||h.push({command:M,args:[m,R,d[R],E]}))}function Xr(c){return c.id}function jr(c,d){return c[d.id]=d,c}var mi=function(c,d){this.reset(c,d)};mi.prototype.reset=function(c,d){this.points=c||[],this._distances=[0];for(var h=1;h<this.points.length;h++)this._distances[h]=this._distances[h-1]+this.points[h].dist(this.points[h-1]);this.length=this._distances[this._distances.length-1],this.padding=Math.min(d||0,.5*this.length),this.paddedLength=this.length-2*this.padding},mi.prototype.lerp=function(c){if(this.points.length===1)return this.points[0];c=o.clamp(c,0,1);for(var d=1,h=this._distances[d],m=c*this.paddedLength+this.padding;h<m&&d<this._distances.length;)h=this._distances[++d];var E=d-1,M=this._distances[E],R=h-M,L=R>0?(m-M)/R:0;return this.points[E].mult(1-L).add(this.points[d].mult(L))};var qr=function(c,d,h){var m=this.boxCells=[],E=this.circleCells=[];this.xCellCount=Math.ceil(c/h),this.yCellCount=Math.ceil(d/h);for(var M=0;M<this.xCellCount*this.yCellCount;M++)m.push([]),E.push([]);this.circleKeys=[],this.boxKeys=[],this.bboxes=[],this.circles=[],this.width=c,this.height=d,this.xScale=this.xCellCount/c,this.yScale=this.yCellCount/d,this.boxUid=0,this.circleUid=0};function dr(c,d,h,m,E){var M=o.create();return d?(o.scale(M,M,[1/E,1/E,1]),h||o.rotateZ(M,M,m.angle)):o.multiply(M,m.labelPlaneMatrix,c),M}function Be(c,d,h,m,E){if(d){var M=o.clone(c);return o.scale(M,M,[E,E,1]),h||o.rotateZ(M,M,-m.angle),M}return m.glCoordMatrix}function qt(c,d){var h=[c.x,c.y,0,1];ui(h,h,d);var m=h[3];return{point:new o.Point(h[0]/m,h[1]/m),signedDistanceFromCamera:m}}function tn(c,d){return .5+c/d*.5}function Wi(c,d){var h=c[0]/c[3],m=c[1]/c[3];return h>=-d[0]&&h<=d[0]&&m>=-d[1]&&m<=d[1]}function _a(c,d,h,m,E,M,R,L){var z=m?c.textSizeData:c.iconSizeData,q=o.evaluateSizeForZoom(z,h.transform.zoom),ee=[256/h.width*2+1,256/h.height*2+1],Y=m?c.text.dynamicLayoutVertexArray:c.icon.dynamicLayoutVertexArray;Y.clear();for(var re=c.lineVertexArray,oe=m?c.text.placedSymbolArray:c.icon.placedSymbolArray,xe=h.transform.width/h.transform.height,Oe=!1,ge=0;ge<oe.length;ge++){var Re=oe.get(ge);if(Re.hidden||Re.writingMode===o.WritingMode.vertical&&!Oe)Fi(Re.numGlyphs,Y);else{Oe=!1;var Ge=[Re.anchorX,Re.anchorY,0,1];if(o.transformMat4(Ge,Ge,d),Wi(Ge,ee)){var $e=tn(h.transform.cameraToCenterDistance,Ge[3]),nt=o.evaluateSizeForFeature(z,q,Re),qe=R?nt/$e:nt*$e,et=new o.Point(Re.anchorX,Re.anchorY),pt=qt(et,E).point,Dt={},Tt=Ie(Re,qe,!1,L,d,E,M,c.glyphOffsetArray,re,Y,pt,et,Dt,xe);Oe=Tt.useVertical,(Tt.notEnoughRoom||Oe||Tt.needsFlipping&&Ie(Re,qe,!0,L,d,E,M,c.glyphOffsetArray,re,Y,pt,et,Dt,xe).notEnoughRoom)&&Fi(Re.numGlyphs,Y)}else Fi(Re.numGlyphs,Y)}}m?c.text.dynamicLayoutVertexBuffer.updateData(Y):c.icon.dynamicLayoutVertexBuffer.updateData(Y)}function ci(c,d,h,m,E,M,R,L,z,q,ee){var Y=L.glyphStartIndex+L.numGlyphs,re=L.lineStartIndex,oe=L.lineStartIndex+L.lineLength,xe=d.getoffsetX(L.glyphStartIndex),Oe=d.getoffsetX(Y-1),ge=$n(c*xe,h,m,E,M,R,L.segment,re,oe,z,q,ee);if(!ge)return null;var Re=$n(c*Oe,h,m,E,M,R,L.segment,re,oe,z,q,ee);return Re?{first:ge,last:Re}:null}function Wn(c,d,h,m){return c===o.WritingMode.horizontal&&Math.abs(h.y-d.y)>Math.abs(h.x-d.x)*m?{useVertical:!0}:(c===o.WritingMode.vertical?d.y<h.y:d.x>h.x)?{needsFlipping:!0}:null}function Ie(c,d,h,m,E,M,R,L,z,q,ee,Y,re,oe){var xe,Oe=d/24,ge=c.lineOffsetX*Oe,Re=c.lineOffsetY*Oe;if(c.numGlyphs>1){var Ge=c.glyphStartIndex+c.numGlyphs,$e=c.lineStartIndex,nt=c.lineStartIndex+c.lineLength,qe=ci(Oe,L,ge,Re,h,ee,Y,c,z,M,re);if(!qe)return{notEnoughRoom:!0};var et=qt(qe.first.point,R).point,pt=qt(qe.last.point,R).point;if(m&&!h){var Dt=Wn(c.writingMode,et,pt,oe);if(Dt)return Dt}xe=[qe.first];for(var Tt=c.glyphStartIndex+1;Tt<Ge-1;Tt++)xe.push($n(Oe*L.getoffsetX(Tt),ge,Re,h,ee,Y,c.segment,$e,nt,z,M,re));xe.push(qe.last)}else{if(m&&!h){var zt=qt(Y,E).point,sr=c.lineStartIndex+c.segment+1,Cr=new o.Point(z.getx(sr),z.gety(sr)),Pr=qt(Cr,E),xn=Pr.signedDistanceFromCamera>0?Pr.point:Ho(Y,Cr,zt,1,E),ar=Wn(c.writingMode,zt,xn,oe);if(ar)return ar}var Wr=$n(Oe*L.getoffsetX(c.glyphStartIndex),ge,Re,h,ee,Y,c.segment,c.lineStartIndex,c.lineStartIndex+c.lineLength,z,M,re);if(!Wr)return{notEnoughRoom:!0};xe=[Wr]}for(var rn=0,Hr=xe;rn<Hr.length;rn+=1){var Vr=Hr[rn];o.addDynamicAttributes(q,Vr.point,Vr.angle)}return{}}function Ho(c,d,h,m,E){var M=qt(c.add(c.sub(d)._unit()),E).point,R=h.sub(M);return h.add(R._mult(m/R.mag()))}function $n(c,d,h,m,E,M,R,L,z,q,ee,Y){var re=m?c-d:c+d,oe=re>0?1:-1,xe=0;m&&(oe*=-1,xe=Math.PI),oe<0&&(xe+=Math.PI);for(var Oe=oe>0?L+R:L+R+1,ge=E,Re=E,Ge=0,$e=0,nt=Math.abs(re),qe=[];Ge+$e<=nt;){if((Oe+=oe)<L||Oe>=z)return null;if(Re=ge,qe.push(ge),(ge=Y[Oe])===void 0){var et=new o.Point(q.getx(Oe),q.gety(Oe)),pt=qt(et,ee);if(pt.signedDistanceFromCamera>0)ge=Y[Oe]=pt.point;else{var Dt=Oe-oe;ge=Ho(Ge===0?M:new o.Point(q.getx(Dt),q.gety(Dt)),et,Re,nt-Ge+1,ee)}}Ge+=$e,$e=Re.dist(ge)}var Tt=(nt-Ge)/$e,zt=ge.sub(Re),sr=zt.mult(Tt)._add(Re);sr._add(zt._unit()._perp()._mult(h*oe));var Cr=xe+Math.atan2(ge.y-Re.y,ge.x-Re.x);return qe.push(sr),{point:sr,angle:Cr,path:qe}}qr.prototype.keysLength=function(){return this.boxKeys.length+this.circleKeys.length},qr.prototype.insert=function(c,d,h,m,E){this._forEachCell(d,h,m,E,this._insertBoxCell,this.boxUid++),this.boxKeys.push(c),this.bboxes.push(d),this.bboxes.push(h),this.bboxes.push(m),this.bboxes.push(E)},qr.prototype.insertCircle=function(c,d,h,m){this._forEachCell(d-m,h-m,d+m,h+m,this._insertCircleCell,this.circleUid++),this.circleKeys.push(c),this.circles.push(d),this.circles.push(h),this.circles.push(m)},qr.prototype._insertBoxCell=function(c,d,h,m,E,M){this.boxCells[E].push(M)},qr.prototype._insertCircleCell=function(c,d,h,m,E,M){this.circleCells[E].push(M)},qr.prototype._query=function(c,d,h,m,E,M){if(h<0||c>this.width||m<0||d>this.height)return!E&&[];var R=[];if(c<=0&&d<=0&&this.width<=h&&this.height<=m){if(E)return!0;for(var L=0;L<this.boxKeys.length;L++)R.push({key:this.boxKeys[L],x1:this.bboxes[4*L],y1:this.bboxes[4*L+1],x2:this.bboxes[4*L+2],y2:this.bboxes[4*L+3]});for(var z=0;z<this.circleKeys.length;z++){var q=this.circles[3*z],ee=this.circles[3*z+1],Y=this.circles[3*z+2];R.push({key:this.circleKeys[z],x1:q-Y,y1:ee-Y,x2:q+Y,y2:ee+Y})}return M?R.filter(M):R}return this._forEachCell(c,d,h,m,this._queryCell,R,{hitTest:E,seenUids:{box:{},circle:{}}},M),E?R.length>0:R},qr.prototype._queryCircle=function(c,d,h,m,E){var M=c-h,R=c+h,L=d-h,z=d+h;if(R<0||M>this.width||z<0||L>this.height)return!m&&[];var q=[];return this._forEachCell(M,L,R,z,this._queryCellCircle,q,{hitTest:m,circle:{x:c,y:d,radius:h},seenUids:{box:{},circle:{}}},E),m?q.length>0:q},qr.prototype.query=function(c,d,h,m,E){return this._query(c,d,h,m,!1,E)},qr.prototype.hitTest=function(c,d,h,m,E){return this._query(c,d,h,m,!0,E)},qr.prototype.hitTestCircle=function(c,d,h,m){return this._queryCircle(c,d,h,!0,m)},qr.prototype._queryCell=function(c,d,h,m,E,M,R,L){var z=R.seenUids,q=this.boxCells[E];if(q!==null)for(var ee=this.bboxes,Y=0,re=q;Y<re.length;Y+=1){var oe=re[Y];if(!z.box[oe]){z.box[oe]=!0;var xe=4*oe;if(c<=ee[xe+2]&&d<=ee[xe+3]&&h>=ee[xe+0]&&m>=ee[xe+1]&&(!L||L(this.boxKeys[oe]))){if(R.hitTest)return M.push(!0),!0;M.push({key:this.boxKeys[oe],x1:ee[xe],y1:ee[xe+1],x2:ee[xe+2],y2:ee[xe+3]})}}}var Oe=this.circleCells[E];if(Oe!==null)for(var ge=this.circles,Re=0,Ge=Oe;Re<Ge.length;Re+=1){var $e=Ge[Re];if(!z.circle[$e]){z.circle[$e]=!0;var nt=3*$e;if(this._circleAndRectCollide(ge[nt],ge[nt+1],ge[nt+2],c,d,h,m)&&(!L||L(this.circleKeys[$e]))){if(R.hitTest)return M.push(!0),!0;var qe=ge[nt],et=ge[nt+1],pt=ge[nt+2];M.push({key:this.circleKeys[$e],x1:qe-pt,y1:et-pt,x2:qe+pt,y2:et+pt})}}}},qr.prototype._queryCellCircle=function(c,d,h,m,E,M,R,L){var z=R.circle,q=R.seenUids,ee=this.boxCells[E];if(ee!==null)for(var Y=this.bboxes,re=0,oe=ee;re<oe.length;re+=1){var xe=oe[re];if(!q.box[xe]){q.box[xe]=!0;var Oe=4*xe;if(this._circleAndRectCollide(z.x,z.y,z.radius,Y[Oe+0],Y[Oe+1],Y[Oe+2],Y[Oe+3])&&(!L||L(this.boxKeys[xe])))return M.push(!0),!0}}var ge=this.circleCells[E];if(ge!==null)for(var Re=this.circles,Ge=0,$e=ge;Ge<$e.length;Ge+=1){var nt=$e[Ge];if(!q.circle[nt]){q.circle[nt]=!0;var qe=3*nt;if(this._circlesCollide(Re[qe],Re[qe+1],Re[qe+2],z.x,z.y,z.radius)&&(!L||L(this.circleKeys[nt])))return M.push(!0),!0}}},qr.prototype._forEachCell=function(c,d,h,m,E,M,R,L){for(var z=this._convertToXCellCoord(c),q=this._convertToYCellCoord(d),ee=this._convertToXCellCoord(h),Y=this._convertToYCellCoord(m),re=z;re<=ee;re++)for(var oe=q;oe<=Y;oe++)if(E.call(this,c,d,h,m,this.xCellCount*oe+re,M,R,L))return},qr.prototype._convertToXCellCoord=function(c){return Math.max(0,Math.min(this.xCellCount-1,Math.floor(c*this.xScale)))},qr.prototype._convertToYCellCoord=function(c){return Math.max(0,Math.min(this.yCellCount-1,Math.floor(c*this.yScale)))},qr.prototype._circlesCollide=function(c,d,h,m,E,M){var R=m-c,L=E-d,z=h+M;return z*z>R*R+L*L},qr.prototype._circleAndRectCollide=function(c,d,h,m,E,M,R){var L=(M-m)/2,z=Math.abs(c-(m+L));if(z>L+h)return!1;var q=(R-E)/2,ee=Math.abs(d-(E+q));if(ee>q+h)return!1;if(z<=L||ee<=q)return!0;var Y=z-L,re=ee-q;return Y*Y+re*re<=h*h};var Wo=new Float32Array([-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0,-1/0,-1/0,0]);function Fi(c,d){for(var h=0;h<c;h++){var m=d.length;d.resize(m+4),d.float32.set(Wo,3*m)}}function ui(c,d,h){var m=d[0],E=d[1];return c[0]=h[0]*m+h[4]*E+h[12],c[1]=h[1]*m+h[5]*E+h[13],c[3]=h[3]*m+h[7]*E+h[15],c}var Si=function(c,d,h){d===void 0&&(d=new qr(c.width+200,c.height+200,25)),h===void 0&&(h=new qr(c.width+200,c.height+200,25)),this.transform=c,this.grid=d,this.ignoredGrid=h,this.pitchfactor=Math.cos(c._pitch)*c.cameraToCenterDistance,this.screenRightBoundary=c.width+100,this.screenBottomBoundary=c.height+100,this.gridRightBoundary=c.width+200,this.gridBottomBoundary=c.height+200};function Rn(c,d,h){return d*(o.EXTENT/(c.tileSize*Math.pow(2,h-c.tileID.overscaledZ)))}Si.prototype.placeCollisionBox=function(c,d,h,m,E){var M=this.projectAndGetPerspectiveRatio(m,c.anchorPointX,c.anchorPointY),R=h*M.perspectiveRatio,L=c.x1*R+M.point.x,z=c.y1*R+M.point.y,q=c.x2*R+M.point.x,ee=c.y2*R+M.point.y;return!this.isInsideGrid(L,z,q,ee)||!d&&this.grid.hitTest(L,z,q,ee,E)?{box:[],offscreen:!1}:{box:[L,z,q,ee],offscreen:this.isOffscreen(L,z,q,ee)}},Si.prototype.placeCollisionCircles=function(c,d,h,m,E,M,R,L,z,q,ee,Y,re){var oe=[],xe=new o.Point(d.anchorX,d.anchorY),Oe=qt(xe,M),ge=tn(this.transform.cameraToCenterDistance,Oe.signedDistanceFromCamera),Re=(q?E/ge:E*ge)/o.ONE_EM,Ge=qt(xe,R).point,$e=ci(Re,m,d.lineOffsetX*Re,d.lineOffsetY*Re,!1,Ge,xe,d,h,R,{}),nt=!1,qe=!1,et=!0;if($e){for(var pt=.5*Y*ge+re,Dt=new o.Point(-100,-100),Tt=new o.Point(this.screenRightBoundary,this.screenBottomBoundary),zt=new mi,sr=$e.first,Cr=$e.last,Pr=[],xn=sr.path.length-1;xn>=1;xn--)Pr.push(sr.path[xn]);for(var ar=1;ar<Cr.path.length;ar++)Pr.push(Cr.path[ar]);var Wr=2.5*pt;if(L){var rn=Pr.map((function(Fo){return qt(Fo,L)}));Pr=rn.some((function(Fo){return Fo.signedDistanceFromCamera<=0}))?[]:rn.map((function(Fo){return Fo.point}))}var Hr=[];if(Pr.length>0){for(var Vr=Pr[0].clone(),Yr=Pr[0].clone(),kr=1;kr<Pr.length;kr++)Vr.x=Math.min(Vr.x,Pr[kr].x),Vr.y=Math.min(Vr.y,Pr[kr].y),Yr.x=Math.max(Yr.x,Pr[kr].x),Yr.y=Math.max(Yr.y,Pr[kr].y);Hr=Vr.x>=Dt.x&&Yr.x<=Tt.x&&Vr.y>=Dt.y&&Yr.y<=Tt.y?[Pr]:Yr.x<Dt.x||Vr.x>Tt.x||Yr.y<Dt.y||Vr.y>Tt.y?[]:o.clipLine([Pr],Dt.x,Dt.y,Tt.x,Tt.y)}for(var Fr=0,Ki=Hr;Fr<Ki.length;Fr+=1){var Ti;zt.reset(Ki[Fr],.25*pt),Ti=zt.length<=.5*pt?1:Math.ceil(zt.paddedLength/Wr)+1;for(var vs=0;vs<Ti;vs++){var as=vs/Math.max(Ti-1,1),yi=zt.lerp(as),Ii=yi.x+100,ao=yi.y+100;oe.push(Ii,ao,pt,0);var Ms=Ii-pt,jl=ao-pt,Ws=Ii+pt,sa=ao+pt;if(et=et&&this.isOffscreen(Ms,jl,Ws,sa),qe=qe||this.isInsideGrid(Ms,jl,Ws,sa),!c&&this.grid.hitTestCircle(Ii,ao,pt,ee)&&(nt=!0,!z))return{circles:[],offscreen:!1,collisionDetected:nt}}}}return{circles:!z&&nt||!qe?[]:oe,offscreen:et,collisionDetected:nt}},Si.prototype.queryRenderedSymbols=function(c){if(c.length===0||this.grid.keysLength()===0&&this.ignoredGrid.keysLength()===0)return{};for(var d=[],h=1/0,m=1/0,E=-1/0,M=-1/0,R=0,L=c;R<L.length;R+=1){var z=L[R],q=new o.Point(z.x+100,z.y+100);h=Math.min(h,q.x),m=Math.min(m,q.y),E=Math.max(E,q.x),M=Math.max(M,q.y),d.push(q)}for(var ee={},Y={},re=0,oe=this.grid.query(h,m,E,M).concat(this.ignoredGrid.query(h,m,E,M));re<oe.length;re+=1){var xe=oe[re],Oe=xe.key;if(ee[Oe.bucketInstanceId]===void 0&&(ee[Oe.bucketInstanceId]={}),!ee[Oe.bucketInstanceId][Oe.featureIndex]){var ge=[new o.Point(xe.x1,xe.y1),new o.Point(xe.x2,xe.y1),new o.Point(xe.x2,xe.y2),new o.Point(xe.x1,xe.y2)];o.polygonIntersectsPolygon(d,ge)&&(ee[Oe.bucketInstanceId][Oe.featureIndex]=!0,Y[Oe.bucketInstanceId]===void 0&&(Y[Oe.bucketInstanceId]=[]),Y[Oe.bucketInstanceId].push(Oe.featureIndex))}}return Y},Si.prototype.insertCollisionBox=function(c,d,h,m,E){(d?this.ignoredGrid:this.grid).insert({bucketInstanceId:h,featureIndex:m,collisionGroupID:E},c[0],c[1],c[2],c[3])},Si.prototype.insertCollisionCircles=function(c,d,h,m,E){for(var M=d?this.ignoredGrid:this.grid,R={bucketInstanceId:h,featureIndex:m,collisionGroupID:E},L=0;L<c.length;L+=4)M.insertCircle(R,c[L],c[L+1],c[L+2])},Si.prototype.projectAndGetPerspectiveRatio=function(c,d,h){var m=[d,h,0,1];return ui(m,m,c),{point:new o.Point((m[0]/m[3]+1)/2*this.transform.width+100,(-m[1]/m[3]+1)/2*this.transform.height+100),perspectiveRatio:.5+this.transform.cameraToCenterDistance/m[3]*.5}},Si.prototype.isOffscreen=function(c,d,h,m){return h<100||c>=this.screenRightBoundary||m<100||d>this.screenBottomBoundary},Si.prototype.isInsideGrid=function(c,d,h,m){return h>=0&&c<this.gridRightBoundary&&m>=0&&d<this.gridBottomBoundary},Si.prototype.getViewportMatrix=function(){var c=o.identity([]);return o.translate(c,c,[-100,-100,0]),c};var ms=function(c,d,h,m){this.opacity=c?Math.max(0,Math.min(1,c.opacity+(c.placed?d:-d))):m&&h?1:0,this.placed=h};ms.prototype.isHidden=function(){return this.opacity===0&&!this.placed};var $i=function(c,d,h,m,E){this.text=new ms(c?c.text:null,d,h,E),this.icon=new ms(c?c.icon:null,d,m,E)};$i.prototype.isHidden=function(){return this.text.isHidden()&&this.icon.isHidden()};var Ns=function(c,d,h){this.text=c,this.icon=d,this.skipFade=h},In=function(){this.invProjMatrix=o.create(),this.viewportMatrix=o.create(),this.circles=[]},gc=function(c,d,h,m,E){this.bucketInstanceId=c,this.featureIndex=d,this.sourceLayerIndex=h,this.bucketIndex=m,this.tileID=E},be=function(c){this.crossSourceCollisions=c,this.maxGroupID=0,this.collisionGroups={}};function Me(c,d,h,m,E){var M=o.getAnchorAlignment(c),R=-(M.horizontalAlign-.5)*d,L=-(M.verticalAlign-.5)*h,z=o.evaluateVariableOffset(c,m);return new o.Point(R+z[0]*E,L+z[1]*E)}function We(c,d,h,m,E,M){var R=c.x1,L=c.x2,z=c.y1,q=c.y2,ee=c.anchorPointX,Y=c.anchorPointY,re=new o.Point(d,h);return m&&re._rotate(E?M:-M),{x1:R+re.x,y1:z+re.y,x2:L+re.x,y2:q+re.y,anchorPointX:ee,anchorPointY:Y}}be.prototype.get=function(c){if(this.crossSourceCollisions)return{ID:0,predicate:null};if(!this.collisionGroups[c]){var d=++this.maxGroupID;this.collisionGroups[c]={ID:d,predicate:function(h){return h.collisionGroupID===d}}}return this.collisionGroups[c]};var gt=function(c,d,h,m){this.transform=c.clone(),this.collisionIndex=new Si(this.transform),this.placements={},this.opacities={},this.variableOffsets={},this.stale=!1,this.commitTime=0,this.fadeDuration=d,this.retainedQueryData={},this.collisionGroups=new be(h),this.collisionCircleArrays={},this.prevPlacement=m,m&&(m.prevPlacement=void 0),this.placedOrientations={}};function $t(c,d,h,m,E){c.emplaceBack(d?1:0,h?1:0,m||0,E||0),c.emplaceBack(d?1:0,h?1:0,m||0,E||0),c.emplaceBack(d?1:0,h?1:0,m||0,E||0),c.emplaceBack(d?1:0,h?1:0,m||0,E||0)}gt.prototype.getBucketParts=function(c,d,h,m){var E=h.getBucket(d),M=h.latestFeatureIndex;if(E&&M&&d.id===E.layerIds[0]){var R=h.collisionBoxArray,L=E.layers[0].layout,z=Math.pow(2,this.transform.zoom-h.tileID.overscaledZ),q=h.tileSize/o.EXTENT,ee=this.transform.calculatePosMatrix(h.tileID.toUnwrapped()),Y=L.get("text-pitch-alignment")==="map",re=L.get("text-rotation-alignment")==="map",oe=Rn(h,1,this.transform.zoom),xe=dr(ee,Y,re,this.transform,oe),Oe=null;if(Y){var ge=Be(ee,Y,re,this.transform,oe);Oe=o.multiply([],this.transform.labelPlaneMatrix,ge)}this.retainedQueryData[E.bucketInstanceId]=new gc(E.bucketInstanceId,M,E.sourceLayerIndex,E.index,h.tileID);var Re={bucket:E,layout:L,posMatrix:ee,textLabelPlaneMatrix:xe,labelToScreenMatrix:Oe,scale:z,textPixelRatio:q,holdingForFade:h.holdingForFade(),collisionBoxArray:R,partiallyEvaluatedTextSize:o.evaluateSizeForZoom(E.textSizeData,this.transform.zoom),collisionGroup:this.collisionGroups.get(E.sourceID)};if(m)for(var Ge=0,$e=E.sortKeyRanges;Ge<$e.length;Ge+=1){var nt=$e[Ge];c.push({sortKey:nt.sortKey,symbolInstanceStart:nt.symbolInstanceStart,symbolInstanceEnd:nt.symbolInstanceEnd,parameters:Re})}else c.push({symbolInstanceStart:0,symbolInstanceEnd:E.symbolInstances.length,parameters:Re})}},gt.prototype.attemptAnchorPlacement=function(c,d,h,m,E,M,R,L,z,q,ee,Y,re,oe,xe){var Oe,ge=[Y.textOffset0,Y.textOffset1],Re=Me(c,h,m,ge,E),Ge=this.collisionIndex.placeCollisionBox(We(d,Re.x,Re.y,M,R,this.transform.angle),ee,L,z,q.predicate);if(!xe||this.collisionIndex.placeCollisionBox(We(xe,Re.x,Re.y,M,R,this.transform.angle),ee,L,z,q.predicate).box.length!==0)return Ge.box.length>0?(this.prevPlacement&&this.prevPlacement.variableOffsets[Y.crossTileID]&&this.prevPlacement.placements[Y.crossTileID]&&this.prevPlacement.placements[Y.crossTileID].text&&(Oe=this.prevPlacement.variableOffsets[Y.crossTileID].anchor),this.variableOffsets[Y.crossTileID]={textOffset:ge,width:h,height:m,anchor:c,textBoxScale:E,prevAnchor:Oe},this.markUsedJustification(re,c,Y,oe),re.allowVerticalPlacement&&(this.markUsedOrientation(re,oe,Y),this.placedOrientations[Y.crossTileID]=oe),{shift:Re,placedGlyphBoxes:Ge}):void 0},gt.prototype.placeLayerBucketPart=function(c,d,h){var m=this,E=c.parameters,M=E.bucket,R=E.layout,L=E.posMatrix,z=E.textLabelPlaneMatrix,q=E.labelToScreenMatrix,ee=E.textPixelRatio,Y=E.holdingForFade,re=E.collisionBoxArray,oe=E.partiallyEvaluatedTextSize,xe=E.collisionGroup,Oe=R.get("text-optional"),ge=R.get("icon-optional"),Re=R.get("text-allow-overlap"),Ge=R.get("icon-allow-overlap"),$e=R.get("text-rotation-alignment")==="map",nt=R.get("text-pitch-alignment")==="map",qe=R.get("icon-text-fit")!=="none",et=R.get("symbol-z-order")==="viewport-y",pt=Re&&(Ge||!M.hasIconData()||ge),Dt=Ge&&(Re||!M.hasTextData()||Oe);!M.collisionArrays&&re&&M.deserializeCollisionBoxes(re);var Tt=function(ar,Wr){if(!d[ar.crossTileID])if(Y)m.placements[ar.crossTileID]=new Ns(!1,!1,!1);else{var rn,Hr=!1,Vr=!1,Yr=!0,kr=null,Fr={box:null,offscreen:null},Ki={box:null,offscreen:null},Ti=null,vs=null,as=0,yi=0,Ii=0;Wr.textFeatureIndex?as=Wr.textFeatureIndex:ar.useRuntimeCollisionCircles&&(as=ar.featureIndex),Wr.verticalTextFeatureIndex&&(yi=Wr.verticalTextFeatureIndex);var ao=Wr.textBox;if(ao){var Ms=function(Cn){var Co=o.WritingMode.horizontal;if(M.allowVerticalPlacement&&!Cn&&m.prevPlacement){var $s=m.prevPlacement.placedOrientations[ar.crossTileID];$s&&(m.placedOrientations[ar.crossTileID]=$s,m.markUsedOrientation(M,Co=$s,ar))}return Co},jl=function(Cn,Co){if(M.allowVerticalPlacement&&ar.numVerticalGlyphVertices>0&&Wr.verticalTextBox)for(var $s=0,Rc=M.writingModes;$s<Rc.length&&(Rc[$s]===o.WritingMode.vertical?(Fr=Co(),Ki=Fr):Fr=Cn(),!(Fr&&Fr.box&&Fr.box.length));$s+=1);else Fr=Cn()};if(R.get("text-variable-anchor")){var Ws=R.get("text-variable-anchor");if(m.prevPlacement&&m.prevPlacement.variableOffsets[ar.crossTileID]){var sa=m.prevPlacement.variableOffsets[ar.crossTileID];Ws.indexOf(sa.anchor)>0&&(Ws=Ws.filter((function(Cn){return Cn!==sa.anchor}))).unshift(sa.anchor)}var Fo=function(Cn,Co,$s){for(var Rc=Cn.x2-Cn.x1,by=Cn.y2-Cn.y1,Dh=ar.textBoxScale,xy=qe&&!Ge?Co:null,Sf={box:[],offscreen:!1},Rg=Re?2*Ws.length:Ws.length,Eu=0;Eu<Rg;++Eu){var Fh=m.attemptAnchorPlacement(Ws[Eu%Ws.length],Cn,Rc,by,Dh,$e,nt,ee,L,xe,Eu>=Ws.length,ar,M,$s,xy);if(Fh&&(Sf=Fh.placedGlyphBoxes)&&Sf.box&&Sf.box.length){Hr=!0,kr=Fh.shift;break}}return Sf};jl((function(){return Fo(ao,Wr.iconBox,o.WritingMode.horizontal)}),(function(){var Cn=Wr.verticalTextBox;return M.allowVerticalPlacement&&!(Fr&&Fr.box&&Fr.box.length)&&ar.numVerticalGlyphVertices>0&&Cn?Fo(Cn,Wr.verticalIconBox,o.WritingMode.vertical):{box:null,offscreen:null}})),Fr&&(Hr=Fr.box,Yr=Fr.offscreen);var Tf=Ms(Fr&&Fr.box);if(!Hr&&m.prevPlacement){var wu=m.prevPlacement.variableOffsets[ar.crossTileID];wu&&(m.variableOffsets[ar.crossTileID]=wu,m.markUsedJustification(M,wu.anchor,ar,Tf))}}else{var Gl=function(Cn,Co){var $s=m.collisionIndex.placeCollisionBox(Cn,Re,ee,L,xe.predicate);return $s&&$s.box&&$s.box.length&&(m.markUsedOrientation(M,Co,ar),m.placedOrientations[ar.crossTileID]=Co),$s};jl((function(){return Gl(ao,o.WritingMode.horizontal)}),(function(){var Cn=Wr.verticalTextBox;return M.allowVerticalPlacement&&ar.numVerticalGlyphVertices>0&&Cn?Gl(Cn,o.WritingMode.vertical):{box:null,offscreen:null}})),Ms(Fr&&Fr.box&&Fr.box.length)}}if(Hr=(rn=Fr)&&rn.box&&rn.box.length>0,Yr=rn&&rn.offscreen,ar.useRuntimeCollisionCircles){var Tu=M.text.placedSymbolArray.get(ar.centerJustifiedTextSymbolIndex),Ef=o.evaluateSizeForFeature(M.textSizeData,oe,Tu),Ba=R.get("text-padding");Ti=m.collisionIndex.placeCollisionCircles(Re,Tu,M.lineVertexArray,M.glyphOffsetArray,Ef,L,z,q,h,nt,xe.predicate,ar.collisionCircleDiameter,Ba),Hr=Re||Ti.circles.length>0&&!Ti.collisionDetected,Yr=Yr&&Ti.offscreen}if(Wr.iconFeatureIndex&&(Ii=Wr.iconFeatureIndex),Wr.iconBox){var Cf=function(Cn){var Co=qe&&kr?We(Cn,kr.x,kr.y,$e,nt,m.transform.angle):Cn;return m.collisionIndex.placeCollisionBox(Co,Ge,ee,L,xe.predicate)};Vr=Ki&&Ki.box&&Ki.box.length&&Wr.verticalIconBox?(vs=Cf(Wr.verticalIconBox)).box.length>0:(vs=Cf(Wr.iconBox)).box.length>0,Yr=Yr&&vs.offscreen}var Pa=Oe||ar.numHorizontalGlyphVertices===0&&ar.numVerticalGlyphVertices===0,Zi=ge||ar.numIconVertices===0;if(Pa||Zi?Zi?Pa||(Vr=Vr&&Hr):Hr=Vr&&Hr:Vr=Hr=Vr&&Hr,Hr&&rn&&rn.box&&m.collisionIndex.insertCollisionBox(rn.box,R.get("text-ignore-placement"),M.bucketInstanceId,Ki&&Ki.box&&yi?yi:as,xe.ID),Vr&&vs&&m.collisionIndex.insertCollisionBox(vs.box,R.get("icon-ignore-placement"),M.bucketInstanceId,Ii,xe.ID),Ti&&(Hr&&m.collisionIndex.insertCollisionCircles(Ti.circles,R.get("text-ignore-placement"),M.bucketInstanceId,as,xe.ID),h)){var il=M.bucketInstanceId,Hl=m.collisionCircleArrays[il];Hl===void 0&&(Hl=m.collisionCircleArrays[il]=new In);for(var Mc=0;Mc<Ti.circles.length;Mc+=4)Hl.circles.push(Ti.circles[Mc+0]),Hl.circles.push(Ti.circles[Mc+1]),Hl.circles.push(Ti.circles[Mc+2]),Hl.circles.push(Ti.collisionDetected?1:0)}m.placements[ar.crossTileID]=new Ns(Hr||pt,Vr||Dt,Yr||M.justReloaded),d[ar.crossTileID]=!0}};if(et)for(var zt=M.getSortedSymbolIndexes(this.transform.angle),sr=zt.length-1;sr>=0;--sr){var Cr=zt[sr];Tt(M.symbolInstances.get(Cr),M.collisionArrays[Cr])}else for(var Pr=c.symbolInstanceStart;Pr<c.symbolInstanceEnd;Pr++)Tt(M.symbolInstances.get(Pr),M.collisionArrays[Pr]);if(h&&M.bucketInstanceId in this.collisionCircleArrays){var xn=this.collisionCircleArrays[M.bucketInstanceId];o.invert(xn.invProjMatrix,L),xn.viewportMatrix=this.collisionIndex.getViewportMatrix()}M.justReloaded=!1},gt.prototype.markUsedJustification=function(c,d,h,m){var E;E=m===o.WritingMode.vertical?h.verticalPlacedTextSymbolIndex:{left:h.leftJustifiedTextSymbolIndex,center:h.centerJustifiedTextSymbolIndex,right:h.rightJustifiedTextSymbolIndex}[o.getAnchorJustification(d)];for(var M=0,R=[h.leftJustifiedTextSymbolIndex,h.centerJustifiedTextSymbolIndex,h.rightJustifiedTextSymbolIndex,h.verticalPlacedTextSymbolIndex];M<R.length;M+=1){var L=R[M];L>=0&&(c.text.placedSymbolArray.get(L).crossTileID=E>=0&&L!==E?0:h.crossTileID)}},gt.prototype.markUsedOrientation=function(c,d,h){for(var m=d===o.WritingMode.horizontal||d===o.WritingMode.horizontalOnly?d:0,E=d===o.WritingMode.vertical?d:0,M=0,R=[h.leftJustifiedTextSymbolIndex,h.centerJustifiedTextSymbolIndex,h.rightJustifiedTextSymbolIndex];M<R.length;M+=1)c.text.placedSymbolArray.get(R[M]).placedOrientation=m;h.verticalPlacedTextSymbolIndex&&(c.text.placedSymbolArray.get(h.verticalPlacedTextSymbolIndex).placedOrientation=E)},gt.prototype.commit=function(c){this.commitTime=c,this.zoomAtLastRecencyCheck=this.transform.zoom;var d=this.prevPlacement,h=!1;this.prevZoomAdjustment=d?d.zoomAdjustment(this.transform.zoom):0;var m=d?d.symbolFadeChange(c):1,E=d?d.opacities:{},M=d?d.variableOffsets:{},R=d?d.placedOrientations:{};for(var L in this.placements){var z=this.placements[L],q=E[L];q?(this.opacities[L]=new $i(q,m,z.text,z.icon),h=h||z.text!==q.text.placed||z.icon!==q.icon.placed):(this.opacities[L]=new $i(null,m,z.text,z.icon,z.skipFade),h=h||z.text||z.icon)}for(var ee in E){var Y=E[ee];if(!this.opacities[ee]){var re=new $i(Y,m,!1,!1);re.isHidden()||(this.opacities[ee]=re,h=h||Y.text.placed||Y.icon.placed)}}for(var oe in M)this.variableOffsets[oe]||!this.opacities[oe]||this.opacities[oe].isHidden()||(this.variableOffsets[oe]=M[oe]);for(var xe in R)this.placedOrientations[xe]||!this.opacities[xe]||this.opacities[xe].isHidden()||(this.placedOrientations[xe]=R[xe]);h?this.lastPlacementChangeTime=c:typeof this.lastPlacementChangeTime!="number"&&(this.lastPlacementChangeTime=d?d.lastPlacementChangeTime:c)},gt.prototype.updateLayerOpacities=function(c,d){for(var h={},m=0,E=d;m<E.length;m+=1){var M=E[m],R=M.getBucket(c);R&&M.latestFeatureIndex&&c.id===R.layerIds[0]&&this.updateBucketOpacities(R,h,M.collisionBoxArray)}},gt.prototype.updateBucketOpacities=function(c,d,h){var m=this;c.hasTextData()&&c.text.opacityVertexArray.clear(),c.hasIconData()&&c.icon.opacityVertexArray.clear(),c.hasIconCollisionBoxData()&&c.iconCollisionBox.collisionVertexArray.clear(),c.hasTextCollisionBoxData()&&c.textCollisionBox.collisionVertexArray.clear();var E=c.layers[0].layout,M=new $i(null,0,!1,!1,!0),R=E.get("text-allow-overlap"),L=E.get("icon-allow-overlap"),z=E.get("text-variable-anchor"),q=E.get("text-rotation-alignment")==="map",ee=E.get("text-pitch-alignment")==="map",Y=E.get("icon-text-fit")!=="none",re=new $i(null,0,R&&(L||!c.hasIconData()||E.get("icon-optional")),L&&(R||!c.hasTextData()||E.get("text-optional")),!0);!c.collisionArrays&&h&&(c.hasIconCollisionBoxData()||c.hasTextCollisionBoxData())&&c.deserializeCollisionBoxes(h);for(var oe=function(Re,Ge,$e){for(var nt=0;nt<Ge/4;nt++)Re.opacityVertexArray.emplaceBack($e)},xe=function(Re){var Ge=c.symbolInstances.get(Re),$e=Ge.numHorizontalGlyphVertices,nt=Ge.numVerticalGlyphVertices,qe=Ge.crossTileID,et=m.opacities[qe];d[qe]?et=M:et||(m.opacities[qe]=et=re),d[qe]=!0;var pt=Ge.numIconVertices>0,Dt=m.placedOrientations[Ge.crossTileID],Tt=Dt===o.WritingMode.vertical,zt=Dt===o.WritingMode.horizontal||Dt===o.WritingMode.horizontalOnly;if($e>0||nt>0){var sr=uf(et.text);oe(c.text,$e,Tt?ya:sr),oe(c.text,nt,zt?ya:sr);var Cr=et.text.isHidden();[Ge.rightJustifiedTextSymbolIndex,Ge.centerJustifiedTextSymbolIndex,Ge.leftJustifiedTextSymbolIndex].forEach((function(Fr){Fr>=0&&(c.text.placedSymbolArray.get(Fr).hidden=Cr||Tt?1:0)})),Ge.verticalPlacedTextSymbolIndex>=0&&(c.text.placedSymbolArray.get(Ge.verticalPlacedTextSymbolIndex).hidden=Cr||zt?1:0);var Pr=m.variableOffsets[Ge.crossTileID];Pr&&m.markUsedJustification(c,Pr.anchor,Ge,Dt);var xn=m.placedOrientations[Ge.crossTileID];xn&&(m.markUsedJustification(c,"left",Ge,xn),m.markUsedOrientation(c,xn,Ge))}if(pt){var ar=uf(et.icon),Wr=!(Y&&Ge.verticalPlacedIconSymbolIndex&&Tt);Ge.placedIconSymbolIndex>=0&&(oe(c.icon,Ge.numIconVertices,Wr?ar:ya),c.icon.placedSymbolArray.get(Ge.placedIconSymbolIndex).hidden=et.icon.isHidden()),Ge.verticalPlacedIconSymbolIndex>=0&&(oe(c.icon,Ge.numVerticalIconVertices,Wr?ya:ar),c.icon.placedSymbolArray.get(Ge.verticalPlacedIconSymbolIndex).hidden=et.icon.isHidden())}if(c.hasIconCollisionBoxData()||c.hasTextCollisionBoxData()){var rn=c.collisionArrays[Re];if(rn){var Hr=new o.Point(0,0);if(rn.textBox||rn.verticalTextBox){var Vr=!0;if(z){var Yr=m.variableOffsets[qe];Yr?(Hr=Me(Yr.anchor,Yr.width,Yr.height,Yr.textOffset,Yr.textBoxScale),q&&Hr._rotate(ee?m.transform.angle:-m.transform.angle)):Vr=!1}rn.textBox&&$t(c.textCollisionBox.collisionVertexArray,et.text.placed,!Vr||Tt,Hr.x,Hr.y),rn.verticalTextBox&&$t(c.textCollisionBox.collisionVertexArray,et.text.placed,!Vr||zt,Hr.x,Hr.y)}var kr=!!(!zt&&rn.verticalIconBox);rn.iconBox&&$t(c.iconCollisionBox.collisionVertexArray,et.icon.placed,kr,Y?Hr.x:0,Y?Hr.y:0),rn.verticalIconBox&&$t(c.iconCollisionBox.collisionVertexArray,et.icon.placed,!kr,Y?Hr.x:0,Y?Hr.y:0)}}},Oe=0;Oe<c.symbolInstances.length;Oe++)xe(Oe);if(c.sortFeatures(this.transform.angle),this.retainedQueryData[c.bucketInstanceId]&&(this.retainedQueryData[c.bucketInstanceId].featureSortOrder=c.featureSortOrder),c.hasTextData()&&c.text.opacityVertexBuffer&&c.text.opacityVertexBuffer.updateData(c.text.opacityVertexArray),c.hasIconData()&&c.icon.opacityVertexBuffer&&c.icon.opacityVertexBuffer.updateData(c.icon.opacityVertexArray),c.hasIconCollisionBoxData()&&c.iconCollisionBox.collisionVertexBuffer&&c.iconCollisionBox.collisionVertexBuffer.updateData(c.iconCollisionBox.collisionVertexArray),c.hasTextCollisionBoxData()&&c.textCollisionBox.collisionVertexBuffer&&c.textCollisionBox.collisionVertexBuffer.updateData(c.textCollisionBox.collisionVertexArray),c.bucketInstanceId in this.collisionCircleArrays){var ge=this.collisionCircleArrays[c.bucketInstanceId];c.placementInvProjMatrix=ge.invProjMatrix,c.placementViewportMatrix=ge.viewportMatrix,c.collisionCircleArray=ge.circles,delete this.collisionCircleArrays[c.bucketInstanceId]}},gt.prototype.symbolFadeChange=function(c){return this.fadeDuration===0?1:(c-this.commitTime)/this.fadeDuration+this.prevZoomAdjustment},gt.prototype.zoomAdjustment=function(c){return Math.max(0,(this.transform.zoom-c)/1.5)},gt.prototype.hasTransitions=function(c){return this.stale||c-this.lastPlacementChangeTime<this.fadeDuration},gt.prototype.stillRecent=function(c,d){var h=this.zoomAtLastRecencyCheck===d?1-this.zoomAdjustment(d):1;return this.zoomAtLastRecencyCheck=d,this.commitTime+this.fadeDuration*h>c},gt.prototype.setStale=function(){this.stale=!0};var br=Math.pow(2,25),Br=Math.pow(2,24),fi=Math.pow(2,17),Li=Math.pow(2,16),Xi=Math.pow(2,9),Qs=Math.pow(2,8),xh=Math.pow(2,1);function uf(c){if(c.opacity===0&&!c.placed)return 0;if(c.opacity===1&&c.placed)return 4294967295;var d=c.placed?1:0,h=Math.floor(127*c.opacity);return h*br+d*Br+h*fi+d*Li+h*Xi+d*Qs+h*xh+d}var ya=0,mc=function(c){this._sortAcrossTiles=c.layout.get("symbol-z-order")!=="viewport-y"&&c.layout.get("symbol-sort-key").constantOr(1)!==void 0,this._currentTileIndex=0,this._currentPartIndex=0,this._seenCrossTileIDs={},this._bucketParts=[]};mc.prototype.continuePlacement=function(c,d,h,m,E){for(var M=this._bucketParts;this._currentTileIndex<c.length;)if(d.getBucketParts(M,m,c[this._currentTileIndex],this._sortAcrossTiles),this._currentTileIndex++,E())return!0;for(this._sortAcrossTiles&&(this._sortAcrossTiles=!1,M.sort((function(R,L){return R.sortKey-L.sortKey})));this._currentPartIndex<M.length;)if(d.placeLayerBucketPart(M[this._currentPartIndex],this._seenCrossTileIDs,h),this._currentPartIndex++,E())return!0;return!1};var _c=function(c,d,h,m,E,M,R){this.placement=new gt(c,E,M,R),this._currentPlacementIndex=d.length-1,this._forceFullPlacement=h,this._showCollisionBoxes=m,this._done=!1};_c.prototype.isDone=function(){return this._done},_c.prototype.continuePlacement=function(c,d,h){for(var m=this,E=o.browser.now(),M=function(){var z=o.browser.now()-E;return!m._forceFullPlacement&&z>2};this._currentPlacementIndex>=0;){var R=d[c[this._currentPlacementIndex]],L=this.placement.collisionIndex.transform.zoom;if(R.type==="symbol"&&(!R.minzoom||R.minzoom<=L)&&(!R.maxzoom||R.maxzoom>L)){if(this._inProgressLayer||(this._inProgressLayer=new mc(R)),this._inProgressLayer.continuePlacement(h[R.source],this.placement,this._showCollisionBoxes,R,M))return;delete this._inProgressLayer}this._currentPlacementIndex--}this._done=!0},_c.prototype.commit=function(c){return this.placement.commit(c),this.placement};var wh=512/o.EXTENT/2,yc=function(c,d,h){this.tileID=c,this.indexedSymbolInstances={},this.bucketInstanceId=h;for(var m=0;m<d.length;m++){var E=d.get(m),M=E.key;this.indexedSymbolInstances[M]||(this.indexedSymbolInstances[M]=[]),this.indexedSymbolInstances[M].push({crossTileID:E.crossTileID,coord:this.getScaledCoordinates(E,c)})}};yc.prototype.getScaledCoordinates=function(c,d){var h=wh/Math.pow(2,d.canonical.z-this.tileID.canonical.z);return{x:Math.floor((d.canonical.x*o.EXTENT+c.anchorX)*h),y:Math.floor((d.canonical.y*o.EXTENT+c.anchorY)*h)}},yc.prototype.findMatches=function(c,d,h){for(var m=this.tileID.canonical.z<d.canonical.z?1:Math.pow(2,this.tileID.canonical.z-d.canonical.z),E=0;E<c.length;E++){var M=c.get(E);if(!M.crossTileID){var R=this.indexedSymbolInstances[M.key];if(R)for(var L=this.getScaledCoordinates(M,d),z=0,q=R;z<q.length;z+=1){var ee=q[z];if(Math.abs(ee.coord.x-L.x)<=m&&Math.abs(ee.coord.y-L.y)<=m&&!h[ee.crossTileID]){h[ee.crossTileID]=!0,M.crossTileID=ee.crossTileID;break}}}}};var Us=function(){this.maxCrossTileID=0};Us.prototype.generate=function(){return++this.maxCrossTileID};var $o=function(){this.indexes={},this.usedCrossTileIDs={},this.lng=0};$o.prototype.handleWrapJump=function(c){var d=Math.round((c-this.lng)/360);
2097if(d!==0)for(var h in this.indexes){var m=this.indexes[h],E={};for(var M in m){var R=m[M];R.tileID=R.tileID.unwrapTo(R.tileID.wrap+d),E[R.tileID.key]=R}this.indexes[h]=E}this.lng=c},$o.prototype.addBucket=function(c,d,h){if(this.indexes[c.overscaledZ]&&this.indexes[c.overscaledZ][c.key]){if(this.indexes[c.overscaledZ][c.key].bucketInstanceId===d.bucketInstanceId)return!1;this.removeBucketCrossTileIDs(c.overscaledZ,this.indexes[c.overscaledZ][c.key])}for(var m=0;m<d.symbolInstances.length;m++)d.symbolInstances.get(m).crossTileID=0;this.usedCrossTileIDs[c.overscaledZ]||(this.usedCrossTileIDs[c.overscaledZ]={});var E=this.usedCrossTileIDs[c.overscaledZ];for(var M in this.indexes){var R=this.indexes[M];if(Number(M)>c.overscaledZ)for(var L in R){var z=R[L];z.tileID.isChildOf(c)&&z.findMatches(d.symbolInstances,c,E)}else{var q=R[c.scaledTo(Number(M)).key];q&&q.findMatches(d.symbolInstances,c,E)}}for(var ee=0;ee<d.symbolInstances.length;ee++){var Y=d.symbolInstances.get(ee);Y.crossTileID||(Y.crossTileID=h.generate(),E[Y.crossTileID]=!0)}return this.indexes[c.overscaledZ]===void 0&&(this.indexes[c.overscaledZ]={}),this.indexes[c.overscaledZ][c.key]=new yc(c,d.symbolInstances,d.bucketInstanceId),!0},$o.prototype.removeBucketCrossTileIDs=function(c,d){for(var h in d.indexedSymbolInstances)for(var m=0,E=d.indexedSymbolInstances[h];m<E.length;m+=1)delete this.usedCrossTileIDs[c][E[m].crossTileID]},$o.prototype.removeStaleBuckets=function(c){var d=!1;for(var h in this.indexes){var m=this.indexes[h];for(var E in m)c[m[E].bucketInstanceId]||(this.removeBucketCrossTileIDs(h,m[E]),delete m[E],d=!0)}return d};var va=function(){this.layerIndexes={},this.crossTileIDs=new Us,this.maxBucketInstanceId=0,this.bucketsInCurrentPlacement={}};va.prototype.addLayer=function(c,d,h){var m=this.layerIndexes[c.id];m===void 0&&(m=this.layerIndexes[c.id]=new $o);var E=!1,M={};m.handleWrapJump(h);for(var R=0,L=d;R<L.length;R+=1){var z=L[R],q=z.getBucket(c);q&&c.id===q.layerIds[0]&&(q.bucketInstanceId||(q.bucketInstanceId=++this.maxBucketInstanceId),m.addBucket(z.tileID,q,this.crossTileIDs)&&(E=!0),M[q.bucketInstanceId]=!0)}return m.removeStaleBuckets(M)&&(E=!0),E},va.prototype.pruneUnusedLayers=function(c){var d={};for(var h in c.forEach((function(m){d[m]=!0})),this.layerIndexes)d[h]||delete this.layerIndexes[h]};var Wa=function(c,d){return o.emitValidationErrors(c,d&&d.filter((function(h){return h.identifier!=="source.canvas"})))},ba=o.pick(Gt,["addLayer","removeLayer","setPaintProperty","setLayoutProperty","setFilter","addSource","removeSource","setLayerZoomRange","setLight","setTransition","setGeoJSONSourceData"]),_i=o.pick(Gt,["setCenter","setZoom","setBearing","setPitch"]),Mo=(function(){var c={},d=o.styleSpec.$version;for(var h in o.styleSpec.$root){var m,E=o.styleSpec.$root[h];E.required&&(m=h==="version"?d:E.type==="array"?[]:{})!=null&&(c[h]=m)}return c})(),Vn=(function(c){function d(h,m){var E=this;m===void 0&&(m={}),c.call(this),this.map=h,this.dispatcher=new Ce(ht(),this),this.imageManager=new G,this.imageManager.setEventedParent(this),this.glyphManager=new de(h._requestManager,m.localIdeographFontFamily),this.lineAtlas=new te(256,512),this.crossTileSymbolIndex=new va,this._layers={},this._serializedLayers={},this._order=[],this.sourceCaches={},this.zoomHistory=new o.ZoomHistory,this._loaded=!1,this._availableImages=[],this._resetUpdates(),this.dispatcher.broadcast("setReferrer",o.getReferrer());var M=this;this._rtlTextPluginCallback=d.registerForPluginStateChange((function(R){M.dispatcher.broadcast("syncRTLPluginState",{pluginStatus:R.pluginStatus,pluginURL:R.pluginURL},(function(L,z){if(o.triggerPluginCompletionEvent(L),z&&z.every((function(ee){return ee})))for(var q in M.sourceCaches)M.sourceCaches[q].reload()}))})),this.on("data",(function(R){if(R.dataType==="source"&&R.sourceDataType==="metadata"){var L=E.sourceCaches[R.sourceId];if(L){var z=L.getSource();if(z&&z.vectorLayerIds)for(var q in E._layers){var ee=E._layers[q];ee.source===z.id&&E._validateLayer(ee)}}}}))}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.loadURL=function(h,m){var E=this;m===void 0&&(m={}),this.fire(new o.Event("dataloading",{dataType:"style"}));var M=typeof m.validate=="boolean"?m.validate:!o.isMapboxURL(h);h=this.map._requestManager.normalizeStyleURL(h,m.accessToken);var R=this.map._requestManager.transformRequest(h,o.ResourceType.Style);this._request=o.getJSON(R,(function(L,z){E._request=null,L?E.fire(new o.ErrorEvent(L)):z&&E._load(z,M)}))},d.prototype.loadJSON=function(h,m){var E=this;m===void 0&&(m={}),this.fire(new o.Event("dataloading",{dataType:"style"})),this._request=o.browser.frame((function(){E._request=null,E._load(h,m.validate!==!1)}))},d.prototype.loadEmpty=function(){this.fire(new o.Event("dataloading",{dataType:"style"})),this._load(Mo,!1)},d.prototype._load=function(h,m){if(!m||!Wa(this,o.validateStyle(h))){for(var E in this._loaded=!0,this.stylesheet=h,h.sources)this.addSource(E,h.sources[E],{validate:!1});h.sprite?this._loadSprite(h.sprite):this.imageManager.setLoaded(!0),this.glyphManager.setURL(h.glyphs);
2097var M=Pt(this.stylesheet.layers);this._order=M.map((function(q){return q.id})),this._layers={},this._serializedLayers={};for(var R=0,L=M;R<L.length;R+=1){var z=L[R];(z=o.createStyleLayer(z)).setEventedParent(this,{layer:{id:z.id}}),this._layers[z.id]=z,this._serializedLayers[z.id]=z.serialize()}this.dispatcher.broadcast("setLayers",this._serializeLayers(this._order)),this.light=new W(this.stylesheet.light),this.fire(new o.Event("data",{dataType:"style"})),this.fire(new o.Event("style.load"))}},d.prototype._loadSprite=function(h){var m=this;this._spriteRequest=(function(E,M,R){var L,z,q,ee=o.browser.devicePixelRatio>1?"@2x":"",Y=o.getJSON(M.transformRequest(M.normalizeSpriteURL(E,ee,".json"),o.ResourceType.SpriteJSON),(function(xe,Oe){Y=null,q||(q=xe,L=Oe,oe())})),re=o.getImage(M.transformRequest(M.normalizeSpriteURL(E,ee,".png"),o.ResourceType.SpriteImage),(function(xe,Oe){re=null,q||(q=xe,z=Oe,oe())}));function oe(){if(q)R(q);else if(L&&z){var xe=o.browser.getImageData(z),Oe={};for(var ge in L){var Re=L[ge],Ge=Re.width,$e=Re.height,nt=Re.x,qe=Re.y,et=Re.sdf,pt=Re.pixelRatio,Dt=Re.stretchX,Tt=Re.stretchY,zt=Re.content,sr=new o.RGBAImage({width:Ge,height:$e});o.RGBAImage.copy(xe,sr,{x:nt,y:qe},{x:0,y:0},{width:Ge,height:$e}),Oe[ge]={data:sr,pixelRatio:pt,sdf:et,stretchX:Dt,stretchY:Tt,content:zt}}R(null,Oe)}}return{cancel:function(){Y&&(Y.cancel(),Y=null),re&&(re.cancel(),re=null)}}})(h,this.map._requestManager,(function(E,M){if(m._spriteRequest=null,E)m.fire(new o.ErrorEvent(E));else if(M)for(var R in M)m.imageManager.addImage(R,M[R]);m.imageManager.setLoaded(!0),m._availableImages=m.imageManager.listImages(),m.dispatcher.broadcast("setImages",m._availableImages),m.fire(new o.Event("data",{dataType:"style"}))}))},d.prototype._validateLayer=function(h){var m=this.sourceCaches[h.source];if(m){var E=h.sourceLayer;if(E){var M=m.getSource();(M.type==="geojson"||M.vectorLayerIds&&M.vectorLayerIds.indexOf(E)===-1)&&this.fire(new o.ErrorEvent(new Error('Source layer "'+E+'" does not exist on source "'+M.id+'" as specified by style layer "'+h.id+'"')))}}},d.prototype.loaded=function(){if(!this._loaded||Object.keys(this._updatedSources).length)return!1;for(var h in this.sourceCaches)if(!this.sourceCaches[h].loaded())return!1;return!!this.imageManager.isLoaded()},d.prototype._serializeLayers=function(h){for(var m=[],E=0,M=h;E<M.length;E+=1){var R=this._layers[M[E]];R.type!=="custom"&&m.push(R.serialize())}return m},d.prototype.hasTransitions=function(){if(this.light&&this.light.hasTransition())return!0;for(var h in this.sourceCaches)if(this.sourceCaches[h].hasTransition())return!0;for(var m in this._layers)if(this._layers[m].hasTransition())return!0;return!1},d.prototype._checkLoaded=function(){if(!this._loaded)throw new Error("Style is not done loading")},d.prototype.update=function(h){if(this._loaded){var m=this._changed;if(this._changed){var E=Object.keys(this._updatedLayers),M=Object.keys(this._removedLayers);for(var R in(E.length||M.length)&&this._updateWorkerLayers(E,M),this._updatedSources){var L=this._updatedSources[R];L==="reload"?this._reloadSource(R):L==="clear"&&this._clearSource(R)}for(var z in this._updateTilesForChangedImages(),this._updatedPaintProps)this._layers[z].updateTransitions(h);this.light.updateTransitions(h),this._resetUpdates()}var q={};for(var ee in this.sourceCaches){var Y=this.sourceCaches[ee];q[ee]=Y.used,Y.used=!1}for(var re=0,oe=this._order;re<oe.length;re+=1){var xe=this._layers[oe[re]];xe.recalculate(h,this._availableImages),!xe.isHidden(h.zoom)&&xe.source&&(this.sourceCaches[xe.source].used=!0)}for(var Oe in q){var ge=this.sourceCaches[Oe];q[Oe]!==ge.used&&ge.fire(new o.Event("data",{sourceDataType:"visibility",dataType:"source",sourceId:Oe}))}this.light.recalculate(h),this.z=h.zoom,m&&this.fire(new o.Event("data",{dataType:"style"}))}},d.prototype._updateTilesForChangedImages=function(){var h=Object.keys(this._changedImages);if(h.length){for(var m in this.sourceCaches)this.sourceCaches[m].reloadTilesForDependencies(["icons","patterns"],h);this._changedImages={}}},d.prototype._updateWorkerLayers=function(h,m){this.dispatcher.broadcast("updateLayers",{layers:this._serializeLayers(h),removedIds:m})},d.prototype._resetUpdates=function(){this._changed=!1,this._updatedLayers={},this._removedLayers={},this._updatedSources={},this._updatedPaintProps={},this._changedImages={}},d.prototype.setState=function(h){var m=this;if(this._checkLoaded(),Wa(this,o.validateStyle(h)))return!1;(h=o.clone$1(h)).layers=Pt(h.layers);var E=(function(R,L){if(!R)return[{command:Gt.setStyle,args:[L]}];var z=[];try{if(!o.deepEqual(R.version,L.version))return[{command:Gt.setStyle,args:[L]}];o.deepEqual(R.center,L.center)||z.push({command:Gt.setCenter,args:[L.center]}),o.deepEqual(R.zoom,L.zoom)||z.push({command:Gt.setZoom,args:[L.zoom]}),o.deepEqual(R.bearing,L.bearing)||z.push({command:Gt.setBearing,args:[L.bearing]}),o.deepEqual(R.pitch,L.pitch)||z.push({command:Gt.setPitch,args:[L.pitch]}),o.deepEqual(R.sprite,L.sprite)||z.push({command:Gt.setSprite,args:[L.sprite]}),o.deepEqual(R.glyphs,L.glyphs)||z.push({command:Gt.setGlyphs,args:[L.glyphs]}),o.deepEqual(R.transition,L.transition)||z.push({command:Gt.setTransition,args:[L.transition]}),o.deepEqual(R.light,L.light)||z.push({command:Gt.setLight,args:[L.light]});var q={},ee=[];(function(re,oe,xe,Oe){var ge;for(ge in oe=oe||{},re=re||{})re.hasOwnProperty(ge)&&(oe.hasOwnProperty(ge)||er(ge,xe,Oe));for(ge in oe)oe.hasOwnProperty(ge)&&(re.hasOwnProperty(ge)?o.deepEqual(re[ge],oe[ge])||(re[ge].type==="geojson"&&oe[ge].type==="geojson"&&ln(re,oe,ge)?xe.push({command:Gt.setGeoJSONSourceData,args:[ge,oe[ge].data]}):en(ge,oe,xe,Oe)):Ur(ge,oe,xe))})(R.sources,L.sources,ee,q);var Y=[];
2097R.layers&&R.layers.forEach((function(re){q[re.source]?z.push({command:Gt.removeLayer,args:[re.id]}):Y.push(re)})),z=z.concat(ee),(function(re,oe,xe){oe=oe||[];var Oe,ge,Re,Ge,$e,nt,qe,et=(re=re||[]).map(Xr),pt=oe.map(Xr),Dt=re.reduce(jr,{}),Tt=oe.reduce(jr,{}),zt=et.slice(),sr=Object.create(null);for(Oe=0,ge=0;Oe<et.length;Oe++)Tt.hasOwnProperty(Re=et[Oe])?ge++:(xe.push({command:Gt.removeLayer,args:[Re]}),zt.splice(zt.indexOf(Re,ge),1));for(Oe=0,ge=0;Oe<pt.length;Oe++)zt[zt.length-1-Oe]!==(Re=pt[pt.length-1-Oe])&&(Dt.hasOwnProperty(Re)?(xe.push({command:Gt.removeLayer,args:[Re]}),zt.splice(zt.lastIndexOf(Re,zt.length-ge),1)):ge++,xe.push({command:Gt.addLayer,args:[Tt[Re],nt=zt[zt.length-Oe]]}),zt.splice(zt.length-Oe,0,Re),sr[Re]=!0);for(Oe=0;Oe<pt.length;Oe++)if(Ge=Dt[Re=pt[Oe]],$e=Tt[Re],!sr[Re]&&!o.deepEqual(Ge,$e))if(o.deepEqual(Ge.source,$e.source)&&o.deepEqual(Ge["source-layer"],$e["source-layer"])&&o.deepEqual(Ge.type,$e.type)){for(qe in $r(Ge.layout,$e.layout,xe,Re,null,Gt.setLayoutProperty),$r(Ge.paint,$e.paint,xe,Re,null,Gt.setPaintProperty),o.deepEqual(Ge.filter,$e.filter)||xe.push({command:Gt.setFilter,args:[Re,$e.filter]}),o.deepEqual(Ge.minzoom,$e.minzoom)&&o.deepEqual(Ge.maxzoom,$e.maxzoom)||xe.push({command:Gt.setLayerZoomRange,args:[Re,$e.minzoom,$e.maxzoom]}),Ge)Ge.hasOwnProperty(qe)&&qe!=="layout"&&qe!=="paint"&&qe!=="filter"&&qe!=="metadata"&&qe!=="minzoom"&&qe!=="maxzoom"&&(qe.indexOf("paint.")===0?$r(Ge[qe],$e[qe],xe,Re,qe.slice(6),Gt.setPaintProperty):o.deepEqual(Ge[qe],$e[qe])||xe.push({command:Gt.setLayerProperty,args:[Re,qe,$e[qe]]}));for(qe in $e)$e.hasOwnProperty(qe)&&!Ge.hasOwnProperty(qe)&&qe!=="layout"&&qe!=="paint"&&qe!=="filter"&&qe!=="metadata"&&qe!=="minzoom"&&qe!=="maxzoom"&&(qe.indexOf("paint.")===0?$r(Ge[qe],$e[qe],xe,Re,qe.slice(6),Gt.setPaintProperty):o.deepEqual(Ge[qe],$e[qe])||xe.push({command:Gt.setLayerProperty,args:[Re,qe,$e[qe]]}))}else xe.push({command:Gt.removeLayer,args:[Re]}),nt=zt[zt.lastIndexOf(Re)+1],xe.push({command:Gt.addLayer,args:[$e,nt]})})(Y,L.layers,z)}catch(re){console.warn("Unable to compute style diff:",re),z=[{command:Gt.setStyle,args:[L]}]}return z})(this.serialize(),h).filter((function(R){return!(R.command in _i)}));if(E.length===0)return!1;var M=E.filter((function(R){return!(R.command in ba)}));if(M.length>0)throw new Error("Unimplemented: "+M.map((function(R){return R.command})).join(", ")+".");return E.forEach((function(R){R.command!=="setTransition"&&m[R.command].apply(m,R.args)})),this.stylesheet=h,!0},d.prototype.addImage=function(h,m){if(this.getImage(h))return this.fire(new o.ErrorEvent(new Error("An image with this name already exists.")));this.imageManager.addImage(h,m),this._afterImageUpdated(h)},d.prototype.updateImage=function(h,m){this.imageManager.updateImage(h,m)},d.prototype.getImage=function(h){return this.imageManager.getImage(h)},d.prototype.removeImage=function(h){if(!this.getImage(h))return this.fire(new o.ErrorEvent(new Error("No image with this name exists.")));this.imageManager.removeImage(h),this._afterImageUpdated(h)},d.prototype._afterImageUpdated=function(h){this._availableImages=this.imageManager.listImages(),this._changedImages[h]=!0,this._changed=!0,this.dispatcher.broadcast("setImages",this._availableImages),this.fire(new o.Event("data",{dataType:"style"}))},d.prototype.listImages=function(){return this._checkLoaded(),this.imageManager.listImages()},d.prototype.addSource=function(h,m,E){var M=this;if(E===void 0&&(E={}),this._checkLoaded(),this.sourceCaches[h]!==void 0)throw new Error("There is already a source with this ID");if(!m.type)throw new Error("The type property must be defined, but only the following properties were given: "+Object.keys(m).join(", ")+".");if(!(["vector","raster","geojson","video","image"].indexOf(m.type)>=0&&this._validate(o.validateStyle.source,"sources."+h,m,null,E))){this.map&&this.map._collectResourceTiming&&(m.collectResourceTiming=!0);var R=this.sourceCaches[h]=new Se(h,m,this.dispatcher);R.style=this,R.setEventedParent(this,(function(){return{isSourceLoaded:M.loaded(),source:R.serialize(),sourceId:h}})),R.onAdd(this.map),this._changed=!0}},d.prototype.removeSource=function(h){if(this._checkLoaded(),this.sourceCaches[h]===void 0)throw new Error("There is no source with this ID");for(var m in this._layers)if(this._layers[m].source===h)return this.fire(new o.ErrorEvent(new Error('Source "'+h+'" cannot be removed while layer "'+m+'" is using it.')));var E=this.sourceCaches[h];delete this.sourceCaches[h],delete this._updatedSources[h],E.fire(new o.Event("data",{sourceDataType:"metadata",dataType:"source",sourceId:h})),E.setEventedParent(null),E.clearTiles(),E.onRemove&&E.onRemove(this.map),this._changed=!0},d.prototype.setGeoJSONSourceData=function(h,m){this._checkLoaded(),this.sourceCaches[h].getSource().setData(m),this._changed=!0},d.prototype.getSource=function(h){return this.sourceCaches[h]&&this.sourceCaches[h].getSource()},d.prototype.addLayer=function(h,m,E){E===void 0&&(E={}),this._checkLoaded();var M=h.id;if(this.getLayer(M))this.fire(new o.ErrorEvent(new Error('Layer with i
2097d "'+M+'" already exists on this map')));else{var R;if(h.type==="custom"){if(Wa(this,o.validateCustomStyleLayer(h)))return;R=o.createStyleLayer(h)}else{if(typeof h.source=="object"&&(this.addSource(M,h.source),h=o.clone$1(h),h=o.extend(h,{source:M})),this._validate(o.validateStyle.layer,"layers."+M,h,{arrayIndex:-1},E))return;R=o.createStyleLayer(h),this._validateLayer(R),R.setEventedParent(this,{layer:{id:M}}),this._serializedLayers[R.id]=R.serialize()}var L=m?this._order.indexOf(m):this._order.length;if(m&&L===-1)this.fire(new o.ErrorEvent(new Error('Layer with id "'+m+'" does not exist on this map.')));else{if(this._order.splice(L,0,M),this._layerOrderChanged=!0,this._layers[M]=R,this._removedLayers[M]&&R.source&&R.type!=="custom"){var z=this._removedLayers[M];delete this._removedLayers[M],z.type!==R.type?this._updatedSources[R.source]="clear":(this._updatedSources[R.source]="reload",this.sourceCaches[R.source].pause())}this._updateLayer(R),R.onAdd&&R.onAdd(this.map)}}},d.prototype.moveLayer=function(h,m){if(this._checkLoaded(),this._changed=!0,this._layers[h]){if(h!==m){var E=this._order.indexOf(h);this._order.splice(E,1);var M=m?this._order.indexOf(m):this._order.length;
2097m&&M===-1?this.fire(new o.ErrorEvent(new Error('Layer with id "'+m+'" does not exist on this map.'))):(this._order.splice(M,0,h),this._layerOrderChanged=!0)}}else this.fire(new o.ErrorEvent(new Error("The layer '"+h+"' does not exist in the map's style and cannot be moved.")))},d.prototype.removeLayer=function(h){this._checkLoaded();var m=this._layers[h];if(m){m.setEventedParent(null);var E=this._order.indexOf(h);this._order.splice(E,1),this._layerOrderChanged=!0,this._changed=!0,this._removedLayers[h]=m,delete this._layers[h],delete this._serializedLayers[h],delete this._updatedLayers[h],delete this._updatedPaintProps[h],m.onRemove&&m.onRemove(this.map)}else this.fire(new o.ErrorEvent(new Error("The layer '"+h+"' does not exist in the map's style and cannot be removed.")))},d.prototype.getLayer=function(h){return this._layers[h]},d.prototype.hasLayer=function(h){return h in this._layers},d.prototype.setLayerZoomRange=function(h,m,E){this._checkLoaded();var M=this.getLayer(h);M?M.minzoom===m&&M.maxzoom===E||(m!=null&&(M.minzoom=m),E!=null&&(M.maxzoom=E),this._updateLayer(M)):this.fire(new o.ErrorEvent(new Error("The layer '"+h+"' does not exist in the map's style and cannot have zoom extent.")))},d.prototype.setFilter=function(h,m,E){E===void 0&&(E={}),this._checkLoaded();var M=this.getLayer(h);if(M){if(!o.deepEqual(M.filter,m))return m==null?(M.filter=void 0,void this._updateLayer(M)):void(this._validate(o.validateStyle.filter,"layers."+M.id+".filter",m,null,E)||(M.filter=o.clone$1(m),this._updateLayer(M)))}else this.fire(new o.ErrorEvent(new Error("The layer '"+h+"' does not exist in the map's style and cannot be filtered.")))},d.prototype.getFilter=function(h){return o.clone$1(this.getLayer(h).filter)},d.prototype.setLayoutProperty=function(h,m,E,M){M===void 0&&(M={}),this._checkLoaded();var R=this.getLayer(h);R?o.deepEqual(R.getLayoutProperty(m),E)||(R.setLayoutProperty(m,E,M),this._updateLayer(R)):this.fire(new o.ErrorEvent(new Error("The layer '"+h+"' does not exist in the map's style and cannot be styled.")))},d.prototype.getLayoutProperty=function(h,m){var E=this.getLayer(h);if(E)return E.getLayoutProperty(m);this.fire(new o.ErrorEvent(new Error("The layer '"+h+"' does not exist in the map's style.")))},d.prototype.setPaintProperty=function(h,m,E,M){M===void 0&&(M={}),this._checkLoaded();var R=this.getLayer(h);R?o.deepEqual(R.getPaintProperty(m),E)||(R.setPaintProperty(m,E,M)&&this._updateLayer(R),this._changed=!0,this._updatedPaintProps[h]=!0):this.fire(new o.ErrorEvent(new Error("The layer '"+h+"' does not exist in the map's style and cannot be styled.")))},d.prototype.getPaintProperty=function(h,m){return this.getLayer(h).getPaintProperty(m)},d.prototype.setFeatureState=function(h,m){this._checkLoaded();var E=h.source,M=h.sourceLayer,R=this.sourceCaches[E];if(R!==void 0){var L=R.getSource().type;L==="geojson"&&M?this.fire(new o.ErrorEvent(new Error("GeoJSON sources cannot have a sourceLayer parameter."))):L!=="vector"||M?(h.id===void 0&&this.fire(new o.ErrorEvent(new Error("The feature id parameter must be provided."))),R.setFeatureState(M,h.id,m)):this.fire(new o.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new o.ErrorEvent(new Error("The source '"+E+"' does not exist in the map's style.")))},d.prototype.removeFeatureState=function(h,m){this._checkLoaded();var E=h.source,M=this.sourceCaches[E];if(M!==void 0){var R=M.getSource().type,L=R==="vector"?h.sourceLayer:void 0;R!=="vector"||L?m&&typeof h.id!="string"&&typeof h.id!="number"?this.fire(new o.ErrorEvent(new Error("A feature id is required to remove its specific state property."))):M.removeFeatureState(L,h.id,m):this.fire(new o.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new o.ErrorEvent(new Error("The source '"+E+"' does not exist in the map's style.")))},d.prototype.getFeatureState=function(h){this._checkLoaded();var m=h.source,E=h.sourceLayer,M=this.sourceCaches[m];if(M!==void 0){if(M.getSource().type!=="vector"||E)return h.id===void 0&&this.fire(new o.ErrorEvent(new Error("The feature id parameter must be provided."))),M.getFeatureState(E,h.id);this.fire(new o.ErrorEvent(new Error("The sourceLayer parameter must be provided for vector source types.")))}else this.fire(new o.ErrorEvent(new Error("The source '"+m+"' does not exist in the map's style.")))},d.prototype.getTransition=function(){return o.extend({duration:300,delay:0},this.stylesheet&&this.stylesheet.transition)},d.prototype.serialize=function(){return o.filterObject({version:this.stylesheet.version,name:this.stylesheet.name,metadata:this.stylesheet.metadata,light:this.stylesheet.light,center:this.stylesheet.center,zoom:this.stylesheet.zoom,bearing:this.stylesheet.bearing,pitch:this.stylesheet.pitch,sprite:this.stylesheet.sprite,glyphs:this.stylesheet.glyphs,transition:this.stylesheet.transition,sources:o.mapObject(this.sourceCaches,(function(h){return h.serialize()})),layers:this._serializeLayers(this._order)},(function(h){return h!==void 0}))},d.prototype._updateLayer=function(h){this._updatedLayers[h.id]=!0,h.source&&!this._updatedSources[h.source]&&this.sourceCaches[h.source].getSource().type!=="raster"&&(this._updatedSources[h.source]="reload",this.sourceCaches[h.source].pause()),this._changed=!0},d.prototype._flattenAndSortRenderedFeatures=function(h){for(var m=this,E=function(Dt){return m._layers[Dt].type==="fill-extrusion"},M={},R=[],L=this._order.length-1;L>=0;L--){var z=this._order[L];if(E(z)){M[z]=L;for(var q=0,ee=h;q<ee.length;q+=1){var Y=ee[q][z];if(Y)for(var re=0,oe=Y;re<oe.length;re+=1)R.push(oe[re])}}}R.sort((function(Dt,Tt){return Tt.intersectionZ-Dt.intersectionZ}));for(var xe=[],Oe=this._order.length-1;Oe>=0;Oe--){var ge=this._order[Oe];if(E(ge))for(var Re=R.length-1;Re>=0;Re--){var Ge=R[Re].feature;if(M[Ge.layer.id]<Oe)break;xe.push(Ge),R.pop()}else for(var $e=0,nt=h;$e<nt.length;$e+=1){var qe=nt[$e][ge];if(qe)for(var et=0,pt=qe;et<pt.length;et+=1)xe.push(pt[et].feature)}}return xe},d.prototype.queryRenderedFeatures=function(h,m,E){m&&m.filter&&this._val
vendor: 5,656 bytes, line 2097
2097idate(o.validateStyle.filter,"queryRenderedFeatures.filter",m.filter,null,m);var M={};if(m&&m.layers){if(!Array.isArray(m.layers))return this.fire(new o.ErrorEvent(new Error("parameters.layers must be an Array."))),[];for(var R=0,L=m.layers;R<L.length;R+=1){var z=L[R],q=this._layers[z];if(!q)return this.fire(new o.ErrorEvent(new Error("The layer '"+z+"' does not exist in the map's style and cannot be queried for features."))),[];M[q.source]=!0}}var ee=[];for(var Y in m.availableImages=this._availableImages,this.sourceCaches)m.layers&&!M[Y]||ee.push(Qt(this.sourceCaches[Y],this._layers,this._serializedLayers,h,m,E));return this.placement&&ee.push((function(re,oe,xe,Oe,ge,Re,Ge){for(var $e={},nt=Re.queryRenderedSymbols(Oe),qe=[],et=0,pt=Object.keys(nt).map(Number);et<pt.length;et+=1)qe.push(Ge[pt[et]]);qe.sort(Jt);for(var Dt=function(){var Pr=zt[Tt],xn=Pr.featureIndex.lookupSymbolFeatures(nt[Pr.bucketInstanceId],oe,Pr.bucketIndex,Pr.sourceLayerIndex,ge.filter,ge.layers,ge.availableImages,re);for(var ar in xn){var Wr=$e[ar]=$e[ar]||[],rn=xn[ar];rn.sort((function(Yr,kr){var Fr=Pr.featureSortOrder;if(Fr){var Ki=Fr.indexOf(Yr.featureIndex);return Fr.indexOf(kr.featureIndex)-Ki}return kr.featureIndex-Yr.featureIndex}));for(var Hr=0,Vr=rn;Hr<Vr.length;Hr+=1)Wr.push(Vr[Hr])}},Tt=0,zt=qe;Tt<zt.length;Tt+=1)Dt();var sr=function(Pr){$e[Pr].forEach((function(xn){var ar=xn.feature,Wr=xe[re[Pr].source].getFeatureState(ar.layer["source-layer"],ar.id);ar.source=ar.layer.source,ar.layer["source-layer"]&&(ar.sourceLayer=ar.layer["source-layer"]),ar.state=Wr}))};for(var Cr in $e)sr(Cr);return $e})(this._layers,this._serializedLayers,this.sourceCaches,h,m,this.placement.collisionIndex,this.placement.retainedQueryData)),this._flattenAndSortRenderedFeatures(ee)},d.prototype.querySourceFeatures=function(h,m){m&&m.filter&&this._validate(o.validateStyle.filter,"querySourceFeatures.filter",m.filter,null,m);var E=this.sourceCaches[h];return E?(function(M,R){for(var L=M.getRenderableIds().map((function(oe){return M.getTileByID(oe)})),z=[],q={},ee=0;ee<L.length;ee++){var Y=L[ee],re=Y.tileID.canonical.key;q[re]||(q[re]=!0,Y.querySourceFeatures(z,R))}return z})(E,m):[]},d.prototype.addSourceType=function(h,m,E){return d.getSourceType(h)?E(new Error('A source type called "'+h+'" already exists.')):(d.setSourceType(h,m),m.workerSourceURL?void this.dispatcher.broadcast("loadWorkerSource",{name:h,url:m.workerSourceURL},E):E(null,null))},d.prototype.getLight=function(){return this.light.getLight()},d.prototype.setLight=function(h,m){m===void 0&&(m={}),this._checkLoaded();var E=this.light.getLight(),M=!1;for(var R in h)if(!o.deepEqual(h[R],E[R])){M=!0;break}if(M){var L={now:o.browser.now(),transition:o.extend({duration:300,delay:0},this.stylesheet.transition)};this.light.setLight(h,m),this.light.updateTransitions(L)}},d.prototype._validate=function(h,m,E,M,R){return R===void 0&&(R={}),(!R||R.validate!==!1)&&Wa(this,h.call(o.validateStyle,o.extend({key:m,style:this.serialize(),value:E,styleSpec:o.styleSpec},M)))},d.prototype._remove=function(){for(var h in this._request&&(this._request.cancel(),this._request=null),this._spriteRequest&&(this._spriteRequest.cancel(),this._spriteRequest=null),o.evented.off("pluginStateChange",this._rtlTextPluginCallback),this._layers)this._layers[h].setEventedParent(null);for(var m in this.sourceCaches)this.sourceCaches[m].clearTiles(),this.sourceCaches[m].setEventedParent(null);this.imageManager.setEventedParent(null),this.setEventedParent(null),this.dispatcher.remove()},d.prototype._clearSource=function(h){this.sourceCaches[h].clearTiles()},d.prototype._reloadSource=function(h){this.sourceCaches[h].resume(),this.sourceCaches[h].reload()},d.prototype._updateSources=function(h){for(var m in this.sourceCaches)this.sourceCaches[m].update(h)},d.prototype._generateCollisionBoxes=function(){for(var h in this.sourceCaches)this._reloadSource(h)},d.prototype._updatePlacement=function(h,m,E,M,R){R===void 0&&(R=!1);for(var L=!1,z=!1,q={},ee=0,Y=this._order;ee<Y.length;ee+=1){var re=this._layers[Y[ee]];if(re.type==="symbol"){if(!q[re.source]){var oe=this.sourceCaches[re.source];q[re.source]=oe.getRenderableIds(!0).map((function(Ge){return oe.getTileByID(Ge)})).sort((function(Ge,$e){return $e.tileID.overscaledZ-Ge.tileID.overscaledZ||(Ge.tileID.isLessThan($e.tileID)?-1:1)}))}var xe=this.crossTileSymbolIndex.addLayer(re,q[re.source],h.center.lng);L=L||xe}}if(this.crossTileSymbolIndex.pruneUnusedLayers(this._order),((R=R||this._layerOrderChanged||E===0)||!this.pauseablePlacement||this.pauseablePlacement.isDone()&&!this.placement.stillRecent(o.browser.now(),h.zoom))&&(this.pauseablePlacement=new _c(h,this._order,R,m,E,M,this.placement),this._layerOrderChanged=!1),this.pauseablePlacement.isDone()?this.placement.setStale():(this.pauseablePlacement.continuePlacement(this._order,this._layers,q),this.pauseablePlacement.isDone()&&(this.placement=this.pauseablePlacement.commit(o.browser.now()),z=!0),L&&this.pauseablePlacement.placement.setStale()),z||L)for(var Oe=0,ge=this._order;Oe<ge.length;Oe+=1){var Re=this._layers[ge[Oe]];Re.type==="symbol"&&this.placement.updateLayerOpacities(Re,q[Re.source])}return!this.pauseablePlacement.isDone()||this.placement.hasTransitions(o.browser.now())},d.prototype._releaseSymbolFadeTiles=function(){for(var h in this.sourceCaches)this.sourceCaches[h].releaseSymbolFadeTiles()},d.prototype.getImages=function(h,m,E){this.imageManager.getImages(m.icons,E),this._updateTilesForChangedImages();var M=this.sourceCaches[m.source];M&&M.setDependencies(m.tileID.key,m.type,m.icons)},d.prototype.getGlyphs=function(h,m,E){this.glyphManager.getGlyphs(m.stacks,E)}
2097,d.prototype.getResource=function(h,m,E){return o.makeRequest(m,E)},d})(o.Evented);Vn.getSourceType=function(c){return st[c]},Vn.setSourceType=function(c,d){st[c]=d},Vn.registerForPluginStateChange=o.registerForPluginStateChange;var hi=o.createLayout([{name:"a_pos",type:"Int16",components:2}]),$a=Bn(`#ifdef GL_ES 2098precision mediump float; 2099#else 2100#if !defined(lowp) 2101#define lowp 2102#endif 2103#if !defined(mediump) 2104#define mediump 2105#endif 2106#if !defined(highp) 2107#define highp 2108#endif 2109#endif`,`#ifdef GL_ES 2110precision highp float; 2111#else 2112#if !defined(lowp) 2113#define lowp 2114#endif 2115#if !defined(mediump) 2116#define mediump 2117#endif 2118#if !defined(highp) 2119#define highp 2120#endif 2121#endif 2122vec2 unpack_float(const float packedValue) {int packedIntValue=int(packedValue);int v0=packedIntValue/256;return vec2(v0,packedIntValue-v0*256);}vec2 unpack_opacity(const float packedOpacity) {int intOpacity=int(packedOpacity)/2;return vec2(float(intOpacity)/127.0,mod(packedOpacity,2.0));}vec4 decode_color(const vec2 encodedColor) {return vec4(unpack_float(encodedColor[0])/255.0,unpack_float(encodedColor[1])/255.0 2123);}float unpack_mix_vec2(const vec2 packedValue,const float t) {return mix(packedValue[0],packedValue[1],t);}vec4 unpack_mix_color(const vec4 packedColors,const float t) {vec4 minColor=decode_color(vec2(packedColors[0],packedColors[1]));vec4 maxColor=decode_color(vec2(packedColors[2],packedColors[3]));return mix(minColor,maxColor,t);}vec2 get_pattern_pos(const vec2 pixel_coord_upper,const vec2 pixel_coord_lower,const vec2 pattern_size,const float tile_units_to_pixels,const vec2 pos) {vec2 offset=mod(mod(mod(pixel_coord_upper,pattern_size)*256.0,pattern_size)*256.0+pixel_coord_lower,pattern_size);return (tile_units_to_pixels*pos+offset)/pattern_size;}`),vc=Bn(`uniform vec4 u_color;uniform float u_opacity;void main() {gl_FragColor=u_color*u_opacity; 2124#ifdef OVERDRAW_INSPECTOR 2125gl_FragColor=vec4(1.0); 2126#endif 2127}`,"attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),Op=Bn(`uniform vec2 u_pattern_tl_a;uniform vec2 u_pattern_br_a;uniform vec2 u_pattern_tl_b;uniform vec2 u_pattern_br_b;uniform vec2 u_texsize;uniform float u_mix;uniform float u_opacity;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(u_pattern_tl_a/u_texsize,u_pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(u_pattern_tl_b/u_texsize,u_pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_mix)*u_opacity; 2128#ifdef OVERDRAW_INSPECTOR 2129gl_FragColor=vec4(1.0); 2130#endif 2131}`,"uniform mat4 u_matrix;uniform vec2 u_pattern_size_a;uniform vec2 u_pattern_size_b;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_scale_a;uniform float u_scale_b;uniform float u_tile_units_to_pixels;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_a*u_pattern_size_a,u_tile_units_to_pixels,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,u_scale_b*u_pattern_size_b,u_tile_units_to_pixels,a_pos);}"),Dp=Bn(`varying vec3 v_data; 2132#pragma mapbox: define highp vec4 color 2133#pragma mapbox: define mediump float radius 2134#pragma mapbox: define lowp float blur 2135#pragma mapbox: define lowp float opacity 2136#pragma mapbox: define highp vec4 stroke_color 2137#pragma mapbox: define mediump float stroke_width 2138#pragma mapbox: define lowp float stroke_opacity 2139void main() { 2140#pragma mapbox: initialize highp vec4 color 2141#pragma mapbox: initialize mediump float radius 2142#pragma mapbox: initialize lowp float blur 2143#pragma mapbox: initialize lowp float opacity 2144#pragma mapbox: initialize highp vec4 stroke_color 2145#pragma mapbox: initialize mediump float stroke_width 2146#pragma mapbox: initialize lowp float stroke_opacity 2147vec2 extrude=v_data.xy;float extrude_length=length(extrude);lowp float antialiasblur=v_data.z;float antialiased_blur=-max(blur,antialiasblur);float opacity_t=smoothstep(0.0,antialiased_blur,extrude_length-1.0);float color_t=stroke_width < 0.01 ? 0.0 : smoothstep(antialiased_blur,0.0,extrude_length-radius
2147/(radius+stroke_width));gl_FragColor=opacity_t*mix(color*opacity,stroke_color*stroke_opacity,color_t); 2148#ifdef OVERDRAW_INSPECTOR 2149gl_FragColor=vec4(1.0); 2150#endif 2151}`,`uniform mat4 u_matrix;uniform bool u_scale_with_map;uniform bool u_pitch_with_map;uniform vec2 u_extrude_scale;uniform lowp float u_device_pixel_ratio;uniform highp float u_camera_to_center_distance;attribute vec2 a_pos;varying vec3 v_data; 2152#pragma mapbox: define highp vec4 color 2153#pragma mapbox: define mediump float radius 2154#pragma mapbox: define lowp float blur 2155#pragma mapbox: define lowp float opacity 2156#pragma mapbox: define highp vec4 stroke_color 2157#pragma mapbox: define mediump float stroke_width 2158#pragma mapbox: define lowp float stroke_opacity 2159void main(void) { 2160#pragma mapbox: initialize highp vec4 color 2161#pragma mapbox: initialize mediump float radius 2162#pragma mapbox: initialize lowp float blur 2163#pragma mapbox: initialize lowp float opacity 2164#pragma mapbox: initialize highp vec4 stroke_color 2165#pragma mapbox: initialize mediump float stroke_width 2166#pragma mapbox: initialize lowp float stroke_opacity 2167vec2 extrude=vec2(mod(a_pos,2.0)*2.0-1.0);vec2 circle_center=floor(a_pos*0.5);if (u_pitch_with_map) {vec2 corner_position=circle_center;if (u_scale_with_map) {corner_position+=extrude*(radius+stroke_width)*u_extrude_scale;} else {vec4 projected_center=u_matrix*vec4(circle_center,0,1);corner_position+=extrude*(radius+stroke_width)*u_extrude_scale*(projected_center.w/u_camera_to_center_distance);}gl_Position=u_matrix*vec4(corner_position,0,1);} else {gl_Position=u_matrix*vec4(circle_center,0,1);if (u_scale_with_map) {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*u_camera_to_center_distance;} else {gl_Position.xy+=extrude*(radius+stroke_width)*u_extrude_scale*gl_Position.w;}}lowp float antialiasblur=1.0/u_device_pixel_ratio/(radius+stroke_width);v_data=vec3(extrude.x,extrude.y,antialiasblur);}`),ff=Bn("void main() {gl_FragColor=vec4(1.0);}","attribute vec2 a_pos;uniform mat4 u_matrix;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);}"),iu=Bn(`uniform highp float u_intensity;varying vec2 v_extrude; 2168#pragma mapbox: define highp float weight 2169#define GAUSS_COEF 0.3989422804014327 2170void main() { 2171#pragma mapbox: initialize highp float weight 2172float d=-0.5*3.0*3.0*dot(v_extrude,v_extrude);float val=weight*u_intensity*GAUSS_COEF*exp(d);gl_FragColor=vec4(val,1.0,1.0,1.0); 2173#ifdef OVERDRAW_INSPECTOR 2174gl_FragColor=vec4(1.0); 2175#endif 2176}`,`uniform mat4 u_matrix;uniform float u_extrude_scale;uniform float u_opacity;uniform float u_intensity;attribute vec2 a_pos;varying vec2 v_extrude; 2177#pragma mapbox: define highp float weight 2178#pragma mapbox: define mediump float radius 2179const highp float ZERO=1.0/255.0/16.0; 2180#define GAUSS_COEF 0.3989422804014327 2181void main(void) { 2182#pragma mapbox: initialize highp float weight 2183#pragma mapbox: initialize mediump float radius 2184vec2 unscaled_extrude=vec2(mod(a_pos,2.0)*2.0-1.0);float S=sqrt(-2.0*log(ZERO/weight/u_intensity/GAUSS_COEF))/3.0;v_extrude=S*unscaled_extrude;vec2 extrude=v_extrude*radius*u_extrude_scale;vec4 pos=vec4(floor(a_pos*0.5)+extrude,0,1);gl_Position=u_matrix*pos;}`),Bl=Bn(`uniform sampler2D u_image;uniform sampler2D u_color_ramp;uniform float u_opacity;varying vec2 v_pos;void main() {float t=texture2D(u_image,v_pos).r;vec4 color=texture2D(u_color_ramp,vec2(t,0.5));gl_FragColor=color*u_opacity; 2185#ifdef OVERDRAW_INSPECTOR 2186gl_FragColor=vec4(0.0); 2187#endif 2188}`,"uniform mat4 u_matrix;uniform vec2 u_world;attribute vec2 a_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos*u_world,0,1);v_pos.x=a_pos.x;v_pos.y=1.0-a_pos.y;}"),Xo=Bn("varying float v_placed;varying float v_notUsed;void main() {float alpha=0.5;gl_FragColor=vec4(1.0,0.0,0.0,1.0)*alpha;if (v_placed > 0.5) {gl_FragColor=vec4(0.0,0.0,1.0,0.5)*alpha;}if (v_notUsed > 0.5) {gl_FragColor*=.1;}}","attribute vec2 a_pos;attribute vec2 a_anchor_pos;attribute vec2 a_extrude;attribute vec2 a_placed;attribute vec2 a_shift;uniform mat4 u_matrix;uniform vec2 u_extrude_scale;uniform float u_camera_to_center_distance;varying float v_placed;varying float v_notUsed;void main() {vec4 projectedPoint=u_matrix*vec4(a_anchor_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);gl_Position=u_matrix*vec4(a_pos,0.0,1.0);gl_Position.xy+=(a_extrude+a_shift)*u_extrude_scale*gl_Position.w*collision_perspective_ratio;v_placed=a_placed.x;v_notUsed=a_placed.y;}"),hf=Bn("varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;void main() {float alpha=0.5*min(v_perspective_ratio,1.0);float stroke_radius=0.9*max(v_perspective_ratio,1.0);float distance_to_center=length(v_extrude);float distance_to_edge=abs(distance_to_center-v_radius);float opacity_t=smoothstep(-stroke_radius,0.0,-distance_to_edge);vec4 color=mix(vec4(0.0,0.0,1.0,0.5),vec4(1.0,0.0,0.0,1.0),v_collision);gl_FragColor=color*alpha*opacity_t;}","attribute vec2 a_pos;attribute float a_radius;attribute vec2 a_flags;uniform mat4 u_matrix;uniform mat4 u_inv_matrix;uniform vec2 u_viewport_size;uniform float u_camera_to_center_distance;varying float v_radius;varying vec2 v_extrude;varying float v_perspective_ratio;varying float v_collision;vec3 toTilePosition(vec2 screenPos) {vec4 rayStart=u_inv_matrix*vec4(screenPos,-1.0,1.0);vec4 rayEnd =u_inv_matrix*vec4(screenPos, 1.0,1.0);rayStart.xyz/=rayStart.w;rayEnd.xyz /=rayEnd.w;highp float t=(0.0-rayStart.z)/(rayEnd.z-rayStart.z);return mix(rayStart.xyz,rayEnd.xyz,t);}void main() {vec2 quadCenterPos=a_pos;float radius=a_radius;float collision=a_flags.x;float vertexIdx=a_flags.y;vec2 quadVertexOffset=vec2(mix(-1.0,1.0,float(vertexIdx >=2.0)),mix(-1.0,1.0,float(vertexIdx >=1.0 && vertexIdx <=2.0)));vec2 quadVertexExtent=quadVertexOffset*radius;vec3 tilePos=toTilePosition(quadCenterPos);vec4 clipPos=u_matrix*vec4(tilePos,1.0);highp float camera_to_anchor_distance=clipPos.w;highp float collision_perspective_ratio=clamp(0.5+0.5*(u_camera_to_center_distance/camera_to_anchor_distance),0.0,4.0);float padding_factor=1.2;v_radius=radius;v_extrude=quadVertexExtent*padding_factor;v_perspective_ratio=collision_perspective_ratio;v_collision=collision;gl_Position=vec4(clipPos.xyz/clipPos.w,1.0)+vec4(quadVertexExtent*padding_factor/u_viewport_size*2.0,0.0,0.0);}"),df=Bn("uniform highp vec4 u_color;uniform sampler2D u_overlay;varying vec2 v_uv;void main() {vec4 overlay_color=texture2D(u_overlay,v_uv);gl_FragColor=mix(u_color,overlay_color,overlay_color.a);}","attribute vec2 a_pos;varying vec2 v_uv;uniform mat4 u_matrix;uniform float u_overlay_scale;void main() {v_uv=a_pos/8192.0;gl_Position=u_matrix*vec4(a_pos*u_overlay_scale,0,1);}"),su=Bn(`#pragma mapbox: define highp vec4 color 2189#pragma mapbox: define lowp float opacity 2190void main() { 2191#pragma mapbox: initialize highp vec4 color 2192#pragma mapbox: initialize lowp float opacity 2193gl_FragColor=color*opacity; 2194#ifdef OVERDRAW_INSPECTOR 2195gl_FragColor=vec4(1.0); 2196#endif 2197}`,`attribute vec2 a_pos;uniform mat4 u_matrix; 2198#pragma mapbox: define highp vec4 color 2199#pragma mapbox: define lowp float opacity 2200void main() { 2201#pragma mapbox: initialize highp vec4 color 2202#pragma mapbox: initialize lowp float opacity 2203gl_Position=u_matrix*vec4(a_pos,0,1);}`),bo=Bn(`varying vec2 v_pos; 2204#pragma mapbox: define highp vec4 outline_color 2205#pragma mapbox: define lowp float opacity 2206void main() { 2207#pragma mapbox: initialize highp vec4 outline_color 2208#pragma mapbox: initialize lowp float opacity 2209float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=outline_color*(alpha*opacity); 2210#ifdef OVERDRAW_INSPECTOR 2211gl_FragColor=vec4(1.0); 2212#endif 2213}`,`attribute vec2 a_pos;uniform mat4 u_matrix;uniform vec2 u_world;varying vec2 v_pos; 2214#pragma mapbox: define highp vec4 outline_color 2215#pragma mapbox: define lowp float opacity 2216void main() { 2217#pragma mapbox: initialize highp vec4 outline_color 2218#pragma mapbox: initialize lowp float opacity 2219gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),eo=Bn(`uniform vec2 u_texsize;uniform sampler2D u_image;uniform float u_fade;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; 2220#pragma mapbox: define lowp float opacity 2221#pragma mapbox: define lowp vec4 pattern_from 2222#pragma mapbox: define lowp vec4 pattern_to 2223void main() { 2224#pragma mapbox: initialize lowp float opacity 2225#pragma mapbox: initialize mediump vec4 pattern_from 2226#pragma mapbox: initialize mediump vec4 pattern_to 2227vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);float dist=length(v_pos-gl_FragCoord.xy);float alpha=1.0-smoothstep(0.0,1.0,dist);gl_FragColor=mix(color1,color2,u_fade)*alpha*opacity; 2228#ifdef OVERDRAW_INSPECTOR 2229gl_FragColor=vec4(1.0); 2230#endif 2231}`,`uniform mat4 u_matrix;uniform vec2 u_world;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec2 v_pos; 2232#pragma mapbox: define lowp float opacity 2233#pragma mapbox: define lowp vec4 pattern_from 2234#pragma mapbox: define lowp vec4 pattern_to 2235#pragma mapbox: define lowp float pixel_ratio_from 2236#pragma mapbox: define lowp float pixel_ratio_to 2237void main() { 2238#pragma mapbox: initialize lowp float opacity 2239#pragma mapbox: initialize mediump vec4 pattern_from 2240#pragma mapbox: initialize mediump vec4 pattern_to 2241#pragma mapbox: initialize lowp float pixel_ratio_from 2242#pragma mapbox: initialize lowp float pixel_ratio_to 2243vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;gl_Position=u_matrix*vec4(a_pos,0,1);vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,a_pos);v_pos=(gl_Position.xy/gl_Position.w+1.0)/2.0*u_world;}`),pf=Bn(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b; 2244#pragma mapbox: define lowp float opacity 2245#pragma mapbox: define lowp vec4 pattern_from 2246#pragma mapbox: define lowp vec4 pattern_to 2247void main() { 2248#pragma mapbox: initialize lowp float opacity 2249#pragma mapbox: initialize mediump vec4 pattern_from 2250#pragma mapbox: initialize mediump vec4 pattern_to 2251vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);gl_FragColor=mix(color1,color2,u_fade)*opacity; 2252#ifdef OVERDRAW_INSPECTOR 2253gl_FragColor=vec4(1.0); 2254#endif 2255}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform vec3 u_scale;attribute vec2 a_pos;varying vec2 v_pos_a;varying vec2 v_pos_b; 2256#pragma mapbox: define lowp float opacity 2257#pragma mapbox: define lowp vec4 pattern_from 2258#pragma mapbox: define lowp vec4 pattern_to 2259#pragma mapbox: define lowp float pixel_ratio_from 2260#pragma mapbox: define lowp float pixel_ratio_to 2261void main() { 2262#pragma mapbox: initialize lowp float opacity 2263#pragma mapbox: initialize mediump vec4 pattern_from 2264#pragma mapbox: initialize mediump vec4 pattern_to 2265#pragma mapbox: initialize lowp float pixel_ratio_from 2266#pragma mapbox: initialize lowp float pixel_ratio_to 2267vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;gl_Position=u_matrix*vec4(a_pos,0,1);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileZoomRatio,a_pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileZoomRatio,a_pos);}`),zi=Bn(`varying vec4 v_color;void main() {gl_FragColor=v_color; 2268#ifdef OVERDRAW_INSPECTOR 2269gl_FragColor=vec4(1.0); 2270#endif 2271}`,`uniform mat4 u_matrix;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;uniform float u_vertical_gradient;uniform lowp float u_opacity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec4 v_color; 2272#pragma mapbox: define highp float base 2273#pragma mapbox: define highp float height 2274#pragma mapbox: define highp vec4 color 2275void main() { 2276#pragma mapbox: initialize highp float base 2277#pragma mapbox: initialize highp float height 2278#pragma mapbox: initialize highp vec4 color 2279vec3 normal=a_normal_ed.xyz;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);gl_Position=u_matrix*vec4(a_pos,t > 0.0 ? height : base,1);float colorvalue=color.r*0.2126+color.g*0.7152+color.b*0.0722;v_color=vec4(0.0,0.0,0.0,1.0);vec4 ambientlight=vec4(0.03,0.03,0.03,1.0);color+=ambientlight;float directional=clamp(dot(normal/16384.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((1.0-colorvalue+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_color.r+=clamp(color.r*directional*u_lightcolor.r,mix(0.0,0.3,1.0-u_lightcolor.r),1.0);v_color.g+=clamp(color.g*directional*u_lightcolor.g,mix(0.0,0.3,1.0-u_lightcolor.g),1.0);v_color.b+=clamp(color.b*directional*u_lightcolor.b,mix(0.0,0.3,1.0-u_lightcolor.b),1.0);v_color*=u_opacity;}`),bc=Bn(`uniform vec2 u_texsize;uniform float u_fade;uniform sampler2D u_image;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; 2280#pragma mapbox: define lowp float base 2281#pragma mapbox: define lowp float height 2282#pragma mapbox: define lowp vec4 pattern_from 2283#pragma mapbox: define lowp vec4 pattern_to 2284#pragma mapbox: define lowp float pixel_ratio_from 2285#pragma mapbox: define lowp float pixel_ratio_to 2286void main() { 2287#pragma mapbox: initialize lowp float base 2288#pragma mapbox: initialize lowp float height 2289#pragma mapbox: initialize mediump vec4 pattern_from 2290#pragma mapbox: initialize mediump vec4 pattern_to 2291#pragma mapbox: initialize lowp float pixel_ratio_from 2292#pragma mapbox: initialize lowp float pixel_ratio_to 2293vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;vec2 imagecoord=mod(v_pos_a,1.0);vec2 pos=mix(pattern_tl_a/u_texsize,pattern_br_a/u_texsize,imagecoord);vec4 color1=texture2D(u_image,pos);vec2 imagecoord_b=mod(v_pos_b,1.0);vec2 pos2=mix(pattern_tl_b/u_texsize,pattern_br_b/u_texsize,imagecoord_b);vec4 color2=texture2D(u_image,pos2);vec4 mixedColor=mix(color1,color2,u_fade);gl_FragColor=mixedColor*v_lighting; 2294#ifdef OVERDRAW_INSPECTOR 2295gl_FragColor=vec4(1.0); 2296#endif 2297}`,`uniform mat4 u_matrix;uniform vec2 u_pixel_coord_upper;uniform vec2 u_pixel_coord_lower;uniform float u_height_factor;uniform vec3 u_scale;uniform float u_vertical_gradient;uniform lowp float u_opacity;uniform vec3 u_lightcolor;uniform lowp vec3 u_lightpos;uniform lowp float u_lightintensity;attribute vec2 a_pos;attribute vec4 a_normal_ed;varying vec2 v_pos_a;varying vec2 v_pos_b;varying vec4 v_lighting; 2298#pragma mapbox: define lowp float base 2299#pragma mapbox: define lowp float height 2300#pragma mapbox: define lowp vec4 pattern_from 2301#pragma mapbox: define lowp vec4 pattern_to 2302#pragma mapbox: define lowp float pixel_ratio_from 2303#pragma mapbox: define lowp float pixel_ratio_to 2304void main() { 2305#pragma mapbox: initialize lowp float base 2306#pragma mapbox: initialize lowp float height 2307#pragma mapbox: initialize mediump vec4 pat
2307tern_from 2308#pragma mapbox: initialize mediump vec4 pattern_to 2309#pragma mapbox: initialize lowp float pixel_ratio_from 2310#pragma mapbox: initialize lowp float pixel_ratio_to 2311vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec3 normal=a_normal_ed.xyz;float edgedistance=a_normal_ed.w;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;base=max(0.0,base);height=max(0.0,height);float t=mod(normal.x,2.0);float z=t > 0.0 ? height : base;gl_Position=u_matrix*vec4(a_pos,z,1);vec2 pos=normal.x==1.0 && normal.y==0.0 && normal.z==16384.0 2312? a_pos 2313: vec2(edgedistance,z*u_height_factor);v_pos_a=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,fromScale*display_size_a,tileRatio,pos);v_pos_b=get_pattern_pos(u_pixel_coord_upper,u_pixel_coord_lower,toScale*display_size_b,tileRatio,pos);v_lighting=vec4(0.0,0.0,0.0,1.0);float directional=clamp(dot(normal/16383.0,u_lightpos),0.0,1.0);directional=mix((1.0-u_lightintensity),max((0.5+u_lightintensity),1.0),directional);if (normal.y !=0.0) {directional*=((1.0-u_vertical_gradient)+(u_vertical_gradient*clamp((t+base)*pow(height/150.0,0.5),mix(0.7,0.98,1.0-u_lightintensity),1.0)));}v_lighting.rgb+=clamp(directional*u_lightcolor,mix(vec3(0.0),vec3(0.3),1.0-u_lightcolor),vec3(1.0));v_lighting*=u_opacity;}`),xa=Bn(`#ifdef GL_ES 2314precision highp float; 2315#endif 2316uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_dimension;uniform float u_zoom;uniform vec4 u_unpack;float getElevation(vec2 coord,float bias) {vec4 data=texture2D(u_image,coord)*255.0;data.a=-1.0;return dot(data,u_unpack)/4.0;}void main() {vec2 epsilon=1.0/u_dimension;float a=getElevation(v_pos+vec2(-epsilon.x,-epsilon.y),0.0);float b=getElevation(v_pos+vec2(0,-epsilon.y),0.0);float c=getElevation(v_pos+vec2(epsilon.x,-epsilon.y),0.0);float d=getElevation(v_pos+vec2(-epsilon.x,0),0.0);float e=getElevation(v_pos,0.0);float f=getElevation(v_pos+vec2(epsilon.x,0),0.0);float g=getElevation(v_pos+vec2(-epsilon.x,epsilon.y),0.0);float h=getElevation(v_pos+vec2(0,epsilon.y),0.0);float i=getElevation(v_pos+vec2(epsilon.x,epsilon.y),0.0);float exaggerationFactor=u_zoom < 2.0 ? 0.4 : u_zoom < 4.5 ? 0.35 : 0.3;float exaggeration=u_zoom < 15.0 ? (u_zoom-15.0)*exaggerationFactor : 0.0;vec2 deriv=vec2((c+f+f+i)-(a+d+d+g),(g+h+h+i)-(a+b+b+c))/pow(2.0,exaggeration+(19.2562-u_zoom));gl_FragColor=clamp(vec4(deriv.x/2.0+0.5,deriv.y/2.0+0.5,1.0,1.0),0.0,1.0); 2317#ifdef OVERDRAW_INSPECTOR 2318gl_FragColor=vec4(1.0); 2319#endif 2320}`,"uniform mat4 u_matrix;uniform vec2 u_dimension;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);highp vec2 epsilon=1.0/u_dimension;float scale=(u_dimension.x-2.0)/u_dimension.x;v_pos=(a_texture_pos/8192.0)*scale+epsilon;}"),wa=Bn(`uniform sampler2D u_image;varying vec2 v_pos;uniform vec2 u_latrange;uniform vec2 u_light;uniform vec4 u_shadow;uniform vec4 u_highlight;uniform vec4 u_accent; 2321#define PI 3.141592653589793 2322void main() {vec4 pixel=texture2D(u_image,v_pos);vec2 deriv=((pixel.rg*2.0)-1.0);float scaleFactor=cos(radians((u_latrange[0]-u_latrange[1])*(1.0-v_pos.y)+u_latrange[1]));float slope=atan(1.25*length(deriv)/scaleFactor);float aspect=deriv.x !=0.0 ? atan(deriv.y,-deriv.x) : PI/2.0*(deriv.y > 0.0 ? 1.0 :-1.0);float intensity=u_light.x;float azimuth=u_light.y+PI;float base=1.875-intensity*1.75;float maxValue=0.5*PI;float scaledSlope=intensity !=0.5 ? ((pow(base,slope)-1.0)/(pow(base,maxValue)-1.0))*maxValue : slope;float accent=cos(scaledSlope);vec4 accent_color=(1.0-accent)*u_accent*clamp(intensity*2.0,0.0,1.0);float shade=abs(mod((aspect+azimuth)/PI+0.5,2.0)-1.0);vec4 shade_color=mix(u_shadow,u_highlight,shade)*sin(scaledSlope)*clamp(intensity*2.0,0.0,1.0);gl_FragColor=accent_color*(1.0-shade_color.a)+shade_color; 2323#ifdef OVERDRAW_INSPECTOR 2324gl_FragColor=vec4(1.0); 2325#endif 2326}`,"uniform mat4 u_matrix;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos=a_texture_pos/8192.0;}"),Ta=Bn(`uniform lowp float u_device_pixel_ratio;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale; 2327#pragma mapbox: define highp vec4 color 2328#pragma mapbox: define lowp float blur 2329#pragma mapbox: define lowp float opacity 2330void main() { 2331#pragma mapbox: initialize highp vec4 color 2332#pragma mapbox: initialize lowp float blur 2333#pragma mapbox: initialize lowp float opacity 2334float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);gl_FragColor=color*(alpha*opacity); 2335#ifdef OVERDRAW_INSPECTOR 2336gl_FragColor=vec4(1.0); 2337#endif 2338}`,` 2339#define scale 0.015873016 2340attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform vec2 u_units_to_pixels;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp float v_linesofar; 2341#pragma mapbox: define highp vec4 color 2342#pragma mapbox: define lowp float blur 2343#pragma mapbox: define lowp float opacity 2344#pragma mapbox: define mediump float gapwidth 2345#pragma mapbox: define lowp float offset 2346#pragma mapbox: define mediump float width 2347void main() { 2348#pragma mapbox: initialize highp vec4 color 2349#pragma mapbox: initialize lowp float blur 2350#pragma mapbox: initialize lowp float opacity 2351#pragma mapbox: initialize mediump float gapwidth 2352#pragma mapbox: initialize lowp float offset 2353#pragma mapbox: initialize mediump float width 2354float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;v_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*2.0;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`),Xa=Bn(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;varying vec2 v_width2;varying vec2 v_normal;varying float v_gamma_scale;varying highp vec2 v_uv; 2355#pragma mapbox: define lowp float blur 2356#pragma mapbox: define lowp float opacity 2357void main() { 2358#pragma mapbox: initialize lowp float blur 2359#pragma mapbox: initialize lowp float opacity 2360float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);vec4 color=texture2D(u_image,v_uv);gl_FragColor=color*(alpha*opacity); 2361#ifdef OVERDRAW_INSPECTOR 2362gl_FragColor=vec4(1.0); 2363#endif 2364}`,` 2365#define scale 0.015873016 2366attribute vec2 a_pos_normal;attribute vec4 a_data;attribute float a_uv_x;attribute float a_split_index;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_units_to_pixels;uniform float u_image_height;varying vec2 v_normal;varying vec2 v_width2;varying float v_gamma_scale;varying highp vec2 v_uv; 2367#pragma mapbox: define lowp float blur 2368#pragma mapbox: define lowp float opacity 2369#pragma mapbox: define mediump float gapwidth 2370#pragma mapbox: define lowp float offset 2371#pragma mapbox: define mediump float width 2372void main() { 2373#pragma mapbox: initialize lowp float blur 2374#pragma mapbox: initialize lowp float opacity 2375#pragma mapbox: initialize mediump float gapwidth 2376#pragma mapbox: initialize lowp float offset 2377#pragma mapbox: initialize mediump float width 2378float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;highp float texel_height=1.0/u_image_height;highp float half_texel_height=0.5*texel_height;v_uv=vec2(a_uv_x,a_split_index*texel_height-half_texel_height);vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_width2=vec2(outset,inset);}`),Ea=Bn(`uniform lowp float u_device_pixel_ratio;uniform vec2 u_texsize;uniform float u_fade;uniform mediump vec3 u_scale;uniform sampler2D u_image;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; 2379#pragma mapbox: define lowp vec4 pattern_from 2380#pragma mapbox: define lowp vec4 pattern_to 2381#pragma mapbox: define lowp float pixel_ratio_from 2382#pragma mapbox: define lowp float pixel_ratio_to 2383#pragma mapbox: define lowp float blur 2384#pragma mapbox: define lowp float opacity 2385void main() { 2386#pragma mapbox: initialize mediump vec4 pattern_from 2387#pragma mapbox: initialize mediump vec4 pattern_to 2388#pragma mapbox: initialize lowp float pixel_ratio_from 2389#pragma mapbox: initialize lowp float pixel_ratio_to 2390#pragma mapbox: initialize lowp float blur 2391#pragma mapbox: initialize lowp float opacity 2392vec2 pattern_tl_a=pattern_from.xy;vec2 pattern_br_a=pattern_from.zw;vec2 pattern_tl_b=pattern_to.xy;vec2 pattern_br_b=pattern_to.zw;float tileZoomRatio=u_scale.x;float fromScale=u_scale.y;float toScale=u_scale.z;vec2 display_size_a=(pattern_br_a-pattern_tl_a)/pixel_ratio_from;vec2 display_size_b=(pattern_br_b-pattern_tl_b)/pixel_ratio_to;vec2 pattern_size_a=vec2(display_size_a.x*fromScale/tileZoomRatio,display_size_a.y);vec2 pattern_size_b=vec2(display_size_b.x*toScale/tileZoomRatio,display_size_b.y);float aspect_a=display_size_a.y/v_width;float aspect_b=display_size_b.y/v_width;float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float x_a=mod(v_linesofar/pattern_size_a.x*aspect_a,1.0);float x_b=mod(v_linesofar/pattern_size_b.x*aspect_b,1.0);float y=0.5*v_normal.y+0.5;vec2 texel_size=1.0/u_texsize;vec2 pos_a=mix(pattern_tl_a*texel_size-texel_size,pattern_br_a*texel_size+texel_size,vec2(x_a,y));vec2 pos_b=mix(pattern_tl_b*texel_size-texel_size,pattern_br_b*texel_size+texel_size,vec2(x_b,y));vec4 color=mix(texture2D(u_image,pos_a),texture2D(u_image,pos_b),u_fade);gl_FragColor=color*alpha*opacity; 2393#ifdef OVERDRAW_INSPECTOR 2394gl_FragColor=vec4(1.0); 2395#endif 2396}`,` 2397#define scale 0.015873016 2398#define LINE_DISTANCE_SCALE 2.0 2399attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform vec2 u_units_to_pixels;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;varying vec2 v_normal;varying vec2 v_width2;varying float v_linesofar;varying float v_gamma_scale;varying float v_width; 2400#pragma mapbox: define lowp float blur 2401#pragma mapbox: define lowp float opacity 2402#pragma mapbox: define lowp float offset 2403#pragma mapbox: define mediump float gapwidth 2404#pragma mapbox: define mediump float width 2405#pragma mapbox: define lowp float floorwidth 2406#pragma mapbox: define lowp vec4 pattern_from 2407#pragma mapbox: define lowp vec4 pattern_to 2408#pragma mapbox: define lowp float pixel_ratio_from 2409#pragma mapbox: define lowp float pixel_ratio_to 2410void main() { 2411#pragma mapbox: initialize lowp float blur 2412#pragma mapbox: initialize lowp float opacity 2413#pragma mapbox: initialize lowp float offset 2414#pragma mapbox: initialize mediump float gapwidth 2415#pragma mapbox: initialize mediump float width 2416#pragma mapbox: initialize lowp float floorwidth 2417#pragma mapbox: initialize mediump vec4 pattern_from 2418#pragma mapbox: initialize mediump vec4 pattern_to 2419#pragma mapbox: initialize lowp float pixel_ratio_from 2420#pragma mapbox: initialize lowp float pixel_ratio_to 2421float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_linesofar=a_linesofar;v_width2=vec2(outset,inset);v_width=floorwidth;}`),qa=Bn(`uniform lowp float u_device_pixel_ratio;uniform sampler2D u_image;uniform float u_sdfgamma;
2421uniform float u_mix;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; 2422#pragma mapbox: define highp vec4 color 2423#pragma mapbox: define lowp float blur 2424#pragma mapbox: define lowp float opacity 2425#pragma mapbox: define mediump float width 2426#pragma mapbox: define lowp float floorwidth 2427void main() { 2428#pragma mapbox: initialize highp vec4 color 2429#pragma mapbox: initialize lowp float blur 2430#pragma mapbox: initialize lowp float opacity 2431#pragma mapbox: initialize mediump float width 2432#pragma mapbox: initialize lowp float floorwidth 2433float dist=length(v_normal)*v_width2.s;float blur2=(blur+1.0/u_device_pixel_ratio)*v_gamma_scale;float alpha=clamp(min(dist-(v_width2.t-blur2),v_width2.s-dist)/blur2,0.0,1.0);float sdfdist_a=texture2D(u_image,v_tex_a).a;float sdfdist_b=texture2D(u_image,v_tex_b).a;float sdfdist=mix(sdfdist_a,sdfdist_b,u_mix);alpha*=smoothstep(0.5-u_sdfgamma/floorwidth,0.5+u_sdfgamma/floorwidth,sdfdist);gl_FragColor=color*(alpha*opacity); 2434#ifdef OVERDRAW_INSPECTOR 2435gl_FragColor=vec4(1.0); 2436#endif 2437}`,` 2438#define scale 0.015873016 2439#define LINE_DISTANCE_SCALE 2.0 2440attribute vec2 a_pos_normal;attribute vec4 a_data;uniform mat4 u_matrix;uniform mediump float u_ratio;uniform lowp float u_device_pixel_ratio;uniform vec2 u_patternscale_a;uniform float u_tex_y_a;uniform vec2 u_patternscale_b;uniform float u_tex_y_b;uniform vec2 u_units_to_pixels;varying vec2 v_normal;varying vec2 v_width2;varying vec2 v_tex_a;varying vec2 v_tex_b;varying float v_gamma_scale; 2441#pragma mapbox: define highp vec4 color 2442#pragma mapbox: define lowp float blur 2443#pragma mapbox: define lowp float opacity 2444#pragma mapbox: define mediump float gapwidth 2445#pragma mapbox: define lowp float offset 2446#pragma mapbox: define mediump float width 2447#pragma mapbox: define lowp float floorwidth 2448void main() { 2449#pragma mapbox: initialize highp vec4 color 2450#pragma mapbox: initialize lowp float blur 2451#pragma mapbox: initialize lowp float opacity 2452#pragma mapbox: initialize mediump float gapwidth 2453#pragma mapbox: initialize lowp float offset 2454#pragma mapbox: initialize mediump float width 2455#pragma mapbox: initialize lowp float floorwidth 2456float ANTIALIASING=1.0/u_device_pixel_ratio/2.0;vec2 a_extrude=a_data.xy-128.0;float a_direction=mod(a_data.z,4.0)-1.0;float a_linesofar=(floor(a_data.z/4.0)+a_data.w*64.0)*LINE_DISTANCE_SCALE;vec2 pos=floor(a_pos_normal*0.5);mediump vec2 normal=a_pos_normal-2.0*pos;normal.y=normal.y*2.0-1.0;v_normal=normal;gapwidth=gapwidth/2.0;float halfwidth=width/2.0;offset=-1.0*offset;float inset=gapwidth+(gapwidth > 0.0 ? ANTIALIASING : 0.0);float outset=gapwidth+halfwidth*(gapwidth > 0.0 ? 2.0 : 1.0)+(halfwidth==0.0 ? 0.0 : ANTIALIASING);mediump vec2 dist=outset*a_extrude*scale;mediump float u=0.5*a_direction;mediump float t=1.0-abs(u);mediump vec2 offset2=offset*a_extrude*scale*normal.y*mat2(t,-u,u,t);vec4 projected_extrude=u_matrix*vec4(dist/u_ratio,0.0,0.0);gl_Position=u_matrix*vec4(pos+offset2/u_ratio,0.0,1.0)+projected_extrude;float extrude_length_without_perspective=length(dist);float extrude_length_with_perspective=length(projected_extrude.xy/gl_Position.w*u_units_to_pixels);v_gamma_scale=extrude_length_without_perspective/extrude_length_with_perspective;v_tex_a=vec2(a_linesofar*u_patternscale_a.x/floorwidth,normal.y*u_patternscale_a.y+u_tex_y_a);v_tex_b=vec2(a_linesofar*u_patternscale_b.x/floorwidth,normal.y*u_patternscale_b.y+u_tex_y_b);v_width2=vec2(outset,inset);}`),Ja=Bn(`uniform float u_fade_t;uniform float u_opacity;uniform sampler2D u_image0;uniform sampler2D u_image1;varying vec2 v_pos0;varying vec2 v_pos1;uniform float u_brightness_low;uniform float u_brightness_high;uniform float u_saturation_factor;uniform float u_contrast_factor;uniform vec3 u_spin_weights;void main() {vec4 color0=texture2D(u_image0,v_pos0);vec4 color1=texture2D(u_image1,v_pos1);if (color0.a > 0.0) {color0.rgb=color0.rgb/color0.a;}if (color1.a > 0.0) {color1.rgb=color1.rgb/color1.a;}vec4 color=mix(color0,color1,u_fade_t);color.a*=u_opacity;vec3 rgb=color.rgb;rgb=vec3(dot(rgb,u_spin_weights.xyz),dot(rgb,u_spin_weights.zxy),dot(rgb,u_spin_weights.yzx));float average=(color.r+color.g+color.b)/3.0;rgb+=(average-rgb)*u_saturation_factor;rgb=(rgb-0.5)*u_contrast_factor+0.5;vec3 u_high_vec=vec3(u_brightness_low,u_brightness_low,u_brightness_low);vec3 u_low_vec=vec3(u_brightness_high,u_brightness_high,u_brightness_high);gl_FragColor=vec4(mix(u_high_vec,u_low_vec,rgb)*color.a,color.a); 2457#ifdef OVERDRAW_INSPECTOR 2458gl_FragColor=vec4(1.0); 2459#endif 2460}`,"uniform mat4 u_matrix;uniform vec2 u_tl_parent;uniform float u_scale_parent;uniform float u_buffer_scale;attribute vec2 a_pos;attribute vec2 a_texture_pos;varying vec2 v_pos0;varying vec2 v_pos1;void main() {gl_Position=u_matrix*vec4(a_pos,0,1);v_pos0=(((a_texture_pos/8192.0)-0.5)/u_buffer_scale )+0.5;v_pos1=(v_pos0*u_scale_parent)+u_tl_parent;}"),Ca=Bn(`uniform sampler2D u_texture;varying vec2 v_tex;varying float v_fade_opacity; 2461#pragma mapbox: define lowp float opacity 2462void main() { 2463#pragma mapbox: initialize lowp float opacity 2464lowp float alpha=opacity*v_fade_opacity;gl_FragColor=texture2D(u_texture,v_tex)*alpha; 2465#ifdef OVERDRAW_INSPECTOR 2466gl_FragColor=vec4(1.0); 2467#endif 2468}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform highp float u_camera_to_center_distance;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform float u_fade_change;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform vec2 u_texsize;varying vec2 v_tex;varying float v_fade_opacity; 2469#pragma mapbox: define lowp float opacity 2470void main() { 2471#pragma mapbox: initialize lowp float opacity 2472vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;vec2 a_minFontScale=a_pixeloffset.zw/256.0;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? 2473camera_to_anchor_distance/u_camera_to_center_distance : 2474u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*max(a_minFontScale,fontScale)+a_pxoffset/16.0),0.0,1.0);v_tex=a_tex/u_texsize;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;v_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));}`),Th=Bn(`#define SDF_PX 8.0 2475uniform bool u_is_halo;uniform sampler2D u_texture;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;uniform bool u_is_text;varying vec2 v_data0;varying vec3 v_data1; 2476#pragma mapbox: define highp vec4 fill_color 2477#pragma mapbox: define highp vec4 halo_color 2478#pragma mapbox: define lowp float opacity 2479#pragma mapbox: define lowp float halo_width 2480#pragma mapbox: define lowp float halo_blur 2481void main() { 2482#pragma mapbox: initialize highp vec4 fill_color 2483#pragma mapbox: initialize highp vec4 halo_color 2484#pragma mapbox: initialize lowp float opacity 2485#pragma mapbox: initialize lowp float halo_width 2486#pragma mapbox: initialize lowp float halo_blur 2487float EDGE_GAMMA=0.105/u_device_pixel_ratio;vec2 tex=v_data0.xy;float gamma_scale=v_data1.x;float size=v_data1.y;float fade_opacity=v_data1[2];float fontScale=u_is_text ? size/24.0 : size;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); 2488#ifdef OVERDRAW_INSPECTOR 2489gl_FragColor=vec4(1.0); 2490#endif 2491}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec4 a_pixeloffset;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;varying vec2 v_data0;varying vec3 v_data1; 2492#pragma mapbox: define highp vec4 fill_color 2493#pragma mapbox: define highp vec4 halo_color 2494#pragma mapbox: define lowp float opacity 2495#pragma mapbox: define lowp float halo_width 2496#pragma mapbox: define lowp float halo_blur 2497void main() { 2498#pragma mapbox: initialize highp vec4 fill_color 2499#pragma mapbox: initialize highp vec4 halo_color 2500#pragma mapbox: initialize lowp float opacity 2501#pragma mapbox: initialize lowp float halo_width 2502#pragma mapbox: initialize lowp float halo_blur 2503vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);vec2 a_pxoffset=a_pixeloffset.xy;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? 2504camera_to_anchor_distance/u_camera_to_center_distance : 2505u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=u_is_text ? size/24.0 : size;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale+a_pxoffset),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0=a_tex/u_texsize;v_data1=vec3(gamma_scale,size,interpolated_fade_opacity);}`),Eh=Bn(`#define SDF_PX 8.0 2506#define SDF 1.0 2507#define ICON 0.0 2508uniform bool u_is_halo;uniform sampler2D u_texture;uniform sampler2D u_texture_icon;uniform highp float u_gamma_scale;uniform lowp float u_device_pixel_ratio;varying vec4 v_data0;varying vec4 v_data1; 2509#pragma mapbox: define highp vec4 fill_color 2510#pragma mapbox: define highp vec4 halo_color 2511#pragma mapbox: define lowp float opacity 2512#pragma mapbox: define lowp float halo_width 2513#pragma mapbox: define lowp float halo_blur 2514void main() { 2515#pragma mapbox: initialize highp vec4 fill_color 2516#pragma mapbox: initialize highp vec4 halo_color 2517#pragma mapbox: initialize lowp float opacity 2518#pragma mapbox: initialize lowp float halo_width 2519#pragma mapbox: initialize lowp float halo_blur 2520float fade_opacity=v_data1[2];if (v_data1.w==ICON) {vec2 tex_icon=v_data0.zw;lowp float alpha=opacity*fade_opacity;
2520gl_FragColor=texture2D(u_texture_icon,tex_icon)*alpha; 2521#ifdef OVERDRAW_INSPECTOR 2522gl_FragColor=vec4(1.0); 2523#endif 2524return;}vec2 tex=v_data0.xy;float EDGE_GAMMA=0.105/u_device_pixel_ratio;float gamma_scale=v_data1.x;float size=v_data1.y;float fontScale=size/24.0;lowp vec4 color=fill_color;highp float gamma=EDGE_GAMMA/(fontScale*u_gamma_scale);lowp float buff=(256.0-64.0)/256.0;if (u_is_halo) {color=halo_color;gamma=(halo_blur*1.19/SDF_PX+EDGE_GAMMA)/(fontScale*u_gamma_scale);buff=(6.0-halo_width/fontScale)/SDF_PX;}lowp float dist=texture2D(u_texture,tex).a;highp float gamma_scaled=gamma*gamma_scale;highp float alpha=smoothstep(buff-gamma_scaled,buff+gamma_scaled,dist);gl_FragColor=color*(alpha*opacity*fade_opacity); 2525#ifdef OVERDRAW_INSPECTOR 2526gl_FragColor=vec4(1.0); 2527#endif 2528}`,`const float PI=3.141592653589793;attribute vec4 a_pos_offset;attribute vec4 a_data;attribute vec3 a_projected_pos;attribute float a_fade_opacity;uniform bool u_is_size_zoom_constant;uniform bool u_is_size_feature_constant;uniform highp float u_size_t;uniform highp float u_size;uniform mat4 u_matrix;uniform mat4 u_label_plane_matrix;uniform mat4 u_coord_matrix;uniform bool u_is_text;uniform bool u_pitch_with_map;uniform highp float u_pitch;uniform bool u_rotate_symbol;uniform highp float u_aspect_ratio;uniform highp float u_camera_to_center_distance;uniform float u_fade_change;uniform vec2 u_texsize;uniform vec2 u_texsize_icon;varying vec4 v_data0;varying vec4 v_data1; 2529#pragma mapbox: define highp vec4 fill_color 2530#pragma mapbox: define highp vec4 halo_color 2531#pragma mapbox: define lowp float opacity 2532#pragma mapbox: define lowp float halo_width 2533#pragma mapbox: define lowp float halo_blur 2534void main() { 2535#pragma mapbox: initialize highp vec4 fill_color 2536#pragma mapbox: initialize highp vec4 halo_color 2537#pragma mapbox: initialize lowp float opacity 2538#pragma mapbox: initialize lowp float halo_width 2539#pragma mapbox: initialize lowp float halo_blur 2540vec2 a_pos=a_pos_offset.xy;vec2 a_offset=a_pos_offset.zw;vec2 a_tex=a_data.xy;vec2 a_size=a_data.zw;float a_size_min=floor(a_size[0]*0.5);float is_sdf=a_size[0]-2.0*a_size_min;highp float segment_angle=-a_projected_pos[2];float size;if (!u_is_size_zoom_constant && !u_is_size_feature_constant) {size=mix(a_size_min,a_size[1],u_size_t)/128.0;} else if (u_is_size_zoom_constant && !u_is_size_feature_constant) {size=a_size_min/128.0;} else {size=u_size;}vec4 projectedPoint=u_matrix*vec4(a_pos,0,1);highp float camera_to_anchor_distance=projectedPoint.w;highp float distance_ratio=u_pitch_with_map ? 2541camera_to_anchor_distance/u_camera_to_center_distance : 2542u_camera_to_center_distance/camera_to_anchor_distance;highp float perspective_ratio=clamp(0.5+0.5*distance_ratio,0.0,4.0);size*=perspective_ratio;float fontScale=size/24.0;highp float symbol_rotation=0.0;if (u_rotate_symbol) {vec4 offsetProjectedPoint=u_matrix*vec4(a_pos+vec2(1,0),0,1);vec2 a=projectedPoint.xy/projectedPoint.w;vec2 b=offsetProjectedPoint.xy/offsetProjectedPoint.w;symbol_rotation=atan((b.y-a.y)/u_aspect_ratio,b.x-a.x);}highp float angle_sin=sin(segment_angle+symbol_rotation);highp float angle_cos=cos(segment_angle+symbol_rotation);mat2 rotation_matrix=mat2(angle_cos,-1.0*angle_sin,angle_sin,angle_cos);vec4 projected_pos=u_label_plane_matrix*vec4(a_projected_pos.xy,0.0,1.0);gl_Position=u_coord_matrix*vec4(projected_pos.xy/projected_pos.w+rotation_matrix*(a_offset/32.0*fontScale),0.0,1.0);float gamma_scale=gl_Position.w;vec2 fade_opacity=unpack_opacity(a_fade_opacity);float fade_change=fade_opacity[1] > 0.5 ? u_fade_change :-u_fade_change;float interpolated_fade_opacity=max(0.0,min(1.0,fade_opacity[0]+fade_change));v_data0.xy=a_tex/u_texsize;v_data0.zw=a_tex/u_texsize_icon;v_data1=vec4(gamma_scale,size,interpolated_fade_opacity,is_sdf);}`);function Bn(c,d){var h=/#pragma mapbox: ([\w]+) ([\w]+) ([\w]+) ([\w]+)/g,m=d.match(/attribute ([\w]+) ([\w]+)/g),E=c.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),M=d.match(/uniform ([\w]+) ([\w]+)([\s]*)([\w]*)/g),R=M?M.concat(E):E,L={};return{fragmentSource:c=c.replace(h,(function(z,q,ee,Y,re){return L[re]=!0,q==="define"?` 2543#ifndef HAS_UNIFORM_u_`+re+`
2544varying `+ee+" "+Y+" "+re+`; 2545#else 2546uniform `+ee+" "+Y+" u_"+re+`; 2547#endif 2548`:` 2549#ifdef HAS_UNIFORM_u_`+re+` 2550 `+ee+" "+Y+" "+re+" = u_"+re+`; 2551#endif 2552`})),vertexSource:d=d.replace(h,(function(z,q,ee,Y,re){var oe=Y==="float"?"vec2":"vec4",xe=re.match(/color/)?"color":oe;return L[re]?q==="define"?` 2553#ifndef HAS_UNIFORM_u_`+re+` 2554uniform lowp float u_`+re+`_t; 2555attribute `+ee+" "+oe+" a_"+re+`; 2556varying `+ee+" "+Y+" "+re+`; 2557#else 2558uniform `+ee+" "+Y+" u_"+re+`; 2559#endif 2560`:xe==="vec4"?` 2561#ifndef HAS_UNIFORM_u_`+re+` 2562 `+re+" = a_"+re+`; 2563#else 2564 `+ee+" "+Y+" "+re+" = u_"+re+`; 2565#endif 2566`:` 2567#ifndef HAS_UNIFORM_u_`+re+` 2568 `+re+" = unpack_mix_"+xe+"(a_"+re+", u_"+re+`_t); 2569#else 2570 `+ee+" "+Y+" "+re+" = u_"+re+`; 2571#endif 2572`:q==="define"?` 2573#ifndef HAS_UNIFORM_u_`+re+` 2574uniform lowp float u_`+re+`_t; 2575attribute `+ee+" "+oe+" a_"+re+`; 2576#else 2577uniform `+ee+" "+Y+" u_"+re+`; 2578#endif 2579`:xe==="vec4"?` 2580#ifndef HAS_UNIFORM_u_`+re+` 2581 `+ee+" "+Y+" "+re+" = a_"+re+`; 2582#else 2583 `+ee+" "+Y+" "+re+" = u_"+re+`; 2584#endif 2585`:` 2586#ifndef HAS_UNIFORM_u_`+re+` 2587 `+ee+" "+Y+" "+re+" = unpack_mix_"+xe+"(a_"+re+", u_"+re+`_t); 2588#else 2589 `+ee+" "+Y+" "+re+" = u_"+re+`; 2590#endif 2591`})),staticAttributes:m,staticUniforms:R}}var ou=Object.freeze({__proto__:null,prelude:$a,background:vc,backgroundPattern:Op,circle:Dp,clippingMask:ff,heatmap:iu,heatmapTexture:Bl,collisionBox:Xo,collisionCircle:hf,debug:df,fill:su,fillOutline:bo,fillOutlinePattern:eo,fillPattern:pf,fillExtrusion:zi,fillExtrusionPattern:bc,hillshadePrepare:xa,hillshade:wa,line:Ta,lineGradient:Xa,linePattern:Ea,lineSDF:qa,raster:Ja,symbolIcon:Ca,symbolSDF:Th,symbolTextAndIcon:Eh}),au=function(){this.boundProgram=null,this.boundLayoutVertexBuffer=null,this.boundPaintVertexBuffers=[],this.boundIndexBuffer=null,this.boundVertexOffset=null,this.boundDynamicVertexBuffer=null,this.vao=null};function Ch(c){for(var d=[],h=0;h<c.length;h++)if(c[h]!==null){var m=c[h].split(" ");d.push(m.pop())}return d}au.prototype.bind=function(c,d,h,m,E,M,R,L){this.context=c;for(var z=this.boundPaintVertexBuffers.length!==m.length,q=0;!z&&q<m.length;q++)this.boundPaintVertexBuffers[q]!==m[q]&&(z=!0);c.extVertexArrayObject&&this.vao&&this.boundProgram===d&&this.boundLayoutVertexBuffer===h&&!z&&this.boundIndexBuffer===E&&this.boundVertexOffset===M&&this.boundDynamicVertexBuffer===R&&this.boundDynamicVertexBuffer2===L?(c.bindVertexArrayOES.set(this.vao),R&&R.bind(),E&&E.dynamicDraw&&E.bind(),L&&L.bind()):this.freshBind(d,h,m,E,M,R,L)},au.prototype.freshBind=function(c,d,h,m,E,M,R){var L,z=c.numAttributes,q=this.context,ee=q.gl;if(q.extVertexArrayObject)this.vao&&this.destroy(),this.vao=q.extVertexArrayObject.createVertexArrayOES(),q.bindVertexArrayOES.set(this.vao),L=0,this.boundProgram=c,this.boundLayoutVertexBuffer=d,this.boundPaintVertexBuffers=h,this.boundIndexBuffer=m,this.boundVertexOffset=E,this.boundDynamicVertexBuffer=M,this.boundDynamicVertexBuffer2=R;else{L=q.currentNumAttributes||0;for(var Y=z;Y<L;Y++)ee.disableVertexAttribArray(Y)}d.enableAttributes(ee,c);for(var re=0,oe=h;re<oe.length;re+=1)oe[re].enableAttributes(ee,c);M&&M.enableAttributes(ee,c),R&&R.enableAttributes(ee,c),d.bind(),d.setVertexAttribPointers(ee,c,E);for(var xe=0,Oe=h;xe<Oe.length;xe+=1){var ge=Oe[xe];ge.bind(),ge.setVertexAttribPointers(ee,c,E)}M&&(M.bind(),M.setVertexAttribPointers(ee,c,E)),m&&m.bind(),R&&(R.bind(),R.setVertexAttribPointers(ee,c,E)),q.currentNumAttributes=z},au.prototype.destroy=function(){this.vao&&(this.context.extVertexArrayObject.deleteVertexArrayOES(this.vao),this.vao=null)};var Sh=function(c,d,h,m,E,M){var R=c.gl;this.program=R.createProgram();for(var L=Ch(h.staticAttributes),z=m?m.getBinderAttributes():[],q=L.concat(z),ee=h.staticUniforms?Ch(h.staticUniforms):[],Y=m?m.getBinderUniforms():[],re=[],oe=0,xe=ee.concat(Y);oe<xe.length;oe+=1){var Oe=xe[oe];re.indexOf(Oe)<0&&re.push(Oe)}var ge=m?m.defines():[];M&&ge.push("#define OVERDRAW_INSPECTOR;");var Re=ge.concat($a.fragmentSource,h.fragmentSource).join(` 2592`),Ge=ge.concat($a.vertexSource,h.vertexSource).join(` 2593`),$e=R.createShader(R.FRAGMENT_SHADER);if(R.isContextLost())this.failedToCreate=!0;else{R.shaderSource($e,Re),R.compileShader($e),R.attachShader(this.program,$e);var nt=R.createShader(R.VERTEX_SHADER);if(R.isContextLost())this.failedToCreate=!0;else{R.shaderSource(nt,Ge),R.compileShader(nt),R.attachShader(this.program,nt),this.attributes={};var qe={};this.numAttributes=q.length;for(var et=0;et<this.numAttributes;et++)q[et]&&(R.bindAttribLocation(this.program,et,q[et]),this.attributes[q[et]]=et);R.linkProgram(this.program),R.deleteShader(nt),R.deleteShader($e);for(var pt=0;pt<re.length;pt++){var Dt=re[pt];if(Dt&&!qe[Dt]){var Tt=R.getUniformLocation(this.program,Dt);Tt&&(qe[Dt]=Tt)}}this.fixedUniforms=E(c,qe),this.binderUniforms=m?m.getUniforms(c,qe):[]}}};function Pl(c,d,h){var m=1/Rn(h,1,d.transform.tileZoom),E=Math.pow(2,h.tileID.overscaledZ
vendor: 5,767 bytes, line 2593
2593),M=h.tileSize*Math.pow(2,d.transform.tileZoom)/E,R=M*(h.tileID.canonical.x+h.tileID.wrap*E),L=M*h.tileID.canonical.y;return{u_image:0,u_texsize:h.imageAtlasTexture.size,u_scale:[m,c.fromScale,c.toScale],u_fade:c.t,u_pixel_coord_upper:[R>>16,L>>16],u_pixel_coord_lower:[65535&R,65535&L]}}Sh.prototype.draw=function(c,d,h,m,E,M,R,L,z,q,ee,Y,re,oe,xe,Oe){var ge,Re=c.gl;if(!this.failedToCreate){for(var Ge in c.program.set(this.program),c.setDepthMode(h),c.setStencilMode(m),c.setColorMode(E),c.setCullFace(M),this.fixedUniforms)this.fixedUniforms[Ge].set(R[Ge]);oe&&oe.setUniforms(c,this.binderUniforms,Y,{zoom:re});for(var $e=(ge={},ge[Re.LINES]=2,ge[Re.TRIANGLES]=3,ge[Re.LINE_STRIP]=1,ge)[d],nt=0,qe=ee.get();nt<qe.length;nt+=1){var et=qe[nt],pt=et.vaos||(et.vaos={});(pt[L]||(pt[L]=new au)).bind(c,this,z,oe?oe.getPaintVertexBuffers():[],q,et.vertexOffset,xe,Oe),Re.drawElements(d,et.primitiveLength*$e,Re.UNSIGNED_SHORT,et.primitiveOffset*$e*2)}}};var Ih=function(c,d,h,m){var E=d.style.light,M=E.properties.get("position"),R=[M.x,M.y,M.z],L=o.create$1();E.properties.get("anchor")==="viewport"&&o.fromRotation(L,-d.transform.angle),o.transformMat3(R,R,L);var z=E.properties.get("color");return{u_matrix:c,u_lightpos:R,u_lightintensity:E.properties.get("intensity"),u_lightcolor:[z.r,z.g,z.b],u_vertical_gradient:+h,u_opacity:m}},qo=function(c,d,h,m,E,M,R){return o.extend(Ih(c,d,h,m),Pl(M,d,R),{u_height_factor:-Math.pow(2,E.overscaledZ)/R.tileSize/8})},Jo=function(c){return{u_matrix:c}},to=function(c,d,h,m){return o.extend(Jo(c),Pl(h,d,m))},Bh=function(c,d){return{u_matrix:c,u_world:d}},lu=function(c,d,h,m,E){return o.extend(to(c,d,h,m),{u_world:E})},cu=function(c,d,h,m){var E,M,R=c.transform;if(m.paint.get("circle-pitch-alignment")==="map"){var L=Rn(h,1,R.zoom);E=!0,M=[L,L]}else E=!1,M=R.pixelsToGLUnits;return{u_camera_to_center_distance:R.cameraToCenterDistance,u_scale_with_map:+(m.paint.get("circle-pitch-scale")==="map"),u_matrix:c.translatePosMatrix(d.posMatrix,h,m.paint.get("circle-translate"),m.paint.get("circle-translate-anchor")),u_pitch_with_map:+E,u_device_pixel_ratio:o.browser.devicePixelRatio,u_extrude_scale:M}},Ka=function(c,d,h){var m=Rn(h,1,d.zoom),E=Math.pow(2,d.zoom-h.tileID.overscaledZ),M=h.tileID.overscaleFactor();return{u_matrix:c,u_camera_to_center_distance:d.cameraToCenterDistance,u_pixels_to_tile_units:m,u_extrude_scale:[d.pixelsToGLUnits[0]/(m*E),d.pixelsToGLUnits[1]/(m*E)],u_overscale_factor:M}},Af=function(c,d,h){return{u_matrix:c,u_inv_matrix:d,u_camera_to_center_distance:h.cameraToCenterDistance,u_viewport_size:[h.width,h.height]}},Ko=function(c,d,h){return h===void 0&&(h=1),{u_matrix:c,u_color:d,u_overlay:0,u_overlay_scale:h}},Zo=function(c){return{u_matrix:c}},xc=function(c,d,h,m){return{u_matrix:c,u_extrude_scale:Rn(d,1,h),u_intensity:m}},On=function(c,d,h){var m=c.transform;return{u_matrix:Ph(c,d,h),u_ratio:1/Rn(d,1,m.zoom),u_device_pixel_ratio:o.browser.devicePixelRatio,u_units_to_pixels:[1/m.pixelsToGLUnits[0],1/m.pixelsToGLUnits[1]]}},Fn=function(c,d,h,m){return o.extend(On(c,d,h),{u_image:0,u_image_height:m})},uu=function(c,d,h,m){var E=c.transform,M=Ml(d,E);return{u_matrix:Ph(c,d,h),u_texsize:d.imageAtlasTexture.size,u_ratio:1/Rn(d,1,E.zoom),u_device_pixel_ratio:o.browser.devicePixelRatio,u_image:0,u_scale:[M,m.fromScale,m.toScale],u_fade:m.t,u_units_to_pixels:[1/E.pixelsToGLUnits[0],1/E.pixelsToGLUnits[1]]}},Fp=function(c,d,h,m,E){var M=c.lineAtlas,R=Ml(d,c.transform),L=h.layout.get("line-cap")==="round",z=M.getDash(m.from,L),q=M.getDash(m.to,L),ee=z.width*E.fromScale,Y=q.width*E.toScale;return o.extend(On(c,d,h),{u_patternscale_a:[R/ee,-z.height/2],u_patternscale_b:[R/Y,-q.height/2],u_sdfgamma:M.width/(256*Math.min(ee,Y)*o.browser.devicePixelRatio)/2,u_image:0,u_tex_y_a:z.y,u_tex_y_b:q.y,u_mix:E.t})};function Ml(c,d){return 1/Rn(c,1,d.tileZoom)}function Ph(c,d,h){return c.translatePosMatrix(d.tileID.posMatrix,d,h.paint.get("line-translate"),h.paint.get("line-translate-anchor"))}var Lp=function(c,d,h,m,E){return{u_matrix:c,u_tl_parent:d,u_scale_parent:h,u_buffer_scale:1,u_fade_t:m.mix,u_opacity:m.opacity*E.paint.get("raster-opacity"),u_image0:0,u_image1:1,u_brightness_low:E.paint.get("raster-brightness-min"),u_brightness_high:E.paint.get("raster-brightness-max"),u_saturation_factor:(R=E.paint.get("raster-saturation"),R>0?1-1/(1.001-R):-R),u_contrast_factor:(M=E.paint.get("raster-contrast"),M>0?1/(1-M):1+M),u_spin_weights:Mh(E.paint.get("raster-hue-rotate"))};var M,R};function Mh(c){c*=Math.PI/180;var d=Math.sin(c),h=Math.cos(c);return[(2*h+1)/3,(-Math.sqrt(3)*d-h+1)/3,(Math.sqrt(3)*d-h+1)/3]}var ns,Sa=function(c,d,h,m,E,M,R,L,z,q){var ee=E.transform;return{u_is_size_zoom_constant:+(c==="constant"||c==="source"),u_is_size_feature_constant:+(c==="constant"||c==="camera"),u_size_t:d?d.uSizeT:0,u_size:d?d.uSize:0,u_camera_to_center_distance:ee.cameraToCenterDistance,u_pitch:ee.pitch/360*2*Math.PI,u_rotate_symbol:+h,u_aspect_ratio:ee.width/ee.height,u_fade_change:E.options.fadeDuration?E.symbolFadeChange:1,u_matrix:M,u_label_plane_matrix:R,u_coord_matrix:L,u_is_text:+z,u_pitch_with_map:+m,u_texsize:q,u_texture:0}},xo=function(c,d,h,m,E,M,R,L,z,q,ee){var Y=E.transform;return o.extend(Sa(c,d,h,m,E,M,R,L,z,q),{u_gamma_scale:m?Math.cos(Y._pitch)*Y.cameraToCenterDistance:1,u_device_pixel_ratio:o.browser.devicePixelRatio,u_is_halo:1})},fu=function(c,d,h,m,E,M,R,L,z,q){return o.extend(xo(c,d,h,m,E,M,R,L,!0,z),{u_texsize_icon:q,u_texture_icon:1})},Za=function(c,d,h){return{u_matrix:c,u_opacity:d,u_color:h}},Rl=function(c,d,h,m,E,M){return o.extend((function(R,L,z,q){var ee=z.imageManager.getPattern(R.from.toString()),Y=z.imageManager.getPattern(R.to.toString()),re=z.imageManager.getPixelSize(),oe=re.width,xe=re.height,Oe=Math.pow(2,q.tileID.overscaledZ
vendor: 7,487 bytes, line 2593
2593),ge=q.tileSize*Math.pow(2,z.transform.tileZoom)/Oe,Re=ge*(q.tileID.canonical.x+q.tileID.wrap*Oe),Ge=ge*q.tileID.canonical.y;return{u_image:0,u_pattern_tl_a:ee.tl,u_pattern_br_a:ee.br,u_pattern_tl_b:Y.tl,u_pattern_br_b:Y.br,u_texsize:[oe,xe],u_mix:L.t,u_pattern_size_a:ee.displaySize,u_pattern_size_b:Y.displaySize,u_scale_a:L.fromScale,u_scale_b:L.toScale,u_tile_units_to_pixels:1/Rn(q,1,z.transform.tileZoom),u_pixel_coord_upper:[Re>>16,Ge>>16],u_pixel_coord_lower:[65535&Re,65535&Ge]}})(m,M,h,E),{u_matrix:c,u_opacity:d})},zs={fillExtrusion:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_lightpos:new o.Uniform3f(c,d.u_lightpos),u_lightintensity:new o.Uniform1f(c,d.u_lightintensity),u_lightcolor:new o.Uniform3f(c,d.u_lightcolor),u_vertical_gradient:new o.Uniform1f(c,d.u_vertical_gradient),u_opacity:new o.Uniform1f(c,d.u_opacity)}},fillExtrusionPattern:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_lightpos:new o.Uniform3f(c,d.u_lightpos),u_lightintensity:new o.Uniform1f(c,d.u_lightintensity),u_lightcolor:new o.Uniform3f(c,d.u_lightcolor),u_vertical_gradient:new o.Uniform1f(c,d.u_vertical_gradient),u_height_factor:new o.Uniform1f(c,d.u_height_factor),u_image:new o.Uniform1i(c,d.u_image),u_texsize:new o.Uniform2f(c,d.u_texsize),u_pixel_coord_upper:new o.Uniform2f(c,d.u_pixel_coord_upper),u_pixel_coord_lower:new o.Uniform2f(c,d.u_pixel_coord_lower),u_scale:new o.Uniform3f(c,d.u_scale),u_fade:new o.Uniform1f(c,d.u_fade),u_opacity:new o.Uniform1f(c,d.u_opacity)}},fill:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix)}},fillPattern:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_image:new o.Uniform1i(c,d.u_image),u_texsize:new o.Uniform2f(c,d.u_texsize),u_pixel_coord_upper:new o.Uniform2f(c,d.u_pixel_coord_upper),u_pixel_coord_lower:new o.Uniform2f(c,d.u_pixel_coord_lower),u_scale:new o.Uniform3f(c,d.u_scale),u_fade:new o.Uniform1f(c,d.u_fade)}},fillOutline:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_world:new o.Uniform2f(c,d.u_world)}},fillOutlinePattern:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_world:new o.Uniform2f(c,d.u_world),u_image:new o.Uniform1i(c,d.u_image),u_texsize:new o.Uniform2f(c,d.u_texsize),u_pixel_coord_upper:new o.Uniform2f(c,d.u_pixel_coord_upper),u_pixel_coord_lower:new o.Uniform2f(c,d.u_pixel_coord_lower),u_scale:new o.Uniform3f(c,d.u_scale),u_fade:new o.Uniform1f(c,d.u_fade)}},circle:function(c,d){return{u_camera_to_center_distance:new o.Uniform1f(c,d.u_camera_to_center_distance),u_scale_with_map:new o.Uniform1i(c,d.u_scale_with_map),u_pitch_with_map:new o.Uniform1i(c,d.u_pitch_with_map),u_extrude_scale:new o.Uniform2f(c,d.u_extrude_scale),u_device_pixel_ratio:new o.Uniform1f(c,d.u_device_pixel_ratio),u_matrix:new o.UniformMatrix4f(c,d.u_matrix)}},collisionBox:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_camera_to_center_distance:new o.Uniform1f(c,d.u_camera_to_center_distance),u_pixels_to_tile_units:new o.Uniform1f(c,d.u_pixels_to_tile_units),u_extrude_scale:new o.Uniform2f(c,d.u_extrude_scale),u_overscale_factor:new o.Uniform1f(c,d.u_overscale_factor)}},collisionCircle:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_inv_matrix:new o.UniformMatrix4f(c,d.u_inv_matrix),u_camera_to_center_distance:new o.Uniform1f(c,d.u_camera_to_center_distance),u_viewport_size:new o.Uniform2f(c,d.u_viewport_size)}},debug:function(c,d){return{u_color:new o.UniformColor(c,d.u_color),u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_overlay:new o.Uniform1i(c,d.u_overlay),u_overlay_scale:new o.Uniform1f(c,d.u_overlay_scale)}},clippingMask:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix)}},heatmap:function(c,d){return{u_extrude_scale:new o.Uniform1f(c,d.u_extrude_scale),u_intensity:new o.Uniform1f(c,d.u_intensity),u_matrix:new o.UniformMatrix4f(c,d.u_matrix)}},heatmapTexture:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_world:new o.Uniform2f(c,d.u_world),u_image:new o.Uniform1i(c,d.u_image),u_color_ramp:new o.Uniform1i(c,d.u_color_ramp),u_opacity:new o.Uniform1f(c,d.u_opacity)}},hillshade:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_image:new o.Uniform1i(c,d.u_image),u_latrange:new o.Uniform2f(c,d.u_latrange),u_light:new o.Uniform2f(c,d.u_light),u_shadow:new o.UniformColor(c,d.u_shadow),u_highlight:new o.UniformColor(c,d.u_highlight),u_accent:new o.UniformColor(c,d.u_accent)}},hillshadePrepare:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_image:new o.Uniform1i(c,d.u_image),u_dimension:new o.Uniform2f(c,d.u_dimension),u_zoom:new o.Uniform1f(c,d.u_zoom),u_unpack:new o.Uniform4f(c,d.u_unpack)}},line:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_ratio:new o.Uniform1f(c,d.u_ratio),u_device_pixel_ratio:new o.Uniform1f(c,d.u_device_pixel_ratio),u_units_to_pixels:new o.Uniform2f(c,d.u_units_to_pixels)}},lineGradient:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_ratio:new o.Uniform1f(c,d.u_ratio),u_device_pixel_ratio:new o.Uniform1f(c,d.u_device_pixel_ratio),u_units_to_pixels:new o.Uniform2f(c,d.u_units_to_pixels),u_image:new o.Uniform1i(c,d.u_image),u_image_height:new o.Uniform1f(c,d.u_image_height)}},linePattern:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_texsize:new o.Uniform2f(c,d.u_texsize),u_ratio:new o.Uniform1f(c,d.u_ratio),u_device_pixel_ratio:new o.Uniform1f(c,d.u_device_pixel_ratio),u_image:new o.Uniform1i(c,d.u_image),u_units_to_pixels:new o.Uniform2f(c,d.u_units_to_pixels),u_scale:new o.Uniform3f(c,d.u_scale),u_fade:new o.Uniform1f(c,d.u_fade)}},lineSDF:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_ratio:new o.Uniform1f(c,d.u_ratio),u_device_pixel_ratio:new o.Uniform1f(c,d.u_device_pixel_ratio),u_units_to_pixels:new o.Uniform2f(c,d.u_units_to_pixels),u_patternscale_a:new o.Uniform2f(c,d.u_patternscale_a),u_patternscale_b:new o.Uniform2f(c,d.u_patternscale_b),u_sdfgamma:new o.Uniform1f(c,d.u_sdfgamma),u_image:new o.Uniform1i(c,d.u_image),u_tex_y_a:new o.Uniform1f(c,d.u_tex_y_a),u_tex_y_b:new o.Uniform1f(c,d.u_tex_y_b),u_mix:new o.Uniform1f(c,d.u_mix)}},raster:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_tl_parent:new o.Uniform2f(c,d.u_tl_parent),u_scale_parent:new o.Uniform1f(c,d.u_scale_parent),u_buffer_scale:new o.Uniform1f(c,d.u_buffer_scale),u_fade_t:new o.Uniform1f(c,d.u_fade_t),u_opacity:new o.Uniform1f(c,d.u_opacity),u_image0:new o.Uniform1i(c,d.u_image0),u_image1:new o.Uniform1i(c,d.u_image1),u_brightness_low:new o.Uniform1f(c,d.u_brightness_low),u_brightness_high:new o.Uniform1f(c,d.u_brightness_high),u_saturation_factor:new o.Uniform1f(c,d.u_saturation_factor),u_contrast_factor:new o.Uniform1f(c,d.u_contrast_factor),u_spin_weights:new o.Uniform3f(c,d.u_spin_weights)}},symbolIcon:function(c,d){return{u_is_size_zoom_constant:new o.Uniform1i(c,d.u_is_size_zoom_constant),u_is_size_feature_constant:new o.Uniform1i(c,d.u_is_size_feature_constant),u_size_t:new o.Uniform1f(c,d.u_size_t),u_size:new o.Uniform1f(c,d.u_size),u_camera_to_center_distance:new o.Uniform1f(c,d.u_camera_to_center_distance),u_pitch:new o.Uniform1f(c,d.u_pitch),u_rotate_symbol:new o.Uniform1i(c,d.u_rotate_symbol),u_aspect_ratio:new o.Uniform1f(c,d.u_aspect_ratio),u_fade_change:new o.Uniform1f(c,d.u_fade_change),u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_label_plane_matrix:new o.UniformMatrix4f(c,d.u_label_plane_matrix
vendor: 6,050 bytes, line 2593
2593),u_coord_matrix:new o.UniformMatrix4f(c,d.u_coord_matrix),u_is_text:new o.Uniform1i(c,d.u_is_text),u_pitch_with_map:new o.Uniform1i(c,d.u_pitch_with_map),u_texsize:new o.Uniform2f(c,d.u_texsize),u_texture:new o.Uniform1i(c,d.u_texture)}},symbolSDF:function(c,d){return{u_is_size_zoom_constant:new o.Uniform1i(c,d.u_is_size_zoom_constant),u_is_size_feature_constant:new o.Uniform1i(c,d.u_is_size_feature_constant),u_size_t:new o.Uniform1f(c,d.u_size_t),u_size:new o.Uniform1f(c,d.u_size),u_camera_to_center_distance:new o.Uniform1f(c,d.u_camera_to_center_distance),u_pitch:new o.Uniform1f(c,d.u_pitch),u_rotate_symbol:new o.Uniform1i(c,d.u_rotate_symbol),u_aspect_ratio:new o.Uniform1f(c,d.u_aspect_ratio),u_fade_change:new o.Uniform1f(c,d.u_fade_change),u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_label_plane_matrix:new o.UniformMatrix4f(c,d.u_label_plane_matrix),u_coord_matrix:new o.UniformMatrix4f(c,d.u_coord_matrix),u_is_text:new o.Uniform1i(c,d.u_is_text),u_pitch_with_map:new o.Uniform1i(c,d.u_pitch_with_map),u_texsize:new o.Uniform2f(c,d.u_texsize),u_texture:new o.Uniform1i(c,d.u_texture),u_gamma_scale:new o.Uniform1f(c,d.u_gamma_scale),u_device_pixel_ratio:new o.Uniform1f(c,d.u_device_pixel_ratio),u_is_halo:new o.Uniform1i(c,d.u_is_halo)}},symbolTextAndIcon:function(c,d){return{u_is_size_zoom_constant:new o.Uniform1i(c,d.u_is_size_zoom_constant),u_is_size_feature_constant:new o.Uniform1i(c,d.u_is_size_feature_constant),u_size_t:new o.Uniform1f(c,d.u_size_t),u_size:new o.Uniform1f(c,d.u_size),u_camera_to_center_distance:new o.Uniform1f(c,d.u_camera_to_center_distance),u_pitch:new o.Uniform1f(c,d.u_pitch),u_rotate_symbol:new o.Uniform1i(c,d.u_rotate_symbol),u_aspect_ratio:new o.Uniform1f(c,d.u_aspect_ratio),u_fade_change:new o.Uniform1f(c,d.u_fade_change),u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_label_plane_matrix:new o.UniformMatrix4f(c,d.u_label_plane_matrix),u_coord_matrix:new o.UniformMatrix4f(c,d.u_coord_matrix),u_is_text:new o.Uniform1i(c,d.u_is_text),u_pitch_with_map:new o.Uniform1i(c,d.u_pitch_with_map),u_texsize:new o.Uniform2f(c,d.u_texsize),u_texsize_icon:new o.Uniform2f(c,d.u_texsize_icon),u_texture:new o.Uniform1i(c,d.u_texture),u_texture_icon:new o.Uniform1i(c,d.u_texture_icon),u_gamma_scale:new o.Uniform1f(c,d.u_gamma_scale),u_device_pixel_ratio:new o.Uniform1f(c,d.u_device_pixel_ratio),u_is_halo:new o.Uniform1i(c,d.u_is_halo)}},background:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_opacity:new o.Uniform1f(c,d.u_opacity),u_color:new o.UniformColor(c,d.u_color)}},backgroundPattern:function(c,d){return{u_matrix:new o.UniformMatrix4f(c,d.u_matrix),u_opacity:new o.Uniform1f(c,d.u_opacity),u_image:new o.Uniform1i(c,d.u_image),u_pattern_tl_a:new o.Uniform2f(c,d.u_pattern_tl_a),u_pattern_br_a:new o.Uniform2f(c,d.u_pattern_br_a),u_pattern_tl_b:new o.Uniform2f(c,d.u_pattern_tl_b),u_pattern_br_b:new o.Uniform2f(c,d.u_pattern_br_b),u_texsize:new o.Uniform2f(c,d.u_texsize),u_mix:new o.Uniform1f(c,d.u_mix),u_pattern_size_a:new o.Uniform2f(c,d.u_pattern_size_a),u_pattern_size_b:new o.Uniform2f(c,d.u_pattern_size_b),u_scale_a:new o.Uniform1f(c,d.u_scale_a),u_scale_b:new o.Uniform1f(c,d.u_scale_b),u_pixel_coord_upper:new o.Uniform2f(c,d.u_pixel_coord_upper),u_pixel_coord_lower:new o.Uniform2f(c,d.u_pixel_coord_lower),u_tile_units_to_pixels:new o.Uniform1f(c,d.u_tile_units_to_pixels)}}};function Ya(c,d,h,m,E,M,R){for(var L=c.context,z=L.gl,q=c.useProgram("collisionBox"),ee=[],Y=0,re=0,oe=0;oe<m.length;oe++){var xe=m[oe],Oe=d.getTile(xe),ge=Oe.getBucket(h);if(ge){var Re=xe.posMatrix;E[0]===0&&E[1]===0||(Re=c.translatePosMatrix(xe.posMatrix,Oe,E,M));var Ge=R?ge.textCollisionBox:ge.iconCollisionBox,$e=ge.collisionCircleArray;if($e.length>0){var nt=o.create(),qe=Re;o.mul(nt,ge.placementInvProjMatrix,c.transform.glCoordMatrix),o.mul(nt,nt,ge.placementViewportMatrix),ee.push({circleArray:$e,circleOffset:re,transform:qe,invTransform:nt}),re=Y+=$e.length/4}Ge&&q.draw(L,z.LINES,ye.disabled,Le.disabled,c.colorModeForRenderPass(),ve.disabled,Ka(Re,c.transform,Oe),h.id,Ge.layoutVertexBuffer,Ge.indexBuffer,Ge.segments,null,c.transform.zoom,null,null,Ge.collisionVertexBuffer)}}if(R&&ee.length){var et=c.useProgram("collisionCircle"),pt=new o.StructArrayLayout2f1f2i16;pt.resize(4*Y),pt._trim();for(var Dt=0,Tt=0,zt=ee;Tt<zt.length;Tt+=1)for(var sr=zt[Tt],Cr=0;Cr<sr.circleArray.length/4;Cr++){var Pr=4*Cr,xn=sr.circleArray[Pr+0],ar=sr.circleArray[Pr+1],Wr=sr.circleArray[Pr+2],rn=sr.circleArray[Pr+3];pt.emplace(Dt++,xn,ar,Wr,rn,0),pt.emplace(Dt++,xn,ar,Wr,rn,1),pt.emplace(Dt++,xn,ar,Wr,rn,2),pt.emplace(Dt++,xn,ar,Wr,rn,3)}(!ns||ns.length<2*Y)&&(ns=(function(Ti){var vs=2*Ti,as=new o.StructArrayLayout3ui6;as.resize(vs),as._trim();for(var yi=0;yi<vs;yi++){var Ii=6*yi;as.uint16[Ii+0]=4*yi+0,as.uint16[Ii+1]=4*yi+1,as.uint16[Ii+2]=4*yi+2,as.uint16[Ii+3]=4*yi+2,as.uint16[Ii+4]=4*yi+3,as.uint16[Ii+5]=4*yi+0}return as})(Y));for(var Hr=L.createIndexBuffer(ns,!0),Vr=L.createVertexBuffer(pt,o.collisionCircleLayout.members,!0),Yr=0,kr=ee;Yr<kr.length;Yr+=1){var Fr=kr[Yr],Ki=Af(Fr.transform,Fr.invTransform,c.transform);et.draw(L,z.TRIANGLES,ye.disabled,Le.disabled,c.colorModeForRenderPass(),ve.disabled,Ki,h.id,Vr,Hr,o.SegmentVector.simpleSegment(0,2*Fr.circleOffset,Fr.circleArray.length,Fr.circleArray.length/2),null,c.transform.zoom,null,null,null)}Vr.destroy(),Hr.destroy()}}var Vs=o.identity(new Float32Array(16));function Qa(c,d,h,m,E,M){var R=o.getAnchorAlignment(c),L=-(R.horizontalAlign-.5)*d,z=-(R.verticalAlign-.5)*h,q=o.evaluateVariableOffset(c,m);return new o.Point((L/E+q[0])*M,(z/E+q[1])*M)}function Ol(c,d,h,m,E,M,R,L,z,q,ee){var Y=c.text.placedSymbolArray,re=c.text.dynamicLayoutVertexArray,oe=c.icon.dynamicLayoutVertexArray,xe={};re.clear();for(var Oe=0;Oe<Y.length;Oe++){var ge=Y.get(Oe),Re=ge.hidden||!ge.crossTileID||c.allowVerticalPlacement&&!ge.placedOrientation?null:m[ge.crossTileID];if(Re){var Ge=new o.Point(ge.anchorX,ge.anchorY),$e=qt(Ge,h?L:R),nt=tn(M.cameraToCenterDistance,$e.signedDistanceFromCamera),qe=E.evaluateSizeForFeature
2593(c.textSizeData,q,ge)*nt/o.ONE_EM;h&&(qe*=c.tilePixelRatio/z);for(var et=Qa(Re.anchor,Re.width,Re.height,Re.textOffset,Re.textBoxScale,qe),pt=h?qt(Ge.add(et),R).point:$e.point.add(d?et.rotate(-M.angle):et),Dt=c.allowVerticalPlacement&&ge.placedOrientation===o.WritingMode.vertical?Math.PI/2:0,Tt=0;Tt<ge.numGlyphs;Tt++)o.addDynamicAttributes(re,pt,Dt);ee&&ge.associatedIconIndex>=0&&(xe[ge.associatedIconIndex]={shiftedAnchor:pt,angle:Dt})}else Fi(ge.numGlyphs,re)}if(ee){oe.clear();for(var zt=c.icon.placedSymbolArray,sr=0;sr<zt.length;sr++){var Cr=zt.get(sr);if(Cr.hidden)Fi(Cr.numGlyphs,oe);else{var Pr=xe[sr];if(Pr)for(var xn=0;xn<Cr.numGlyphs;xn++)o.addDynamicAttributes(oe,Pr.shiftedAnchor,Pr.angle);else Fi(Cr.numGlyphs,oe)}}c.icon.dynamicLayoutVertexBuffer.updateData(oe)}c.text.dynamicLayoutVertexBuffer.updateData(re)}function Dl(c,d,h){return h.iconsInText&&d?"symbolTextAndIcon":c?"symbolSDF":"symbolIcon"}function el(c,d,h,m,E,M,R,L,z,q,ee,Y){for(var re=c.context,oe=re.gl,xe=c.transform,Oe=L==="map",ge=z==="map",Re=Oe&&h.layout.get("symbol-placement")!=="point",Ge=Oe&&!ge&&!Re,$e=h.layout.get("symbol-sort-key").constantOr(1)!==void 0,nt=!1,qe=c.depthModeForSublayer(0,ye.ReadOnly),et=h.layout.get("text-variable-anchor"),pt=[],Dt=0,Tt=m;Dt<Tt.length;Dt+=1){var zt=Tt[Dt],sr=d.getTile(zt),Cr=sr.getBucket(h);if(Cr){var Pr=E?Cr.text:Cr.icon;if(Pr&&Pr.segments.get().length){var xn=Pr.programConfigurations.get(h.id),ar=E||Cr.sdfIcons,Wr=E?Cr.textSizeData:Cr.iconSizeData,rn=ge||xe.pitch!==0,Hr=c.useProgram(Dl(ar,E,Cr),xn),Vr=o.evaluateSizeForZoom(Wr,xe.zoom),Yr=void 0,kr=[0,0],Fr=void 0,Ki=void 0,Ti=null,vs=void 0;if(E)Fr=sr.glyphAtlasTexture,Ki=oe.LINEAR,Yr=sr.glyphAtlasTexture.size,Cr.iconsInText&&(kr=sr.imageAtlasTexture.size,Ti=sr.imageAtlasTexture,vs=rn||c.options.rotating||c.options.zooming||Wr.kind==="composite"||Wr.kind==="camera"?oe.LINEAR:oe.NEAREST);else{var as=h.layout.get("icon-size").constantOr(0)!==1||Cr.iconsNeedLinear;Fr=sr.imageAtlasTexture,Ki=ar||c.options.rotating||c.options.zooming||as||rn?oe.LINEAR:oe.NEAREST,Yr=sr.imageAtlasTexture.size}var yi=Rn(sr,1,c.transform.zoom),Ii=dr(zt.posMatrix,ge,Oe,c.transform,yi),ao=Be(zt.posMatrix,ge,Oe,c.transform,yi),Ms=et&&Cr.hasTextData(),jl=h.layout.get("icon-text-fit")!=="none"&&Ms&&Cr.hasIconData();Re&&_a(Cr,zt.posMatrix,c,E,Ii,ao,ge,q);var Ws=c.translatePosMatrix(zt.posMatrix,sr,M,R),sa=Re||E&&et||jl?Vs:Ii,Fo=c.translatePosMatrix(ao,sr,M,R,!0),Tf=ar&&h.paint.get(E?"text-halo-width":"icon-halo-width").constantOr(1)!==0,wu={program:Hr,buffers:Pr,uniformValues:ar?Cr.iconsInText?fu(Wr.kind,Vr,Ge,ge,c,Ws,sa,Fo,Yr,kr):xo(Wr.kind,Vr,Ge,ge,c,Ws,sa,Fo,E,Yr):Sa(Wr.kind,Vr,Ge,ge,c,Ws,sa,Fo,E,Yr),atlasTexture:Fr,atlasTextureIcon:Ti,atlasInterpolation:Ki,atlasInterpolationIcon:vs,isSDF:ar,hasHalo:Tf};if($e&&Cr.canOverlap){nt=!0;for(var Gl=0,Tu=Pr.segments.get();Gl<Tu.length;Gl+=1){var Ef=Tu[Gl];pt.push({segments:new o.SegmentVector([Ef]),sortKey:Ef.sortKey,state:wu})}}else pt.push({segments:Pr.segments,sortKey:0,state:wu})}}}nt&&pt.sort((function(Hl,Mc){return Hl.sortKey-Mc.sortKey}));for(var Ba=0,Cf=pt;Ba<Cf.length;Ba+=1){var Pa=Cf[Ba],Zi=Pa.state;if(re.activeTexture.set(oe.TEXTURE0),Zi.atlasTexture.bind(Zi.atlasInterpolation,oe.CLAMP_TO_EDGE),Zi.atlasTextureIcon&&(re.activeTexture.set(oe.TEXTURE1),Zi.atlasTextureIcon&&Zi.atlasTextureIcon.bind(Zi.atlasInterpolationIcon,oe.CLAMP_TO_EDGE)),Zi.isSDF){var il=Zi.uniformValues;Zi.hasHalo&&(il.u_is_halo=1,Fl(Zi.buffers,Pa.segments,h,c,Zi.program,qe,ee,Y,il)),il.u_is_halo=0}Fl(Zi.buffers,Pa.segments,h,c,Zi.program,qe,ee,Y,Zi.uniformValues)}}function Fl(c,d,h,m,E,M,R,L,z){var q=m.context;E.draw(q,q.gl.TRIANGLES,M,R,L,ve.disabled,z,h.id,c.layoutVertexBuffer,c.indexBuffer,d,h.paint,m.transform.zoom,c.programConfigurations.get(h.id),c.dynamicLayoutVertexBuffer,c.opacityVertexBuffer)}function hu(c,d,h,m,E,M,R){var L,z,q,ee,Y,re=c.context.gl,oe=h.paint.get("fill-pattern"),xe=oe&&oe.constantOr(1),Oe=h.getCrossfadeParameters();R?(z=xe&&!h.getPaintProperty("fill-outline-color")?"fillOutlinePattern":"fillOutline",L=re.LINES):(z=xe?"fillPattern":"fill",L=re.TRIANGLES);for(var ge=0,Re=m;ge<Re.length;ge+=1){var Ge=Re[ge],$e=d.getTile(Ge);if(!xe||$e.patternsLoaded()){var nt=$e.getBucket(h);if(nt){var qe=nt.programConfigurations.get(h.id),et=c.useProgram(z,qe);xe&&(c.context.activeTexture.set(re.TEXTURE0),$e.imageAtlasTexture.bind(re.LINEAR,re.CLAMP_TO_EDGE),qe.updatePaintBuffers(Oe));var pt=oe.constantOr(null);if(pt&&$e.imageAtlas){var Dt=$e.imageAtlas,Tt=Dt.patternPositions[pt.to.toString()],zt=Dt.patternPositions[pt.from.toString()];Tt&&zt&&qe.setConstantPatternPositions(Tt,zt)}var sr=c.translatePosMatrix(Ge.posMatrix,$e,h.paint.get("fill-translate"),h.paint.get("fill-translate-anchor"));if(R){ee=nt.indexBuffer2,Y=nt.segments2;var Cr=[re.drawingBufferWidth,re.drawingBufferHeight];q=z==="fillOutlinePattern"&&xe?lu(sr,c,Oe,$e,Cr):Bh(sr,Cr)}else ee=nt.indexBuffer,Y=nt.segments,q=xe?to(sr,c,Oe,$e):Jo(sr);et.draw(c.context,L,E,c.stencilModeForClipping(Ge),M,ve.disabled,q,h.id,nt.layoutVertexBuffer,ee,Y,h.paint,c.transform.zoom,qe)}}}}
vendor: 3,970 bytes, line 2593
2593function wc(c,d,h,m,E,M,R){for(var L=c.context,z=L.gl,q=h.paint.get("fill-extrusion-pattern"),ee=q.constantOr(1),Y=h.getCrossfadeParameters(),re=h.paint.get("fill-extrusion-opacity"),oe=0,xe=m;oe<xe.length;oe+=1){var Oe=xe[oe],ge=d.getTile(Oe),Re=ge.getBucket(h);if(Re){var Ge=Re.programConfigurations.get(h.id),$e=c.useProgram(ee?"fillExtrusionPattern":"fillExtrusion",Ge);ee&&(c.context.activeTexture.set(z.TEXTURE0),ge.imageAtlasTexture.bind(z.LINEAR,z.CLAMP_TO_EDGE),Ge.updatePaintBuffers(Y));var nt=q.constantOr(null);if(nt&&ge.imageAtlas){var qe=ge.imageAtlas,et=qe.patternPositions[nt.to.toString()],pt=qe.patternPositions[nt.from.toString()];et&&pt&&Ge.setConstantPatternPositions(et,pt)}var Dt=c.translatePosMatrix(Oe.posMatrix,ge,h.paint.get("fill-extrusion-translate"),h.paint.get("fill-extrusion-translate-anchor")),Tt=h.paint.get("fill-extrusion-vertical-gradient"),zt=ee?qo(Dt,c,Tt,re,Oe,Y,ge):Ih(Dt,c,Tt,re);$e.draw(L,L.gl.TRIANGLES,E,M,R,ve.backCCW,zt,h.id,Re.layoutVertexBuffer,Re.indexBuffer,Re.segments,h.paint,c.transform.zoom,Ge)}}}function du(c,d,h,m,E,M){var R=c.context,L=R.gl,z=d.fbo;if(z){var q=c.useProgram("hillshade");R.activeTexture.set(L.TEXTURE0),L.bindTexture(L.TEXTURE_2D,z.colorAttachment.get());var ee=(function(Y,re,oe){var xe=oe.paint.get("hillshade-shadow-color"),Oe=oe.paint.get("hillshade-highlight-color"),ge=oe.paint.get("hillshade-accent-color"),Re=oe.paint.get("hillshade-illumination-direction")*(Math.PI/180);oe.paint.get("hillshade-illumination-anchor")==="viewport"&&(Re-=Y.transform.angle);var Ge,$e,nt,qe=!Y.options.moving;return{u_matrix:Y.transform.calculatePosMatrix(re.tileID.toUnwrapped(),qe),u_image:0,u_latrange:(Ge=re.tileID,$e=Math.pow(2,Ge.canonical.z),nt=Ge.canonical.y,[new o.MercatorCoordinate(0,nt/$e).toLngLat().lat,new o.MercatorCoordinate(0,(nt+1)/$e).toLngLat().lat]),u_light:[oe.paint.get("hillshade-exaggeration"),Re],u_shadow:xe,u_highlight:Oe,u_accent:ge}})(c,d,h);q.draw(R,L.TRIANGLES,m,E,M,ve.disabled,ee,h.id,c.rasterBoundsBuffer,c.quadTriangleIndexBuffer,c.rasterBoundsSegments)}}function kp(c,d,h,m,E,M){var R=c.context,L=R.gl,z=d.dem;if(z&&z.data){var q=z.dim,ee=z.stride,Y=z.getPixels();if(R.activeTexture.set(L.TEXTURE1),R.pixelStoreUnpackPremultiplyAlpha.set(!1),d.demTexture=d.demTexture||c.getTileTexture(ee),d.demTexture){var re=d.demTexture;re.update(Y,{premultiply:!1}),re.bind(L.NEAREST,L.CLAMP_TO_EDGE)}else d.demTexture=new o.Texture(R,Y,L.RGBA,{premultiply:!1}),d.demTexture.bind(L.NEAREST,L.CLAMP_TO_EDGE);R.activeTexture.set(L.TEXTURE0);var oe=d.fbo;if(!oe){var xe=new o.Texture(R,{width:q,height:q,data:null},L.RGBA);xe.bind(L.LINEAR,L.CLAMP_TO_EDGE),(oe=d.fbo=R.createFramebuffer(q,q,!0)).colorAttachment.set(xe.texture)}R.bindFramebuffer.set(oe.framebuffer),R.viewport.set([0,0,q,q]),c.useProgram("hillshadePrepare").draw(R,L.TRIANGLES,m,E,M,ve.disabled,(function(Oe,ge){var Re=ge.stride,Ge=o.create();return o.ortho(Ge,0,o.EXTENT,-o.EXTENT,0,0,1),o.translate(Ge,Ge,[0,-o.EXTENT,0]),{u_matrix:Ge,u_image:1,u_dimension:[Re,Re],u_zoom:Oe.overscaledZ,u_unpack:ge.getUnpackVector()}})(d.tileID,z),h.id,c.rasterBoundsBuffer,c.quadTriangleIndexBuffer,c.rasterBoundsSegments),d.needsHillshadePrepare=!1}}function Tc(c,d,h,m,E){var M=m.paint.get("raster-fade-duration");if(M>0){var R=o.browser.now(),L=(R-c.timeAdded)/M,z=d?(R-d.timeAdded)/M:-1,q=h.getSource(),ee=E.coveringZoomLevel({tileSize:q.tileSize,roundZoom:q.roundZoom}),Y=!d||Math.abs(d.tileID.overscaledZ-ee)>Math.abs(c.tileID.overscaledZ-ee),re=Y&&c.refreshedUponExpiration?1:o.clamp(Y?L:1-z,0,1);return c.refreshedUponExpiration&&L>=1&&(c.refreshedUponExpiration=!1),d?{opacity:1,mix:1-re}:{opacity:re,mix:0}}return{opacity:1,mix:0}}var pu=new o.Color(1,0,0,1),Ll=new o.Color(0,1,0,1),tl=new o.Color(0,0,1,1),Au=new o.Color(1,0,1,1),rl=new o.Color(0,1,1,1);function gf(c,d,h,m){Ec(c,0,d+h/2,c.transform.width,h,m)}function mf(c,d,h,m){Ec(c,d-h/2,0,h,c.transform.height,m)}function Ec(c,d,h,m,E,M){var R=c.context,L=R.gl;
2593L.enable(L.SCISSOR_TEST),L.scissor(d*o.browser.devicePixelRatio,h*o.browser.devicePixelRatio,m*o.browser.devicePixelRatio,E*o.browser.devicePixelRatio),R.clear({color:M}),L.disable(L.SCISSOR_TEST)}function Rh(c,d,h){var m=c.context,E=m.gl,M=h.posMatrix,R=c.useProgram("debug"),L=ye.disabled,z=Le.disabled,q=c.colorModeForRenderPass();m.activeTexture.set(E.TEXTURE0),c.emptyTexture.bind(E.LINEAR,E.CLAMP_TO_EDGE),R.draw(m,E.LINE_STRIP,L,z,q,ve.disabled,Ko(M,o.Color.red),"$debug",c.debugBuffer,c.tileBorderIndexBuffer,c.debugSegments);var ee=d.getTileByID(h.key).latestRawTileData,Y=Math.floor((ee&&ee.byteLength||0)/1024),re=d.getTile(h).tileSize,oe=512/Math.min(re,512)*(h.overscaledZ/c.transform.zoom)*.5,xe=h.canonical.toString();h.overscaledZ!==h.canonical.z&&(xe+=" => "+h.overscaledZ),(function(Oe,ge){Oe.initDebugOverlayCanvas();var Re=Oe.debugOverlayCanvas,Ge=Oe.context.gl,$e=Oe.debugOverlayCanvas.getContext("2d");$e.clearRect(0,0,Re.width,Re.height),$e.shadowColor="white",$e.shadowBlur=2,$e.lineWidth=1.5,$e.strokeStyle="white",$e.textBaseline="top",$e.font="bold 36px Open Sans, sans-serif",$e.fillText(ge,5,5),$e.strokeText(ge,5,5),Oe.debugOverlayTexture.update(Re),Oe.debugOverlayTexture.bind(Ge.LINEAR,Ge.CLAMP_TO_EDGE)})(c,xe+" "+Y+"kb"),R.draw(m,E.TRIANGLES,L,z,he.alphaBlended,ve.disabled,Ko(M,o.Color.transparent,oe),"$debug",c.debugBuffer,c.quadTriangleIndexBuffer,c.debugSegments)}var nl={symbol:function(c,d,h,m,E){if(c.renderPass==="translucent"){var M=Le.disabled,R=c.colorModeForRenderPass();h.layout.get("text-variable-anchor")&&(function(L,z,q,ee,Y,re,oe){for(var xe=z.transform,Oe=Y==="map",ge=re==="map",Re=0,Ge=L;Re<Ge.length;Re+=1){var $e=Ge[Re],nt=ee.getTile($e),qe=nt.getBucket(q);if(qe&&qe.text&&qe.text.segments.get().length){var et=o.evaluateSizeForZoom(qe.textSizeData,xe.zoom),pt=Rn(nt,1,z.transform.zoom),Dt=dr($e.posMatrix,ge,Oe,z.transform,pt),Tt=q.layout.get("icon-text-fit")!=="none"&&qe.hasIconData();if(et){var zt=Math.pow(2,xe.zoom-nt.tileID.overscaledZ);Ol(qe,Oe,ge,oe,o.symbolSize,xe,Dt,$e.posMatrix,zt,et,Tt)}}}})(m,c,h,d,h.layout.get("text-rotation-alignment"),h.layout.get("text-pitch-alignment"),E),h.paint.get("icon-opacity").constantOr(1)!==0&&el(c,d,h,m,!1,h.paint.get("icon-translate"),h.paint.get("icon-translate-anchor"),h.layout.get("icon-rotation-alignment"),h.layout.get("icon-pitch-alignment"),h.layout.get("icon-keep-upright"),M,R),h.paint.get("text-opacity").constantOr(1)!==0&&el(c,d,h,m,!0,h.paint.get("text-translate"),h.paint.get("text-translate-anchor"),h.layout.get("text-rotation-alignment"),h.layout.get("text-pitch-alignment"),h.layout.get("text-keep-upright"),M,R),d.map.showCollisionBoxes&&(Ya(c,d,h,m,h.paint.get("text-translate"),h.paint.get("text-translate-anchor"),!0),Ya(c,d,h,m,h.paint.get("icon-translate"),h.paint.get("icon-translate-anchor"),!1))}},circle:function(c,d,h,m){if(c.renderPass==="translucent"){var E=h.paint.get("circle-opacity"),M=h.paint.get("circle-stroke-width"),R=h.paint.get("circle-stroke-opacity"),L=h.layout.get("circle-sort-key").constantOr(1)!==void 0;if(E.constantOr(1)!==0||M.constantOr(1)!==0&&R.constantOr(1)!==0){for(var z=c.context,q=z.gl,ee=c.depthModeForSublayer(0,ye.ReadOnly),Y=Le.disabled,re=c.colorModeForRenderPass(),oe=[],xe=0;xe<m.length;xe++){var Oe=m[xe],ge=d.getTile(Oe),Re=ge.getBucket(h);if(Re){var Ge=Re.programConfigurations.get(h.id),$e={programConfiguration:Ge,program:c.useProgram("circle",Ge),layoutVertexBuffer:Re.layoutVertexBuffer,indexBuffer:Re.indexBuffer,uniformValues:cu(c,Oe,ge,h)};if(L)for(var nt=0,qe=Re.segments.get();nt<qe.length;nt+=1){var et=qe[nt];oe.push({segments:new o.SegmentVector([et]),sortKey:et.sortKey,state:$e})}else oe.push({segments:Re.segments,sortKey:0,state:$e})}}L&&oe.sort((function(sr,Cr){return sr.sortKey-Cr.sortKey}));for(var pt=0,Dt=oe;pt<Dt.length;pt+=1){var Tt=Dt[pt],zt=Tt.state;zt.program.draw(z,q.TRIANGLES,ee,Y,re,ve.disabled,zt.uniformValues,h.id,zt.layoutVertexBuffer,zt.indexBuffer,Tt.segments,h.paint,c.transform.zoom,zt.programConfiguration)}}}},heatmap:function(c,d,h,m){if(h.paint.get("heatmap-opacity")!==0)if(c.renderPass==="offscreen"){var E=c.context,M=E.gl,R=Le.disabled,L=new he([M.ONE,M.ONE],o.Color.transparent,[!0,!0,!0,!0]);(function(oe,xe,Oe){var ge=oe.gl;oe.activeTexture.set(ge.TEXTURE1),oe.viewport.set([0,0,xe.width/4,xe.height/4]);var Re=Oe.heatmapFbo;if(Re)ge.bindTexture(ge.TEXTURE_2D,Re.colorAttachment.get()),oe.bindFramebuffer.set(Re.framebuffer);else{var Ge=ge.createTexture();ge.bindTexture(ge.TEXTURE_2D,Ge),ge.texParameteri(ge.TEXTURE_2D,ge.TEXTURE_WRAP_S,ge.CLAMP_TO_EDGE),ge.texParameteri(ge.TEXTURE_2D,ge.TEXTURE_WRAP_T,ge.CLAMP_TO_EDGE),ge.texParameteri(ge.TEXTURE_2D,ge.TEXTURE_MIN_FILTER,ge.LINEAR),ge.texParameteri(ge.TEXTURE_2D,ge.TEXTURE_MAG_FILTER,ge.LINEAR),Re=Oe.heatmapFbo=oe.createFramebuffer(xe.width/4,xe.height/4,!1),(function($e,nt,qe,et){var pt=$e.gl;pt.texImage2D(pt.TEXTURE_2D,0,pt.RGBA,nt.width/4,nt.height/4,0,pt.RGBA,$e.extRenderToTextureHalfFloat?$e.extTextureHalfFloat.HALF_FLOAT_OES:pt.UNSIGNED_BYTE,null),et.colorAttachment.set(qe)})(oe,xe,Ge,Re)}})(E,c,h),E.clear({color:o.Color.transparent});for(var z=0;z<m.length;z++){var q=m[z];if(!d.hasRenderableParent(q)){var ee=d.getTile(q),Y=ee.getBucket(h);if(Y){var re=Y.programConfigurations.get(h.id);c.useProgram("heatmap",re).draw(E,M.TRIANGLES,ye.disabled,R,L,ve.disabled,xc(q.posMatrix,ee,c.transform.zoom,h.paint.get("heatmap-intensity")),h.id,Y.layoutVertexBuffer,Y.indexBuffer,Y.segments,h.paint,c.transform.zoom,re)}}}E.viewport.set([0,0,c.width,c.height])}else c.renderPass==="translucent"&&(c.context.setColorMode(c.colorModeForRenderPass()),(function(oe,xe){var Oe=oe.context,ge=Oe.gl,Re=xe.heatmapFbo;if(Re){Oe.activeTexture.set(ge.TEXTURE0),ge.bindTexture(ge.TEXTURE_2D,Re.colorAttachment.get()),Oe.activeTexture.set(ge.TEXTURE1);var Ge=xe.colorRampTexture;Ge||(Ge=xe.colorRampTexture=new o.Texture(Oe,xe.colorRamp,ge.RGBA)),Ge.bind(ge.LINEAR,ge.CLAMP_TO_EDGE),oe.useProgram("heatmapTexture").draw(Oe,ge.TRIANGLES,ye.disabled,Le.disabled,oe.colorModeForRenderPass(),ve.disabled,(function($e,nt,qe,et){var pt=o.create();o.ortho(pt,0,$e.width,$e.height,0,0,1);var Dt=$e.context.gl;return{u_matrix:pt,u_world:[Dt.drawingBufferWidth,Dt.drawingBufferHeight],u_image:0,u_color_ramp:1,u_opacity:nt.paint.get("heatmap-opacity")}})(oe,xe),xe.id,oe.viewportBuffer,oe.quadTriangleIndexBuffer,oe.viewportSegments,xe.paint,oe.transform.zoom)}})(c,h))},line:function(c,d,h,m){if(c.renderPass==="translucent"){var E=h.paint.get("line-opacity"),M=h.paint.get("line-width");if(E.constantOr(1)!==0&&M.constantOr(1)!==0)for(var R=c.depthModeForSublayer(0,ye.ReadOnly),L=c.colorModeForRenderPass(),z=h.paint.get("line-dasharray"),q=h.paint.get("line-pattern"),ee=q.constantOr(1),Y=h.paint.get("line-gradient"),re=h.getCrossfadeParameters(),oe=ee?"linePattern":z?"lineSDF":Y?"lineGradient":"line",xe=c.context,Oe=xe.gl,ge=!0,Re=0,Ge=m;Re<Ge.length;Re+=1){var $e=Ge[Re],nt=d.getTile($e);if(!ee||nt.patternsLoaded()){var qe=nt.getBucket(h);if(qe){var et=qe.programConfigurations.get(h.id),pt=c.context.program.get(),Dt=c.useProgram(oe,et),Tt=ge||Dt.program!==pt,zt=q.constantOr(null);if(zt&&nt.imageAtlas){var sr=nt.imageAtlas,Cr=sr.patternPositions[zt.to.toString()],Pr=sr.patternPositions[zt.from.toString()];Cr&&Pr&&et.setConstantPatternPositions(Cr,Pr)}var xn=ee?uu(c,nt,h,re):z?Fp(c,nt,h,z,re):Y?Fn(c,nt,h,qe.lineClipsArray.length):On(c,nt,h);if(ee)xe.activeTexture.set(Oe.TEXTURE0),nt.imageAtlasTexture.bind(Oe.LINEAR,Oe.CLAMP_TO_EDGE),et.updatePaintBuffers(re);else if(z&&(Tt||c.lineAtlas.dirty))xe.activeTexture.set(Oe.TEXTURE0),c.lineAtlas.bind(xe);else if(Y){var ar=qe.gradients[h.id],Wr=ar.texture;if(h.gradientVersion!==ar.version){var rn=256;if(h.stepInterpolant){var Hr=d.getSource().maxzoom,Vr=$e.canonical.z===Hr?Math.ceil(1<<c.transform.maxZoom-$e.canonical.z):1;rn=o.clamp(o.nextPowerOfTwo(qe.maxLineLength/o.EXTENT*1024*Vr),256,xe.maxTextureSize)}ar.gradient=o.renderColorRamp({expression:h.gradientExpression(),evaluationKey:"lineProgress",resolution:rn,image:ar.gradient||void 0,clips:qe.lineClipsArray}),ar.texture?ar.texture.update(ar.gradient):ar.texture=new o.Texture(xe,ar.gradient,Oe.RGBA),ar.version=h.gradientVersion,Wr=ar.texture}xe.activeTexture.set(Oe.TEXTURE0),Wr.bind(h.stepInterpolant?Oe.NEAREST:Oe.LINEAR,Oe.CLAMP_TO_EDGE)}Dt.draw(xe,Oe.TRIANGLES,R,c.stencilModeForClipping($e),L,ve.disabled,xn,h.id,qe.layoutVertexBuffer,qe.
2593indexBuffer,qe.segments,h.paint,c.transform.zoom,et,qe.layoutVertexBuffer2),ge=!1}}}}},fill:function(c,d,h,m){var E=h.paint.get("fill-color"),M=h.paint.get("fill-opacity");if(M.constantOr(1)!==0){var R=c.colorModeForRenderPass(),L=h.paint.get("fill-pattern"),z=c.opaquePassEnabledForLayer()&&!L.constantOr(1)&&E.constantOr(o.Color.transparent).a===1&&M.constantOr(0)===1?"opaque":"translucent";if(c.renderPass===z){var q=c.depthModeForSublayer(1,c.renderPass==="opaque"?ye.ReadWrite:ye.ReadOnly);hu(c,d,h,m,q,R,!1)}if(c.renderPass==="translucent"&&h.paint.get("fill-antialias")){var ee=c.depthModeForSublayer(h.getPaintProperty("fill-outline-color")?2:0,ye.ReadOnly);hu(c,d,h,m,ee,R,!0)}}},"fill-extrusion":function(c,d,h,m){var E=h.paint.get("fill-extrusion-opacity");if(E!==0&&c.renderPass==="translucent"){var M=new ye(c.context.gl.LEQUAL,ye.ReadWrite,c.depthRangeFor3D);if(E!==1||h.paint.get("fill-extrusion-pattern").constantOr(1))wc(c,d,h,m,M,Le.disabled,he.disabled),wc(c,d,h,m,M,c.stencilModeFor3D(),c.colorModeForRenderPass());else{var R=c.colorModeForRenderPass();wc(c,d,h,m,M,Le.disabled,R)}}},hillshade:function(c,d,h,m){if(c.renderPass==="offscreen"||c.renderPass==="translucent"){for(var E=c.context,M=c.depthModeForSublayer(0,ye.ReadOnly),R=c.colorModeForRenderPass(),L=c.renderPass==="translucent"?c.stencilConfigForOverlap(m):[{},m],z=L[0],q=0,ee=L[1];q<ee.length;q+=1){var Y=ee[q],re=d.getTile(Y);re.needsHillshadePrepare&&c.renderPass==="offscreen"?kp(c,re,h,M,Le.disabled,R):c.renderPass==="translucent"&&du(c,re,h,M,z[Y.overscaledZ],R)}E.viewport.set([0,0,c.width,c.height])}},raster:function(c,d,h,m){if(c.renderPass==="translucent"&&h.paint.get("raster-opacity")!==0&&m.length)for(var E=c.context,M=E.gl,R=d.getSource(),L=c.useProgram("raster"),z=c.colorModeForRenderPass(),q=R instanceof ct?[{},m]:c.stencilConfigForOverlap(m),ee=q[0],Y=q[1],re=Y[Y.length-1].overscaledZ,oe=!c.options.moving,xe=0,Oe=Y;xe<Oe.length;xe+=1){var ge=Oe[xe],Re=c.depthModeForSublayer(ge.overscaledZ-re,h.paint.get("raster-opacity")===1?ye.ReadWrite:ye.ReadOnly,M.LESS),Ge=d.getTile(ge),$e=c.transform.calculatePosMatrix(ge.toUnwrapped(),oe);Ge.registerFadeDuration(h.paint.get("raster-fade-duration"));var nt=d.findLoadedParent(ge,0),qe=Tc(Ge,nt,d,h,c.transform),et=void 0,pt=void 0,Dt=h.paint.get("raster-resampling")==="nearest"?M.NEAREST:M.LINEAR;E.activeTexture.set(M.TEXTURE0),Ge.texture.bind(Dt,M.CLAMP_TO_EDGE,M.LINEAR_MIPMAP_NEAREST),E.activeTexture.set(M.TEXTURE1),nt?(nt.texture.bind(Dt,M.CLAMP_TO_EDGE,M.LINEAR_MIPMAP_NEAREST),et=Math.pow(2,nt.tileID.overscaledZ-Ge.tileID.overscaledZ),pt=[Ge.tileID.canonical.x*et%1,Ge.tileID.canonical.y*et%1
vendor: 30,801 bytes, line 2593
2593]):Ge.texture.bind(Dt,M.CLAMP_TO_EDGE,M.LINEAR_MIPMAP_NEAREST);var Tt=Lp($e,pt||[0,0],et||1,qe,h);R instanceof ct?L.draw(E,M.TRIANGLES,Re,Le.disabled,z,ve.disabled,Tt,h.id,R.boundsBuffer,c.quadTriangleIndexBuffer,R.boundsSegments):L.draw(E,M.TRIANGLES,Re,ee[ge.overscaledZ],z,ve.disabled,Tt,h.id,c.rasterBoundsBuffer,c.quadTriangleIndexBuffer,c.rasterBoundsSegments)}},background:function(c,d,h){var m=h.paint.get("background-color"),E=h.paint.get("background-opacity");if(E!==0){var M=c.context,R=M.gl,L=c.transform,z=L.tileSize,q=h.paint.get("background-pattern");if(!c.isPatternMissing(q)){var ee=!q&&m.a===1&&E===1&&c.opaquePassEnabledForLayer()?"opaque":"translucent";if(c.renderPass===ee){var Y=Le.disabled,re=c.depthModeForSublayer(0,ee==="opaque"?ye.ReadWrite:ye.ReadOnly),oe=c.colorModeForRenderPass(),xe=c.useProgram(q?"backgroundPattern":"background"),Oe=L.coveringTiles({tileSize:z});q&&(M.activeTexture.set(R.TEXTURE0),c.imageManager.bind(c.context));for(var ge=h.getCrossfadeParameters(),Re=0,Ge=Oe;Re<Ge.length;Re+=1){var $e=Ge[Re],nt=c.transform.calculatePosMatrix($e.toUnwrapped()),qe=q?Rl(nt,E,c,q,{tileID:$e,tileSize:z},ge):Za(nt,E,m);xe.draw(M,R.TRIANGLES,re,Y,oe,ve.disabled,qe,h.id,c.tileExtentBuffer,c.quadTriangleIndexBuffer,c.tileExtentSegments)}}}}},debug:function(c,d,h){for(var m=0;m<h.length;m++)Rh(c,d,h[m])},custom:function(c,d,h){var m=c.context,E=h.implementation;if(c.renderPass==="offscreen"){var M=E.prerender;M&&(c.setCustomLayerDefaults(),m.setColorMode(c.colorModeForRenderPass()),M.call(E,m.gl,c.transform.customLayerMatrix()),m.setDirty(),c.setBaseState())}else if(c.renderPass==="translucent"){c.setCustomLayerDefaults(),m.setColorMode(c.colorModeForRenderPass()),m.setStencilMode(Le.disabled);var R=E.renderingMode==="3d"?new ye(c.context.gl.LEQUAL,ye.ReadWrite,c.depthRangeFor3D):c.depthModeForSublayer(0,ye.ReadOnly);m.setDepthMode(R),E.render(m.gl,c.transform.customLayerMatrix()),m.setDirty(),c.setBaseState(),m.bindFramebuffer.set(null)}}},Xn=function(c,d){this.context=new ae(c),this.transform=d,this._tileTextures={},this.setup(),this.numSublayers=Se.maxUnderzooming+Se.maxOverzooming+1,this.depthEpsilon=1/Math.pow(2,16),this.crossTileSymbolIndex=new va,this.gpuTimers={}};Xn.prototype.resize=function(c,d){if(this.width=c*o.browser.devicePixelRatio,this.height=d*o.browser.devicePixelRatio,this.context.viewport.set([0,0,this.width,this.height]),this.style)for(var h=0,m=this.style._order;h<m.length;h+=1)this.style._layers[m[h]].resize()},Xn.prototype.setup=function(){var c=this.context,d=new o.StructArrayLayout2i4;d.emplaceBack(0,0),d.emplaceBack(o.EXTENT,0),d.emplaceBack(0,o.EXTENT),d.emplaceBack(o.EXTENT,o.EXTENT),this.tileExtentBuffer=c.createVertexBuffer(d,hi.members),this.tileExtentSegments=o.SegmentVector.simpleSegment(0,0,4,2);var h=new o.StructArrayLayout2i4;h.emplaceBack(0,0),h.emplaceBack(o.EXTENT,0),h.emplaceBack(0,o.EXTENT),h.emplaceBack(o.EXTENT,o.EXTENT),this.debugBuffer=c.createVertexBuffer(h,hi.members),this.debugSegments=o.SegmentVector.simpleSegment(0,0,4,5);var m=new o.StructArrayLayout4i8;m.emplaceBack(0,0,0,0),m.emplaceBack(o.EXTENT,0,o.EXTENT,0),m.emplaceBack(0,o.EXTENT,0,o.EXTENT),m.emplaceBack(o.EXTENT,o.EXTENT,o.EXTENT,o.EXTENT),this.rasterBoundsBuffer=c.createVertexBuffer(m,rt.members),this.rasterBoundsSegments=o.SegmentVector.simpleSegment(0,0,4,2);var E=new o.StructArrayLayout2i4;E.emplaceBack(0,0),E.emplaceBack(1,0),E.emplaceBack(0,1),E.emplaceBack(1,1),this.viewportBuffer=c.createVertexBuffer(E,hi.members),this.viewportSegments=o.SegmentVector.simpleSegment(0,0,4,2);var M=new o.StructArrayLayout1ui2;M.emplaceBack(0),M.emplaceBack(1),M.emplaceBack(3),M.emplaceBack(2),M.emplaceBack(0),this.tileBorderIndexBuffer=c.createIndexBuffer(M);var R=new o.StructArrayLayout3ui6;R.emplaceBack(0,1,2),R.emplaceBack(2,1,3),this.quadTriangleIndexBuffer=c.createIndexBuffer(R),this.emptyTexture=new o.Texture(c,{width:1,height:1,data:new Uint8Array([0,0,0,0])},c.gl.RGBA);var L=this.context.gl;this.stencilClearMode=new Le({func:L.ALWAYS,mask:0},0,255,L.ZERO,L.ZERO,L.ZERO)},Xn.prototype.clearStencil=function(){var c=this.context,d=c.gl;this.nextStencilID=1,this.currentStencilSource=void 0;var h=o.create();o.ortho(h,0,this.width,this.height,0,0,1),o.scale(h,h,[d.drawingBufferWidth,d.drawingBufferHeight,0]),this.useProgram("clippingMask").draw(c,d.TRIANGLES,ye.disabled,this.stencilClearMode,he.disabled,ve.disabled,Zo(h),"$clipping",this.viewportBuffer,this.quadTriangleIndexBuffer,this.viewportSegments)},Xn.prototype._renderTileClippingMasks=function(c,d){if(this.currentStencilSource!==c.source&&c.isTileClipped()&&d&&d.length){this.currentStencilSource=c.source;var h=this.context,m=h.gl;this.nextStencilID+d.length>256&&this.clearStencil(),h.setColorMode(he.disabled),h.setDepthMode(ye.disabled);var E=this.useProgram("clippingMask");this._tileClippingMaskIDs={};for(var M=0,R=d;M<R.length;M+=1){var L=R[M],z=this._tileClippingMaskIDs[L.key]=this.nextStencilID++;E.draw(h,m.TRIANGLES,ye.disabled,new Le({func:m.ALWAYS,mask:0},z,255,m.KEEP,m.KEEP,m.REPLACE),he.disabled,ve.disabled,Zo(L.posMatrix),"$clipping",this.tileExtentBuffer,this.quadTriangleIndexBuffer,this.tileExtentSegments)}}},Xn.prototype.stencilModeFor3D=function(){this.currentStencilSource=void 0,this.nextStencilID+1>256&&this.clearStencil();var c=this.nextStencilID++,d=this.context.gl;return new Le({func:d.NOTEQUAL,mask:255},c,255,d.KEEP,d.KEEP,d.REPLACE)},Xn.prototype.stencilModeForClipping=function(c){var d=this.context.gl;return new Le({func:d.EQUAL,mask:255},this._tileClippingMaskIDs[c.key],0,d.KEEP,d.KEEP,d.REPLACE)},Xn.prototype.stencilConfigForOverlap=function(c){var d,h=this.context.gl,m=c.sort((function(z,q){return q.overscaledZ-z.overscaledZ})),E=m[m.length-1].overscaledZ,M=m[0].overscaledZ-E+1;if(M>1){this.currentStencilSource=void 0,this.nextStencilID+M>256&&this.clearStencil();for(var R={},L=0;L<M;L++)R[L+E]=new Le({func:h.GEQUAL,mask:255},L+this.nextStencilID,255,h.KEEP,h.KEEP,h.REPLACE);return this.nextStencilID+=M,[R,m]}return[(d={},d[E]=Le.disabled,d),m]},Xn.prototype.colorModeForRenderPass=function(){var c=this.context.gl;return this._showOverdrawInspector?new he([c.CONSTANT_COLOR,c.ONE],new o.Color(1/8,1/8,1/8,0),[!0,!0,!0,!0]):this.renderPass==="opaque"?he.unblended:he.alphaBlended},Xn.prototype.depthModeForSublayer=function(c,d,h){if(!this.opaquePassEnabledForLayer())return ye.disabled;var m=1-((1+this.currentLayer)*this.numSublayers+c)*this.depthEpsilon;return new ye(h||this.context.gl.LEQUAL,d,[m,m])},Xn.prototype.opaquePassEnabledForLayer=function(){return this.currentLayer<this.opaquePassCutoff},Xn.prototype.render=function(c,d){var h=this;this.style=c,this.options=d,this.lineAtlas=c.lineAtlas,this.imageManager=c.imageManager,this.glyphManager=c.glyphManager,this.symbolFadeChange=c.placement.symbolFadeChange(o.browser.now()),this.imageManager.beginFrame();var m=this.style._order,E=this.style.sourceCaches;for(var M in E){var R=E[M];R.used&&R.prepare(this.context)}var L,z,q={},ee={},Y={};for(var re in E){var oe=E[re];q[re]=oe.getVisibleCoordinates(),ee[re]=q[re].slice().reverse(),Y[re]=oe.getVisibleCoordinates(!0).reverse()}this.opaquePassCutoff=1/0;for(var xe=0;xe<m.length;xe++)if(this.style._layers[m[xe]].is3D()){this.opaquePassCutoff=xe;break}this.renderPass="offscreen";for(var Oe=0,ge=m;Oe<ge.length;Oe+=1){var Re=this.style._layers[ge[Oe]];if(Re.hasOffscreenPass()&&!Re.isHidden(this.transform.zoom)){var Ge=ee[Re.source];(Re.type==="custom"||Ge.length)&&this.renderLayer(this,E[Re.source],Re,Ge)}}for(this.context.bindFramebuffer.set(null),this.context.clear({color:d.showOverdrawInspector?o.Color.black:o.Color.transparent,depth:1}),this.clearStencil(),this._showOverdrawInspector=d.showOverdrawInspector,this.depthRangeFor3D=[0,1-(c._order.length+2)*this.numSublayers*this.depthEpsilon],this.renderPass="opaque",this.currentLayer=m.length-1;this.currentLayer>=0;this.currentLayer--){var $e=this.style._layers[m[this.currentLayer]],nt=E[$e.source],qe=q[$e.source];this._renderTileClippingMasks($e,qe),this.renderLayer(this,nt,$e,qe)}for(this.renderPass="translucent",this.currentLayer=0;this.currentLayer<m.length;this.currentLayer++){var et=this.style._layers[m[this.currentLayer]],pt=E[et.source],Dt=(et.type==="symbol"?Y:ee)[et.source];this._renderTileClippingMasks(et,q[et.source]),this.renderLayer(this,pt,et,Dt)}this.options.showTileBoundaries&&(o.values(this.style._layers).forEach((function(Tt){Tt.source&&!Tt.isHidden(h.transform.zoom)&&(Tt.source!==(z&&z.id)&&(z=h.style.sourceCaches[Tt.source]),(!L||L.getSource().maxzoom<z.getSource().maxzoom)&&(L=z))})),L&&nl.debug(this,L,L.getVisibleCoordinates())),this.options.showPadding&&(function(Tt){var zt=Tt.transform.padding;gf(Tt,Tt.transform.height-(zt.top||0),3,pu),gf(Tt,zt.bottom||0,3,Ll),mf(Tt,zt.left||0,3,tl),mf(Tt,Tt.transform.width-(zt.right||0),3,Au);var sr=Tt.transform.centerPoint;(function(Cr,Pr,xn,ar){Ec(Cr,Pr-1,xn-10,2,20,ar),Ec(Cr,Pr-10,xn-1,20,2,ar)})(Tt,sr.x,Tt.transform.height-sr.y,rl)})(this),this.context.setDefault()},Xn.prototype.renderLayer=function(c,d,h,m){h.isHidden(this.transform.zoom)||(h.type==="background"||h.type==="custom"||m.length)&&(this.id=h.id,this.gpuTimingStart(h),nl[h.type](c,d,h,m,this.style.placement.variableOffsets),this.gpuTimingEnd())},Xn.prototype.gpuTimingStart=function(c){if(this.options.gpuTiming){var d=this.context.extTimerQuery,h=this.gpuTimers[c.id];h||(h=this.gpuTimers[c.id]={calls:0,cpuTime:0,query:d.createQueryEXT()}),h.calls++,d.beginQueryEXT(d.TIME_ELAPSED_EXT,h.query)}},Xn.prototype.gpuTimingEnd=function(){if(this.options.gpuTiming){var c=this.context.extTimerQuery;c.endQueryEXT(c.TIME_ELAPSED_EXT)}},Xn.prototype.collectGpuTimers=function(){var c=this.gpuTimers;return this.gpuTimers={},c},Xn.prototype.queryGpuTimers=function(c){var d={};for(var h in c){var m=c[h],E=this.context.extTimerQuery,M=E.getQueryObjectEXT(m.query,E.QUERY_RESULT_EXT)/1e6;E.deleteQueryEXT(m.query),d[h]=M}return d},Xn.prototype.translatePosMatrix=function(c,d,h,m,E){if(!h[0]&&!h[1])return c;var M=E?m==="map"?this.transform.angle:0:m==="viewport"?-this.transform.angle:0;if(M){var R=Math.sin(M),L=Math.cos(M);h=[h[0]*L-h[1]*R,h[0]*R+h[1]*L]}var z=[E?h[0]:Rn(d,h[0],this.transform.zoom),E?h[1]:Rn(d,h[1],this.transform.zoom),0],q=new Float32Array(16);return o.translate(q,c,z),q},Xn.prototype.saveTileTexture=function(c){var d=this._tileTextures[c.size[0]];d?d.push(c):this._tileTextures[c.size[0]]=[c]},Xn.prototype.getTileTexture=function(c){var d=this._tileTextures[c];return d&&d.length>0?d.pop():null},Xn.prototype.isPatternMissing=function(c){if(!c)return!1;if(!c.from||!c.to)return!0;var d=this.imageManager.getPattern(c.from.toString()),h=this.imageManager.getPattern(c.to.toString());return!d||!h},Xn.prototype.useProgram=function(c,d){this.cache=this.cache||{};var h=""+c+(d?d.cacheKey:"")+(this._showOverdrawInspector?"/overdraw":"");return this.cache[h]||(this.cache[h]=new Sh(this.context,c,ou[c],d,zs[c],this._showOverdrawInspector)),this.cache[h]},Xn.prototype.setCustomLayerDefaults=function(){this.context.unbindVAO(),this.context.cullFace.setDefault(),this.context.activeTexture.setDefault(),this.context.pixelStoreUnpack.setDefault(),this.context.pixelStoreUnpackPremultiplyAlpha.setDefault(),this.context.pixelStoreUnpackFlipY.setDefault()},Xn.prototype.setBaseState=function(){var c=this.context.gl;this.context.cullFace.set(!1),this.context.viewport.set([0,0,this.width,this.height]),this.context.blendEquation.set(c.FUNC_ADD)},Xn.prototype.initDebugOverlayCanvas=function(){this.debugOverlayCanvas==null&&(this.debugOverlayCanvas=o.window.document.createElement("canvas"),this.debugOverlayCanvas.width=512,this.debugOverlayCanvas.height=512,this.debugOverlayTexture=new o.Texture(this.context,this.debugOverlayCanvas,this.context.gl.RGBA))},Xn.prototype.destroy=function(){this.emptyTexture.destroy(),this.debugOverlayTexture&&this.debugOverlayTexture.destroy()};var gu=function(c,d){this.points=c,this.planes=d};gu.fromInvProjectionMatrix=function(c,d,h){var m=Math.pow(2,h),E=[[-1,1,-1,1],[1,1,-1,1],[1,-1,-1,1],[-1,-1,-1,1],[-1,1,1,1],[1,1,1,1],[1,-1,1,1],[-1,-1,1,1]].map((function(R){return o.transformMat4([],R,c)})).map((function(R){return o.scale$1([],R,1/R[3]/d*m)})),M=[[0,1,2],[6,5,4],[0,3,7],[2,1,5],[3,2,6],[0,4,5]].map((function(R){var L=o.sub([],E[R[0]],E[R[1]]),z=o.sub([],E[R[2]],E[R[1]]),q=o.normalize([],o.cross([],L,z)),ee=-o.dot(q,E[R[1]]);return q.concat(ee)}));return new gu(E,M)};var Yo=function(c,d){this.min=c,this.max=d,this.center=o.scale$2([],o.add([],this.min,this.max),.5)};Yo.prototype.quadrant=function(c){for(var d=[c%2==0,c<2],h=o.clone$2(this.min),m=o.clone$2(this.max),E=0;E<d.length;E++)h[E]=d[E]?this.min[E]:this.center[E],m[E]=d[E]?this.center[E]:this.max[E];return m[2]=this.max[2],new Yo(h,m)},Yo.prototype.distanceX=function(c){return Math.max(Math.min(this.max[0],c[0]),this.min[0])-c[0]},Yo.prototype.distanceY=function(c){return Math.max(Math.min(this.max[1],c[1]),this.min[1])-c[1]},Yo.prototype.intersects=function(c){for(var d=[[this.min[0],this.min[1],0,1],[this.max[0],this.min[1],0,1],[this.max[0],this.max[1],0,1],[this.min[0],this.max[1],0,1]],h=!0,m=0;m<c.planes.length;m++){for(var E=c.planes[m],M=0,R=0;R<d.length;R++)M+=o.dot$1(E,d[R])>=0;if(M===0)return 0;M!==d.length&&(h=!1)}if(h)return 2;for(var L=0;L<3;L++){for(var z=Number.MAX_VALUE,q=-Number.MAX_VALUE,ee=0;ee<c.points.length;ee++){var Y=c.points[ee][L]-this.min[L];z=Math.min(z,Y),q=Math.max(q,Y)}if(q<0||z>this.max[L]-this.min[L])return 0}return 1};var Qo=function(c,d,h,m){if(c===void 0&&(c=0),d===void 0&&(d=0),h===void 0&&(h=0),m===void 0&&(m=0),isNaN(c)||c<0||isNaN(d)||d<0||isNaN(h)||h<0||isNaN(m)||m<0)throw new Error("Invalid value for edge-insets, top, bottom, left and right must all be numbers");this.top=c,this.bottom=d,this.left=h,this.right=m};Qo.prototype.interpolate=function(c,d,h){return d.top!=null&&c.top!=null&&(this.top=o.number(c.top,d.top,h)),d.bottom!=null&&c.bottom!=null&&(this.bottom=o.number(c.bottom,d.bottom,h)),d.left!=null&&c.left!=null&&(this.left=o.number(c.left,d.left,h)),d.right!=null&&c.right!=null&&(this.right=o.number(c.right,d.right,h)),this},Qo.prototype.getCenter=function(c,d){var h=o.clamp((this.left+c-this.right)/2,0,c),m=o.clamp((this.top+d-this.bottom)/2,0,d);return new o.Point(h,m)},Qo.prototype.equals=function(c){return this.top===c.top&&this.bottom===c.bottom&&this.left===c.left&&this.right===c.right},Qo.prototype.clone=function(){return new Qo(this.top,this.bottom,this.left,this.right)},Qo.prototype.toJSON=function(){return{top:this.top,bottom:this.bottom,left:this.left,right:this.right}};var fn=function(c,d,h,m,E){this.tileSize=512,this.maxValidLatitude=85.051129,this._renderWorldCopies=E===void 0||E,this._minZoom=c||0,this._maxZoom=d||22,this._minPitch=h??0,this._maxPitch=m??60,this.setMaxBounds(),this.width=0,this.height=0,this._center=new o.LngLat(0,0),this.zoom=0,this.angle=0,this._fov=.6435011087932844,this._pitch=0,this._unmodified=!0,this._edgeInsets=new Qo,this._posMatrixCache={},this._alignedPosMatrixCache={}},Ln={minZoom:{configurable:!0},maxZoom:{configurable:!0},minPitch:{configurable:!0},maxPitch:{configurable:!0},renderWorldCopies:{configurable:!0},worldSize:{configurable:!0},centerOffset:{configurable:!0},size:{configurable:!0},bearing:{configurable:!0},pitch:{configurable:!0},fov:{configurable:!0},zoom:{configurable:!0},center:{configurable:!0},padding:{configurable:!0},centerPoint:{configurable:!0},unmodified:{configurable:!0},point:{configurable:!0}};fn.prototype.clone=function(){var c=new fn(this._minZoom,this._maxZoom,this._minPitch,this.maxPitch,this._renderWorldCopies);return c.tileSize=this.tileSize,c.latRange=this.latRange,c.width=this.width,c.height=this.height,c._center=this._center,c.zoom=this.zoom,c.angle=this.angle,c._fov=this._fov,c._pitch=this._pitch,c._unmodified=this._unmodified,c._edgeInsets=this._edgeInsets.clone(),c._calcMatrices(),c},Ln.minZoom.get=function(){return this._minZoom},Ln.minZoom.set=function(c){this._minZoom!==c&&(this._minZoom=c,this.zoom=Math.max(this.zoom,c))},Ln.maxZoom.get=function(){return this._maxZoom},Ln.maxZoom.set=function(c){this._maxZoom!==c&&(this._maxZoom=c,this.zoom=Math.min(this.zoom,c))},Ln.minPitch.get=function(){return this._minPitch},Ln.minPitch.set=function(c){this._minPitch!==c&&(this._minPitch=c,this.pitch=Math.max(this.pitch,c))},Ln.maxPitch.get=function(){return this._maxPitch},Ln.maxPitch.set=function(c){this._maxPitch!==c&&(this._maxPitch=c,this.pitch=Math.min(this.pitch,c))},Ln.renderWorldCopies.get=function(){return this._renderWorldCopies},Ln.renderWorldCopies.set=function(c){c===void 0?c=!0:c===null&&(c=!1),this._renderWorldCopies=c},Ln.worldSize.get=function(){return this.tileSize*this.scale},Ln.centerOffset.get=function(){return this.centerPoint._sub(this.size._div(2))},Ln.size.get=function(){return new o.Point(this.width,this.height)},Ln.bearing.get=function(){return-this.angle/Math.PI*180},Ln.bearing.set=function(c){var d=-o.wrap(c,-180,180)*Math.PI/180;this.angle!==d&&(this._unmodified=!1,this.angle=d,this._calcMatrices(),this.rotationMatrix=o.create$2(),o.rotate(this.rotationMatrix,this.rotationMatrix,this.angle))},Ln.pitch.get=function(){return this._pitch/Math.PI*180},Ln.pitch.set=function(c){var d=o.clamp(c,this.minPitch,this.maxPitch)/180*Math.PI;this._pitch!==d&&(this._unmodified=!1,this._pitch=d,this._calcMatrices())},Ln.fov.get=function(){return this._fov/Math.PI*180},Ln.fov.set=function(c){c=Math.max(.01,Math.min(60,c)),this._fov!==c&&(this._unmodified=!1,this._fov=c/180*Math.PI,this._calcMatrices())},Ln.zoom.get=function(){return this._zoom},Ln.zoom.set=function(c){var d=Math.min(Math.max(c,this.minZoom),this.maxZoom);this._zoom!==d&&(this._unmodified=!1,this._zoom=d,this.scale=this.zoomScale(d),this.tileZoom=Math.floor(d),this.zoomFraction=d-this.tileZoom,this._constrain(),this._calcMatrices())},Ln.center.get=function(){return this._center},Ln.center.set=function(c){c.lat===this._center.lat&&c.lng===this._center.lng||(this._unmodified=!1,this._center=c,this._constrain(),this._calcMatrices())},Ln.padding.get=function(){return this._edgeInsets.toJSON()},Ln.padding.set=function(c){this._edgeInsets.equals(c)||(this._unmodified=!1,this._edgeInsets.interpolate(this._edgeInsets,c,1),this._calcMatrices())},Ln.centerPoint.get=function(){return this._edgeInsets.getCenter(this.width,this.height)},fn.prototype.isPaddingEqual=function(c){return this._edgeInsets.equals(c)},fn.prototype.interpolatePadding=function(c,d,h){this._unmodified=!1,this._edgeInsets.interpolate(c,d,h),this._constrain(),this._calcMatrices()},fn.prototype.coveringZoomLevel=function(c){var d=(c.roundZoom?Math.round:Math.floor)(this.zoom+this.scaleZoom(this.tileSize/c.tileSize));return Math.max(0,d)},fn.prototype.getVisibleUnwrappedCoordinates=function(c){var d=[new o.UnwrappedTileID(0,c)];if(this._renderWorldCopies)for(var h=this.pointCoordinate(new o.Point(0,0)),m=this.pointCoordinate(new o.Point(this.width,0)),E=this.pointCoordinate(new o.Point(this.width,this.height)),M=this.pointCoordinate(new o.Point(0,this.height)),R=Math.floor(Math.min(h.x,m.x,E.x,M.x)),L=Math.floor(Math.max(h.x,m.x,E.x,M.x)),z=R-1;z<=L+1;z++)z!==0&&d.push(new o.UnwrappedTileID(z,c));return d},fn.prototype.coveringTiles=function(c){var d=this.coveringZoomLevel(c),h=d;if(c.minzoom!==void 0&&d<c.minzoom)return[];c.maxzoom!==void 0&&d>c.maxzoom&&(d=c.maxzoom);var m=o.MercatorCoordinate.fromLngLat(this.center),E=Math.pow(2,d),M=[E*m.x,E*m.y,0],R=gu.fromInvProjectionMatrix(this.invProjMatrix,this.worldSize,d),L=c.minzoom||0;this.pitch<=60&&this._edgeInsets.top<.1&&(L=d);var z=function(Tt){return{aabb:new Yo([Tt*E,0,0],[(Tt+1)*E,E,0]),zoom:0,x:0,y:0,wrap:Tt,fullyVisible:!1}},q=[],ee=[],Y=d,re=c.reparseOverscaled?h:d;if(this._renderWorldCopies)for(var oe=1;oe<=3;oe++)q.push(z(-oe)),q.push(z(oe));for(q.push(z(0));q.length>0;){var xe=q.pop(),Oe=xe.x,ge=xe.y,Re=xe.fullyVisible;if(!Re){var Ge=xe.aabb.intersects(R);if(Ge===0)continue;Re=Ge===2}var $e=xe.aabb.distanceX(M),nt=xe.aabb.distanceY(M),qe=Math.max(Math.abs($e),Math.abs(nt));if(xe.zoom===Y||qe>3+(1<<Y-xe.zoom)-2&&xe.zoom>=L)ee.push({tileID:new o.OverscaledTileID(xe.zoom===Y?re:xe.zoom,xe.wrap,xe.zoom,Oe,ge),distanceSq:o.sqrLen([M[0]-.5-Oe,M[1]-.5-ge])});else for(var et=0;et<4;et++){var pt=(Oe<<1)+et%2,Dt=(ge<<1)+(et>>1);q.push({aabb:xe.aabb.quadrant(et),zoom:xe.zoom+1,x:pt,y:Dt,wrap:xe.wrap,fullyVisible:Re})}}return ee.sort((function(Tt,zt){return Tt.distanceSq-zt.distanceSq})).map((function(Tt){return Tt.tileID}))},fn.prototype.resize=function(c,d){this.width=c,this.height=d,this.pixelsToGLUnits=[2/c,-2/d],this._constrain(),this._calcMatrices()},Ln.unmodified.get=function(){return this._unmodified},fn.prototype.zoomScale=function(c){return Math.pow(2,c)},fn.prototype.scaleZoom=function(c){return Math.log(c)/Math.LN2},fn.prototype.project=function(c){var d=o.clamp(c.lat,-this.maxValidLatitude,this.maxValidLatitude);return new o.Point(o.mercatorXfromLng(c.lng)*this.worldSize,o.mercatorYfromLat(d)*this.worldSize)},fn.prototype.unproject=function(c){return new o.MercatorCoordinate(c.x/this.worldSize,c.y/this.worldSize).toLngLat()},Ln.point.get=function(){return this.project(this.center)},fn.prototype.setLocationAtPoint=function(c,d){var h=this.pointCoordinate(d),m=this.pointCoordinate(this.centerPoint),E=this.locationCoordinate(c),M=new o.MercatorCoordinate(E.x-(h.x-m.x),E.y-(h.y-m.y));this.center=this.coordinateLocation(M),this._renderWorldCopies&&(this.center=this.center.wrap())},fn.prototype.locationPoint=function(c){return this.coordinatePoint(this.locationCoordinate(c))},fn.prototype.pointLocation=function(c){return this.coordinateLocation(this.pointCoordinate(c))},fn.prototype.locationCoordinate=function(c){return o.MercatorCoordinate.fromLngLat(c)},fn.prototype.coordinateLocation=function(c){return c.toLngLat()},fn.prototype.pointCoordinate=function(c){var d=[c.x,c.y,0,1],h=[c.x,c.y,1,1];o.transformMat4(d,d,this.pixelMatrixInverse),o.transformMat4(h,h,this.pixelMatrixInverse);var m=d[3],E=h[3],M=d[1]/m,R=h[1]/E,L=d[2]/m,z=h[2]/E,q=L===z?0:(0-L)/(z-L);return new o.MercatorCoordinate(o.number(d[0]/m,h[0]/E,q)/this.worldSize,o.number(M,R,q)/this.worldSize)},fn.prototype.coordinatePoint=function(c){var d=[c.x*this.worldSize,c.y*this.worldSize,0,1];return o.transformMat4(d,d,this.pixelMatrix),new o.Point(d[0]/d[3],d[1]/d[3])},fn.prototype.getBounds=function(){return new o.LngLatBounds().extend(this.pointLocation(new o.Point(0,0))).extend(this.pointLocation(new o.Point(this.width,0))).extend(this.pointLocation(new o.Point(this.width,this.height))).extend(this.pointLocation(new o.Point(0,this.height)))},fn.prototype.getMaxBounds=function(){return this.latRange&&this.latRange.length===2&&this.lngRange&&this.lngRange.length===2?new o.LngLatBounds([this.lngRange[0],this.latRange[0]],[this.lngRange[1],this.latRange[1]]):null},fn.prototype.setMaxBounds=function(c){c?(this.lngRange=[c.getWest(),c.getEast()],this.latRange=[c.getSouth(),c.getNorth()],this._constrain()):(this.lngRange=null,this.latRange=[-this.maxValidLatitude,this.maxValidLatitude])},fn.prototype.calculatePosMatrix=function(c,d){d===void 0&&(d=!1);var h=c.key,m=d?this._alignedPosMatrixCache:this._posMatrixCache;if(m[h])return m[h];var E=c.canonical,M=this.worldSize/this.zoomScale(E.z),R=E.x+Math.pow(2,E.z)*c.wrap,L=o.identity(new Float64Array(16));return o.translate(L,L,[R*M,E.y*M,0]),o.scale(L,L,[M/o.EXTENT,M/o.EXTENT,1]),o.multiply(L,d?this.alignedProjMatrix:this.projMatrix,L),m[h]=new Float32Array(L),m[h]},fn.prototype.customLayerMatrix=function(){return this.mercatorMatrix.slice()},fn.prototype._constrain=function(){if(this.center&&this.width&&this.height&&!this._constraining){this._constraining=!0;var c,d,h,m,E=-90,M=90,R=-180,L=180,z=this.size,q=this._unmodified;if(this.latRange){var ee=this.latRange;E=o.mercatorYfromLat(ee[1])*this.worldSize,c=(M=o.mercatorYfromLat(ee[0])*this.worldSize)-E<z.y?z.y/(M-E):0}if(this.lngRange){var Y=this.lngRange;R=o.mercatorXfromLng(Y[0])*this.worldSize,d=(L=o.mercatorXfromLng(Y[1])*this.worldSize)-R<z.x?z.x/(L-R):0}var re=this.point,oe=Math.max(d||0,c||0);if(oe)return this.center=this.unproject(new o.Point(d?(L+R)/2:re.x,c?(M+E)/2:re.y)),this.zoom+=this.scaleZoom(oe),this._unmodified=q,void(this._constraining=!1);if(this.latRange){var xe=re.y,Oe=z.y/2;xe-Oe<E&&(m=E+Oe),xe+Oe>M&&(m=M-Oe)}if(this.lngRange){var ge=re.x,Re=z.x/2;ge-Re<R&&(h=R+Re),ge+Re>L&&(h=L-Re)}h===void 0&&m===void 0||(this.center=this.unproject(new o.Point(h!==void 0?h:re.x,m!==void 0?m:re.y))),this._unmodified=q,this._constraining=!1}},fn.prototype._calcMatrices=function(){if(this.height){var c=this.centerOffset;this.cameraToCenterDistance=.5/Math.tan(this._fov/2)*this.height;var d=Math.PI/2+this._pitch,h=this._fov*(.5+c.y/this.height),m=Math.sin(h)*this.cameraToCenterDistance/Math.sin(o.clamp(Math.PI-d-h,.01,Math.PI-.01)),E=this.point,M=E.x,R=E.y,L=1.01*(Math.cos(Math.PI/2-this._pitch)*m+this.cameraToCenterDistance),z=this.height/50,q=new Float64Array(16);o.perspective(q,this._fov,this.width/this.height,z,L),q[8]=2*-c.x/this.width,q[9]=2*c.y/this.height,o.scale(q,q,[1,-1,1]),o.translate(q,q,[0,0,-this.cameraToCenterDistance]),o.rotateX(q,q,this._pitch),o.rotateZ(q,q,this.angle),o.translate(q,q,[-M,-R,0]),this.mercatorMatrix=o.scale([],q,[this.worldSize,this.worldSize,this.worldSize]),o.scale(q,q,[1,1,o.mercatorZfromAltitude(1,this.center.lat)*this.worldSize,1]),this.projMatrix=q,this.invProjMatrix=o.invert([],this.projMatrix);var ee=this.width%2/2,Y=this.height%2/2,re=Math.cos(this.angle),oe=Math.sin(this.angle),xe=M-Math.round(M)+re*ee+oe*Y,Oe=R-Math.round(R)+re*Y+oe*ee,ge=new Float64Array(q);if(o.translate(ge,ge,[xe>.5?xe-1:xe,Oe>.5?Oe-1:Oe,0]),this.alignedProjMatrix=ge,q=o.create(),o.scale(q,q,[this.width/2,-this.height/2,1]),o.translate(q,q,[1,-1,0]),this.labelPlaneMatrix=q,q=o.create(),o.scale(q,q,[1,-1,1]),o.translate(q,q,[-1,-1,0]),o.scale(q,q,[2/this.width,2/this.height,1]),this.glCoordMatrix=q,this.pixelMatrix=o.multiply(new Float64Array(16),this.labelPlaneMatrix,this.projMatrix),!(q=o.invert(new Float64Array(16),this.pixelMatrix)))throw new Error("failed to invert matrix");this.pixelMatrixInverse=q,this._posMatrixCache={},this._alignedPosMatrixCache={}}},fn.prototype.maxPitchScaleFactor=function(){if(!this.pixelMatrixInverse)return 1;var c=this.pointCoordinate(new o.Point(0,0)),d=[c.x*this.worldSize,c.y*this.worldSize,0,1];return o.transformMat4(d,d,this.pixelMatrix)[3]/this.cameraToCenterDistance},fn.prototype.getCameraPoint=function(){var c=Math.tan(this._pitch)*(this.cameraToCenterDistance||1);return this.centerPoint.add(new o.Point(0,c))},fn.prototype.getCameraQueryGeometry=function(c){var d=this.getCameraPoint();if(c.length===1)return[c[0],d];for(var h=d.x,m=d.y,E=d.x,M=d.y,R=0,L=c;R<L.length;R+=1){var z=L[R];h=Math.min(h,z.x),m=Math.min(m,z.y),E=Math.max(E,z.x),M=Math.max(M,z.y)}return[new o.Point(h,m),new o.Point(E,m),new o.Point(E,M),new o.Point(h,M),new o.Point(h,m)]},Object.defineProperties(fn.prototype,Ln);var js=function(c){var d,h,m,E;this._hashName=c&&encodeURIComponent(c),o.bindAll(["_getCurrentHash","_onHashChange","_updateHash"],this),this._updateHash=(d=this._updateHashUnthrottled.bind(this),h=!1,m=null,E=function(){m=null,h&&(d(),m=setTimeout(E,300),h=!1)},function(){return h=!0,m||E(),m})};js.prototype.addTo=function(c){return this._map=c,o.window.addEventListener("hashchange",this._onHashChange,!1),this._map.on("moveend",this._updateHash),this},js.prototype.remove=function(){return o.window.removeEventListener("hashchange",this._onHashChange,!1),this._map.off("moveend",this._updateHash),clearTimeout(this._updateHash()),delete this._map,this},js.prototype.getHashString=function(c){var d=this._map.getCenter(),h=Math.round(100*this._map.getZoom())/100,m=Math.ceil((h*Math.LN2+Math.log(512/360/.5))/Math.LN10),E=Math.pow(10,m),M=Math.round(d.lng*E)/E,R=Math.round(d.lat*E)/E,L=this._map.getBearing(),z=this._map.getPitch(),q="";if(q+=c?"/"+M+"/"+R+"/"+h:h+"/"+R+"/"+M,(L||z)&&(q+="/"+Math.round(10*L)/10),z&&(q+="/"+Math.round(z)),this._hashName){var ee=this._hashName,Y=!1,re=o.window.location.hash.slice(1).split("&").map((function(oe){var xe=oe.split("=")[0];return xe===ee?(Y=!0,xe+"="+q):oe})).filter((function(oe){return oe}));return Y||re.push(ee+"="+q),"#"+re.join("&")}return"#"+q},js.prototype._getCurrentHash=function(){var c,d=this,h=o.window.location.hash.replace("#","");return this._hashName?(h.split("&").map((function(m){return m.split("=")})).forEach((function(m){m[0]===d._hashName&&(c=m)})),(c&&c[1]||"").split("/")):h.split("/")},js.prototype._onHashChange=function(){var c=this._getCurrentHash();if(c.length>=3&&!c.some((function(h){return isNaN(h)}))){var d=this._map.dragRotate.isEnabled()&&this._map.touchZoomRotate.isEnabled()?+(c[3]||0):this._map.getBearing();return this._map.jumpTo({center:[+c[2],+c[1]],zoom:+c[0],bearing:d,pitch:+(c[4]||0)}),!0}return!1},js.prototype._updateHashUnthrottled=function(){var c=o.window.location.href.replace(/(#.+)?$/,this.getHashString());try{o.window.history.replaceState(o.window.history.state,null,c)}catch{}};var Cc={linearity:.3,easing:o.bezier(0,0,.3,1)},kl=o.extend({deceleration:2500,maxSpeed:1400},Cc),Sc=o.extend({deceleration:20,maxSpeed:1400},Cc),Np=o.extend({deceleration:1e3,maxSpeed:360},Cc),Up=o.extend({deceleration:1e3,maxSpeed:90},Cc),Nl=function(c){this._map=c,this.clear()};function Ic(c,d){(!c.duration||c.duration<d.duration)&&(c.duration=d.duration,c.easing=d.easing)}function Ro(c,d,h){var m=h.maxSpeed,E=h.linearity,M=h.deceleration,R=o.clamp(c*E/(d/1e3),-m,m),L=Math.abs(R)/(M*E);return{easing:h.easing,duration:1e3*L,amount:R*(L/2)}}Nl.prototype.clear=function(){this._inertiaBuffer=[]},Nl.prototype.record=function(c){this._drainInertiaBuffer(),this._inertiaBuffer.push({time:o.browser.now(),settings:c})},Nl.prototype._drainInertiaBuffer=function(){for(var c=this._inertiaBuffer,d=o.browser.now();c.length>0&&d-c[0].time>160;)c.shift()},Nl.prototype._onMoveEnd=function(c){if(this._drainInertiaBuffer(),!(this._inertiaBuffer.length<2)){for(var d={zoom:0,bearing:0,pitch:0,pan:new o.Point(0,0),pinchAround:void 0,around:void 0},h=0,m=this._inertiaBuffer;h<m.length;h+=1){var E=m[h].settings;d.zoom+=E.zoomDelta||0,d.bearing+=E.bearingDelta||0,d.pitch+=E.pitchDelta||0,E.panDelta&&d.pan._add(E.panDelta),E.around&&(d.around=E.around),E.pinchAround&&(d.pinchAround=E.pinchAround)}var M=this._inertiaBuffer[this._inertiaBuffer.length-1].time-this._inertiaBuffer[0].time,R={};if(d.pan.mag()){var L=Ro(d.pan.mag(),M,o.extend({},kl,c||{}));R.offset=d.pan.mult(L.amount/d.pan.mag()),R.center=this._map.transform.center,Ic(R,L)}if(d.zoom){var z=Ro(d.zoom,M,Sc);R.zoom=this._map.transform.zoom+z.amount,Ic(R,z)}if(d.bearing){var q=Ro(d.bearing,M,Np);
2593R.bearing=this._map.transform.bearing+o.clamp(q.amount,-179,179),Ic(R,q)}if(d.pitch){var ee=Ro(d.pitch,M,Up);R.pitch=this._map.transform.pitch+ee.amount,Ic(R,ee)}if(R.zoom||R.bearing){var Y=d.pinchAround===void 0?d.around:d.pinchAround;R.around=Y?this._map.unproject(Y):this._map.getCenter()}return this.clear(),o.extend(R,{noMoveStart:!0})}};var kn=(function(c){function d(m,E,M,R){R===void 0&&(R={});var L=f.mousePos(E.getCanvasContainer(),M),z=E.unproject(L);c.call(this,m,o.extend({point:L,lngLat:z,originalEvent:M},R)),this._defaultPrevented=!1,this.target=E}c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d;var h={defaultPrevented:{configurable:!0}};return d.prototype.preventDefault=function(){this._defaultPrevented=!0},h.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(d.prototype,h),d})(o.Event),Ul=(function(c){function d(m,E,M){var R=m==="touchend"?M.changedTouches:M.touches,L=f.touchPos(E.getCanvasContainer(),R),z=L.map((function(Y){return E.unproject(Y)})),q=L.reduce((function(Y,re,oe,xe){return Y.add(re.div(xe.length))}),new o.Point(0,0)),ee=E.unproject(q);c.call(this,m,{points:L,point:q,lngLats:z,lngLat:ee,originalEvent:M}),this._defaultPrevented=!1}c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d;var h={defaultPrevented:{configurable:!0}};return d.prototype.preventDefault=function(){this._defaultPrevented=!0},h.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(d.prototype,h),d})(o.Event),Oh=(function(c){function d(m,E,M){c.call(this,m,{originalEvent:M}),this._defaultPrevented=!1}c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d;var h={defaultPrevented:{configurable:!0}};return d.prototype.preventDefault=function(){this._defaultPrevented=!0},h.defaultPrevented.get=function(){return this._defaultPrevented},Object.defineProperties(d.prototype,h),d})(o.Event),xi=function(c,d){this._map=c,this._clickTolerance=d.clickTolerance};xi.prototype.reset=function(){delete this._mousedownPos},xi.prototype.wheel=function(c){return this._firePreventable(new Oh(c.type,this._map,c))},xi.prototype.mousedown=function(c,d){return this._mousedownPos=d,this._firePreventable(new kn(c.type,this._map,c))},xi.prototype.mouseup=function(c){this._map.fire(new kn(c.type,this._map,c))},xi.prototype.click=function(c,d){this._mousedownPos&&this._mousedownPos.dist(d)>=this._clickTolerance||this._map.fire(new kn(c.type,this._map,c))},xi.prototype.dblclick=function(c){return this._firePreventable(new kn(c.type,this._map,c))},xi.prototype.mouseover=function(c){this._map.fire(new kn(c.type,this._map,c))},xi.prototype.mouseout=function(c){this._map.fire(new kn(c.type,this._map,c))},xi.prototype.touchstart=function(c){return this._firePreventable(new Ul(c.type,this._map,c))},xi.prototype.touchmove=function(c){this._map.fire(new Ul(c.type,this._map,c))},xi.prototype.touchend=function(c){this._map.fire(new Ul(c.type,this._map,c))},xi.prototype.touchcancel=function(c){this._map.fire(new Ul(c.type,this._map,c))},xi.prototype._firePreventable=function(c){if(this._map.fire(c),c.defaultPrevented)return{}},xi.prototype.isEnabled=function(){return!0},xi.prototype.isActive=function(){return!1},xi.prototype.enable=function(){},xi.prototype.disable=function(){};var or=function(c){this._map=c};or.prototype.reset=function(){this._delayContextMenu=!1,delete this._contextMenuEvent},or.prototype.mousemove=function(c){this._map.fire(new kn(c.type,this._map,c))},or.prototype.mousedown=function(){this._delayContextMenu=!0},or.prototype.mouseup=function(){this._delayContextMenu=!1,this._contextMenuEvent&&(this._map.fire(new kn("contextmenu",this._map,this._contextMenuEvent)),delete this._contextMenuEvent)},or.prototype.contextmenu=function(c){this._delayContextMenu?this._contextMenuEvent=c:this._map.fire(new kn(c.type,this._map,c)),this._map.listens("contextmenu")&&c.preventDefault()},or.prototype.isEnabled=function(){return!0},or.prototype.isActive=function(){return!1},or.prototype.enable=function(){},or.prototype.disable=function(){};var Is=function(c,d){this._map=c,this._el=c.getCanvasContainer(),this._container=c.getContainer(),this._clickTolerance=d.clickTolerance||1};function mu(c,d){for(var h={},m=0;m<c.length;m++)h[c[m].identifier]=d[m];return h}Is.prototype.isEnabled=function(){return!!this._enabled},Is.prototype.isActive=function(){return!!this._active},Is.prototype.enable=function(){this.isEnabled()||(this._enabled=!0)},Is.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)}
vendor: 8,216 bytes, line 2593
2593,Is.prototype.mousedown=function(c,d){this.isEnabled()&&c.shiftKey&&c.button===0&&(f.disableDrag(),this._startPos=this._lastPos=d,this._active=!0)},Is.prototype.mousemoveWindow=function(c,d){if(this._active){var h=d;if(!(this._lastPos.equals(h)||!this._box&&h.dist(this._startPos)<this._clickTolerance)){var m=this._startPos;this._lastPos=h,this._box||(this._box=f.create("div","mapboxgl-boxzoom",this._container),this._container.classList.add("mapboxgl-crosshair"),this._fireEvent("boxzoomstart",c));var E=Math.min(m.x,h.x),M=Math.max(m.x,h.x),R=Math.min(m.y,h.y),L=Math.max(m.y,h.y);f.setTransform(this._box,"translate("+E+"px,"+R+"px)"),this._box.style.width=M-E+"px",this._box.style.height=L-R+"px"}}},Is.prototype.mouseupWindow=function(c,d){var h=this;if(this._active&&c.button===0){var m=this._startPos,E=d;if(this.reset(),f.suppressClick(),m.x!==E.x||m.y!==E.y)return this._map.fire(new o.Event("boxzoomend",{originalEvent:c})),{cameraAnimation:function(M){return M.fitScreenCoordinates(m,E,h._map.getBearing(),{linear:!0})}};this._fireEvent("boxzoomcancel",c)}},Is.prototype.keydown=function(c){this._active&&c.keyCode===27&&(this.reset(),this._fireEvent("boxzoomcancel",c))},Is.prototype.blur=function(){this.reset()},Is.prototype.reset=function(){this._active=!1,this._container.classList.remove("mapboxgl-crosshair"),this._box&&(f.remove(this._box),this._box=null),f.enableDrag(),delete this._startPos,delete this._lastPos},Is.prototype._fireEvent=function(c,d){return this._map.fire(new o.Event(c,{originalEvent:d}))};var Gs=function(c){this.reset(),this.numTouches=c.numTouches};Gs.prototype.reset=function(){delete this.centroid,delete this.startTime,delete this.touches,this.aborted=!1},Gs.prototype.touchstart=function(c,d,h){(this.centroid||h.length>this.numTouches)&&(this.aborted=!0),this.aborted||(this.startTime===void 0&&(this.startTime=c.timeStamp),h.length===this.numTouches&&(this.centroid=(function(m){for(var E=new o.Point(0,0),M=0,R=m;M<R.length;M+=1)E._add(R[M]);return E.div(m.length)})(d),this.touches=mu(h,d)))},Gs.prototype.touchmove=function(c,d,h){if(!this.aborted&&this.centroid){var m=mu(h,d);for(var E in this.touches){var M=m[E];(!M||M.dist(this.touches[E])>30)&&(this.aborted=!0)}}},Gs.prototype.touchend=function(c,d,h){if((!this.centroid||c.timeStamp-this.startTime>500)&&(this.aborted=!0),h.length===0){var m=!this.aborted&&this.centroid;if(this.reset(),m)return m}};var ro=function(c){this.singleTap=new Gs(c),this.numTaps=c.numTaps,this.reset()};ro.prototype.reset=function(){this.lastTime=1/0,delete this.lastTap,this.count=0,this.singleTap.reset()},ro.prototype.touchstart=function(c,d,h){this.singleTap.touchstart(c,d,h)},ro.prototype.touchmove=function(c,d,h){this.singleTap.touchmove(c,d,h)},ro.prototype.touchend=function(c,d,h){var m=this.singleTap.touchend(c,d,h);if(m){var E=c.timeStamp-this.lastTime<500,M=!this.lastTap||this.lastTap.dist(m)<30;if(E&&M||this.reset(),this.count++,this.lastTime=c.timeStamp,this.lastTap=m,this.count===this.numTaps)return this.reset(),m}};var _s=function(){this._zoomIn=new ro({numTouches:1,numTaps:2}),this._zoomOut=new ro({numTouches:2,numTaps:1}),this.reset()};_s.prototype.reset=function(){this._active=!1,this._zoomIn.reset(),this._zoomOut.reset()},_s.prototype.touchstart=function(c,d,h){this._zoomIn.touchstart(c,d,h),this._zoomOut.touchstart(c,d,h)},_s.prototype.touchmove=function(c,d,h){this._zoomIn.touchmove(c,d,h),this._zoomOut.touchmove(c,d,h)},_s.prototype.touchend=function(c,d,h){var m=this,E=this._zoomIn.touchend(c,d,h),M=this._zoomOut.touchend(c,d,h);return E?(this._active=!0,c.preventDefault(),setTimeout((function(){return m.reset()}),0),{cameraAnimation:function(R){return R.easeTo({duration:300,zoom:R.getZoom()+1,around:R.unproject(E)},{originalEvent:c})}}):M?(this._active=!0,c.preventDefault(),setTimeout((function(){return m.reset()}),0),{cameraAnimation:function(R){return R.easeTo({duration:300,zoom:R.getZoom()-1,around:R.unproject(M)},{originalEvent:c})}}):void 0},_s.prototype.touchcancel=function(){this.reset()},_s.prototype.enable=function(){this._enabled=!0},_s.prototype.disable=function(){this._enabled=!1,this.reset()},_s.prototype.isEnabled=function(){return this._enabled},_s.prototype.isActive=function(){return this._active};var _f={0:1,2:2},Zt=function(c){this.reset(),this._clickTolerance=c.clickTolerance||1};Zt.prototype.blur=function(){this.reset()},Zt.prototype.reset=function(){this._active=!1,this._moved=!1,delete this._lastPoint,delete this._eventButton},Zt.prototype._correctButton=function(c,d){return!1},Zt.prototype._move=function(c,d){return{}},Zt.prototype.mousedown=function(c,d){if(!this._lastPoint){var h=f.mouseButton(c);this._correctButton(c,h)&&(this._lastPoint=d,this._eventButton=h)}},Zt.prototype.mousemoveWindow=function(c,d){var h=this._lastPoint;if(h){if(c.preventDefault(),(function(m,E){var M=_f[E];return m.buttons===void 0||(m.buttons&M)!==M})(c,this._eventButton))this.reset();else if(this._moved||!(d.dist(h)<this._clickTolerance))return this._moved=!0,this._lastPoint=d,this._move(h,d)}},Zt.prototype.mouseupWindow=function(c){this._lastPoint&&f.mouseButton(c)===this._eventButton&&(this._moved&&f.suppressClick(),this.reset())},Zt.prototype.enable=function(){this._enabled=!0},Zt.prototype.disable=function(){this._enabled=!1,this.reset()},Zt.prototype.isEnabled=function(){return this._enabled},Zt.prototype.isActive=function(){return this._active};var yf=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.mousedown=function(h,m){c.prototype.mousedown.call(this,h,m),this._lastPoint&&(this._active=!0)},d.prototype._correctButton=function(h,m){return m===0&&!h.ctrlKey},d.prototype._move=function(h,m){return{around:m,panDelta:m.sub(h)}},d})(Zt),_u=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype._correctButton=function(h,m){return m===0&&h.ctrlKey||m===2},d.prototype._move=function(h,m){var E=.8*(m.x-h.x);if(E)return this._active=!0,{bearingDelta:E}},d.prototype.contextmenu=function(h){h.preventDefault()},d})(Zt),vf=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype._correctButton=function(h,m){return m===0&&h.ctrlKey||m===2},d.prototype._move=function(h,m){var E=-.5*(m.y-h.y);if(E)return this._active=!0,{pitchDelta:E}},d.prototype.contextmenu=function(h){h.preventDefault()},d})(Zt),no=function(c){this._minTouches=1,this._clickTolerance=c.clickTolerance||1,this.reset()};no.prototype.reset=function(){this._active=!1,this._touches={},this._sum=new o.Point(0,0)},no.prototype.touchstart=function(c,d,h){return this._calculateTransform(c,d,h)},no.prototype.touchmove=function(c,d,h){if(this._active&&!(h.length<this._minTouches))return c.preventDefault(),this._calculateTransform(c,d,h)},no.prototype.touchend=function(c,d,h){this._calculateTransform(c,d,h),this._active&&h.length<this._minTouches&&this.reset()},no.prototype.touchcancel=function(){this.reset()},no.prototype._calculateTransform=function(c,d,h){h.length>0&&(this._active=!0);var m=mu(h,d),E=new o.Point(0,0),M=new o.Point(0,0),R=0;for(var L in m){var z=m[L],q=this._touches[L];q&&(E._add(z),M._add(z.sub(q)),R++,m[L]=z)}if(this._touches=m,!(R<this._minTouches)&&M.mag()){var ee=M.div(R);if(this._sum._add(ee),!(this._sum.mag()<this._clickTolerance))return{around:E.div(R),panDelta:ee}}},no.prototype.enable=function(){this._enabled=!0},no.prototype.disable=function(){this._enabled=!1,this.reset()},no.prototype.isEnabled=function(){return this._enabled},no.prototype.isActive=function(){return this._active};var Bs=function(){this.reset()};function yu(c,d,h){for(var m=0;m<c.length;m++)if(c[m].identifier===h)return d[m]}function vu(c,d){return Math.log(c/d)/Math.LN2}Bs.prototype.reset=function(){this._active=!1,delete this._firstTwoTouches},Bs.prototype._start=function(c){},Bs.prototype._move=function(c,d,h){return{}},Bs.prototype.touchstart=function(c,d,h){this._firstTwoTouches||h.length<2||(this._firstTwoTouches=[h[0].identifier,h[1].identifier],this._start([d[0],d[1]])
2593)},Bs.prototype.touchmove=function(c,d,h){if(this._firstTwoTouches){c.preventDefault();var m=this._firstTwoTouches,E=m[1],M=yu(h,d,m[0]),R=yu(h,d,E);if(M&&R){var L=this._aroundCenter?null:M.add(R).div(2);return this._move([M,R],L,c)}}},Bs.prototype.touchend=function(c,d,h){if(this._firstTwoTouches){var m=this._firstTwoTouches,E=m[1],M=yu(h,d,m[0]),R=yu(h,d,E);M&&R||(this._active&&f.suppressClick(),this.reset())}},Bs.prototype.touchcancel=function(){this.reset()},Bs.prototype.enable=function(c){this._enabled=!0,this._aroundCenter=!!c&&c.around==="center"},Bs.prototype.disable=function(){this._enabled=!1,this.reset()},Bs.prototype.isEnabled=function(){return this._enabled},Bs.prototype.isActive=function(){return this._active};var Ps=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.reset=function(){c.prototype.reset.call(this),delete this._distance,delete this._startDistance},d.prototype._start=function(h){this._startDistance=this._distance=h[0].dist(h[1])},d.prototype._move=function(h,m){var E=this._distance;if(this._distance=h[0].dist(h[1]),this._active||!(Math.abs(vu(this._distance,this._startDistance))<.1))return this._active=!0,{zoomDelta:vu(this._distance,E),pinchAround:m}},d})(Bs);function ea(c,d){return 180*c.angleWith(d)/Math.PI}var bf=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.reset=function(){c.prototype.reset.call(this),delete this._minDiameter,delete this._startVector,delete this._vector},d.prototype._start=function(h){this._startVector=this._vector=h[0].sub(h[1]),this._minDiameter=h[0].dist(h[1])},d.prototype._move=function(h,m){var E=this._vector;if(this._vector=h[0].sub(h[1]),this._active||!this._isBelowThreshold(this._vector))return this._active=!0,{bearingDelta:ea(this._vector,E),pinchAround:m}},d.prototype._isBelowThreshold=function(h){this._minDiameter=Math.min(this._minDiameter,h.mag());var m=25/(Math.PI*this._minDiameter)*360,E=ea(h,this._startVector);return Math.abs(E)<m},d})(Bs);function zl(c){return Math.abs(c.y)>Math.abs(c.x)}var wi=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.reset=function(){c.prototype.reset.call(this),this._valid=void 0,delete this._firstMove,delete this._lastPoints},d.prototype._start=function(h){this._lastPoints=h,zl(h[0].sub(h[1]))&&(this._valid=!1)},d.prototype._move=function(h,m,E){var M=h[0].sub(this._lastPoints[0]),R=h[1].sub(this._lastPoints[1]);if(this._valid=this.gestureBeginsVertically(M,R,E.timeStamp),this._valid)return this._lastPoints=h,this._active=!0,{pitchDelta:(M.y+R.y)/2*-.5}},d.prototype.gestureBeginsVertically=function(h,m,E){if(this._valid!==void 0)return this._valid;var M=h.mag()>=2,R=m.mag()>=2;if(M||R){if(!M||!R)return this._firstMove===void 0&&(this._firstMove=E),E-this._firstMove<100&&void 0;var L=h.y>0==m.y>0;return zl(h)&&zl(m)&&L}},d})(Bs),xf={panStep:100,bearingStep:15,pitchStep:10},wo=function(){var c=xf;this._panStep=c.panStep,this._bearingStep=c.bearingStep,this._pitchStep=c.pitchStep,this._rotationDisabled=!1};function is(c){return c*(2-c)}wo.prototype.blur=function(){this.reset()},wo.prototype.reset=function(){this._active=!1},wo.prototype.keydown=function(c){var d=this;if(!(c.altKey||c.ctrlKey||c.metaKey)){var h=0,m=0,E=0,M=0,R=0;switch(c.keyCode){case 61:case 107:case 171:case 187:h=1;break;case 189:case 109:case 173:h=-1;break;case 37:c.shiftKey?m=-1:(c.preventDefault(),M=-1);break;case 39:c.shiftKey?m=1:(c.preventDefault(),M=1);break;case 38:c.shiftKey?E=1:(c.preventDefault(),R=-1);break;case 40:c.shiftKey?E=-1:(c.preventDefault(),R=1);break;default:return}return this._rotationDisabled&&(m=0,E=0),{cameraAnimation:function(L){var z=L.getZoom();L.easeTo({duration:300,easeId:"keyboardHandler",easing:is,zoom:h?Math.round(z)+h*(c.shiftKey?2:1):z,bearing:L.getBearing()+m*d._bearingStep,pitch:L.getPitch()+E*d._pitchStep,offset:[-M*d._panStep,-R*d._panStep],center:L.getCenter()},{originalEvent:c})}}}},wo.prototype.enable=function(){this._enabled=!0},wo.prototype.disable=function(){this._enabled=!1,this.reset()},wo.prototype.isEnabled=function(){return this._enabled},wo.prototype.isActive=function(){return this._active},wo.prototype.disableRotation=function(){this._rotationDisabled=!0},wo.prototype.enableRotation=function(){this._rotationDisabled=!1};var Gr=function(c,d){this._map=c,this._el=c.getCanvasContainer(),this._handler=d,this._delta=0,this._defaultZoomRate=.01,this._wheelZoomRate=1/450,o.bindAll(["_onT
2593imeout"],this)};Gr.prototype.setZoomRate=function(c){this._defaultZoomRate=c},Gr.prototype.setWheelZoomRate=function(c){this._wheelZoomRate=c},Gr.prototype.isEnabled=function(){return!!this._enabled},Gr.prototype.isActive=function(){return!!this._active||this._finishTimeout!==void 0},Gr.prototype.isZooming=function(){return!!this._zooming},Gr.prototype.enable=function(c){this.isEnabled()||(this._enabled=!0,this._aroundCenter=c&&c.around==="center")},Gr.prototype.disable=function(){this.isEnabled()&&(this._enabled=!1)},Gr.prototype.wheel=function(c){if(this.isEnabled()){var d=c.deltaMode===o.window.WheelEvent.DOM_DELTA_LINE?40*c.deltaY:c.deltaY,h=o.browser.now(),m=h-(this._lastWheelEventTime||0);this._lastWheelEventTime=h,d!==0&&d%4.000244140625==0?this._type="wheel":d!==0&&Math.abs(d)<4?this._type="trackpad":m>400?(this._type=null,this._lastValue=d,this._timeout=setTimeout(this._onTimeout,40,c)):this._type||(this._type=Math.abs(m*d)<200?"trackpad":"wheel",this._timeout&&(clearTimeout(this._timeout),this._timeout=null,d+=this._lastValue)),c.shiftKey&&d&&(d/=4),this._type&&(this._lastWheelEvent=c,this._delta-=d,this._active||this._start(c)),c.preventDefault()}}
vendor: 13,161 bytes, line 2593
2593,Gr.prototype._onTimeout=function(c){this._type="wheel",this._delta-=this._lastValue,this._active||this._start(c)},Gr.prototype._start=function(c){if(this._delta){this._frameId&&(this._frameId=null),this._active=!0,this.isZooming()||(this._zooming=!0),this._finishTimeout&&(clearTimeout(this._finishTimeout),delete this._finishTimeout);var d=f.mousePos(this._el,c);this._around=o.LngLat.convert(this._aroundCenter?this._map.getCenter():this._map.unproject(d)),this._aroundPoint=this._map.transform.locationPoint(this._around),this._frameId||(this._frameId=!0,this._handler._triggerRenderFrame())}},Gr.prototype.renderFrame=function(){var c=this;if(this._frameId&&(this._frameId=null,this.isActive())){var d=this._map.transform;if(this._delta!==0){var h=this._type==="wheel"&&Math.abs(this._delta)>4.000244140625?this._wheelZoomRate:this._defaultZoomRate,m=2/(1+Math.exp(-Math.abs(this._delta*h)));this._delta<0&&m!==0&&(m=1/m);var E=typeof this._targetZoom=="number"?d.zoomScale(this._targetZoom):d.scale;this._targetZoom=Math.min(d.maxZoom,Math.max(d.minZoom,d.scaleZoom(E*m))),this._type==="wheel"&&(this._startZoom=d.zoom,this._easing=this._smoothOutEasing(200)),this._delta=0}var M,R=typeof this._targetZoom=="number"?this._targetZoom:d.zoom,L=this._startZoom,z=this._easing,q=!1;if(this._type==="wheel"&&L&&z){var ee=Math.min((o.browser.now()-this._lastWheelEventTime)/200,1),Y=z(ee);M=o.number(L,R,Y),ee<1?this._frameId||(this._frameId=!0):q=!0}else M=R,q=!0;return this._active=!0,q&&(this._active=!1,this._finishTimeout=setTimeout((function(){c._zooming=!1,c._handler._triggerRenderFrame(),delete c._targetZoom,delete c._finishTimeout}),200)),{noInertia:!0,needsRenderFrame:!q,zoomDelta:M-d.zoom,around:this._aroundPoint,originalEvent:this._lastWheelEvent}}},Gr.prototype._smoothOutEasing=function(c){var d=o.ease;if(this._prevEase){var h=this._prevEase,m=(o.browser.now()-h.start)/h.duration,E=h.easing(m+.01)-h.easing(m),M=.27/Math.sqrt(E*E+1e-4)*.01,R=Math.sqrt(.0729-M*M);d=o.bezier(M,R,.25,1)}return this._prevEase={start:o.browser.now(),duration:c,easing:d},d},Gr.prototype.blur=function(){this.reset()},Gr.prototype.reset=function(){this._active=!1};var Oo=function(c,d){this._clickZoom=c,this._tapZoom=d};Oo.prototype.enable=function(){this._clickZoom.enable(),this._tapZoom.enable()},Oo.prototype.disable=function(){this._clickZoom.disable(),this._tapZoom.disable()},Oo.prototype.isEnabled=function(){return this._clickZoom.isEnabled()&&this._tapZoom.isEnabled()},Oo.prototype.isActive=function(){return this._clickZoom.isActive()||this._tapZoom.isActive()};var io=function(){this.reset()};io.prototype.reset=function(){this._active=!1},io.prototype.blur=function(){this.reset()},io.prototype.dblclick=function(c,d){return c.preventDefault(),{cameraAnimation:function(h){h.easeTo({duration:300,zoom:h.getZoom()+(c.shiftKey?-1:1),around:h.unproject(d)},{originalEvent:c})}}},io.prototype.enable=function(){this._enabled=!0},io.prototype.disable=function(){this._enabled=!1,this.reset()},io.prototype.isEnabled=function(){return this._enabled},io.prototype.isActive=function(){return this._active};var qi=function(){this._tap=new ro({numTouches:1,numTaps:1}),this.reset()};qi.prototype.reset=function(){this._active=!1,delete this._swipePoint,delete this._swipeTouch,delete this._tapTime,this._tap.reset()},qi.prototype.touchstart=function(c,d,h){this._swipePoint||(this._tapTime&&c.timeStamp-this._tapTime>500&&this.reset(),this._tapTime?h.length>0&&(this._swipePoint=d[0],this._swipeTouch=h[0].identifier):this._tap.touchstart(c,d,h))},qi.prototype.touchmove=function(c,d,h){if(this._tapTime){if(this._swipePoint){if(h[0].identifier!==this._swipeTouch)return;var m=d[0],E=m.y-this._swipePoint.y;return this._swipePoint=m,c.preventDefault(),this._active=!0,{zoomDelta:E/128}}}else this._tap.touchmove(c,d,h)},qi.prototype.touchend=function(c,d,h){this._tapTime?this._swipePoint&&h.length===0&&this.reset():this._tap.touchend(c,d,h)&&(this._tapTime=c.timeStamp)},qi.prototype.touchcancel=function(){this.reset()},qi.prototype.enable=function(){this._enabled=!0},qi.prototype.disable=function(){this._enabled=!1,this.reset()},qi.prototype.isEnabled=function(){return this._enabled},qi.prototype.isActive=function(){return this._active};var Ia=function(c,d,h){this._el=c,this._mousePan=d,this._touchPan=h};Ia.prototype.enable=function(c){this._inertiaOptions=c||{},this._mousePan.enable(),this._touchPan.enable(),this._el.classList.add("mapboxgl-touch-drag-pan")},Ia.prototype.disable=function(){this._mousePan.disable(),this._touchPan.disable(),this._el.classList.remove("mapboxgl-touch-drag-pan")},Ia.prototype.isEnabled=function(){return this._mousePan.isEnabled()&&this._touchPan.isEnabled()},Ia.prototype.isActive=function(){return this._mousePan.isActive()||this._touchPan.isActive()};var ta=function(c,d,h){this._pitchWithRotate=c.pitchWithRotate,this._mouseRotate=d,this._mousePitch=h};ta.prototype.enable=function(){this._mouseRotate.enable(),this._pitchWithRotate&&this._mousePitch.enable()},ta.prototype.disable=function(){this._mouseRotate.disable(),this._mousePitch.disable()},ta.prototype.isEnabled=function(){return this._mouseRotate.isEnabled()&&(!this._pitchWithRotate||this._mousePitch.isEnabled())},ta.prototype.isActive=function(){return this._mouseRotate.isActive()||this._mousePitch.isActive()};var so=function(c,d,h,m){this._el=c,this._touchZoom=d,this._touchRotate=h,this._tapDragZoom=m,this._rotationDisabled=!1,this._enabled=!0};so.prototype.enable=function(c){this._touchZoom.enable(c),this._rotationDisabled||this._touchRotate.enable(c),this._tapDragZoom.enable(),this._el.classList.add("mapboxgl-touch-zoom-rotate")},so.prototype.disable=function(){this._touchZoom.disable(),this._touchRotate.disable(),this._tapDragZoom.disable(),this._el.classList.remove("mapboxgl-touch-zoom-rotate")},so.prototype.isEnabled=function(){return this._touchZoom.isEnabled()&&(this._rotationDisabled||this._touchRotate.isEnabled())&&this._tapDragZoom.isEnabled()},so.prototype.isActive=function(){return this._touchZoom.isActive()||this._touchRotate.isActive()||this._tapDragZoom.isActive()},so.prototype.disableRotation=function(){this._rotationDisabled=!0,this._touchRotate.disable()},so.prototype.enableRotation=function(){this._rotationDisabled=!1,this._touchZoom.isEnabled()&&this._touchRotate.enable()};var ss=function(c){return c.zoom||c.drag||c.pitch||c.rotate},Bc=(function(c){function d(){c.apply(this,arguments)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d})(o.Event);function wr(c){return c.panDelta&&c.panDelta.mag()||c.zoomDelta||c.bearingDelta||c.pitchDelta}var ur=function(c,d){this._map=c,this._el=this._map.getCanvasContainer(),this._handlers=[],this._handlersById={},this._changes=[],this._inertia=new Nl(c),this._bearingSnap=d.bearingSnap,this._previousActiveHandlers={},this._eventsInProgress={},this._addDefaultHandlers(d),o.bindAll(["handleEvent","handleWindowEvent"],this);var h=this._el;this._listeners=[[h,"touchstart",{passive:!0}],[h,"touchmove",{passive:!1}],[h,"touchend",void 0],[h,"touchcancel",void 0],[h,"mousedown",void 0],[h,"mousemove",void 0],[h,"mouseup",void 0],[o.window.document,"mousemove",{capture:!0}],[o.window.document,"mouseup",void 0],[h,"mouseover",void 0],[h,"mouseout",void 0],[h,"dblclick",void 0],[h,"click",void 0],[h,"keydown",{capture:!1}],[h,"keyup",void 0],[h,"wheel",{passive:!1}],[h,"contextmenu",void 0],[o.window,"blur",void 0]];for(var m=0,E=this._listeners;m<E.length;m+=1){var M=E[m],R=M[0];f.addEventListener(R,M[1],R===o.window.document?this.handleWindowEvent:this.handleEvent,M[2])}};ur.prototype.destroy=function(){for(var c=0,d=this._listeners;c<d.length;c+=1){var h=d[c],m=h[0];f.removeEventListener(m,h[1],m===o.window.document?this.handleWindowEvent:this.handleEvent,h[2])}},ur.prototype._addDefaultHandlers=function(c){var d=this._map,h=d.getCanvasContainer();this._add("mapEvent",new xi(d,c));var m=d.boxZoom=new Is(d,c);this._add("boxZoom",m);var E=new _s,M=new io;d.doubleClickZoom=new Oo(M,E),this._add("tapZoom",E),this._add("clickZoom",M);var R=new qi;this._add("tapDragZoom",R);var L=d.touchPitch=new wi;this._add("touchPitch",L);var z=new _u(c),q=new vf(c);d.dragRotate=new ta(c,z,q),this._add("mouseRotate",z,["mousePitch"]),this._add("mousePitch",q,["mouseRotate"]);var ee=new yf(c),Y=new no(c);d.dragPan=new Ia(h,ee,Y),this._add("mousePan",ee),this._add("touchPan",Y,["touchZoom","touchRotate"]);var re=new bf,oe=new Ps;d.touchZoomRotate=new so(h,oe,re,R),this._add("touchRotate",re,["touchPan","touchZoom"]),this._add("touchZoom",oe,["touchPan","touchRotate"]);var xe=d.scrollZoom=new Gr(d,this);this._add("scrollZoom",xe,["mousePan"]);var Oe=d.keyboard=new wo;this._add("keyboard",Oe),this._add("blockableMapEvent",new or(d));for(var ge=0,Re=["boxZoom","doubleClickZoom","tapDragZoom","touchPitch","dragRotate","dragPan","touchZoomRotate","scrollZoom","keyboard"];ge<Re.length;ge+=1){var Ge=Re[ge];c.interactive&&c[Ge]&&d[Ge].enable(c[Ge])}},ur.prototype._add=function(c,d,h){this._handlers.push({handlerName:c,handler:d,allowed:h}),this._handlersById[c]=d},ur.prototype.stop=function(c){if(!this._updatingCamera){for(var d=0,h=this._handlers;d<h.length;d+=1)h[d].handler.reset();this._inertia.clear(),this._fireEvents({},{},c),this._changes=[]}},ur.prototype.isActive=function(){for(var c=0,d=this._handlers;c<d.length;c+=1)if(d[c].handler.isActive())return!0;return!1},ur.prototype.isZooming=function(){return!!this._eventsInProgress.zoom||this._map.scrollZoom.isZooming()},ur.prototype.isRotating=function(){return!!this._eventsInProgress.rotate},ur.prototype.isMoving=function(){return!!ss(this._eventsInProgress)||this.isZooming()},ur.prototype._blockedByActive=function(c,d,h){for(var m in c)if(m!==h&&(!d||d.indexOf(m)<0))return!0;return!1},ur.prototype.handleWindowEvent=function(c){this.handleEvent(c,c.type+"Window")},ur.prototype._getMapTouches=function(c){for(var d=[],h=0,m=c;h<m.length;h+=1){var E=m[h];this._el.contains(E.target)&&d.push(E)}return d},ur.prototype.handleEvent=function(c,d){this._updatingCamera=!0;for(var h=c.type==="renderFrame"?void 0:c,m={needsRenderFrame:!1},E={},M={},R=c.touches?this._getMapTouches(c.touches):void 0,L=R?f.touchPos(this._el,R):f.mousePos(this._el,c),z=0,q=this._handlers;z<q.length;z+=1){var ee=q[z],Y=ee.handlerName,re=ee.handler,oe=ee.allowed;if(re.isEnabled()){var xe=void 0;this._blockedByActive(M,oe,Y)?re.reset():re[d||c.type]&&(xe=re[d||c.type](c,L,R),this.mergeHandlerResult(m,E,xe,Y,h),xe&&xe.needsRenderFrame&&this._triggerRenderFrame()),(xe||re.isActive())&&(M[Y]=re)}}var Oe={};for(var ge in this._previousActiveHandlers)M[ge]||(Oe[ge]=h);this._previousActiveHandlers=M,(Object.keys(Oe).length||wr(m))&&(this._changes.push([m,E,Oe]),this._triggerRenderFrame()),(Object.keys(M).length||wr(m))&&this._map._stop(!0),this._updatingCamera=!1;var Re=m.cameraAnimation;Re&&(this._inertia.clear(),this._fireEvents({},{},!0),this._changes=[],Re(this._map))},ur.prototype.mergeHandlerResult=function(c,d,h,m,E){if(h){o.extend(c,h);var M={handlerName:m,originalEvent:h.originalEvent||E};h.zoomDelta!==void 0&&(d.zoom=M),h.panDelta!==void 0&&(d.drag=M),h.pitchDelta!==void 0&&(d.pitch=M),h.bearingDelta!==void 0&&(d.rotate=M)}},ur.prototype._applyChanges=function(){for(var c={},d={},h={},m=0,E=this._changes;m<E.length;m+=1){var M=E[m],R=M[0],L=M[1],z=M[2];R.panDelta&&(c.panDelta=(c.panDelta||new o.Point(0,0))._add(R.panDelta)),R.zoomDelta&&(c.zoomDelta=(c.zoomDelta||0)+R.zoomDelta),R.bearingDelta&&(c.bearingDelta=(c.bearingDelta||0)+R.bearingDelta),R.pitchDelta&&(c.pitchDelta=(c.pitchDelta||0)+R.pitchDelta),R.around!==void 0&&(c.around=R.around),R.pinchAround!==void 0&&(c.pinchAround=R.pinchAround),R.noInertia&&(c.noInertia=R.noInertia),o.extend(d,L),o.extend(h,z)}this._updateMapTransform(c,d,h),this._changes=[]},ur.prototype._updateMapTransform=function(c,d,h){var m=this._map,E=m.transform;if(!wr(c))return this._fireEvents(d,h,!0);var M=c.panDelta,R=c.zoomDelta,L=c.bearingDelta,z=c.pitchDelta,q=c.around,ee=c.pinchAround;ee!==void 0&&(q=ee),m._stop(!0),q=q||m.transform.centerPoint;var Y=E.pointLocation(M?q.sub(M):q);L&&(E.bearing+=L),z&&(E.pitch+=z),R&&(E.zoom+=R),E.setLocationAtPoint(Y,q),this._map._update(),c.noInertia||this._inertia.record(c),this._fireEvents(d,h,!0)},ur.prototype._fireEvents=function(c,d,h){var m=this,E=ss(this._eventsInProgress),M=ss(c),R={};for(var L in c)this._eventsInProgress[L]||(R[L+"start"]=c[L].originalEvent),this._eventsInProgress[L]=c[L];for(var z in!E&&M&&this._fireEvent("movestart",M.originalEvent),R)this._fireEvent(z,R[z]);for(var q in M&&this._fireEvent("move",M.originalEvent),c)this._fireEvent(q,c[q].originalEvent);var ee,Y={};for(var re in this._eventsInProgress){var oe=this._eventsInProgress[re],xe=oe.handlerName,Oe=oe.originalEvent;this._handlersById[xe].isActive()||(delete this._eventsInProgress[re],Y[re+"end"]=ee=d[xe]||Oe)}for(var ge in Y)this._fireEvent(ge,Y[ge]);var Re=ss(this._eventsInProgress);if(h&&(E||M)&&!Re){this._updatingCamera=!0;var Ge=this._inertia._onMoveEnd(this._map.dragPan._inertiaOptions),$e=function(nt){return nt!==0&&-m._bearingSnap<nt&&nt<m._bearingSnap};
2593Ge?($e(Ge.bearing||this._map.getBearing())&&(Ge.bearing=0),this._map.easeTo(Ge,{originalEvent:ee})):(this._map.fire(new o.Event("moveend",{originalEvent:ee})),$e(this._map.getBearing())&&this._map.resetNorth()),this._updatingCamera=!1}},ur.prototype._fireEvent=function(c,d){this._map.fire(new o.Event(c,d?{originalEvent:d}:{}))},ur.prototype._requestFrame=function(){var c=this;return this._map.triggerRepaint(),this._map._renderTaskQueue.add((function(d){delete c._frameId,c.handleEvent(new Bc("renderFrame",{timeStamp:d})),c._applyChanges()}))},ur.prototype._triggerRenderFrame=function(){this._frameId===void 0&&(this._frameId=this._requestFrame())};var bu=(function(c){function d(h,m){c.call(this),this._moving=!1,this._zooming=!1,this.transform=h,this._bearingSnap=m.bearingSnap,o.bindAll(["_renderFrameCallback"],this)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.getCenter=function(){return new o.LngLat(this.transform.center.lng,this.transform.center.lat)},d.prototype.setCenter=function(h,m){return this.jumpTo({center:h},m)},d.prototype.panBy=function(h,m,E){return h=o.Point.convert(h).mult(-1),this.panTo(this.transform.center,o.extend({offset:h},m),E)},d.prototype.panTo=function(h,m,E){return this.easeTo(o.extend({center:h},m),E)},d.prototype.getZoom=function(){return this.transform.zoom},d.prototype.setZoom=function(h,m){return this.jumpTo({zoom:h},m),this},d.prototype.zoomTo=function(h,m,E){return this.easeTo(o.extend({zoom:h},m),E)},d.prototype.zoomIn=function(h,m){return this.zoomTo(this.getZoom()+1,h,m),this},d.prototype.zoomOut=function(h,m){return this.zoomTo(this.getZoom()-1,h,m),this},d.prototype.getBearing=function(){return this.transform.bearing},d.prototype.setBearing=function(h,m){return this.jumpTo({bearing:h},m),this},d.prototype.getPadding=function(){return this.transform.padding},d.prototype.setPadding=function(h,m){return this.jumpTo({padding:h},m),this},d.prototype.rotateTo=function(h,m,E){return this.easeTo(o.extend({bearing:h},m),E)},d.prototype.resetNorth=function(h,m){return this.rotateTo(0,o.extend({duration:1e3},h),m),this},d.prototype.resetNorthPitch=function(h,m){return this.easeTo(o.extend({bearing:0,pitch:0,duration:1e3},h),m),this},d.prototype.snapToNorth=function(h,m){return Math.abs(this.getBearing())<this._bearingSnap?this.resetNorth(h,m):this},d.prototype.getPitch=function(){return this.transform.pitch},d.prototype.setPitch=function(h,m){return this.jumpTo({pitch:h},m),this},d.prototype.cameraForBounds=function(h,m){h=o.LngLatBounds.convert(h);var E=m&&m.bearing||0;return this._cameraForBoxAndBearing(h.getNorthWest(),h.getSouthEast(),E,m)},d.prototype._cameraForBoxAndBearing=function(h,m,E,M){var R={top:0,bottom:0,right:0,left:0};if(typeof(M=o.extend({padding:R,offset:[0,0],maxZoom:this.transform.maxZoom},M)).padding=="number"){var L=M.padding;M.padding={top:L,bottom:L,right:L,left:L}}M.padding=o.extend(R,M.padding);var z=this.transform,q=z.padding,ee=z.project(o.LngLat.convert(h)),Y=z.project(o.LngLat.convert(m)),re=ee.rotate(-E*Math.PI/180),oe=Y.rotate(-E*Math.PI/180),xe=new o.Point(Math.max(re.x,oe.x),Math.max(re.y,oe.y)),Oe=new o.Point(Math.min(re.x,oe.x),Math.min(re.y,oe.y)),ge=xe.sub(Oe),Re=(z.width-(q.left+q.right+M.padding.left+M.padding.right))/ge.x,Ge=(z.height-(q.top+q.bottom+M.padding.top+M.padding.bottom))/ge.y;if(!(Ge<0||Re<0)){var $e=Math.min(z.scaleZoom(z.scale*Math.min(Re,Ge)),M.maxZoom),nt=typeof M.offset.x=="number"?new o.Point(M.offset.x,M.offset.y):o.Point.convert(M.offset),qe=new o.Point((M.padding.left-M.padding.right)/2,(M.padding.top-M.padding.bottom)/2).rotate(E*Math.PI/180),et=nt.add(qe).mult(z.scale/z.zoomScale($e));return{center:z.unproject(ee.add(Y).div(2).sub(et)),zoom:$e,bearing:E}}o.warnOnce("Map cannot fit within canvas with the given bounds, padding, and/or offset.")},d.prototype.fitBounds=function(h,m,E){return this._fitInternal(this.cameraForBounds(h,m),m,E)},d.prototype.fitScreenCoordinates=function(h,m,E,M,R){return this._fitInternal(this._cameraForBoxAndBearing(this.transform.pointLocation(o.Point.convert(h)),this.transform.pointLocation(o.Point.convert(m)),E,M),M,R)},d.prototype._fitInternal=function(h,m,E){return h?(delete(m=o.extend(h,m)).padding,m.linear?this.easeTo(m,E):this.flyTo(m,E)):this},d.prototype.jumpTo=function(h,m){this.stop();var E=this.transform,M=!1,R=!1,L=!1;return"zoom"in h&&E.zoom!==+h.zoom&&(M=!0,E.zoom=+h.zoom),h.center!==void 0&&(E.center=o.LngLat.convert(h.center)),"bearing"in h&&E.bearing!==+h.bearing&&(R=!0,E.bearing=+h.bearing),"pitch"in h&&E.pitch!==+h.pitch&&(L=!0,E.pitch=+h.pitch),h.padding==null||E.isPaddingEqual(h.padding)||(E.padding=h.padding),this.fire(new o.Event("movestart",m)).fire(new o.Event("move",m)),M&&this.fire(new o.Event("zoomstart",m)).fire(new o.Event("zoom",m)).fire(new o.Event("zoomend",m)),R&&this.fire(new o.Event("rotatestart",m)).fire(new o.Event("rotate",m)).fire(new o.Event("rotateend",m)),L&&this.fire(new o.Event("pitchstart",m)).fire(new o.Event("pitch",m)).fire(new o.Event("pitchend",m)),this.fire(new o.Event("moveend",m))},d.prototype.easeTo=function(h,m){var E=this;this._stop(!1,h.easeId),((h=o.extend({offset:[0,0],duration:500,easing:o.ease},h)).animate===!1||!h.essential&&o.browser.prefersReducedMotion)&&(h.duration=0);var M=this.transform,R=this.getZoom(),L=this.getBearing(),z=this.getPitch(),q=this.getPadding(),ee="zoom"in h?+h.zoom:R,Y="bearing"in h?this._normalizeBearing(h.bearing,L):L,re="pitch"in h?+h.pitch:z,oe="padding"in h?h.padding:M.padding,xe=o.Point.convert(h.offset),Oe=M.centerPoint.add(xe),ge=M.pointLocation(Oe),Re=o.LngLat.convert(h.center||ge);this._normalizeCenter(Re);
vendor: 12,283 bytes, line 2593
2593var Ge,$e,nt=M.project(ge),qe=M.project(Re).sub(nt),et=M.zoomScale(ee-R);h.around&&(Ge=o.LngLat.convert(h.around),$e=M.locationPoint(Ge));var pt={moving:this._moving,zooming:this._zooming,rotating:this._rotating,pitching:this._pitching};return this._zooming=this._zooming||ee!==R,this._rotating=this._rotating||L!==Y,this._pitching=this._pitching||re!==z,this._padding=!M.isPaddingEqual(oe),this._easeId=h.easeId,this._prepareEase(m,h.noMoveStart,pt),this._ease((function(Dt){if(E._zooming&&(M.zoom=o.number(R,ee,Dt)),E._rotating&&(M.bearing=o.number(L,Y,Dt)),E._pitching&&(M.pitch=o.number(z,re,Dt)),E._padding&&(M.interpolatePadding(q,oe,Dt),Oe=M.centerPoint.add(xe)),Ge)M.setLocationAtPoint(Ge,$e);else{var Tt=M.zoomScale(M.zoom-R),zt=ee>R?Math.min(2,et):Math.max(.5,et),sr=Math.pow(zt,1-Dt),Cr=M.unproject(nt.add(qe.mult(Dt*sr)).mult(Tt));M.setLocationAtPoint(M.renderWorldCopies?Cr.wrap():Cr,Oe)}E._fireMoveEvents(m)}),(function(Dt){E._afterEase(m,Dt)}),h),this},d.prototype._prepareEase=function(h,m,E){E===void 0&&(E={}),this._moving=!0,m||E.moving||this.fire(new o.Event("movestart",h)),this._zooming&&!E.zooming&&this.fire(new o.Event("zoomstart",h)),this._rotating&&!E.rotating&&this.fire(new o.Event("rotatestart",h)),this._pitching&&!E.pitching&&this.fire(new o.Event("pitchstart",h))},d.prototype._fireMoveEvents=function(h){this.fire(new o.Event("move",h)),this._zooming&&this.fire(new o.Event("zoom",h)),this._rotating&&this.fire(new o.Event("rotate",h)),this._pitching&&this.fire(new o.Event("pitch",h))},d.prototype._afterEase=function(h,m){if(!this._easeId||!m||this._easeId!==m){delete this._easeId;var E=this._zooming,M=this._rotating,R=this._pitching;this._moving=!1,this._zooming=!1,this._rotating=!1,this._pitching=!1,this._padding=!1,E&&this.fire(new o.Event("zoomend",h)),M&&this.fire(new o.Event("rotateend",h)),R&&this.fire(new o.Event("pitchend",h)),this.fire(new o.Event("moveend",h))}},d.prototype.flyTo=function(h,m){var E=this;if(!h.essential&&o.browser.prefersReducedMotion){var M=o.pick(h,["center","zoom","bearing","pitch","around"]);return this.jumpTo(M,m)}this.stop(),h=o.extend({offset:[0,0],speed:1.2,curve:1.42,easing:o.ease},h);var R=this.transform,L=this.getZoom(),z=this.getBearing(),q=this.getPitch(),ee=this.getPadding(),Y="zoom"in h?o.clamp(+h.zoom,R.minZoom,R.maxZoom):L,re="bearing"in h?this._normalizeBearing(h.bearing,z):z,oe="pitch"in h?+h.pitch:q,xe="padding"in h?h.padding:R.padding,Oe=R.zoomScale(Y-L),ge=o.Point.convert(h.offset),Re=R.centerPoint.add(ge),Ge=R.pointLocation(Re),$e=o.LngLat.convert(h.center||Ge);this._normalizeCenter($e);var nt=R.project(Ge),qe=R.project($e).sub(nt),et=h.curve,pt=Math.max(R.width,R.height),Dt=pt/Oe,Tt=qe.mag();if("minZoom"in h){var zt=o.clamp(Math.min(h.minZoom,L,Y),R.minZoom,R.maxZoom),sr=pt/R.zoomScale(zt-L);et=Math.sqrt(sr/Tt*2)}var Cr=et*et;function Pr(kr){var Fr=(Dt*Dt-pt*pt+(kr?-1:1)*Cr*Cr*Tt*Tt)/(2*(kr?Dt:pt)*Cr*Tt);return Math.log(Math.sqrt(Fr*Fr+1)-Fr)}function xn(kr){return(Math.exp(kr)-Math.exp(-kr))/2}function ar(kr){return(Math.exp(kr)+Math.exp(-kr))/2}var Wr=Pr(0),rn=function(kr){return ar(Wr)/ar(Wr+et*kr)},Hr=function(kr){return pt*((ar(Wr)*(xn(Fr=Wr+et*kr)/ar(Fr))-xn(Wr))/Cr)/Tt;var Fr},Vr=(Pr(1)-Wr)/et;if(Math.abs(Tt)<1e-6||!isFinite(Vr)){if(Math.abs(pt-Dt)<1e-6)return this.easeTo(h,m);var Yr=Dt<pt?-1:1;Vr=Math.abs(Math.log(Dt/pt))/et,Hr=function(){return 0},rn=function(kr){return Math.exp(Yr*et*kr)}}return h.duration="duration"in h?+h.duration:1e3*Vr/("screenSpeed"in h?+h.screenSpeed/et:+h.speed),h.maxDuration&&h.duration>h.maxDuration&&(h.duration=0),this._zooming=!0,this._rotating=z!==re,this._pitching=oe!==q,this._padding=!R.isPaddingEqual(xe),this._prepareEase(m,!1),this._ease((function(kr){var Fr=kr*Vr,Ki=1/rn(Fr);R.zoom=kr===1?Y:L+R.scaleZoom(Ki),E._rotating&&(R.bearing=o.number(z,re,kr)),E._pitching&&(R.pitch=o.number(q,oe,kr)),E._padding&&(R.interpolatePadding(ee,xe,kr),Re=R.centerPoint.add(ge));var Ti=kr===1?$e:R.unproject(nt.add(qe.mult(Hr(Fr))).mult(Ki));R.setLocationAtPoint(R.renderWorldCopies?Ti.wrap():Ti,Re),E._fireMoveEvents(m)}),(function(){return E._afterEase(m)}),h),this},d.prototype.isEasing=function(){return!!this._easeFrameId},d.prototype.stop=function(){return this._stop()},d.prototype._stop=function(h,m){if(this._easeFrameId&&(this._cancelRenderFrame(this._easeFrameId),delete this._easeFrameId,delete this._onEaseFrame),this._onEaseEnd){var E=this._onEaseEnd;delete this._onEaseEnd,E.call(this,m)}if(!h){var M=this.handlers;M&&M.stop(!1)}return this},d.prototype._ease=function(h,m,E){E.animate===!1||E.duration===0?(h(1),m()):(this._easeStart=o.browser.now(),this._easeOptions=E,this._onEaseFrame=h,this._onEaseEnd=m,this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback))},d.prototype._renderFrameCallback=function(){var h=Math.min((o.browser.now()-this._easeStart)/this._easeOptions.duration,1);this._onEaseFrame(this._easeOptions.easing(h)),h<1?this._easeFrameId=this._requestRenderFrame(this._renderFrameCallback):this.stop()},d.prototype._normalizeBearing=function(h,m){h=o.wrap(h,-180,180);var E=Math.abs(h-m);return Math.abs(h-360-m)<E&&(h-=360),Math.abs(h+360-m)<E&&(h+=360),h},d.prototype._normalizeCenter=function(h){var m=this.transform;if(m.renderWorldCopies&&!m.lngRange){var E=h.lng-m.center.lng;h.lng+=E>180?-360:E<-180?360:0}},d})(o.Evented),fs=function(c){c===void 0&&(c={}),this.options=c,o.bindAll(["_toggleAttribution","_updateEditLink","_updateData","_updateCompact"],this)};fs.prototype.getDefaultPosition=function(){return"bottom-right"},fs.prototype.onAdd=function(c){var d=this.options&&this.options.compact;return this._map=c,this._container=f.create("div","mapboxgl-ctrl mapboxgl-ctrl-attrib"),this._compactButton=f.create("button","mapboxgl-ctrl-attrib-button",this._container),this._compactButton.addEventListener("click",this._toggleAttribution),this._setElementTitle(this._compactButton,"ToggleAttribution"),this._innerContainer=f.create("div","mapboxgl-ctrl-attrib-inner",this._container),this._innerContainer.setAttribute("role","list"),d&&this._container.classList.add("mapboxgl-compact"),this._updateAttributions(),this._updateEditLink(),this._map.on("styledata",this._updateData),this._map.on("sourcedata",this._updateData),this._map.on("moveend",this._updateEditLink),d===void 0&&(this._map.on("resize",this._updateCompact),this._updateCompact()),this._container},fs.prototype.onRemove=function(){f.remove(this._container),this._map.off("styledata",this._updateData),this._map.off("sourcedata",this._updateData),this._map.off("moveend",this._updateEditLink),this._map.off("resize",this._updateCompact),this._map=void 0,this._attribHTML=void 0},fs.prototype._setElementTitle=function(c,d){var h=this._map._getUIString("AttributionControl."+d);c.title=h,c.setAttribute("aria-label",h)},fs.prototype._toggleAttribution=function(){this._container.classList.contains("mapboxgl-compact-show")?(this._container.classList.remove("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","false")):(this._container.classList.add("mapboxgl-compact-show"),this._compactButton.setAttribute("aria-pressed","true"))},fs.prototype._updateEditLink=function(){var c=this._editLink;c||(c=this._editLink=this._container.querySelector(".mapbox-improve-map"));var d=[{key:"owner",value:this.styleOwner},{key:"id",value:this.styleId},{key:"access_token",value:this._map._requestManager._customAccessToken||o.config.ACCESS_TOKEN}];if(c){var h=d.reduce((function(m,E,M){return E.value&&(m+=E.key+"="+E.value+(M<d.length-1?"&":"")),m}),"?");c.href=o.config.FEEDBACK_URL+"/"+h+(this._map._hash?this._map._hash.getHashString(!0):""),c.rel="noopener nofollow",this._setElementTitle(c,"MapFeedback")}},fs.prototype._updateData=function(c){!c||c.sourceDataType!=="metadata"&&c.sourceDataType!=="visibility"&&c.dataType!=="style"||(this._updateAttributions(),this._updateEditLink())},fs.prototype._updateAttributions=function(){if(this._map.style){var c=[];if(this.options.customAttribution&&(Array.isArray(this.options.customAttribution)?c=c.concat(this.options.customAttribution.map((function(L){return typeof L!="string"?"":L}))):typeof this.options.customAttribution=="string"&&c.push(this.options.customAttribution)),this._map.style.stylesheet){var d=this._map.style.stylesheet;this.styleOwner=d.owner,this.styleId=d.id}var h=this._map.style.sourceCaches;for(var m in h){var E=h[m];if(E.used){var M=E.getSource();M.attribution&&c.indexOf(M.attribution)<0&&c.push(M.attribution)}}c.sort((function(L,z){return L.length-z.length}));var R=(c=c.filter((function(L,z){for(var q=z+1;q<c.length;q++)if(c[q].indexOf(L)>=0)return!1;return!0}))).join(" | ");R!==this._attribHTML&&(this._attribHTML=R,c.length?(this._innerContainer.innerHTML=R,this._container.classList.remove("mapboxgl-attrib-empty")):this._container.classList.add("mapboxgl-attrib-empty"),this._editLink=null)}},fs.prototype._updateCompact=function(){this._map.getCanvasContainer().offsetWidth<=640?this._container.classList.add("mapboxgl-compact"):this._container.classList.remove("mapboxgl-compact","mapboxgl-compact-show")};var Ji=function(){o.bindAll(["_updateLogo"],this),o.bindAll(["_updateCompact"],this)};Ji.prototype.onAdd=function(c){this._map=c,this._container=f.create("div","mapboxgl-ctrl");var d=f.create("a","mapboxgl-ctrl-logo");return d.target="_blank",d.rel="noopener nofollow",d.href="https://www.mapbox.com/",d.setAttribute("aria-label",this._map._getUIString("LogoControl.Title")),d.setAttribute("rel","noopener nofollow"),this._container.appendChild(d),this._container.style.display="none",this._map.on("sourcedata",this._updateLogo),this._updateLogo(),this._map.on("resize",this._updateCompact),this._updateCompact(),this._container},Ji.prototype.onRemove=function(){f.remove(this._container),this._map.off("sourcedata",this._updateLogo),this._map.off("resize",this._updateCompact)},Ji.prototype.getDefaultPosition=function(){return"bottom-left"},Ji.prototype._updateLogo=function(c){c&&c.sourceDataType!=="metadata"||(this._container.style.display=this._logoRequired()?"block":"none")},Ji.prototype._logoRequired=function(){if(this._map.style){var c=this._map.style.sourceCaches;for(var d in c)if(c[d].getSource().mapbox_logo)return!0;return!1}},Ji.prototype._updateCompact=function(){var c=this._container.children;if(c.length){var d=c[0];this._map.getCanvasContainer().offsetWidth<250?d.classList.add("mapboxgl-compact"):d.classList.remove("mapboxgl-compact")}};var qn=function(){this._queue=[],this._id=0,this._cleared=!1,this._currentlyRunning=!1};qn.prototype.add=function(c){var d=++this._id;return this._queue.push({callback:c,id:d,cancelled:!1}),d},qn.prototype.remove=function(c){for(var d=this._currentlyRunning,h=0,m=d?this._queue.concat(d):this._queue;h<m.length;h+=1){var E=m[h];if(E.id===c)return void(E.cancelled=!0)}},qn.prototype.run=function(c){c===void 0&&(c=0);var d=this._currentlyRunning=this._queue;this._queue=[];for(var h=0,m=d;h<m.length;h+=1){var E=m[h];if(!E.cancelled&&(E.callback(c),this._cleared))break}this._cleared=!1,this._currentlyRunning=!1},qn.prototype.clear=function(){this._currentlyRunning&&(this._cleared=!0),this._queue=[]};var zr={"AttributionControl.ToggleAttribution":"Toggle attribution","AttributionControl.MapFeedback":"Map feedback","FullscreenControl.Enter":"Enter fullscreen","FullscreenControl.Exit":"Exit fullscreen","GeolocateControl.FindMyLocation":"Find my location","GeolocateControl.LocationNotAvailable":"Location not available","LogoControl.Title":"Mapbox logo","NavigationControl.ResetBearing":"Reset bearing to north","NavigationControl.ZoomIn":"Zoom in","NavigationControl.ZoomOut":"Zoom out","ScaleControl.Feet":"ft","ScaleControl.Meters":"m","ScaleControl.Kilometers":"km","ScaleControl.Miles":"mi","ScaleControl.NauticalMiles":"nm"},oo=o.window.HTMLImageElement,An=o.window.HTMLElement,Jr=o.window.ImageBitmap,ki={center:[0,0],zoom:0,bearing:0,pitch:0,minZoom:-2,maxZoom:22,minPitch:0,maxPitch:60,interactive:!0,scrollZoom:!0,boxZoom:!0,dragRotate:!0,dragPan:!0,keyboard:!0,doubleClickZoom:!0,touchZoomRotate:!0,touchPitch:!0,bearingSnap:7,clickTolerance:3,pitchWithRotate:!0,hash:!1,attributionControl:!0,failIfMajorPerformanceCaveat:!1,preserveDrawingBuffer:!1,trackResize:!0,renderWorldCopies:!0,refreshExpiredTiles:!0,maxTileC
2593acheSize:null,localIdeographFontFamily:"sans-serif",transformRequest:null,accessToken:null,fadeDuration:300,crossSourceCollisions:!0},xu=(function(c){function d(m){var E=this;if((m=o.extend({},ki,m)).minZoom!=null&&m.maxZoom!=null&&m.minZoom>m.maxZoom)throw new Error("maxZoom must be greater than or equal to minZoom");if(m.minPitch!=null&&m.maxPitch!=null&&m.minPitch>m.maxPitch)throw new Error("maxPitch must be greater than or equal to minPitch");if(m.minPitch!=null&&m.minPitch<0)throw new Error("minPitch must be greater than or equal to 0");if(m.maxPitch!=null&&m.maxPitch>60)throw new Error("maxPitch must be less than or equal to 60");var M=new fn(m.minZoom,m.maxZoom,m.minPitch,m.maxPitch,m.renderWorldCopies);if(c.call(this,M,m),this._interactive=m.interactive,this._maxTileCacheSize=m.maxTileCacheSize,this._failIfMajorPerformanceCaveat=m.failIfMajorPerformanceCaveat,this._preserveDrawingBuffer=m.preserveDrawingBuffer,this._antialias=m.antialias,this._trackResize=m.trackResize,this._bearingSnap=m.bearingSnap,this._refreshExpiredTiles=m.refreshExpiredTiles,this._fadeDuration=m.fadeDuration,this._crossSourceCollisions=m.crossSourceCollisions,this._crossFadingFactor=1,this._collectResourceTiming=m.collectResourceTiming,this._renderTaskQueue=new qn,this._controls=[],this._mapId=o.uniqueId(),this._locale=o.extend({},zr,m.locale),this._clickTolerance=m.clickTolerance,this._requestManager=new o.RequestManager(m.transformRequest,m.accessToken),typeof m.container=="string"){if(this._container=o.window.document.getElementById(m.container),!this._container)throw new Error("Container '"+m.container+"' not found.")}else{if(!(m.container instanceof An))throw new Error("Invalid type: 'container' must be a String or HTMLElement.");this._container=m.container}if(m.maxBounds&&this.setMaxBounds(m.maxBounds),o.bindAll(["_onWindowOnline","_onWindowResize","_onMapScroll","_contextLost","_contextRestored"],this),this._setupContainer(),this._setupPainter(),this.painter===void 0)throw new Error("Failed to initialize WebGL.");this.on("move",(function(){return E._update(!1)})),this.on("moveend",(function(){return E._update(!1)})),this.on("zoom",(function(){return E._update(!0)})),o.window!==void 0&&(o.window.addEventListener("online",this._onWindowOnline,!1),o.window.addEventListener("resize",this._onWindowResize,!1),o.window.addEventListener("orientationchange",this._onWindowResize,!1)),this.handlers=new ur(this,m),this._hash=m.hash&&new js(typeof m.hash=="string"&&m.hash||void 0).addTo(this),this._hash&&this._hash._onHashChange()||(this.jumpTo({center:m.center,zoom:m.zoom,bearing:m.bearing,pitch:m.pitch}),m.bounds&&(this.resize(),this.fitBounds(m.bounds,o.extend({},m.fitBoundsOptions,{duration:0})))),this.resize(),this._localIdeographFontFamily=m.localIdeographFontFamily,m.style&&this.setStyle(m.style,{localIdeographFontFamily:m.localIdeographFontFamily}),m.attributionControl&&this.addControl(new fs({customAttribution:m.customAttribution})),this.addControl(new Ji,m.logoPosition),this.on("style.load",(function(){E.transform.unmodified&&E.jumpTo(E.style.stylesheet)})),this.on("data",(function(R){E._update(R.dataType==="style"),E.fire(new o.Event(R.dataType+"data",R))})),this.on("dataloading",(function(R){E.fire(new o.Event(R.dataType+"dataloading",R))}))}c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d;var h={showTileBoundaries:{configurable:!0},showPadding:{configurable:!0},showCollisionBoxes:{configurable:!0},showOverdrawInspector:{configurable:!0},repaint:{configurable:!0},vertices:{configurable:!0},version:{configurable:!0}};return d.prototype._getMapId=function(){return this._mapId},d.prototype.addControl=function(m,E){if(E===void 0&&(E=m.getDefaultPosition?m.getDefaultPosition():"top-right"),!m||!m.onAdd)return this.fire(new o.ErrorEvent(new Error("Invalid argument to map.addControl(). Argument must be a control with onAdd and onRemove methods.")));var M=m.onAdd(this);this._controls.push(m);var R=this._controlPositions[E];return E.indexOf("bottom")!==-1?R.insertBefore(M,R.firstChild):R.appendChild(M),this},d.prototype.removeControl=function(m){if(!m||!m.onRemove)return this.fire(new o.ErrorEvent(new Error("Invalid argument to map.removeControl(). Argument must be a control with onAdd and onRemove methods.")));var E=this._controls.indexOf(m);return E>-1&&this._controls.splice(E,1),m.onRemove(this),this}
2593,d.prototype.hasControl=function(m){return this._controls.indexOf(m)>-1},d.prototype.resize=function(m){var E=this._containerDimensions(),M=E[0],R=E[1];if(M===this.transform.width&&R===this.transform.height)return this;this._resizeCanvas(M,R),this.transform.resize(M,R),this.painter.resize(M,R);var L=!this._moving;return L&&this.fire(new o.Event("movestart",m)).fire(new o.Event("move",m)),this.fire(new o.Event("resize",m)),L&&this.fire(new o.Event("moveend",m)),this},d.prototype.getBounds=function(){return this.transform.getBounds()},d.prototype.getMaxBounds=function(){return this.transform.getMaxBounds()},d.prototype.setMaxBounds=function(m){return this.transform.setMaxBounds(o.LngLatBounds.convert(m)),this._update()},d.prototype.setMinZoom=function(m){if((m=m??-2)>=-2&&m<=this.transform.maxZoom)return this.transform.minZoom=m,this._update(),this.getZoom()<m&&this.setZoom(m),this;throw new Error("minZoom must be between -2 and the current maxZoom, inclusive")},d.prototype.getMinZoom=function(){return this.transform.minZoom},d.prototype.setMaxZoom=function(m){if((m=m??22)>=this.transform.minZoom)return this.transform.maxZoom=m,this._update(),this.getZoom()>m&&this.setZoom(m),this;throw new Error("maxZoom must be greater than the current minZoom")},d.prototype.getMaxZoom=function(){return this.transform.maxZoom},d.prototype.setMinPitch=function(m){if((m=m??0)<0)throw new Error("minPitch must be greater than or equal to 0");if(m>=0&&m<=this.transform.maxPitch)return this.transform.minPitch=m,this._update(),this.getPitch()<m&&this.setPitch(m),this;throw new Error("minPitch must be between 0 and the current maxPitch, inclusive")},d.prototype.getMinPitch=function(){return this.transform.minPitch},d.prototype.setMaxPitch=function(m){if((m=m??60)>60)throw new Error("maxPitch must be less than or equal to 60");if(m>=this.transform.minPitch)return this.transform.maxPitch=m,this._update(),this.getPitch()>m&&this.setPitch(m),this;throw new Error("maxPitch must be greater than the current minPitch")},d.prototype.getMaxPitch=function(){return this.transform.maxPitch},d.prototype.getRenderWorldCopies=function(){return this.transform.renderWorldCopies},d.prototype.setRenderWorldCopies=function(m){return this.transform.renderWorldCopies=m,this._update()},d.prototype.project=function(m){return this.transform.locationPoint(o.LngLat.convert(m))},d.prototype.unproject=function(m){return this.transform.pointLocation(o.Point.convert(m))},d.prototype.isMoving=function(){return this._moving||this.handlers.isMoving()},d.prototype.isZooming=function(){return this._zooming||this.handlers.isZooming()},d.prototype.isRotating=function(){return this._rotating||this.handlers.isRotating()},d.prototype._createDelegatedListener=function(m,E,M){var R,L=this;if(m==="mouseenter"||m==="mouseover"){var z=!1;return{layer:E,listener:M,delegates:{mousemove:function(ee){var Y=L.getLayer(E)?L.queryRenderedFeatures(ee.point,{layers:[E]}):[];Y.length?z||(z=!0,M.call(L,new kn(m,L,ee.originalEvent,{features:Y}))):z=!1},mouseout:function(){z=!1}}}}if(m==="mouseleave"||m==="mouseout"){var q=!1;return{layer:E,listener:M,delegates:{mousemove:function(ee){(L.getLayer(E)?L.queryRenderedFeatures(ee.point,{layers:[E]}):[]).length?q=!0:q&&(q=!1,M.call(L,new kn(m,L,ee.originalEvent)))},mouseout:function(ee){q&&(q=!1,M.call(L,new kn(m,L,ee.originalEvent)))}}}}return{layer:E,listener:M,delegates:(R={},R[m]=function(ee){var Y=L.getLayer(E)?L.queryRenderedFeatures(ee.point,{layers:[E]}):[];Y.length&&(ee.features=Y,M.call(L,ee),delete ee.features)},R)}},d.prototype.on=function(m,E,M){if(M===void 0)return c.prototype.on.call(this,m,E);var R=this._createDelegatedListener(m,E,M);for(var L in this._delegatedListeners=this._delegatedListeners||{},this._delegatedListeners[m]=this._delegatedListeners[m]||[],this._delegatedListeners[m].push(R),R.delegates)this.on(L,R.delegates[L]);return this},d.prototype.once=function(m,E,M){if(M===void 0)return c.prototype.once.call(this,m,E);var R=this._createDelegatedListener(m,E,M);for(var L in R.delegates)this.once(L,R.delegates[L]);return this},d.prototype.off=function(m,E,M){var R=this;return M===void 0?c.prototype.off.call(this,m,E):(this._delegatedListeners&&this._delegatedListeners[m]&&(function(L){for(var z=L[m],q=0;q<z.length;q++){var ee=z[q];if(ee.layer===E&&ee.listener===M){for(var Y in ee.delegates)R.off(Y,ee.delegates[Y]);return z.splice(q,1),R}}})(this._delegatedListeners),this)},d.prototype.queryRenderedFeatures=function(m,E){if(!this.style)return[];var M;if(E!==void 0||m===void 0||m instanceof o.Point||Array.isArray(m)||(E=m,m=void 0),E=E||{},(m=m||[[0,0],[this.transform.width,this.transform.height]])instanceof o.Point||typeof m[0]=="number")M=[o.Point.convert(m)];else{var R=o.Point.convert(m[0]),L=o.Point.convert(m[1]);M=[R,new o.Point(L.x,R.y),L,new o.Point(R.x,L.y),R]}return this.style.queryRenderedFeatures(M,E,this.transform)},d.prototype.querySourceFeatures=function(m,E){return this.style.querySourceFeatures(m,E)},d.prototype.setStyle=function(m,E){return(E=o.extend({},{localIdeographFontFamily:this._localIdeographFontFamily},E)).diff!==!1&&E.localIdeographFontFamily===this._localIdeographFontFamily&&this.style&&m?(this._diffStyle(m,E),this):(this._localIdeographFontFamily=E.localIdeographFontFamily,this._updateStyle(m,E))},d.prototype._getUIString=function(m){var E=this._locale[m];
2593if(E==null)throw new Error("Missing UI string '"+m+"'");return E},d.prototype._updateStyle=function(m,E){return this.style&&(this.style.setEventedParent(null),this.style._remove()),m?(this.style=new Vn(this,E||{}),this.style.setEventedParent(this,{style:this.style}),typeof m=="string"?this.style.loadURL(m):this.style.loadJSON(m),this):(delete this.style,this)},d.prototype._lazyInitEmptyStyle=function(){this.style||(this.style=new Vn(this,{}),this.style.setEventedParent(this,{style:this.style}),this.style.loadEmpty())},d.prototype._diffStyle=function(m,E){var M=this;if(typeof m=="string"){var R=this._requestManager.normalizeStyleURL(m),L=this._requestManager.transformRequest(R,o.ResourceType.Style);o.getJSON(L,(function(z,q){z?M.fire(new o.ErrorEvent(z)):q&&M._updateDiff(q,E)}))}else typeof m=="object"&&this._updateDiff(m,E)},d.prototype._updateDiff=function(m,E){try{this.style.setState(m)&&this._update(!0)}catch(M){o.warnOnce("Unable to perform style diff: "+(M.message||M.error||M)+". Rebuilding the style from scratch."),this._updateStyle(m,E)}},d.prototype.getStyle=function(){if(this.style)return this.style.serialize()},d.prototype.isStyleLoaded=function(){return this.style?this.style.loaded():o.warnOnce("There is no style added to the map.")},d.prototype.addSource=function(m,E){return this._lazyInitEmptyStyle(),this.style.addSource(m,E),this._update(!0)},d.prototype.isSourceLoaded=function(m){var E=this.style&&this.style.sourceCaches[m];if(E!==void 0)return E.loaded();this.fire(new o.ErrorEvent(new Error("There is no source with ID '"+m+"'")))},d.prototype.areTilesLoaded=function(){var m=this.style&&this.style.sourceCaches;for(var E in m){var M=m[E]._tiles;for(var R in M){var L=M[R];if(L.state!=="loaded"&&L.state!=="errored")return!1}}return!0},d.prototype.addSourceType=function(m,E,M){return this._lazyInitEmptyStyle(),this.style.addSourceType(m,E,M)},d.prototype.removeSource=function(m){return this.style.removeSource(m),this._update(!0)},d.prototype.getSource=function(m){return this.style.getSource(m)},d.prototype.addImage=function(m,E,M){M===void 0&&(M={});var R=M.pixelRatio;R===void 0&&(R=1);var L=M.sdf;L===void 0&&(L=!1);var z=M.stretchX,q=M.stretchY,ee=M.content;if(this._lazyInitEmptyStyle(),E instanceof oo||Jr&&E instanceof Jr){var Y=o.browser.getImageData(E);this.style.addImage(m,{data:new o.RGBAImage({width:Y.width,height:Y.height},Y.data),pixelRatio:R,stretchX:z,stretchY:q,content:ee,sdf:L,version:0})}else{if(E.width===void 0||E.height===void 0)return this.fire(new o.ErrorEvent(new Error("Invalid arguments to map.addImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`")));var re=E;this.style.addImage(m,{data:new o.RGBAImage({width:E.width,height:E.height},new Uint8Array(E.data)),pixelRatio:R,stretchX:z,stretchY:q,content:ee,sdf:L,version:0,userImage:re}),re.onAdd&&re.onAdd(this,m)}},d.prototype.updateImage=function(m,E){var M=this.style.getImage(m);if(!M)return this.fire(new o.ErrorEvent(new Error("The map has no image with that id. If you are adding a new image use `map.addImage(...)` instead.")));var R=E instanceof oo||Jr&&E instanceof Jr?o.browser.getImageData(E):E,L=R.width,z=R.height,q=R.data;return L===void 0||z===void 0?this.fire(new o.ErrorEvent(new Error("Invalid arguments to map.updateImage(). The second argument must be an `HTMLImageElement`, `ImageData`, `ImageBitmap`, or object with `width`, `height`, and `data` properties with the same format as `ImageData`"))):L!==M.data.width||z!==M.data.height?this.fire(new o.ErrorEvent(new Error("The width and height of the updated image must be that same as the previous version of the image"))):(M.data.replace(q,!(E instanceof oo||Jr&&E instanceof Jr)),void this.style.updateImage(m,M))},d.prototype.hasImage=function(m){return m?!!this.style.getImage(m):(this.fire(new o.ErrorEvent(new Error("Missing required image id"))),!1)},d.prototype.removeImage=function(m){this.style.removeImage(m)},d.prototype.loadImage=function(m,E){o.getImage(this._requestManager.transformRequest(m,o.ResourceType.Image),E)},d.prototype.listImages=function(){return this.style.listImages()},d.prototype.addLayer=function(m,E){return this._lazyInitEmptyStyle(),this.style.addLayer(m,E),this._update(!0)},d.prototype.moveLayer=function(m,E){return this.style.moveLayer(m,E),this._update(!0)},d.prototype.removeLayer=function(m){return this.style.removeLayer(m),this._update(!0)},d.prototype.getLayer=function(m){return this.style.getLayer(m)},d.prototype.setLayerZoomRange=function(m,E,M){return this.style.setLayerZoomRange(m,E,M),this._update(!0)},d.prototype.setFilter=function(m,E,M){return M===void 0&&(M={}),this.style.setFilter(m,E,M),this._update(!0)},d.prototype.getFilter=function(m){return this.style.getFilter(m)},d.prototype.setPaintProperty=function(m,E,M,R){return R===void 0&&(R={}),this.style.setPaintProperty(m,E,M,R),this._update(!0)},d.prototype.getPaintProperty=function(m,E){return this.style.getPaintProperty(m,E)},d.prototype.setLayoutProperty=function(m,E,M,R){return R===void 0&&(R={}),this.style.setLayoutProperty(m,E,M,R),this._update(!0)},d.prototype.getLayoutProperty=function(m,E){return this.style.getLayoutProperty(m,E)},d.prototype.setLight=function(m,E){return E===void 0&&(E={}),this._lazyInitEmptyStyle(),this.style.setLight(m,E),this._update(!0)},d.prototype.getLight=function(){return this.style.getLight()},d.prototype.setFeatureState=function(m,E){return this.style.setFeatureState(m,E),this._update()},d.prototype.removeFeatureState=function(m,E){return this.style.removeFeatureState(m,E),this._update()},d.prototype.getFeatureState=function(m){return this.style.getFeatureState(m)},d.prototype.getContainer=function(){return this._container},d.prototype.getCanvasContainer=function(){return this._canvasContainer},d.prototype.getCanvas=function(){return this._canvas},d.prototype._containerDimensions=function(){var m=0,E=0;return this._container&&(m=this._container.clientWidth||400,E=this._container.clientHeight||300),[m,E]},d.prototype._detectMissingCSS=function(){o.window.getComputedStyle(this._missingCSSCanary).getPropertyValue("background-color")!=="rgb(250, 128, 114)"&&o.warnOnce("This page appears to be missing CSS declarations for Mapbox GL JS, which may cause the map to display incorrectly. Please ensure your page includes mapbox-gl.css, as described
2593in https://www.mapbox.com/mapbox-gl-js/api/.")},d.prototype._setupContainer=function(){var m=this._container;m.classList.add("mapboxgl-map"),(this._missingCSSCanary=f.create("div","mapboxgl-canary",m)).style.visibility="hidden",this._detectMissingCSS();var E=this._canvasContainer=f.create("div","mapboxgl-canvas-container",m);this._interactive&&E.classList.add("mapboxgl-interactive"),this._canvas=f.create("canvas","mapboxgl-canvas",E),this._canvas.addEventListener("webglcontextlost",this._contextLost,!1),this._canvas.addEventListener("webglcontextrestored",this._contextRestored,!1),this._canvas.setAttribute("tabindex","0"),this._canvas.setAttribute("aria-label","Map"),this._canvas.setAttribute("role","region");var M=this._containerDimensions();this._resizeCanvas(M[0],M[1]);var R=this._controlContainer=f.create("div","mapboxgl-control-container",m),L=this._controlPositions={};["top-left","top-right","bottom-left","bottom-right"].forEach((function(z){L[z]=f.create("div","mapboxgl-ctrl-"+z,R)})),this._container.addEventListener("scroll",this._onMapScroll,!1)},d.prototype._resizeCanvas=function(m,E){var M=o.browser.devicePixelRatio||1;this._canvas.width=M*m,this._canvas.height=M*E,this._canvas.style.width=m+"px",this._canvas.style.height=E+"px"},d.prototype._setupPainter=function(){var m=o.extend({},l.webGLContextAttributes,{failIfMajorPerformanceCaveat:this._failIfMajorPerformanceCaveat,preserveDrawingBuffer:this._preserveDrawingBuffer,antialias:this._antialias||!1}),E=this._canvas.getContext("webgl",m)||this._canvas.getContext("experimental-webgl",m);E?(this.painter=new Xn(E,this.transform),o.webpSupported.testSupport(E)):this.fire(new o.ErrorEvent(new Error("Failed to initialize WebGL")))},d.prototype._contextLost=function(m){m.preventDefault(),this._frame&&(this._frame.cancel(),this._frame=null),this.fire(new o.Event("webglcontextlost",{originalEvent:m}))},d.prototype._contextRestored=function(m){this._setupPainter(),this.resize(),this._update(),this.fire(new o.Event("webglcontextrestored",{originalEvent:m}))},d.prototype._onMapScroll=function(m){if(m.target===this._container)return this._container.scrollTop=0,this._container.scrollLeft=0,!1},d.prototype.loaded=function(){return!this._styleDirty&&!this._sourcesDirty&&!!this.style&&this.style.loaded()},d.prototype._update=function(m){return this.style?(this._styleDirty=this._styleDirty||m,this._sourcesDirty=!0,this.triggerRepaint(),this):this},d.prototype._requestRenderFrame=function(m){return this._update(),this._renderTaskQueue.add(m)},d.prototype._cancelRenderFrame=function(m){this._renderTaskQueue.remove(m)},d.prototype._render=function(m){var E,M=this,R=0,L=this.painter.context.extTimerQuery;if(this.listens("gpu-timing-frame")&&(E=L.createQueryEXT(),L.beginQueryEXT(L.TIME_ELAPSED_EXT,E),R=o.browser.now()),this.painter.context.setDirty(),this.painter.setBaseState(),this._renderTaskQueue.run(m),!this._removed){var z=!1;if(this.style&&this._styleDirty){this._styleDirty=!1;var q=this.transform.zoom,ee=o.browser.now();this.style.zoomHistory.update(q,ee);var Y=new o.EvaluationParameters(q,{now:ee,fadeDuration:this._fadeDuration,zoomHistory:this.style.zoomHistory,transition:this.style.getTransition()}),re=Y.crossFadingFactor();re===1&&re===this._crossFadingFactor||(z=!0,this._crossFadingFactor=re),this.style.update(Y)}if(this.style&&this._sourcesDirty&&(this._sourcesDirty=!1,this.style._updateSources(this.transform)),this._placementDirty=this.style&&this.style._updatePlacement(this.painter.transform,this.showCollisionBoxes,this._fadeDuration,this._crossSourceCollisions),this.painter.render(this.style,{showTileBoundaries:this.showTileBoundaries,showOverdrawInspector:this._showOverdrawInspector,rotating:this.isRotating(),zooming:this.isZooming(),moving:this.isMoving(),fadeDuration:this._fadeDuration,showPadding:this.showPadding,gpuTiming:!!this.listens("gpu-timing-layer")}),this.fire(new o.Event("render")),this.loaded()&&!this._loaded&&(this._loaded=!0,this.fire(new o.Event("load"))),this.style&&(this.style.hasTransitions()||z)&&(this._styleDirty=!0),this.style&&!this._placementDirty&&this.style._releaseSymbolFadeTiles(),this.listens("gpu-timing-frame")){var oe=o.browser.now()-R;L.endQueryEXT(L.TIME_ELAPSED_EXT,E),setTimeout((function(){var ge=L.getQueryObjectEXT(E,L.QUERY_RESULT_EXT)/1e6;L.deleteQueryEXT(E),M.fire(new o.Event("gpu-timing-frame",{cpuTime:oe,gpuTime:ge}))}),50)}if(this.listens("gpu-timing-layer")){var xe=this.painter.collectGpuTimers();setTimeout((function(){var ge=M.painter.queryGpuTimers(xe);M.fire(new o.Event("gpu-timing-layer",{layerTimes:ge}))}),50)}var Oe=this._sourcesDirty||this._styleDirty||this._placementDirty;return Oe||this._repaint?this.triggerRepaint():!this.isMoving()&&this.loaded()&&this.fire(new o.Event("idle")),!this._loaded||this._fullyLoaded||Oe||(this._fullyLoaded=!0),this}},d.prototype.remove=function(){this._hash&&this._hash.remove();for(var m=0,E=this._controls;m<E.length;m+=1)E[m].onRemove(this);this._controls=[],this._frame&&(this._frame.cancel(),this._frame=null),this._renderTaskQueue.clear(),this.painter.destroy(),this.handlers.destroy(),delete this.handlers,this.setStyle(null),o.window!==void 0&&(o.window.removeEventListener("resize",this._onWindowResize,!1),o.window.removeEventListener("orientationchange",this._onWindowResize,!1),o.window.removeEventListener("online",this._onWindowOnline,!1));var M=this.painter.context.gl.getExtension("WEBGL_lose_context");M&&M.loseContext(),Hs(this._canvasContainer),Hs(this._controlContainer),Hs(this._missingCSSCanary),this._container.classList.remove("mapboxgl-map"),this._removed=!0,this.fire(new o.Event("remove"))},d.prototype.triggerRepaint=function(){var m=this;this.style&&!this._frame&&(this._frame=o.browser.frame((function(E){m._frame=null,m._render(E)})))},d.prototype._onWindowOnline=function(){this._update()},d.prototype._onWindowResize=function(m){this._trackResize&&this.resize({originalEvent:m})._update()},h.showTileBoundaries.get=function(){return!!this._showTileBoundaries},h.showTileBoundaries.set=function(m){this._showTileBoundaries!==m&&(this._showTileBoundaries=m,this._update())},h.showPadding.get=function(){return!!this._showPadding},h.showPadding.set=function(m){this._showPadding!==m&&(this._showPadding=m,this._update())},h.showCollisionBoxes.get=function(){return!!this._showCollisionBoxes},h.showCollisionBoxes.set=function(m){this._showCollisionBoxes!==m&&(this._showCollisionBoxes=m,m?this.style._generateCollisionBoxes():this._update())},h.showOverdrawInspector.get=function(){return!!this._showOverdrawInspector},h.showOverdrawInspector.set=function(m){this._showOverdrawInspector!==m&&(this._showOverdrawInspector=m,this._update())},h.repaint.get=function(){return!!this._repaint},h.repaint.set=function(m){this._repaint!==m&&(this._repaint=m,this.triggerRepaint())},h.vertices.get=function(){return!!this._vertices}
vendor: 12,951 bytes, line 2593
2593,h.vertices.set=function(m){this._vertices=m,this._update()},d.prototype._setCacheLimits=function(m,E){o.setCacheLimits(m,E)},h.version.get=function(){return o.version},Object.defineProperties(d.prototype,h),d})(bu);function Hs(c){c.parentNode&&c.parentNode.removeChild(c)}var wf={showCompass:!0,showZoom:!0,visualizePitch:!1},di=function(c){var d=this;this.options=o.extend({},wf,c),this._container=f.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._container.addEventListener("contextmenu",(function(h){return h.preventDefault()})),this.options.showZoom&&(o.bindAll(["_setButtonTitle","_updateZoomButtons"],this),this._zoomInButton=this._createButton("mapboxgl-ctrl-zoom-in",(function(h){return d._map.zoomIn({},{originalEvent:h})})),f.create("span","mapboxgl-ctrl-icon",this._zoomInButton).setAttribute("aria-hidden",!0),this._zoomOutButton=this._createButton("mapboxgl-ctrl-zoom-out",(function(h){return d._map.zoomOut({},{originalEvent:h})})),f.create("span","mapboxgl-ctrl-icon",this._zoomOutButton).setAttribute("aria-hidden",!0)),this.options.showCompass&&(o.bindAll(["_rotateCompassArrow"],this),this._compass=this._createButton("mapboxgl-ctrl-compass",(function(h){d.options.visualizePitch?d._map.resetNorthPitch({},{originalEvent:h}):d._map.resetNorth({},{originalEvent:h})})),this._compassIcon=f.create("span","mapboxgl-ctrl-icon",this._compass),this._compassIcon.setAttribute("aria-hidden",!0))};di.prototype._updateZoomButtons=function(){var c=this._map.getZoom(),d=c===this._map.getMaxZoom(),h=c===this._map.getMinZoom();this._zoomInButton.disabled=d,this._zoomOutButton.disabled=h,this._zoomInButton.setAttribute("aria-disabled",d.toString()),this._zoomOutButton.setAttribute("aria-disabled",h.toString())},di.prototype._rotateCompassArrow=function(){var c=this.options.visualizePitch?"scale("+1/Math.pow(Math.cos(this._map.transform.pitch*(Math.PI/180)),.5)+") rotateX("+this._map.transform.pitch+"deg) rotateZ("+this._map.transform.angle*(180/Math.PI)+"deg)":"rotate("+this._map.transform.angle*(180/Math.PI)+"deg)";this._compassIcon.style.transform=c},di.prototype.onAdd=function(c){return this._map=c,this.options.showZoom&&(this._setButtonTitle(this._zoomInButton,"ZoomIn"),this._setButtonTitle(this._zoomOutButton,"ZoomOut"),this._map.on("zoom",this._updateZoomButtons),this._updateZoomButtons()),this.options.showCompass&&(this._setButtonTitle(this._compass,"ResetBearing"),this.options.visualizePitch&&this._map.on("pitch",this._rotateCompassArrow),this._map.on("rotate",this._rotateCompassArrow),this._rotateCompassArrow(),this._handler=new os(this._map,this._compass,this.options.visualizePitch)),this._container},di.prototype.onRemove=function(){f.remove(this._container),this.options.showZoom&&this._map.off("zoom",this._updateZoomButtons),this.options.showCompass&&(this.options.visualizePitch&&this._map.off("pitch",this._rotateCompassArrow),this._map.off("rotate",this._rotateCompassArrow),this._handler.off(),delete this._handler),delete this._map},di.prototype._createButton=function(c,d){var h=f.create("button",c,this._container);return h.type="button",h.addEventListener("click",d),h},di.prototype._setButtonTitle=function(c,d){var h=this._map._getUIString("NavigationControl."+d);c.title=h,c.setAttribute("aria-label",h)};var os=function(c,d,h){h===void 0&&(h=!1),this._clickTolerance=10,this.element=d,this.mouseRotate=new _u({clickTolerance:c.dragRotate._mouseRotate._clickTolerance}),this.map=c,h&&(this.mousePitch=new vf({clickTolerance:c.dragRotate._mousePitch._clickTolerance})),o.bindAll(["mousedown","mousemove","mouseup","touchstart","touchmove","touchend","reset"],this),f.addEventListener(d,"mousedown",this.mousedown),f.addEventListener(d,"touchstart",this.touchstart,{passive:!1}),f.addEventListener(d,"touchmove",this.touchmove),f.addEventListener(d,"touchend",this.touchend),f.addEventListener(d,"touchcancel",this.reset)};function To(c,d,h){if(c=new o.LngLat(c.lng,c.lat),d){var m=new o.LngLat(c.lng-360,c.lat),E=new o.LngLat(c.lng+360,c.lat),M=h.locationPoint(c).distSqr(d);h.locationPoint(m).distSqr(d)<M?c=m:h.locationPoint(E).distSqr(d)<M&&(c=E)}for(;Math.abs(c.lng-h.center.lng)>180;){var R=h.locationPoint(c);if(R.x>=0&&R.y>=0&&R.x<=h.width&&R.y<=h.height)break;c.lng>h.center.lng?c.lng-=360:c.lng+=360}return c}os.prototype.down=function(c,d){this.mouseRotate.mousedown(c,d),this.mousePitch&&this.mousePitch.mousedown(c,d),f.disableDrag()},os.prototype.move=function(c,d){var h=this.map,m=this.mouseRotate.mousemoveWindow(c,d);if(m&&m.bearingDelta&&h.setBearing(h.getBearing()+m.bearingDelta),this.mousePitch){var E=this.mousePitch.mousemoveWindow(c,d);E&&E.pitchDelta&&h.setPitch(h.getPitch()+E.pitchDelta)}},os.prototype.off=function(){var c=this.element;f.removeEventListener(c,"mousedown",this.mousedown),f.removeEventListener(c,"touchstart",this.touchstart,{passive:!1}),f.removeEventListener(c,"touchmove",this.touchmove),f.removeEventListener(c,"touchend",this.touchend),f.removeEventListener(c,"touchcancel",this.reset),this.offTemp()},os.prototype.offTemp=function(){f.enableDrag(),f.removeEventListener(o.window,"mousemove",this.mousemove),f.removeEventListener(o.window,"mouseup",this.mouseup)},os.prototype.mousedown=function(c){this.down(o.extend({},c,{ctrlKey:!0,preventDefault:function(){return c.preventDefault()}}),f.mousePos(this.element,c)),f.addEventListener(o.window,"mousemove",this.mousemove),f.addEventListener(o.window,"mouseup",this.mouseup)},os.prototype.mousemove=function(c){this.move(c,f.mousePos(this.element,c))},os.prototype.mouseup=function(c){this.mouseRotate.mouseupWindow(c),this.mousePitch&&this.mousePitch.mouseupWindow(c),this.offTemp()},os.prototype.touchstart=function(c){c.targetTouches.length!==1?this.reset():(this._startPos=this._lastPos=f.touchPos(this.element,c.targetTouches)[0],this.down({type:"mousedown",button:0,ctrlKey:!0,preventDefault:function(){return c.preventDefault()}},this._startPos))},os.prototype.touchmove=function(c){c.targetTouches.length!==1?this.reset():(this._lastPos=f.touchPos(this.element,c.targetTouches)[0],this.move({preventDefault:function(){return c.preventDefault()}},this._lastPos))},os.prototype.touchend=function(c){c.targetTouches.length===0&&this._startPos&&this._lastPos&&this._startPos.dist(this._lastPos)<this._clickTolerance&&this.element.click(),this.reset()},os.prototype.reset=function(){this.mouseRotate.reset(),this.mousePitch&&this.mousePitch.reset(),delete this._startPos,delete this._lastPos,this.offTemp()};var Eo={center:"translate(-50%,-50%)",top:"translate(-50%,0)","top-left":"translate(0,0)","top-right":"translate(-100%,0)",bottom:"translate(-50%,-100%)","bottom-left":"translate(0,-100%)","bottom-right":"translate(-100%,-100%)",left:"translate(0,-50%)",right:"translate(-100%,-50%)"};function Xt(c,d,h){var m=c.classList;for(var E in Eo)m.remove("mapboxgl-"+h+"-anchor-"+E);m.add("mapboxgl-"+h+"-anchor-"+d)}var rr,Vl=(function(c){function d(h,m){if(c.call(this),(h instanceof o.window.HTMLElement||m)&&(h=o.extend({element:h},m)),o.bindAll(["_update","_onMove","_onUp","_addDragHandler","_onMapClick","_onKeyPress"],this),this._anchor=h&&h.anchor||"center",this._color=h&&h.color||"#3FB1CE",this._scale=h&&h.scale||1,this._draggable=h&&h.draggable||!1,this._clickTolerance=h&&h.clickTolerance||0,this._isDragging=!1,this._state="inactive",this._rotation=h&&h.rotation||0,this._rotationAlignment=h&&h.rotationAlignment||"auto",this._pitchAlignment=h&&h.pitchAlignment&&h.pitchAlignment!=="auto"?h.pitchAlignment:this._rotationAlignment,h&&h.element)this._element=h.element,this._offset=o.Point.convert(h&&h.offset||[0,0]);else{this._defaultMarker=!0,this._element=f.create("div"),this._element.setAttribute("aria-label","Map marker");var E=f.createNS("http://www.w3.org/2000/svg","svg");E.setAttributeNS(null,"display","block"),E.setAttributeNS(null,"height","41px"),E.setAttributeNS(null,"width","27px"),E.setAttributeNS(null,"viewBox","0 0 27 41");var M=f.createNS("http://www.w3.org/2000/svg","g");M.setAttributeNS(null,"stroke","none"),M.setAttributeNS(null,"stroke-width","1"),M.setAttributeNS(null,"fill","none"),M.setAttributeNS(null,"fill-rule","evenodd");var R=f.createNS("http://www.w3.org/2000/svg","g");R.setAttributeNS(null,"fill-rule","nonzero");var L=f.createNS("http://www.w3.org/2000/svg","g");L.setAttributeNS(null,"transform","translate(3.0, 29.0)"),L.setAttributeNS(null,"fill","#000000");for(var z=0,q=[{rx:"10.5",ry:"5.25002273"},{rx:"10.5",ry:"5.25002273"},{rx:"9.5",ry:"4.77275007"},{rx:"8.5",ry:"4.29549936"},{rx:"7.5",ry:"3.81822308"},{rx:"6.5",ry:"3.34094679"},{rx:"5.5",ry:"2.86367051"},{rx:"4.5",ry:"2.38636864"}];z<q.length;z+=1){var ee=q[z],Y=f.createNS("http://www.w3.org/2000/svg","ellipse");Y.setAttributeNS(null,"opacity","0.04"),Y.setAttributeNS(null,"cx","10.5"),Y.setAttributeNS(null,"cy","5.80029008"),Y.setAttributeNS(null,"rx",ee.rx),Y.setAttributeNS(null,"ry",ee.ry),L.appendChild(Y)}var re=f.createNS("http://www.w3.org/2000/svg","g");re.setAttributeNS(null,"fill",this._color);var oe=f.createNS("http://www.w3.org/2000/svg","path");oe.setAttributeNS(null,"d","M27,13.5 C27,19.074644 20.250001,27.000002 14.75,34.500002 C14.016665,35.500004 12.983335,35.500004 12.25,34.500002 C6.7499993,27.000002 0,19.222562 0,13.5 C0,6.0441559 6.0441559,0 13.5,0 C20.955844,0 27,6.0441559 27,13.5 Z"),re.appendChild(oe);var xe=f.createNS("http://www.w3.org/2000/svg","g");xe.setAttributeNS(null,"opacity","0.25"),xe.setAttributeNS(null,"fill","#000000");var Oe=f.createNS("http://www.w3.org/2000/svg","path");Oe.setAttributeNS(null,"d","M13.5,0 C6.0441559,0 0,6.0441559 0,13.5 C0,19.222562 6.7499993,27 12.25,34.5 C13,35.522727 14.016664,35.500004 14.75,34.5 C20.250001,27 27,19.074644 27,13.5 C27,6.0441559 20.955844,0 13.5,0 Z M13.5,1 C20.415404,1 26,6.584596 26,13.5 C26,15.898657 24.495584,19.181431 22.220703,22.738281 C19.945823,26.295132 16.705119,30.142167 13.943359,33.908203 C13.743445,34.180814 13.612715,34.322738 13.5,34.441406 C13.387285,34.322738 13.256555,34.180814 13.056641,33.908203 C10.284481,30.127985 7.4148684,26.314159 5.015625,22.773438 C2.6163816,19.232715 1,15.953538 1,13.5 C1,6.584596 6.584596,1 13.5,1 Z"),xe.appendChild(Oe);var ge=f.createNS("http://www.w3.org/2000/svg","g");ge.setAttributeNS(null,"transform","translate(6.0, 7.0)"),ge.setAttributeNS(null,"fill","#FFFFFF");var Re=f.createNS("http://www.w3.org/2000/svg","g");Re.setAttributeNS(null,"transform","translate(8.0, 8.0)");var Ge=f.createNS("http://www.w3.org/2000/svg","circle");Ge.setAttributeNS(null,"fill","#000000"),Ge.setAttributeNS(null,"opacity","0.25"),Ge.setAttributeNS(null,"cx","5.5"),Ge.setAttributeNS(null,"cy","5.5"),Ge.setAttributeNS(null,"r","5.4999962");var $e=f.createNS("http://www.w3.org/2000/svg","circle");$e.setAttributeNS(null,"fill","#FFFFFF"),$e.setAttributeNS(null,"cx","5.5"),$e.setAttributeNS(null,"cy","5.5"),$e.setAttributeNS(null,"r","5.4999962"),Re.appendChild(Ge),Re.appendChild($e),R.appendChild(L),R.appendChild(re),R.appendChild(xe),R.appendChild(ge),R.appendChild(Re),E.appendChild(R),E.setAttributeNS(null,"height",41*this._scale+"px"),E.setAttributeNS(null,"width",27*this._scale+"px"),this._element.appendChild(E),this._offset=o.Point.convert(h&&h.offset||[0,-14])}this._element.classList.add("mapboxgl-marker"),this._element.addEventListener("dragstart",(function(nt){nt.preventDefault()})),this._element.addEventListener("mousedown",(function(nt){nt.preventDefault()})),Xt(this._element,this._anchor,"marker"),this._popup=null}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.addTo=function(h){return this.remove(),this._map=h,h.getCanvasContainer().appendChild(this._element),h.on("move",this._update),h.on("moveend",this._update),this.setDraggable(this._draggable),this._update(),this._map.on("click",this._onMapClick),this},d.prototype.remove=function(){return this._map&&(this._map.off("click",this._onMapClick),this._map.off("move",this._update),this._map.off("moveend",this._update),this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler),this._map.off("mouseup",this._onUp),this._map.off("touchend",this._onUp),this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),delete this._map),f.remove(this._element),this._popup&&this._popup.remove(),this},d.prototype.getLngLat=function(){return this._lngLat},d.prototype.setLngLat=function(h){return this._lngLat=o.LngLat.convert(h),this._pos=null,this._popup&&this._popup.setLngLat(this._lngLat),this._update(),this},d.prototype.getElement=function(){return this._element},d.prototype.setPopup=function(h){if(this._popup&&(this._popup.remove(),this._popup=null,this._element.removeEventListener("keypress",this._onKeyPress),this._originalTabIndex||this._element.removeAttribute("tabindex")),h){if(!("offset"in h.options)){var m=Math.sqrt(Math.pow(13.5,2)/2);h.options.offset=this._defaultMarker?{top:[0,0],"top-left":[0,0],"top-right":[0,0],bottom:[
25930,-38.1],"bottom-left":[m,-1*(24.6+m)],"bottom-right":[-m,-1*(24.6+m)],left:[13.5,-24.6],right:[-13.5,-24.6]}:this._offset}this._popup=h,this._lngLat&&this._popup.setLngLat(this._lngLat),this._originalTabIndex=this._element.getAttribute("tabindex"),this._originalTabIndex||this._element.setAttribute("tabindex","0"),this._element.addEventListener("keypress",this._onKeyPress)}return this},d.prototype._onKeyPress=function(h){var m=h.code,E=h.charCode||h.keyCode;m!=="Space"&&m!=="Enter"&&E!==32&&E!==13||this.togglePopup()},d.prototype._onMapClick=function(h){var m=h.originalEvent.target,E=this._element;this._popup&&(m===E||E.contains(m))&&this.togglePopup()},d.prototype.getPopup=function(){return this._popup},d.prototype.togglePopup=function(){var h=this._popup;return h?(h.isOpen()?h.remove():h.addTo(this._map),this):this},d.prototype._update=function(h){if(this._map){this._map.transform.renderWorldCopies&&(this._lngLat=To(this._lngLat,this._pos,this._map.transform)),this._pos=this._map.project(this._lngLat)._add(this._offset);var m="";this._rotationAlignment==="viewport"||this._rotationAlignment==="auto"?m="rotateZ("+this._rotation+"deg)":this._rotationAlignment==="map"&&(m="rotateZ("+(this._rotation-this._map.getBearing())+"deg)");var E="";this._pitchAlignment==="viewport"||this._pitchAlignment==="auto"?E="rotateX(0deg)":this._pitchAlignment==="map"&&(E="rotateX("+this._map.getPitch()+"deg)"),h&&h.type!=="moveend"||(this._pos=this._pos.round()),f.setTransform(this._element,Eo[this._anchor]+" translate("+this._pos.x+"px, "+this._pos.y+"px) "+E+" "+m)}},d.prototype.getOffset=function(){return this._offset},d.prototype.setOffset=function(h){return this._offset=o.Point.convert(h),this._update(),this},d.prototype._onMove=function(h){if(!this._isDragging){var m=this._clickTolerance||this._map._clickTolerance;this._isDragging=h.point.dist(this._pointerdownPos)>=m}this._isDragging&&(this._pos=h.point.sub(this._positionDelta),this._lngLat=this._map.unproject(this._pos),this.setLngLat(this._lngLat),this._element.style.pointerEvents="none",this._state==="pending"&&(this._state="active",this.fire(new o.Event("dragstart"))),this.fire(new o.Event("drag")))},d.prototype._onUp=function(){this._element.style.pointerEvents="auto",this._positionDelta=null,this._pointerdownPos=null,this._isDragging=!1,this._map.off("mousemove",this._onMove),this._map.off("touchmove",this._onMove),this._state==="active"&&this.fire(new o.Event("dragend")),this._state="inactive"},d.prototype._addDragHandler=function(h){this._element.contains(h.originalEvent.target)&&(h.preventDefault(),this._positionDelta=h.point.sub(this._pos).add(this._offset),this._pointerdownPos=h.point,this._state="pending",this._map.on("mousemove",this._onMove),this._map.on("touchmove",this._onMove),this._map.once("mouseup",this._onUp),this._map.once("touchend",this._onUp))},d.prototype.setDraggable=function(h){return this._draggable=!!h,this._map&&(h?(this._map.on("mousedown",this._addDragHandler),this._map.on("touchstart",this._addDragHandler)):(this._map.off("mousedown",this._addDragHandler),this._map.off("touchstart",this._addDragHandler))),this},d.prototype.isDraggable=function(){return this._draggable},d.prototype.setRotation=function(h){return this._rotation=h||0,this._update(),this},d.prototype.getRotation=function(){return this._rotation},d.prototype.setRotationAlignment=function(h){return this._rotationAlignment=h||"auto",this._update(),this},d.prototype.getRotationAlignment=function(){return this._rotationAlignment},d.prototype.setPitchAlignment=function(h){return this._pitchAlignment=h&&h!=="auto"?h:this._rotationAlignment,this._update(),this},d.prototype.getPitchAlignment=function(){return this._pitchAlignment},d})(o.Evented),Pc={positionOptions:{enableHighAccuracy:!1,maximumAge:0,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showAccuracyCircle:!0,showUserLocation:!0},ra=0,Do=!1,na=(function(c){function d(h){c.call(this),this.options=o.extend({},Pc,h),o.bindAll(["_onSuccess","_onError","_onZoom","_finish","_setupUI","_updateCamera","_updateMarker"],this)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.onAdd=function(h){var m;return this._map=h,this._container=f.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),m=this._setupUI,rr!==void 0?m(rr):o.window.navigator.permissions!==void 0?o.window.navigator.permissions.query({name:"geolocation"}).then((function(E){m(rr=E.state!=="denied")})):m(rr=!!o.window.navigator.geolocation),this._container},d.prototype.onRemove=function(){this._geolocationWatchID!==void 0&&(o.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0),this.options.showUserLocation&&this._userLocationDotMarker&&this._userLocationDotMarker.remove(),this.options.showAccuracyCircle&&this._accuracyCircleMarker&&this._accuracyCircleMarker.remove(),f.remove(this._container),this._map.off("zoom",this._onZoom),this._map=void 0,ra=0,Do=!1},d.prototype._isOutOfMapMaxBounds=function(h){var m=this._map.getMaxBounds(),E=h.coords;return m&&(E.longitude<m.getWest()||E.longitude>m.getEast()||E.latitude<m.getSouth()||E.latitude>m.getNorth())},d.prototype._setErrorState=function(){switch(this._watchState){case"WAITING_ACTIVE":this._watchState="ACTIVE_E
2593RROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"ACTIVE_LOCK":this._watchState="ACTIVE_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting");break;case"BACKGROUND":this._watchState="BACKGROUND_ERROR",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting")}},d.prototype._onSuccess=function(h){if(this._map){if(this._isOutOfMapMaxBounds(h))return this._setErrorState(),this.fire(new o.Event("outofmaxbounds",h)),this._updateMarker(),void this._finish();if(this.options.trackUserLocation)switch(this._lastKnownPosition=h,this._watchState){case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"BACKGROUND":case"BACKGROUND_ERROR":this._watchState="BACKGROUND",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background")}this.options.showUserLocation&&this._watchState!=="OFF"&&this._updateMarker(h),this.options.trackUserLocation&&this._watchState!=="ACTIVE_LOCK"||this._updateCamera(h),this.options.showUserLocation&&this._dotElement.classList.remove("mapboxgl-user-location-dot-stale"),this.fire(new o.Event("geolocate",h)),this._finish()}},d.prototype._updateCamera=function(h){var m=new o.LngLat(h.coords.longitude,h.coords.latitude),E=h.coords.accuracy,M=this._map.getBearing(),R=o.extend({bearing:M},this.options.fitBoundsOptions);this._map.fitBounds(m.toBounds(E),R,{geolocateSource:!0})},d.prototype._updateMarker=function(h){if(h){var m=new o.LngLat(h.coords.longitude,h.coords.latitude);this._accuracyCircleMarker.setLngLat(m).addTo(this._map),this._userLocationDotMarker.setLngLat(m).addTo(this._map),this._accuracy=h.coords.accuracy,this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()}else this._userLocationDotMarker.remove(),this._accuracyCircleMarker.remove()},d.prototype._updateCircleRadius=function(){var h=this._map._container.clientHeight/2,m=this._map.unproject([0,h]),E=this._map.unproject([1,h]),M=m.distanceTo(E),R=Math.ceil(2*this._accuracy/M);this._circleElement.style.width=R+"px",this._circleElement.style.height=R+"px"},d.prototype._onZoom=function(){this.options.showUserLocation&&this.options.showAccuracyCircle&&this._updateCircleRadius()},d.prototype._onError=function(h){if(this._map){if(this.options.trackUserLocation)if(h.code===1){this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this._geolocateButton.disabled=!0;var m=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.title=m,this._geolocateButton.setAttribute("aria-label",m),this._geolocationWatchID!==void 0&&this._clearWatch()}else{if(h.code===3&&Do)return;this._setErrorState()}this._watchState!=="OFF"&&this.options.showUserLocation&&this._dotElement.classList.add("mapboxgl-user-location-dot-stale"),this.fire(new o.Event("error",h)),this._finish()}},d.prototype._finish=function(){this._timeoutId&&clearTimeout(this._timeoutId),this._timeoutId=void 0},d.prototype._setupUI=function(h){var m=this;if(this._container.addEventListener("contextmenu",(function(R){return R.preventDefault()})),this._geolocateButton=f.create("button","mapboxgl-ctrl-geolocate",this._container),f.create("span","mapboxgl-ctrl-icon",this._geolocateButton).setAttribute("aria-hidden",!0),this._geolocateButton.type="button",h===!1){o.warnOnce("Geolocation support is not available so the GeolocateControl will be disabled.");var E=this._map._getUIString("GeolocateControl.LocationNotAvailable");this._geolocateButton.disabled=!0,this._geolocateButton.title=E,this._geolocateButton.setAttribute("aria-label",E)}else{var M=this._map._getUIString("GeolocateControl.FindMyLocation");this._geolocateButton.title=M,this._geolocateButton.setAttribute("aria-label",M)}this.options.trackUserLocation&&(this._geolocateButton.setAttribute("aria-pressed","fal
2593se"),this._watchState="OFF"),this.options.showUserLocation&&(this._dotElement=f.create("div","mapboxgl-user-location-dot"),this._userLocationDotMarker=new Vl(this._dotElement),this._circleElement=f.create("div","mapboxgl-user-location-accuracy-circle"),this._accuracyCircleMarker=new Vl({element:this._circleElement,pitchAlignment:"map"}),this.options.trackUserLocation&&(this._watchState="OFF"),this._map.on("zoom",this._onZoom)),this._geolocateButton.addEventListener("click",this.trigger.bind(this)),this._setup=!0,this.options.trackUserLocation&&this._map.on("movestart",(function(R){R.geolocateSource||m._watchState!=="ACTIVE_LOCK"||R.originalEvent&&R.originalEvent.type==="resize"||(m._watchState="BACKGROUND",m._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background"),m._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),m.fire(new o.Event("trackuserlocationend")))}))},d.prototype.trigger=function(){if(!this._setup)return o.warnOnce("Geolocate control triggered before added to a map"),!1;if(this.options.trackUserLocation){switch(this._watchState){case"OFF":this._watchState="WAITING_ACTIVE",this.fire(new o.Event("trackuserlocationstart"));break;case"WAITING_ACTIVE":case"ACTIVE_LOCK":case"ACTIVE_ERROR":case"BACKGROUND_ERROR":ra--,Do=!1,this._watchState="OFF",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-active-error"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background-error"),this.fire(new o.Event("trackuserlocationend"));break;case"BACKGROUND":this._watchState="ACTIVE_LOCK",this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-background"),this._lastKnownPosition&&this._updateCamera(this._lastKnownPosition),this.fire(new o.Event("trackuserlocationstart"))}switch(this._watchState){case"WAITING_ACTIVE":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_LOCK":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active");break;case"ACTIVE_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-active-error");break;case"BACKGROUND":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background");break;case"BACKGROUND_ERROR":this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-background-error")}if(this._watchState==="OFF"&&this._geolocationWatchID!==void 0)this._clearWatch();else if(this._geolocationWatchID===void 0){var h;this._geolocateButton.classList.add("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","true"),++ra>1?(h={maximumAge:6e5,timeout:0},Do=!0):(h=this.options.positionOptions,Do=!1),this._geolocationWatchID=o.window.navigator.geolocation.watchPosition(this._onSuccess,this._onError,h)}}else o.window.navigator.geolocation.getCurrentPosition(this._onSuccess,this._onError,this.options.positionOptions),this._timeoutId=setTimeout(this._finish,1e4);return!0},d.prototype._clearWatch=function(){o.window.navigator.geolocation.clearWatch(this._geolocationWatchID),this._geolocationWatchID=void 0,this._geolocateButton.classList.remove("mapboxgl-ctrl-geolocate-waiting"),this._geolocateButton.setAttribute("aria-pressed","false"),this.options.showUserLocation&&this._updateMarker(null)},d})(o.Evented),ia={maxWidth:100,unit:"metric"},ys=function(c){this.options=o.extend({},ia,c),o.bindAll(["_onMove","setUnit"],this)};function y(c,d,h){var m=h&&h.maxWidth||100,E=c._container.clientHeight/2,M=c.unproject([0,E]),R=c.unproject([m,E]),L=M.distanceTo(R);if(h&&h.unit==="imperial"){var z=3.2808*L;z>5280?_(d,m,z/5280,c._getUIString("ScaleControl.Miles")):_(d,m,z,c._getUIString("ScaleControl.Feet"))}else h&&h.unit==="nautical"?_(d,m,L/1852,c._getUIString("ScaleControl.NauticalMiles")):L>=1e3?_(d,m,L/1e3,c._getUIString("ScaleControl.Kilometers")):_(d,m,L,c._getUIString("ScaleControl.Meters"))}function _(c,d,h,m){var E,M,R,L=(E=h,(M=Math.pow(10,(""+Math.floor(E)).length-1))*(R=(R=E/M)>=10?10:R>=5?5:R>=3?3:R>=2?2:R>=1?1:(function(z){var q=Math.pow(10,Math.ceil(-Math.log(z)/Math.LN10));return Math.round(z*q)/q})(R)));c.style.width=d*(L/h)+"px",c.innerHTML=L+" "+m}ys.prototype.getDefaultPosition=function(){return"bottom-left"},ys.prototype._onMove=function(){y(this._map,this._container,this.options)},ys.prototype.onAdd=function(c){return this._map=c,this._container=f.create("div","mapboxgl-ctrl mapboxgl-ctrl-scale",c.getContainer()),this._map.on("move",this._onMove),this._onMove(),this._container},ys.prototype.onRemove=function(){f.remove(this._container),this._map.off("move",this._onMove),this._map=void 0},ys.prototype.setUnit=function(c){this.options.unit=c,y(this._map,this._container,this.options)};var b=function(c){this._fullscreen=!1,c&&c.container&&(c.container instanceof o.window.HTMLElement?this._container=c.container:o.warnOnce("Full screen control 'container' must be a DOM element.")),o.bindAll(["_onClickFullscreen","_changeIcon"],this),"onfullscreenchange"in o.window.document?this._fullscreenchange="fullscreenchange":"onmozfullscreenchange"in o.window.document?this._fullscreenchange="mozfullscreenchange":"onwebkitfullscreenchange"in o.window.document?this._fullscreenchange="webkitfullscreenchange":"onmsfullscreenchange"in o.window.document&&(this._fullscreenchange="MSFullscreenChange")};b.prototype.onAdd=function(c){return this._map=c,this._container||(this._container=this._map.getContainer()),this._controlContainer=f.create("div","mapboxgl-ctrl mapboxgl-ctrl-group"),this._checkFullscreenSupport()?this._setupUI():(this._controlContainer.style.display="none",o.warnOnce("This device does not support fullscreen mode.")),this._controlContainer},b.prototype.onRemove=function(){f.remove(this._controlContainer),this._map=null,o.window.document.removeEventListener(this._fullscreenchange,this._changeIcon)},b.prototype._checkFullscreenSupport=function(){return!!(o.window.document.fullscreenEnabled||o.window.document.mozFullScreenEnabled||o.window.document.msFullscreenEnabled||o.window.document.webkitFullscreenEnabled)},b.prototype._setupUI=function(){var c=this._fullscreenButton=f.create("button","mapboxgl-ctrl-fullscreen",this._controlContainer);f.create("span","mapboxgl-ctrl-icon",c).setAttribute("aria-hidden",!0),c.type="button",this._updateTitle(),this._fullscreenButton.addEventListener("click",this._onClickFullscreen),o.window.document.addEventListener(this._fullscreenchange,this._changeIcon)},b.prototype._updateTitle=function(){var c=this._getTitle();this._fullscreenButton.setAttribute("aria-label",c),this._fullscreenButton.title=c},b.prototype._getTitle=function(){return this._map._getUIString(this._isFullscreen()?"FullscreenControl.Exit":"FullscreenControl.Enter")},b.prototype._isFullscreen=function(){return this._fullscreen},b.prototype._changeIcon=function(){(o.window.document.fullscreenElement||o.window.document.mozFullScreenElement||o.window.document.webkitFullscreenElement||o.window.document.msFullscreenElement)===this._container!==this._fullscreen&&(this._fullscreen=!this._fullscreen,this._fullscreenButton.classList.toggle("mapboxgl-ctrl-shrink"),this._fullscreenButton.classList.toggle("mapboxgl-ctrl-fullscreen"),this._updateTitle())},b.prototype._onClickFullscreen=function(){this._isFullscreen()?o.window.document.exitFullscreen?o.window.document.exitFullscreen():o.window.document.mozCancelFullScreen?o.window.document.mozCancelFullScreen():o.window.document.msExitFullscreen?o.window.document.msExitFullscreen():o.window.document.webkitCancelFullScreen&&o.window.document.webkitCancelFullScreen():this._container.requestFullscreen?this._container.requestFullscreen():this._container.mozRequestFullScreen?this._container.mozRequestFullScreen():this._container.msRequestFullscreen?this._container.msRequestFullscreen():this._container.webkitRequestFullscreen&&this._container.webkitRequestFullscreen()};var w={closeButton:!0,closeOnClick:!0,focusAfterOpen:!0,className:"",maxWidth:"240px"}
vendor: 8,034 bytes, line 2593
2593,S=["a[href]","[tabindex]:not([tabindex='-1'])","[contenteditable]:not([contenteditable='false'])","button:not([disabled])","input:not([disabled])","select:not([disabled])","textarea:not([disabled])"].join(", "),P=(function(c){function d(h){c.call(this),this.options=o.extend(Object.create(w),h),o.bindAll(["_update","_onClose","remove","_onMouseMove","_onMouseUp","_onDrag"],this)}return c&&(d.__proto__=c),(d.prototype=Object.create(c&&c.prototype)).constructor=d,d.prototype.addTo=function(h){return this._map&&this.remove(),this._map=h,this.options.closeOnClick&&this._map.on("click",this._onClose),this.options.closeOnMove&&this._map.on("move",this._onClose),this._map.on("remove",this.remove),this._update(),this._focusFirstElement(),this._trackPointer?(this._map.on("mousemove",this._onMouseMove),this._map.on("mouseup",this._onMouseUp),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")):this._map.on("move",this._update),this.fire(new o.Event("open")),this},d.prototype.isOpen=function(){return!!this._map},d.prototype.remove=function(){return this._content&&f.remove(this._content),this._container&&(f.remove(this._container),delete this._container),this._map&&(this._map.off("move",this._update),this._map.off("move",this._onClose),this._map.off("click",this._onClose),this._map.off("remove",this.remove),this._map.off("mousemove",this._onMouseMove),this._map.off("mouseup",this._onMouseUp),this._map.off("drag",this._onDrag),delete this._map),this.fire(new o.Event("close")),this},d.prototype.getLngLat=function(){return this._lngLat},d.prototype.setLngLat=function(h){return this._lngLat=o.LngLat.convert(h),this._pos=null,this._trackPointer=!1,this._update(),this._map&&(this._map.on("move",this._update),this._map.off("mousemove",this._onMouseMove),this._container&&this._container.classList.remove("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.remove("mapboxgl-track-pointer")),this},d.prototype.trackPointer=function(){return this._trackPointer=!0,this._pos=null,this._update(),this._map&&(this._map.off("move",this._update),this._map.on("mousemove",this._onMouseMove),this._map.on("drag",this._onDrag),this._container&&this._container.classList.add("mapboxgl-popup-track-pointer"),this._map._canvasContainer.classList.add("mapboxgl-track-pointer")),this},d.prototype.getElement=function(){return this._container},d.prototype.setText=function(h){return this.setDOMContent(o.window.document.createTextNode(h))},d.prototype.setHTML=function(h){var m,E=o.window.document.createDocumentFragment(),M=o.window.document.createElement("body");for(M.innerHTML=h;m=M.firstChild;)E.appendChild(m);return this.setDOMContent(E)},d.prototype.getMaxWidth=function(){return this._container&&this._container.style.maxWidth},d.prototype.setMaxWidth=function(h){return this.options.maxWidth=h,this._update(),this},d.prototype.setDOMContent=function(h){if(this._content)for(;this._content.hasChildNodes();)this._content.firstChild&&this._content.removeChild(this._content.firstChild);else this._content=f.create("div","mapboxgl-popup-content",this._container);return this._content.appendChild(h),this._createCloseButton(),this._update(),this._focusFirstElement(),this},d.prototype.addClassName=function(h){this._container&&this._container.classList.add(h)},d.prototype.removeClassName=function(h){this._container&&this._container.classList.remove(h)},d.prototype.setOffset=function(h){return this.options.offset=h,this._update(),this},d.prototype.toggleClassName=function(h){if(this._container)return this._container.classList.toggle(h)},d.prototype._createCloseButton=function(){this.options.closeButton&&(this._closeButton=f.create("button","mapboxgl-popup-close-button",this._content),this._closeButton.type="button",this._closeButton.setAttribute("aria-label","Close popup"),this._closeButton.innerHTML="×",this._closeButton.addEventListener("click",this._onClose))},d.prototype._onMouseUp=function(h){this._update(h.point)},d.prototype._onMouseMove=function(h){this._update(h.point)},d.prototype._onDrag=function(h){this._update(h.point)},d.prototype._update=function(h){var m=this;if(this._map&&(this._lngLat||this._trackPointer)&&this._content&&(this._container||(this._container=f.create("div","mapboxgl-popup",this._map.getContainer()),this._tip=f.create("div","mapboxgl-popup-tip",this._container),this._container.appendChild(this._content),this.options.className&&this.options.className.split(" ").forEach((function(Y){return m._container.classList.add(Y)})),this._trackPointer&&this._container.classList.add("mapboxgl-popup-track-pointer")),this.options.maxWidth&&this._container.style.maxWidth!==this.options.maxWidth&&(this._container.style.maxWidth=this.options.maxWidth),this._map.transform.renderWorldCopies&&!this._trackPointer&&(this._lngLat=To(this._lngLat,this._pos,this._map.transform)),!this._trackPointer||h)){var E=this._pos=this._trackPointer&&h?h:this._map.project(this._lngLat),M=this.options.anchor,R=(function Y(re){if(re){if(typeof re=="number"){var oe=Math.round(Math.sqrt(.5*Math.pow(re,2)));return{center:new o.Point(0,0),top:new o.Point(0,re),"top-left":new o.Point(oe,oe),"top-right":new o.Point(-oe,oe),bottom:new o.Point(0,-re),"bottom-left":new o.Point(oe,-oe),"bottom-right":new o.Point(-oe,-oe),left:new o.Point(re,0),right:new o.Point(-re,0)}}if(re instanceof o.Point||Array.isArray(re)){var xe=o.Point.convert(re);return{center:xe,top:xe,"top-left":xe,"top-right":xe,bottom:xe,"bottom-left":xe,"bottom-right":xe,left:xe,right:xe}}return{center:o.Point.convert(re.center||[0,0]),top:o.Point.convert(re.top||[0,0]),"top-left":o.Point.convert(re["top-left"]||[0,0]),"top-right":o.Point.convert(re["top-right"]||[0,0]),bottom:o.Point.convert(re.bottom||[0,0]),"bottom-left":o.Point.convert(re["bottom-left"]||[0,0]),"bottom-right":o.Point.convert(re["bottom-right"]||[0,0]),left:o.Point.convert(re.left||[0,0]),right:o.Point.convert(re.right||[0,0])}}return Y(new o.Point(0,0))})(this.options.offset);if(!M){var L,z=this._container.offsetWidth,q=this._container.offsetHeight;L=E.y+R.bottom.y<q?["top"]:E.y>this._map.transform.height-q?["bottom"]:[],E.x<z/2?L.push("left"):E.x>this._map.transform.width-z/2&&L.push("right"),M=L.length===0?"bottom":L.join("-")}var ee=E.add(R[M]).round();f.setTransform(this._container,Eo[M]+" translate("+ee.x+"px,"+ee.y+"px)"),Xt(this._container,M,"popup")}},d.prototype._focusFirstElement=function(){if(this.options.focusAfterOpen&&this._container){var h=this._container.querySelector(S);h&&h.focus()}},d.prototype._onClose=function(){this.remove()},d})(o.Evented),D={version:o.version,supported:l,setRTLTextPlugin:o.setRTLTextPlugin,getRTLTextPluginStatus:o.getRTLTextPluginStatus,Map:xu,NavigationControl:di,GeolocateControl:na,AttributionControl:fs,ScaleControl:ys,FullscreenControl:b,Popup:P,Marker:Vl,Style:Vn,LngLat:o.LngLat,LngLatBounds:o.LngLatBounds,Point:o.Point,MercatorCoordinate:o.MercatorCoordinate,Evented:o.Evented,config:o.config,prewarm:function(){ht().acquire(Je)},clearPrewarmedResources:function(){var c=Mt;c&&(c.isPreloaded()&&c.numActive()===1?(c.release(Je),Mt=null):console.warn("Could not clear WebWorkers since there are active Map instances that still reference it. The pre-warmed WebWorker pool can only be cleared when all map instances have been removed with map.remove()"))},get accessToken(){return o.config.ACCESS_TOKEN},set accessToken(c){o.config.ACCESS_TOKEN=c},get baseApiUrl(){return o.config.API_URL},set baseApiUrl(c){o.config.API_URL=c},get workerCount(){return Ct.workerCount},set workerCount(c){Ct.workerCount=c},get maxParallelImageRequests(){return o.config.MAX_PARALLEL_IMAGE_REQUESTS},set maxParallelImageRequests(c){o.config.MAX_PARALLEL_IMAGE_REQUESTS=c},clearStorage:function(c){o.clearTileCache(c)},workerUrl:""};return D})),i}))})(xm)),xm.exports}var pte=dte();const fc=uh(pte);var Ate=1e-7;function a2(r){return Array.isArray(r)||ArrayBuffer.isView(r)}function FF(r,e){if(r===e)return!0;
2593if(a2(r)&&a2(e)){if(r.length!==e.length)return!1;for(var t=0;t<r.length;++t)if(!FF(r[t],e[t]))return!1;return!0}return Math.abs(r-e)<=Ate}function R0(r,e,t){return Math.max(e,Math.min(t,r))}function o_(r,e,t){return a2(r)?r.map(function(n,i){return o_(n,e[i],t)}):t*e+(1-t)*r}function dl(r,e){if(!r)throw new Error(e||"react-map-gl: assertion failed.")}function JS(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function KS(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?JS(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):JS(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var qf={minZoom:0,maxZoom:24,minPitch:0,maxPitch:60},qv={pitch:0,bearing:0,altitude:1.5},ZS=5,gte=1.2,np=(function(){function r(e){var t=e.width,n=e.height,i=e.latitude,s=e.longitude,o=e.zoom,l=e.bearing,f=l===void 0?qv.bearing:l,A=e.pitch,v=A===void 0?qv.pitch:A,T=e.altitude,I=T===void 0?qv.altitude:T,F=e.maxZoom,N=F===void 0?qf.maxZoom:F,U=e.minZoom,$=U===void 0?qf.minZoom:U,V=e.maxPitch,G=V===void 0?qf.maxPitch:V,X=e.minPitch,ue=X===void 0?qf.minPitch:X,K=e.transitionDuration,se=e.transitionEasing,Ee=e.transitionInterpolator,Ue=e.transitionInterruption,de=e.startPanLngLat,me=e.startZoomLngLat,pe=e.startRotatePos,W=e.startBearing,te=e.startPitch,Ce=e.startZoom;tf(this,r),dl(Number.isFinite(t),"`width` must be supplied"),dl(Number.isFinite(n),"`height` must be supplied"),dl(Number.isFinite(s),"`longitude` must be supplied"),dl(Number.isFinite(i),"`latitude` must be supplied"),dl(Number.isFinite(o),"`zoom` must be supplied"),this._viewportProps=this._applyConstraints({width:t,height:n,latitude:i,longitude:s,zoom:o,bearing:f,pitch:v,altitude:I,maxZoom:N,minZoom:$,maxPitch:G,minPitch:ue,transitionDuration:K,transitionEasing:se,transitionInterpolator:Ee,transitionInterruption:Ue}),this._state={startPanLngLat:de,startZoomLngLat:me,startRotatePos:pe,startBearing:W,startPitch:te,startZoom:Ce}}return ef(r,[{key:"getViewportProps",value:function(){return this._viewportProps}},{key:"getState",value:function(){return this._state}},{key:"panStart",value:function(t){var n=t.pos;return this._getUpdatedMapState({startPanLngLat:this._unproject(n)})}},{key:"pan",value:function(t){var n=t.pos,i=t.startPos,s=this._state.startPanLngLat||this._unproject(i);if(!s)return this;var o=this._calculateNewLngLat({startPanLngLat:s,pos:n}),l=gs(o,2),f=l[0],A=l[1];return this._getUpdatedMapState({longitude:f,latitude:A})}},{key:"panEnd",value:function(){return this._getUpdatedMapState({startPanLngLat:null})}},{key:"rotateStart",value:function(t){var n=t.pos;return this._getUpdatedMapState({startRotatePos:n,startBearing:this._viewportProps.bearing,startPitch:this._viewportProps.pitch})}},{key:"rotate",value:function(t){var n=t.pos,i=t.deltaAngleX,s=i===void 0?0:i,o=t.deltaAngleY,l=o===void 0?0:o,f=this._state,A=f.startRotatePos,v=f.startBearing,T=f.startPitch;if(!Number.isFinite(v)||!Number.isFinite(T))return this;var I;return n?I=this._calculateNewPitchAndBearing(KS(KS({},this._getRotationParams(n,A)),{},{startBearing:v,startPitch:T})):I={bearing:v+s,pitch:T+l},this._getUpdatedMapState(I)}},{key:"rotateEnd",value:function(){return this._getUpdatedMapState({startBearing:null,startPitch:null})}},{key:"zoomStart",value:function(t){var n=t.pos;return this._getUpdatedMapState({startZoomLngLat:this._unproject(n),startZoom:this._viewportProps.zoom})}},{key:"zoom",value:function(t){var n=t.pos,i=t.startPos,s=t.scale;dl(s>0,"`scale` must be a positive number");var o=this._state,l=o.startZoom,f=o.startZoomLngLat;Number.isFinite(l)||(l=this._viewportProps.zoom,f=this._unproject(i)||this._unproject(n)),dl(f,"`startZoomLngLat` prop is required for zoom behavior to calculate where to position the map.");var A=this._calculateNewZoom({scale:s,startZoom:l||0}),v=new cc(Object.assign({},this._viewportProps,{zoom:A})),T=v.getMapCenterByLngLatPosition({lngLat:f,pos:n}),I=gs(T,2),F=I[0],N=I[1];
2593return this._getUpdatedMapState({zoom:A,longitude:F,latitude:N})}},{key:"zoomEnd",value:function(){return this._getUpdatedMapState({startZoomLngLat:null,startZoom:null})}},{key:"_getUpdatedMapState",value:function(t){return new r(Object.assign({},this._viewportProps,this._state,t))}},{key:"_applyConstraints",value:function(t){var n=t.maxZoom,i=t.minZoom,s=t.zoom;t.zoom=R0(s,i,n);var o=t.maxPitch,l=t.minPitch,f=t.pitch;return t.pitch=R0(f,l,o),Object.assign(t,nte(t)),t}},{key:"_unproject",value:function(t){var n=new cc(this._viewportProps);return t&&n.unproject(t)}},{key:"_calculateNewLngLat",value:function(t){var n=t.startPanLngLat,i=t.pos,s=new cc(this._viewportProps);return s.getMapCenterByLngLatPosition({lngLat:n,pos:i})}},{key:"_calculateNewZoom",value:function(t){var n=t.scale,i=t.startZoom,s=this._viewportProps,o=s.maxZoom,l=s.minZoom,f=i+Math.log2(n);return R0(f,l,o)}},{key:"_calculateNewPitchAndBearing",value:function(t){var n=t.deltaScaleX,i=t.deltaScaleY,s=t.startBearing,o=t.startPitch;i=R0(i,-1,1);var l=this._viewportProps,f=l.minPitch,A=l.maxPitch,v=s+180*n,T=o;return i>0?T=o+i*(A-o):i<0&&(T=o-i*(f-o)),{pitch:T,bearing:v}}},{key:"_getRotationParams",value:function(t,n){var i=t[0]-n[0],s=t[1]-n[1],o=t[1],l=n[1],f=this._viewportProps,A=f.width,v=f.height,T=i/A,I=0;return s>0?Math.abs(v-l)>ZS&&(I=s/(l-v)*gte):s<0&&l>ZS&&(I=1-o/l),I=Math.min(1,Math.max(-1,I)),{deltaScaleX:T,deltaScaleY:I}}}]),r})();function mte(r){return r[0].toLowerCase()+r.slice(1)}function _te(r){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:qf;for(var t in e){var n=t.slice(0,3),i=mte(t.slice(3));if(n==="min"&&r[i]<e[t]||n==="max"&&r[i]>e[t])return!1}return!0}function YS(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function QS(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?YS(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):YS(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var mh=Bt.createContext({viewport:null,map:null,container:null,onViewportChange:null,onViewStateChange:null,eventManager:null}),Zx=mh.Provider;function yte(r){var e=r.value,t=r.children,n=Bt.useState(null),i=gs(n,2),s=i[0],o=i[1],l=Bt.useContext(mh);return e=QS(QS({setMap:o},l),{},{map:l&&l.map||s},e),Bt.createElement(Zx,{value:e},t)}mh.Provider=yte;var l2=typeof window<"u"?Bt.useLayoutEffect:Bt.useEffect;function eI(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function hl(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?eI(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):eI(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var vte="https://visgl.github.io/react-map-gl/docs/get-started/mapbox-tokens",LF="A valid API access token is required to use Mapbox data";function bte(){}function kF(r){var e=r.props,t=r.width,n=r.height;return new cc(hl(hl(hl({},e),e.viewState),{},{width:t,height:n}))}var xte=401,tI={position:"absolute",width:"100%",height:"100%",overflow:"hidden"},wte=Object.assign({},gh.propTypes,{width:At.oneOfType([At.number,At.string]),height:At.oneOfType([At.number,At.string]),onResize:At.func,disableTokenWarning:At.bool,visible:At.bool,className:At.string,style:At.object,visibilityConstraints:At.object}),Tte=Object.assign({},gh.defaultProps,{disableTokenWarning:!1,visible:!0,onResize:bte,className:"",style:null,visibilityConstraints:qf});function Ete(){var r={position:"absolute",left:0,top:0};return Bt.createElement("div",{key:"warning",id:"no-token-warning",style:r},Bt.createElement("h3",{key:"header"},LF),Bt.createElement("div",{key:"text"},"For information on setting up your basemap, read"),Bt.createElement("a",{key:"link",href:vte},"Note on Map Tokens"))}function Cte(r){return{getMap:function(){return r.current&&r.current.getMap()},queryRenderedFeatures:function(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=r.current&&r.current.getMap();return i&&i.queryRenderedFeatures(t,n)}}}var tu=Bt.forwardRef(function(r,e){var t=Bt.useState(!0),n=gs(t,2),i=n[0],s=n[1],o=Bt.useState({width:0,height:0}),l=gs(o,2),f=l[0],A=l[1],v=Bt.useRef(null),T=Bt.useRef(null),I=Bt.useRef(null),F=Bt.useRef(null),N=Bt.useContext(mh);l2(function(){if(tu.supported()){var me=new gh(hl(hl(hl({},r),f),{},{mapboxgl:fc,container:T.current,onError:function(te){var Ce=te.error&&te.error.status||te.status;Ce===xte&&i&&(console.error(LF),s(!1)),r.onError(te)}}));v.current=me,N&&N.setMap&&N.setMap(me.getMap());var pe=new EN(function(W){if(W[0].contentRect){var te=W[0].contentRect,Ce=te.width,Qe=te.height;A({width:Ce,height:Qe}),r.onResize({width:Ce,height:Qe})}});return pe.observe(I.current),function(){me.finalize(),v.current=null,pe.disconnect()}}},[]),l2(function(){v.current&&v.current.setProps(hl(hl({},r),f))});var U=v.current&&v.current.getMap();Bt.useImperativeHandle(e,function(){return Cte(v)},[]);var $=Bt.useCallback(function(me){var pe=me.target;pe===F.current&&pe.scrollTo(0,0)},[]),V=U&&Bt.createElement(Zx,{value:hl(hl({},N),{},{viewport:N.viewport||kF(hl({map:U,props:r},f)),map:U,container:N.container||I.current})},Bt.createElement("div",{key:"map-overlays",className:"overlays",ref:F,style:tI,onScroll:$},r.children)),G=r.className,X=r.width,ue=r.height,K=r.style,se=r.visibilityConstraints,Ee=Object.assign({position:"relative"},K,{width:X,height:ue}),Ue=r.visible&&_te(r.viewState||r,se),de=Object.assign({},tI,{visibility:Ue?"inherit":"hidden"});return Bt.createElement("div",{key:"map-container",ref:I,style:Ee},Bt.createElement("div",{key:"map-mapbox",ref:T,style:de,className:G}),V,!i&&!r.disableTokenWarning&&Bt.createElement(Ete,null))});
2593tu.supported=function(){return fc&&fc.supported()};tu.propTypes=wte;tu.defaultProps=Tte;function Ste(r,e){var t;if(typeof Symbol>"u"||r[Symbol.iterator]==null){if(Array.isArray(r)||(t=Ite(r))||e){t&&(r=t);var n=0,i=function(){};return{s:i,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(A){throw A},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. 2594In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,o=!1,l;return{s:function(){t=r[Symbol.iterator]()},n:function(){var A=t.next();return s=A.done,A},e:function(A){o=!0,l=A},f:function(){try{!s&&t.return!=null&&t.return()}finally{if(o)throw l}}}}function Ite(r,e){if(r){if(typeof r=="string")return rI(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return rI(r,e)}}function rI(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}var NF=(function(){function r(){tf(this,r),Er(this,"propNames",[])}return ef(r,[{key:"arePropsEqual",value:function(t,n){var i=Ste(this.propNames||[]),s;try{for(i.s();!(s=i.n()).done;){var o=s.value;if(!FF(t[o],n[o]))return!1}}catch(l){i.e(l)}finally{i.f()}return!0}},{key:"initializeProps",value:function(t,n){return{start:t,end:n}}},{key:"interpolateProps",value:function(t,n,i){dl(!1,"interpolateProps is not implemented")}},{key:"getDuration",value:function(t,n){return n.transitionDuration}}]),r})(),Bte={longitude:1,bearing:1};function a_(r){return Number.isFinite(r)||Array.isArray(r)}function Pte(r){return r in Bte}function c2(r,e,t){return Pte(r)&&Math.abs(t-e)>180&&(t=t<0?t+360:t-360),t}function Jv(r,e){var t;if(typeof Symbol>"u"||r[Symbol.iterator]==null){if(Array.isArray(r)||(t=Mte(r))||e){t&&(r=t);var n=0,i=function(){};return{s:i,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(A){throw A},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. 2595In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,o=!1,l;return{s:function(){t=r[Symbol.iterator]()},n:function(){var A=t.next();return s=A.done,A},e:function(A){o=!0,l=A},f:function(){try{!s&&t.return!=null&&t.return()}finally{if(o)throw l}}}}function Mte(r,e){if(r){if(typeof r=="string")return nI(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return nI(r,e)}}function nI(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function Rte(r){var e=Ote();return function(){var n=ap(r),i;if(e){var s=ap(this).constructor;i=Reflect.construct(n,arguments,s)}else i=n.apply(this,arguments);return H2(this,i)}}function Ote(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}var Dte=["longitude","latitude","zoom","bearing","pitch"],Fte=["latitude","longitude","zoom","width","height"],iI=["bearing","pitch"],Lte={speed:1.2,curve:1.414};(function(r){G2(t,r);var e=Rte(t);function t(){var n,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return tf(this,t),n=e.call(this),Er(ku(n),"propNames",Dte),n.props=Object.assign({},Lte,i),n}return ef(t,[{key:"initializeProps",value:function(i,s){var o={},l={},f=Jv(Fte),A;try{for(f.s();!(A=f.n()).done;){var v=A.value,T=i[v],I=s[v];dl(a_(T)&&a_(I),"".concat(v," must be supplied for transition")),o[v]=T,l[v]=c2(v,T,I)}}catch(G){f.e(G)}finally{f.f()}var F=Jv(iI),N;try{for(F.s();!(N=F.n()).done;){var U=N.value,$=i[U]||0,V=s[U]||0;o[U]=$,l[U]=c2(U,$,V)}}catch(G){F.e(G)}finally{F.f()}return{start:o,end:l}}},{key:"interpolateProps",value:function(i,s,o){var l=ste(i,s,o,this.props),f=Jv(iI),A;try{for(f.s();!(A=f.n()).done;){var v=A.value;l[v]=o_(i[v],s[v],o)}}catch(T){f.e(T)}finally{f.f()}return l}},{key:"getDuration",value:function(i,s){var o=s.transitionDuration;return o==="auto"&&(o=ote(i,s,this.props)),o}}]),t})(NF);function sI(r,e){var t;if(typeof Symbol>"u"||r[Symbol.iterator]==null){if(Array.isArray(r)||(t=kte(r))||e){t&&(r=t);var n=0,i=function(){};return{s:i,n:function(){return n>=r.length?{done:!0}:{done:!1,value:r[n++]}},e:function(A){throw A},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance. 2596In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,o=!1,l;return{s:function(){t=r[Symbol.iterator]()},n:function(){var A=t.next();return s=A.done,A},e:function(A){o=!0,l=A},f:function(){try{!s&&t.return!=null&&t.return()}finally{if(o)throw l}}}}function kte(r,e){if(r){if(typeof r=="string")return oI(r,e);var t=Object.prototype.toString.call(r).slice(8,-1);if(t==="Object"&&r.constructor&&(t=r.constructor.name),t==="Map"||t==="Set")return Array.from(r);
2596if(t==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return oI(r,e)}}function oI(r,e){(e==null||e>r.length)&&(e=r.length);for(var t=0,n=new Array(e);t<e;t++)n[t]=r[t];return n}function Nte(r){var e=Ute();return function(){var n=ap(r),i;if(e){var s=ap(this).constructor;i=Reflect.construct(n,arguments,s)}else i=n.apply(this,arguments);return H2(this,i)}}function Ute(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}var zte=["longitude","latitude","zoom","bearing","pitch"],jA=(function(r){G2(t,r);var e=Nte(t);function t(){var n,i=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return tf(this,t),n=e.call(this),Array.isArray(i)&&(i={transitionProps:i}),n.propNames=i.transitionProps||zte,i.around&&(n.around=i.around),n}return ef(t,[{key:"initializeProps",value:function(i,s){var o={},l={};if(this.around){o.around=this.around;var f=new cc(i).unproject(this.around);Object.assign(l,s,{around:new cc(s).project(f),aroundLngLat:f})}var A=sI(this.propNames),v;try{for(A.s();!(v=A.n()).done;){var T=v.value,I=i[T],F=s[T];dl(a_(I)&&a_(F),"".concat(T," must be supplied for transition")),o[T]=I,l[T]=c2(T,I,F)}}catch(N){A.e(N)}finally{A.f()}return{start:o,end:l}}},{key:"interpolateProps",value:function(i,s,o){var l={},f=sI(this.propNames),A;try{for(f.s();!(A=f.n()).done;){var v=A.value;l[v]=o_(i[v],s[v],o)}}catch(U){f.e(U)}finally{f.f()}if(s.around){var T=new cc(Object.assign({},s,l)).getMapCenterByLngLatPosition({lngLat:s.aroundLngLat,pos:o_(i.around,s.around,o)}),I=gs(T,2),F=I[0],N=I[1];l.longitude=F,l.latitude=N}return l}}]),t})(NF),GA=function(){};function Vte(r,e){var t=r(e);return function(n){return 1/(1-t)*(r(n*(1-e)+e)-t)}}var HA={BREAK:1,SNAP_TO_END:2,IGNORE:3,UPDATE:4},jte={transitionDuration:0,transitionEasing:function(e){return e},transitionInterpolator:new jA,transitionInterruption:HA.BREAK,onTransitionStart:GA,onTransitionInterrupt:GA,onTransitionEnd:GA},Yx=(function(){function r(){var e=this,t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};tf(this,r),Er(this,"_animationFrame",null),Er(this,"_onTransitionFrame",function(){e._animationFrame=requestAnimationFrame(e._onTransitionFrame),e._updateViewport()}),this.props=null,this.onViewportChange=t.onViewportChange||GA,this.onStateChange=t.onStateChange||GA,this.time=t.getTime||Date.now}return ef(r,[{key:"getViewportInTransition",value:function(){return this._animationFrame?this.state.propsInTransition:null}},{key:"processViewportChange",value:function(t){var n=this.props;if(this.props=t,!n||this._shouldIgnoreViewportChange(n,t))return!1;if(this._isTransitionEnabled(t)){var i=Object.assign({},n),s=Object.assign({},t);if(this._isTransitionInProgress()&&(n.onTransitionInterrupt(),this.state.interruption===HA.SNAP_TO_END?Object.assign(i,this.state.endProps):Object.assign(i,this.state.propsInTransition),this.state.interruption===HA.UPDATE)){var o=this.time(),l=(o-this.state.startTime)/this.state.duration;s.transitionDuration=this.state.duration-(o-this.state.startTime),s.transitionEasing=Vte(this.state.easing,l),s.transitionInterpolator=i.transitionInterpolator}return s.onTransitionStart(),this._triggerTransition(i,s),!0}return this._isTransitionInProgress()&&(n.onTransitionInterrupt(),this._endTransition()),!1}},{key:"_isTransitionInProgress",value:function(){return!!this._animationFrame}},{key:"_isTransitionEnabled",value:function(t){var n=t.transitionDuration,i=t.transitionInterpolator;return(n>0||n==="auto")&&!!i}},{key:"_isUpdateDueToCurrentTransition",value:function(t){return this.state.propsInTransition?this.state.interpolator.arePropsEqual(t,this.state.propsInTransition):!1}},{key:"_shouldIgnoreViewportChange",value:function(t,n){return t?this._isTransitionInProgress()?this.state.interruption===HA.IGNORE||this._isUpdateDueToCurrentTransition(n):this._isTransitionEnabled(n)?n.transitionInterpolator.arePropsEqual(t,n):!0:!0}},{key:"_triggerTransition",value:function(t,n){dl(this._isTransitionEnabled(n)),this._animationFrame&&cancelAnimationFrame(this._animationFrame);var i=n.transitionInterpolator,s=i.getDuration?i.getDuration(t,n):n.transitionDuration;if(s!==0){var o=n.transitionInterpolator.initializeProps(t,n),l={inTransition:!0,isZooming:t.zoom!==n.zoom,isPanning:t.longitude!==n.longitude||t.latitude!==n.latitude,isRotating:t.bearing!==n.bearing||t.pitch!==n.pitch};this.state={duration:s,easing:n.transitionEasing,interpolator:n.transitionInterpolator,interruption:n.transitionInterruption,startTime:this.time(),startProps:o.start,endProps:o.end,animation:null,propsInTransition:{}},this._onTransitionFrame(),this.onStateChange(l)}}},{key:"_endTransition",value:function(){this._animationFrame&&(cancelAnimationFrame(this._animationFrame),this._animationFrame=null),this.onStateChange({inTransition:!1,isZooming:!1,isPanning:!1,isRotating:!1})}},{key:"_updateViewport",value:function(){var t=this.time(),n=this.state,i=n.startTime,s=n.duration,o=n.easing,l=n.interpolator,f=n.startProps,A=n.endProps,v=!1,T=(t-i)/s;T>=1&&(T=1,v=!0),T=o(T);var I=l.interpolateProps(f,A,T),F=new np(Object.assign({},this.props,I));this.state.propsInTransition=F.getViewportProps(),this.onViewportChange(this.state.propsInTransition,this.props),v&&(this._endTransition(),this.props.onTransitionEnd())}}]),r})();Er(Yx,"defaultProps",jte);var Kv={exports:{}};var aI;function Gte(){return aI||(aI=1,(function(r){(function(e,t,n,i){var s=["","webkit","Moz","MS","ms","o"],o=t.createElement("div"),l="function",f=Math.round,A=Math.abs,v=Date.now;function T(be,Me,We){return setTimeout(X(be,We),Me)}function I(be,Me,We){return Array.isArray(be)?(F(be,We[Me],We),!0):!1}function F(be,Me,We){var gt;if(be)if(be.forEach)be.forEach(Me,We);else if(be.length!==i)for(gt=0;gt<be.length;)Me.call(We,be[gt],gt,be),gt++;else for(gt in be)be.hasOwnProperty(gt)&&Me.call(We,be[gt],gt,be)}function N(be,Me,We){var gt="DEPRECATED METHOD: "+Me+` 2597`+We+` AT 2598`;return function(){var $t=new Error("get-stack-trace"),br=$t&&$t.stack?$t.stack.replace(/^[^\(]+?[\n$]/gm,"").replace(/^\s+at\s+/gm,"").replace(/^Object.<anonymous>\s*\(/gm,"{anonymous}()@"):"Unknown Stack Trace",Br=e.console&&(e.console.warn||e.console.log);return Br&&Br.call(e.console,gt,br),be.apply(this,arguments)}}var U;typeof Object.assign!="function"?U=function(Me){if(Me===i||Me===null)throw new TypeError("Cannot convert undefined or null to object");for(var We=Object(Me),gt=1;gt<arguments.length;gt++){var $t=arguments[gt];if($t!==i&&$t!==null)for(var br in $t)$t.hasOwnProperty(br)&&(We[br]=$t[br])}return We}:U=Object.assign;var $=N(function(Me,We,gt){for(var $t=Object.keys(We),br=0;br<$t.length;)(!gt||gt&&Me[$t[br]]===i)&&(Me[$t[br]]=We[$t[br]]),br++;return Me},"extend","Use `assign`."),V=N(function(Me,We){return $(Me,We,!0)},"merge","Use `assign`.");function G(be,Me,We){var gt=Me.prototype,$t;$t=be.prototype=Object.create(gt),$t.constructor=be,$t._super=gt,We&&U($t,We)}function X(be,Me){return function(){return be.apply(Me,arguments)}}function ue(be,Me){return typeof be==l?be.apply(Me&&Me[0]||i,Me):be}function K(be,Me){return be===i?Me:be}
vendor: 28,619 bytes, line 2598
2598function se(be,Me,We){F(me(Me),function(gt){be.addEventListener(gt,We,!1)})}function Ee(be,Me,We){F(me(Me),function(gt){be.removeEventListener(gt,We,!1)})}function Ue(be,Me){for(;be;){if(be==Me)return!0;be=be.parentNode}return!1}function de(be,Me){return be.indexOf(Me)>-1}function me(be){return be.trim().split(/\s+/g)}function pe(be,Me,We){if(be.indexOf&&!We)return be.indexOf(Me);for(var gt=0;gt<be.length;){if(We&&be[gt][We]==Me||!We&&be[gt]===Me)return gt;gt++}return-1}function W(be){return Array.prototype.slice.call(be,0)}function te(be,Me,We){for(var gt=[],$t=[],br=0;br<be.length;){var Br=be[br][Me];pe($t,Br)<0&>.push(be[br]),$t[br]=Br,br++}return gt=gt.sort(function(Li,Xi){return Li[Me]>Xi[Me]}),gt}function Ce(be,Me){for(var We,gt,$t=Me[0].toUpperCase()+Me.slice(1),br=0;br<s.length;){if(We=s[br],gt=We?We+$t:Me,gt in be)return gt;br++}return i}var Qe=1;function we(){return Qe++}function De(be){var Me=be.ownerDocument||be;return Me.defaultView||Me.parentWindow||e}var ze=/mobile|tablet|ip(ad|hone|od)|android/i,Ze="ontouchstart"in e,tt=Ce(e,"PointerEvent")!==i,rt=Ze&&ze.test(navigator.userAgent),ct="touch",bt="pen",It="mouse",st="kinect",pr=25,Qt=1,Jt=2,Nt=4,Ar=8,cn=1,Mr=2,_r=4,Gn=8,yr=16,vr=Mr|_r,un=Gn|yr,Dr=vr|un,li=["x","y"],Yn=["clientX","clientY"];function mn(be,Me){var We=this;this.manager=be,this.callback=Me,this.element=be.element,this.target=be.options.inputTarget,this.domHandler=function(gt){ue(be.options.enable,[be])&&We.handler(gt)},this.init()}mn.prototype={handler:function(){},init:function(){this.evEl&&se(this.element,this.evEl,this.domHandler),this.evTarget&&se(this.target,this.evTarget,this.domHandler),this.evWin&&se(De(this.element),this.evWin,this.domHandler)},destroy:function(){this.evEl&&Ee(this.element,this.evEl,this.domHandler),this.evTarget&&Ee(this.target,this.evTarget,this.domHandler),this.evWin&&Ee(De(this.element),this.evWin,this.domHandler)}};function ri(be){var Me,We=be.options.inputClass;return We?Me=We:tt?Me=Te:rt?Me=he:Ze?Me=g:Me=Vt,new Me(be,Hn)}function Hn(be,Me,We){var gt=We.pointers.length,$t=We.changedPointers.length,br=Me&Qt&>-$t===0,Br=Me&(Nt|Ar)&>-$t===0;We.isFirst=!!br,We.isFinal=!!Br,br&&(be.session={}),We.eventType=Me,Sn(be,We),be.emit("hammer.input",We),be.recognize(We),be.session.prevInput=We}function Sn(be,Me){var We=be.session,gt=Me.pointers,$t=gt.length;We.firstInput||(We.firstInput=mr(Me)),$t>1&&!We.firstMultiple?We.firstMultiple=mr(Me):$t===1&&(We.firstMultiple=!1);var br=We.firstInput,Br=We.firstMultiple,fi=Br?Br.center:br.center,Li=Me.center=Rr(gt);Me.timeStamp=v(),Me.deltaTime=Me.timeStamp-br.timeStamp,Me.angle=kt(fi,Li),Me.distance=Pe(fi,Li),Qn(We,Me),Me.offsetDirection=gi(Me.deltaX,Me.deltaY);var Xi=nn(Me.deltaTime,Me.deltaX,Me.deltaY);Me.overallVelocityX=Xi.x,Me.overallVelocityY=Xi.y,Me.overallVelocity=A(Xi.x)>A(Xi.y)?Xi.x:Xi.y,Me.scale=Br?cr(Br.pointers,gt):1,Me.rotation=Br?Wt(Br.pointers,gt):0,Me.maxPointers=We.prevInput?Me.pointers.length>We.prevInput.maxPointers?Me.pointers.length:We.prevInput.maxPointers:Me.pointers.length,jt(We,Me);var Qs=be.element;Ue(Me.srcEvent.target,Qs)&&(Qs=Me.srcEvent.target),Me.target=Qs}function Qn(be,Me){var We=Me.center,gt=be.offsetDelta||{},$t=be.prevDelta||{},br=be.prevInput||{};(Me.eventType===Qt||br.eventType===Nt)&&($t=be.prevDelta={x:br.deltaX||0,y:br.deltaY||0},gt=be.offsetDelta={x:We.x,y:We.y}),Me.deltaX=$t.x+(We.x-gt.x),Me.deltaY=$t.y+(We.y-gt.y)}function jt(be,Me){var We=be.lastInterval||Me,gt=Me.timeStamp-We.timeStamp,$t,br,Br,fi;if(Me.eventType!=Ar&&(gt>pr||We.velocity===i)){var Li=Me.deltaX-We.deltaX,Xi=Me.deltaY-We.deltaY,Qs=nn(gt,Li,Xi);br=Qs.x,Br=Qs.y,$t=A(Qs.x)>A(Qs.y)?Qs.x:Qs.y,fi=gi(Li,Xi),be.lastInterval=Me}else $t=We.velocity,br=We.velocityX,Br=We.velocityY,fi=We.direction;Me.velocity=$t,Me.velocityX=br,Me.velocityY=Br,Me.direction=fi}function mr(be){for(var Me=[],We=0;We<be.pointers.length;)Me[We]={clientX:f(be.pointers[We].clientX),clientY:f(be.pointers[We].clientY)},We++;return{timeStamp:v(),pointers:Me,center:Rr(Me),deltaX:be.deltaX,deltaY:be.deltaY}}function Rr(be){var Me=be.length;if(Me===1)return{x:f(be[0].clientX),y:f(be[0].clientY)};for(var We=0,gt=0,$t=0;$t<Me;)We+=be[$t].clientX,gt+=be[$t].clientY,$t++;return{x:f(We/Me),y:f(gt/Me)}}function nn(be,Me,We){return{x:Me/be||0,y:We/be||0}}function gi(be,Me){return be===Me?cn:A(be)>=A(Me)?be<0?Mr:_r:Me<0?Gn:yr}function Pe(be,Me,We){We||(We=li);var gt=Me[We[0]]-be[We[0]],$t=Me[We[1]]-be[We[1]];return Math.sqrt(gt*gt+$t*$t)}function kt(be,Me,We){We||(We=li);var gt=Me[We[0]]-be[We[0]],$t=Me[We[1]]-be[We[1]];return Math.atan2($t,gt)*180/Math.PI}function Wt(be,Me){return kt(Me[1],Me[0],Yn)+kt(be[1],be[0],Yn)}function cr(be,Me){return Pe(Me[0],Me[1],Yn)/Pe(be[0],be[1],Yn)}var Ye={mousedown:Qt,mousemove:Jt,mouseup:Nt},Rt="mousedown",Ae="mousemove mouseup";function Vt(){this.evEl=Rt,this.evWin=Ae,this.pressed=!1,mn.apply(this,arguments)}G(Vt,mn,{handler:function(Me){var We=Ye[Me.type];We&Qt&&Me.button===0&&(this.pressed=!0),We&Jt&&Me.which!==1&&(We=Nt),this.pressed&&(We&Nt&&(this.pressed=!1),this.callback(this.manager,We,{pointers:[Me],changedPointers:[Me],pointerType:It,srcEvent:Me}))}});var Et={pointerdown:Qt,pointermove:Jt,pointerup:Nt,pointercancel:Ar,pointerout:Ar},H={2:ct,3:bt,4:It,5:st},vt="pointerdown",St="pointermove pointerup pointercancel";e.MSPointerEvent&&!e.PointerEvent&&(vt="MSPointerDown",St="MSPointerMove MSPointerUp MSPointerCancel");function Te(){this.evEl=vt,this.evWin=St,mn.apply(this,arguments),this.store=this.manager.session.pointerEvents=[]}G(Te,mn,{handler:function(Me){var We=this.store,gt=!1,$t=Me.type.toLowerCase().replace("ms",""),br=Et[$t],Br=H[Me.pointerType]||Me.pointerType,fi=Br==ct,Li=pe(We,Me.pointerId,"pointerId");br&Qt&&(Me.button===0||fi)?Li<0&&(We.push(Me),Li=We.length-1):br&(Nt|Ar)&&(gt=!0),!(Li<0)&&(We[Li]=Me,this.callback(this.manager,br,{pointers:We,changedPointers:[Me],pointerType:Br,srcEvent:Me}),gt&&We.splice(Li,1))}});var Xe={touchstart:Qt,touchmove:Jt,touchend:Nt,touchcancel:Ar},ut="touchstart",Z="touchstart touchmove touchend touchcancel";function ne(){this.evTarget=ut,this.evWin=Z,this.started=!1,mn.apply(this,arguments)}G(ne,mn,{handler:function(Me){var We=Xe[Me.type];if(We===Qt&&(this.started=!0),!!this.started){var gt=ce.call(this,Me,We);We&(Nt|Ar)&>[0].length-gt[1].length===0&&(this.started=!1),this.callback(this.manager,We,{pointers:gt[0],changedPointers:gt[1],pointerType:ct,srcEvent:Me})}}});function ce(be,Me){var We=W(be.touches),gt=W(be.changedTouches);return Me&(Nt|Ar)&&(We=te(We.concat(gt),"identifier")),[We,gt]}var ye={touchstart:Qt,touchmove:Jt,touchend:Nt,touchcancel:Ar},Le="touchstart touchmove touchend touchcancel";function he(){this.evTarget=Le,this.targetIds={},mn.apply(this,arguments)}G(he,mn,{handler:function(Me){var We=ye[Me.type],gt=ve.call(this,Me,We);gt&&this.callback(this.manager,We,{pointers:gt[0],changedPointers:gt[1],pointerType:ct,srcEvent:Me})}});function ve(be,Me){var We=W(be.touches),gt=this.targetIds;if(Me&(Qt|Jt)&&We.length===1)return gt[We[0].identifier]=!0,[We,We];var $t,br,Br=W(be.changedTouches),fi=[],Li=this.target;if(br=We.filter(function(Xi){return Ue(Xi.target,Li)}),Me===Qt)for($t=0;$t<br.length;)gt[br[$t].identifier]=!0,$t++;for($t=0;$t<Br.length;)gt[Br[$t].identifier]&&fi.push(Br[$t]),Me&(Nt|Ar)&&delete gt[Br[$t].identifier],$t++;if(fi.length)return[te(br.concat(fi),"identifier"),fi]}var ae=2500,Se=25;function g(){mn.apply(this,arguments);var be=X(this.handler,this);this.touch=new he(this.manager,be),this.mouse=new Vt(this.manager,be),this.primaryTouch=null,this.lastTouches=[]}G(g,mn,{handler:function(Me,We,gt){var $t=gt.pointerType==ct,br=gt.pointerType==It;if(!(br&>.sourceCapabilities&>.sourceCapabilities.firesTouchEvents)){if($t)le.call(this,We,gt);else if(br&&Je.call(this,gt))return;this.callback(Me,We,gt)}},destroy:function(){this.touch.destroy(),this.mouse.destroy()}});function le(be,Me){be&Qt?(this.primaryTouch=Me.changedPointers[0].identifier,xt.call(this,Me)):be&(Nt|Ar)&&xt.call(this,Me)}function xt(be){var Me=be.changedPointers[0];if(Me.identifier===this.primaryTouch){var We={x:Me.clientX,y:Me.clientY};this.lastTouches.push(We);var gt=this.lastTouches,$t=function(){var br=gt.indexOf(We);br>-1&>.splice(br,1)};setTimeout($t,ae)}}function Je(be){for(var Me=be.srcEvent.clientX,We=be.srcEvent.clientY,gt=0;gt<this.lastTouches.length;gt++){var $t=this.lastTouches[gt],br=Math.abs(Me-$t.x),Br=Math.abs(We-$t.y);if(br<=Se&&Br<=Se)return!0}return!1}var Ct=Ce(o.style,"touchAction"),Mt=Ct!==i,Ft="compute",ht="auto",Lt="manipulation",Pt="none",Gt="pan-x",Ur="pan-y",er=$r();function en(be,Me){this.manager=be,this.set(Me)}en.prototype={set:function(be){be==Ft&&(be=this.compute()),Mt&&this.manager.element.style&&er[be]&&(this.manager.element.style[Ct]=be),this.actions=be.toLowerCase().trim()},update:function(){this.set(this.manager.options.touchAction)},compute:function(){var be=[];return F(this.manager.recognizers,function(Me){ue(Me.options.enable,[Me])&&(be=be.concat(Me.getTouchAction()))}),ln(be.join(" "))},preventDefaults:function(be){var Me=be.srcEvent,We=be.offsetDirection;if(this.manager.session.prevented){Me.preventDefault();return}var gt=this.actions,$t=de(gt,Pt)&&!er[Pt],br=de(gt,Ur)&&!er[Ur],Br=de(gt,Gt)&&!er[Gt];if($t){var fi=be.pointers.length===1,Li=be.distance<2,Xi=be.deltaTime<250;if(fi&&Li&&Xi)return}if(!(Br&&br)&&($t||br&&We&vr||Br&&We&un))return this.preventSrc(Me)},preventSrc:function(be){this.manager.session.prevented=!0,be.preventDefault()}};function ln(be){if(de(be,Pt))return Pt;var Me=de(be,Gt),We=de(be,Ur);return Me&&We?Pt:Me||We?Me?Gt:Ur:de(be,Lt)?Lt:ht}function $r(){if(!Mt)return!1;var be={},Me=e.CSS&&e.CSS.supports;return["auto","manipulation","pan-y","pan-x","pan-x pan-y","none"].forEach(function(We){be[We]=Me?e.CSS.supports("touch-action",We):!0}),be}var Xr=1,jr=2,mi=4,qr=8,dr=qr,Be=16,qt=32;function tn(be){this.options=U({},this.defaults,be||{}),this.id=we(),this.manager=null,this.options.enable=K(this.options.enable,!0),this.state=Xr,this.simultaneous={},this.requireFail=[]}tn.prototype={defaults:{},set:function(be){return U(this.options,be),this.manager&&this.manager.touchAction.update(),this},recognizeWith:function(be){if(I(be,"recognizeWith",this))return this;var Me=this.simultaneous;return be=ci(be,this),Me[be.id]||(Me[be.id]=be,be.recognizeWith(this)),this},dropRecognizeWith:function(be){return I(be,"dropRecognizeWith",this)?this:(be=ci(be,this),delete this.simultaneous[be.id],this)},requireFailure:function(be){if(I(be,"requireFailure",this))return this;var Me=this.requireFail;return be=ci(be,this),pe(Me,be)===-1&&(Me.push(be),be.requireFailure(this)),this},dropRequireFailure:function(be){if(I(be,"dropRequireFailure",this))return this;be=ci(be,this);var Me=pe(this.requireFail,be);return Me>-1&&this.requireFail.splice(Me,1),this},hasRequireFailures:function(){return this.requireFail.length>0},canRecognizeWith:function(be){return!!this.simultaneous[be.id]},emit:function(be){var Me=this,We=this.state;function gt($t){Me.manager.emit($t,be)}We<qr&>(Me.options.event+Wi(We)),gt(Me.options.event),be.additionalEvent&>(be.additionalEvent),We>=qr&>(Me.options.event+Wi(We))},tryEmit:function(be){if(this.canEmit())return this.emit(be);this.state=qt},canEmit:function(){for(var be=0;be<this.requireFail.length;){if(!(this.requireFail[be].state&(qt|Xr)))return!1;be++}return!0},recognize:function(be){var Me=U({},be);if(!ue(this.options.enable,[this,Me])){this.reset(),this.state=qt;return}this.state&(dr|Be|qt)&&(this.state=Xr),this.state=this.process(Me),this.state&(jr|mi|qr|Be)&&this.tryEmit(Me)},process:function(be){},getTouchAction:function(){},reset:function(){}};function Wi(be){return be&Be?"cancel":be&qr?"end":be&mi?"move":be&jr?"start":""}function _a(be){return be==yr?"down":be==Gn?"up":be==Mr?"left":be==_r?"right":""}function ci(be,Me){var We=Me.manager;return We?We.get(be):be}function Wn(){tn.apply(this,arguments)}G(Wn,tn,{defaults:{pointers:1},attrTest:function(be){var Me=this.options.pointers;return Me===0||be.pointers.length===Me},process:function(be){var Me=this.state,We=be.eventType,gt=Me&(jr|mi),$t=this.attrTest(be);return gt&&(We&Ar||!$t)?Me|Be:gt||$t?We&Nt?Me|qr:Me&jr?Me|mi:jr:qt}});function Ie(){Wn.apply(this,arguments),this.pX=null,this.pY=null}G(Ie,Wn,{defaults:{event:"pan",threshold:10,pointers:1,direction:Dr},getTouchAction:function(){var be=this.options.direction,Me=[];return be&vr&&Me.push(Ur),be&un&&Me.push(Gt),Me},directionTest:function(be){var Me=this.options,We=!0,gt=be.distance,$t=be.direction,br=be.deltaX,Br=be.deltaY;return $t&Me.direction||(Me.direction&vr?($t=br===0?cn:br<0?Mr:_r,We=br!=this.pX,gt=Math.abs(be.deltaX)):($t=Br===0?cn:Br<0?Gn:yr,We=Br!=this.pY,gt=Math.abs(be.deltaY))),be.direction=$t,We&>>Me.threshold&&$t&Me.direction},attrTest:function(be){return Wn.prototype.attrTest.call(this,be)&&(this.state&jr||!(this.state&jr)&&this.directionTest(be))},emit:function(be){this.pX=be.deltaX,this.pY=be.deltaY;var Me=_a(be.direction);Me&&(be.additionalEvent=this.options.event+Me),this._super.emit.call(this,be)}});function Ho(){Wn.apply(this,arguments)}G(Ho,Wn,{defaults:{event:"pinch",threshold:0,pointers:2},getTouchAction:function(){return[Pt]},attrTest:function(be){return this._super.attrTest.call(this,be)&&(Math.abs(be.scale-1)>this.options.threshold||this.state&jr)},emit:function(be){if(be.scale!==1){var Me=be.scale<1?"in":"out";be.additionalEvent=this.options.event+Me}this._super.emit.call(this,be)}});function $n(){tn.apply(this,arguments),this._timer=null,this._input=null}G($n,tn,{defaults:{event:"press",pointers:1,time:251,threshold:9},getTouchAction:function(){return[ht]},process:function(be){var Me=this.options,We=be.pointers.length===Me.pointers,gt=be.distance<Me.threshold,$t=be.deltaTime>Me.time;if(this._input=be,!gt||!We||be.eventType&(Nt|Ar)&&!$t)this.reset();else if(be.eventType&Qt)this.reset(),this._timer=T(function(){this.state=dr,this.tryEmit()},Me.time,this);else if(be.eventType&Nt)return dr;return qt},reset:function(){clearTimeout(this._timer)},emit:function(be){this.state===dr&&(be&&be.eventType&Nt?this.manager.emit(this.options.event+"up",be):(this._input.timeStamp=v(),this.manager.emit(this.options.event,this._input)))}});function Wo(){Wn.apply(this,arguments)}G(Wo,Wn,{defaults:{event:"rotate",threshold:0,pointers:2},getTouchAction:function(){return[Pt]},attrTest:function(be){return this._super.attrTest.call(this,be)&&(Math.abs(be.rotation)>this.options.threshold||this.state&jr)}});function Fi(){Wn.apply(this,arguments)}G(Fi,Wn,{defaults:{event:"swipe",threshold:10,velocity:.3,direction:vr|un,pointers:1},getTouchAction:function(){return Ie.prototype.getTouchAction.call(this)},attrTest:function(be){var Me=this.options.direction,We;return Me&(vr|un)?We=be.overallVelocity:Me&vr?We=be.overallVelocityX:Me&un&&(We=be.overallVelocityY),this._super.attrTest.call(this,be)&&Me&be.offsetDirection&&be.distance>this.options.threshold&&be.maxPointers==this.options.pointers&&A(We)>this.options.velocity&&be.eventType&Nt},emit:function(be){var Me=_a(be.offsetDirection);Me&&this.manager.emit(this.options.event+Me,be),this.manager.emit(this.options.event,be)}});function ui(){tn.apply(this,arguments),this.pTime=!1,this.pCenter=!1,this._timer=null,this._input=null,this.count=0}G(ui,tn,{defaults:{event:"tap",pointers:1,taps:1,interval:300,time:250,threshold:9,posThreshold:10},getTouchAction:function(){return[Lt]},process:function(be){var Me=this.options,We=be.pointers.length===Me.pointers,gt=be.distance<Me.threshold,$t=be.deltaTime<Me.time;if(this.reset(),be.eventType&Qt&&this.count===0)return this.failTimeout();if(gt&&$t&&We){if(be.eventType!=Nt)return this.failTimeout();var br=this.pTime?be.timeStamp-this.pTime<Me.interval:!0,Br=!this.pCenter||Pe(this.pCenter,be.center)<Me.posThreshold;this.pTime=be.timeStamp,this.pCenter=be.center,!Br||!br?this.count=1:this.count+=1,this._input=be;var fi=this.count%Me.taps;if(fi===0)return this.hasRequireFailures()?(this._timer=T(function(){this.state=dr,this.tryEmit()},Me.interval,this),jr):dr}return qt},failTimeout:function(){return this._timer=T(function(){this.state=qt},this.options.interval,this),qt},reset:function(){clearTimeout(this._timer)},emit:function(){this.state==dr&&(this._input.tapCount=this.count,this.manager.emit(this.options.event,this._input))}});function Si(be,Me){return Me=Me||{},Me.recognizers=K(Me.recognizers,Si.defaults.preset),new $i(be,Me)}Si.VERSION="2.0.7",Si.defaults={domEvents:!1,touchAction:Ft,enable:!0,inputTarget:null,inputClass:null,preset:[[Wo,{enable:!1}],[Ho,{enable:!1},["rotate"]],[Fi,{direction:vr}],[Ie,{direction:vr},["swipe"]],[ui],[ui,{event:"doubletap",taps:2},["tap"]],[$n]],cssProps:{userSelect:"none",touchSelect:"none",touchCallout:"none",contentZooming:"none",userDrag:"none",tapHighlightColor:"rgba(0,0,0,0)"}};var Rn=1,ms=2;function $i(be,Me){this.options=U({},Si.defaults,Me||{}),this.options.inputTarget=this.options.inputTarget||be,this.handlers={},this.session={},this.recognizers=[],this.oldCssProps={},this.element=be,this.input=ri(this),this.touchAction=new en(this,this.options.touchAction),Ns(this,!0),F(this.options.recognizers,function(We){var gt=this.add(new We[0](We[1]));We[2]&>.recognizeWith(We[2]),We[3]&>.requireFailure(We[3])},this)}$i.prototype={set:function(be){return U(this.options,be),be.touchAction&&this.touchAction.update(),be.inputTarget&&(this.input.destroy(),this.input.target=be.inputTarget,this.input.init()),this},stop:function(be){this.session.stopped=be?ms:Rn},recognize:function(be){var Me=this.session;if(!Me.stopped){this.touchAction.preventDefaults(be);var We,gt=this.recognizers,$t=Me.curRecognizer;(!$t||$t&&$t.state&dr)&&($t=Me.curRecognizer=null);for(var br=0;br<gt.length;)We=gt[br],Me.stopped!==ms&&(!$t||We==$t||We.canRecognizeWith($t))?We.recognize(be):We.reset(),!$t&&We.state&(jr|mi|qr)&&($t=Me.curRecognizer=We),br++}},get:function(be){if(be instanceof tn)return be;for(var Me=this.recognizers,We=0;We<Me.length;We++)if(Me[We].options.event==be)return Me[We];return null},add:function(be){if(I(be,"add",this))return this;var Me=this.get(be.options.event);return Me&&this.remove(Me),this.recognizers.push(be),be.manager=this,this.touchAction.update(),be},remove:function(be){if(I(be,"remove",this))return this;if(be=this.get(be),be){var Me=this.recognizers,We=pe(Me,be);We!==-1&&(Me.splice(We,1),this.touchAction.update())}return this},on:function(be,Me){if(be!==i&&Me!==i){var We=this.handlers;return F(me(be),function(gt){We[gt]=We[gt]||[],We[gt].push(Me)}),this}},off:function(be,Me){if(be!==i){var We=this.handlers;return F(me(be),function(gt){Me?We[gt]&&We[gt].splice(pe(We[gt],Me),1):delete We[gt]}),this}},emit:function(be,Me){this.options.domEvents&&In(be,Me);var We=this.handlers[be]&&this.handlers[be].slice();if(!(!We||!We.length)){Me.type=be,Me.preventDefault=function(){Me.srcEvent.preventDefault()};for(var gt=0;gt<We.length;)We[gt](Me),gt++}},destroy:function(){this.element&&Ns(this,!1),this.handlers={},this.session={},this.input.destroy(),this.element=null}};function Ns(be,Me){var We=be.element;if(We.style){var gt;F(be.options.cssProps,function($t,br){gt=Ce(We.style,br),Me?(be.oldCssProps[gt]=We.style[gt],We.style[gt]=$t):We.style[gt]=be.oldCssProps[gt]||""}),Me||(be.oldCssProps={})}}function In(be,Me){var We=t.createEvent("Event");We.initEvent(be,!0,!0),We.gesture=Me,Me.target.dispatchEvent(We)}U(Si,{INPUT_START:Qt,INPUT_MOVE:Jt,INPUT_END:Nt,INPUT_CANCEL:Ar,STATE_POSSIBLE:Xr,STATE_BEGAN:jr,STATE_CHANGED:mi,STATE_ENDED:qr,STATE_RECOGNIZED:dr,STATE_CANCELLED:Be,STATE_FAILED:qt,DIRECTION_NONE:cn,DIRECTION_LEFT:Mr,DIRECTION_RIGHT:_r,DIRECTION_UP:Gn,DIRECTION_DOWN:yr,DIRECTION_HORIZONTAL:vr,DIRECTION_VERTICAL:un,DIRECTION_ALL:Dr,Manager:$i,Input:mn,TouchAction:en,TouchInput:he,MouseInput:Vt,PointerEventInput:Te,TouchMouseInput:g,SingleTouchInput:ne,Recognizer:tn,AttrRecognizer:Wn,Tap:ui,Pan:Ie,Swipe:Fi,Pinch:Ho,Rotate:Wo,Press:$n,on:se,off:Ee,each:F,merge:V,extend:$,assign:U,inherit:G,bindFn:X,prefixed:Ce});var gc=typeof e<"u"?e:typeof self<"u"?self:{};gc.Hammer=Si,r.exports?r.exports=Si:e[n]=Si})(window,document,"Hammer")})(Kv)),Kv.exports}var _g=Gte();const Hte=uh(_g),Ql=zN({__proto__:null,default:Hte},[_g]),UF=1,zF=2,u2=4,Wte={mousedown:UF,mousemove:zF,mouseup:u2};function $te(r,e){for(let t=0;t<r.length;t++)if(e(r[t]))return!0;return!1}function Xte(r){const e=r.prototype.handler;r.prototype.handler=function(n){const i=this.store;n.button>0&&n.type==="pointerdown"&&($te(i,s=>s.pointerId===n.pointerId)||i.push(n)),e.call(this,n)}}function qte(r){r.prototype.handler=function(t){let n=Wte[t.type];n&UF&&t.button>=0&&(this.pressed=!0),n&zF&&t.buttons===0&&(n=u2),this.pressed&&(n&u2&&(this.pressed=!1),this.callback(this.manager,n,{pointers:[t],changedPointers:[t],pointerType:"mouse",srcEvent:t}))}}Xte(_g.PointerEventInput);qte(_g.MouseInput);const Jte=_g.Manager;class W_{constructor(e,t,n){this.element=e,this.callback=t,this.options={enable:!0,...n}}}const Kte=Ql?[[Ql.Pan,{event:"tripan",pointers:3,threshold:0,enable:!1}],[Ql.Rotate,{enable:!1}],[Ql.Pinch,{enable:!1}],[Ql.Swipe,{enable:!1}],[Ql.Pan,{threshold:0,enable:!1}],[Ql.Press,{enable:!1}],[Ql.Tap,{event:"doubletap",taps:2,enable:!1}],[Ql.Tap,{event:"anytap",enable:!1}],[Ql.Tap,{enable:!1}]]:null,lI={tripan:["rotate","pinch","pan"],rotate:["pinch"],pinch:["pan"],pan:["press","doubletap","anytap","tap"],doubletap:["anytap"],anytap:["tap"]},Zte={doubletap:["tap"]},Yte={pointerdown:"pointerdown",pointermove:"pointermove",pointerup:"pointerup",touchstart:"pointerdown",touchmove:"pointermove",touchend:"pointerup",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup"},Qx={KEY_EVENTS:["keydown","keyup"],MOUSE_EVENTS:["mousedown","mousemove","mouseup","mouseover","mouseout","mouseleave"],WHEEL_EVENTS:["wheel","mousewheel"]},Qte={tap:"tap",anytap:"anytap",doubletap:"doubletap",press:"press",pinch:"pinch",pinchin:"pinch",pinchout:"pinch",pinchstart:"pinch",pinchmove:"pinch",pinchend:"pinch",pinchcancel:"pinch",rotate:"rotate",rotatestart:"rotate",rotatemove:"rotate",rotateend:"rotate",rotatecancel:"rotate",tripan:"tripan",tripanstart:"tripan",tripanmove:"tripan",tripanup:"tripan",tripandown:"tripan",tripanleft:"tripan",tripanright:"tripan",tripanend:"tripan",tripancancel:"tripan",pan:"pan",panstart:"pan",panmove:"pan",panup:"pan",pandown:"pan",panleft:"pan",panright:"pan",panend:"pan",pancancel:"pan",swipe:"swipe",swipeleft:"swipe",swiperight:"swipe",swipeup:"swipe",swipedown:"swipe"},cI={click:"tap",anyclick:"anytap",dblclick:"doubletap",mousedown:"pointerdown",mousemove:"pointermove",mouseup:"pointerup",mouseover:"pointerover",mouseout:"pointerout",mouseleave:"pointerleave"},ere=typeof navigator<"u"&&navigator.userAgent?navigator.userAgent.toLowerCase():"",Wd=typeof window<"u"?window:global;let f2=!1;try{const r={get passive(){return f2=!0,!0}};Wd.addEventListener("test",null,r),Wd.removeEventListener("test",null)}catch{f2=!1}const tre=ere.indexOf("firefox")!==-1,{WHEEL_EVENTS:rre}=Qx,uI="wheel",fI=4.000244140625,nre=40,ire=.25;class sre extends W_{constructor(e,t,n){super(e,t,n),this.handleEvent=i=>{if(!this.options.enable)return;let s=i.deltaY;Wd.WheelEvent&&(tre&&i.deltaMode===Wd.WheelEvent.DOM_DELTA_PIXEL&&(s/=Wd.devicePixelRatio),i.deltaMode===Wd.WheelEvent.DOM_DELTA_LINE&&(s*=nre)),s!==0&&s%fI===0&&(s=Math.floor(s/fI)),i.shiftKey&&s&&(s=s*ire),this.callback({type:uI,center:{x:i.clientX,y:i.clientY},delta:-s,srcEvent:i,pointerType:"mouse",target:i.target})},this.events=(this.options.events||[]).concat(rre),this.events.forEach(i=>e.addEventListener(i,this.handleEvent,f2?{passive:!1}:!1))}destroy(){this.events.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,t){e===uI&&(this.options.enable=t)}}const{MOUSE_EVENTS:ore}=Qx,hI="pointermove",dI="pointerover",pI="pointerout",AI="pointerenter",gI="pointerleave";class are extends W_{constructor(e,t,n){super(e,t,n),this.handleEvent=s=>{this.handleOverEvent(s),this.handleOutEvent(s),this.handleEnterEvent(s),this.handleLeaveEvent(s),this.handleMoveEvent(s)},this.pressed=!1;const{enable:i}=this.options;this.enableMoveEvent=i,this.enableLeaveEvent=i,this.enableEnterEvent=i,this.enableOutEvent=i,this.enableOverEvent=i,this.events=(this.options.events||[]).concat(ore),this.events.forEach(s=>e.addEventListener(s,this.handleEvent))}destroy(){this.events.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,t){e===hI&&(this.enableMoveEvent=t),e===dI&&(this.enableOverEvent=t),e===pI&&(this.enableOutEvent=t),e===AI&&(this.enableEnterEvent=t),e===gI&&(this.enableLeaveEvent=t)}handleOverEvent(e){this.enableOverEvent&&e.type==="mouseover"&&this._emit(dI,e)}handleOutEvent(e){this.enableOutEvent&&e.type==="mouseout"&&this._emit(pI,e)}handleEnterEvent(e){this.enableEnterEvent&&e.type==="mouseenter"&&this._emit(AI,e)}handleLeaveEvent(e){this.enableLeaveEvent&&e.type==="mouseleave"&&this._emit(gI,e)}handleMoveEvent(e){if(this.enableMoveEvent)switch(e.type){case"mousedown":e.button>=0&&(this.pressed=!0);break;case"mousemove":e.buttons===0&&(this.pressed=!1),this.pressed||this._emit(hI,e);break;case"mouseup":this.pressed=!1;break}}_emit(e,t){this.callback({type:e,center:{x:t.clientX,y:t.clientY},srcEvent:t,pointerType:"mouse",target:t.target})}}const{KEY_EVENTS:lre}=Qx,mI="keydown",_I="keyup";class cre extends W_{constructor(e,t,n){super(e,t,n),this.handleEvent=i=>{const s=i.target||i.srcElement;s.tagName==="INPUT"&&s.type==="text"||s.tagName==="TEXTAREA"||(this.enableDownEvent&&i.type==="keydown"&&this.callback({type:mI,srcEvent:i,key:i.key,target:i.target}),this.enableUpEvent&&i.type==="keyup"&&this.callback({type:_I,srcEvent:i,key:i.key,target:i.target}))},this.enableDownEvent=this.options.enable,this.enableUpEvent=this.options.enable,this.events=(this.options.events||[]).concat(lre),e.tabIndex=this.options.tabIndex||0,e.style.outline="none",this.events.forEach(i=>e.addEventListener(i,this.handleEvent))}destroy(){this.events.forEach(e=>this.element.removeEventListener(e,this.handleEvent))}enableEventType(e,t){e===mI&&(this.enableDownEvent=t),e===_I&&(this.enableUpEvent=t)}}const yI="contextmenu";class ure extends W_{constructor(e,t,n){super(e,t,n),this.handleEvent=i=>{this.options.enable&&this.callback({type:yI,center:{x:i.clientX,y:i.clientY},srcEvent:i,pointerType:"mouse",target:i.target})},e.addEventListener("contextmenu",this.handleEvent)}destroy(){this.element.removeEventListener("contextmenu",this.handleEvent)}enableEventType(e,t){e===yI&&(this.options.enable=t)}}const vI=1,h2=2,bI=4,fre={pointerdown:vI,pointermove:h2,pointerup:bI,mousedown:vI,mousemove:h2,mouseup:bI},hre=0,dre=1,pre=2,Are=1,gre=2,mre=4;function _re(r){const e=fre[r.srcEvent.type];if(!e)return null;const{buttons:t,button:n}=r.srcEvent;let i=!1,s=!1,o=!1;return e===h2?(i=!!(t&Are),s=!!(t&mre),o=!!(t&gre)):(i=n===hre,s=n===dre,o=n===pre),{leftButton:i,middleButton:s,rightButton:o}}function yre(r,e){const t=r.center;if(!t)return null;const n=e.getBoundingClientRect(),i=n.width/e.offsetWidth||1,s=n.height/e.offsetHeight||1,o={x:(t.x-n.left-e.clientLeft)/i,y:(t.y-n.top-e.clientTop)/s};return{center:t,offsetCenter:o}}const Zv={srcElement:"root",priority:0};class vre{constructor(e){this.handleEvent=t=>{if(this.isEmpty())return;const n=this._normalizeEvent(t);let i=t.srcEvent.target;for(;i&&i!==n.rootElement;){if(this._emit(n,i),n.handled)return;i=i.parentNode}this._emit(n,"root")},this.eventManager=e,this.handlers=[],this.handlersByElement=new Map,this._active=!1}isEmpty(){return!this._active}add(e,t,n,i=!1,s=!1){const{handlers:o,handlersByElement:l}=this;let f=Zv;typeof n=="string"||n&&n.addEventListener?f={...Zv,srcElement:n}:n&&(f={...Zv,...n});let A=l.get(f.srcElement);A||(A=[],l.set(f.srcElement,A));const v={type:e,handler:t,srcElement:f.srcElement,priority:f.priority};i&&(v.once=!0),s&&(v.passive=!0),o.push(v),this._active=this._active||!v.passive;let T=A.length-1;for(;T>=0&&!(A[T].priority>=v.priority);)T--;A.splice(T+1,0,v)}remove(e,t){const{handlers:n,handlersByElement:i}=this;for(let s=n.length-1;s>=0;s--){const o=n[s];if(o.type===e&&o.handler===t){n.splice(s,1);const l=i.get(o.srcElement);l.splice(l.indexOf(o),1),l.length===0&&i.delete(o.srcElement)}}this._active=n.some(s=>!s.passive)}_emit(e,t){const n=this.handlersByElement.get(t);if(n){let i=!1;const s=()=>{e.handled=!0},o=()=>{e.handled=!0,i=!0},l=[];for(let f=0;f<n.length;f++){const{type:A,handler:v,once:T}=n[f];if(v({...e,type:A,stopPropagation:s,stopImmediatePropagation:o}),T&&l.push(n[f]),i)break}for(let f=0;f<l.length;f++){const{type:A,handler:v}=l[f];this.remove(A,v)}
2598}}_normalizeEvent(e){const t=this.eventManager.getElement();return{...e,..._re(e),...yre(e,t),preventDefault:()=>{e.srcEvent.preventDefault()},stopImmediatePropagation:null,stopPropagation:null,handled:!1,rootElement:t}}}const bre={events:null,recognizers:null,recognizerOptions:{},Manager:Jte,touchAction:"none",tabIndex:0};class xre{constructor(e=null,t){this._onBasicInput=i=>{const{srcEvent:s}=i,o=Yte[s.type];o&&this.manager.emit(o,i)},this._onOtherEvent=i=>{this.manager.emit(i.type,i)},this.options={...bre,...t},this.events=new Map,this.setElement(e);const{events:n}=this.options;n&&this.on(n)}getElement(){return this.element}setElement(e){if(this.element&&this.destroy(),this.element=e,!e)return;const{options:t}=this,n=t.Manager;this.manager=new n(e,{touchAction:t.touchAction,recognizers:t.recognizers||Kte}).on("hammer.input",this._onBasicInput),t.recognizers||Object.keys(lI).forEach(i=>{const s=this.manager.get(i);s&&lI[i].forEach(o=>{s.recognizeWith(o)})});for(const i in t.recognizerOptions){const s=this.manager.get(i);if(s){const o=t.recognizerOptions[i];delete o.enable,s.set(o)}}this.wheelInput=new sre(e,this._onOtherEvent,{enable:!1}),this.moveInput=new are(e,this._onOtherEvent,{enable:!1}),this.keyInput=new cre(e,this._onOtherEvent,{enable:!1,tabIndex:t.tabIndex}),this.contextmenuInput=new ure(e,this._onOtherEvent,{enable:!1});for(const[i,s]of this.events)s.isEmpty()||(this._toggleRecognizer(s.recognizerName,!0),this.manager.on(i,s.handleEvent))}destroy(){this.element&&(this.wheelInput.destroy(),this.moveInput.destroy(),this.keyInput.destroy(),this.contextmenuInput.destroy(),this.manager.destroy(),this.wheelInput=null,this.moveInput=null,this.keyInput=null,this.contextmenuInput=null,this.manager=null,this.element=null)}on(e,t,n){this._addEventHandler(e,t,n,!1)}once(e,t,n){this._addEventHandler(e,t,n,!0)}watch(e,t,n){this._addEventHandler(e,t,n,!1,!0)}off(e,t){this._removeEventHandler(e,t)}_toggleRecognizer(e,t){const{manager:n}=this;if(!n)return;const i=n.get(e);if(i&&i.options.enable!==t){i.set({enable:t});const s=Zte[e];s&&!this.options.recognizers&&s.forEach(o=>{const l=n.get(o);t?(l.requireFailure(e),i.dropRequireFailure(o)):l.dropRequireFailure(e)})}this.wheelInput.enableEventType(e,t),this.moveInput.enableEventType(e,t),this.keyInput.enableEventType(e,t),this.contextmenuInput.enableEventType(e,t)}_addEventHandler(e,t,n,i,s){if(typeof e!="string"){n=t;for(const v in e)this._addEventHandler(v,e[v],n,i,s);return}const{manager:o,events:l}=this,f=cI[e]||e;let A=l.get(f);A||(A=new vre(this),l.set(f,A),A.recognizerName=Qte[f]||f,o&&o.on(f,A.handleEvent)),A.add(e,t,n,i,s),A.isEmpty()||this._toggleRecognizer(A.recognizerName,!0)}_removeEventHandler(e,t){if(typeof e!="string"){for(const o in e)this._removeEventHandler(o,e[o]);return}const{events:n}=this,i=cI[e]||e,s=n.get(i);if(s&&(s.remove(e,t),s.isEmpty())){const{recognizerName:o}=s;let l=!1;for(const f of n.values())if(f.recognizerName===o&&!f.isEmpty()){l=!0;break}l||this._toggleRecognizer(o,!1)}}}function xI(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function Bo(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?xI(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):xI(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var kf={transitionDuration:0},Vc={transitionDuration:300,transitionEasing:function(e){return e},transitionInterpolator:new jA,transitionInterruption:HA.BREAK},O0=300,D0=function(e){return 1-(1-e)*(1-e)},Ad={WHEEL:["wheel"],PAN:["panstart","panmove","panend"],PINCH:["pinchstart","pinchmove","pinchend"],TRIPLE_PAN:["tripanstart","tripanmove","tripanend"],DOUBLE_TAP:["doubletap"],KEYBOARD:["keydown"]},VF=(function(){function r(){var e=this;tf(this,r),Er(this,"events",[]),Er(this,"scrollZoom",!0),Er(this,"dragPan",!0),Er(this,"dragRotate",!0),Er(this,"doubleClickZoom",!0),Er(this,"touchZoom",!0),Er(this,"touchRotate",!1),Er(this,"keyboard",!0),Er(this,"_interactionState",{isDragging:!1}),Er(this,"_events",{}),Er(this,"_setInteractionState",function(t){Object.assign(e._interactionState,t),e.onStateChange&&e.onStateChange(e._interactionState)}),Er(this,"_onTransition",function(t,n){e.onViewportChange(t,e._interactionState,n)}),this.handleEvent=this.handleEvent.bind(this),this._transitionManager=new Yx({onViewportChange:this._onTransition,onStateChange:this._setInteractionState})}return ef(r,[{key:"handleEvent",value:function(t){this.mapState=this.getMapState();var n=this._eventStartBlocked;switch(t.type){case"panstart":return n?!1:this._onPanStart(t);case"panmove":return this._onPan(t);case"panend":return this._onPanEnd(t);case"pinchstart":return n?!1:this._onPinchStart(t);case"pinchmove":return this._onPinch(t);case"pinchend":return this._onPinchEnd(t);case"tripanstart":return n?!1:this._onTriplePanStart(t);case"tripanmove":return this._onTriplePan(t);case"tripanend":return this._onTriplePanEnd(t);case"doubletap":return this._onDoubleTap(t);case"wheel":return this._onWheel(t);case"keydown":return this._onKeyDown(t);default:return!1}}},{key:"getCenter",value:function(t){var n=t.offsetCenter,i=n.x,s=n.y;return[i,s]}},{key:"isFunctionKeyPressed",value:function(t){var n=t.srcEvent;return!!(n.metaKey||n.altKey||n.ctrlKey||n.shiftKey)}},{key:"blockEvents",value:function(t){var n=this,i=setTimeout(function(){n._eventStartBlocked===i&&(n._eventStartBlocked=null)},t);this._eventStartBlocked=i}},{key:"updateViewport",value:function(t,n,i){var s=this.mapState instanceof np?this.mapState.getViewportProps():this.mapState,o=Bo(Bo({},t.getViewportProps()),n),l=Object.keys(o).some(function(f){return s[f]!==o[f]});this._state=t.getState(),this._setInteractionState(i),l&&this.onViewportChange(o,this._interactionState,s)}},{key:"getMapState",value:function(t){return new np(Bo(Bo(Bo({},this.mapStateProps),this._state),t))}},{key:"isDragging",value:function(){return this._interactionState.isDragging}},{key:"setOptions",value:function(t){var n=t.onViewportChange,i=t.onStateChange,s=t.eventManager,o=s===void 0?this.eventManager:s,l=t.isInteractive,f=l===void 0?!0:l,A=t.scrollZoom,v=A===void 0?this.scrollZoom:A,T=t.dragPan,I=T===void 0?this.dragPan:T,F=t.dragRotate,N=F===void 0?this.dragRotate:F,U=t.doubleClickZoom,$=U===void 0?this.doubleClickZoom:U,V=t.touchZoom,G=V===void 0?this.touchZoom:V,X=t.touchRotate,ue=X===void 0?this.touchRotate:X,K=t.keyboard,se=K===void 0?this.keyboard:K;this.onViewportChange=n,this.onStateChange=i;var Ee=this.mapStateProps||{},Ue=Ee.height!==t.height||Ee.width!==t.width;this.mapStateProps=t,Ue&&(this.mapState=Ee,this.updateViewport(new np(t))),this._transitionManager.processViewportChange(t),this.eventManager!==o&&(this.eventManager=o,this._events={},this.toggleEvents(this.events,!0)),this.toggleEvents(Ad.WHEEL,f&&!!v),this.toggleEvents(Ad.PAN,f&&!!(I||N)),this.toggleEvents(Ad.PINCH,f&&!!(G||ue)),this.toggleEvents(Ad.TRIPLE_PAN,f&&!!ue),this.toggleEvents(Ad.DOUBLE_TAP,f&&!!$),this.toggleEvents(Ad.KEYBOARD,f&&!!se),this.scrollZoom=v,this.dragPan=I,this.dragRotate=N,this.doubleClickZoom=$,this.touchZoom=G,this.touchRotate=ue,this.keyboard=se}},{key:"toggleEvents",value:function(t,n){var i=this;this.eventManager&&t.forEach(function(s){i._events[s]!==n&&(i._events[s]=n,n?i.eventManager.on(s,i.handleEvent):i.eventManager.off(s,i.handleEvent))})}},{key:"_onPanStart",value:function(t){var n=this.getCenter(t);this._panRotate=this.isFunctionKeyPressed(t)||t.rightButton;var i=this._panRotate?this.mapState.rotateStart({pos:n}):this.mapState.panStart({pos:n});return this.updateViewport(i,kf,{isDragging:!0}),!0}},{key:"_onPan",value:function(t){return this.isDragging()?this._panRotate?this._onPanRotate(t):this._onPanMove(t):!1}},{key:"_onPanEnd",value:function(t){return this.isDragging()?this._panRotate?this._onPanRotateEnd(t):this._onPanMoveEnd(t):!1}},{key:"_onPanMove",value:function(t){if(!this.dragPan)return!1;var n=this.getCenter(t),i=this.mapState.pan({pos:n});return this.updateViewport(i,kf,{isPanning:!0}),!0}},{key:"_onPanMoveEnd",value:function(t){if(this.dragPan){var n=this.dragPan.inertia,i=n===void 0?O0:n;if(i&&t.velocity){var s=this.getCenter(t),o=[s[0]+t.velocityX*i/2,s[1]+t.velocityY*i/2],l=this.mapState.pan({pos:o}).panEnd();return this.updateViewport(l,Bo(Bo({},Vc),{},{transitionDuration:i,transitionEasing:D0}),{isDragging:!1,isPanning:!0}),!0}}var f=this.mapState.panEnd();return this.updateViewport(f,null,{isDragging:!1,isPanning:!1}),!0}},{key:"_onPanRotate",value:function(t){if(!this.dragRotate)return!1;var n=this.getCenter(t),i=this.mapState.rotate({pos:n});return this.updateViewport(i,kf,{isRotating:!0}),!0}},{key:"_onPanRotateEnd",value:function(t){if(this.dragRotate){var n=this.dragRotate.inertia,i=n===void 0?O0:n;if(i&&t.velocity){var s=this.getCenter(t),o=[s[0]+t.velocityX*i/2,s[1]+t.velocityY*i/2],l=this.mapState.rotate({pos:o}).rotateEnd();return this.updateViewport(l,Bo(Bo({},Vc),{},{transitionDuration:i,transitionEasing:D0}),{isDragging:!1,isRotating:!0}),!0}}var f=this.mapState.panEnd();return this.updateViewport(f,null,{isDragging:!1,isRotating:!1}),!0}},{key:"_onWheel",value:function(t){if(!this.scrollZoom)return!1;var n=this.scrollZoom,i=n.speed,s=i===void 0?.01:i,o=n.smooth,l=o===void 0?!1:o;t.preventDefault();var f=this.getCenter(t),A=t.delta,v=2/(1+Math.exp(-Math.abs(A*s)));A<0&&v!==0&&(v=1/v);var T=this.mapState.zoom({pos:f,scale:v});return T.getViewportProps().zoom===this.mapStateProps.zoom?!1:(this.updateViewport(T,Bo(Bo({},Vc),{},{transitionInterpolator:new jA({around:f}),transitionDuration:l?250:1}),{isPanning:!0,isZooming:!0}),!0)}},{key:"_onPinchStart",value:function(t){var n=this.getCenter(t),i=this.mapState.zoomStart({pos:n}).rotateStart({pos:n});return this._startPinchRotation=t.rotation,this._lastPinchEvent=t,this.updateViewport(i,kf,{isDragging:!0}),!0}},{key:"_onPinch",value:function(t){if(!this.isDragging()||!this.touchZoom&&!this.touchRotate)return!1;var n=this.mapState;if(this.touchZoom){var i=t.scale,s=this.getCenter(t);n=n.zoom({pos:s,scale:i})}if(this.touchRotate){var o=t.rotation;n=n.rotate({deltaAngleX:this._startPinchRotation-o})}return this.updateViewport(n,kf,{isDragging:!0,isPanning:!!this.touchZoom,isZooming:!!this.touchZoom,isRotating:!!this.touchRotate}),this._lastPinchEvent=t,!0}},{key:"_onPinchEnd",value:function(t){if(!this.isDragging())return!1;if(this.touchZoom){var n=this.touchZoom.inertia,i=n===void 0?O0:n,s=this._lastPinchEvent;if(i&&s&&t.scale!==s.scale){var o=this.getCenter(t),l=this.mapState.rotateEnd(),f=Math.log2(t.scale),A=(f-Math.log2(s.scale))/(t.deltaTime-s.deltaTime),v=Math.pow(2,f+A*i/2);return l=l.zoom({pos:o,scale:v}).zoomEnd(),this.updateViewport(l,Bo(Bo({},Vc),{},{transitionInterpolator:new jA({around:o}),transitionDuration:i,transitionEasing:D0}),{isDragging:!1,isPanning:!!this.touchZoom,isZooming:!!this.touchZoom,isRotating:!1}),this.blockEvents(i),!0}}var T=this.mapState.zoomEnd().rotateEnd();return this._state.startPinchRotation=0,this.updateViewport(T,null,{isDragging:!1,isPanning:!1,isZooming:!1,isRotating:!1}),this._startPinchRotation=null,this._lastPinchEvent=null,!0}},{key:"_onTriplePanStart",value:function(t){var n=this.getCenter(t),i=this.mapState.rotateStart({pos:n});return this.updateViewport(i,kf,{isDragging:!0}),!0}},{key:"_onTriplePan",value:function(t){if(!this.isDragging()||!this.touchRotate)return!1;var n=this.getCenter(t);n[0]-=t.deltaX;var i=this.mapState.rotate({pos:n});return this.updateViewport(i,kf,{isRotating:!0}),!0}},{key:"_onTriplePanEnd",value:function(t){if(!this.isDragging())return!1;if(this.touchRotate){var n=this.touchRotate.inertia,i=n===void 0?O0:n;if(i&&t.velocityY){var s=this.getCenter(t),o=[s[0],s[1]+=t.velocityY*i/2],l=this.mapState.rotate({pos:o});return this.updateViewport(l,Bo(Bo({},Vc),{},{transitionDuration:i,transitionEasing:D0}),{isDragging:!1,isRotating:!0}),this.blockEvents(i),!1}}var f=this.mapState.rotateEnd();return this.updateViewport(f,null,{isDragging:!1,isRotating:!1}),!0}},{key:"_onDoubleTap",value:function(t){if(!this.doubleClickZoom)return!1;var n=this.getCenter(t),i=this.isFunctionKeyPressed(t),s=this.mapState.zoom({pos:n,scale:i?.5:2});return this.updateViewport(s,Object.assign({},Vc,{transitionInterpolator:new jA({around:n})}),{isZooming:!0}),!0}},{key:"_onKeyDown",value:function(t){if(!this.keyboard)return!1;var n=this.isFunctionKeyPressed(t),i=this.keyboard,s=i.zoomSpeed,o=s===void 0?2:s,l=i.moveSpeed,f=l===void 0?100:l,A=i.rotateSpeedX,v=A===void 0?15:A,T=i.rotateSpeedY,I=T===void 0?10:T,F=this.mapStateProps,N;switch(t.srcEvent.keyCode){case 189:n?N=this.getMapState({zoom:F.zoom-Math.log2(o)-1}):N=this.getMapState({zoom:F.zoom-Math.log2(o)});break;case 187:n?N=this.getMapState({zoom:F.zoom+Math.log2(o)+1}):N=this.getMapState({zoom:F.zoom+Math.log2(o)});break;case 37:n?N=this.getMapState({bearing:F.bearing-v}):N=this.mapState.pan({pos:[f,0],startPos:[0,0]});break;case 39:n?N=this.getMapState({bearing:F.bearing+v}):N=this.mapState.pan({pos:[-f,0],startPos:[0,0]});break;case 38:n?N=this.getMapState({pitch:F.pitch+I}):N=this.mapState.pan({pos:[0,f],startPos:[0,0]});break;case 40:n?N=this.getMapState({pitch:F.pitch-I}):N=this.mapState.pan({pos:[0,-f],startPos:[0,0]});break;default:return!1}return this.updateViewport(N,Vc)}}]),r})();function wI(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function Uc(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};
2598e%2?wI(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):wI(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var wre=Object.assign({},tu.propTypes,{maxZoom:At.number,minZoom:At.number,maxPitch:At.number,minPitch:At.number,onViewStateChange:At.func,onViewportChange:At.func,onInteractionStateChange:At.func,transitionDuration:At.oneOfType([At.number,At.string]),transitionInterpolator:At.object,transitionInterruption:At.number,transitionEasing:At.func,onTransitionStart:At.func,onTransitionInterrupt:At.func,onTransitionEnd:At.func,scrollZoom:At.oneOfType([At.bool,At.object]),dragPan:At.oneOfType([At.bool,At.object]),dragRotate:At.oneOfType([At.bool,At.object]),doubleClickZoom:At.bool,touchZoom:At.oneOfType([At.bool,At.object]),touchRotate:At.oneOfType([At.bool,At.object]),keyboard:At.oneOfType([At.bool,At.object]),onHover:At.func,onClick:At.func,onDblClick:At.func,onContextMenu:At.func,onMouseDown:At.func,onMouseMove:At.func,onMouseUp:At.func,onTouchStart:At.func,onTouchMove:At.func,onTouchEnd:At.func,onMouseEnter:At.func,onMouseLeave:At.func,onMouseOut:At.func,onWheel:At.func,touchAction:At.string,eventRecognizerOptions:At.object,clickRadius:At.number,interactiveLayerIds:At.array,getCursor:At.func,controller:At.instanceOf(VF)}),Tre=function(e){var t=e.isDragging,n=e.isHovering;return t?"grabbing":n?"pointer":"grab"},Ere=Object.assign({},tu.defaultProps,qf,Yx.defaultProps,{onViewStateChange:null,onViewportChange:null,onClick:null,onNativeClick:null,onHover:null,onContextMenu:function(e){return e.preventDefault()},scrollZoom:!0,dragPan:!0,dragRotate:!0,doubleClickZoom:!0,touchZoom:!0,touchRotate:!1,keyboard:!0,touchAction:"none",eventRecognizerOptions:{},clickRadius:0,getCursor:Tre});function ew(r){if(r.lngLat||!r.offsetCenter)return r;var e=r.offsetCenter,t=e.x,n=e.y;if(!Number.isFinite(t)||!Number.isFinite(n))return r;var i=[t,n];return r.point=i,r.lngLat=this.viewport.unproject(i),r}function jF(r){var e=this.map;if(!e||!r)return null;var t={},n=this.props.clickRadius;this.props.interactiveLayerIds&&(t.layers=this.props.interactiveLayerIds);try{return e.queryRenderedFeatures(n?[[r[0]-n,r[1]+n],[r[0]+n,r[1]-n]]:r,t)}catch{return null}}function Xc(r,e){var t=this.props[r];t&&t(ew.call(this,e))}function Cre(r){Xc.call(this,r.pointerType==="touch"?"onTouchStart":"onMouseDown",r)}function Sre(r){Xc.call(this,r.pointerType==="touch"?"onTouchEnd":"onMouseUp",r)}function Ire(r){if(Xc.call(this,r.pointerType==="touch"?"onTouchMove":"onMouseMove",r),!this.state.isDragging){var e=this.props,t=e.onHover,n=e.interactiveLayerIds,i;r=ew.call(this,r),(n||t)&&(i=jF.call(this,r.point));var s=!!(n&&i&&i.length>0),o=s&&!this.state.isHovering,l=!s&&this.state.isHovering;(t||o)&&(r.features=i,t&&t(r)),o&&Xc.call(this,"onMouseEnter",r),l&&Xc.call(this,"onMouseLeave",r),(o||l)&&this.setState({isHovering:s})}}function TI(r){var e=this.props,t=e.onClick,n=e.onNativeClick,i=e.onDblClick,s=e.doubleClickZoom,o=[],l=i||s;switch(r.type){case"anyclick":o.push(n),l||o.push(t);break;case"click":l&&o.push(t);break}o=o.filter(Boolean),o.length&&(r=ew.call(this,r),r.features=jF.call(this,r.point),o.forEach(function(f){return f(r)}))}function Bre(r){return{getMap:r.current&&r.current.getMap,queryRenderedFeatures:r.current&&r.current.queryRenderedFeatures}}var tw=Bt.forwardRef(function(r,e){var t=Bt.useContext(mh),n=Bt.useMemo(function(){return r.controller||new VF},[]),i=Bt.useMemo(function(){return new xre(null,{touchAction:r.touchAction,recognizerOptions:r.eventRecognizerOptions})},[]),s=Bt.useRef(null),o=Bt.useRef(null),l=Bt.useRef({width:0,height:0,state:{isHovering:!1,isDragging:!1}}),f=l.current;f.props=r,f.map=o.current&&o.current.getMap(),f.setState=function(se){f.state=Uc(Uc({},f.state),se),s.current.style.cursor=r.getCursor(f.state)};var A=!0,v,T,I=function(Ee,Ue,de){if(A){v=[Ee,Ue,de];return}var me=f.props,pe=me.onViewStateChange,W=me.onViewportChange;pe&&pe({viewState:Ee,interactionState:Ue,oldViewState:de}),W&&W(Ee,Ue,de)};Bt.useImperativeHandle(e,function(){return Bre(o)},[]);var F=Bt.useMemo(function(){return Uc(Uc({},t),{},{eventManager:i,container:t.container||s.current})},[t,s.current]);F.onViewportChange=I,F.viewport=t.viewport||kF(f),f.viewport=F.viewport;var N=function(Ee){var Ue=Ee.isDragging,de=Ue===void 0?!1:Ue;if(de!==f.state.isDragging&&f.setState({isDragging:de}),A){T=Ee;return}var me=f.props.onInteractionStateChange;me&&me(Ee)},U=function(){f.width&&f.height&&n.setOptions(Uc(Uc(Uc({},f.props),f.props.viewState),{},{isInteractive:!!(f.props.onViewStateChange||f.props.onViewportChange),onViewportChange:I,onStateChange:N,eventManager:i,width:f.width,height:f.height}))},$=function(Ee){var Ue=Ee.width,de=Ee.height;f.width=Ue,f.height=de,U(),f.props.onResize({width:Ue,height:de})};Bt.useEffect(function(){return i.setElement(s.current),i.on({pointerdown:Cre.bind(f),pointermove:Ire.bind(f),pointerup:Sre.bind(f),pointerleave:Xc.bind(f,"onMouseOut"),click:TI.bind(f),anyclick:TI.bind(f),dblclick:Xc.bind(f,"onDblClick"),wheel:Xc.bind(f,"onWheel"),contextmenu:Xc.bind(f,"onContextMenu")}),function(){i.destroy()}},[]),l2(function(){v&&I.apply(void 0,RN(v)),T&&N(T)}),U();var V=r.width,G=r.height,X=r.style,ue=r.getCursor,K=Bt.useMemo(function(){return Uc(Uc({position:"relative"},X),{},{width:V,height:G,cursor:ue(f.state)})},[X,V,G,ue,f.state]);return(!v||!f._child)&&(f._child=Bt.createElement(Zx,{value:F},Bt.createElement("div",{key:"event-canvas",ref:s,style:K},Bt.createElement(tu,ZR({},r,{width:"100%",height:"100%",style:null,onResize:$,ref:o}))))),A=!1,f._child});tw.supported=tu.supported;tw.propTypes=wre;tw.defaultProps=Ere;At.string.isRequired;var Pre=["fill","line","symbol","circle","fill-extrusion","raster","background","heatmap","hillshade"];At.oneOf(Pre).isRequired;var rf={captureScroll:!1,captureDrag:!0,captureClick:!0,captureDoubleClick:!0,capturePointerMove:!1},Il={captureScroll:At.bool,captureDrag:At.bool,captureClick:At.bool,captureDoubleClick:At.bool,capturePointerMove:At.bool};function Mre(r){var e=r.containerRef.current,t=r.context.eventManager;if(!(!e||!t)){var n={wheel:function(s){var o=r.props;o.captureScroll&&s.stopPropagation(),o.onScroll&&o.onScroll(s,r)},panstart:function(s){var o=r.props;o.captureDrag&&s.stopPropagation(),o.onDragStart&&o.onDragStart(s,r)},anyclick:function(s){var o=r.props;o.captureClick&&s.stopPropagation(),o.onNativeClick&&o.onNativeClick(s,r)},click:function(s){var o=r.props;o.captureClick&&s.stopPropagation(),o.onClick&&o.onClick(s,r)},dblclick:function(s){var o=r.props;o.captureDoubleClick&&s.stopPropagation(),o.onDoubleClick&&o.onDoubleClick(s,r)},pointermove:function(s){var o=r.props;o.capturePointerMove&&s.stopPropagation(),o.onPointerMove&&o.onPointerMove(s,r)}};return t.watch(n,e),function(){t.off(n)}}}function nf(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},e=Bt.useContext(mh),t=Bt.useRef(null),n=Bt.useRef({props:r,state:{},context:e,containerRef:t}),i=n.current;return i.props=r,i.context=e,Bt.useEffect(function(){return Mre(i)},[e.eventManager]),i}function Rre(r){var e=Ore();return function(){var n=ap(r),i;if(e){var s=ap(this).constructor;i=Reflect.construct(n,arguments,s)}else i=n.apply(this,arguments);return H2(this,i)}}function Ore(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch{return!1}}function Dre(r){var e=r.instance,t=nf(r),n=t.context,i=t.containerRef;
2598return e._context=n,e._containerRef=i,e._render()}var GF=(function(r){G2(t,r);var e=Rre(t);function t(){var n;tf(this,t);for(var i=arguments.length,s=new Array(i),o=0;o<i;o++)s[o]=arguments[o];return n=e.call.apply(e,[this].concat(s)),Er(ku(n),"_context",{}),Er(ku(n),"_containerRef",Bt.createRef()),Er(ku(n),"_onScroll",function(l){}),Er(ku(n),"_onDragStart",function(l){}),Er(ku(n),"_onDblClick",function(l){}),Er(ku(n),"_onClick",function(l){}),Er(ku(n),"_onPointerMove",function(l){}),n}return ef(t,[{key:"_render",value:function(){throw new Error("_render() not implemented")}},{key:"render",value:function(){return Bt.createElement(Dre,ZR({instance:this},this.props,{onScroll:this._onScroll,onDragStart:this._onDragStart,onDblClick:this._onDblClick,onClick:this._onClick,onPointerMove:this._onPointerMove}))}}]),t})(Bt.PureComponent);Er(GF,"propTypes",Il);Er(GF,"defaultProps",rf);function EI(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function CI(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?EI(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):EI(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var Fre=Object.assign({},Il,{draggable:At.bool,onDrag:At.func,onDragEnd:At.func,onDragStart:At.func,offsetLeft:At.number,offsetTop:At.number}),Lre=Object.assign({},rf,{draggable:!1,offsetLeft:0,offsetTop:0});function HF(r){var e=r.offsetCenter,t=e.x,n=e.y;return[t,n]}function kre(r,e){var t=r.center,n=t.x,i=t.y;if(e){var s=e.getBoundingClientRect();return[s.left-n,s.top-i]}return null}function rw(r,e,t,n){var i=r[0]+e[0]-t.offsetLeft,s=r[1]+e[1]-t.offsetTop;return n.viewport.unproject([i,s])}function Nre(r,e){var t=e.props,n=e.callbacks,i=e.state,s=e.context,o=e.containerRef,l=t.draggable;if(l){r.stopPropagation();var f=HF(r),A=kre(r,o.current);if(i.setDragPos(f),i.setDragOffset(A),n.onDragStart&&A){var v=Object.assign({},r);v.lngLat=rw(f,A,t,s),n.onDragStart(v)}}}function Ure(r,e){var t=e.props,n=e.callbacks,i=e.state,s=e.context;r.stopPropagation();var o=HF(r);i.setDragPos(o);var l=i.dragOffset;if(n.onDrag&&l){var f=Object.assign({},r);f.lngLat=rw(o,l,t,s),n.onDrag(f)}}function zre(r,e){var t=e.props,n=e.callbacks,i=e.state,s=e.context;r.stopPropagation();var o=i.dragPos,l=i.dragOffset;if(i.setDragPos(null),i.setDragOffset(null),n.onDragEnd&&o&&l){var f=Object.assign({},r);f.lngLat=rw(o,l,t,s),n.onDragEnd(f)}}function Vre(r,e){var t=e.state;r.stopPropagation(),t.setDragPos(null),t.setDragOffset(null)}function jre(r){var e=r.context.eventManager;if(!(!e||!r.state.dragPos)){var t={panmove:function(i){return Ure(i,r)},panend:function(i){return zre(i,r)},pancancel:function(i){return Vre(i,r)}};return e.watch(t),function(){e.off(t)}}}function Gre(r){var e=Bt.useState(null),t=gs(e,2),n=t[0],i=t[1],s=Bt.useState(null),o=gs(s,2),l=o[0],f=o[1],A=nf(CI(CI({},r),{},{onDragStart:Nre}));return A.callbacks=r,A.state.dragPos=n,A.state.setDragPos=i,A.state.dragOffset=l,A.state.setDragOffset=f,Bt.useEffect(function(){return jre(A)},[A.context.eventManager,!!n]),A}var SI=typeof window<"u"&&window.devicePixelRatio||1,sg=function(e){return Math.round(e*SI)/SI},II=function(e,t){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"x";if(e===null)return t;var i=n==="x"?e.offsetWidth:e.offsetHeight;return sg(t/100*i)/i*100};function BI(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function Hre(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?BI(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):BI(Object(t)).forEac
2598h(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var Wre=Object.assign({},Fre,{className:At.string,longitude:At.number.isRequired,latitude:At.number.isRequired,style:At.object}),$re=Object.assign({},Lre,{className:""});function Xre(r){var e=r.props,t=r.state,n=r.context,i=e.longitude,s=e.latitude,o=e.offsetLeft,l=e.offsetTop,f=t.dragPos,A=t.dragOffset;if(f&&A)return[f[0]+A[0],f[1]+A[1]];var v=n.viewport.project([i,s]),T=gs(v,2),I=T[0],F=T[1];return I+=o,F+=l,[I,F]}function nw(r){var e=Gre(r),t=e.state,n=e.containerRef,i=r.children,s=r.className,o=r.draggable,l=r.style,f=t.dragPos,A=Xre(e),v=gs(A,2),T=v[0],I=v[1],F="translate(".concat(sg(T),"px, ").concat(sg(I),"px)"),N=o?f?"grabbing":"grab":"auto",U=Bt.useMemo(function(){var V=Hre({position:"absolute",left:0,top:0,transform:F,cursor:N},l);return Bt.createElement("div",{className:"mapboxgl-marker ".concat(s),ref:e.containerRef,style:V},i)},[i,s]),$=n.current;return $&&($.style.transform=F,$.style.cursor=N),U}nw.defaultProps=$re;nw.propTypes=Wre;Bt.memo(nw);var og={top:{x:.5,y:0},"top-left":{x:0,y:0},"top-right":{x:1,y:0},bottom:{x:.5,y:1},"bottom-left":{x:0,y:1},"bottom-right":{x:1,y:1},left:{x:0,y:.5},right:{x:1,y:.5}},qre=Object.keys(og);function Jre(r){var e=r.x,t=r.y,n=r.width,i=r.height,s=r.selfWidth,o=r.selfHeight,l=r.anchor,f=r.padding,A=f===void 0?0:f,v=og[l],T=v.x,I=v.y,F=t-I*o,N=F+o,U=Math.max(0,A-F)+Math.max(0,N-i+A);if(U>0){var $=I,V=U;for(I=0;I<=1;I+=.5)F=t-I*o,N=F+o,U=Math.max(0,A-F)+Math.max(0,N-i+A),U<V&&(V=U,$=I);I=$}var G=.5;I===.5&&(T=Math.floor(T),G=1);var X=e-T*s,ue=X+s,K=Math.max(0,A-X)+Math.max(0,ue-n+A);if(K>0){var se=T,Ee=K;for(T=0;T<=1;T+=G)X=e-T*s,ue=X+s,K=Math.max(0,A-X)+Math.max(0,ue-n+A),K<Ee&&(Ee=K,se=T);T=se}return qre.find(function(Ue){var de=og[Ue];return de.x===T&&de.y===I})||l}var Kre=Object.assign({},Il,{className:At.string,longitude:At.number.isRequired,latitude:At.number.isRequired,altitude:At.number,offsetLeft:At.number,offsetTop:At.number,tipSize:At.number,closeButton:At.bool,closeOnClick:At.bool,anchor:At.oneOf(Object.keys(og)),dynamicPosition:At.bool,sortByDepth:At.bool,onClose:At.func}),Zre=Object.assign({},rf,{className:"",altitude:0,offsetLeft:0,offsetTop:0,tipSize:10,anchor:"bottom",dynamicPosition:!0,sortByDepth:!1,closeButton:!0,closeOnClick:!0,onClose:function(){}});function Yre(r,e,t,n){var i=gs(n,2),s=i[0],o=i[1],l=r.anchor,f=r.dynamicPosition,A=r.tipSize;return t&&f?Jre({x:s,y:o,anchor:l,padding:A,width:e.width,height:e.height,selfWidth:t.clientWidth,selfHeight:t.clientHeight}):l}function Qre(r,e,t,n,i){var s=gs(n,3),o=s[0],l=s[1],f=s[2],A=r.offsetLeft,v=r.offsetTop,T=r.sortByDepth,I=og[i],F=o+A,N=l+v,U=II(t,-I.x*100),$=II(t,-I.y*100,"y"),V={position:"absolute",transform:` 2599 translate(`.concat(U,"%, ").concat($,`%) 2600 translate(`).concat(sg(F),"px, ").concat(sg(N),`px) 2601 `),display:void 0,zIndex:void 0};return T&&(f>1||f<-1||o<0||o>e.width||l<0||l>e.height?V.display="none":V.zIndex=Math.floor((1-f)/2*1e5)),V}function iw(r){var e=Bt.useRef(null),t=nf(r),n=t.context,i=t.containerRef,s=Bt.useState(!1),o=gs(s,2),l=o[1];Bt.useEffect(function(){l(!0)},[e.current]),Bt.useEffect(function(){if(n.eventManager&&r.closeOnClick){var ue=function(){return t.props.onClose()};return n.eventManager.on("anyclick",ue),function(){n.eventManager.off("anyclick",ue)}}},[n.eventManager,r.closeOnClick]);var f=n.viewport,A=r.className,v=r.longitude,T=r.latitude,I=r.altitude,F=r.tipSize,N=r.closeButton,U=r.children,$=f.project([v,T,I]),V=Yre(r,f,e.current,$),G=Qre(r,f,i.current,$,V),X=Bt.useCallback(function(ue){t.props.onClose();var K=t.context.eventManager;K&&K.once("click",function(se){return se.stopPropagation()},ue.target)},[]);return Bt.createElement("div",{className:"mapboxgl-popup mapboxgl-popup-anchor-".concat(V," ").concat(A),style:G,ref:i},Bt.createElement("div",{key:"tip",className:"mapboxgl-popup-tip",style:{borderWidth:F}}),Bt.createElement("div",{key:"content",ref:e,className:"mapboxgl-popup-content"},N&&Bt.createElement("button",{key:"close-button",className:"mapboxgl-popup-close-button",type:"button",onClick:X},"Ã"),U))}iw.propTypes=Kre;iw.defaultProps=Zre;Bt.memo(iw);function PI(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function ene(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};
2601e%2?PI(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):PI(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var tne=Object.assign({},Il,{toggleLabel:At.string,className:At.string,style:At.object,compact:At.bool,customAttribution:At.oneOfType([At.string,At.arrayOf(At.string)])}),rne=Object.assign({},rf,{className:"",toggleLabel:"Toggle Attribution"});function nne(r,e,t,n){var i=new fc.AttributionControl(r);return i._map=e,i._container=t,i._innerContainer=n,i._updateAttributions(),i._updateEditLink(),e.on("styledata",i._updateData),e.on("sourcedata",i._updateData),i}function ine(r){r._map.off("styledata",r._updateData),r._map.off("sourcedata",r._updateData)}function sw(r){var e=nf(r),t=e.context,n=e.containerRef,i=Bt.useRef(null),s=Bt.useState(!1),o=gs(s,2),l=o[0],f=o[1];Bt.useEffect(function(){var I;return t.map&&(I=nne({customAttribution:r.customAttribution},t.map,n.current,i.current)),function(){return I&&ine(I)}},[t.map]);var A=r.compact===void 0?t.viewport.width<=640:r.compact;Bt.useEffect(function(){!A&&l&&f(!1)},[A]);var v=Bt.useCallback(function(){return f(function(I){return!I})},[]),T=Bt.useMemo(function(){return ene({position:"absolute"},r.style)},[r.style]);return Bt.createElement("div",{style:T,className:r.className},Bt.createElement("div",{ref:n,"aria-pressed":l,className:"mapboxgl-ctrl mapboxgl-ctrl-attrib ".concat(A?"mapboxgl-compact":""," ").concat(l?"mapboxgl-compact-show":"")},Bt.createElement("button",{type:"button",className:"mapboxgl-ctrl-attrib-button",title:r.toggleLabel,onClick:v}),Bt.createElement("div",{ref:i,className:"mapboxgl-ctrl-attrib-inner",role:"list"})))}sw.propTypes=tne;sw.defaultProps=rne;Bt.memo(sw);function MI(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function sne(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?MI(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):MI(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var one=Object.assign({},Il,{className:At.string,style:At.object,container:At.object,label:At.string}),ane=Object.assign({},rf,{className:"",container:null,label:"Toggle fullscreen"});function ow(r){var e=nf(r),t=e.context,n=e.containerRef,i=Bt.useState(!1),s=gs(i,2),o=s[0],l=s[1],f=Bt.useState(!1),A=gs(f,2),v=A[0],T=A[1],I=Bt.useState(null),F=gs(I,2),N=F[0],U=F[1];Bt.useEffect(function(){var K=new fc.FullscreenControl;U(K),T(K._checkFullscreenSupport());var se=function(){var Ue=!K._fullscreen;K._fullscreen=Ue,l(Ue)};return Wc.addEventListener(K._fullscreenchange,se),function(){Wc.removeEventListener(K._fullscreenchange,se)}},[]);var $=function(){N&&(N._container=r.container||t.container,N._onClickFullscreen())},V=Bt.useMemo(function(){return sne({position:"absolute"},r.style)},[r.style]);if(!v)return null;var G=r.className,X=r.label,ue=o?"shrink":"fullscreen";return Bt.createElement("div",{style:V,className:G},Bt.createElement("div",{className:"mapboxgl-ctrl mapboxgl-ctrl-group",ref:n},Bt.createElement("button",{key:ue,className:"mapboxgl-ctrl-icon mapboxgl-ctrl-".concat(ue),type:"button",title:X,onClick:$},Bt.createElement("span",{className:"mapboxgl-ctrl-icon","aria-hidden":"true"}))))}ow.propTypes=one;ow.defaultProps=ane;Bt.memo(ow);var gd;function lne(){return gd!==void 0?Promise.resolve(gd):window.navigator.permissions!==void 0?window.navigator.permissions.query({name:"geolocation"}).then(function(r){return gd=r.state!=="denied",gd}):(gd=!!window.navigator.geolocation,Promise.resolve(gd))}function RI(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function cne(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};
2601e%2?RI(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):RI(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var OI=function(){},une=Object.assign({},Il,{className:At.string,style:At.object,label:At.string,disabledLabel:At.string,auto:At.bool,positionOptions:At.object,fitBoundsOptions:At.object,trackUserLocation:At.bool,showUserLocation:At.bool,showAccuracyCircle:At.bool,showUserHeading:At.bool,onViewStateChange:At.func,onViewportChange:At.func,onGeolocate:At.func}),fne=Object.assign({},rf,{className:"",label:"Find My Location",disabledLabel:"Location Not Available",auto:!1,positionOptions:{enableHighAccuracy:!1,timeout:6e3},fitBoundsOptions:{maxZoom:15},trackUserLocation:!1,showUserLocation:!0,showUserHeading:!1,showAccuracyCircle:!0,onGeolocate:function(){}});function hne(r){var e=new fc.LngLat(r.coords.longitude,r.coords.latitude),t=r.coords.accuracy,n=e.toBounds(t);return[[n._ne.lng,n._ne.lat],[n._sw.lng,n._sw.lat]]}function dne(r,e,t){var n=new fc.GeolocateControl(e);n._container=Wc.createElement("div"),n._map={on:function(){},_getUIString:function(){return""}},n._setupUI(!0),n._map=r.map,n._geolocateButton=t;var i=r.eventManager;return n.options.trackUserLocation&&i&&i.on("panstart",function(){n._watchState==="ACTIVE_LOCK"&&(n._watchState="BACKGROUND",t.classList.add("mapboxgl-ctrl-geolocate-background"),t.classList.remove("mapboxgl-ctrl-geolocate-active"))}),n.on("geolocate",e.onGeolocate),n}function pne(r,e){var t=e.context,n=e.props,i=hne(r),s=t.viewport.fitBounds(i,n.fitBoundsOptions),o=s.longitude,l=s.latitude,f=s.zoom,A=Object.assign({},t.viewport,{longitude:o,latitude:l,zoom:f}),v=new np(A),T=Object.assign({},v.getViewportProps(),Vc),I=n.onViewportChange||t.onViewportChange||OI,F=n.onViewStateChange||t.onViewStateChange||OI;F({viewState:T}),I(T)}function aw(r){var e=nf(r),t=e.context,n=e.containerRef,i=Bt.useRef(null),s=Bt.useState(null),o=gs(s,2),l=o[0],f=o[1],A=Bt.useState(!1),v=gs(A,2),T=v[0],I=v[1];Bt.useEffect(function(){var X;return t.map&&lne().then(function(ue){I(ue),i.current&&(X=dne(t,r,i.current),X._updateCamera=function(K){return pne(K,e)},f(X))}),function(){X&&X._clearWatch()}},[t.map]);var F=Bt.useCallback(function(){l&&(l.options=e.props,l.trigger())},[l]);Bt.useEffect(function(){r.auto&&F()},[l,r.auto]),Bt.useEffect(function(){l&&l._onZoom()},[t.viewport.zoom]);var N=r.className,U=r.label,$=r.disabledLabel,V=r.trackUserLocation,G=Bt.useMemo(function(){return cne({position:"absolute"},r.style)},[r.style]);return Bt.createElement("div",{style:G,className:N},Bt.createElement("div",{key:"geolocate-control",className:"mapboxgl-ctrl mapboxgl-ctrl-group",ref:n},Bt.createElement("button",{key:"geolocate",className:"mapboxgl-ctrl-icon mapboxgl-ctrl-geolocate",ref:i,disabled:!T,"aria-pressed":!V,type:"button",title:T?U:$,"aria-label":T?U:$,onClick:F},Bt.createElement("span",{className:"mapboxgl-ctrl-icon","aria-hidden":"true"}))))}aw.propTypes=une;aw.defaultProps=fne;Bt.memo(aw);function Ane(r,e){for(var t=(r||"").split(".").map(Number),n=e.split(".").map(Number),i=0;i<3;i++){var s=t[i]||0,o=n[i]||0;if(s<o)return-1;if(s>o)return 1}return 0}function DI(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function gne(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?DI(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):DI(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var FI=function(){},mne=Object.assign({},Il,{className:At.string,style:At.object,onViewStateChange:At.func,onViewportChange:At.func,showCompass:At.bool,showZoom:At.bool,zoomInLabel:At.string,zoomOutLabel:At.string,compassLabel:At.string}),_ne=Object.assign({},rf,{className:"",showCompass:!0,showZoom:!0,zoomInLabel:"Zoom In",zoomOutLabel:"Zoom Out",compassLabel:"Reset North"}),yne=1,d2=2;function vne(r){return Ane(r,"1.6.0")>=0?d2:yne}function Yv(r,e,t){var n=r.viewport,i=new np(Object.assign({},n,t)),s=Object.assign({},i.getViewportProps(),Vc),o=e.onViewportChange||r.onViewportChange||FI,l=e.onViewStateChange||r.onViewStateChange||FI;l({viewState:s}),o(s)}function Qv(r,e,t,n){return Bt.createElement("button",{key:r,className:"mapboxgl-ctrl-icon mapboxgl-ctrl-".concat(r),type:"button",title:e,onClick:t},n||Bt.createElement("span",{className:"mapboxgl-ctrl-icon","aria-hidden":"true"}))}function bne(r){var e=Bt.useMemo(function(){return r.map?vne(r.map.version):d2},[r.map]),t=r.viewport.bearing,n={transform:"rotate(".concat(-t,"deg)")};return e===d2?Bt.createElement("span",{className:"mapboxgl-ctrl-icon","aria-hidden":"true",style:n}):Bt.createElement("span",{className:"mapboxgl-ctrl-compass-arrow",style:n})}function lw(r){var e=nf(r),t=e.context,n=e.containerRef,i=function(){Yv(t,r,{zoom:t.viewport.zoom+1})},s=function(){Yv(t,r,{zoom:t.viewport.zoom-1})},o=function(){Yv(t,r,{bearing:0,pitch:0})},l=r.className,f=r.showCompass,A=r.showZoom,v=r.zoomInLabel,T=r.zoomOutLabel,I=r.compassLabel,F=Bt.useMemo(function(){return gne({position:"absolute"},r.style)}
2601,[r.style]);return Bt.createElement("div",{style:F,className:l},Bt.createElement("div",{className:"mapboxgl-ctrl mapboxgl-ctrl-group",ref:n},A&&Qv("zoom-in",v,i),A&&Qv("zoom-out",T,s),f&&Qv("compass",I,o,bne(t))))}lw.propTypes=mne;lw.defaultProps=_ne;const xne=Bt.memo(lw);function LI(r,e){var t=Object.keys(r);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(r);e&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(r,i).enumerable})),t.push.apply(t,n)}return t}function wne(r){for(var e=1;e<arguments.length;e++){var t=arguments[e]!=null?arguments[e]:{};e%2?LI(Object(t),!0).forEach(function(n){Er(r,n,t[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(r,Object.getOwnPropertyDescriptors(t)):LI(Object(t)).forEach(function(n){Object.defineProperty(r,n,Object.getOwnPropertyDescriptor(t,n))})}return r}var Tne=Object.assign({},Il,{className:At.string,style:At.object,maxWidth:At.number,unit:At.oneOf(["imperial","metric","nautical"])}),Ene=Object.assign({},rf,{className:"",maxWidth:100,unit:"metric"});function cw(r){var e=nf(r),t=e.context,n=e.containerRef,i=Bt.useState(null),s=gs(i,2),o=s[0],l=s[1];Bt.useEffect(function(){if(t.map){var A=new fc.ScaleControl;A._map=t.map,A._container=n.current,l(A)}},[t.map]),o&&(o.options=r,o._onMove&&o._onMove());var f=Bt.useMemo(function(){return wne({position:"absolute"},r.style)},[r.style]);return Bt.createElement("div",{style:f,className:r.className},Bt.createElement("div",{ref:n,className:"mapboxgl-ctrl mapboxgl-ctrl-scale"}))}cw.propTypes=Tne;cw.defaultProps=Ene;Bt.memo(cw);Object.assign({},Il,{redraw:At.func.isRequired});Object.assign({},Il,{redraw:At.func.isRequired,style:At.object});Object.assign({},Il,{redraw:At.func.isRequired,style:At.object});fc&&fc.setRTLTextPlugin;const Cne=()=>jf(CN,{}),kI=YR("div",{target:"e90uut00"})(({isStretchHeight:r})=>({position:"relative",height:"100%",width:"100%",...r&&{minHeight:"6.25rem"}})),Sne=YR("div",{target:"e90uut01"})(({theme:r})=>({position:"absolute",right:"2.625rem",top:r.spacing.md,zIndex:r.zIndices.priority,".mapboxgl-ctrl.mapboxgl-ctrl-group":{overflow:"hidden",background:r.colors.bgColor},"button:not(:disabled)":{background:r.colors.bgColor,width:r.iconSizes.twoXL,height:r.iconSizes.twoXL,"& + button":{borderTopColor:r.colors.borderColor},".mapboxgl-ctrl-icon":{backgroundSize:r.iconSizes.twoXL,"&:hover":{backgroundColor:r.colors.darkenedBgMix25}},"& span":{filter:QR(r)?"":"invert(100%)"}}})),Ine=({container:r,element:e,heightFallback:t="auto",isFullScreen:n,shouldUseContainerWidth:i,widthFallback:s="auto"})=>{const o=Bt.useMemo(()=>i||n?"100%":e.width||r.width||s,[r.width,e.width,n,i,s]),l=Bt.useMemo(()=>n&&r.height?r.height:e.height||r.height||t,[n,e.height,r.height,t]);return{width:o,height:l}},NI=`uniform arcUniforms { 2602 bool greatCircle; 2603 bool useShortestPath; 2604 float numSegments; 2605 float widthScale; 2606 float widthMinPixels; 2607 float widthMaxPixels; 2608 highp int widthUnits; 2609} arc; 2610`,Bne={name:"arc",vs:NI,fs:NI,uniformTypes:{greatCircle:"f32",useShortestPath:"f32",numSegments:"f32",widthScale:"f32",widthMinPixels:"f32",widthMaxPixels:"f32",widthUnits:"i32"}},Pne=`#version 300 es 2611#define SHADER_NAME arc-layer-vertex-shader 2612in vec4 instanceSourceColors; 2613in vec4 instanceTargetColors; 2614in vec3 instanceSourcePositions; 2615in vec3 instanceSourcePositions64Low; 2616in vec3 instanceTargetPositions; 2617in vec3 instanceTargetPositions64Low; 2618in vec3 instancePickingColors; 2619in float instanceWidths; 2620in float instanceHeights; 2621in float instanceTilts; 2622out vec4 vColor; 2623out vec2 uv; 2624out float isValid; 2625float paraboloid(float distance, float sourceZ, float targetZ, float ratio) { 2626float deltaZ = targetZ - sourceZ; 2627float dh = distance * instanceHeights; 2628if (dh == 0.0) { 2629return sourceZ + deltaZ * ratio; 2630} 2631float unitZ = deltaZ / dh; 2632float p2 = unitZ * unitZ + 1.0; 2633float dir = step(deltaZ, 0.0); 2634float z0 = mix(sourceZ, targetZ, dir); 2635float r = mix(ratio, 1.0 - ratio, dir); 2636return sqrt(r * (p2 - r)) * dh + z0; 2637} 2638vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) { 2639vec2 dir_screenspace = normalize(line_clipspace * project.viewportSize); 2640dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); 2641return dir_screenspace * offset_direction * width / 2.0; 2642} 2643float getSegmentRatio(float index) { 2644return smoothstep(0.0, 1.0, index / (arc.numSegments - 1.0)); 2645} 2646vec3 interpolateFlat(vec3 source, vec3 target, float segmentRatio) { 2647float distance = length(source.xy - target.xy); 2648float z = paraboloid(distance, source.z, target.z, segmentRatio); 2649float tiltAngle = radians(instanceTilts); 2650vec2 tiltDirection = normalize(target.xy - source.xy); 2651vec2 tilt = vec2(-tiltDirection.y, tiltDirection.x) * z * sin(tiltAngle); 2652return vec3( 2653mix(source.xy, target.xy, segmentRatio) + tilt, 2654z * cos(tiltAngle) 2655); 2656}
2657float getAngularDist (vec2 source, vec2 target) { 2658vec2 sourceRadians = radians(source); 2659vec2 targetRadians = radians(target); 2660vec2 sin_half_delta = sin((sourceRadians - targetRadians) / 2.0); 2661vec2 shd_sq = sin_half_delta * sin_half_delta; 2662float a = shd_sq.y + cos(sourceRadians.y) * cos(targetRadians.y) * shd_sq.x; 2663return 2.0 * asin(sqrt(a)); 2664} 2665vec3 interpolateGreatCircle(vec3 source, vec3 target, vec3 source3D, vec3 target3D, float angularDist, float t) { 2666vec2 lngLat; 2667if(abs(angularDist - PI) < 0.001) { 2668lngLat = (1.0 - t) * source.xy + t * target.xy; 2669} else { 2670float a = sin((1.0 - t) * angularDist); 2671float b = sin(t * angularDist); 2672vec3 p = source3D.yxz * a + target3D.yxz * b; 2673lngLat = degrees(vec2(atan(p.y, -p.x), atan(p.z, length(p.xy)))); 2674} 2675float z = paraboloid(angularDist * EARTH_RADIUS, source.z, target.z, t); 2676return vec3(lngLat, z); 2677} 2678void main(void) { 2679geometry.worldPosition = instanceSourcePositions; 2680geometry.worldPositionAlt = instanceTargetPositions; 2681float segmentIndex = float(gl_VertexID / 2); 2682float segmentSide = mod(float(gl_VertexID), 2.) == 0. ? -1. : 1.; 2683float segmentRatio = getSegmentRatio(segmentIndex); 2684float prevSegmentRatio = getSegmentRatio(max(0.0, segmentIndex - 1.0)); 2685float nextSegmentRatio = getSegmentRatio(min(arc.numSegments - 1.0, segmentIndex + 1.0)); 2686float indexDir = mix(-1.0, 1.0, step(segmentIndex, 0.0)); 2687isValid = 1.0; 2688uv = vec2(segmentRatio, segmentSide); 2689geometry.uv = uv; 2690geometry.pickingColor = instancePickingColors; 2691vec4 curr; 2692vec4 next; 2693vec3 source; 2694vec3 target; 2695if ((arc.greatCircle || project.projectionMode == PROJECTION_MODE_GLOBE) && project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT) { 2696source = project_globe_(vec3(instanceSourcePositions.xy, 0.0)); 2697target = project_globe_(vec3(instanceTargetPositions.xy, 0.0)); 2698float angularDist = getAngularDist(instanceSourcePositions.xy, instanceTargetPositions.xy); 2699vec3 prevPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, prevSegmentRatio); 2700vec3 currPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, segmentRatio); 2701vec3 nextPos = interpolateGreatCircle(instanceSourcePositions, instanceTargetPositions, source, target, angularDist, nextSegmentRatio); 2702if (abs(currPos.x - prevPos.x) > 180.0) { 2703indexDir = -1.0; 2704isValid = 0.0; 2705} else if (abs(currPos.x - nextPos.x) > 180.0) { 2706indexDir = 1.0; 2707isValid = 0.0; 2708} 2709nextPos = indexDir < 0.0 ? prevPos : nextPos; 2710nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio; 2711if (isValid == 0.0) { 2712nextPos.x += nextPos.x > 0.0 ? -360.0 : 360.0; 2713float t = ((currPos.x > 0.0 ? 180.0 : -180.0) - currPos.x) / (nextPos.x - currPos.x); 2714currPos = mix(currPos, nextPos, t); 2715segmentRatio = mix(segmentRatio, nextSegmentRatio, t); 2716} 2717vec3 currPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, segmentRatio); 2718vec3 nextPos64Low = mix(instanceSourcePositions64Low, instanceTargetPositions64Low, nextSegmentRatio); 2719curr = project_position_to_clipspace(currPos, currPos64Low, vec3(0.0), geometry.position); 2720next = project_position_to_clipspace(nextPos, nextPos64Low, vec3(0.0)); 2721} else { 2722vec3 source_world = instanceSourcePositions; 2723vec3 target_world = instanceTargetPositions; 2724if (arc.useShortestPath) {
2725source_world.x = mod(source_world.x + 180., 360.0) - 180.; 2726target_world.x = mod(target_world.x + 180., 360.0) - 180.; 2727float deltaLng = target_world.x - source_world.x; 2728if (deltaLng > 180.) target_world.x -= 360.; 2729if (deltaLng < -180.) source_world.x -= 360.; 2730} 2731source = project_position(source_world, instanceSourcePositions64Low); 2732target = project_position(target_world, instanceTargetPositions64Low); 2733float antiMeridianX = 0.0; 2734if (arc.useShortestPath) { 2735if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) { 2736antiMeridianX = -(project.coordinateOrigin.x + 180.) / 360. * TILE_SIZE; 2737} 2738float thresholdRatio = (antiMeridianX - source.x) / (target.x - source.x); 2739if (prevSegmentRatio <= thresholdRatio && nextSegmentRatio > thresholdRatio) { 2740isValid = 0.0; 2741indexDir = sign(segmentRatio - thresholdRatio); 2742segmentRatio = thresholdRatio; 2743} 2744} 2745nextSegmentRatio = indexDir < 0.0 ? prevSegmentRatio : nextSegmentRatio; 2746vec3 currPos = interpolateFlat(source, target, segmentRatio); 2747vec3 nextPos = interpolateFlat(source, target, nextSegmentRatio); 2748if (arc.useShortestPath) { 2749if (nextPos.x < antiMeridianX) { 2750currPos.x += TILE_SIZE; 2751nextPos.x += TILE_SIZE; 2752} 2753} 2754curr = project_common_position_to_clipspace(vec4(currPos, 1.0)); 2755next = project_common_position_to_clipspace(vec4(nextPos, 1.0)); 2756geometry.position = vec4(currPos, 1.0); 2757} 2758float widthPixels = clamp( 2759project_size_to_pixel(instanceWidths * arc.widthScale, arc.widthUnits), 2760arc.widthMinPixels, arc.widthMaxPixels 2761); 2762vec3 offset = vec3( 2763getExtrusionOffset((next.xy - curr.xy) * indexDir, segmentSide, widthPixels), 27640.0); 2765DECKGL_FILTER_SIZE(offset, geometry); 2766DECKGL_FILTER_GL_POSITION(curr, geometry); 2767gl_Position = curr + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0); 2768vec4 color = mix(instanceSourceColors, instanceTargetColors, segmentRatio); 2769vColor = vec4(color.rgb, color.a * layer.opacity); 2770DECKGL_FILTER_COLOR(vColor, geometry); 2771} 2772`,Mne=`#version 300 es 2773#define SHADER_NAME arc-layer-fragment-shader 2774precision highp float; 2775in vec4 vColor; 2776in vec2 uv; 2777in float isValid; 2778out vec4 fragColor; 2779void main(void) { 2780if (isValid == 0.0) { 2781discard; 2782} 2783fragColor = vColor; 2784geometry.uv = uv; 2785DECKGL_FILTER_COLOR(fragColor, geometry); 2786} 2787`,l_=[0,0,0,255],Rne={getSourcePosition:{type:"accessor",value:r=>r.sourcePosition},getTargetPosition:{type:"accessor",value:r=>r.targetPosition},getSourceColor:{type:"accessor",value:l_},getTargetColor:{type:"accessor",value:l_},getWidth:{type:"accessor",value:1},getHeight:{type:"accessor",value:1},getTilt:{type:"accessor",value:0},greatCircle:!1,numSegments:{type:"number",value:50,min:1},widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0}};class yg extends Cs{getBounds(){return this.getAttributeManager()?.getBounds(["instanceSourcePositions","instanceTargetPositions"])}getShaders(){return super.getShaders({vs:Pne,fs:Mne,modules:[Ls,ma,Bne]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceSourceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getSourceColor",defaultValue:l_},instanceTargetColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getTargetColor",defaultValue:l_},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1},instanceHeights:{size:1,transition:!0,accessor:"getHeight",defaultValue:1},instanceTilts:{size:1,transition:!0,accessor:"getTilt",defaultValue:0}})}updateState(e){super.updateState(e),e.changeFlags.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll())}draw({uniforms:e}){const{widthUnits:t,widthScale:n,widthMinPixels:i,widthMaxPixels:s,greatCircle:o,wrapLongitude:l,numSegments:f}=this.props,A={numSegments:f,widthUnits:Po[t],widthScale:n,widthMinPixels:i,widthMaxPixels:s,greatCircle:o,useShortestPath:l},v=this.state.model;v.shaderInputs.setProps({arc:A}),v.setVertexCount(f*2),v.draw(this.context.renderPass)}
2787_getModel(){return new Di(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),topology:"triangle-strip",isInstanced:!0})}}yg.layerName="ArcLayer";yg.defaultProps=Rne;const One=new Uint32Array([0,2,1,0,3,2]),Dne=new Float32Array([0,1,0,0,1,0,1,1]);function Fne(r,e){if(!e)return Lne(r);const t=Math.max(Math.abs(r[0][0]-r[3][0]),Math.abs(r[1][0]-r[2][0])),n=Math.max(Math.abs(r[1][1]-r[0][1]),Math.abs(r[2][1]-r[3][1])),i=Math.ceil(t/e)+1,s=Math.ceil(n/e)+1,o=(i-1)*(s-1)*6,l=new Uint32Array(o),f=new Float32Array(i*s*2),A=new Float64Array(i*s*3);let v=0,T=0;for(let I=0;I<i;I++){const F=I/(i-1);for(let N=0;N<s;N++){const U=N/(s-1),$=kne(r,F,U);A[v*3+0]=$[0],A[v*3+1]=$[1],A[v*3+2]=$[2]||0,f[v*2+0]=F,f[v*2+1]=1-U,I>0&&N>0&&(l[T++]=v-s,l[T++]=v-s-1,l[T++]=v-1,l[T++]=v-s,l[T++]=v-1,l[T++]=v),v++}}return{vertexCount:o,positions:A,indices:l,texCoords:f}}function Lne(r){const e=new Float64Array(12);for(let t=0;t<r.length;t++)e[t*3+0]=r[t][0],e[t*3+1]=r[t][1],e[t*3+2]=r[t][2]||0;return{vertexCount:6,positions:e,indices:One,texCoords:Dne}}function kne(r,e,t){return wl(wl(r[0],r[1],t),wl(r[3],r[2],t),e)}const UI=`uniform bitmapUniforms { 2788 vec4 bounds; 2789 float coordinateConversion; 2790 float desaturate; 2791 vec3 tintColor; 2792 vec4 transparentColor; 2793} bitmap; 2794`,Nne={name:"bitmap",vs:UI,fs:UI,uniformTypes:{bounds:"vec4<f32>",coordinateConversion:"f32",desaturate:"f32",tintColor:"vec3<f32>",transparentColor:"vec4<f32>"}},Une=`#version 300 es 2795#define SHADER_NAME bitmap-layer-vertex-shader 2796 2797in vec2 texCoords; 2798in vec3 positions; 2799in vec3 positions64Low; 2800 2801out vec2 vTexCoord; 2802out vec2 vTexPos; 2803 2804const vec3 pickingColor = vec3(1.0, 0.0, 0.0); 2805 2806void main(void) { 2807 geometry.worldPosition = positions; 2808 geometry.uv = texCoords; 2809 geometry.pickingColor = pickingColor; 2810 2811 gl_Position = project_position_to_clipspace(positions, positions64Low, vec3(0.0), geometry.position); 2812 DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 2813 2814 vTexCoord = texCoords; 2815 2816 if (bitmap.coordinateConversion < -0.5) { 2817 vTexPos = geometry.position.xy + project.commonOrigin.xy; 2818 } else if (bitmap.coordinateConversion > 0.5) { 2819 vTexPos = geometry.worldPosition.xy; 2820 } 2821 2822 vec4 color = vec4(0.0); 2823 DECKGL_FILTER_COLOR(color, geometry); 2824} 2825`,zne=` 2826vec3 packUVsIntoRGB(vec2 uv) { 2827 // Extract the top 8 bits. We want values to be truncated down so we can add a fraction 2828 vec2 uv8bit = floor(uv * 256.); 2829 2830 // Calculate the normalized remainders of u and v parts that do not fit into 8 bits 2831 // Scale and clamp to 0-1 range 2832 vec2 uvFraction = fract(uv * 256.); 2833 vec2 uvFraction4bit = floor(uvFraction * 16.); 2834 2835 // Remainder can be encoded in blue channel, encode as 4 bits for pixel coordinates 2836 float fractions = uvFraction4bit.x + uvFraction4bit.y * 16.; 2837 2838 return vec3(uv8bit, fractions) / 255.; 2839} 2840`,Vne=`#version 300 es 2841#define SHADER_NAME bitmap-layer-fragment-shader 2842 2843#ifdef GL_ES 2844precision highp float; 2845#endif 2846 2847uniform sampler2D bitmapTexture; 2848 2849in vec2 vTexCoord; 2850in vec2 vTexPos; 2851 2852out vec4 fragColor; 2853 2854/* projection utils */ 2855const float TILE_SIZE = 512.0; 2856const float PI = 3.1415926536; 2857const float WORLD_SCALE = TILE_SIZE / PI / 2.0; 2858 2859// from degrees to Web Mercator 2860vec2 lnglat_to_mercator(vec2 lnglat) { 2861 float x = lnglat.x; 2862 float y = clamp(lnglat.y, -89.9, 89.9); 2863 return vec2( 2864 radians(x) + PI, 2865 PI + log(tan(PI * 0.25 + radians(y) * 0.5)) 2866 ) * WORLD_SCALE; 2867} 2868 2869// from Web Mercator to degrees 2870vec2 mercator_to_lnglat(vec2 xy) { 2871 xy /= WORLD_SCALE; 2872 return degrees(vec2( 2873 xy.x - PI, 2874 atan(exp(xy.y - PI)) * 2.0 - PI * 0.5 2875 )); 2876} 2877/* End projection utils */ 2878 2879// apply desaturation 2880vec3 color_desaturate(vec3 color) { 2881 float luminance = (color.r + color.g + color.b) * 0.333333333; 2882 return mix(color, vec3(luminance), bitmap.desaturate); 2883} 2884 2885// apply tint 2886vec3 color_tint(vec3 color) { 2887 return color * bitmap.tintColor; 2888} 2889 2890// blend with background color 2891vec4 apply_opacity(vec3 color, float alpha) { 2892 if (bitmap.transparentColor.a == 0.0) { 2893 return vec4(color, alpha); 2894 } 2895 float blendedAlpha = alpha + bitmap.transparentColor.a * (1.0 - alpha); 2896 float highLightRatio = alpha / blendedAlpha; 2897 vec3 blendedRGB = mix(bitmap.transparentColor.rgb, color, highLightRatio); 2898 return vec4(blendedRGB, blendedAlpha); 2899} 2900 2901vec2 getUV(vec2 pos) { 2902 return vec2( 2903 (pos.x - bitmap.bounds[0]) / (bitmap.bounds[2] - bitmap.bounds[0]), 2904 (pos.y - bitmap.bounds[3]) / (bitmap.bounds[1] - bitmap.bounds[3]) 2905 ); 2906} 2907 2908${zne} 2909 2910void main(void) { 2911 vec2 uv = vTexCoord; 2912 if (bitmap.coordinateConversion < -0.5) { 2913 vec2 lnglat = mercator_to_lnglat(vTexPos); 2914 uv = getUV(lnglat); 2915 } else if (bitmap.coordinateConversion > 0.5) { 2916 vec2 commonPos = lnglat_to_mercator(vTexPos); 2917 uv = getUV(commonPos); 2918 } 2919 vec4 bitmapColor = texture(bitmapTexture, uv); 2920 2921 fragColor = apply_opacity(color_tint(color_desaturate(bitmapColor.rgb)), bitmapColor.a * layer.opacity); 2922 2923 geometry.uv = uv; 2924 DECKGL_FILTER_COLOR(fragColor, geometry); 2925 2926 if (bool(picking.isActive) && !bool(picking.isAttribute)) { 2927 // Since instance information is not used, we can use picking color for pixel index 2928 fragColor.rgb = packUVsIntoRGB(uv); 2929 } 2930} 2931`,jne={image:{type:"image",value:null,async:!0},bounds:{type:"array",value:[1,0,0,1],compare:!0},_imageCoordinateSystem:Qr.DEFAULT,desaturate:{type:"number",min:0,max:1,value:0},transparentColor:{type:"color",value:[0,0,0,0]},tintColor:{type:"color",value:[255,255,255]},textureParameters:{type:"object",ignore:!0,value:null}};class $_ extends Cs{getShaders(){return super.getShaders({vs:Une,fs:Vne,modules:[Ls,ma,Nne]})}initializeState(){const e=this.getAttributeManager();e.remove(["instancePickingColors"]);const t=!0;e.add({indices:{size:1,isIndexed:!0,update:n=>n.value=this.state.mesh.indices,noAlloc:t},positions:{size:3,type:"float64",fp64:this.use64bitPositions(),update:n=>n.value=this.state.mesh.positions,noAlloc:t},texCoords:{size:2,update:n=>n.value=this.state.mesh.texCoords,noAlloc:t}})}updateState({props:e,oldProps:t,changeFlags:n}){const i=this.getAttributeManager();if(n.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),i.invalidateAll()),e.bounds!==t.bounds){const s=this.state.mesh,o=this._createMesh();this.state.model.setVertexCount(o.vertexCount);for(const l in o)s&&s[l]!==o[l]&&i.invalidate(l);this.setState({mesh:o,...this._getCoordinateUniforms()})}else e._imageCoordinateSystem!==t._imageCoordinateSystem&&this.setState(this._getCoordinateUniforms())}getPickingInfo(e){const{image:t}=this.props,n=e.info;if(!n.color||!t)return n.bitmap=null,n;const{width:i,height:s}=t;n.index=0;const o=Gne(n.color);return n.bitmap={size:{width:i,height:s},uv:o,pixel:[Math.floor(o[0]*i),Math.floor(o[1]*s)]},n}disablePickingIndex(){this.setState({disablePicking:!0})}restorePickingColors(){this.setState({disablePicking:!1})}_updateAutoHighlight(e){super._updateAutoHighlight({...e,color:this.encodePickingColor(0)})}_createMesh(){const{bounds:e}=this.props;let t=e;return zI(e)&&(t=[[e[0],e[1]],[e[0],e[3]],[e[2],e[3]],[e[2],e[1]]]),Fne(t,this.context.viewport.resolution)}
2931_getModel(){return new Di(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),topology:"triangle-list",isInstanced:!1})}draw(e){const{shaderModuleProps:t}=e,{model:n,coordinateConversion:i,bounds:s,disablePicking:o}=this.state,{image:l,desaturate:f,transparentColor:A,tintColor:v}=this.props;if(!(t.picking.isActive&&o)&&l&&n){const T={bitmapTexture:l,bounds:s,coordinateConversion:i,desaturate:f,tintColor:v.slice(0,3).map(I=>I/255),transparentColor:A.map(I=>I/255)};n.shaderInputs.setProps({bitmap:T}),n.draw(this.context.renderPass)}}_getCoordinateUniforms(){const{LNGLAT:e,CARTESIAN:t,DEFAULT:n}=Qr;let{_imageCoordinateSystem:i}=this.props;if(i!==n){const{bounds:s}=this.props;if(!zI(s))throw new Error("_imageCoordinateSystem only supports rectangular bounds");const o=this.context.viewport.resolution?e:t;if(i=i===e?e:t,i===e&&o===t)return{coordinateConversion:-1,bounds:s};if(i===t&&o===e){const l=Yc([s[0],s[1]]),f=Yc([s[2],s[3]]);return{coordinateConversion:1,bounds:[l[0],l[1],f[0],f[1]]}}}return{coordinateConversion:0,bounds:[0,0,0,0]}}}$_.layerName="BitmapLayer";$_.defaultProps=jne;function Gne(r){const[e,t,n]=r,i=(n&240)/256,s=(n&15)/16;return[(e+s)/256,(t+i)/256]}function zI(r){return Number.isFinite(r[0])}const VI=`uniform iconUniforms { 2932 float sizeScale; 2933 vec2 iconsTextureDim; 2934 float sizeMinPixels; 2935 float sizeMaxPixels; 2936 bool billboard; 2937 highp int sizeUnits; 2938 float alphaCutoff; 2939} icon; 2940`,Hne={name:"icon",vs:VI,fs:VI,uniformTypes:{sizeScale:"f32",iconsTextureDim:"vec2<f32>",sizeMinPixels:"f32",sizeMaxPixels:"f32",billboard:"f32",sizeUnits:"i32",alphaCutoff:"f32"}},Wne=`#version 300 es 2941#define SHADER_NAME icon-layer-vertex-shader 2942in vec2 positions; 2943in vec3 instancePositions; 2944in vec3 instancePositions64Low; 2945in float instanceSizes; 2946in float instanceAngles; 2947in vec4 instanceColors; 2948in vec3 instancePickingColors; 2949in vec4 instanceIconFrames; 2950in float instanceColorModes; 2951in vec2 instanceOffsets; 2952in vec2 instancePixelOffset; 2953out float vColorMode; 2954out vec4 vColor; 2955out vec2 vTextureCoords; 2956out vec2 uv; 2957vec2 rotate_by_angle(vec2 vertex, float angle) { 2958float angle_radian = angle * PI / 180.0; 2959float cos_angle = cos(angle_radian); 2960float sin_angle = sin(angle_radian); 2961mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle); 2962return rotationMatrix * vertex; 2963} 2964void main(void) { 2965geometry.worldPosition = instancePositions; 2966geometry.uv = positions; 2967geometry.pickingColor = instancePickingColors; 2968uv = positions; 2969vec2 iconSize = instanceIconFrames.zw; 2970float sizePixels = clamp( 2971project_size_to_pixel(instanceSizes * icon.sizeScale, icon.sizeUnits),
2972icon.sizeMinPixels, icon.sizeMaxPixels 2973); 2974float instanceScale = iconSize.y == 0.0 ? 0.0 : sizePixels / iconSize.y; 2975vec2 pixelOffset = positions / 2.0 * iconSize + instanceOffsets; 2976pixelOffset = rotate_by_angle(pixelOffset, instanceAngles) * instanceScale; 2977pixelOffset += instancePixelOffset; 2978pixelOffset.y *= -1.0; 2979if (icon.billboard) { 2980gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position); 2981DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 2982vec3 offset = vec3(pixelOffset, 0.0); 2983DECKGL_FILTER_SIZE(offset, geometry); 2984gl_Position.xy += project_pixel_size_to_clipspace(offset.xy); 2985} else { 2986vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0); 2987DECKGL_FILTER_SIZE(offset_common, geometry); 2988gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position); 2989DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 2990} 2991vTextureCoords = mix( 2992instanceIconFrames.xy, 2993instanceIconFrames.xy + iconSize, 2994(positions.xy + 1.0) / 2.0 2995) / icon.iconsTextureDim; 2996vColor = instanceColors; 2997DECKGL_FILTER_COLOR(vColor, geometry); 2998vColorMode = instanceColorModes; 2999} 3000`,$ne=`#version 300 es 3001#define SHADER_NAME icon-layer-fragment-shader 3002precision highp float; 3003uniform sampler2D iconsTexture; 3004in float vColorMode; 3005in vec4 vColor; 3006in vec2 vTextureCoords; 3007in vec2 uv; 3008out vec4 fragColor; 3009void main(void) { 3010geometry.uv = uv; 3011vec4 texColor = texture(iconsTexture, vTextureCoords); 3012vec3 color = mix(texColor.rgb, vColor.rgb, vColorMode); 3013float a = texColor.a * layer.opacity * vColor.a; 3014if (a < icon.alphaCutoff) { 3015discard; 3016} 3017fragColor = vec4(color, a); 3018DECKGL_FILTER_COLOR(fragColor, geometry); 3019} 3020`,Xne=1024,qne=4,jI=()=>{},GI={minFilter:"linear",mipmapFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},Jne={x:0,y:0,width:0,height:0};function Kne(r){return Math.pow(2,Math.ceil(Math.log2(r)))}function Zne(r,e,t,n){const i=Math.min(t/e.width,n/e.height),s=Math.floor(e.width*i),o=Math.floor(e.height*i);return i===1?{image:e,width:s,height:o}:(r.canvas.height=o,r.canvas.width=s,r.clearRect(0,0,s,o),r.drawImage(e,0,0,e.width,e.height,0,0,s,o),{image:r.canvas,width:s,height:o})}function ag(r){return r&&(r.id||r.url)}function Yne(r,e,t,n){const{width:i,height:s,device:o}=r,l=o.createTexture({format:"rgba8unorm",width:e,height:t,sampler:n,mipmaps:!0}),f=o.createCommandEncoder();return f.copyTextureToTexture({sourceTexture:r,destinationTexture:l,width:i,height:s}),f.finish(),r.destroy(),l}function HI(r,e,t){for(let n=0;n<e.length;n++){const{icon:i,xOffset:s}=e[n],o=ag(i);r[o]={...i,x:s,y:t}}}function Qne({icons:r,buffer:e,mapping:t={},xOffset:n=0,yOffset:i=0,rowHeight:s=0,canvasWidth:o}){let l=[];for(let f=0;f<r.length;f++){const A=r[f],v=ag(A);if(!t[v]){const{height:T,width:I}=A;n+I+e>o&&(HI(t,l,i),n=0,i=s+i+e,s=0,l=[]),l.push({icon:A,xOffset:n}),n=n+I+e,s=Math.max(s,T)}}return l.length>0&&HI(t,l,i),{mapping:t,rowHeight:s,xOffset:n,yOffset:i,canvasWidth:o,canvasHeight:Kne(s+i+e)}}function eie(r,e,t){if(!r||!e)return null;t=t||{};const n={},{iterable:i,objectInfo:s}=dc(r);for(const o of i){s.index++;const l=e(o,s),f=ag(l);if(!l)throw new Error("Icon is missing.");if(!l.url)throw new Error("Icon url is missing.");!n[f]&&(!t[f]||l.url!==t[f].url)&&(n[f]={...l,source:o,sourceIndex:s.index})}return n}class tie{constructor(e,{onUpdate:t=jI,onError:n=jI}){this._loadOptions=null,this._texture=null,this._externalTexture=null,this._mapping={},this._samplerParameters=null,this._pendingCount=0,this._autoPacking=!1,this._xOffset=0,this._yOffset=0,this._rowHeight=0,this._buffer=qne,this._canvasWidth=Xne,this._canvasHeight=0,this._canvas=null,this.device=e,this.onUpdate=t,this.onError=n}finalize(){this._texture?.delete()}getTexture(){return this._texture||this._externalTexture}getIconMapping(e){const t=this._autoPacking?ag(e):e;return this._mapping[t]||Jne}setProps({loadOptions:e,autoPacking:t,iconAtlas:n,iconMapping:i,textureParameters:s}){e&&(this._loadOptions=e),t!==void 0&&(this._autoPacking=t),i&&(this._mapping=i),n&&(this._texture?.delete(),this._texture=null,this._externalTexture=n),s&&(this._samplerParameters=s)}get isLoaded(){return this._pendingCount===0}packIcons(e,t){if(!this._autoPacking||typeof document>"u")return;const n=Object.values(eie(e,t,this._mapping)||{});if(n.length>0){const{mapping:i,xOffset:s,yOffset:o,rowHeight:l,canvasHeight:f}=Qne({icons:n,buffer:this._buffer,canvasWidth:this._canvasWidth,mapping:this._mapping,rowHeight:this._rowHeight,xOffset:this._xOffset,yOffset:this._yOffset});this._rowHeight=l,this._mapping=i,this._xOffset=s,this._yOffset=o,this._canvasHeight=f,this._texture||(this._texture=this.device.createTexture({format:"rgba8unorm",width:this._canvasWidth,height:this._canvasHeight,sampler:this._samplerParameters||GI,mipmaps:!0})),this._texture.height!==this._canvasHeight&&(this._texture=Yne(this._texture,this._canvasWidth,this._canvasHeight,this._samplerParameters||GI)),this.onUpdate(),this._canvas=this._canvas||document.createElement("canvas"),this._loadIcons(n)}}_loadIcons(e){const t=this._canvas.getContext("2d",{willReadFrequently:!0});
3020for(const n of e)this._pendingCount++,Kc(n.url,this._loadOptions).then(i=>{const s=ag(n),o=this._mapping[s],{x:l,y:f,width:A,height:v}=o,{image:T,width:I,height:F}=Zne(t,i,A,v);this._texture?.copyExternalImage({image:T,x:l+(A-I)/2,y:f+(v-F)/2,width:I,height:F}),o.width=I,o.height=F,this._texture.generateMipmap(),this.onUpdate()}).catch(i=>{this.onError({url:n.url,source:n.source,sourceIndex:n.sourceIndex,loadOptions:this._loadOptions,error:i})}).finally(()=>{this._pendingCount--})}}const WF=[0,0,0,255],rie={iconAtlas:{type:"image",value:null,async:!0},iconMapping:{type:"object",value:{},async:!0},sizeScale:{type:"number",value:1,min:0},billboard:!0,sizeUnits:"pixels",sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},alphaCutoff:{type:"number",value:.05,min:0,max:1},getPosition:{type:"accessor",value:r=>r.position},getIcon:{type:"accessor",value:r=>r.icon},getColor:{type:"accessor",value:WF},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},onIconError:{type:"function",value:null,optional:!0},textureParameters:{type:"object",ignore:!0,value:null}};class Sp extends Cs{getShaders(){return super.getShaders({vs:Wne,fs:$ne,modules:[Ls,ma,Hne]})}initializeState(){this.state={iconManager:new tie(this.context.device,{onUpdate:this._onUpdate.bind(this),onError:this._onError.bind(this)})},this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceOffsets:{size:2,accessor:"getIcon",transform:this.getInstanceOffset},instanceIconFrames:{size:4,accessor:"getIcon",transform:this.getInstanceIconFrame},instanceColorModes:{size:1,type:"uint8",accessor:"getIcon",transform:this.getInstanceColorMode},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getColor",defaultValue:WF},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instancePixelOffset:{size:2,transition:!0,accessor:"getPixelOffset"}})}updateState(e){super.updateState(e);const{props:t,oldProps:n,changeFlags:i}=e,s=this.getAttributeManager(),{iconAtlas:o,iconMapping:l,data:f,getIcon:A,textureParameters:v}=t,{iconManager:T}=this.state;if(typeof o=="string")return;const I=o||this.internalState.isAsyncPropLoading("iconAtlas");T.setProps({loadOptions:t.loadOptions,autoPacking:!I,iconAtlas:o,iconMapping:I?l:null,textureParameters:v}),I?n.iconMapping!==t.iconMapping&&s.invalidate("getIcon"):(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getIcon))&&T.packIcons(f,A),i.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),s.invalidateAll())}get isLoaded(){return super.isLoaded&&this.state.iconManager.isLoaded}finalizeState(e){super.finalizeState(e),this.state.iconManager.finalize()}draw({uniforms:e}){const{sizeScale:t,sizeMinPixels:n,sizeMaxPixels:i,sizeUnits:s,billboard:o,alphaCutoff:l}=this.props,{iconManager:f}=this.state,A=f.getTexture();if(A){const v=this.state.model,T={iconsTexture:A,iconsTextureDim:[A.width,A.height],sizeUnits:Po[s],sizeScale:t,sizeMinPixels:n,sizeMaxPixels:i,billboard:o,alphaCutoff:l};v.shaderInputs.setProps({icon:T}),v.draw(this.context.renderPass)}}_getModel(){const e=[-1,-1,1,-1,-1,1,1,1];return new Di(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Zs({topology:"triangle-strip",attributes:{positions:{size:2,value:new Float32Array(e)}}}),isInstanced:!0})}_onUpdate(){this.setNeedsRedraw()}_onError(e){const t=this.getCurrentLayer()?.props.onIconError;t?t(e):Zr.error(e.error.message)()}getInstanceOffset(e){const{width:t,height:n,anchorX:i=t/2,anchorY:s=n/2}=this.state.iconManager.getIconMapping(e);return[t/2-i,n/2-s]}getInstanceColorMode(e){return this.state.iconManager.getIconMapping(e).mask?1:0}getInstanceIconFrame(e){const{x:t,y:n,width:i,height:s}=this.state.iconManager.getIconMapping(e);return[t,n,i,s]}}Sp.defaultProps=rie;Sp.layerName="IconLayer";const nie=`struct LineUniforms { 3021 widthScale: f32, 3022 widthMinPixels: f32, 3023 widthMaxPixels: f32, 3024 useShortestPath: f32, 3025 widthUnits: i32, 3026}; 3027 3028@group(0) @binding(1) 3029var<uniform> line: LineUniforms; 3030`,WI=`uniform lineUniforms { 3031 float widthScale; 3032 float widthMinPixels; 3033 float widthMaxPixels;
3034 float useShortestPath; 3035 highp int widthUnits; 3036} line; 3037`,iie={name:"line",source:nie,vs:WI,fs:WI,uniformTypes:{widthScale:"f32",widthMinPixels:"f32",widthMaxPixels:"f32",useShortestPath:"f32",widthUnits:"i32"}},sie=`// TODO(ibgreen): Hack for Layer uniforms (move to new "color" module?) 3038struct LayerUniforms { 3039 opacity: f32, 3040}; 3041var<private> layer: LayerUniforms = LayerUniforms(1.0); 3042// @group(0) @binding(1) var<uniform> layer: LayerUniforms; 3043 3044// ---------- Helper Structures & Functions ---------- 3045 3046// Placeholder filter functions. 3047fn deckgl_filter_size(offset: vec3<f32>, geometry: Geometry) -> vec3<f32> { 3048 return offset; 3049} 3050fn deckgl_filter_gl_position(p: vec4<f32>, geometry: Geometry) -> vec4<f32> { 3051 return p; 3052} 3053fn deckgl_filter_color(color: vec4<f32>, geometry: Geometry) -> vec4<f32> { 3054 return color; 3055} 3056 3057// Compute an extrusion offset given a line direction (in clipspace), 3058// an offset direction (-1 or 1), and a width in pixels. 3059// Assumes a uniform "project" with a viewportSize field is available. 3060fn getExtrusionOffset(line_clipspace: vec2<f32>, offset_direction: f32, width: f32) -> vec2<f32> { 3061 // project.viewportSize should be provided as a uniform (not shown here) 3062 let dir_screenspace = normalize(line_clipspace * project.viewportSize); 3063 // Rotate by 90°: (x,y) becomes (-y,x) 3064 let rotated = vec2<f32>(-dir_screenspace.y, dir_screenspace.x); 3065 return rotated * offset_direction * width / 2.0; 3066} 3067 3068// Splits the line between two points at a given x coordinate. 3069// Interpolates the y and z components. 3070fn splitLine(a: vec3<f32>, b: vec3<f32>, x: f32) -> vec3<f32> { 3071 let t: f32 = (x - a.x) / (b.x - a.x); 3072 return vec3<f32>(x, a.yz + t * (b.yz - a.yz)); 3073} 3074 3075// ---------- Uniforms & Global Structures ---------- 3076 3077// Uniforms for line, layer, and project are assumed to be defined elsewhere. 3078// For example: 3079// 3080// @group(0) @binding(0) 3081// var<uniform> line: LineUniform; 3082// 3083// struct LayerUniform { 3084// opacity: f32, 3085// }; 3086// @group(0) @binding(1) 3087// var<uniform> layer: LayerUniform; 3088// 3089// struct ProjectUniform { 3090// viewportSize: vec2<f32>, 3091// }; 3092// @group(0) @binding(2) 3093// var<uniform> project: ProjectUniform; 3094 3095 3096 3097// ---------- Vertex Output Structure ---------- 3098 3099struct Varyings { 3100 @builtin(position) gl_Position: vec4<f32>, 3101 @location(0) vColor: vec4<f32>, 3102 @location(1) uv: vec2<f32>, 3103}; 3104 3105// ---------- Vertex Shader Entry Point ---------- 3106 3107@vertex 3108fn vertexMain( 3109 @location(0) positions: vec3<f32>, 3110 @location(1) instanceSourcePositions: vec3<f32>, 3111 @location(2) instanceTargetPositions: vec3<f32>, 3112 @location(3) instanceSourcePositions64Low: vec3<f32>, 3113 @location(4) instanceTargetPositions64Low: vec3<f32>, 3114 @location(5) instanceColors: vec4<f32>, 3115 @location(6) instancePickingColors: vec3<f32>, 3116 @location(7) instanceWidths: f32 3117) -> Varyings { 3118 var geometry: Geometry; 3119 geometry.worldPosition = instanceSourcePositions; 3120 geometry.worldPositionAlt = instanceTargetPositions; 3121 3122 var source_world: vec3<f32> = instanceSourcePositions; 3123 var target_world: vec3<f32> = instanceTargetPositions; 3124 var source_world_64low: vec3<f32> = instanceSourcePositions64Low; 3125 var target_world_64low: vec3<f32> = instanceTargetPositions64Low; 3126 3127 // Apply shortest-path adjustments if needed. 3128 if (line.useShortestPath > 0.5 || line.useShortestPath < -0.5) { 3129 source_world.x = (source_world.x + 180.0 % 360.0) - 180.0; 3130 target_world.x = (target_world.x + 180.0 % 360.0) - 180.0; 3131 let deltaLng: f32 = target_world.x - source_world.x; 3132 3133 if (deltaLng * line.useShortestPath > 180.0) { 3134 source_world.x = source_world.x + 360.0 * line.useShortestPath; 3135 source_world = splitLine(source_world, target_world, 180.0 * line.useShortestPath); 3136 source_world_64low = vec3<f32>(0.0, 0.0, 0.0); 3137 } else if (deltaLng * line.useShortestPath < -180.0) { 3138 target_world.x = target_world.x + 360.0 * line.useShortestPath; 3139 target_world = splitLine(source_world, target_world, 180.0 * line.useShortestPath); 3140 target_world_64low = vec3<f32>(0.0, 0.0, 0.0); 3141 } else if (line.useShortestPath < 0.0) { 3142 var abortOut: Varyings; 3143 abortOut.gl_Position = vec4<f32>(0.0); 3144 abortOut.vColor = vec4<f32>(0.0); 3145 abortOut.uv = vec2<f32>(0.0); 3146 return abortOut; 3147 } 3148 } 3149 3150 // Project Pos and target positions to clip space. 3151 let sourceResult = project_position_to_clipspace_and_commonspace(source_world, source_world_64low, vec3<f32>(0.0)); 3152 let targetResult = project_position_to_clipspace_and_commonspace(target_world, target_world_64low, vec3<f32>(0.0)); 3153 let sourcePos: vec4<f32> = sourceResult.clipPosition; 3154 let targetPos: vec4<f32> = targetResult.clipPosition; 3155 let source_commonspace: vec4<f32> = sourceResult.commonPosition; 3156 let target_commonspace: vec4<f32> = targetResult.commonPosition; 3157 3158 // Interpolate along the line segment. 3159 let segmentIndex: f32 = positions.x; 3160 let p: vec4<f32> = sourcePos + segmentIndex * (targetPos - sourcePos); 3161 geometry.position = source_commonspace + segmentIndex * (target_commonspace - source_commonspace); 3162 let uv: vec2<f32> = positions.xy; 3163 geometry.uv = uv; 3164 geometry.pickingColor = instancePickingColors; 3165 3166 // Determine width in pixels. 3167 let widthPixels: f32 = clamp( 3168 project_unit_size_to_pixel(instanceWidths * line.widthScale, line.widthUnits), 3169 line.widthMinPixels, line.widthMaxPixels 3170 ); 3171 3172 // Compute extrusion offset. 3173 let extrusion: vec2<f32> = getExtrusionOffset(targetPos.xy - sourcePos.xy, positions.y, widthPixels); 3174 let offset: vec3<f32> = vec3<f32>(extrusion, 0.0); 3175 3176 // Apply deck.gl filter functions. 3177 let filteredOffset = deckgl_filter_size(offset, geometry); 3178 let filteredP = deckgl_filter_gl_position(p, geometry); 3179 3180 let clipOffset: vec2<f32> = project_pixel_size_to_clipspace(filteredOffset.xy); 3181 let finalPosition: vec4<f32>
3181 = filteredP + vec4<f32>(clipOffset, 0.0, 0.0); 3182 3183 // Compute color. 3184 var vColor: vec4<f32> = vec4<f32>(instanceColors.rgb, instanceColors.a * layer.opacity); 3185 // vColor = deckgl_filter_color(vColor, geometry); 3186 3187 var output: Varyings; 3188 output.gl_Position = finalPosition; 3189 output.vColor = vColor; 3190 output.uv = uv; 3191 return output; 3192} 3193 3194@fragment 3195fn fragmentMain( 3196 @location(0) vColor: vec4<f32>, 3197 @location(1) uv: vec2<f32> 3198) -> @location(0) vec4<f32> { 3199 // Create and initialize geometry with the provided uv. 3200 var geometry: Geometry; 3201 geometry.uv = uv; 3202 3203 // Start with the input color. 3204 var fragColor: vec4<f32> = vColor; 3205 3206 // Apply the deck.gl filter to the color. 3207 fragColor = deckgl_filter_color(fragColor, geometry); 3208 3209 return fragColor; 3210} 3211`,oie=`#version 300 es 3212#define SHADER_NAME line-layer-vertex-shader 3213in vec3 positions; 3214in vec3 instanceSourcePositions; 3215in vec3 instanceTargetPositions; 3216in vec3 instanceSourcePositions64Low; 3217in vec3 instanceTargetPositions64Low; 3218in vec4 instanceColors; 3219in vec3 instancePickingColors; 3220in float instanceWidths; 3221out vec4 vColor; 3222out vec2 uv; 3223vec2 getExtrusionOffset(vec2 line_clipspace, float offset_direction, float width) { 3224vec2 dir_screenspace = normalize(line_clipspace * project.viewportSize); 3225dir_screenspace = vec2(-dir_screenspace.y, dir_screenspace.x); 3226return dir_screenspace * offset_direction * width / 2.0; 3227} 3228vec3 splitLine(vec3 a, vec3 b, float x) { 3229float t = (x - a.x) / (b.x - a.x); 3230return vec3(x, mix(a.yz, b.yz, t)); 3231} 3232void main(void) { 3233geometry.worldPosition = instanceSourcePositions; 3234geometry.worldPositionAlt = instanceTargetPositions; 3235vec3 source_world = instanceSourcePositions; 3236vec3 target_world = instanceTargetPositions; 3237vec3 source_world_64low = instanceSourcePositions64Low; 3238vec3 target_world_64low = instanceTargetPositions64Low; 3239if (line.useShortestPath > 0.5 || line.useShortestPath < -0.5) {
3240source_world.x = mod(source_world.x + 180., 360.0) - 180.; 3241target_world.x = mod(target_world.x + 180., 360.0) - 180.; 3242float deltaLng = target_world.x - source_world.x; 3243if (deltaLng * line.useShortestPath > 180.) { 3244source_world.x += 360. * line.useShortestPath; 3245source_world = splitLine(source_world, target_world, 180. * line.useShortestPath); 3246source_world_64low = vec3(0.0); 3247} else if (deltaLng * line.useShortestPath < -180.) { 3248target_world.x += 360. * line.useShortestPath; 3249target_world = splitLine(source_world, target_world, 180. * line.useShortestPath); 3250target_world_64low = vec3(0.0); 3251} else if (line.useShortestPath < 0.) { 3252gl_Position = vec4(0.); 3253return; 3254} 3255} 3256vec4 source_commonspace; 3257vec4 target_commonspace; 3258vec4 source = project_position_to_clipspace(source_world, source_world_64low, vec3(0.), source_commonspace); 3259vec4 target = project_position_to_clipspace(target_world, target_world_64low, vec3(0.), target_commonspace); 3260float segmentIndex = positions.x; 3261vec4 p = mix(source, target, segmentIndex); 3262geometry.position = mix(source_commonspace, target_commonspace, segmentIndex); 3263uv = positions.xy; 3264geometry.uv = uv; 3265geometry.pickingColor = instancePickingColors; 3266float widthPixels = clamp( 3267project_size_to_pixel(instanceWidths * line.widthScale, line.widthUnits), 3268line.widthMinPixels, line.widthMaxPixels 3269); 3270vec3 offset = vec3( 3271getExtrusionOffset(target.xy - source.xy, positions.y, widthPixels), 32720.0); 3273DECKGL_FILTER_SIZE(offset, geometry); 3274DECKGL_FILTER_GL_POSITION(p, geometry); 3275gl_Position = p + vec4(project_pixel_size_to_clipspace(offset.xy), 0.0, 0.0); 3276vColor = vec4(instanceColors.rgb, instanceColors.a * layer.opacity); 3277DECKGL_FILTER_COLOR(vColor, geometry); 3278} 3279`,aie=`#version 300 es 3280#define SHADER_NAME line-layer-fragment-shader 3281precision highp float; 3282in vec4 vColor; 3283in vec2 uv; 3284out vec4 fragColor; 3285void main(void) { 3286geometry.uv = uv; 3287fragColor = vColor; 3288DECKGL_FILTER_COLOR(fragColor, geometry); 3289} 3290`,lie=[0,0,0,255],cie={getSourcePosition:{type:"accessor",value:r=>r.sourcePosition},getTargetPosition:{type:"accessor",value:r=>r.targetPosition},getColor:{type:"accessor",value:lie},getWidth:{type:"accessor",value:1},widthUnits:"pixels",widthScale:{type:"number",value:1,min:0},widthMinPixels:{type:"number",value:0,min:0},widthMaxPixels:{type:"number",value:Number.MAX_SAFE_INTEGER,min:0}};class X_ extends Cs{getBounds(){return this.getAttributeManager()?.getBounds(["instanceSourcePositions","instanceTargetPositions"])}getShaders(){return super.getShaders({vs:oie,fs:aie,source:sie,modules:[Ls,ma,iie]})}get wrapLongitude(){return!1}initializeState(){this.getAttributeManager().addInstanced({instanceSourcePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getSourcePosition"},instanceTargetPositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getTargetPosition"},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getColor",defaultValue:[0,0,0,255]},instanceWidths:{size:1,transition:!0,accessor:"getWidth",defaultValue:1}})}updateState(e){super.updateState(e),e.changeFlags.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll())}draw({uniforms:e}){const{widthUnits:t,widthScale:n,widthMinPixels:i,widthMaxPixels:s,wrapLongitude:o}=this.props,l=this.state.model,f={widthUnits:Po[t],widthScale:n,widthMinPixels:i,widthMaxPixels:s,useShortestPath:o?1:0};l.shaderInputs.setProps({line:f}),l.draw(this.context.renderPass),o&&(l.shaderInputs.setProps({line:{...f,useShortestPath:-1}}),l.draw(this.context.renderPass))}_getModel(){const e=[0,-1,0,0,1,0,1,-1,0,1,1,0];return new Di(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Zs({topology:"triangle-strip",attributes:{positions:{size:3,value:new Float32Array(e)}}}),isInstanced:!0})}}X_.layerName="LineLayer";X_.defaultProps=cie;const $I=`uniform pointCloudUniforms { 3291 float radiusPixels; 3292 highp int sizeUnits; 3293} pointCloud;
3294`,uie={name:"pointCloud",vs:$I,fs:$I,uniformTypes:{radiusPixels:"f32",sizeUnits:"i32"}},fie=`#version 300 es 3295#define SHADER_NAME point-cloud-layer-vertex-shader 3296in vec3 positions; 3297in vec3 instanceNormals; 3298in vec4 instanceColors; 3299in vec3 instancePositions; 3300in vec3 instancePositions64Low; 3301in vec3 instancePickingColors; 3302out vec4 vColor; 3303out vec2 unitPosition; 3304void main(void) { 3305geometry.worldPosition = instancePositions; 3306geometry.normal = project_normal(instanceNormals); 3307unitPosition = positions.xy; 3308geometry.uv = unitPosition; 3309geometry.pickingColor = instancePickingColors; 3310vec3 offset = vec3(positions.xy * project_size_to_pixel(pointCloud.radiusPixels, pointCloud.sizeUnits), 0.0); 3311DECKGL_FILTER_SIZE(offset, geometry); 3312gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.), geometry.position); 3313DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 3314gl_Position.xy += project_pixel_size_to_clipspace(offset.xy); 3315vec3 lightColor = lighting_getLightColor(instanceColors.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal); 3316vColor = vec4(lightColor, instanceColors.a * layer.opacity); 3317DECKGL_FILTER_COLOR(vColor, geometry); 3318} 3319`,hie=`#version 300 es 3320#define SHADER_NAME point-cloud-layer-fragment-shader 3321precision highp float; 3322in vec4 vColor; 3323in vec2 unitPosition; 3324out vec4 fragColor; 3325void main(void) { 3326geometry.uv = unitPosition.xy; 3327float distToCenter = length(unitPosition); 3328if (distToCenter > 1.0) { 3329discard; 3330} 3331fragColor = vColor; 3332DECKGL_FILTER_COLOR(fragColor, geometry); 3333} 3334`,$F=[0,0,0,255],XF=[0,0,1],die={sizeUnits:"pixels",pointSize:{type:"number",min:0,value:10},getPosition:{type:"accessor",value:r=>r.position},getNormal:{type:"accessor",value:XF},getColor:{type:"accessor",value:$F},material:!0,radiusPixels:{deprecatedFor:"pointSize"}};function pie(r){const{header:e,attributes:t}=r;if(!(!e||!t)&&(r.length=e.vertexCount,t.POSITION&&(t.instancePositions=t.POSITION),t.NORMAL&&(t.instanceNormals=t.NORMAL),t.COLOR_0)){const{size:n,value:i}=t.COLOR_0;t.instanceColors={size:n,type:"unorm8",value:i}}}class vg extends Cs{getShaders(){return super.getShaders({vs:fie,fs:hie,modules:[Ls,M_,ma,uie]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceNormals:{size:3,transition:!0,accessor:"getNormal",defaultValue:XF},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getColor",defaultValue:$F}})}updateState(e){const{changeFlags:t,props:n}=e;super.updateState(e),t.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll()),t.dataChanged&&pie(n.data)}draw({uniforms:e}){const{pointSize:t,sizeUnits:n}=this.props,i=this.state.model,s={sizeUnits:Po[n],radiusPixels:t};i.shaderInputs.setProps({pointCloud:s}),i.draw(this.context.renderPass)}_getModel(){const e=[];for(let t=0;t<3;t++){const n=t/3*Math.PI*2;e.push(Math.cos(n)*2,Math.sin(n)*2,0)}return new Di(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Zs({topology:"triangle-list",attributes:{positions:new Float32Array(e)}}),isInstanced:!0})}}vg.layerName="PointCloudLayer";vg.defaultProps=die;const XI=`uniform scatterplotUniforms { 3335 float radiusScale; 3336 float radiusMinPixels; 3337 float radiusMaxPixels; 3338 float lineWidthScale; 3339 float lineWidthMinPixels; 3340 float lineWidthMaxPixels; 3341 float stroked; 3342 float filled; 3343 bool antialiasing; 3344 bool billboard; 3345 highp int radiusUnits; 3346 highp int lineWidthUnits; 3347} scatterplot; 3348`,Aie={name:"scatterplot",vs:XI,fs:XI,source:"",uniformTypes:{radiusScale:"f32",radiusMinPixels:"f32",radiusMaxPixels:"f32",lineWidthScale:"f32",lineWidthMinPixels:"f32",lineWidthMaxPixels:"f32",stroked:"f32",filled:"f32",antialiasing:"f32",billboard:"f32",radiusUnits:"i32",lineWidthUnits:"i32"}},gie=`#version 300 es 3349#define SHADER_NAME scatterplot-layer-vertex-shader 3350in vec3 positions; 3351in vec3 instancePositions; 3352in vec3 instancePositions64Low; 3353in float instanceRadius; 3354in float instanceLineWidths; 3355in vec4 instanceFillColors; 3356in vec4 instanceLineColors; 3357in vec3 instancePickingColors; 3358out vec4 vFillColor; 3359out vec4 vLineColor; 3360out vec2 unitPosition; 3361out float innerUnitRadius; 3362out float outerRadiusPixels; 3363void main(void) { 3364geometry.worldPosition = instancePositions; 3365outerRadiusPixels = clamp( 3366project_size_to_pixel(scatterplot.radiusScale * instanceRadius, scatterplot.radiusUnits), 3367scatterplot.radiusMinPixels, scatterplot.radiusMaxPixels 3368); 3369float lineWidthPixels = clamp( 3370project_size_to_pixel(scatterplot.lineWidthScale * instanceLineWidths, scatterplot.lineWidthUnits), 3371scatterplot.lineWidthMinPixels, scatterplot.lineWidthMaxPixels 3372); 3373outerRadiusPixels += scatterplot.stroked * lineWidthPixels / 2.0; 3374float edgePadding = scatterplot.antialiasing ? (outerRadiusPixels + SMOOTH_EDGE_RADIUS) / outerRadiusPixels : 1.0; 3375unitPosition = edgePadding * positions.xy; 3376geometry.uv = unitPosition; 3377geometry.pickingColor = instancePickingColors; 3378innerUnitRadius = 1.0 - scatterplot.stroked * lineWidthPixels / outerRadiusPixels; 3379if (scatterplot.billboard) { 3380gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position); 3381DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 3382vec3 offset = edgePadding * positions * outerRadiusPixels; 3383DECKGL_FILTER_SIZE(offset, geometry); 3384gl_Position.xy += project_pixel_size_to_clipspace(offset.xy); 3385} else { 3386vec3 offset = edgePadding * positions * project_pixel_size(outerRadiusPixels); 3387DECKGL_FILTER_SIZE(offset, geometry); 3388gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset, geometry.position); 3389DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 3390} 3391vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * layer.opacity); 3392DECKGL_FILTER_COLOR(vFillColor, geometry); 3393vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * layer.opacity); 3394DECKGL_FILTER_COLOR(vLineColor, geometry); 3395} 3396`,mie=`#version 300 es 3397#define SHADER_NAME scatterplot-layer-fragment-shader 3398precision highp float; 3399in vec4 vFillColor; 3400in vec4 vLineColor; 3401in vec2 unitPosition; 3402in float innerUnitRadius; 3403in float outerRadiusPixels; 3404out vec4 fragColor; 3405void main(void) { 3406geometry.uv = unitPosition; 3407float distToCenter = length(unitPosition) * outerRadiusPixels; 3408float inCircle = scatterplot.antialiasing ? 3409smoothedge(distToCenter, outerRadiusPixels) : 3410step(distToCenter, outerRadiusPixels); 3411if (inCircle == 0.0) { 3412discard; 3413} 3414if (scatterplot.stroked > 0.5) { 3415float isLine = scatterplot.antialiasing ? 3416smoothedge(innerUnitRadius * outerRadiusPixels, distToCenter) : 3417step(innerUnitRadius * outerRadiusPixels, distToCenter); 3418if (scatterplot.filled > 0.5) { 3419fragColor = mix(vFillColor, vLineColor, isLine); 3420} else { 3421if (isLine == 0.0) { 3422discard; 3423} 3424fragColor = vec4(vLineColor.rgb, vLineColor.a * isLine); 3425} 3426} else if (scatterplot.filled < 0.5) { 3427discard; 3428} else { 3429fragColor = vFillColor; 3430} 3431fragColor.a *= inCircle; 3432DECKGL_FILTER_COLOR(fragColor, geometry); 3433} 3434`,_ie=`// TODO(ibgreen): Hack for Layer uniforms (move to new "color" module?) 3435 3436struct LayerUniforms { 3437 opacity: f32, 3438}; 3439 3440var<private> layer: LayerUniforms = LayerUniforms(1.0); 3441// @group(0) @binding(1) var<uniform> layer: LayerUniforms; 3442 3443// Main shaders 3444 3445struct ScatterplotUniforms { 3446 radiusScale: f32, 3447 radiusMinPixels: f32, 3448 radiusMaxPixels: f32, 3449 lineWidthScale: f32, 3450 lineWidthMinPixels: f32, 3451 lineWidthMaxPixels: f32, 3452 stroked: f32, 3453 filled: i32, 3454 antialiasing: i32, 3455 billboard: i32, 3456 radiusUnits: i32, 3457 lineWidthUnits: i32, 3458}; 3459 3460struct ConstantAttributeUniforms { 3461 instancePositions: vec3<f32>, 3462 instancePositions64Low: vec3<f32>, 3463 instanceRadius: f32, 3464 instanceLineWidths: f32, 3465 instanceFillColors: vec4<f32>, 3466 instanceLineColors: vec4<f32>, 3467 instancePickingColors: vec3<f32>, 3468 3469 instancePositionsConstant: i32, 3470 instancePositions64LowConstant: i32, 3471 instanceRadiusConstant: i32, 3472 instanceLineWidthsConstant: i32, 3473 instanceFillColorsConstant: i32, 3474 instanceLineColorsConstant: i32, 3475 instancePickingColorsConstant: i32 3476}; 3477 3478@group(0) @binding(2) var<uniform> scatterplot: ScatterplotUniforms; 3479 3480struct ConstantAttributes { 3481 instancePositions: vec3<f32>, 3482 instancePositions64Low: vec3<f32>, 3483 instanceRadius: f32, 3484 instanceLineWidths: f32, 3485 instanceFillColors: vec4<f32>, 3486 instanceLineColors: vec4<f32>, 3487 instancePickingColors: vec3<f32> 3488}; 3489 3490const constants = ConstantAttributes( 3491 vec3<f32>(0.0), 3492 vec3<f32>(0.0), 3493 0.0, 3494 0.0, 3495 vec4<f32>(0.0, 0.0, 0.0, 1.0), 3496 vec4<f32>(0.0, 0.0, 0.0, 1.0), 3497 vec3<f32>(0.0) 3498); 3499 3500struct Attributes { 3501 @builtin(instance_index) instanceIndex : u32, 3502 @builtin(vertex_index) vertexIndex : u32, 3503 @location(0) positions: vec3<f32>, 3504 @location(1) instancePositions: vec3<f32>, 3505 @location(2) instancePositions64Low: vec3<f32>, 3506 @location(3) instanceRadius: f32, 3507 @location(4) instanceLineWidths: f32, 3508 @location(5) instanceFillColors: vec4<f32>, 3509 @location(6) instanceLineColors: vec4<f32>, 3510 @location(7) instancePickingColors: vec3<f32> 3511}; 3512
3513struct Varyings { 3514 @builtin(position) position: vec4<f32>, 3515 @location(0) vFillColor: vec4<f32>, 3516 @location(1) vLineColor: vec4<f32>, 3517 @location(2) unitPosition: vec2<f32>, 3518 @location(3) innerUnitRadius: f32, 3519 @location(4) outerRadiusPixels: f32, 3520}; 3521 3522@vertex 3523fn vertexMain(attributes: Attributes) -> Varyings { 3524 var varyings: Varyings; 3525 3526 // Draw an inline geometry constant array clip space triangle to verify that rendering works. 3527 // var positions = array<vec2<f32>, 3>(vec2(0.0, 0.5), vec2(-0.5, -0.5), vec2(0.5, -0.5)); 3528 // if (attributes.instanceIndex == 0) { 3529 // varyings.position = vec4<f32>(positions[attributes.vertexIndex], 0.0, 1.0); 3530 // return varyings; 3531 // } 3532 3533 // var geometry: Geometry; 3534 // geometry.worldPosition = instancePositions; 3535 3536 // Multiply out radius and clamp to limits 3537 varyings.outerRadiusPixels = clamp( 3538 project_unit_size_to_pixel(scatterplot.radiusScale * attributes.instanceRadius, scatterplot.radiusUnits), 3539 scatterplot.radiusMinPixels, scatterplot.radiusMaxPixels 3540 ); 3541 3542 // Multiply out line width and clamp to limits 3543 let lineWidthPixels = clamp( 3544 project_unit_size_to_pixel(scatterplot.lineWidthScale * attributes.instanceLineWidths, scatterplot.lineWidthUnits), 3545 scatterplot.lineWidthMinPixels, scatterplot.lineWidthMaxPixels 3546 ); 3547 3548 // outer radius needs to offset by half stroke width 3549 varyings.outerRadiusPixels += scatterplot.stroked * lineWidthPixels / 2.0; 3550 // Expand geometry to accommodate edge smoothing 3551 let edgePadding = select( 3552 (varyings.outerRadiusPixels + SMOOTH_EDGE_RADIUS) / varyings.outerRadiusPixels, 3553 1.0, 3554 scatterplot.antialiasing != 0 3555 ); 3556 3557 // position on the containing square in [-1, 1] space 3558 varyings.unitPosition = edgePadding * attributes.positions.xy; 3559 geometry.uv = varyings.unitPosition; 3560 geometry.pickingColor = attributes.instancePickingColors; 3561 3562 varyings.innerUnitRadius = 1.0 - scatterplot.stroked * lineWidthPixels / varyings.outerRadiusPixels; 3563 3564 if (scatterplot.billboard != 0) { 3565 varyings.position = project_position_to_clipspace(attributes.instancePositions, attributes.instancePositions64Low, vec3<f32>(0.0)); // TODO , geometry.position); 3566 // DECKGL_FILTER_GL_POSITION(varyings.position, geometry); 3567 let offset = attributes.positions; // * edgePadding * varyings.outerRadiusPixels; 3568 // DECKGL_FILTER_SIZE(offset, geometry); 3569 let clipPixels = project_pixel_size_to_clipspace(offset.xy); 3570 varyings.position.x = clipPixels.x; 3571 varyings.position.y = clipPixels.y; 3572 } else { 3573 let offset = edgePadding * attributes.positions * project_pixel_size_float(varyings.outerRadiusPixels); 3574 // DECKGL_FILTER_SIZE(offset, geometry); 3575 varyings.position = project_position_to_clipspace(attributes.instancePositions, attributes.instancePositions64Low, offset); // TODO , geometry.position); 3576 // DECKGL_FILTER_GL_POSITION(varyings.position, geometry); 3577 } 3578 3579 // Apply opacity to instance color, or return instance picking color 3580 varyings.vFillColor = vec4<f32>(attributes.instanceFillColors.rgb, attributes.instanceFillColors.a * layer.opacity); 3581 // DECKGL_FILTER_COLOR(varyings.vFillColor, geometry); 3582 varyings.vLineColor = vec4<f32>(attributes.instanceLineColors.rgb, attributes.instanceLineColors.a * layer.opacity); 3583 // DECKGL_FILTER_COLOR(varyings.vLineColor, geometry); 3584 3585 return varyings; 3586} 3587 3588@fragment 3589fn fragmentMain(varyings: Varyings) -> @location(0) vec4<f32> { 3590 // var geometry: Geometry; 3591 // geometry.uv = unitPosition; 3592 3593 let distToCenter = length(varyings.unitPosition) * varyings.outerRadiusPixels; 3594 let inCircle = select( 3595 smoothedge(distToCenter, varyings.outerRadiusPixels), 3596 step(distToCenter, varyings.outerRadiusPixels), 3597 scatterplot.antialiasing != 0 3598 ); 3599 3600 if (inCircle == 0.0) { 3601 // discard; 3602 } 3603 3604 var fragColor: vec4<f32>; 3605 3606 if (scatterplot.stroked != 0) { 3607 let isLine = select( 3608 smoothedge(varyings.innerUnitRadius * varyings.outerRadiusPixels, distToCenter), 3609 step(varyings.innerUnitRadius * varyings.outerRadiusPixels, distToCenter), 3610 scatterplot.antialiasing != 0 3611 ); 3612 3613 if (scatterplot.filled != 0) { 3614 fragColor = mix(varyings.vFillColor, varyings.vLineColor, isLine); 3615 } else { 3616 if (isLine == 0.0) { 3617 // discard; 3618 } 3619 fragColor = vec4<f32>(varyings.vLineColor.rgb, varyings.vLineColor.a * isLine); 3620 } 3621 } else if (scatterplot.filled == 0) { 3622 // discard; 3623 } else { 3624 fragColor = varyings.vFillColor; 3625 } 3626 3627 fragColor.a *= inCircle; 3628 // DECKGL_FILTER_COLOR(fragColor, geometry); 3629 3630 return fragColor; 3631 // return vec4<f32>(0, 0, 1, 1); 3632} 3633`,qI=[0,0,0,255],yie={radiusUnits:"meters",radiusScale:{type:"number",min:0,value:1},radiusMinPixels:{type:"number",min:0,value:0},radiusMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},lineWidthUnits:"meters",lineWidthScale:{type:"number",min:0,value:1},lineWidthMinPixels:{type:"number",min:0,value:0},lineWidthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},stroked:!1,filled:!0,billboard:!1,antialiasing:!0,getPosition:{type:"accessor",value:r=>r.position},getRadius:{type:"accessor",value:1},getFillColor:{type:"accessor",value:qI},getLineColor:{type:"accessor",value:qI},getLineWidth:{type:"accessor",value:1},strokeWidth:{deprecatedFor:"getLineWidth"},outline:{deprecatedFor:"stroked"},getColor:{deprecatedFor:["getFillColor","getLineColor"]}};class bg extends Cs{getShaders(){return super.getShaders({vs:gie,fs:mie,source:_ie,modules:[Ls,ma,Aie]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceRadius:{size:1,transition:!0,accessor:"getRadius",defaultValue:1},instanceFillColors:{size:this.props.colorFormat.length,transition:!0,type:"unorm8",accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:this.props.colorFormat.length,transition:!0,type:"unorm8",accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState(e){super.updateState(e),e.changeFlags.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll())}draw({uniforms:e}){const{radiusUnits:t,radiusScale:n,radiusMinPixels:i,radiusMaxPixels:s,stroked:o,filled:l,billboard:f,antialiasing:A,lineWidthUnits:v,lineWidthScale:T,lineWidthMinPixels:I,lineWidthMaxPixels:F}=this.props,N={stroked:o,filled:l,billboard:f,antialiasing:A,radiusUnits:Po[t],radiusScale:n,radiusMinPixels:i,radiusMaxPixels:s,lineWidthUnits:Po[v],lineWidthScale:T,lineWidthMinPixels:I,lineWidthMaxPixels:F},U=this.state.model;U.shaderInputs.setProps({scatterplot:N}),U.draw(this.context.renderPass)}_getModel(){const e=[-1,-1,0,1,-1,0,-1,1,0,1,1,0];
3633return new Di(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Zs({topology:"triangle-strip",attributes:{positions:{size:3,value:new Float32Array(e)}}}),isInstanced:!0})}}bg.defaultProps=yie;bg.layerName="ScatterplotLayer";const uw={CLOCKWISE:1,COUNTER_CLOCKWISE:-1};function fw(r,e,t={}){return vie(r,t)!==e?(xie(r,t),!0):!1}function vie(r,e={}){return Math.sign(bie(r,e))}const JI={x:0,y:1,z:2};function bie(r,e={}){const{start:t=0,end:n=r.length,plane:i="xy"}=e,s=e.size||2;let o=0;const l=JI[i[0]],f=JI[i[1]];for(let A=t,v=n-s;A<n;A+=s)o+=(r[A+l]-r[v+l])*(r[A+f]+r[v+f]),v=A;return o/2}function xie(r,e){const{start:t=0,end:n=r.length,size:i=2}=e,s=(n-t)/i,o=Math.floor(s/2);for(let l=0;l<o;++l){const f=t+l*i,A=t+(s-1-l)*i;for(let v=0;v<i;++v){const T=r[f+v];r[f+v]=r[A+v],r[A+v]=T}}}function bl(r,e){const t=e.length,n=r.length;if(n>0){let i=!0;for(let s=0;s<t;s++)if(r[n-t+s]!==e[s]){i=!1;break}if(i)return!1}for(let i=0;i<t;i++)r[n+i]=e[i];return!0}function p2(r,e){const t=e.length;for(let n=0;n<t;n++)r[n]=e[n]}function lg(r,e,t,n,i=[]){const s=n+e*t;for(let o=0;o<t;o++)i[o]=r[s+o];return i}function A2(r,e,t,n,i=[]){let s,o;if(t&8)s=(n[3]-r[1])/(e[1]-r[1]),o=3;else if(t&4)s=(n[1]-r[1])/(e[1]-r[1]),o=1;else if(t&2)s=(n[2]-r[0])/(e[0]-r[0]),o=2;else if(t&1)s=(n[0]-r[0])/(e[0]-r[0]),o=0;else return null;for(let l=0;l<r.length;l++)i[l]=(o&1)===l?n[o]:s*(e[l]-r[l])+r[l];return i}function wm(r,e){let t=0;return r[0]<e[0]?t|=1:r[0]>e[2]&&(t|=2),r[1]<e[1]?t|=4:r[1]>e[3]&&(t|=8),t}function qF(r,e){const{size:t=2,broken:n=!1,gridResolution:i=10,gridOffset:s=[0,0],startIndex:o=0,endIndex:l=r.length}=e||{},f=(l-o)/t;let A=[];const v=[A],T=lg(r,0,t,o);let I,F;const N=KF(T,i,s,[]),U=[];bl(A,T);for(let $=1;$<f;$++){for(I=lg(r,$,t,o,I),F=wm(I,N);F;){A2(T,I,F,N,U);const V=wm(U,N);V&&(A2(T,U,V,N,U),F=V),bl(A,U),p2(T,U),Tie(N,i,F),n&&A.length>t&&(A=[],v.push(A),bl(A,T)),F=wm(I,N)}bl(A,I),p2(T,I)}return n?v:v[0]}const KI=0,wie=1;function JF(r,e=null,t){if(!r.length)return[];const{size:n=2,gridResolution:i=10,gridOffset:s=[0,0],edgeTypes:o=!1}=t||{},l=[],f=[{pos:r,types:o?new Array(r.length/n).fill(wie):null,holes:e||[]}],A=[[],[]];let v=[];for(;f.length;){const{pos:T,types:I,holes:F}=f.shift();Eie(T,n,F[0]||T.length,A),v=KF(A[0],i,s,v);const N=wm(A[1],v);if(N){let U=ZI(T,I,n,0,F[0]||T.length,v,N);const $={pos:U[0].pos,types:U[0].types,holes:[]},V={pos:U[1].pos,types:U[1].types,holes:[]};f.push($,V);for(let G=0;G<F.length;G++)U=ZI(T,I,n,F[G],F[G+1]||T.length,v,N),U[0]&&($.holes.push($.pos.length),$.pos=F0($.pos,U[0].pos),o&&($.types=F0($.types,U[0].types))),U[1]&&(V.holes.push(V.pos.length),V.pos=F0(V.pos,U[1].pos),o&&(V.types=F0(V.types,U[1].types)))}else{const U={positions:T};o&&(U.edgeTypes=I),F.length&&(U.holeIndices=F),l.push(U)}}return l}function ZI(r,e,t,n,i,s,o){const l=(i-n)/t,f=[],A=[],v=[],T=[],I=[];let F,N,U;const $=lg(r,l-1,t,n);let V=Math.sign(o&8?$[1]-s[3]:$[0]-s[2]),G=e&&e[l-1],X=0,ue=0;for(let K=0;K<l;K++)F=lg(r,K,t,n,F),N=Math.sign(o&8?F[1]-s[3]:F[0]-s[2]),U=e&&e[n/t+K],N&&V&&V!==N&&(A2($,F,o,s,I),bl(f,I)&&v.push(G),bl(A,I)&&T.push(G)),N<=0?(bl(f,F)&&v.push(U),X-=N):v.length&&(v[v.length-1]=KI),N>=0?(bl(A,F)&&T.push(U),ue+=N):T.length&&(T[T.length-1]=KI),p2($,F),V=N,G=U;return[X?{pos:f,types:e&&v}:null,ue?{pos:A,types:e&&T}:null]}function KF(r,e,t,n){const i=Math.floor((r[0]-t[0])/e)*e+t[0],s=Math.floor((r[1]-t[1])/e)*e+t[1];return n[0]=i,n[1]=s,n[2]=i+e,n[3]=s+e,n}function Tie(r,e,t){t&8?(r[1]+=e,r[3]+=e):t&4?(r[1]-=e,r[3]-=e):t&2?(r[0]+=e,r[2]+=e):t&1&&(r[0]-=e,r[2]-=e)}function Eie(r,e,t,n){let i=1/0,s=-1/0,o=1/0,l=-1/0;for(let f=0;f<t;f+=e){const A=r[f],v=r[f+1];i=A<i?A:i,s=A>s?A:s,o=v<o?v:o,l=v>l?v:l}return n[0][0]=i,n[0][1]=o,n[1][0]=s,n[1][1]=l,n}function F0(r,e){for(let t=0;t<e.length;t++)r.push(e[t]);return r}const Cie=85.051129;function Sie(r,e){const{size:t=2,startIndex:n=0,endIndex:i=r.length,normalize:s=!0}=e||{},o=r.slice(n,i);ZF(o,t,0,i-n);const l=qF(o,{size:t,broken:!0,gridResolution:360,gridOffset:[-180,-180]});if(s)for(const f of l)YF(f,t);return l}function Iie(r,e=null,t){const{size:n=2,normalize:i=!0,edgeTypes:s=!1}=t||{};e=e||[];const o=[],l=[];let f=0,A=0;for(let T=0;T<=e.length;T++){const I=e[T]||r.length,F=A,N=Bie(r,n,f,I);for(let U=N;U<I;U++)o[A++]=r[U];for(let U=f;U<N;U++)o[A++]=r[U];ZF(o,n,F,A),Pie(o,n,F,A,t?.maxLatitude),f=I,l[T]=A}l.pop();const v=JF(o,l,{size:n,gridResolution:360,gridOffset:[-180,-180],edgeTypes:s});if(i)for(const T of v)YF(T.positions,n);return v}function Bie(r,e,t,n){let i=-1,s=-1;for(let o=t+1;o<n;o+=e){const l=Math.abs(r[o]);l>i&&(i=l,s=o-1)}return s}function Pie(r,e,t,n,i=Cie){const s=r[t],o=r[n-e];if(Math.abs(s-o)>180){const l=lg(r,0,e,t);l[0]+=Math.round((o-s)/360)*360,bl(r,l),l[1]=Math.sign(l[1])*i,bl(r,l),l[0]=s,bl(r,l)}}function ZF(r,e,t,n){let i=r[0],s;for(let o=t;o<n;o+=e){s=r[o];const l=s-i;(l>180||l<-180)&&(s-=Math.round(l/360)*360),r[o]=i=s}}function YF(r,e){let t;const n=r.length/e;for(let s=0;s<n&&(t=r[s*e],(t+180)%360===0);s++);const i=-Math.round(t/360)*360;if(i!==0)for(let s=0;s<n;s++)r[s*e]+=i}class Mie extends Zs{constructor(e){const{indices:t,attributes:n}=Rie(e);super({...e,indices:t,attributes:n}
3633)}}function Rie(r){const{radius:e,height:t=1,nradial:n=10}=r;let{vertices:i}=r;i&&(Zr.assert(i.length>=n),i=i.flatMap(F=>[F[0],F[1]]),fw(i,uw.COUNTER_CLOCKWISE));const s=t>0,o=n+1,l=s?o*3+1:n,f=Math.PI*2/n,A=new Uint16Array(s?n*3*2:0),v=new Float32Array(l*3),T=new Float32Array(l*3);let I=0;if(s){for(let F=0;F<o;F++){const N=F*f,U=F%n,$=Math.sin(N),V=Math.cos(N);for(let G=0;G<2;G++)v[I+0]=i?i[U*2]:V*e,v[I+1]=i?i[U*2+1]:$*e,v[I+2]=(1/2-G)*t,T[I+0]=i?i[U*2]:V,T[I+1]=i?i[U*2+1]:$,I+=3}v[I+0]=v[I-3],v[I+1]=v[I-2],v[I+2]=v[I-1],I+=3}for(let F=s?0:1;F<o;F++){const N=Math.floor(F/2)*Math.sign(.5-F%2),U=N*f,$=(N+n)%n,V=Math.sin(U),G=Math.cos(U);v[I+0]=i?i[$*2]:G*e,v[I+1]=i?i[$*2+1]:V*e,v[I+2]=t/2,T[I+2]=1,I+=3}if(s){let F=0;for(let N=0;N<n;N++)A[F++]=N*2+0,A[F++]=N*2+2,A[F++]=N*2+0,A[F++]=N*2+1,A[F++]=N*2+1,A[F++]=N*2+3}return{indices:A,attributes:{POSITION:{size:3,value:v},NORMAL:{size:3,value:T}}}}const YI=`uniform columnUniforms { 3634 float radius; 3635 float angle; 3636 vec2 offset; 3637 bool extruded; 3638 bool stroked; 3639 bool isStroke; 3640 float coverage; 3641 float elevationScale; 3642 float edgeDistance; 3643 float widthScale; 3644 float widthMinPixels; 3645 float widthMaxPixels; 3646 highp int radiusUnits; 3647 highp int widthUnits; 3648} column; 3649`,Oie={name:"column",vs:YI,fs:YI,uniformTypes:{radius:"f32",angle:"f32",offset:"vec2<f32>",extruded:"f32",stroked:"f32",isStroke:"f32",coverage:"f32",elevationScale:"f32",edgeDistance:"f32",widthScale:"f32",widthMinPixels:"f32",widthMaxPixels:"f32",radiusUnits:"i32",widthUnits:"i32"}},Die=`#version 300 es 3650#define SHADER_NAME column-layer-vertex-shader 3651in vec3 positions; 3652in vec3 normals; 3653in vec3 instancePositions; 3654in float instanceElevations; 3655in vec3 instancePositions64Low; 3656in vec4 instanceFillColors; 3657in vec4 instanceLineColors; 3658in float instanceStrokeWidths; 3659in vec3 instancePickingColors; 3660out vec4 vColor; 3661#ifdef FLAT_SHADING 3662out vec3 cameraPosition; 3663out vec4 position_commonspace; 3664#endif 3665void main(void) { 3666geometry.worldPosition = instancePositions; 3667vec4 color = column.isStroke ? instanceLineColors : instanceFillColors; 3668mat2 rotationMatrix = mat2(cos(column.angle), sin(column.angle), -sin(column.angle), cos(column.angle)); 3669float elevation = 0.0; 3670float strokeOffsetRatio = 1.0; 3671if (column.extruded) { 3672elevation = instanceElevations * (positions.z + 1.0) / 2.0 * column.elevationScale; 3673} else if (column.stroked) { 3674float widthPixels = clamp( 3675project_size_to_pixel(instanceStrokeWidths * column.widthScale, column.widthUnits), 3676column.widthMinPixels, column.widthMaxPixels) / 2.0; 3677float halfOffset = project_pixel_size(widthPixels) / project_size(column.edgeDistance * column.coverage * column.radius); 3678if (column.isStroke) { 3679strokeOffsetRatio -= sign(positions.z) * halfOffset; 3680} else { 3681strokeOffsetRatio -= halfOffset; 3682} 3683} 3684float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0); 3685float dotRadius = column.radius * column.coverage * shouldRender; 3686geometry.pickingColor = instancePickingColors; 3687vec3 centroidPosition = vec3(instancePositions.xy, instancePositions.z + elevation); 3688vec3 centroidPosition64Low = instancePositions64Low; 3689vec2 offset = (rotationMatrix * positions.xy * strokeOffsetRatio + column.offset) * dotRadius; 3690if (column.radiusUnits == UNIT_METERS) { 3691offset = project_size(offset); 3692} 3693vec3 pos = vec3(offset, 0.); 3694DECKGL_FILTER_SIZE(pos, geometry); 3695gl_Position = project_position_to_clipspace(centroidPosition, centroidPosition64Low, pos, geometry.position); 3696geometry.normal = project_normal(vec3(rotationMatrix * normals.xy, normals.z)); 3697DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 3698if (column.extruded && !column.isStroke) { 3699#ifdef FLAT_SHADING 3700cameraPosition = project.cameraPosition; 3701position_commonspace = geometry.position; 3702vColor = vec4(color.rgb, color.a * layer.opacity); 3703#else 3704vec3 lightColor = lighting_getLightColor(color.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal); 3705vColor = vec4(lightColor, color.a * layer.opacity); 3706#endif 3707} else { 3708vColor = vec4(color.rgb, color.a * layer.opacity); 3709} 3710DECKGL_FILTER_COLOR(vColor, geometry); 3711} 3712`,Fie=`#version 300 es 3713#define SHADER_NAME column-layer-fragment-shader 3714precision highp float; 3715out vec4 fragColor; 3716in vec4 vColor; 3717#ifdef FLAT_SHADING 3718in vec3 cameraPosition; 3719in vec4 position_commonspace; 3720#endif 3721void main(void) { 3722fragColor = vColor; 3723geometry.uv = vec2(0.); 3724#ifdef FLAT_SHADING 3725if (column.extruded && !column.isStroke && !bool(picking.isActive)) { 3726vec3 normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz))); 3727fragColor.rgb = lighting_getLightColor(vColor.rgb, cameraPosition, position_commonspace.xyz, normal); 3728} 3729#endif 3730DECKGL_FILTER_COLOR(fragColor, geometry); 3731} 3732`,c_=[0,0,0,255],Lie={diskResolution:{type:"number",min:4,value:20},vertices:null,radius:{type:"number",min:0,value:1e3},angle:{type:"number",value:0},offset:{type:"array",value:[0,0]},coverage:{type:"number",min:0,max:1,value:1},elevationScale:{type:"number",min:0,value:1},radiusUnits:"meters",lineWidthUnits:"meters",lineWidthScale:1,lineWidthMinPixels:0,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,extruded:!0,wireframe:!1,filled:!0,stroked:!1,flatShading:!1,getPosition:{type:"accessor",value:r=>r.position},getFillColor:{type:"accessor",value:c_},getLineColor:{type:"accessor",value:c_},getLineWidth:{type:"accessor",value:1},getElevation:{type:"accessor",value:1e3},material:!0,getColor:{deprecatedFor:["getFillColor","getLineColor"]}};class pc extends Cs{getShaders(){const e={},{flatShading:t}=this.props;return t&&(e.FLAT_SHADING=1),super.getShaders({vs:Die,fs:Fie,defines:e,modules:[Ls,t?Tx:M_,ma,Oie]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceElevations:{size:1,transition:!0,accessor:"getElevation"},instanceFillColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getFillColor",defaultValue:c_},instanceLineColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getLineColor",defaultValue:c_},instanceStrokeWidths:{size:1,accessor:"getLineWidth",transition:!0}})}updateState(e){super.updateState(e);const{props:t,oldProps:n,changeFlags:i}=e,s=i.extensionsChanged||t.flatShading!==n.flatShading;s&&(this.state.models?.forEach(l=>l.destroy()),this.setState(this._getModels()),this.getAttributeManager().invalidateAll());const o=this.getNumInstances();this.state.fillModel.setInstanceCount(o),this.state.wireframeModel.setInstanceCount(o),(s||t.diskResolution!==n.diskResolution||t.vertices!==n.vertices||(t.extruded||t.stroked)!==(n.extruded||n.stroked))&&this._updateGeometry(t)}getGeometry(e,t,n){const i=new Mie({radius:1,height:n?2:0,vertices:t,nradial:e});let s=0;if(t)for(let o=0;o<e;o++){const l=t[o],f=Math.sqrt(l[0]*l[0]+l[1]*l[1]);s+=f/e}else s=1;return this.setState({edgeDistance:Math.cos(Math.PI/e)*s}),i}_getModels(){const e=this.getShaders(),t=this.getAttributeManager().getBufferLayouts(),n=new Di(this.context.device,{...e,id:`${this.props.id}-fill`,bufferLayout:t,isInstanced:!0}),i=new Di(this.context.device,{...e,id:`${this.props.id}-wireframe`,bufferLayout:t,isInstanced:!0});return{fillModel:n,wireframeModel:i,models:[i,n]}}_updateGeometry({diskResolution:e,vertices:t,extruded:n,stroked:i}){const s=this.getGeometry(e,t,n||i);this.setState({fillVertexCount:s.attributes.POSITION.value.length/3});const o=this.state.fillModel,l=this.state.wireframeModel;o.setGeometry(s),o.setTopology("triangle-strip"),o.setIndexBuffer(null),l.setGeometry(s),l.setTopology("line-list")}draw({uniforms:e}){const{lineWidthUnits:t,lineWidthScale:n,lineWidthMinPixels:i,lineWidthMaxPixels:s,radiusUnits:o,elevationScale:l,extruded:f,filled:A,stroked:v,wireframe:T,offset:I,c
3732overage:F,radius:N,angle:U}=this.props,$=this.state.fillModel,V=this.state.wireframeModel,{fillVertexCount:G,edgeDistance:X}=this.state,ue={radius:N,angle:U/180*Math.PI,offset:I,extruded:f,stroked:v,coverage:F,elevationScale:l,edgeDistance:X,radiusUnits:Po[o],widthUnits:Po[t],widthScale:n,widthMinPixels:i,widthMaxPixels:s};f&&T&&(V.shaderInputs.setProps({column:{...ue,isStroke:!0}}),V.draw(this.context.renderPass)),A&&($.setVertexCount(G),$.shaderInputs.setProps({column:{...ue,isStroke:!1}}),$.draw(this.context.renderPass)),!f&&v&&($.setVertexCount(G*2/3),$.shaderInputs.setProps({column:{...ue,isStroke:!0}}),$.draw(this.context.renderPass))}}pc.layerName="ColumnLayer";pc.defaultProps=Lie;const kie={cellSize:{type:"number",min:0,value:1e3},offset:{type:"array",value:[1,1]}};let hw=class extends pc{_updateGeometry(){const e=new dD;this.state.fillModel.setGeometry(e)}draw({uniforms:e}){const{elevationScale:t,extruded:n,offset:i,coverage:s,cellSize:o,angle:l,radiusUnits:f}=this.props,A=this.state.fillModel,v={radius:o/2,radiusUnits:Po[f],angle:l,offset:i,extruded:n,stroked:!1,coverage:s,elevationScale:t,edgeDistance:1,isStroke:!1,widthUnits:0,widthScale:0,widthMinPixels:0,widthMaxPixels:0};A.shaderInputs.setProps({column:v}),A.draw(this.context.renderPass)}};hw.layerName="GridCellLayer";hw.defaultProps=kie;function Nie(r,e,t,n){let i;if(Array.isArray(r[0])){const s=r.length*e;i=new Array(s);for(let o=0;o<r.length;o++)for(let l=0;l<e;l++)i[o*e+l]=r[o][l]||0}else i=r;return t?qF(i,{size:e,gridResolution:t}):n?Sie(i,{size:e}):i}const Uie=1,zie=2,eb=4;class Vie extends XD{constructor(e){super({...e,attributes:{positions:{size:3,padding:18,initialize:!0,type:e.fp64?Float64Array:Float32Array},segmentTypes:{size:1,type:Uint8ClampedArray}}})}get(e){return this.attributes[e]}getGeometryFromBuffer(e){return this.normalize?super.getGeometryFromBuffer(e):null}normalizeGeometry(e){return this.normalize?Nie(e,this.positionSize,this.opts.resolution,this.opts.wrapLongitude):e}getGeometrySize(e){if(QI(e)){let n=0;for(const i of e)n+=this.getGeometrySize(i);return n}const t=this.getPathLength(e);return t<2?0:this.isClosed(e)?t<3?0:t+2:t}updateGeometryAttributes(e,t){if(t.geometrySize!==0)if(e&&QI(e))for(const n of e){const i=this.getGeometrySize(n);t.geometrySize=i,this.updateGeometryAttributes(n,t),t.vertexStart+=i}else this._updateSegmentTypes(e,t),this._updatePositions(e,t)}_updateSegmentTypes(e,t){const n=this.attributes.segmentTypes,i=e?this.isClosed(e):!1,{vertexStart:s,geometrySize:o}=t;n.fill(0,s,s+o),i?(n[s]=eb,n[s+o-2]=eb):(n[s]+=Uie,n[s+o-2]+=zie),n[s+o-1]=eb}_updatePositions(e,t){const{positions:n}=this.attributes;if(!n||!e)return;const{vertexStart:i,geometrySize:s}=t,o=new Array(3);for(let l=i,f=0;f<s;l++,f++)this.getPointOnPath(e,f,o),n[l*3]=o[0],n[l*3+1]=o[1],n[l*3+2]=o[2]}getPathLength(e){return e.length/this.positionSize}getPointOnPath(e,t,n=[]){const{positionSize:i}=this;t*i>=e.length&&(t+=1-e.length/i);const s=t*i;return n[0]=e[s],n[1]=e[s+1],n[2]=i===3&&e[s+2]||0,n}isClosed(e){if(!this.normalize)return!!this.opts.loop;const{positionSize:t}=this,n=e.length-t;return e[0]===e[n]&&e[1]===e[n+1]&&(t===2||e[2]===e[n+2])}}function QI(r){return Array.isArray(r[0])}const eB=`uniform pathUniforms { 3733 float widthScale; 3734 float widthMinPixels; 3735 float widthMaxPixels; 3736 float jointType; 3737 float capType; 3738 float miterLimit; 3739 bool billboard; 3740 highp int widthUnits; 3741} path; 3742`,jie={name:"path",vs:eB,fs:eB,uniformTypes:{widthScale:"f32",widthMinPixels:"f32",widthMaxPixels:"f32",jointType:"f32",capType:"f32",miterLimit:"f32",billboard:"f32",widthUnits:"i32"}},Gie=`#version 300 es 3743#define SHADER_NAME path-layer-vertex-shader 3744in vec2 positions; 3745in float instanceTypes; 3746in vec3 instanceStartPositions; 3747in vec3 instanceEndPositions; 3748in vec3 instanceLeftPositions; 3749in vec3 instanceRightPositions; 3750in vec3 instanceLeftPositions64Low; 3751in vec3 instanceStartPositions64Low; 3752in vec3 instanceEndPositions64Low; 3753in vec3 instanceRightPositions64Low; 3754in float instanceStrokeWidths; 3755in vec4 instanceColors; 3756in vec3 instancePickingColors; 3757uniform float opacity; 3758out vec4 vColor; 3759out vec2 vCornerOffset; 3760out float vMiterLength; 3761out vec2 vPathPosition; 3762out float vPathLength; 3763out float vJointType; 3764const float EPSILON = 0.001; 3765const vec3 ZERO_OFFSET = vec3(0.0); 3766float flipIfTrue(bool flag) { 3767return -(float(flag) * 2. - 1.); 3768} 3769vec3 getLineJoinOffset( 3770vec3 prevPoint, vec3 currPoint, vec3 nextPoint, 3771vec2 width 3772) { 3773bool isEnd = positions.x > 0.0; 3774float sideOfPath = positions.y; 3775float isJoint = float(sideOfPath == 0.0); 3776vec3 deltaA3 = (currPoint - prevPoint); 3777vec3 deltaB3 = (nextPoint - currPoint); 3778mat3 rotationMatrix; 3779bool needsRotation = !path.billboard && project_needs_rotation(currPoint, rotationMatrix); 3780if (needsRotation) { 3781deltaA3 = deltaA3 * rotationMatrix; 3782deltaB3 = deltaB3 * rotationMatrix; 3783} 3784vec2 deltaA = deltaA3.xy / width; 3785vec2 deltaB = deltaB3.xy / width; 3786float lenA = length(deltaA); 3787float lenB = length(deltaB); 3788vec2 dirA = lenA > 0. ? normalize(deltaA) : vec2(0.0, 0.0); 3789vec2 dirB = lenB > 0. ? normalize(deltaB) : vec2(0.0, 0.0); 3790vec2 perpA = vec2(-dirA.y, dirA.x); 3791vec2 perpB = vec2(-dirB.y, dirB.x); 3792vec2 tangent = dirA + dirB; 3793tangent = length(tangent) > 0. ? normalize(tangent) : perpA; 3794vec2 miterVec = vec2(-tangent.y, tangent.x); 3795vec2 dir = isEnd ? dirA : dirB; 3796vec2 perp = isEnd ? perpA : perpB; 3797float L = isEnd ? lenA : lenB; 3798float sinHalfA = abs(dot(miterVec, perp));
3799float cosHalfA = abs(dot(dirA, miterVec)); 3800float turnDirection = flipIfTrue(dirA.x * dirB.y >= dirA.y * dirB.x); 3801float cornerPosition = sideOfPath * turnDirection; 3802float miterSize = 1.0 / max(sinHalfA, EPSILON); 3803miterSize = mix( 3804min(miterSize, max(lenA, lenB) / max(cosHalfA, EPSILON)), 3805miterSize, 3806step(0.0, cornerPosition) 3807); 3808vec2 offsetVec = mix(miterVec * miterSize, perp, step(0.5, cornerPosition)) 3809* (sideOfPath + isJoint * turnDirection); 3810bool isStartCap = lenA == 0.0 || (!isEnd && (instanceTypes == 1.0 || instanceTypes == 3.0)); 3811bool isEndCap = lenB == 0.0 || (isEnd && (instanceTypes == 2.0 || instanceTypes == 3.0)); 3812bool isCap = isStartCap || isEndCap; 3813if (isCap) { 3814offsetVec = mix(perp * sideOfPath, dir * path.capType * 4.0 * flipIfTrue(isStartCap), isJoint); 3815vJointType = path.capType; 3816} else { 3817vJointType = path.jointType; 3818} 3819vPathLength = L; 3820vCornerOffset = offsetVec; 3821vMiterLength = dot(vCornerOffset, miterVec * turnDirection); 3822vMiterLength = isCap ? isJoint : vMiterLength; 3823vec2 offsetFromStartOfPath = vCornerOffset + deltaA * float(isEnd); 3824vPathPosition = vec2( 3825dot(offsetFromStartOfPath, perp), 3826dot(offsetFromStartOfPath, dir) 3827); 3828geometry.uv = vPathPosition; 3829float isValid = step(instanceTypes, 3.5); 3830vec3 offset = vec3(offsetVec * width * isValid, 0.0); 3831if (needsRotation) { 3832offset = rotationMatrix * offset; 3833} 3834return offset; 3835} 3836void clipLine(inout vec4 position, vec4 refPosition) { 3837if (position.w < EPSILON) { 3838float r = (EPSILON - refPosition.w) / (position.w - refPosition.w); 3839position = refPosition + (position - refPosition) * r; 3840} 3841} 3842void main() { 3843geometry.pickingColor = instancePickingColors; 3844vColor = vec4(instanceColors.rgb, instanceColors.a * layer.opacity); 3845float isEnd = positions.x; 3846vec3 prevPosition = mix(instanceLeftPositions, instanceStartPositions, isEnd); 3847vec3 prevPosition64Low = mix(instanceLeftPositions64Low, instanceStartPositions64Low, isEnd); 3848vec3 currPosition = mix(instanceStartPositions, instanceEndPositions, isEnd); 3849vec3 currPosition64Low = mix(instanceStartPositions64Low, instanceEndPositions64Low, isEnd); 3850vec3 nextPosition = mix(instanceEndPositions, instanceRightPositions, isEnd); 3851vec3 nextPosition64Low = mix(instanceEndPositions64Low, instanceRightPositions64Low, isEnd); 3852geometry.worldPosition = currPosition; 3853vec2 widthPixels = vec2(clamp( 3854project_size_to_pixel(instanceStrokeWidths * path.widthScale, path.widthUnits), 3855path.widthMinPixels, path.widthMaxPixels) / 2.0); 3856vec3 width; 3857if (path.billboard) { 3858vec4 prevPositionScreen = project_position_to_clipspace(prevPosition, prevPosition64Low, ZERO_OFFSET); 3859vec4 currPositionScreen = project_position_to_clipspace(currPosition, currPosition64Low, ZERO_OFFSET, geometry.position); 3860vec4 nextPositionScreen = project_position_to_clipspace(nextPosition, nextPosition64Low, ZERO_OFFSET); 3861clipLine(prevPositionScreen, currPositionScreen); 3862clipLine(nextPositionScreen, currPositionScreen); 3863clipLine(currPositionScreen, mix(nextPositionScreen, prevPositionScreen, isEnd)); 3864width = vec3(widthPixels, 0.0); 3865DECKGL_FILTER_SIZE(width, geometry); 3866vec3 offset = getLineJoinOffset( 3867prevPositionScreen.xyz / prevPositionScreen.w, 3868currPositionScreen.xyz / currPositionScreen.w, 3869nextPositionScreen.xyz / nextPositionScreen.w, 3870project_pixel_size_to_clipspace(width.xy) 3871); 3872DECKGL_FILTER_GL_POSITION(currPositionScreen, geometry); 3873gl_Position = vec4(currPositionScreen.xyz + offset * currPositionScreen.w, currPositionScreen.w); 3874} else { 3875prevPosition = project_position(prevPosition, prevPosition64Low); 3876currPosition = project_position(currPosition, currPosition64Low); 3877nextPosition = project_position(nextPosition, nextPosition64Low); 3878width = vec3(project_pixel_size(widthPixels), 0.0); 3879DECKGL_FILTER_SIZE(width, geometry); 3880vec3 offset = getLineJoinOffset(prevPosition, currPosition, nextPosition, width.xy); 3881geometry.position = vec4(currPosition + offset, 1.0); 3882gl_Position = project_common_position_to_clipspace(geometry.position); 3883DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 3884} 3885DECKGL_FILTER_COLOR(vColor, geometry); 3886} 3887`,Hie=`#version 300 es 3888#define SHADER_NAME path-layer-fragment-shader 3889precision highp float; 3890in vec4 vColor; 3891in vec2 vCornerOffset; 3892in float vMiterLength; 3893in vec2 vPathPosition; 3894in float vPathLength; 3895in float vJointType; 3896out vec4 fragColor; 3897void main(void) { 3898geometry.uv = vPathPosition; 3899if (vPathPosition.y < 0.0 || vPathPosition.y > vPathLength) { 3900if (vJointType > 0.5 && length(vCornerOffset) > 1.0) { 3901discard; 3902} 3903if (vJointType < 0.5 && vMiterLength > path.miterLimit + 1.0) { 3904discard; 3905} 3906} 3907fragColor = vColor; 3908DECKGL_FILTER_COLOR(fragColor, geometry); 3909} 3910`,QF=[0,0,0,255],Wie={widthUnits:"meters",widthScale:{type:"number",min:0,value:1},widthMinPixels:{type:"number",min:0,value:0},widthMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},jointRounded:!1,capRounded:!1,miterLimit:{type:"number",min:0,value:4},billboard:!1,_pathType:null,getPath:{type:"accessor",value:r=>r.path},getColor:{type:"accessor",value:QF},getWidth:{type:"accessor",value:1}
vendor: 12,176 bytes, line 3910
3910,rounded:{deprecatedFor:["jointRounded","capRounded"]}},tb={enter:(r,e)=>e.length?e.subarray(e.length-r.length):r};class sf extends Cs{getShaders(){return super.getShaders({vs:Gie,fs:Hie,modules:[Ls,ma,jie]})}get wrapLongitude(){return!1}getBounds(){return this.getAttributeManager()?.getBounds(["vertexPositions"])}initializeState(){this.getAttributeManager().addInstanced({vertexPositions:{size:3,vertexOffset:1,type:"float64",fp64:this.use64bitPositions(),transition:tb,accessor:"getPath",update:this.calculatePositions,noAlloc:!0,shaderAttributes:{instanceLeftPositions:{vertexOffset:0},instanceStartPositions:{vertexOffset:1},instanceEndPositions:{vertexOffset:2},instanceRightPositions:{vertexOffset:3}}},instanceTypes:{size:1,type:"uint8",update:this.calculateSegmentTypes,noAlloc:!0},instanceStrokeWidths:{size:1,accessor:"getWidth",transition:tb,defaultValue:1},instanceColors:{size:this.props.colorFormat.length,type:"unorm8",accessor:"getColor",transition:tb,defaultValue:QF},instancePickingColors:{size:4,type:"uint8",accessor:(n,{index:i,target:s})=>this.encodePickingColor(n&&n.__source?n.__source.index:i,s)}}),this.setState({pathTesselator:new Vie({fp64:this.use64bitPositions()})})}updateState(e){super.updateState(e);const{props:t,changeFlags:n}=e,i=this.getAttributeManager();if(n.dataChanged||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getPath)){const{pathTesselator:o}=this.state,l=t.data.attributes||{};o.updateGeometry({data:t.data,geometryBuffer:l.getPath,buffers:l,normalize:!t._pathType,loop:t._pathType==="loop",getGeometry:t.getPath,positionFormat:t.positionFormat,wrapLongitude:t.wrapLongitude,resolution:this.context.viewport.resolution,dataChanged:n.dataChanged}),this.setState({numInstances:o.instanceCount,startIndices:o.vertexStarts}),n.dataChanged||i.invalidateAll()}n.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),i.invalidateAll())}getPickingInfo(e){const t=super.getPickingInfo(e),{index:n}=t,i=this.props.data;return i[0]&&i[0].__source&&(t.object=i.find(s=>s.__source.index===n)),t}disablePickingIndex(e){const t=this.props.data;if(t[0]&&t[0].__source)for(let n=0;n<t.length;n++)t[n].__source.index===e&&this._disablePickingIndex(n);else super.disablePickingIndex(e)}draw({uniforms:e}){const{jointRounded:t,capRounded:n,billboard:i,miterLimit:s,widthUnits:o,widthScale:l,widthMinPixels:f,widthMaxPixels:A}=this.props,v=this.state.model,T={jointType:Number(t),capType:Number(n),billboard:i,widthUnits:Po[o],widthScale:l,miterLimit:s,widthMinPixels:f,widthMaxPixels:A};v.shaderInputs.setProps({path:T}),v.draw(this.context.renderPass)}_getModel(){const e=[0,1,2,1,4,2,1,3,4,3,5,4],t=[0,0,0,-1,0,1,1,-1,1,1,1,0];return new Di(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Zs({topology:"triangle-list",attributes:{indices:new Uint16Array(e),positions:{value:new Float32Array(t),size:2}}}),isInstanced:!0})}calculatePositions(e){const{pathTesselator:t}=this.state;e.startIndices=t.vertexStarts,e.value=t.get("positions")}calculateSegmentTypes(e){const{pathTesselator:t}=this.state;e.startIndices=t.vertexStarts,e.value=t.get("segmentTypes")}}sf.defaultProps=Wie;sf.layerName="PathLayer";var L0={exports:{}},tB;function $ie(){if(tB)return L0.exports;tB=1,L0.exports=r,L0.exports.default=r;function r(we,De,ze){ze=ze||2;var Ze=De&&De.length,tt=Ze?De[0]*ze:we.length,rt=e(we,0,tt,ze,!0),ct=[];if(!rt||rt.next===rt.prev)return ct;var bt,It,st,pr,Qt,Jt,Nt;if(Ze&&(rt=f(we,De,rt,ze)),we.length>80*ze){bt=st=we[0],It=pr=we[1];for(var Ar=ze;Ar<tt;Ar+=ze)Qt=we[Ar],Jt=we[Ar+1],Qt<bt&&(bt=Qt),Jt<It&&(It=Jt),Qt>st&&(st=Qt),Jt>pr&&(pr=Jt);Nt=Math.max(st-bt,pr-It),Nt=Nt!==0?32767/Nt:0}return n(rt,ct,ze,bt,It,Nt,0),ct}function e(we,De,ze,Ze,tt){var rt,ct;if(tt===Qe(we,De,ze,Ze)>0)for(rt=De;rt<ze;rt+=Ze)ct=W(rt,we[rt],we[rt+1],ct);else for(rt=ze-Ze;rt>=De;rt-=Ze)ct=W(rt,we[rt],we[rt+1],ct);return ct&&ue(ct,ct.next)&&(te(ct),ct=ct.next),ct}function t(we,De){if(!we)return we;De||(De=we);var ze=we,Ze;do if(Ze=!1,!ze.steiner&&(ue(ze,ze.next)||X(ze.prev,ze,ze.next)===0)){if(te(ze),ze=De=ze.prev,ze===ze.next)break;Ze=!0}else ze=ze.next;while(Ze||ze!==De);return De}function n(we,De,ze,Ze,tt,rt,ct){if(we){!ct&&rt&&F(we,Ze,tt,rt);for(var bt=we,It,st;we.prev!==we.next;){if(It=we.prev,st=we.next,rt?s(we,Ze,tt,rt):i(we)){De.push(It.i/ze|0),De.push(we.i/ze|0),De.push(st.i/ze|0),te(we),we=st.next,bt=st.next;continue}if(we=st,we===bt){ct?ct===1?(we=o(t(we),De,ze),n(we,De,ze,Ze,tt,rt,2)):ct===2&&l(we,De,ze,Ze,tt,rt):n(t(we),De,ze,Ze,tt,rt,1);break}}}}function i(we){var De=we.prev,ze=we,Ze=we.next;if(X(De,ze,Ze)>=0)return!1;for(var tt=De.x,rt=ze.x,ct=Ze.x,bt=De.y,It=ze.y,st=Ze.y,pr=tt<rt?tt<ct?tt:ct:rt<ct?rt:ct,Qt=bt<It?bt<st?bt:st:It<st?It:st,Jt=tt>rt?tt>ct?tt:ct:rt>ct?rt:ct,Nt=bt>It?bt>st?bt:st:It>st?It:st,Ar=Ze.next;Ar!==De;){if(Ar.x>=pr&&Ar.x<=Jt&&Ar.y>=Qt&&Ar.y<=Nt&&V(tt,bt,rt,It,ct,st,Ar.x,Ar.y)&&X(Ar.prev,Ar,Ar.next)>=0)return!1;Ar=Ar.next}return!0}function s(we,De,ze,Ze){var tt=we.prev,rt=we,ct=we.next;if(X(tt,rt,ct)>=0)return!1;for(var bt=tt.x,It=rt.x,st=ct.x,pr=tt.y,Qt=rt.y,Jt=ct.y,Nt=bt<It?bt<st?bt:st:It<st?It:st,Ar=pr<Qt?pr<Jt?pr:Jt:Qt<Jt?Qt:Jt,cn=bt>It?bt>st?bt:st:It>st?It:st,Mr=pr>Qt?pr>Jt?pr:Jt:Qt>Jt?Qt:Jt,_r=U(Nt,Ar,De,ze,Ze),Gn=U(cn,Mr,De,ze,Ze),yr=we.prevZ,vr=we.nextZ;yr&&yr.z>=_r&&vr&&vr.z<=Gn;){if(yr.x>=Nt&&yr.x<=cn&&yr.y>=Ar&&yr.y<=Mr&&yr!==tt&&yr!==ct&&V(bt,pr,It,Qt,st,Jt,yr.x,yr.y)&&X(yr.prev,yr,yr.next)>=0||(yr=yr.prevZ,vr.x>=Nt&&vr.x<=cn&&vr.y>=Ar&&vr.y<=Mr&&vr!==tt&&vr!==ct&&V(bt,pr,It,Qt,st,Jt,vr.x,vr.y)&&X(vr.prev,vr,vr.next)>=0))return!1;vr=vr.nextZ}for(;yr&&yr.z>=_r;){if(yr.x>=Nt&&yr.x<=cn&&yr.y>=Ar&&yr.y<=Mr&&yr!==tt&&yr!==ct&&V(bt,pr,It,Qt,st,Jt,yr.x,yr.y)&&X(yr.prev,yr,yr.next)>=0)return!1;yr=yr.prevZ}for(;vr&&vr.z<=Gn;){if(vr.x>=Nt&&vr.x<=cn&&vr.y>=Ar&&vr.y<=Mr&&vr!==tt&&vr!==ct&&V(bt,pr,It,Qt,st,Jt,vr.x,vr.y)&&X(vr.prev,vr,vr.next)>=0)return!1;vr=vr.nextZ}return!0}function o(we,De,ze){var Ze=we;do{var tt=Ze.prev,rt=Ze.next.next;!ue(tt,rt)&&K(tt,Ze,Ze.next,rt)&&de(tt,rt)&&de(rt,tt)&&(De.push(tt.i/ze|0),De.push(Ze.i/ze|0),De.push(rt.i/ze|0),te(Ze),te(Ze.next),Ze=we=rt),Ze=Ze.next}while(Ze!==we);return t(Ze)}function l(we,De,ze,Ze,tt,rt){var ct=we;do{for(var bt=ct.next.next;bt!==ct.prev;){if(ct.i!==bt.i&&G(ct,bt)){var It=pe(ct,bt);ct=t(ct,ct.next),It=t(It,It.next),n(ct,De,ze,Ze,tt,rt,0),n(It,De,ze,Ze,tt,rt,0);return}bt=bt.next}ct=ct.next}while(ct!==we)}function f(we,De,ze,Ze){var tt=[],rt,ct,bt,It,st;for(rt=0,ct=De.length;rt<ct;rt++)bt=De[rt]*Ze,It=rt<ct-1?De[rt+1]*Ze:we.length,st=e(we,bt,It,Ze,!1),st===st.next&&(st.steiner=!0),tt.push($(st));for(tt.sort(A),rt=0;rt<tt.length;rt++)ze=v(tt[rt],ze);return ze}function A(we,De){return we.x-De.x}function v(we,De){var ze=T(we,De);if(!ze)return De;var Ze=pe(ze,we);return t(Ze,Ze.next),t(ze,ze.next)}function T(we,De){var ze=De,Ze=we.x,tt=we.y,rt=-1/0,ct;do{if(tt<=ze.y&&tt>=ze.next.y&&ze.next.y!==ze.y){var bt=ze.x+(tt-ze.y)*(ze.next.x-ze.x)/(ze.next.y-ze.y);if(bt<=Ze&&bt>rt&&(rt=bt,ct=ze.x<ze.next.x?ze:ze.next,bt===Ze))return ct}ze=ze.next}while(ze!==De);if(!ct)return null;var It=ct,st=ct.x,pr=ct.y,Qt=1/0,Jt;ze=ct;do Ze>=ze.x&&ze.x>=st&&Ze!==ze.x&&V(tt<pr?Ze:rt,tt,st,pr,tt<pr?rt:Ze,tt,ze.x,ze.y)&&(Jt=Math.abs(tt-ze.y)/(Ze-ze.x),de(ze,we)&&(Jt<Qt||Jt===Qt&&(ze.x>ct.x||ze.x===ct.x&&I(ct,ze)))&&(ct=ze,Qt=Jt)),ze=ze.next;while(ze!==It);return ct}function I(we,De){return X(we.prev,we,De.prev)<0&&X(De.next,we,we.next)<0}function F(we,De,ze,Ze){var tt=we;do tt.z===0&&(tt.z=U(tt.x,tt.y,De,ze,Ze)),tt.prevZ=tt.prev,tt.nextZ=tt.next,tt=tt.next;while(tt!==we);tt.prevZ.nextZ=null,tt.prevZ=null,N(tt)}function N(we){var De,ze,Ze,tt,rt,ct,bt,It,st=1;do{for(ze=we,we=null,rt=null,ct=0;ze;){for(ct++,Ze=ze,bt=0,De=0;De<st&&(bt++,Ze=Ze.nextZ,!!Ze);De++);for(It=st;bt>0||It>0&&Ze;)bt!==0&&(It===0||!Ze||ze.z<=Ze.z)?(tt=ze,ze=ze.nextZ,bt--):(tt=Ze,Ze=Ze.nextZ,It--),rt?rt.nextZ=tt:we=tt,tt.prevZ=rt,rt=tt;ze=Ze}rt.nextZ=null,st*=2}while(ct>1);return we}function U(we,De,ze,Ze,tt){return we=(we-ze)*tt|0,De=(De-Ze)*tt|0,we=(we|we<<8)&16711935,we=(we|we<<4)&252645135,we=(we|we<<2)&858993459,we=(we|we<<1)&1431655765,De=(De|De<<8)&16711935,De=(De|De<<4)&252645135,De=(De|De<<2)&858993459,De=(De|De<<1)&1431655765,we|De<<1}function $(we){var De=we,ze=we;do(De.x<ze.x||De.x===ze.x&&De.y<ze.y)&&(ze=De),De=De.next;while(De!==we);return ze}function V(we,De,ze,Ze,tt,rt,ct,bt){return(tt-ct)*(De-bt)>=(we-ct)*(rt-bt)&&(we-ct)*(Ze-bt)>=(ze-ct)*(De-bt)&&(ze-ct)*(rt-bt)>=(tt-ct)*(Ze-bt)}function G(we,De){return we.next.i!==De.i&&we.prev.i!==De.i&&!Ue(we,De)&&(de(we,De)&&de(De,we)&&me(we,De)&&(X(we.prev,we,De.prev)||X(we,De.prev,De))||ue(we,De)&&X(we.prev,we,we.next)>0&&X(De.prev,De,De.next)>0)}function X(we,De,ze){return(De.y-we.y)*(ze.x-De.x)-(De.x-we.x)*(ze.y-De.y)}function ue(we,De){return we.x===De.x&&we.y===De.y}function K(we,De,ze,Ze){var tt=Ee(X(we,De,ze)),rt=Ee(X(we,De,Ze)),ct=Ee(X(ze,Ze,we)),bt=Ee(X(ze,Ze,De));return!!(tt!==rt&&ct!==bt||tt===0&&se(we,ze,De)||rt===0&&se(we,Ze,De)||ct===0&&se(ze,we,Ze)||bt===0&&se(ze,De,Ze))}function se(we,De,ze){return De.x<=Math.max(we.x,ze.x)&&De.x>=Math.min(we.x,ze.x)&&De.y<=Math.max(we.y,ze.y)&&De.y>=Math.min(we.y,ze.y)}function Ee(we){return we>0?1:we<0?-1:0}function Ue(we,De){var ze=we;do{if(ze.i!==we.i&&ze.next.i!==we.i&&ze.i!==De.i&&ze.next.i!==De.i&&K(ze,ze.next,we,De))return!0;ze=ze.next}while(ze!==we);return!1}function de(we,De){return X(we.prev,we,we.next)<0?X(we,De,we.next)>=0&&X(we,we.prev,De)>=0:X(we,De,we.prev)<0||X(we,we.next,De)<0}function me(we,De){var ze=we,Ze=!1,tt=(we.x+De.x)/2,rt=(we.y+De.y)/2;do ze.y>rt!=ze.next.y>rt&&ze.next.y!==ze.y&&tt<(ze.next.x-ze.x)*(rt-ze.y)/(ze.next.y-ze.y)+ze.x&&(Ze=!Ze),ze=ze.next;while(ze!==we);return Ze}function pe(we,De){var ze=new Ce(we.i,we.x,we.y),Ze=new Ce(De.i,De.x,De.y),tt=we.next,rt=De.prev;return we.next=De,De.prev=we,ze.next=tt,tt.prev=ze,Ze.next=ze,ze.prev=Ze,rt.next=Ze,Ze.prev=rt,Ze}function W(we,De,ze,Ze){var tt=new Ce(we,De,ze);return Ze?(tt.next=Ze.next,tt.prev=Ze,Ze.next.prev=tt,Ze.next=tt):(tt.prev=tt,tt.next=tt),tt}function te(we){we.next.prev=we.prev,we.prev.next=we.next,we.prevZ&&(we.prevZ.nextZ=we.nextZ),we.nextZ&&(we.nextZ.prevZ=we.prevZ)}function Ce(we,De,ze){this.i=we,this.x=De,this.y=ze,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}r.deviation=function(we,De,ze,Ze){var tt=De&&De.length,rt=tt?De[0]*ze:we.length,ct=Math.abs(Qe(we,0,rt,ze));if(tt)for(var bt=0,It=De.length;bt<It;bt++){var st=De[bt]*ze,pr=bt<It-1?De[bt+1]*ze:we.length;ct-=Math.abs(Qe(we,st,pr,ze))}var Qt=0;for(bt=0;bt<Ze.length;bt+=3){var Jt=Ze[bt]*ze,Nt=Ze[bt+1]*ze,Ar=Ze[bt+2]*ze;Qt+=Math.abs((we[Jt]-we[Ar])*(we[Nt+1]-we[Jt+1])-(we[Jt]-we[Nt])*(we[Ar+1]-we[Jt+1]))}return ct===0&&Qt===0?0:Math.abs((Qt-ct)/ct)};function Qe(we,De,ze,Ze){for(var tt=0,rt=De,ct=ze-Ze;rt<ze;rt+=Ze)tt+=(we[ct]-we[rt])*(we[rt+1]+we[ct+1]),ct=rt;return tt}return r.flatten=function(we){for(var De=we[0][0].length,ze={vertices:[],holes:[],dimensions:De},Ze=0,tt=0;tt<we.length;tt++){for(var rt=0;rt<we[tt].length;rt++)for(var ct=0;ct<De;ct++)ze.vertices.push(we[tt][rt][ct]);tt>0&&(Ze+=we[tt-1].length,ze.holes.push(Ze))}return ze},L0.exports}var Xie=$ie();const eL=uh(Xie),k0=uw.CLOCKWISE,rB=uw.COUNTER_CLOCKWISE,Gu={};function qie(r){if(r=r&&r.positions||r,!Array.isArray(r)&&!ArrayBuffer.isView(r))throw new Error("invalid polygon")}function BA(r){return"positions"in r?r.positions:r}function Tm(r){return"holeIndices"in r?r.holeIndices:null}function Jie(r){return Array.isArray(r[0])}function Kie(r){return r.length>=1&&r[0].length>=2&&Number.isFinite(r[0][0])}function Zie(r){const e=r[0],t=r[r.length-1];return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Yie(r,e,t,n){for(let i=0;i<e;i++)if(r[t+i]!==r[n-e+i])return!1;return!0}function nB(r,e,t,n,i){let s=e;const o=t.length;for(let l=0;l<o;l++)for(let f=0;f<n;f++)r[s++]=t[l][f]||0;if(!Zie(t))for(let l=0;l<n;l++)r[s++]=t[0][l]||0;return Gu.start=e,Gu.end=s,Gu.size=n,fw(r,i,Gu),s}function iB(r,e,t,n,i=0,s,o){s=s||t.length;const l=s-i;if(l<=0)return e;let f=e;for(let A=0;A<l;A++)r[f++]=t[i+A];
3910if(!Yie(t,n,i,s))for(let A=0;A<n;A++)r[f++]=t[i+A];return Gu.start=e,Gu.end=f,Gu.size=n,fw(r,o,Gu),f}function tL(r,e){qie(r);const t=[],n=[];if("positions"in r){const{positions:i,holeIndices:s}=r;if(s){let o=0;for(let l=0;l<=s.length;l++)o=iB(t,o,i,e,s[l-1],s[l],l===0?k0:rB),n.push(o);return n.pop(),{positions:t,holeIndices:n}}r=i}if(!Jie(r))return iB(t,0,r,e,0,t.length,k0),t;if(!Kie(r)){let i=0;for(const[s,o]of r.entries())i=nB(t,i,o,e,s===0?k0:rB),n.push(i);return n.pop(),{positions:t,holeIndices:n}}return nB(t,0,r,e,k0),t}function rb(r,e,t){const n=r.length/3;let i=0;for(let s=0;s<n;s++){const o=(s+1)%n;i+=r[s*3+e]*r[o*3+t],i-=r[o*3+e]*r[s*3+t]}return Math.abs(i/2)}function sB(r,e,t,n){const i=r.length/3;for(let s=0;s<i;s++){const o=s*3,l=r[o+0],f=r[o+1],A=r[o+2];r[o+e]=l,r[o+t]=f,r[o+n]=A}}function Qie(r,e,t,n){let i=Tm(r);i&&(i=i.map(l=>l/e));let s=BA(r);const o=n&&e===3;if(t){const l=s.length;s=s.slice();const f=[];for(let A=0;A<l;A+=e){f[0]=s[A],f[1]=s[A+1],o&&(f[2]=s[A+2]);const v=t(f);s[A]=v[0],s[A+1]=v[1],o&&(s[A+2]=v[2])}}if(o){const l=rb(s,0,1),f=rb(s,0,2),A=rb(s,1,2);if(!l&&!f&&!A)return[];l>f&&l>A||(f>A?(t||(s=s.slice()),sB(s,0,2,1)):(t||(s=s.slice()),sB(s,2,0,1)))}return eL(s,i,e)}class ese extends XD{constructor(e){const{fp64:t,IndexType:n=Uint32Array}=e;super({...e,attributes:{positions:{size:3,type:t?Float64Array:Float32Array},vertexValid:{type:Uint16Array,size:1},indices:{type:n,size:1}}})}get(e){const{attributes:t}=this;return e==="indices"?t.indices&&t.indices.subarray(0,this.vertexCount):t[e]}updateGeometry(e){super.updateGeometry(e);const t=this.buffers.indices;if(t)this.vertexCount=(t.value||t).length;else if(this.data&&!this.getGeometry)throw new Error("missing indices buffer")}normalizeGeometry(e){if(this.normalize){const t=tL(e,this.positionSize);return this.opts.resolution?JF(BA(t),Tm(t),{size:this.positionSize,gridResolution:this.opts.resolution,edgeTypes:!0}):this.opts.wrapLongitude?Iie(BA(t),Tm(t),{size:this.positionSize,maxLatitude:86,edgeTypes:!0}):t}return e}getGeometrySize(e){if(oB(e)){let t=0;for(const n of e)t+=this.getGeometrySize(n);return t}return BA(e).length/this.positionSize}getGeometryFromBuffer(e){return this.normalize||!this.buffers.indices?super.getGeometryFromBuffer(e):null}updateGeometryAttributes(e,t){if(e&&oB(e))for(const n of e){const i=this.getGeometrySize(n);t.geometrySize=i,this.updateGeometryAttributes(n,t),t.vertexStart+=i,t.indexStart=this.indexStarts[t.geometryIndex+1]}else{const n=e;this._updateIndices(n,t),this._updatePositions(n,t),this._updateVertexValid(n,t)}}_updateIndices(e,{geometryIndex:t,vertexStart:n,indexStart:i}){const{attributes:s,indexStarts:o,typedArrayManager:l}=this;let f=s.indices;if(!f||!e)return;let A=i;const v=Qie(e,this.positionSize,this.opts.preproject,this.opts.full3d);f=l.allocate(f,i+v.length,{copy:!0});for(let T=0;T<v.length;T++)f[A++]=v[T]+n;o[t+1]=i+v.length,s.indices=f}_updatePositions(e,{vertexStart:t,geometrySize:n}){const{attributes:{positions:i},positionSize:s}=this;if(!i||!e)return;const o=BA(e);for(let l=t,f=0;f<n;l++,f++){const A=o[f*s],v=o[f*s+1],T=s>2?o[f*s+2]:0;i[l*3]=A,i[l*3+1]=v,i[l*3+2]=T}}_updateVertexValid(e,{vertexStart:t,geometrySize:n}){const{positionSize:i}=this,s=this.attributes.vertexValid,o=e&&Tm(e);if(e&&e.edgeTypes?s.set(e.edgeTypes,t):s.fill(1,t,t+n),o)for(let l=0;l<o.length;l++)s[t+o[l]/i-1]=0;s[t+n-1]=0}}function oB(r){return Array.isArray(r)&&r.length>0&&!Number.isFinite(r[0])}const aB=`uniform solidPolygonUniforms { 3911 bool extruded; 3912 bool isWireframe; 3913 float elevationScale; 3914} solidPolygon; 3915`,tse={name:"solidPolygon",vs:aB,fs:aB,uniformTypes:{extruded:"f32",isWireframe:"f32",elevationScale:"f32"}},rL=`in vec4 fillColors; 3916in vec4 lineColors; 3917in vec3 pickingColors; 3918out vec4 vColor; 3919struct PolygonProps { 3920vec3 positions; 3921vec3 positions64Low; 3922vec3 normal; 3923float elevations; 3924}; 3925vec3 project_offset_normal(vec3 vector) { 3926if (project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT || 3927project.coordinateSystem == COORDINATE_SYSTEM_LNGLAT_OFFSETS) { 3928return normalize(vector * project.commonUnitsPerWorldUnit); 3929} 3930return project_normal(vector); 3931} 3932void calculatePosition(PolygonProps props) { 3933vec3 pos = props.positions; 3934vec3 pos64Low = props.positions64Low; 3935vec3 normal = props.normal; 3936vec4 colors = solidPolygon.isWireframe ? lineColors : fillColors; 3937geometry.worldPosition = props.positions; 3938geometry.pickingColor = pickingColors; 3939if (solidPolygon.extruded) { 3940pos.z += props.elevations * solidPolygon.elevationScale; 3941} 3942gl_Position = project_position_to_clipspace(pos, pos64Low, vec3(0.), geometry.position); 3943DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 3944if (solidPolygon.extruded) { 3945#ifdef IS_SIDE_VERTEX 3946normal = project_offset_normal(normal); 3947#else 3948normal = project_normal(normal); 3949#endif 3950geometry.normal = normal; 3951vec3 lightColor = lighting_getLightColor(colors.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal); 3952vColor = vec4(lightColor, colors.a * layer.opacity); 3953} else { 3954vColor = vec4(colors.rgb, colors.a * layer.opacity); 3955} 3956DECKGL_FILTER_COLOR(vColor, geometry); 3957} 3958`,rse=`#version 300 es 3959#define SHADER_NAME solid-polygon-layer-vertex-shader 3960in vec3 vertexPositions; 3961in vec3 vertexPositions64Low; 3962in float elevations; 3963${rL} 3964void main(void) { 3965PolygonProps props; 3966props.positions = vertexPositions; 3967props.positions64Low = vertexPositions64Low; 3968props.elevations = elevations; 3969props.normal = vec3(0.0, 0.0, 1.0); 3970calculatePosition(props); 3971} 3972`,nse=`#version 300 es 3973#define SHADER_NAME solid-polygon-layer-vertex-shader-side 3974#define IS_SIDE_VERTEX 3975in vec2 positions; 3976in vec3 vertexPositions; 3977in vec3 nextVertexPositions; 3978in vec3 vertexPositions64Low; 3979in vec3 nextVertexPositions64Low; 3980in float elevations; 3981in float instanceVertexValid; 3982${rL} 3983void main(void) { 3984if(instanceVertexValid < 0.5){ 3985gl_Position = vec4(0.); 3986return; 3987} 3988PolygonProps props; 3989vec3 pos; 3990vec3 pos64Low; 3991vec3 nextPos; 3992vec3 nextPos64Low; 3993#if RING_WINDING_ORDER_CW == 1 3994pos = vertexPositions; 3995pos64Low = vertexPositions64Low;
3996nextPos = nextVertexPositions; 3997nextPos64Low = nextVertexPositions64Low; 3998#else 3999pos = nextVertexPositions; 4000pos64Low = nextVertexPositions64Low; 4001nextPos = vertexPositions; 4002nextPos64Low = vertexPositions64Low; 4003#endif 4004props.positions = mix(pos, nextPos, positions.x); 4005props.positions64Low = mix(pos64Low, nextPos64Low, positions.x); 4006props.normal = vec3( 4007pos.y - nextPos.y + (pos64Low.y - nextPos64Low.y), 4008nextPos.x - pos.x + (nextPos64Low.x - pos64Low.x), 40090.0); 4010props.elevations = elevations * positions.y; 4011calculatePosition(props); 4012} 4013`,ise=`#version 300 es 4014#define SHADER_NAME solid-polygon-layer-fragment-shader 4015precision highp float; 4016in vec4 vColor; 4017out vec4 fragColor; 4018void main(void) { 4019fragColor = vColor; 4020geometry.uv = vec2(0.); 4021DECKGL_FILTER_COLOR(fragColor, geometry); 4022} 4023`,u_=[0,0,0,255],sse={filled:!0,extruded:!1,wireframe:!1,_normalize:!0,_windingOrder:"CW",_full3d:!1,elevationScale:{type:"number",min:0,value:1},getPolygon:{type:"accessor",value:r=>r.polygon},getElevation:{type:"accessor",value:1e3},getFillColor:{type:"accessor",value:u_},getLineColor:{type:"accessor",value:u_},material:!0},N0={enter:(r,e)=>e.length?e.subarray(e.length-r.length):r};class of extends Cs{getShaders(e){return super.getShaders({vs:e==="top"?rse:nse,fs:ise,defines:{RING_WINDING_ORDER_CW:!this.props._normalize&&this.props._windingOrder==="CCW"?0:1},modules:[Ls,M_,ma,tse]})}get wrapLongitude(){return!1}getBounds(){return this.getAttributeManager()?.getBounds(["vertexPositions"])}initializeState(){const{viewport:e}=this.context;let{coordinateSystem:t}=this.props;const{_full3d:n}=this.props;e.isGeospatial&&t===Qr.DEFAULT&&(t=Qr.LNGLAT);let i;t===Qr.LNGLAT&&(n?i=e.projectPosition.bind(e):i=e.projectFlat.bind(e)),this.setState({numInstances:0,polygonTesselator:new ese({preproject:i,fp64:this.use64bitPositions(),IndexType:Uint32Array})});const s=this.getAttributeManager(),o=!0;s.remove(["instancePickingColors"]),s.add({indices:{size:1,isIndexed:!0,update:this.calculateIndices,noAlloc:o},vertexPositions:{size:3,type:"float64",stepMode:"dynamic",fp64:this.use64bitPositions(),transition:N0,accessor:"getPolygon",update:this.calculatePositions,noAlloc:o,shaderAttributes:{nextVertexPositions:{vertexOffset:1}}},instanceVertexValid:{size:1,type:"uint16",stepMode:"instance",update:this.calculateVertexValid,noAlloc:o},elevations:{size:1,stepMode:"dynamic",transition:N0,accessor:"getElevation"},fillColors:{size:this.props.colorFormat.length,type:"unorm8",stepMode:"dynamic",transition:N0,accessor:"getFillColor",defaultValue:u_},lineColors:{size:this.props.colorFormat.length,type:"unorm8",stepMode:"dynamic",transition:N0,accessor:"getLineColor",defaultValue:u_},pickingColors:{size:4,type:"uint8",stepMode:"dynamic",accessor:(l,{index:f,target:A})=>this.encodePickingColor(l&&l.__source?l.__source.index:f,A)}})}getPickingInfo(e){const t=super.getPickingInfo(e),{index:n}=t,i=this.props.data;return i[0]&&i[0].__source&&(t.object=i.find(s=>s.__source.index===n)),t}disablePickingIndex(e){const t=this.props.data;if(t[0]&&t[0].__source)for(let n=0;n<t.length;n++)t[n].__source.index===e&&this._disablePickingIndex(n);else super.disablePickingIndex(e)}draw({uniforms:e}){const{extruded:t,filled:n,wireframe:i,elevationScale:s}=this.props,{topModel:o,sideModel:l,wireframeModel:f,polygonTesselator:A}=this.state,v={extruded:!!t,elevationScale:s,isWireframe:!1};f&&i&&(f.setInstanceCount(A.instanceCount-1),f.shaderInputs.setProps({solidPolygon:{...v,isWireframe:!0}}),f.draw(this.context.renderPass)),l&&n&&(l.setInstanceCount(A.instanceCount-1),l.shaderInputs.setProps({solidPolygon:v}),l.draw(this.context.renderPass)),o&&n&&(o.setVertexCount(A.vertexCount),o.shaderInputs.setProps({solidPolygon:v}),o.draw(this.context.renderPass))}updateState(e){super.updateState(e),this.updateGeometry(e);const{props:t,oldProps:n,changeFlags:i}=e,s=this.getAttributeManager();(i.extensionsChanged||t.filled!==n.filled||t.extruded!==n.extruded)&&(this.state.models?.forEach(l=>l.destroy()),this.setState(this._getModels()),s.invalidateAll())}updateGeometry({props:e,oldProps:t,changeFlags:n}){if(n.dataChanged||n.updateTriggersChanged&&(n.updateTriggersChanged.all||n.updateTriggersChanged.getPolygon)){const{polygonTesselator:s}=this.state,o=e.data.attributes||{};s.updateGeometry({data:e.data,normalize:e._normalize,geometryBuffer:o.getPolygon,buffers:o,getGeometry:e.getPolygon,positionFormat:e.positionFormat,wrapLongitude:e.wrapLongitude,resolution:this.context.viewport.resolution,fp64:this.use64bitPositions(),dataChanged:n.dataChanged,full3d:e._full3d}),this.setState({numInstances:s.instanceCount,startIndices:s.vertexStarts}),n.dataChanged||this.getAttributeManager().invalidateAll()}}_getModels(){const{id:e,filled:t,extruded:n}=this.props;let i,s,o;if(t){const l=this.getShaders("top");l.defines.NON_INSTANCED_MODEL=1;const f=this.getAttributeManager().getBufferLayouts({isInstanced:!1});i=new Di(this.context.device,{...l,id:`${e}-top`,topology:"triangle-list",bufferLayout:f,isIndexed:!0,userData:{excludeAttributes:{instanceVertexValid:!0}}})}if(n){const l=this.getAttributeManager().getBufferLayouts({isInstanced:!0});
4023s=new Di(this.context.device,{...this.getShaders("side"),id:`${e}-side`,bufferLayout:l,geometry:new Zs({topology:"triangle-strip",attributes:{positions:{size:2,value:new Float32Array([1,0,0,0,1,1,0,1])}}}),isInstanced:!0,userData:{excludeAttributes:{indices:!0}}}),o=new Di(this.context.device,{...this.getShaders("side"),id:`${e}-wireframe`,bufferLayout:l,geometry:new Zs({topology:"line-strip",attributes:{positions:{size:2,value:new Float32Array([1,0,0,0,0,1,1,1])}}}),isInstanced:!0,userData:{excludeAttributes:{indices:!0}}})}return{models:[s,o,i].filter(Boolean),topModel:i,sideModel:s,wireframeModel:o}}calculateIndices(e){const{polygonTesselator:t}=this.state;e.startIndices=t.indexStarts,e.value=t.get("indices")}calculatePositions(e){const{polygonTesselator:t}=this.state;e.startIndices=t.vertexStarts,e.value=t.get("positions")}calculateVertexValid(e){e.value=this.state.polygonTesselator.get("vertexValid")}}of.defaultProps=sse;of.layerName="SolidPolygonLayer";function nL({data:r,getIndex:e,dataRange:t,replace:n}){const{startRow:i=0,endRow:s=1/0}=t,o=r.length;let l=o,f=o;for(let I=0;I<o;I++){const F=e(r[I]);if(l>I&&F>=i&&(l=I),F>=s){f=I;break}}let A=l;const T=f-l!==n.length?r.slice(f):void 0;for(let I=0;I<n.length;I++)r[A++]=n[I];if(T){for(let I=0;I<T.length;I++)r[A++]=T[I];r.length=A}return{startRow:l,endRow:l+n.length}}const iL=[0,0,0,255],ose=[0,0,0,255],ase={stroked:!0,filled:!0,extruded:!1,elevationScale:1,wireframe:!1,_normalize:!0,_windingOrder:"CW",lineWidthUnits:"meters",lineWidthScale:1,lineWidthMinPixels:0,lineWidthMaxPixels:Number.MAX_SAFE_INTEGER,lineJointRounded:!1,lineMiterLimit:4,getPolygon:{type:"accessor",value:r=>r.polygon},getFillColor:{type:"accessor",value:ose},getLineColor:{type:"accessor",value:iL},getLineWidth:{type:"accessor",value:1},getElevation:{type:"accessor",value:1e3},material:!0};class af extends Ss{initializeState(){this.state={paths:[],pathsDiff:null},this.props.getLineDashArray&&Zr.removed("getLineDashArray","PathStyleExtension")()}updateState({changeFlags:e}){const t=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getPolygon);if(t&&Array.isArray(e.dataChanged)){const n=this.state.paths.slice(),i=e.dataChanged.map(s=>nL({data:n,getIndex:o=>o.__source.index,dataRange:s,replace:this._getPaths(s)}));this.setState({paths:n,pathsDiff:i})}else t&&this.setState({paths:this._getPaths(),pathsDiff:null})}_getPaths(e={}){const{data:t,getPolygon:n,positionFormat:i,_normalize:s}=this.props,o=[],l=i==="XY"?2:3,{startRow:f,endRow:A}=e,{iterable:v,objectInfo:T}=dc(t,f,A);for(const I of v){T.index++;let F=n(I,T);s&&(F=tL(F,l));const{holeIndices:N}=F,U=F.positions||F;if(N)for(let $=0;$<=N.length;$++){const V=U.slice(N[$-1]||0,N[$]||U.length);o.push(this.getSubLayerRow({path:V},I,T.index))}else o.push(this.getSubLayerRow({path:U},I,T.index))}return o}renderLayers(){const{data:e,_dataDiff:t,stroked:n,filled:i,extruded:s,wireframe:o,_normalize:l,_windingOrder:f,elevationScale:A,transitions:v,positionFormat:T}=this.props,{lineWidthUnits:I,lineWidthScale:F,lineWidthMinPixels:N,lineWidthMaxPixels:U,lineJointRounded:$,lineMiterLimit:V,lineDashJustified:G}=this.props,{getFillColor:X,getLineColor:ue,getLineWidth:K,getLineDashArray:se,getElevation:Ee,getPolygon:Ue,updateTriggers:de,material:me}=this.props,{paths:pe,pathsDiff:W}=this.state,te=this.getSubLayerClass("fill",of),Ce=this.getSubLayerClass("stroke",sf),Qe=this.shouldRenderSubLayer("fill",pe)&&new te({_dataDiff:t,extruded:s,elevationScale:A,filled:i,wireframe:o,_normalize:l,_windingOrder:f,getElevation:Ee,getFillColor:X,getLineColor:s&&o?ue:iL,material:me,transitions:v},this.getSubLayerProps({id:"fill",updateTriggers:de&&{getPolygon:de.getPolygon,getElevation:de.getElevation,getFillColor:de.getFillColor,lineColors:s&&o,getLineColor:de.getLineColor}}),{data:e,positionFormat:T,getPolygon:Ue}),we=!s&&n&&this.shouldRenderSubLayer("stroke",pe)&&new Ce({_dataDiff:W&&(()=>W),widthUnits:I,widthScale:F,widthMinPixels:N,widthMaxPixels:U,jointRounded:$,miterLimit:V,dashJustified:G,_pathType:"loop",transitions:v&&{getWidth:v.getLineWidth,getColor:v.getLineColor,getPath:v.getPolygon},getColor:this.getSubLayerAccessor(ue),getWidth:this.getSubLayerAccessor(K),getDashArray:this.getSubLayerAccessor(se)}
4023,this.getSubLayerProps({id:"stroke",updateTriggers:de&&{getWidth:de.getLineWidth,getColor:de.getLineColor,getDashArray:de.getLineDashArray}}),{data:pe,positionFormat:T,getPath:De=>De.path});return[!s&&Qe,we,s&&Qe]}}af.layerName="PolygonLayer";af.defaultProps=ase;function lse(r,e){if(!r)return null;const t="startIndices"in r?r.startIndices[e]:e,n=r.featureIds.value[t];return t!==-1?cse(r,n,t):null}function cse(r,e,t){const n={properties:{...r.properties[e]}};for(const i in r.numericProps)n.properties[i]=r.numericProps[i].value[t];return n}function use(r,e){const t={points:null,lines:null,polygons:null};for(const n in t){const i=r[n].globalFeatureIds.value;t[n]=new Uint8ClampedArray(i.length*4);const s=[];for(let o=0;o<i.length;o++)e(i[o],s),t[n][o*4+0]=s[0],t[n][o*4+1]=s[1],t[n][o*4+2]=s[2],t[n][o*4+3]=255}return t}const lB=`uniform sdfUniforms { 4024 float gamma; 4025 bool enabled; 4026 float buffer; 4027 float outlineBuffer; 4028 vec4 outlineColor; 4029} sdf; 4030`,fse={name:"sdf",vs:lB,fs:lB,uniformTypes:{gamma:"f32",enabled:"f32",buffer:"f32",outlineBuffer:"f32",outlineColor:"vec4<f32>"}},hse=`#version 300 es 4031#define SHADER_NAME multi-icon-layer-fragment-shader 4032precision highp float; 4033uniform sampler2D iconsTexture; 4034in vec4 vColor; 4035in vec2 vTextureCoords; 4036in vec2 uv; 4037out vec4 fragColor; 4038void main(void) { 4039geometry.uv = uv; 4040if (!bool(picking.isActive)) { 4041float alpha = texture(iconsTexture, vTextureCoords).a; 4042vec4 color = vColor; 4043if (sdf.enabled) { 4044float distance = alpha; 4045alpha = smoothstep(sdf.buffer - sdf.gamma, sdf.buffer + sdf.gamma, distance); 4046if (sdf.outlineBuffer > 0.0) { 4047float inFill = alpha; 4048float inBorder = smoothstep(sdf.outlineBuffer - sdf.gamma, sdf.outlineBuffer + sdf.gamma, distance); 4049color = mix(sdf.outlineColor, vColor, inFill); 4050alpha = inBorder; 4051} 4052} 4053float a = alpha * color.a; 4054if (a < icon.alphaCutoff) { 4055discard; 4056} 4057fragColor = vec4(color.rgb, a * layer.opacity); 4058} 4059DECKGL_FILTER_COLOR(fragColor, geometry); 4060} 4061`,nb=192/256,cB=[],dse={getIconOffsets:{type:"accessor",value:r=>r.offsets},alphaCutoff:.001,smoothing:.1,outlineWidth:0,outlineColor:{type:"color",value:[0,0,0,255]}};class q_ extends Sp{getShaders(){const e=super.getShaders();return{...e,modules:[...e.modules,fse],fs:hse}}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({instanceOffsets:{size:2,accessor:"getIconOffsets"},instancePickingColors:{type:"uint8",size:3,accessor:(t,{index:n,target:i})=>this.encodePickingColor(n,i)}})}updateState(e){super.updateState(e);const{props:t,oldProps:n}=e;let{outlineColor:i}=t;i!==n.outlineColor&&(i=i.map(s=>s/255),i[3]=Number.isFinite(i[3])?i[3]:1,this.setState({outlineColor:i})),!t.sdf&&t.outlineWidth&&Zr.warn(`${this.id}: fontSettings.sdf is required to render outline`)()}draw(e){const{sdf:t,smoothing:n,outlineWidth:i}=this.props,{outlineColor:s}=this.state,o=i?Math.max(n,nb*(1-i)):-1,l=this.state.model,f={buffer:nb,outlineBuffer:o,gamma:n,enabled:!!t,outlineColor:s};if(l.shaderInputs.setProps({sdf:f}),super.draw(e),t&&i){const{iconManager:A}=this.state;A.getTexture()&&(l.shaderInputs.setProps({sdf:{...f,outlineBuffer:nb}}),l.draw(this.context.renderPass))}}getInstanceOffset(e){return e?Array.from(e).flatMap(t=>super.getInstanceOffset(t)):cB}getInstanceColorMode(e){return 1}getInstanceIconFrame(e){return e?Array.from(e).flatMap(t=>super.getInstanceIconFrame(t)):cB}}q_.defaultProps=dse;q_.layerName="MultiIconLayer";const WA=1e20;class pse{constructor({fontSize:e=24,buffer:t=3,radius:n=8,cutoff:i=.25,fontFamily:s="sans-serif",fontWeight:o="normal",fontStyle:l="normal"}={}){this.buffer=t,this.cutoff=i,this.radius=n;const f=this.size=e+t*4,A=this._createCanvas(f),v=this.ctx=A.getContext("2d",{willReadFrequently:!0});v.font=`${l} ${o} ${e}px ${s}`,v.textBaseline="alphabetic",v.textAlign="left",v.fillStyle="black",this.gridOuter=new Float64Array(f*f),this.gridInner=new Float64Array(f*f),this.f=new Float64Array(f),this.z=new Float64Array(f+1),this.v=new Uint16Array(f)}_createCanvas(e){const t=document.createElement("canvas");return t.width=t.height=e,t}draw(e){const{width:t,actualBoundingBoxAscent:n,actualBoundingBoxDescent:i,actualBoundingBoxLeft:s,actualBoundingBoxRight:o}=this.ctx.measureText(e),l=Math.ceil(n),f=0,A=Math.max(0,Math.min(this.size-this.buffer,Math.ceil(o-s))),v=Math.min(this.size-this.buffer,l+Math.ceil(i)),T=A+2*this.buffer,I=v+2*this.buffer,F=Math.max(T*I,0),N=new Uint8ClampedArray(F),U={data:N,width:T,height:I,glyphWidth:A,glyphHeight:v,glyphTop:l,glyphLeft:f,glyphAdvance:t};if(A===0||v===0)return U;const{ctx:$,buffer:V,gridInner:G,gridOuter:X}=this;$.clearRect(V,V,A,v),$.fillText(e,V,V+l);const ue=$.getImageData(V,V,A,v);X.fill(WA,0,F),G.fill(0,0,F);for(let K=0;K<v;K++)for(let se=0;se<A;se++){const Ee=ue.data[4*(K*A+se)+3]/255;if(Ee===0)continue;const Ue=(K+V)*T+se+V;if(Ee===1)X[Ue]=0,G[Ue]=WA;else{const de=.5-Ee;X[Ue]=de>0?de*de:0,G[Ue]=de<0?de*de:0}}uB(X,0,0,T,I,T,this.f,this.v,this.z),uB(G,V,V,A,v,T,this.f,this.v,this.z);for(let K=0;K<F;K++){const se=Math.sqrt(X[K])-Math.sqrt(G[K]);N[K]=Math.round(255-255*(se/this.radius+this.cutoff))}return U}}function uB(r,e,t,n,i,s,o,l,f){for(let A=e;A<e+n;A++)fB(r,t*s+A,s,i,o,l,f);for(let A=t;A<t+i;A++)fB(r,A*s+e,1,n,o,l,f)}function fB(r,e,t,n,i,s,o){s[0]=0,o[0]=-WA,o[1]=WA,i[0]=r[e];for(let l=1,f=0,A=0;l<n;l++){i[l]=r[e+l*t];const v=l*l;do{const T=s[f];A=(i[l]-i[T]+v-T*T)/(l-T)/2}while(A<=o[f]&&--f>-1);f++,s[f]=l,o[f]=A,o[f+1]=WA}for(let l=0,f=0;l<n;l++){for(;o[f+1]<l;)f++;const A=s[f],v=l-A;r[e+l*t]=i[A]+v*v}}const Ase=32,gse=[];function mse(r){return Math.pow(2,Math.ceil(Math.log2(r)))}function _se({characterSet:r,getFontWidth:e,fontHeight:t,buffer:n,maxCanvasWidth:i,mapping:s={},xOffset:o=0,yOffset:l=0}){let f=0,A=o;const v=t+n*2;for(const T of r)if(!s[T]){const I=e(T);A+I+n*2>i&&(A=0,f++),s[T]={x:A+n,y:l+f*v+n,width:I,height:v,layoutWidth:I,layoutHeight:t},A+=I+n*2}return{mapping:s,xOffset:A,yOffset:l+f*v,canvasHeight:mse(l+(f+1)*v)}}function sL(r,e,t,n){let i=0;for(let s=e;s<t;s++){const o=r[s];i+=n[o]?.layoutWidth||0}return i}function oL(r,e,t,n,i,s){let o=e,l=0;for(let f=e;f<t;f++){const A=sL(r,f,f+1,i);l+A>n&&(o<f&&s.push(f),o=f,l=0),l+=A}return l}function yse(r,e,t,n,i,s){let o=e,l=e,f=e,A=0;for(let v=e;v<t;v++)if((r[v]===" "||r[v+1]===" "||v+1===t)&&(f=v+1),f>l){let T=sL(r,l,f,i);A+T>n&&(o<l&&(s.push(l),o=l,A=0),T>n&&(T=oL(r,l,f,n,i,s),o=s[s.length-1])),l=f,A+=T}return A}function vse(r,e,t,n,i=0,s){s===void 0&&(s=r.length);const o=[];return e==="break-all"?oL(r,i,s,t,n,o):yse(r,i,s,t,n,o),o}function bse(r,e,t,n,i,s){let o=0,l=0;for(let f=e;f<t;f++){const A=r[f],v=n[A];v?(l||(l=v.layoutHeight),i[f]=o+v.layoutWidth/2,o+=v.layoutWidth):(Zr.warn(`Missing character: ${A} (${A.codePointAt(0)})`)(),i[f]=o,o+=Ase)}s[0]=o,s[1]=l}function xse(r,e,t,n,i){const s=Array.from(r),o=s.length,l=new Array(o),f=new Array(o),A=new Array(o),v=(t==="break-word"||t==="break-all")&&isFinite(n)&&n>0,T=[0,0],I=[0,0];let F=0,N=0,U=0;for(let $=0;$<=o;$++){const V=s[$];if((V===` 4062`||$===o)&&(U=$),U>N){const G=v?vse(s,t,n,i,N,U):gse;for(let X=0;X<=G.length;X++){const ue=X===0?N:G[X-1],K=X<G.length?G[X]:U;bse(s,ue,K,i,l,I);for(let se=ue;se<K;se++){l[se]-I[0]/2;const Ee=s[se],Ue=i[Ee]?.layoutOffsetY||0;f[se]=F+I[1]/2+Ue,A[se]=I[0]}F=F+I[1]*e,T[0]=Math.max(T[0],I[0])}N=U}V===` 4063`&&(l[N]=0,f[N]=0,A[N]=0,N++)}return T[1]=F,{x:l,y:f,rowWidth:A,size:T}}function wse({value:r,length:e,stride:t,offset:n,startIndices:i,characterSet:s}){const o=r.BYTES_PER_ELEMENT,l=t?t/o:1,f=n?n/o:0,A=i[e]||Math.ceil((r.length-f)/l),v=s&&new Set,T=new Array(e);let I=r;if(l>1||f>0){const F=r.constructor;I=new F(A);for(let N=0;N<A;N++)I[N]=r[N*l+f]}for(let F=0;F<e;F++){const N=i[F],U=i[F+1]||A,$=I.subarray(N,U);T[F]=String.fromCodePoint.apply(null,$),v&&$.forEach(v.add,v)}if(v)for(const F of v)s.add(String.fromCodePoint(F));return{texts:T,characterCount:A}}class aL{constructor(e=5){this._cache={},this._order=[],this.limit=e}get(e){const t=this._cache[e];return t&&(this._deleteOrder(e),this._appendOrder(e)),t}set(e,t){this._cache[e]?(this.delete(e),this._cache[e]=t,this._appendOrder(e)):(Object.keys(this._cache).length===this.limit&&this.delete(this._order[0]),this._cache[e]=t,this._appendOrder(e))}delete(e){this._cache[e]&&(delete this._cache[e],this._deleteOrder(e))}_deleteOrder(e){const t=this._order.indexOf(e);t>=0&&this._order.splice(t,1)}_appendOrder(e){this._order.push(e)}}function Tse(){const r=[];for(let e=32;e<128;e++)r.push(String.fromCharCode(e));return r}const ip={fontFamily:"Monaco, monospace",fontWeight:"normal",characterSet:Tse(),fontSize:64,buffer:4,sdf:!1,cutoff:.25,radius:12,smoothing:.1},hB=1024,dB=.9,pB=1.2,lL=3;let f_=new aL(lL);function Ese(r,e){let t;typeof e=="string"?t=new Set(Array.from(e)):t=new Set(e);const n=f_.get(r);if(!n)return t;for(const i in n.mapping)t.has(i)&&t.delete(i);return t}function Cse(r,e){for(let t=0;t<r.length;t++)e.data[4*t+3]=r[t]}function AB(r,e,t,n){r.font=`${n} ${t}px ${e}`,r.fillStyle="#000",r.textBaseline="alphabetic",r.textAlign="left"}function Sse(r){Zr.assert(Number.isFinite(r)&&r>
4063=lL,"Invalid cache limit"),f_=new aL(r)}class Ise{constructor(){this.props={...ip}}get atlas(){return this._atlas}get mapping(){return this._atlas&&this._atlas.mapping}get scale(){const{fontSize:e,buffer:t}=this.props;return(e*pB+t*2)/e}setProps(e={}){Object.assign(this.props,e),this._key=this._getKey();const t=Ese(this._key,this.props.characterSet),n=f_.get(this._key);if(n&&t.size===0){this._atlas!==n&&(this._atlas=n);return}const i=this._generateFontAtlas(t,n);this._atlas=i,f_.set(this._key,i)}_generateFontAtlas(e,t){const{fontFamily:n,fontWeight:i,fontSize:s,buffer:o,sdf:l,radius:f,cutoff:A}=this.props;let v=t&&t.data;v||(v=document.createElement("canvas"),v.width=hB);const T=v.getContext("2d",{willReadFrequently:!0});AB(T,n,s,i);const{mapping:I,canvasHeight:F,xOffset:N,yOffset:U}=_se({getFontWidth:$=>T.measureText($).width,fontHeight:s*pB,buffer:o,characterSet:e,maxCanvasWidth:hB,...t&&{mapping:t.mapping,xOffset:t.xOffset,yOffset:t.yOffset}});if(v.height!==F){const $=T.getImageData(0,0,v.width,v.height);v.height=F,T.putImageData($,0,0)}if(AB(T,n,s,i),l){const $=new pse({fontSize:s,buffer:o,radius:f,cutoff:A,fontFamily:n,fontWeight:`${i}`});for(const V of e){const{data:G,width:X,height:ue,glyphTop:K}=$.draw(V);I[V].width=X,I[V].layoutOffsetY=s*dB-K;const se=T.createImageData(X,ue);Cse(G,se),T.putImageData(se,I[V].x,I[V].y)}}else for(const $ of e)T.fillText($,I[$].x,I[$].y+o+s*dB);return{xOffset:N,yOffset:U,mapping:I,data:v,width:v.width,height:v.height}}_getKey(){const{fontFamily:e,fontWeight:t,fontSize:n,buffer:i,sdf:s,radius:o,cutoff:l}=this.props;return s?`${e} ${t} ${n} ${i} ${o} ${l}`:`${e} ${t} ${n} ${i}`}}const gB=`uniform textBackgroundUniforms { 4064 bool billboard; 4065 float sizeScale; 4066 float sizeMinPixels; 4067 float sizeMaxPixels; 4068 vec4 borderRadius; 4069 vec4 padding; 4070 highp int sizeUnits; 4071 bool stroked; 4072} textBackground; 4073`,Bse={name:"textBackground",vs:gB,fs:gB,uniformTypes:{billboard:"f32",sizeScale:"f32",sizeMinPixels:"f32",sizeMaxPixels:"f32",borderRadius:"vec4<f32>",padding:"vec4<f32>",sizeUnits:"i32",stroked:"f32"}},Pse=`#version 300 es 4074#define SHADER_NAME text-background-layer-vertex-shader 4075in vec2 positions; 4076in vec3 instancePositions; 4077in vec3 instancePositions64Low; 4078in vec4 instanceRects; 4079in float instanceSizes; 4080in float instanceAngles; 4081in vec2 instancePixelOffsets; 4082in float instanceLineWidths; 4083in vec4 instanceFillColors; 4084in vec4 instanceLineColors; 4085in vec3 instancePickingColors; 4086out vec4 vFillColor; 4087out vec4 vLineColor; 4088out float vLineWidth; 4089out vec2 uv; 4090out vec2 dimensions; 4091vec2 rotate_by_angle(vec2 vertex, float angle) { 4092float angle_radian = radians(angle); 4093float cos_angle = cos(angle_radian); 4094float sin_angle = sin(angle_radian); 4095mat2 rotationMatrix = mat2(cos_angle, -sin_angle, sin_angle, cos_angle); 4096return rotationMatrix * vertex; 4097} 4098void main(void) { 4099geometry.worldPosition = instancePositions; 4100geometry.uv = positions; 4101geometry.pickingColor = instancePickingColors; 4102uv = positions; 4103vLineWidth = instanceLineWidths; 4104float sizePixels = clamp( 4105project_size_to_pixel(instanceSizes * textBackground.sizeScale, textBackground.sizeUnits), 4106textBackground.sizeMinPixels, textBackground.sizeMaxPixels 4107); 4108dimensions = instanceRects.zw * sizePixels + textBackground.padding.xy + textBackground.padding.zw; 4109vec2 pixelOffset = (positions * instanceRects.zw + instanceRects.xy) * sizePixels + mix(-textBackground.padding.xy, textBackground.padding.zw, positions); 4110pixelOffset = rotate_by_angle(pixelOffset, instanceAngles); 4111pixelOffset += instancePixelOffsets; 4112pixelOffset.y *= -1.0; 4113if (textBackground.billboard) { 4114gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, vec3(0.0), geometry.position); 4115DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 4116vec3 offset = vec3(pixelOffset, 0.0); 4117DECKGL_FILTER_SIZE(offset, geometry); 4118gl_Position.xy += project_pixel_size_to_clipspace(offset.xy); 4119} else { 4120vec3 offset_common = vec3(project_pixel_size(pixelOffset), 0.0); 4121DECKGL_FILTER_SIZE(offset_common, geometry); 4122gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, offset_common, geometry.position); 4123DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 4124} 4125vFillColor = vec4(instanceFillColors.rgb, instanceFillColors.a * layer.opacity); 4126DECKGL_FILTER_COLOR(vFillColor, geometry); 4127vLineColor = vec4(instanceLineColors.rgb, instanceLineColors.a * layer.opacity); 4128DECKGL_FILTER_COLOR(vLineColor, geometry); 4129} 4130`,Mse=`#version 300 es 4131#define SHADER_NAME text-background-layer-fragment-shader 4132precision highp float; 4133in vec4 vFillColor; 4134in vec4 vLineColor; 4135in float vLineWidth; 4136in vec2 uv; 4137in vec2 dimensions; 4138out vec4 fragColor;
4139float round_rect(vec2 p, vec2 size, vec4 radii) { 4140vec2 pixelPositionCB = (p - 0.5) * size; 4141vec2 sizeCB = size * 0.5; 4142float maxBorderRadius = min(size.x, size.y) * 0.5; 4143vec4 borderRadius = vec4(min(radii, maxBorderRadius)); 4144borderRadius.xy = 4145(pixelPositionCB.x > 0.0) ? borderRadius.xy : borderRadius.zw; 4146borderRadius.x = (pixelPositionCB.y > 0.0) ? borderRadius.x : borderRadius.y; 4147vec2 q = abs(pixelPositionCB) - sizeCB + borderRadius.x; 4148return -(min(max(q.x, q.y), 0.0) + length(max(q, 0.0)) - borderRadius.x); 4149} 4150float rect(vec2 p, vec2 size) { 4151vec2 pixelPosition = p * size; 4152return min(min(pixelPosition.x, size.x - pixelPosition.x), 4153min(pixelPosition.y, size.y - pixelPosition.y)); 4154} 4155vec4 get_stroked_fragColor(float dist) { 4156float isBorder = smoothedge(dist, vLineWidth); 4157return mix(vFillColor, vLineColor, isBorder); 4158} 4159void main(void) { 4160geometry.uv = uv; 4161if (textBackground.borderRadius != vec4(0.0)) { 4162float distToEdge = round_rect(uv, dimensions, textBackground.borderRadius); 4163if (textBackground.stroked) { 4164fragColor = get_stroked_fragColor(distToEdge); 4165} else { 4166fragColor = vFillColor; 4167} 4168float shapeAlpha = smoothedge(-distToEdge, 0.0); 4169fragColor.a *= shapeAlpha; 4170} else { 4171if (textBackground.stroked) { 4172float distToEdge = rect(uv, dimensions); 4173fragColor = get_stroked_fragColor(distToEdge); 4174} else { 4175fragColor = vFillColor; 4176} 4177} 4178DECKGL_FILTER_COLOR(fragColor, geometry); 4179} 4180`,Rse={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,borderRadius:{type:"object",value:0},padding:{type:"array",value:[0,0,0,0]},getPosition:{type:"accessor",value:r=>r.position},getSize:{type:"accessor",value:1},getAngle:{type:"accessor",value:0},getPixelOffset:{type:"accessor",value:[0,0]},getBoundingRect:{type:"accessor",value:[0,0,0,0]},getFillColor:{type:"accessor",value:[0,0,0,255]},getLineColor:{type:"accessor",value:[0,0,0,255]},getLineWidth:{type:"accessor",value:1}};class xg extends Cs{getShaders(){return super.getShaders({vs:Pse,fs:Mse,modules:[Ls,ma,Bse]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:3,type:"float64",fp64:this.use64bitPositions(),transition:!0,accessor:"getPosition"},instanceSizes:{size:1,transition:!0,accessor:"getSize",defaultValue:1},instanceAngles:{size:1,transition:!0,accessor:"getAngle"},instanceRects:{size:4,accessor:"getBoundingRect"},instancePixelOffsets:{size:2,transition:!0,accessor:"getPixelOffset"},instanceFillColors:{size:4,transition:!0,type:"unorm8",accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:4,transition:!0,type:"unorm8",accessor:"getLineColor",defaultValue:[0,0,0,255]},instanceLineWidths:{size:1,transition:!0,accessor:"getLineWidth",defaultValue:1}})}updateState(e){super.updateState(e);const{changeFlags:t}=e;t.extensionsChanged&&(this.state.model?.destroy(),this.state.model=this._getModel(),this.getAttributeManager().invalidateAll())}draw({uniforms:e}
4180){const{billboard:t,sizeScale:n,sizeUnits:i,sizeMinPixels:s,sizeMaxPixels:o,getLineWidth:l}=this.props;let{padding:f,borderRadius:A}=this.props;f.length<4&&(f=[f[0],f[1],f[0],f[1]]),Array.isArray(A)||(A=[A,A,A,A]);const v=this.state.model,T={billboard:t,stroked:!!l,borderRadius:A,padding:f,sizeUnits:Po[i],sizeScale:n,sizeMinPixels:s,sizeMaxPixels:o};v.shaderInputs.setProps({textBackground:T}),v.draw(this.context.renderPass)}_getModel(){const e=[0,0,1,0,0,1,1,1];return new Di(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Zs({topology:"triangle-strip",vertexCount:4,attributes:{positions:{size:2,value:new Float32Array(e)}}}),isInstanced:!0})}}xg.defaultProps=Rse;xg.layerName="TextBackgroundLayer";const mB={start:1,middle:0,end:-1},_B={top:1,center:0,bottom:-1},ib=[0,0,0,255],Ose=1,Dse={billboard:!0,sizeScale:1,sizeUnits:"pixels",sizeMinPixels:0,sizeMaxPixels:Number.MAX_SAFE_INTEGER,background:!1,getBackgroundColor:{type:"accessor",value:[255,255,255,255]},getBorderColor:{type:"accessor",value:ib},getBorderWidth:{type:"accessor",value:0},backgroundBorderRadius:{type:"object",value:0},backgroundPadding:{type:"array",value:[0,0,0,0]},characterSet:{type:"object",value:ip.characterSet},fontFamily:ip.fontFamily,fontWeight:ip.fontWeight,lineHeight:Ose,outlineWidth:{type:"number",value:0,min:0},outlineColor:{type:"color",value:ib},fontSettings:{type:"object",value:{},compare:1},wordBreak:"break-word",maxWidth:{type:"number",value:-1},getText:{type:"accessor",value:r=>r.text},getPosition:{type:"accessor",value:r=>r.position},getColor:{type:"accessor",value:ib},getSize:{type:"accessor",value:32},getAngle:{type:"accessor",value:0},getTextAnchor:{type:"accessor",value:"middle"},getAlignmentBaseline:{type:"accessor",value:"center"},getPixelOffset:{type:"accessor",value:[0,0]},backgroundColor:{deprecatedFor:["background","getBackgroundColor"]}};class _h extends Ss{constructor(){super(...arguments),this.getBoundingRect=(e,t)=>{let{size:[n,i]}=this.transformParagraph(e,t);const{fontSize:s}=this.state.fontAtlasManager.props;n/=s,i/=s;const{getTextAnchor:o,getAlignmentBaseline:l}=this.props,f=mB[typeof o=="function"?o(e,t):o],A=_B[typeof l=="function"?l(e,t):l];return[(f-1)*n/2,(A-1)*i/2,n,i]},this.getIconOffsets=(e,t)=>{const{getTextAnchor:n,getAlignmentBaseline:i}=this.props,{x:s,y:o,rowWidth:l,size:[f,A]}=this.transformParagraph(e,t),v=mB[typeof n=="function"?n(e,t):n],T=_B[typeof i=="function"?i(e,t):i],I=s.length,F=new Array(I*2);let N=0;for(let U=0;U<I;U++){const $=(1-v)*(f-l[U])/2;F[N++]=(v-1)*f/2+$+s[U],F[N++]=(T-1)*A/2+o[U]}return F}}initializeState(){this.state={styleVersion:0,fontAtlasManager:new Ise},this.props.maxWidth>0&&Zr.once(1,"v8.9 breaking change: TextLayer maxWidth is now relative to text size")()}updateState(e){const{props:t,oldProps:n,changeFlags:i}=e;(i.dataChanged||i.updateTriggersChanged&&(i.updateTriggersChanged.all||i.updateTriggersChanged.getText))&&this._updateText(),(this._updateFontAtlas()||t.lineHeight!==n.lineHeight||t.wordBreak!==n.wordBreak||t.maxWidth!==n.maxWidth)&&this.setState({styleVersion:this.state.styleVersion+1})}getPickingInfo({info:e}){return e.object=e.index>=0?this.props.data[e.index]:null,e}_updateFontAtlas(){const{fontSettings:e,fontFamily:t,fontWeight:n}=this.props,{fontAtlasManager:i,characterSet:s}=this.state,o={...e,characterSet:s,fontFamily:t,fontWeight:n};if(!i.mapping)return i.setProps(o),!0;for(const l in o)if(o[l]!==i.props[l])return i.setProps(o),!0;return!1}_updateText(){const{data:e,characterSet:t}=this.props,n=e.attributes?.getText;let{getText:i}=this.props,s=e.startIndices,o;const l=t==="auto"&&new Set;if(n&&s){const{texts:f,characterCount:A}=wse({...ArrayBuffer.isView(n)?{value:n}:n,length:e.length,startIndices:s,characterSet:l});o=A,i=(v,{index:T})=>f[T]}else{const{iterable:f,objectInfo:A}=dc(e);s=[0],o=0;for(const v of f){A.index++;const T=Array.from(i(v,A)||"");l&&T.forEach(l.add,l),o+=T.length,s.push(o)}}this.setState({getText:i,startIndices:s,numInstances:o,characterSet:l||t})}transformParagraph(e,t){const{fontAtlasManager:n}=this.state,i=n.mapping,s=this.state.getText,{wordBreak:o,lineHeight:l,maxWidth:f}=this.props,A=s(e,t)||"";return xse(A,l,o,f*n.props.fontSize,i)}renderLayers(){const{startIndices:e,numInstances:t,getText:n,fontAtlasManager:{scale:i,atlas:s,mapping:o},styleVersion:l}=this.state,{data:f,_dataDiff:A,getPosition:v,getColor:T,getSize:I,getAngle:F,getPixelOffset:N,getBackgroun
4180dColor:U,getBorderColor:$,getBorderWidth:V,backgroundBorderRadius:G,backgroundPadding:X,background:ue,billboard:K,fontSettings:se,outlineWidth:Ee,outlineColor:Ue,sizeScale:de,sizeUnits:me,sizeMinPixels:pe,sizeMaxPixels:W,transitions:te,updateTriggers:Ce}=this.props,Qe=this.getSubLayerClass("characters",q_),we=this.getSubLayerClass("background",xg);return[ue&&new we({getFillColor:U,getLineColor:$,getLineWidth:V,borderRadius:G,padding:X,getPosition:v,getSize:I,getAngle:F,getPixelOffset:N,billboard:K,sizeScale:de,sizeUnits:me,sizeMinPixels:pe,sizeMaxPixels:W,transitions:te&&{getPosition:te.getPosition,getAngle:te.getAngle,getSize:te.getSize,getFillColor:te.getBackgroundColor,getLineColor:te.getBorderColor,getLineWidth:te.getBorderWidth,getPixelOffset:te.getPixelOffset}},this.getSubLayerProps({id:"background",updateTriggers:{getPosition:Ce.getPosition,getAngle:Ce.getAngle,getSize:Ce.getSize,getFillColor:Ce.getBackgroundColor,getLineColor:Ce.getBorderColor,getLineWidth:Ce.getBorderWidth,getPixelOffset:Ce.getPixelOffset,getBoundingRect:{getText:Ce.getText,getTextAnchor:Ce.getTextAnchor,getAlignmentBaseline:Ce.getAlignmentBaseline,styleVersion:l}}}),{data:f.attributes&&f.attributes.background?{length:f.length,attributes:f.attributes.background}:f,_dataDiff:A,autoHighlight:!1,getBoundingRect:this.getBoundingRect}),new Qe({sdf:se.sdf,smoothing:Number.isFinite(se.smoothing)?se.smoothing:ip.smoothing,outlineWidth:Ee/(se.radius||ip.radius),outlineColor:Ue,iconAtlas:s,iconMapping:o,getPosition:v,getColor:T,getSize:I,getAngle:F,getPixelOffset:N,billboard:K,sizeScale:de*i,sizeUnits:me,sizeMinPixels:pe*i,sizeMaxPixels:W*i,transitions:te&&{getPosition:te.getPosition,getAngle:te.getAngle,getColor:te.getColor,getSize:te.getSize,getPixelOffset:te.getPixelOffset}},this.getSubLayerProps({id:"characters",updateTriggers:{all:Ce.getText,getPosition:Ce.getPosition,getAngle:Ce.getAngle,getColor:Ce.getColor,getSize:Ce.getSize,getPixelOffset:Ce.getPixelOffset,getIconOffsets:{getTextAnchor:Ce.getTextAnchor,getAlignmentBaseline:Ce.getAlignmentBaseline,styleVersion:l}}}),{data:f,_dataDiff:A,startIndices:e,numInstances:t,getIconOffsets:this.getIconOffsets,getIcon:n})]}static set fontAtlasCacheLimit(e){Sse(e)}}_h.defaultProps=Dse;_h.layerName="TextLayer";const Em={circle:{type:bg,props:{filled:"filled",stroked:"stroked",lineWidthMaxPixels:"lineWidthMaxPixels",lineWidthMinPixels:"lineWidthMinPixels",lineWidthScale:"lineWidthScale",lineWidthUnits:"lineWidthUnits",pointRadiusMaxPixels:"radiusMaxPixels",pointRadiusMinPixels:"radiusMinPixels",pointRadiusScale:"radiusScale",pointRadiusUnits:"radiusUnits",pointAntialiasing:"antialiasing",pointBillboard:"billboard",getFillColor:"getFillColor",getLineColor:"getLineColor",getLineWidth:"getLineWidth",getPointRadius:"getRadius"}},icon:{type:Sp,props:{iconAtlas:"iconAtlas",iconMapping:"iconMapping",iconSizeMaxPixels:"sizeMaxPixels",iconSizeMinPixels:"sizeMinPixels",iconSizeScale:"sizeScale",iconSizeUnits:"sizeUnits",iconAlphaCutoff:"alphaCutoff",iconBillboard:"billboard",getIcon:"getIcon",getIconAngle:"getAngle",getIconColor:"getColor",getIconPixelOffset:"getPixelOffset",getIconSize:"getSize"}},text:{type:_h,props:{textSizeMaxPixels:"sizeMaxPixels",textSizeMinPi
4180xels:"sizeMinPixels",textSizeScale:"sizeScale",textSizeUnits:"sizeUnits",textBackground:"background",textBackgroundPadding:"backgroundPadding",textFontFamily:"fontFamily",textFontWeight:"fontWeight",textLineHeight:"lineHeight",textMaxWidth:"maxWidth",textOutlineColor:"outlineColor",textOutlineWidth:"outlineWidth",textWordBreak:"wordBreak",textCharacterSet:"characterSet",textBillboard:"billboard",textFontSettings:"fontSettings",getText:"getText",getTextAngle:"getAngle",getTextColor:"getColor",getTextPixelOffset:"getPixelOffset",getTextSize:"getSize",getTextAnchor:"getTextAnchor",getTextAlignmentBaseline:"getAlignmentBaseline",getTextBackgroundColor:"getBackgroundColor",getTextBorderColor:"getBorderColor",getTextBorderWidth:"getBorderWidth"}}},Cm={type:sf,props:{lineWidthUnits:"widthUnits",lineWidthScale:"widthScale",lineWidthMinPixels:"widthMinPixels",lineWidthMaxPixels:"widthMaxPixels",lineJointRounded:"jointRounded",lineCapRounded:"capRounded",lineMiterLimit:"miterLimit",lineBillboard:"billboard",getLineColor:"getColor",getLineWidth:"getWidth"}},g2={type:of,props:{extruded:"extruded",filled:"filled",wireframe:"wireframe",elevationScale:"elevationScale",material:"material",_full3d:"_full3d",getElevation:"getElevation",getFillColor:"getFillColor",getLineColor:"getLineColor"}};function AA({type:r,props:e}){const t={};for(const n in e)t[n]=r.defaultProps[e[n]];return t}function sb(r,e){const{transitions:t,updateTriggers:n}=r.props,i={updateTriggers:{},transitions:t&&{getPosition:t.geometry}};for(const s in e){const o=e[s];let l=r.props[s];s.startsWith("get")&&(l=r.getSubLayerAccessor(l),i.updateTriggers[o]=n[s],t&&(i.transitions[o]=t[s])),i[o]=l}return i}function Fse(r){if(Array.isArray(r))return r;switch(Zr.assert(r.type,"GeoJSON does not have type"),r.type){case"Feature":return[r];case"FeatureCollection":return Zr.assert(Array.isArray(r.features),"GeoJSON does not have features array"),r.features;default:return[{geometry:r}]}}function yB(r,e,t={}){const n={pointFeatures:[],lineFeatures:[],polygonFeatures:[],polygonOutlineFeatures:[]},{startRow:i=0,endRow:s=r.length}=t;for(let o=i;o<s;o++){const l=r[o],{geometry:f}=l;if(f)if(f.type==="GeometryCollection"){Zr.assert(Array.isArray(f.geometries),"GeoJSON does not have geometries array");const{geometries:A}=f;for(let v=0;v<A.length;v++){const T=A[v];vB(T,n,e,l,o)}}else vB(f,n,e,l,o)}return n}function vB(r,e,t,n,i){const{type:s,coordinates:o}=r,{pointFeatures:l,lineFeatures:f,polygonFeatures:A,polygonOutlineFeatures:v}=e;if(!kse(s,o)){Zr.warn(`${s} coordinates are malformed`)();return}switch(s){case"Point":l.push(t({geometry:r},n,i));break;case"MultiPoint":o.forEach(T=>{l.push(t({geometry:{type:"Point",coordinates:T}},n,i))});break;case"LineString":f.push(t({geometry:r},n,i));break;case"MultiLineString":o.forEach(T=>{f.push(t({geometry:{type:"LineString",coordinates:T}},n,i))});break;case"Polygon":A.push(t({geometry:r},n,i)),o.forEach(T=>{v.push(t({geometry:{type:"LineString",coordinates:T}},n,i))});break;case"MultiPolygon":o.forEach(T=>{A.push(t({geometry:{type:"Polygon",coordinates:T}},n,i)),T.forEach(I=>{v.push(t({geometry:{type:"LineString",coordinates:I}},n,i))})});break}}const Lse={Point:1,MultiPoint:2,LineString:2,MultiLineString:3,Polygon:3,MultiPolygon:4};function kse(r,e){let t=Lse[r];for(Zr.assert(t,`Unknown GeoJSON type ${r}`);e&&--t>0;)e=e[0];return e&&Number.isFinite(e[0])}function cL(){return{points:{},lines:{},polygons:{},polygonsOutline:{}}}function U0(r){return r.geometry.coordinates}function Nse(r,e){const t=cL(),{pointFeatures:n,lineFeatures:i,polygonFeatures:s,polygonOutlineFeatures:o}=r;return t.points.data=n,t.points._dataDiff=e.pointFeatures&&(()=>e.pointFeatures),t.points.getPosition=U0,t.lines.data=i,t.lines._dataDiff=e.lineFeatures&&(()=>e.lineFeatures),t.lines.getPath=U0,t.polygons.data=s,t.polygons._dataDiff=e.polygonFeatures&&(()=>e.polygonFeatures),t.polygons.getPolygon=U0,t.polygonsOutline.data=o,t.polygonsOutline._dataDiff=e.polygonOutlineFeatures&&(()=>e.polygonOutlineFeatures),t.polygonsOutline.getPath=U0,t}function Use(r,e){const t=cL(),{points:n,lines:i,polygons:s}=r,o=use(r,e);return t.points.data={length:n.positions.value.length/n.positions.size,attributes:{...n.attributes,getPosition:n.positions,instancePickingColors:{size:4,value:o.points}},properties:n.properties,numericProps:n.numericProps,featureIds:n.featureIds},t.lines.data={length:i.pathIndices.value.length-1,startIndices:i.pathIndices.value,attributes:{...i.attributes,getPath:i.positions,instancePickingColors:{size:4,value:o.lines}},properties:i.properties,numericProps:i.numericProps,featureIds:i.featureIds},t.lines._pathType="open",t.polygons.data={length:s.polygonIndices.value.length-1,startIndices:s.polygonIndices.value,attributes:{...s.attributes,getPolygon:s.positions,pickingColors:{size:4,value:o.polygons}},properties:s.properties,numericProps:s.numericProps,featureIds:s.featureIds},t.polygons._normalize=!1,s.triangles&&(t.polygons.data.attributes.indices=s.triangles.value),t.polygonsOutline.data={length:s.primitivePolygonIndices.value.length-1,startIndices:s.primitivePolygonIndices.value,attributes:{...s.attributes,getPath:s.positions,instancePickingColors:{size:4,value:o.polygons}},properties:s.properties,numericProps:s.numericProps,featureIds:s.featureIds},t.polygonsOutline._pathType="open",t}const zse=["points","linestrings","polygons"],Vse={...AA(Em.circle),...AA(Em.icon),...AA(Em.text),...AA(Cm),...AA(g2),stroked:!0,filled:!0,extruded:!1,wireframe:!1,_full3d:!1,iconAtlas:{type:"object",value:null},iconMapping:{type:"object",value:{}},getIcon:{type:"accessor",value:r=>r.properties.icon},getText:{type:"accessor",value:r=>r.properties.text},pointType:"circle",getRadius:{deprecatedFor:"getPointRadius"}};class ru extends Ss{initializeState(){this.state={layerProps:{},features:{},featuresDiff:{}}}updateState({props:e,changeFlags:t}){if(!t.dataChanged)return;const{data:n}=this.props,i=n&&"points"in n&&"polygons"in n&&"lines"in n;this.setState({binary:i}),i?this._updateStateBinary({props:e,changeFlags:t}):this._updateStateJSON({props:e,changeFlags:t})}_updateStateBinary({props:e,changeFlags:t}){const n=Use(e.data,this.encodePickingColor);this.setState({layerProps:n})}_updateStateJSON({props:e,changeFlags:t}){const n=Fse(e.data),i=this.getSubLayerRow.bind(this);let s={};const o={};if(Array.isArray(t.dataChanged)){const f=this.state.features;for(const A in f)s[A]=f[A].slice(),o[A]=[];for(const A of t.dataChanged){const v=yB(n,i,A);for(const T in f)o[T].push(nL({data:s[T],getIndex:I=>I.__source.index,dataRange:A,replace:v[T]}))}}else s=yB(n,i);const l=Nse(s,o);this.setState({features:s,featuresDiff:o,layerProps:l})}getPickingInfo(e){const t=super.getPickingInfo(e),{index:n,sourceLayer:i}=t;return t.featureType=zse.find(s=>
4180i.id.startsWith(`${this.id}-${s}-`)),n>=0&&i.id.startsWith(`${this.id}-points-text`)&&this.state.binary&&(t.index=this.props.data.points.globalFeatureIds.value[n]),t}_updateAutoHighlight(e){const t=`${this.id}-points-`,n=e.featureType==="points";for(const i of this.getSubLayers())i.id.startsWith(t)===n&&i.updateAutoHighlight(e)}_renderPolygonLayer(){const{extruded:e,wireframe:t}=this.props,{layerProps:n}=this.state,i="polygons-fill",s=this.shouldRenderSubLayer(i,n.polygons?.data)&&this.getSubLayerClass(i,g2.type);if(s){const o=sb(this,g2.props),l=e&&t;return l||delete o.getLineColor,o.updateTriggers.lineColors=l,new s(o,this.getSubLayerProps({id:i,updateTriggers:o.updateTriggers}),n.polygons)}return null}_renderLineLayers(){const{extruded:e,stroked:t}=this.props,{layerProps:n}=this.state,i="polygons-stroke",s="linestrings",o=!e&&t&&this.shouldRenderSubLayer(i,n.polygonsOutline?.data)&&this.getSubLayerClass(i,Cm.type),l=this.shouldRenderSubLayer(s,n.lines?.data)&&this.getSubLayerClass(s,Cm.type);if(o||l){const f=sb(this,Cm.props);return[o&&new o(f,this.getSubLayerProps({id:i,updateTriggers:f.updateTriggers}),n.polygonsOutline),l&&new l(f,this.getSubLayerProps({id:s,updateTriggers:f.updateTriggers}),n.lines)]}return null}_renderPointLayers(){const{pointType:e}=this.props,{layerProps:t,binary:n}=this.state;let{highlightedObjectIndex:i}=this.props;!n&&Number.isFinite(i)&&(i=t.points.data.findIndex(l=>l.__source.index===i));const s=new Set(e.split("+")),o=[];for(const l of s){const f=`points-${l}`,A=Em[l],v=A&&this.shouldRenderSubLayer(f,t.points?.data)&&this.getSubLayerClass(f,A.type);if(v){const T=sb(this,A.props);let I=t.points;if(l==="text"&&n){const{instancePickingColors:F,...N}=I.data.attributes;I={...I,data:{...I.data,attributes:N}}}o.push(new v(T,this.getSubLayerProps({id:f,updateTriggers:T.updateTriggers,highlightedObjectIndex:i}),I))}}return o}renderLayers(){const{extruded:e}=this.props,t=this._renderPolygonLayer(),n=this._renderLineLayers(),i=this._renderPointLayers();return[!e&&t,n,i,e&&t]}getSubLayerAccessor(e){const{binary:t}=this.state;return!t||typeof e!="function"?super.getSubLayerAccessor(e):(n,i)=>{const{data:s,index:o}=i,l=lse(s,o);return e(l,i)}}}ru.layerName="GeoJsonLayer";ru.defaultProps=Vse;const jse=Object.freeze(Object.defineProperty({__proto__:null,ArcLayer:yg,BitmapLayer:$_,ColumnLayer:pc,GeoJsonLayer:ru,GridCellLayer:hw,IconLayer:Sp,LineLayer:X_,PathLayer:sf,PointCloudLayer:vg,PolygonLayer:af,ScatterplotLayer:bg,SolidPolygonLayer:of,TextLayer:_h,_MultiIconLayer:q_,_TextBackgroundLayer:xg},Symbol.toStringTag,{value:"Module"}));function Gse(r){return typeof r=="string"?r.charAt(0).toLowerCase()+r.slice(1):r}function m2(r){if(Array.isArray(r))return r.map(e=>m2(e));if(r&&typeof r=="object"){const e={};for(const[t,n]of Object.entries(r))e[Gse(t)]=m2(n);return e}return r}var ob={},ab={},bB;function dw(){return bB||(bB=1,(function(r){const e=":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",t=e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040",n="["+e+"]["+t+"]*",i=new RegExp("^"+n+"$"),s=function(l,f){const A=[];let v=f.exec(l);for(;v;){const T=[];T.startIndex=f.lastIndex-v[0].length;const I=v.length;for(let F=0;F<I;F++)T.push(v[F]);A.push(T),v=f.exec(l)}return A},o=function(l){const f=i.exec(l);return!(f===null||typeof f>"u")};r.isExist=function(l){return typeof l<"u"},r.isEmptyObject=function(l){return Object.keys(l).length===0},r.merge=function(l,f,A){if(f){const v=Object.keys(f),T=v.length;for(let I=0;I<T;I++)A==="strict"?l[v[I]]=[f[v[I]]]:l[v[I]]=f[v[I]]}},r.getValue=function(l){return r.isExist(l)?l:""},r.isName=o,r.getAllMatches=s,r.nameRegexp=n})(ab)),ab}var xB;function uL(){if(xB)return ob;xB=1;const r=dw(),e={allowBooleanAttributes:!1,unpairedTags:[]};ob.validate=function(V,G){G=Object.assign({},e,G);const X=[];let ue=!1,K=!1;V[0]==="\uFEFF"&&(V=V.substr(1));for(let se=0;se<V.length;se++)if(V[se]==="<"&&V[se+1]==="?"){if(se+=2,se=n(V,se),se.err)return se}else if(V[se]==="<"){let Ee=se;if(se++,V[se]==="!"){se=i(V,se);continue}else{let Ue=!1;V[se]==="/"&&(Ue=!0,se++);let de="";for(;se<V.length&&V[se]!==">"&&V[se]!==" "&&V[se]!==" "&&V[se]!==` 4181`&&V[se]!=="\r";se++)de+=V[se];if(de=de.trim(),de[de.length-1]==="/"&&(de=de.substring(0,de.length-1),se--),!N(de)){let W;return de.trim().length===0?W="Invalid space after '<'.":W="Tag '"+de+"' is an invali
4181d name.",I("InvalidTag",W,U(V,se))}const me=l(V,se);if(me===!1)return I("InvalidAttr","Attributes for '"+de+"' have open quote.",U(V,se));let pe=me.value;if(se=me.index,pe[pe.length-1]==="/"){const W=se-pe.length;pe=pe.substring(0,pe.length-1);const te=A(pe,G);if(te===!0)ue=!0;else return I(te.err.code,te.err.msg,U(V,W+te.err.line))}else if(Ue)if(me.tagClosed){if(pe.trim().length>0)return I("InvalidTag","Closing tag '"+de+"' can't have attributes or invalid starting.",U(V,Ee));if(X.length===0)return I("InvalidTag","Closing tag '"+de+"' has not been opened.",U(V,Ee));{const W=X.pop();if(de!==W.tagName){let te=U(V,W.tagStartPos);return I("InvalidTag","Expected closing tag '"+W.tagName+"' (opened in line "+te.line+", col "+te.col+") instead of closing tag '"+de+"'.",U(V,Ee))}X.length==0&&(K=!0)}}else return I("InvalidTag","Closing tag '"+de+"' doesn't have proper closing.",U(V,se));else{const W=A(pe,G);if(W!==!0)return I(W.err.code,W.err.msg,U(V,se-pe.length+W.err.line));if(K===!0)return I("InvalidXml","Multiple possible root nodes found.",U(V,se));G.unpairedTags.indexOf(de)!==-1||X.push({tagName:de,tagStartPos:Ee}),ue=!0}for(se++;se<V.length;se++)if(V[se]==="<")if(V[se+1]==="!"){se++,se=i(V,se);continue}else if(V[se+1]==="?"){if(se=n(V,++se),se.err)return se}else break;else if(V[se]==="&"){const W=T(V,se);if(W==-1)return I("InvalidChar","char '&' is not expected.",U(V,se));se=W}else if(K===!0&&!t(V[se]))return I("InvalidXml","Extra text at the end",U(V,se));V[se]==="<"&&se--}}else{if(t(V[se]))continue;return I("InvalidChar","char '"+V[se]+"' is not expected.",U(V,se))}if(ue){if(X.length==1)return I("InvalidTag","Unclosed tag '"+X[0].tagName+"'.",U(V,X[0].tagStartPos));if(X.length>0)return I("InvalidXml","Invalid '"+JSON.stringify(X.map(se=>se.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1})}else return I("InvalidXml","Start tag expected.",1);return!0};function t(V){return V===" "||V===" "||V===` 4182`||V==="\r"}function n(V,G){const X=G;for(;G<V.length;G++)if(V[G]=="?"||V[G]==" "){const ue=V.substr(X,G-X);if(G>5&&ue==="xml")return I("InvalidXml","XML declaration allowed only at the start of the document.",U(V,G));if(V[G]=="?"&&V[G+1]==">"){G++;break}else continue}return G}function i(V,G){if(V.length>G+5&&V[G+1]==="-"&&V[G+2]==="-"){for(G+=3;G<V.length;G++)if(V[G]==="-"&&V[G+1]==="-"&&V[G+2]===">"){G+=2;break}}else if(V.length>G+8&&V[G+1]==="D"&&V[G+2]==="O"&&V[G+3]==="C"&&V[G+4]==="T"&&V[G+5]==="Y"&&V[G+6]==="P"&&V[G+7]==="E"){let X=1;for(G+=8;G<V.length;G++)if(V[G]==="<")X++;else if(V[G]===">"&&(X--,X===0))break}else if(V.length>G+9&&V[G+1]==="["&&V[G+2]==="C"&&V[G+3]==="D"&&V[G+4]==="A"&&V[G+5]==="T"&&V[G+6]==="A"&&V[G+7]==="["){for(G+=8;G<V.length;G++)if(V[G]==="]"&&V[G+1]==="]"&&V[G+2]===">"){G+=2;break}}return G}const s='"',o="'";function l(V,G){let X="",ue="",K=!1;for(;G<V.length;G++){if(V[G]===s||V[G]===o)ue===""?ue=V[G]:ue!==V[G]||(ue="");else if(V[G]===">"&&ue===""){K=!0;break}X+=V[G]}return ue!==""?!1:{value:X,index:G,tagClosed:K}}const f=new RegExp(`(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['"])(([\\s\\S])*?)\\5)?`,"g");function A(V,G){const X=r.getAllMatches(V,f),ue={};for(let K=0;K<X.length;K++){if(X[K][1].length===0)return I("InvalidAttr","Attribute '"+X[K][2]+"' has no space in starting.",$(X[K]));if(X[K][3]!==void 0&&X[K][4]===void 0)return I("InvalidAttr","Attribute '"+X[K][2]+"' is without value.",$(X[K]));if(X[K][3]===void 0&&!G.allowBooleanAttributes)return I("InvalidAttr","boolean attribute '"+X[K][2]+"' is not allowed.",$(X[K]));const se=X[K][2];if(!F(se))return I("InvalidAttr","Attribute '"+se+"' is an invalid name.",$(X[K]));if(!ue.hasOwnProperty(se))ue[se]=1;else return I("InvalidAttr","Attribute '"+se+"' is repeated.",$(X[K]))}return!0}function v(V,G){let X=/\d/;for(V[G]==="x"&&(G++,X=/[\da-fA-F]/);G<V.length;G++){if(V[G]===";")return G;if(!V[G].match(X))break}return-1}function T(V,G){if(G++,V[G]===";")return-1;if(V[G]==="#")return G++,v(V,G);let X=0;for(;G<V.length;G++,X++)if(!(V[G].match(/\w/)&&X<20)){if(V[G]===";")break;return-1}return G}function I(V,G,X){return{err:{code:V,msg:G,line:X.line||X,col:X.col}}}function F(V){return r.isName(V)}function N(V){return r.isName(V)}function U(V,G){const X=V.substring(0,G).split(/\r?\n/);return{line:X.length,col:X[X.length-1].length+1}}function $(V){return V.startIndex+V[1].length}return ob}var z0={},wB;function Hse(){if(wB)return z0;wB=1;const r={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,n){return n},attributeValueProcessor:function(t,n){return n},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,n,i){return t}},e=function(t){return Object.assign({},r,t)};return z0.buildOptions=e,z0.defaultOptions=r,z0}var lb,TB;function Wse(){if(TB)return lb;TB=1;
4182class r{constructor(t){this.tagname=t,this.child=[],this[":@"]={}}add(t,n){t==="__proto__"&&(t="#__proto__"),this.child.push({[t]:n})}addChild(t){t.tagname==="__proto__"&&(t.tagname="#__proto__"),t[":@"]&&Object.keys(t[":@"]).length>0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child})}}return lb=r,lb}var cb,EB;function $se(){if(EB)return cb;EB=1;const r=dw();function e(A,v){const T={};if(A[v+3]==="O"&&A[v+4]==="C"&&A[v+5]==="T"&&A[v+6]==="Y"&&A[v+7]==="P"&&A[v+8]==="E"){v=v+9;let I=1,F=!1,N=!1,U="";for(;v<A.length;v++)if(A[v]==="<"&&!N){if(F&&i(A,v))v+=7,[entityName,val,v]=t(A,v+1),val.indexOf("&")===-1&&(T[f(entityName)]={regx:RegExp(`&${entityName};`,"g"),val});else if(F&&s(A,v))v+=8;else if(F&&o(A,v))v+=8;else if(F&&l(A,v))v+=9;else if(n)N=!0;else throw new Error("Invalid DOCTYPE");I++,U=""}else if(A[v]===">"){if(N?A[v-1]==="-"&&A[v-2]==="-"&&(N=!1,I--):I--,I===0)break}else A[v]==="["?F=!0:U+=A[v];if(I!==0)throw new Error("Unclosed DOCTYPE")}else throw new Error("Invalid Tag instead of DOCTYPE");return{entities:T,i:v}}function t(A,v){let T="";for(;v<A.length&&A[v]!=="'"&&A[v]!=='"';v++)T+=A[v];if(T=T.trim(),T.indexOf(" ")!==-1)throw new Error("External entites are not supported");const I=A[v++];let F="";for(;v<A.length&&A[v]!==I;v++)F+=A[v];return[T,F,v]}function n(A,v){return A[v+1]==="!"&&A[v+2]==="-"&&A[v+3]==="-"}function i(A,v){return A[v+1]==="!"&&A[v+2]==="E"&&A[v+3]==="N"&&A[v+4]==="T"&&A[v+5]==="I"&&A[v+6]==="T"&&A[v+7]==="Y"}function s(A,v){return A[v+1]==="!"&&A[v+2]==="E"&&A[v+3]==="L"&&A[v+4]==="E"&&A[v+5]==="M"&&A[v+6]==="E"&&A[v+7]==="N"&&A[v+8]==="T"}function o(A,v){return A[v+1]==="!"&&A[v+2]==="A"&&A[v+3]==="T"&&A[v+4]==="T"&&A[v+5]==="L"&&A[v+6]==="I"&&A[v+7]==="S"&&A[v+8]==="T"}function l(A,v){return A[v+1]==="!"&&A[v+2]==="N"&&A[v+3]==="O"&&A[v+4]==="T"&&A[v+5]==="A"&&A[v+6]==="T"&&A[v+7]==="I"&&A[v+8]==="O"&&A[v+9]==="N"}function f(A){if(r.isName(A))return A;throw new Error(`Invalid entity name ${A}`)}return cb=e,cb}var ub,CB;function Xse(){if(CB)return ub;CB=1;const r=/^[-+]?0x[a-fA-F0-9]+$/,e=/^([\-\+])?(0*)(\.[0-9]+([eE]\-?[0-9]+)?|[0-9]+(\.[0-9]+([eE]\-?[0-9]+)?)?)$/;!Number.parseInt&&window.parseInt&&(Number.parseInt=window.parseInt),!Number.parseFloat&&window.parseFloat&&(Number.parseFloat=window.parseFloat);const t={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function n(s,o={}){if(o=Object.assign({},t,o),!s||typeof s!="string")return s;let l=s.trim();if(o.skipLike!==void 0&&o.skipLike.test(l))return s;if(o.hex&&r.test(l))return Number.parseInt(l,16);{const f=e.exec(l);if(f){const A=f[1],v=f[2];let T=i(f[3]);const I=f[4]||f[6];if(!o.leadingZeros&&v.length>0&&A&&l[2]!==".")return s;if(!o.leadingZeros&&v.length>0&&!A&&l[1]!==".")return s;{const F=Number(l),N=""+F;return N.search(/[eE]/)!==-1||I?o.eNotation?F:s:l.indexOf(".")!==-1?N==="0"&&T===""||N===T||A&&N==="-"+T?F:s:v?T===N||A+T===N?F:s:l===N||l===A+N?F:s}}else return s}}function i(s){return s&&s.indexOf(".")!==-1&&(s=s.replace(/0+$/,""),s==="."?s="0":s[0]==="."?s="0"+s:s[s.length-1]==="."&&(s=s.substr(0,s.length-1))),s}return ub=n,ub}var fb,SB;function fL(){if(SB)return fb;SB=1;function r(e){return typeof e=="function"?e:Array.isArray(e)?t=>{for(const n of e)if(typeof n=="string"&&t===n||n instanceof RegExp&&n.test(t))return!0}:()=>!1}return fb=r,fb}var hb,IB;function qse(){if(IB)return hb;IB=1;const r=dw(),e=Wse(),t=$se(),n=Xse(),i=fL();class s{constructor(se){this.options=se,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"Â¥"},euro:{regex:/&(euro|#8364);/g,val:"â¬"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"â¹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(Ee,Ue)=>String.fromCharCode(Number.parseInt(Ue,10))},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(Ee,Ue)=>String.fromCharCode(Number.parseInt(Ue,16))}},this.addExternalEntities=o,this.parseXml=T,this.parseTextData=l,this.resolveNameSpace=f,this.buildAttributesMap=v,this.isItStopNode=U,this.replaceEntitiesValue=F,this.readStopNodeData=X,this.saveTextToParentTag=N,this.addChild=I,this.ignoreAttributesFn=i(this.options.ignoreAttributes)}}function o(K){const se=Object.keys(K);for(let Ee=0;Ee<se.length;Ee++){const Ue=se[Ee];this.lastEntities[Ue]={regex:new RegExp("&"+Ue+";","g"),val:K[Ue]}}}function l(K,se,Ee,Ue,de,me,pe){if(K!==void 0&&(this.options.trimValues&&!Ue&&(K=K.trim()),K.length>0)){pe||(K=this.replaceEntitiesValue(K));const W=this.options.tagValueProcessor(se,K,Ee,de,me);
4182return W==null?K:typeof W!=typeof K||W!==K?W:this.options.trimValues?ue(K,this.options.parseTagValue,this.options.numberParseOptions):K.trim()===K?ue(K,this.options.parseTagValue,this.options.numberParseOptions):K}}function f(K){if(this.options.removeNSPrefix){const se=K.split(":"),Ee=K.charAt(0)==="/"?"/":"";if(se[0]==="xmlns")return"";se.length===2&&(K=Ee+se[1])}return K}const A=new RegExp(`([^\\s=]+)\\s*(=\\s*(['"])([\\s\\S]*?)\\3)?`,"gm");function v(K,se,Ee){if(this.options.ignoreAttributes!==!0&&typeof K=="string"){const Ue=r.getAllMatches(K,A),de=Ue.length,me={};for(let pe=0;pe<de;pe++){const W=this.resolveNameSpace(Ue[pe][1]);if(this.ignoreAttributesFn(W,se))continue;let te=Ue[pe][4],Ce=this.options.attributeNamePrefix+W;if(W.length)if(this.options.transformAttributeName&&(Ce=this.options.transformAttributeName(Ce)),Ce==="__proto__"&&(Ce="#__proto__"),te!==void 0){this.options.trimValues&&(te=te.trim()),te=this.replaceEntitiesValue(te);const Qe=this.options.attributeValueProcessor(W,te,se);Qe==null?me[Ce]=te:typeof Qe!=typeof te||Qe!==te?me[Ce]=Qe:me[Ce]=ue(te,this.options.parseAttributeValue,this.options.numberParseOptions)}else this.options.allowBooleanAttributes&&(me[Ce]=!0)}if(!Object.keys(me).length)return;if(this.options.attributesGroupName){const pe={};return pe[this.options.attributesGroupName]=me,pe}return me}}const T=function(K){K=K.replace(/\r\n?/g,` 4183`);const se=new e("!xml");let Ee=se,Ue="",de="";for(let me=0;me<K.length;me++)if(K[me]==="<")if(K[me+1]==="/"){const W=V(K,">",me,"Closing Tag is not closed.");let te=K.substring(me+2,W).trim();if(this.options.removeNSPrefix){const we=te.indexOf(":");we!==-1&&(te=te.substr(we+1))}this.options.transformTagName&&(te=this.options.transformTagName(te)),Ee&&(Ue=this.saveTextToParentTag(Ue,Ee,de));const Ce=de.substring(de.lastIndexOf(".")+1);if(te&&this.options.unpairedTags.indexOf(te)!==-1)throw new Error(`Unpaired tag can not be used as closing tag: </${te}>`);let Qe=0;Ce&&this.options.unpairedTags.indexOf(Ce)!==-1?(Qe=de.lastIndexOf(".",de.lastIndexOf(".")-1),this.tagsNodeStack.pop()):Qe=de.lastIndexOf("."),de=de.substring(0,Qe),Ee=this.tagsNodeStack.pop(),Ue="",me=W}else if(K[me+1]==="?"){let W=G(K,me,!1,"?>");if(!W)throw new Error("Pi Tag is not closed.");if(Ue=this.saveTextToParentTag(Ue,Ee,de),!(this.options.ignoreDeclaration&&W.tagName==="?xml"||this.options.ignorePiTags)){const te=new e(W.tagName);te.add(this.options.textNodeName,""),W.tagName!==W.tagExp&&W.attrExpPresent&&(te[":@"]=this.buildAttributesMap(W.tagExp,de,W.tagName)),this.addChild(Ee,te,de)}me=W.closeIndex+1}else if(K.substr(me+1,3)==="!--"){const W=V(K,"-->",me+4,"Comment is not closed.");if(this.options.commentPropName){const te=K.substring(me+4,W-2);Ue=this.saveTextToParentTag(Ue,Ee,de),Ee.add(this.options.commentPropName,[{[this.options.textNodeName]:te}])}me=W}else if(K.substr(me+1,2)==="!D"){const W=t(K,me);this.docTypeEntities=W.entities,me=W.i}else if(K.substr(me+1,2)==="!["){const W=V(K,"]]>",me,"CDATA is not closed.")-2,te=K.substring(me+9,W);Ue=this.saveTextToParentTag(Ue,Ee,de);let Ce=this.parseTextData(te,Ee.tagname,de,!0,!1,!0,!0);Ce==null&&(Ce=""),this.options.cdataPropName?Ee.add(this.options.cdataPropName,[{[this.options.textNodeName]:te}]):Ee.add(this.options.textNodeName,Ce),me=W+2}else{let W=G(K,me,this.options.removeNSPrefix),te=W.tagName;const Ce=W.rawTagName;let Qe=W.tagExp,we=W.attrExpPresent,De=W.closeIndex;this.options.transformTagName&&(te=this.options.transformTagName(te)),Ee&&Ue&&Ee.tagname!=="!xml"&&(Ue=this.saveTextToParentTag(Ue,Ee,de,!1));const ze=Ee;if(ze&&this.options.unpairedTags.indexOf(ze.tagname)!==-1&&(Ee=this.tagsNodeStack.pop(),de=de.substring(0,de.lastIndexOf("."))),te!==se.tagname&&(de+=de?"."+te:te),this.isItStopNode(this.options.stopNodes,de,te)){let Ze="";if(Qe.length>0&&Qe.lastIndexOf("/")===Qe.length-1)te[te.length-1]==="/"?(te=te.substr(0,te.length-1),de=de.substr(0,de.length-1),Qe=te):Qe=Qe.substr(0,Qe.length-1),me=W.closeIndex;else if(this.options.unpairedTags.indexOf(te)!==-1)me=W.closeIndex;else{const rt=this.readStopNodeData(K,Ce,De+1);if(!rt)throw new Error(`Unexpected end of ${Ce}`);me=rt.i,Ze=rt.tagContent}const tt=new e(te);te!==Qe&&we&&(tt[":@"]=this.buildAttributesMap(Qe,de,te)),Ze&&(Ze=this.parseTextData(Ze,te,de,!0,we,!0,!0)),de=de.substr(0,de.lastIndexOf(".")),tt.add(this.options.textNodeName,Ze),this.addChild(Ee,tt,de)}else{if(Qe.length>0&&Qe.lastIndexOf("/")===Qe.length-1){te[te.length-1]==="/"?(te=te.substr(0,te.length-1),de=de.substr(0,de.length-1),Qe=te):Qe=Qe.substr(0,Qe.length-1),this.options.transformTagName&&(te=this.options.transformTagName(te));const Ze=new e(te);te!==Qe&&we&&(Ze[":@"]=this.buildAttributesMap(Qe,de,te)),this.addChild(Ee,Ze,de),de=de.substr(0,de.lastIndexOf("."))}else{const Ze=new e(te);this.tagsNodeStack.push(Ee),te!==Qe&&we&&(Ze[":@"]=this.buildAttributesMap(Qe,de,te)),this.addChild(Ee,Ze,de),Ee=Ze}Ue="",me=De}}else Ue+=K[me];return se.child};function I(K,se,Ee){const Ue=this.options.updateTag(se.tagname,Ee,se[":@"]);Ue===!1||(typeof Ue=="string"&&(se.tagname=Ue),K.addChild(se))}const F=function(K){if(this.options.processEntities){for(let se in this.docTypeEntities){const Ee=this.docTypeEntities[se];K=K.replace(Ee.regx,Ee.val)}for(let se in this.lastEntities){const Ee=this.lastEntities[se];K=K.replace(Ee.regex,Ee.val)}if(this.options.htmlEntities)for(let se in this.htmlEntities){const Ee=this.htmlEntities[se];K=K.replace(Ee.regex,Ee.val)}K=K.replace(this.ampEntity.regex,this.ampEntity.val)}return K};function N(K,se,Ee,Ue){return K&&(Ue===void 0&&(Ue=Object.keys(se.child).length===0),K=this.parseTextData(K,se.tagname,Ee,!1,se[":@"]?Object.keys(se[":@"]).length!==0:!1,Ue),K!==void 0&&K!==""&&se.add(this.options.textNodeName,K),K=""),K}function U(K,se,Ee){const Ue="*."+Ee;for(const de in K){const me=K[de];if(Ue===me||se===me)return!0}return!1}function $(K,se,Ee=">"){let Ue,de="";for(let me=se;me<K.length;me++){let pe=K[me];if(Ue)pe===Ue&&(Ue="");else if(pe==='"'||pe==="'")Ue=pe;else if(pe===Ee[0])if(Ee[1]){if(K[me+1]===Ee[1])return{data:de,index:me}}else return{data:de,index:me};else pe===" "&&(pe=" ");de+=pe}}function V(K,se,Ee,Ue){const de=K.indexOf(se,Ee);if(de===-1)throw new Error(Ue);return de+se.length-1}function G(K,se,Ee,Ue=">"){const de=$(K,se+1,Ue);if(!de)return;let me=de.data;const pe=de.index,W=me.search(/\s/);let te=me,Ce=!0;W!==-1&&(te=me.substring(0,W),me=me.substring(W+1).trimStart());const Qe=te;if(Ee){const we=te.indexOf(":");we!==-1&&(te=te.substr(we+1),Ce=te!==de.data.substr(we+1))}return{tagName:te,tagExp:me,closeIndex:pe,attrExpPresent:Ce,rawTagName:Qe}}function X(K,se,Ee){const Ue=Ee;let de=1;for(;Ee<K.length;Ee++)if(K[Ee]==="<")if(K[Ee+1]==="/"){const me=V(K,">",Ee,`${se} is not closed`);if(K.substring(Ee+2,me).trim()===se&&(de--,de===0))return{tagContent:K.substring(Ue,Ee),i:me};Ee=me}else if(K[Ee+1]==="?")Ee=V(K,"?>",Ee+1,"StopNode is not closed.");else if(K.substr(Ee+1,3)==="!--")Ee=V(K,"-->",Ee+3,"StopNode is not closed.");else if(K.substr(Ee+1,2)==="![")Ee=V(K,"]]>",Ee,"StopNode is not closed.")-2;else{const me=G(K,Ee,">");me&&((me&&me.tagName)===se&&me.tagExp[me.tagExp.length-1]!=="/"&&de++,Ee=me.closeIndex)}}function ue(K,se,Ee){if(se&&typeof K=="string"){const Ue=K.trim();return Ue==="true"?!0:Ue==="false"?!1:n(K,Ee)}else return r.isExist(K)?K:""}return hb=s,hb}var db={},BB;
4183function Jse(){if(BB)return db;BB=1;function r(s,o){return e(s,o)}function e(s,o,l){let f;const A={};for(let v=0;v<s.length;v++){const T=s[v],I=t(T);let F="";if(l===void 0?F=I:F=l+"."+I,I===o.textNodeName)f===void 0?f=T[I]:f+=""+T[I];else{if(I===void 0)continue;if(T[I]){let N=e(T[I],o,F);const U=i(N,o);T[":@"]?n(N,T[":@"],F,o):Object.keys(N).length===1&&N[o.textNodeName]!==void 0&&!o.alwaysCreateTextNode?N=N[o.textNodeName]:Object.keys(N).length===0&&(o.alwaysCreateTextNode?N[o.textNodeName]="":N=""),A[I]!==void 0&&A.hasOwnProperty(I)?(Array.isArray(A[I])||(A[I]=[A[I]]),A[I].push(N)):o.isArray(I,F,U)?A[I]=[N]:A[I]=N}}}return typeof f=="string"?f.length>0&&(A[o.textNodeName]=f):f!==void 0&&(A[o.textNodeName]=f),A}function t(s){const o=Object.keys(s);for(let l=0;l<o.length;l++){const f=o[l];if(f!==":@")return f}}function n(s,o,l,f){if(o){const A=Object.keys(o),v=A.length;for(let T=0;T<v;T++){const I=A[T];f.isArray(I,l+"."+I,!0,!0)?s[I]=[o[I]]:s[I]=o[I]}}}function i(s,o){const{textNodeName:l}=o,f=Object.keys(s).length;return!!(f===0||f===1&&(s[l]||typeof s[l]=="boolean"||s[l]===0))}return db.prettify=r,db}var pb,PB;function Kse(){if(PB)return pb;PB=1;const{buildOptions:r}=Hse(),e=qse(),{prettify:t}=Jse(),n=uL();class i{constructor(o){this.externalEntities={},this.options=r(o)}parse(o,l){if(typeof o!="string")if(o.toString)o=o.toString();else throw new Error("XML data is accepted in String or Bytes[] form.");if(l){l===!0&&(l={});const v=n.validate(o,l);if(v!==!0)throw Error(`${v.err.msg}:${v.err.line}:${v.err.col}`)}const f=new e(this.options);f.addExternalEntities(this.externalEntities);const A=f.parseXml(o);return this.options.preserveOrder||A===void 0?A:t(A,this.options)}addEntity(o,l){if(l.indexOf("&")!==-1)throw new Error("Entity value can't have '&'");if(o.indexOf("&")!==-1||o.indexOf(";")!==-1)throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if(l==="&")throw new Error("An entity with value '&' is not permitted");this.externalEntities[o]=l}}return pb=i,pb}var Ab,MB;function Zse(){if(MB)return Ab;MB=1;const r=` 4184`;function e(l,f){let A="";return f.format&&f.indentBy.length>0&&(A=r),t(l,f,"",A)}function t(l,f,A,v){let T="",I=!1;for(let F=0;F<l.length;F++){const N=l[F],U=n(N);if(U===void 0)continue;let $="";if(A.length===0?$=U:$=`${A}.${U}`,U===f.textNodeName){let K=N[U];s($,f)||(K=f.tagValueProcessor(U,K),K=o(K,f)),I&&(T+=v),T+=K,I=!1;continue}else if(U===f.cdataPropName){I&&(T+=v),T+=`<![CDATA[${N[U][0][f.textNodeName]}]]>`,I=!1;continue}else if(U===f.commentPropName){T+=v+`<!--${N[U][0][f.textNodeName]}-->`,I=!0;continue}else if(U[0]==="?"){const K=i(N[":@"],f),se=U==="?xml"?"":v;let Ee=N[U][0][f.textNodeName];Ee=Ee.length!==0?" "+Ee:"",T+=se+`<${U}${Ee}${K}?>`,I=!0;continue}let V=v;V!==""&&(V+=f.indentBy);const G=i(N[":@"],f),X=v+`<${U}${G}`,ue=t(N[U],f,$,V);f.unpairedTags.indexOf(U)!==-1?f.suppressUnpairedNode?T+=X+">":T+=X+"/>":(!ue||ue.length===0)&&f.suppressEmptyNode?T+=X+"/>":ue&&ue.endsWith(">")?T+=X+`>${ue}${v}</${U}>`:(T+=X+">",ue&&v!==""&&(ue.includes("/>")||ue.includes("</"))?T+=v+f.indentBy+ue+v:T+=ue,T+=`</${U}>`),I=!0}return T}function n(l){const f=Object.keys(l);for(let A=0;A<f.length;A++){const v=f[A];if(l.hasOwnProperty(v)&&v!==":@")return v}}function i(l,f){let A="";if(l&&!f.ignoreAttributes)for(let v in l){if(!l.hasOwnProperty(v))continue;let T=f.attributeValueProcessor(v,l[v]);T=o(T,f),T===!0&&f.suppressBooleanAttributes?A+=` ${v.substr(f.attributeNamePrefix.length)}`:A+=` ${v.substr(f.attributeNamePrefix.length)}="${T}"`}return A}function s(l,f){l=l.substr(0,l.length-f.textNodeName.length-1);let A=l.substr(l.lastIndexOf(".")+1);for(let v in f.stopNodes)if(f.stopNodes[v]===l||f.stopNodes[v]==="*."+A)return!0;return!1}function o(l,f){if(l&&l.length>0&&f.processEntities)for(let A=0;A<f.entities.length;A++){const v=f.entities[A];l=l.replace(v.regex,v.val)}return l}return Ab=e,Ab}var gb,RB;function Yse(){if(RB)return gb;RB=1;const r=Zse(),e=fL(),t={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:" ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(l,f){return f},attributeValueProcessor:function(l,f){return f},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function n(l){this.options=Object.assign({},t,l),this.options.ignoreAttributes===!0||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=e(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=o),this.processTextOrObjNode=i,this.options.format?(this.indentate=s,this.tagEndChar=`> 4185`,this.newLine=` 4186`):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}n.prototype.build=function(l){return this.options.preserveOrder?r(l,this.options):(Array.isArray(l)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(l={[this.options.arrayNodeName]:l}),this.j2x(l,0,[]).val)},n.prototype.j2x=function(l,f,A){let v="",T="";const I=A.join(".");for(let F in l)if(Object.prototype.hasOwnProperty.call(l,F))if(typeof l[F]>"u")this.isAttribute(F)&&(T+="");else if(l[F]===null)this.isAttribute(F)?T+="":F[0]==="?"?T+=this.indentate(f)+"<"+F+"?"+this.tagEndChar:T+=this.indentate(f)+"<"+F+"/"+this.tagEndChar;
4186else if(l[F]instanceof Date)T+=this.buildTextValNode(l[F],F,"",f);else if(typeof l[F]!="object"){const N=this.isAttribute(F);if(N&&!this.ignoreAttributesFn(N,I))v+=this.buildAttrPairStr(N,""+l[F]);else if(!N)if(F===this.options.textNodeName){let U=this.options.tagValueProcessor(F,""+l[F]);T+=this.replaceEntitiesValue(U)}else T+=this.buildTextValNode(l[F],F,"",f)}else if(Array.isArray(l[F])){const N=l[F].length;let U="",$="";for(let V=0;V<N;V++){const G=l[F][V];if(!(typeof G>"u"))if(G===null)F[0]==="?"?T+=this.indentate(f)+"<"+F+"?"+this.tagEndChar:T+=this.indentate(f)+"<"+F+"/"+this.tagEndChar;else if(typeof G=="object")if(this.options.oneListGroup){const X=this.j2x(G,f+1,A.concat(F));U+=X.val,this.options.attributesGroupName&&G.hasOwnProperty(this.options.attributesGroupName)&&($+=X.attrStr)}else U+=this.processTextOrObjNode(G,F,f,A);else if(this.options.oneListGroup){let X=this.options.tagValueProcessor(F,G);X=this.replaceEntitiesValue(X),U+=X}else U+=this.buildTextValNode(G,F,"",f)}this.options.oneListGroup&&(U=this.buildObjectNode(U,F,$,f)),T+=U}else if(this.options.attributesGroupName&&F===this.options.attributesGroupName){const N=Object.keys(l[F]),U=N.length;for(let $=0;$<U;$++)v+=this.buildAttrPairStr(N[$],""+l[F][N[$]])}else T+=this.processTextOrObjNode(l[F],F,f,A);return{attrStr:v,val:T}},n.prototype.buildAttrPairStr=function(l,f){return f=this.options.attributeValueProcessor(l,""+f),f=this.replaceEntitiesValue(f),this.options.suppressBooleanAttributes&&f==="true"?" "+l:" "+l+'="'+f+'"'};function i(l,f,A,v){const T=this.j2x(l,A+1,v.concat(f));return l[this.options.textNodeName]!==void 0&&Object.keys(l).length===1?this.buildTextValNode(l[this.options.textNodeName],f,T.attrStr,A):this.buildObjectNode(T.val,f,T.attrStr,A)}n.prototype.buildObjectNode=function(l,f,A,v){if(l==="")return f[0]==="?"?this.indentate(v)+"<"+f+A+"?"+this.tagEndChar:this.indentate(v)+"<"+f+A+this.closeTag(f)+this.tagEndChar;{let T="</"+f+this.tagEndChar,I="";return f[0]==="?"&&(I="?",T=""),(A||A==="")&&l.indexOf("<")===-1?this.indentate(v)+"<"+f+A+I+">"+l+T:this.options.commentPropName!==!1&&f===this.options.commentPropName&&I.length===0?this.indentate(v)+`<!--${l}-->`+this.newLine:this.indentate(v)+"<"+f+A+I+this.tagEndChar+l+this.indentate(v)+T}},n.prototype.closeTag=function(l){let f="";return this.options.unpairedTags.indexOf(l)!==-1?this.options.suppressUnpairedNode||(f="/"):this.options.suppressEmptyNode?f="/":f=`></${l}`,f},n.prototype.buildTextValNode=function(l,f,A,v){if(this.options.cdataPropName!==!1&&f===this.options.cdataPropName)return this.indentate(v)+`<![CDATA[${l}]]>`+this.newLine;if(this.options.commentPropName!==!1&&f===this.options.commentPropName)return this.indentate(v)+`<!--${l}-->`+this.newLine;if(f[0]==="?")return this.indentate(v)+"<"+f+A+"?"+this.tagEndChar;{let T=this.options.tagValueProcessor(f,l);return T=this.replaceEntitiesValue(T),T===""?this.indentate(v)+"<"+f+A+this.closeTag(f)+this.tagEndChar:this.indentate(v)+"<"+f+A+">"+T+"</"+f+this.tagEndChar}},n.prototype.replaceEntitiesValue=function(l){if(l&&l.length>0&&this.options.processEntities)for(let f=0;f<this.options.entities.length;f++){const A=this.options.entities[f];l=l.replace(A.regex,A.val)}return l};function s(l){return this.options.indentBy.repeat(l)}function o(l){return l.startsWith(this.options.attributeNamePrefix)&&l!==this.options.textNodeName?l.substr(this.attrPrefixLen):!1}return gb=n,gb}var mb,OB;function Qse(){if(OB)return mb;OB=1;const r=uL(),e=Kse(),t=Yse();return mb={XMLParser:e,XMLValidator:r,XMLBuilder:t},mb}var eoe=Qse();function DB(r,e){if(e?._parser&&e._parser!=="fast-xml-parser")throw new Error(e?._parser);const t={allowBooleanAttributes:!0,ignoreDeclaration:!0,removeNSPrefix:e?.removeNSPrefix,textNodeName:e?.textNodeName,isArray:(i,s,o,l)=>!!e?.arrayPaths?.some(A=>s===A),...e?._fastXML},n=toe(r,t);return e?.uncapitalizeKeys?m2(n):n}function toe(r,e){return new eoe.XMLParser({ignoreAttributes:!1,attributeNamePrefix:"",...e}).parse(r)}const roe="4.2.4",mp={dataType:null,batchType:null,name:"XML",id:"xml",module:"xml",version:roe,worker:!1,extensions:["xml"],mimeTypes:["application/xml","text/xml"],testText:noe,options:{xml:{_parser:"fast-xml-parser",uncapitalizeKeys:!1,removeNSPrefix:!1,textNodeName:"value",arrayPaths:[]}},parse:async(r,e)=>DB(new TextDecoder().decode(r),{...mp.options.xml,...e?.xml}),parseTextSync:(r,e)=>DB(r,{...mp.options.xml,...e?.xml})};function noe(r){return r.startsWith("<?xml")}async function wg(r,e,t,n){return n._parse(r,e,t,n)}function Ri(r,e){if(!r)throw new Error(e||"loader assertion failed.")}const hL=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),FB=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);FB&&parseFloat(FB[1]);function ioe(r,e){return dL(r||{},e)}function dL(r,e,t=0){if(t>3)return e;const n={...r};for(const[i,s]of Object.entries(e))s&&typeof s=="object"&&!Array.isArray(s)?n[i]=dL(n[i]||{},e[i],t+1):n[i]=e[i];return n}function soe(r){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,r)}function ooe(r){return globalThis.loaders?.modules?.[r]||null}
vendor: 4,743 bytes, line 4186
4186function aoe(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.2.4"),globalThis._loadersgl_.version}const loe=aoe();function coe(r,e){if(!r)throw new Error("loaders.gl assertion failed.")}const Tg=typeof process!="object"||String(process)!=="[object process]"||process.browser,pw=typeof importScripts=="function",LB=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);LB&&parseFloat(LB[1]);const _b={};async function eh(r,e=null,t={},n=null){return e&&(r=uoe(r,e,t,n)),_b[r]=_b[r]||foe(r),await _b[r]}function uoe(r,e,t={},n=null){if(!t.useLocalLibraries&&r.startsWith("http"))return r;n=n||r;const i=t.modules||{};return i[n]?i[n]:Tg?t.CDN?(coe(t.CDN.startsWith("http")),`${t.CDN}/${e}@${loe}/dist/libs/${n}`):pw?`../src/libs/${n}`:`modules/${e}/src/libs/${n}`:`modules/${e}/dist/libs/${n}`}async function foe(r){if(r.endsWith("wasm"))return await doe(r);if(!Tg)try{const{requireFromFile:t}=globalThis.loaders||{};return await t?.(r)}catch(t){return console.error(t),null}if(pw)return importScripts(r);const e=await poe(r);return hoe(e,r)}function hoe(r,e){if(!Tg){const{requireFromString:n}=globalThis.loaders||{};return n?.(r,e)}if(pw)return eval.call(globalThis,r),null;const t=document.createElement("script");t.id=e;try{t.appendChild(document.createTextNode(r))}catch{t.text=r}return document.body.appendChild(t),null}async function doe(r){const{readFileAsArrayBuffer:e}=globalThis.loaders||{};return Tg||!e||r.startsWith("http")?await(await fetch(r)).arrayBuffer():await e(r)}async function poe(r){const{readFileAsText:e}=globalThis.loaders||{};return Tg||!e||r.startsWith("http")?await(await fetch(r)).text():await e(r)}function Aoe(r,e=5){return typeof r=="string"?r.slice(0,e):ArrayBuffer.isView(r)?kB(r.buffer,r.byteOffset,e):r instanceof ArrayBuffer?kB(r,0,e):""}function kB(r,e,t){if(r.byteLength<=e+t)return"";const n=new DataView(r);let i="";for(let s=0;s<t;s++)i+=String.fromCharCode(n.getUint8(e+s));return i}function goe(r){try{return JSON.parse(r)}catch{throw new Error(`Failed to parse JSON from data starting with "${Aoe(r)}"`)}}function Aw(r,e,t){const n=t!==void 0?new Uint8Array(r).subarray(e,e+t):new Uint8Array(r).subarray(e);return new Uint8Array(n).buffer}function Eg(r,e){return Ri(r>=0),Ri(e>0),r+(e-1)&-4}function moe(r,e,t){let n;if(r instanceof ArrayBuffer)n=new Uint8Array(r);else{const i=r.byteOffset,s=r.byteLength;n=new Uint8Array(r.buffer||r.arrayBuffer,i,s)}return e.set(n,t),t+Eg(n.byteLength,4)}const _oe="Queued Requests",yoe="Active Requests",voe="Cancelled Requests",boe="Queued Requests Ever",xoe="Active Requests Ever",woe={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0};let Toe=class{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...woe,...e},this.stats=new hh({id:this.props.id}),this.stats.get(_oe),this.stats.get(yoe),this.stats.get(voe),this.stats.get(boe),this.stats.get(xoe)}scheduleRequest(e,t=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);const n={handle:e,priority:0,getPriority:t},i=new Promise(s=>(n.resolve=s,n));return this.requestQueue.push(n),this.requestMap.set(e,i),this._issueNewRequests(),i}_issueRequest(e){const{handle:t,resolve:n}=e;let i=!1;const s=()=>{i||(i=!0,this.requestMap.delete(t),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;const e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(e!==0){this._updateAllRequests();for(let t=0;t<e;++t){const n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){const e=this.requestQueue;for(let t=0;t<e.length;++t){const n=e[t];this._updateRequest(n)||(e.splice(t,1),this.requestMap.delete(n.handle),t--)}e.sort((t,n)=>t.priority-n.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),e.priority<0?(e.resolve(null),!1):!0}};function Eoe(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();const r=window.location?.pathname;return r?.slice(0,r.lastIndexOf("/")+1)||""}function pL(r){const e=r?r.lastIndexOf("/"):-1;return e>=0?r.substr(0,e):""}function Coe(...r){const e=[];for(let s=0;s<r.length;s++)e[s]=r[s];let t="",n=!1,i;for(let s=e.length-1;s>=-1&&!n;s--){let o;s>=0?o=e[s]:(i===void 0&&(i=Eoe()),o=i),o.length!==0&&(t=`${o}/${t}
4186`,n=o.charCodeAt(0)===PA)}return t=Soe(t,!n),n?`/${t}`:t.length>0?t:"."}const PA=47,yb=46;function Soe(r,e){let t="",n=-1,i=0,s,o=!1;for(let l=0;l<=r.length;++l){if(l<r.length)s=r.charCodeAt(l);else{if(s===PA)break;s=PA}if(s===PA){if(!(n===l-1||i===1))if(n!==l-1&&i===2){if(t.length<2||!o||t.charCodeAt(t.length-1)!==yb||t.charCodeAt(t.length-2)!==yb){if(t.length>2){const f=t.length-1;let A=f;for(;A>=0&&t.charCodeAt(A)!==PA;--A);if(A!==f){t=A===-1?"":t.slice(0,A),n=l,i=0,o=!1;continue}}else if(t.length===2||t.length===1){t="",n=l,i=0,o=!1;continue}}e&&(t.length>0?t+="/..":t="..",o=!0)}else{const f=r.slice(n+1,l);t.length>0?t+=`/${f}`:t=f,o=!1}n=l,i=0}else s===yb&&i!==-1?++i:i=-1}return t}class Ioe{fetch;loadOptions;_needsRefresh=!0;props;constructor(e){this.props={...e},this.loadOptions={...e.loadOptions},this.fetch=Boe(this.loadOptions)}setProps(e){this.props=Object.assign(this.props,e),this.setNeedsRefresh()}setNeedsRefresh(){this._needsRefresh=!0}getNeedsRefresh(e=!0){const t=this._needsRefresh;return e&&(this._needsRefresh=!1),t}}function Boe(r){const e=r?.fetch;if(e&&typeof e=="function")return(n,i)=>e(n,i);const t=r?.fetch;return t&&typeof t!="function"?n=>fetch(n,t):n=>fetch(n)}class gw extends Ioe{static type="template";static testURL=e=>!1}function Poe(r,e){const t=mp.parseTextSync?.(r,e),n=t?.ServiceExceptionReport?.ServiceException||t?.["ogc:ServiceExceptionReport"]?.["ogc:ServiceException"];return typeof n=="string"?n:n.value||n.code||"Unknown error"}const Moe="4.2.4",Sm={dataType:null,batchType:null,id:"wms-error",name:"WMS Error",module:"wms",version:Moe,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.se_xml","application/xml","text/xml"],testText:Roe,options:{wms:{throwOnError:!1}},parse:async(r,e)=>vb(new TextDecoder().decode(r),e),parseSync:(r,e)=>vb(new TextDecoder().decode(r),e),parseTextSync:(r,e)=>vb(r,e)};function Roe(r){return r.startsWith("<?xml")}function vb(r,e){const t={...Sm.options.wms,...e?.wms},n=Poe(r,t),i=t.minimalErrors?n:`WMS Service error: ${n}`;if(t.throwOnError)throw new Error(i);return i}function _p(r){return Array.isArray(r)?r:r?[r]:[]}function J_(r){const e=_p(r);return e.length>0&&e.every(t=>typeof t=="string")?e:[]}function V0(r,e=void 0){switch(typeof r){case"number":return r;case"string":return parseFloat(r);default:return}}function bb(r,e=void 0){switch(typeof r){case"number":return r;case"string":return parseInt(r,10);default:return}}function sp(r){switch(r){case"true":return!0;case"false":return!1;case"1":return!0;case"0":return!1;default:return!1}}function NB(r,e){const t=mp.parseTextSync?.(r,e),n=t.WMT_MS_Capabilities||t.WMS_Capabilities||t,i=Ooe(n);if(e?.inheritedLayerProps)for(const s of i.layers)gL(s,null);return e?.includeRawJSON&&(i.json=n),e?.includeXMLText&&(i.xml=r),i}function Ooe(r){const e={version:String(r.version||""),name:String(r.Service?.Name||"unnamed"),title:r.Service?.Title?String(r.Service?.Title):void 0,abstract:r.Service?.Abstract?String(r.Service?.Abstract):void 0,keywords:J_(r.Service?.KeywordList?.Keyword),fees:r.Service?.Fees?JSON.stringify(r.Service?.Fees):void 0,accessConstraints:r.Service?.AccessConstraints?JSON.stringify(r.Service?.AccessConstraints):void 0,layerLimit:bb(r.Service?.LayerLimit),maxWidth:bb(r.Service?.maxWidth),maxHeight:bb(r.Service?.maxHeight),layers:[],requests:Doe(r.Capability?.Request),exceptions:Foe(r.Exception)},t=_p(r.Capability?.Layer);for(const n of t)e.layers.push(AL(n));for(const[n,i]of Object.entries(e))i===void 0&&delete e[n];return e}function Doe(r){const e={};for(const[t,n]of Object.entries(r||{})){const i=J_(n?.Format);e[t]={mimeTypes:i}}return e}function Foe(r){if(_p(r?.Format).length>0)return{mimeTypes:J_(r)}}function AL(r){const e={title:String(r?.Title||""),name:r?.Name&&String(r?.Name),abstract:r?.Name&&String(r?.Abstract),keywords:J_(r.KeywordList?.Keyword)},t=r?.CRS||r?.SRS;t&&Array.isArray(t)&&t.every(A=>typeof A=="string")&&(e.crs=t);let n=r?.EX_GeographicBoundingBox&&Loe(r?.EX_GeographicBoundingBox);n&&(e.geographicBoundingBox=n),n=r?.LatLonBoundingBox&&koe(r?.LatLonBoundingBox),n&&(e.geographicBoundingBox=n);const i=r?.BoundingBox&&Noe(r?.BoundingBox);i&&i.length>0&&(e.boundingBoxes=i);const o=_p(r?.Dimension).map(A=>zoe(A));o.length&&(e.dimensions=o),r?.opaque&&(e.opaque=sp(r?.opaque)),r?.cascaded&&(e.cascaded=sp(r?.cascaded)),r?.query
4186able&&(e.queryable=sp(r?.queryable));const l=_p(r?.Layer),f=[];for(const A of l)f.push(AL(A));f.length>0&&(e.layers=f);for(const[A,v]of Object.entries(e))v===void 0&&delete e[A];return e}function Loe(r){const{westBoundLongitude:e,northBoundLatitude:t,eastBoundLongitude:n,southBoundLatitude:i}=r;return[[e,i],[n,t]]}function koe(r){const{minx:e,miny:t,maxx:n,maxy:i}=r;return[[e,t],[n,i]]}function Noe(r){return _p(r).map(t=>Uoe(t))}function Uoe(r){const{CRS:e,SRS:t,minx:n,miny:i,maxx:s,maxy:o,resx:l,resy:f}=r,A={crs:e||t,boundingBox:[[V0(n),V0(i)],[V0(s),V0(o)]]};return l&&(A.xResolution=l),f&&(A.yResolution=f),A}function zoe(r){const{name:e,units:t,value:n}=r,i={name:e,units:t,extent:n};return r.unitSymbol&&(i.unitSymbol=r.unitSymbol),r.default&&(i.defaultValue=r.default),r.multipleValues&&(i.multipleValues=sp(r.multipleValues)),r.nearestValue&&(i.nearestValue=sp(r.nearestValue)),r.current&&(i.current=sp(r.current)),i}function gL(r,e){e?.geographicBoundingBox&&!r.geographicBoundingBox&&(r.geographicBoundingBox=[...e.geographicBoundingBox]),e?.crs&&!r.crs&&(r.crs=[...e.crs]),e?.boundingBoxes&&!r.boundingBoxes&&(r.boundingBoxes=[...e.boundingBoxes]),e?.dimensions&&!r.dimensions&&(r.dimensions=[...e.dimensions]);for(const t of r.layers||[])gL(t,r)}const Voe="4.2.4",mw={dataType:null,batchType:null,id:"wms-capabilities",name:"WMS Capabilities",module:"wms",version:Voe,worker:!1,extensions:["xml"],mimeTypes:["application/vnd.ogc.wms_xml","application/xml","text/xml"],testText:joe,options:{wms:{}},parse:async(r,e)=>NB(new TextDecoder().decode(r),e?.wms),parseTextSync:(r,e)=>NB(r,e?.wms)};function joe(r){return r.startsWith("<?xml")}function UB(r,e){const n=(mp.parseTextSync?.(r,e)).FeatureInfoResponse?.FIELDS||[];return{features:(Array.isArray(n)?n:[n]).map(s=>Goe(s))}}function Goe(r){return{attributes:r||{},type:"",bounds:{bottom:0,top:0,left:0,right:0}}}const Hoe={...mw,dataType:null,id:"wms-feature-info",name:"WMS FeatureInfo",parse:async(r,e)=>UB(new TextDecoder().decode(r),e),parseTextSync:(r,e)=>UB(r,e)};function zB(r,e){return mp.parseTextSync?.(r,e)}const Woe={...mw,dataType:null,id:"wms-layer-description",name:"WMS DescribeLayer",parse:async(r,e)=>zB(new TextDecoder().decode(r),e),parseTextSync:(r,e)=>zB(r,e)};function $oe(r,e){const{type:t="auto"}=r,n=t==="auto"?qoe(r.url,e):Xoe(t,e);if(!n)throw new Error("Not a valid image source type");return n.create(r)}function Xoe(r,e){for(const t of e)if(t.type===r)return t;return null}function qoe(r,e){for(const t of e)if(t.testURL&&t.testURL(r))return t;return null}const Joe="4.2.4",Koe=globalThis.loaders?.parseImageNode,_2=typeof Image<"u",y2=typeof ImageBitmap<"u",Zoe=!!Koe,v2=hL?!0:Zoe;function Yoe(r){switch(r){case"auto":return y2||_2||v2;case"imagebitmap":return y2;case"image":return _2;case"data":return v2;default:throw new Error(`@loaders.gl/images: image ${r} not supported in this environment`)}}function Qoe(){if(y2)return"imagebitmap";if(_2)return"image";if(v2)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function eae(r){const e=tae(r);if(!e)throw new Error("Not an image");return e}function mL(r){switch(eae(r)){case"data":return r;case"image":case"imagebitmap":const e=document.createElement("canvas"),t=e.getContext("2d");if(!t)throw new Error("getImageData");return e.width=r.width,e.height=r.height,t.drawImage(r,0,0),t.getImageData(0,0,r.width,r.height);default:throw new Error("getImageData")}}function tae(r){return typeof ImageBitmap<"u"&&r instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&r instanceof Image?"image":r&&typeof r=="object"&&r.data&&r.width&&r.height?"data":null}const rae=/^data:image\/svg\+xml/,nae=/\.svg((\?|#).*)?$/;function _w(r){return r&&(rae.test(r)||nae.test(r))}function iae(r,e){if(_w(e)){let n=new TextDecoder().decode(r);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(n=unescape(encodeURIComponent(n)))}catch(s){throw new Error(s.message)}return`data:image/svg+xml;base64,${btoa(n)}`}return _L(r,e)}function _L(r,e){if(_w(e))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(r)])}
4186async function yL(r,e,t){const n=iae(r,t),i=self.URL||self.webkitURL,s=typeof n!="string"&&i.createObjectURL(n);try{return await sae(s||n,e)}finally{s&&i.revokeObjectURL(s)}}async function sae(r,e){const t=new Image;return t.src=r,e.image&&e.image.decode&&t.decode?(await t.decode(),t):await new Promise((n,i)=>{try{t.onload=()=>n(t),t.onerror=s=>{const o=s instanceof Error?s.message:"error";i(new Error(o))}}catch(s){i(s)}})}const oae={};let VB=!0;async function aae(r,e,t){let n;_w(t)?n=await yL(r,e,t):n=_L(r,t);const i=e&&e.imagebitmap;return await lae(n,i)}async function lae(r,e=null){if((cae(e)||!VB)&&(e=null),e)try{return await createImageBitmap(r,e)}catch(t){console.warn(t),VB=!1}return await createImageBitmap(r)}function cae(r){for(const e in r||oae)return!1;return!0}function uae(r){return!pae(r,"ftyp",4)||(r[8]&96)===0?null:fae(r)}function fae(r){switch(hae(r,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function hae(r,e,t){return String.fromCharCode(...r.slice(e,t))}function dae(r){return[...r].map(e=>e.charCodeAt(0))}function pae(r,e,t=0){const n=dae(e);for(let i=0;i<n.length;++i)if(n[i]!==r[i+t])return!1;return!0}const ic=!1,$A=!0;function yw(r){const e=Cg(r);return gae(e)||yae(e)||mae(e)||_ae(e)||Aae(e)}function Aae(r){const e=new Uint8Array(r instanceof DataView?r.buffer:r),t=uae(e);return t?{mimeType:t.mimeType,width:0,height:0}:null}function gae(r){const e=Cg(r);return e.byteLength>=24&&e.getUint32(0,ic)===2303741511?{mimeType:"image/png",width:e.getUint32(16,ic),height:e.getUint32(20,ic)}:null}function mae(r){const e=Cg(r);return e.byteLength>=10&&e.getUint32(0,ic)===1195984440?{mimeType:"image/gif",width:e.getUint16(6,$A),height:e.getUint16(8,$A)}:null}function _ae(r){const e=Cg(r);return e.byteLength>=14&&e.getUint16(0,ic)===16973&&e.getUint32(2,$A)===e.byteLength?{mimeType:"image/bmp",width:e.getUint32(18,$A),height:e.getUint32(22,$A)}:null}function yae(r){const e=Cg(r);if(!(e.byteLength>=3&&e.getUint16(0,ic)===65496&&e.getUint8(2)===255))return null;const{tableMarkers:n,sofMarkers:i}=vae();let s=2;for(;s+9<e.byteLength;){const o=e.getUint16(s,ic);if(i.has(o))return{mimeType:"image/jpeg",height:e.getUint16(s+5,ic),width:e.getUint16(s+7,ic)};if(!n.has(o))return null;s+=2,s+=e.getUint16(s,ic)}return null}function vae(){const r=new Set([65499,65476,65484,65501,65534]);for(let t=65504;t<65520;++t)r.add(t);return{tableMarkers:r,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function Cg(r){if(r instanceof DataView)return r;if(ArrayBuffer.isView(r))return new DataView(r.buffer);if(r instanceof ArrayBuffer)return new DataView(r);throw new Error("toDataView")}async function bae(r,e){const{mimeType:t}=yw(r)||{},n=globalThis.loaders?.parseImageNode;return Ri(n),await n(r,t)}async function xae(r,e,t){e=e||{};const i=(e.image||{}).type||"auto",{url:s}=t||{},o=wae(i);let l;switch(o){case"imagebitmap":l=await aae(r,e,s);break;case"image":l=await yL(r,e,s);break;case"data":l=await bae(r);break;default:Ri(!1)}return i==="data"&&(l=mL(l)),l}function wae(r){switch(r){case"auto":case"data":return Qoe();default:return Yoe(r),r}}const Tae=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],Eae=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Cae={image:{type:"auto",decode:!0}},h_={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:Joe,mimeTypes:Eae,extensions:Tae,parse:xae,tests:[r=>!!yw(new DataView(r))],options:Cae},xb={};function Sae(r){if(xb[r]===void 0){const e=hL?Bae(r):Iae(r);xb[r]=e}return xb[r]}function Iae(r){const e=["image/png","image/jpeg","image/gif"],t=globalThis.loaders?.imageFormatsNode||e;return!!globalThis.loaders?.parseImageNode&&t.includes(r)}function Bae(r){switch(r){case"image/avif":case"image/webp":return Pae(r);default:return!0}}function Pae(r){try{return document.createElement("canvas").toDataURL(r).indexOf(`data:${r}`)===0}catch{return!1}}const Mae={type:"wms",testURL:r=>r.toLowerCase().includes("wms"),create:r=>new Rae(r)};class Rae extends gw{url;data;substituteCRS84;flipCRS;wmsParameters;vendorParameters;capabilities=null;constructor(e){super(e),this.url=e.url,this.data=e.url,this.substituteCRS84=e.substituteCRS84??!1,this.flipCRS=["EPSG:4326"],this.wmsParameters={layers:void 0,query_layers:void 0,styles:void 0,version:"1.3.0",crs:"EPSG:4326",format:"image/png",info_format:"text/plain",transparent:void 0,time:void 0,elevation:void 0,...e.wmsParameters},this.vendorParameters=e.vendorParameters||{}}async getMetadata(){const e=await this.getCapabilities();return this.normalizeMetadata(e)}async getImage(e){const{boundingBox:t,bbox:n,...i}=e,s={bbox:t?[...t[0],...t[1]]:n,...i};return await this.getMap(s)}normalizeMetadata(e){return e}async getCapabilities(e,t){const n=this.getCapabilitiesURL(e,t),i=await this.fetch(n),s=await i.arrayBuffer();this._checkResponse(i,s);const o=await mw.parse(s,this.loadOptions);return this.capabilities=o,o}async getMap(e,t){const n=this.getMapURL(e,t),i=await this.fetch(n),s=await i.arrayBuffer();this._checkResponse(i,s);try{return await h_.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}async getFeatureInfo(e,t){const n=this.getFeatureInfoURL(e,t),i=await this.fetch(n),s=await i.arrayBuffer();return this._checkResponse(i,s),await Hoe.parse(s,this.loadOptions)}async getFeatureInfoText(e,t){const n=this.getFeatureInfoURL(e,t),i=await this.fetch(n),s=await i.arrayBuffer();return this._checkResponse(i,s),new TextDecoder().decode(s)}async describeLayer(e,t){const n=this.describeLayerURL(e,t),i=await this.fetch(n),s=await i.arrayBuffer();return this._checkResponse(i,s),await Woe.parse(s,this.loadOptions)}async getLegendGraphic(e,t){const n=this.getLegendGraphicURL(e,t),i=await this.fetch(n),s=await i.arrayBuffer();this._checkResponse(i,s);try{return await h_.parse(s,this.loadOptions)}catch{throw this._parseError(s)}}getCapabilitiesURL(e,t){const n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetCapabilities",n,t)}getMapURL(e,t){e=this._getWMS130Parameters(e);const n={version:this.wmsParameters.version,format:this.wmsParameters.format,transparent:this.wmsParameters.transparent,time:this.wmsParameters.time,elevation:this.wmsParameters.elevation,layers:this.wmsParameters.layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetMap",n,t)}getFeatureInfoURL(e,t){e=this._getWMS130Parameters(e);const{boundingBox:n,bbox:i}=e;e.bbox=n?[...n[0],...n[1]]:i;const s={version:this.wmsParameters.version,info_format:this.wmsParameters.info_format,layers:this.wmsParameters.layers,query_layers:this.wmsParameters.query_layers,styles:this.wmsParameters.styles,crs:this.wmsParameters.crs,...e};return this._getWMSUrl("GetFeatureInfo",s,t)}describeLayerURL(e,t){const n={version:this.wmsParameters.version,...e};return this._getWMSUrl("DescribeLayer",n,t)}getLegendGraphicURL(e,t){const n={version:this.wmsParameters.version,...e};return this._getWMSUrl("GetLegendGraphic",n,t)}_parseWMSUrl(e){const[t,n]=e.split("?"),i=n.split("&"),s={};for(const o of i){const[l,f]=o.split("=");s[l]=f}return{url:t,parameters:s}}_getWMSUrl(e,t,n){let i=this.url,s=!0;const o={service:"WMS",version:t.version,request:e,...t,...this.vendorParameters,...n},l=["transparent","time","elevation"];for(const[f,A]of Object.entries(o))(!l.includes(f)||A)&&(i+=s?"?":"&",s=!1,i+=this._getURLParameter(f,A,t));return encodeURI(i)}_getWMS130Parameters(e){const t={...e};return t.srs&&(t.crs=t.crs||t.srs,delete t.srs),t}_getURLParameter(e,t,n){switch(e){case"crs":n.version!=="1.3.0"?e="srs":this.substituteCRS84&&t==="EPSG:4326"&&(t="CRS:84");break;case"srs":n.version==="1.3.0"&&(e="crs");break;case"bbox":const i=this._flipBoundingBox(t,n);i&&(t=i);break;case"x":n.version==="1.3.0"&&(e="i");break;case"y":n.version==="1.3.0"&&(e="j");break}return e=e.toUpperCase(),Array.isArray(t)?`${e}=${t.join(",")}`:`${e}
4186=${t?String(t):""}`}_flipBoundingBox(e,t){if(!Array.isArray(e)||e.length!==4)return null;const n=t.version==="1.3.0"&&this.flipCRS.includes(t.crs||"")&&!(this.substituteCRS84&&t.crs==="EPSG:4326"),i=e;return n?[i[1],i[0],i[3],i[2]]:i}async _fetchArrayBuffer(e){const t=await this.fetch(e),n=await t.arrayBuffer();return this._checkResponse(t,n),n}_checkResponse(e,t){const n=e.headers["content-type"];if(!e.ok||Sm.mimeTypes.includes(n)){const i=ioe(this.loadOptions,{wms:{throwOnError:!0}}),s=Sm.parseSync?.(t,i);throw new Error(s)}}_parseError(e){const t=Sm.parseSync?.(e,this.loadOptions);return new Error(t)}}class Oae extends gw{static type="template";static testURL=e=>e.toLowerCase().includes("{");constructor(e){super(e)}async getMetadata(){throw new Error("ImageSource.getMetadata not implemented")}async getImage(e){const t=this.getGranularParameters(e),n=this.getURLFromTemplate(t),s=await(await this.fetch(n)).arrayBuffer();return await h_.parse(s)}getGranularParameters(e){const[[t,n],[i,s]]=e.boundingBox;return{...e,east:t,north:n,south:s,west:i}}getURLFromTemplate(e){let t=this.props.url;for(const[n,i]of Object.entries(e))t=t.replace(`\${${n}}`,String(i)),t=t.replace(`{${n}}`,String(i));return t}}class Dae extends Oae{data;constructor(e){super(e),this.data=e.url}async getMetadata(){return await this.metadata()}async getImage(e){throw new Error("not implemented")}async metadata(){throw new Error("not implemented")}exportImage(e){throw new Error("not implemented")}metadataURL(e){return`${this.props.url}?f=pjson`}exportImageURL(e){const t=`bbox=${e.bbox[0]},${e.bbox[1]},${e.bbox[2]},${e.bbox[3]}`,n=`size=${e.width},${e.height}`,i={...e,bbox:t,size:n};return delete i.width,delete i.height,this.getUrl("exportImage",i)}getUrl(e,t,n){let i=`${this.props.url}/${e}`,s=!0;for(const[o,l]of Object.entries(t))i+=s?"?":"&",s=!1,Array.isArray(l)?i+=`${o.toUpperCase()}=${l.join(",")}`:i+=`${o.toUpperCase()}=${l?String(l):""}`;return i}async checkResponse(e){if(!e.ok)throw new Error("error")}}const Fae={type:"arcgis-image-server",testURL:r=>r.toLowerCase().includes("ImageServer"),create:r=>new Dae(r)},Lae=[Mae,Fae];function kae(r){return $oe(r,Lae)}const jB=6378137*Math.PI;function GB(r){const e=Yc(r);return e[0]=(e[0]/256-1)*jB,e[1]=(e[1]/256-1)*jB,e}const Nae={id:"imagery-layer",data:"",serviceType:"auto",srs:"auto",layers:{type:"array",compare:!0,value:[]},onMetadataLoad:{type:"function",value:()=>{}},onMetadataLoadError:{type:"function",value:console.error},onImageLoadStart:{type:"function",value:()=>{}},onImageLoad:{type:"function",value:()=>{}},onImageLoadError:{type:"function",compare:!1,value:(r,e)=>console.error(e,r)}};class vw extends Ss{get isLoaded(){return this.state?.loadCounter===0&&super.isLoaded}shouldUpdateState(){return!0}initializeState(){this.state._nextRequestId=0,this.state.lastRequestId=-1,this.state.loadCounter=0}updateState({changeFlags:e,props:t,oldProps:n}){const{viewport:i}=this.context;e.dataChanged||t.serviceType!==n.serviceType?(this.state.imageSource=this._createImageSource(t),this._loadMetadata(),this.debounce(()=>this.loadImage(i,"image source changed"),0)):rs(t.layers,n.layers,1)?e.viewportChanged&&this.debounce(()=>this.loadImage(i,"viewport changed")):this.debounce(()=>this.loadImage(i,"layers changed"),0)}finalizeState(){}renderLayers(){const{bounds:e,image:t,lastRequestParameters:n}=this.state;return t&&new $_({...this.getSubLayerProps({id:"bitmap"}),_imageCoordinateSystem:n.srs==="EPSG:4326"?Qr.LNGLAT:Qr.CARTESIAN,bounds:e,image:t})}async getFeatureInfoText(e,t){const{lastRequestParameters:n}=this.state;return n?await this.state.imageSource.getFeatureInfoText?.({...n,query_layers:n.layers,x:e,y:t,info_format:"application/vnd.ogc.gml"}):""}_createImageSource(e){if(e.data instanceof gw)return e.data;if(typeof e.data=="string")return kae({url:e.data,loadOptions:e.loadOptions,type:e.serviceType});throw new Error("invalid image source in props.data")}async _loadMetadata(){const{imageSource:e}=this.state;try{this.state.loadCounter++;const t=await e.getMetadata();this.state.imageSource===e&&this.getCurrentLayer()?.props.onMetadataLoad(t)}catch(t){this.getCurrentLayer()?.props.onMetadataLoadError(t)}finally{this.state.loadCounter--}}async loadImage(e,t){const{layers:n,serviceType:i}=this.props;if(i==="wms"&&n.length===0)return;const s=e.getBounds(),{width:o,height:l}=e,f=this.getRequestId();let{srs:A}=this.props;A==="auto"&&(A=e.resolution?"EPSG:4326":"EPSG:3857");const v={width:o,height:l,boundingBox:[[s[0],s[1]],[s[2],s[3]]],layers:n,crs:A};if(A==="EPSG:3857"){const T=GB([s[0],s[1]]),I=GB([s[2],s[3]]);
vendor: 10,874 bytes, line 4186
4186v.boundingBox=[T,I]}try{this.state.loadCounter++,this.props.onImageLoadStart(f);const T=await this.state.imageSource.getImage(v);this.state.lastRequestId<f&&(this.getCurrentLayer()?.props.onImageLoad(f),this.setState({image:T,bounds:s,lastRequestParameters:v,lastRequestId:f}))}catch(T){this.raiseError(T,"Load image"),this.getCurrentLayer()?.props.onImageLoadError(f,T)}finally{this.state.loadCounter--}}getRequestId(){return this.state._nextRequestId++}debounce(e,t=500){clearTimeout(this.state._timeoutId),this.state._timeoutId=setTimeout(()=>e(),t)}}vw.layerName="WMSLayer";vw.defaultProps=Nae;const Uae={getHeight:{type:"accessor",value:0},greatCircle:!0};class bw extends yg{}bw.layerName="GreatCircleLayer";bw.defaultProps=Uae;const zae={...af.defaultProps};class lf extends Ss{indexToBounds(){return null}renderLayers(){const{elevationScale:e,extruded:t,wireframe:n,filled:i,stroked:s,lineWidthUnits:o,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:A,lineJointRounded:v,lineMiterLimit:T,lineDashJustified:I,getElevation:F,getFillColor:N,getLineColor:U,getLineWidth:$}=this.props,{updateTriggers:V,material:G,transitions:X}=this.props,ue=this.getSubLayerClass("cell",af),{updateTriggers:K,...se}=this.indexToBounds()||{};return new ue({filled:i,wireframe:n,extruded:t,elevationScale:e,stroked:s,lineWidthUnits:o,lineWidthScale:l,lineWidthMinPixels:f,lineWidthMaxPixels:A,lineJointRounded:v,lineMiterLimit:T,lineDashJustified:I,material:G,transitions:X,getElevation:F,getFillColor:N,getLineColor:U,getLineWidth:$},this.getSubLayerProps({id:"cell",updateTriggers:V&&{...K,getElevation:V.getElevation,getFillColor:V.getFillColor,getLineColor:V.getLineColor,getLineWidth:V.getLineWidth}}),se)}}lf.layerName="GeoCellLayer";lf.defaultProps=zae;function Vae(r){throw new Error('Could not dynamically require "'+r+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var Im={exports:{}},jae=Im.exports,HB;function Gae(){return HB||(HB=1,(function(r){(function(e,t){typeof Vae=="function"&&r&&r.exports?r.exports=t():(e.dcodeIO=e.dcodeIO||{}).Long=t()})(jae,function(){function e(me,pe,W){this.low=me|0,this.high=pe|0,this.unsigned=!!W}e.prototype.__isLong__,Object.defineProperty(e.prototype,"__isLong__",{value:!0,enumerable:!1,configurable:!1});function t(me){return(me&&me.__isLong__)===!0}e.isLong=t;var n={},i={};function s(me,pe){var W,te,Ce;return pe?(me>>>=0,(Ce=0<=me&&me<256)&&(te=i[me],te)?te:(W=l(me,(me|0)<0?-1:0,!0),Ce&&(i[me]=W),W)):(me|=0,(Ce=-128<=me&&me<128)&&(te=n[me],te)?te:(W=l(me,me<0?-1:0,!1),Ce&&(n[me]=W),W))}e.fromInt=s;function o(me,pe){if(isNaN(me)||!isFinite(me))return pe?G:V;if(pe){if(me<0)return G;if(me>=N)return Ee}else{if(me<=-U)return Ue;if(me+1>=U)return se}return me<0?o(-me,pe).neg():l(me%F|0,me/F|0,pe)}e.fromNumber=o;function l(me,pe,W){return new e(me,pe,W)}e.fromBits=l;var f=Math.pow;function A(me,pe,W){if(me.length===0)throw Error("empty string");if(me==="NaN"||me==="Infinity"||me==="+Infinity"||me==="-Infinity")return V;if(typeof pe=="number"?(W=pe,pe=!1):pe=!!pe,W=W||10,W<2||36<W)throw RangeError("radix");var te;if((te=me.indexOf("-"))>0)throw Error("interior hyphen");if(te===0)return A(me.substring(1),pe,W).neg();for(var Ce=o(f(W,8)),Qe=V,we=0;we<me.length;we+=8){var De=Math.min(8,me.length-we),ze=parseInt(me.substring(we,we+De),W);if(De<8){var Ze=o(f(W,De));Qe=Qe.mul(Ze).add(o(ze))}else Qe=Qe.mul(Ce),Qe=Qe.add(o(ze))}return Qe.unsigned=pe,Qe}e.fromString=A;function v(me){return me instanceof e?me:typeof me=="number"?o(me):typeof me=="string"?A(me):l(me.low,me.high,me.unsigned)}e.fromValue=v;var T=65536,I=1<<24,F=T*T,N=F*F,U=N/2,$=s(I),V=s(0);e.ZERO=V;var G=s(0,!0);e.UZERO=G;var X=s(1);e.ONE=X;var ue=s(1,!0);e.UONE=ue;var K=s(-1);e.NEG_ONE=K;var se=l(-1,2147483647,!1);e.MAX_VALUE=se;var Ee=l(-1,-1,!0);e.MAX_UNSIGNED_VALUE=Ee;var Ue=l(0,-2147483648,!1);e.MIN_VALUE=Ue;var de=e.prototype;return de.toInt=function(){return this.unsigned?this.low>>>0:this.low},de.toNumber=function(){return this.unsigned?(this.high>>>0)*F+(this.low>>>0):this.high*F+(this.low>>>0)},de.toString=function(pe){if(pe=pe||10,pe<2||36<pe)throw RangeError("radix");if(this.isZero())return"0";if(this.isNegative())if(this.eq(Ue)){var W=o(pe),te=this.div(W),Ce=te.mul(W).sub(this);return te.toString(pe)+Ce.toInt().toString(pe)}else return"-"+this.neg().toString(pe);for(var Qe=o(f(pe,6),this.unsigned),we=this,De="";;){var ze=we.div(Qe),Ze=we.sub(ze.mul(Qe)).toInt()>>>0,tt=Ze.toString(pe);if(we=ze,we.isZero())return tt+De;for(;tt.length<6;)tt="0"+tt;De=""+tt+De}},de.getHighBits=function(){return this.high},de.getHighBitsUnsigned=function(){return this.high>>>0},de.getLowBits=function(){return this.low},de.getLowBitsUnsigned=function(){return this.low>>>0},de.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Ue)?64:this.neg().getNumBitsAbs();for(var pe=this.high!=0?this.high:this.low,W=31;W>0&&(pe&1<<W)==0;W--);return this.high!=0?W+33:W+1},de.isZero=function(){return this.high===0&&this.low===0},de.isNegative=function(){return!this.unsigned&&this.high<0},de.isPositive=function(){return this.unsigned||this.high>=0},de.isOdd=function(){return(this.low&1)===1},de.isEven=function(){return(this.low&1)===0},de.equals=function(pe){return t(pe)||(pe=v(pe)),this.unsigned!==pe.unsigned&&this.high>>>31===1&&pe.high>>>31===1?!1:this.high===pe.high&&this.low===pe.low},de.eq=de.equals,de.notEquals=function(pe){return!this.eq(pe)},de.neq=de.notEquals,de.lessThan=function(pe){return this.comp(pe)<0},de.lt=de.lessThan,de.lessThanOrEqual=function(pe){return this.comp(pe)<=0},de.lte=de.lessThanOrEqual,de.greaterThan=function(pe){return this.comp(pe)>0},de.gt=de.greaterThan,de.greaterThanOrEqual=function(pe){return this.comp(pe)>=0},de.gte=de.greaterThanOrEqual,de.compare=function(pe){if(t(pe)||(pe=v(pe)),this.eq(pe))return 0;var W=this.isNegative(),te=pe.isNegative();return W&&!te?-1:!W&&te?1:this.unsigned?pe.high>>>0>this.high>>>0||pe.high===this.high&&pe.low>>>0>this.low>>>0?-1:1:this.sub(pe).isNegative()?-1:1},de.comp=de.compare,de.negate=function(){return!this.unsigned&&this.eq(Ue)?Ue:this.not().add(X)},de.neg=de.negate,de.add=function(pe){t(pe)||(pe=v(pe));var W=this.high>>>16,te=this.high&65535,Ce=this.low>>>16,Qe=this.low&65535,we=pe.high>>>16,De=pe.high&65535,ze=pe.low>>>16,Ze=pe.low&65535,tt=0,rt=0,ct=0,bt=0;return bt+=Qe+Ze,ct+=bt>>>16,bt&=65535,ct+=Ce+ze,rt+=ct>>>16,ct&=65535,rt+=te+De,tt+=rt>>>16,rt&=65535,tt+=W+we,tt&=65535,l(ct<<16|bt,tt<<16|rt,this.unsigned)},de.subtract=function(pe){return t(pe)||(pe=v(pe)),this.add(pe.neg())},de.sub=de.subtract,de.multiply=function(pe){if(this.isZero()||(t(pe)||(pe=v(pe)),pe.isZero()))return V;if(this.eq(Ue))return pe.isOdd()?Ue:V;if(pe.eq(Ue))return this.isOdd()?Ue:V;if(this.isNegative())return pe.isNegative()?this.neg().mul(pe.neg()):this.neg().mul(pe).neg();if(pe.isNegative())return this.mul(pe.neg()).neg();if(this.lt($)&&pe.lt($))return o(this.toNumber()*pe.toNumber(),this.unsigned);var W=this.high>>>16,te=this.high&65535,Ce=this.low>>>16,Qe=this.low&65535,we=pe.high>>>16,De=pe.high&65535,ze=pe.low>>>16,Ze=pe.low&65535,tt=0,rt=0,ct=0,bt=0;return bt+=Qe*Ze,ct+=bt>>>16,bt&=65535,ct+=Ce*Ze,rt+=ct>>>16,ct&=65535,ct+=Qe*ze,rt+=ct>>>16,ct&=65535,rt+=te*Ze,tt+=rt>>>16,rt&=65535,rt+=Ce*ze,tt+=rt>>>16,rt&=65535,rt+=Qe*De,tt+=rt>>>16,rt&=65535,tt+=W*Ze+te*ze+Ce*De+Qe*we,tt&=65535,l(ct<<16|bt,tt<<16|rt,this.unsigned)},de.mul=de.multiply,de.divide=function(pe){if(t(pe)||(pe=v(pe)),pe.isZero())throw Error("division by zero");if(this.isZero())return this.unsigned?G:V;var W,te,Ce;if(this.unsigned){if(pe.unsigned||(pe=pe.toUnsigned()),pe.gt(this))return G;if(pe.gt(this.shru(1)))return ue;Ce=G}else{if(this.eq(Ue)){if(pe.eq(X)||pe.eq(K))return Ue;if(pe.eq(Ue))return X;var Qe=this.shr(1);return W=Qe.div(pe).shl(1),W.eq(V)?pe.isNegative()?X:K:(te=this.sub(pe.mul(W)),Ce=W.add(te.div(pe)),Ce)}else if(pe.eq(Ue))return this.unsigned?G:V;if(this.isNegative())return pe.isNegative()?this.neg().div(pe.neg()):this.neg().div(pe).neg();if(pe.isNegative())return this.div(pe.neg()).neg();Ce=V}for(te=this;te.gte(pe);){W=Math.max(1,Math.floor(te.toNumber()/pe.toNumber()));for(var we=Math.ceil(Math.log(W)/Math.LN2),De=we<=48?1:f(2,we-48),ze=o(W),Ze=ze.mul(pe);Ze.isNegative()||Ze.gt(te);)W-=De,ze=o(W,this.unsigned),Ze=ze.mul(pe);ze.isZero()&&(ze=X),Ce=Ce.add(ze),te=te.sub(Ze)}return Ce},de.div=de.divide,de.modulo=function(pe){return t(pe)||(pe=v(pe)),this.sub(this.div(pe).mul(pe))},de.mod=de.modulo,de.not=function(){return l(~this.low,~this.high,this.unsigned)},de.and=function(pe){return t(pe)||(pe=v(pe)),l(this.low&pe.low,this.high&pe.high,this.unsigned)},de.or=function(pe){return t(pe)||(pe=v(pe)),l(this.low|pe.low,this.high|pe.high,this.unsigned)},de.xor=function(pe){return t(pe)||(pe=v(pe)),l(this.low^pe.low,this.high^pe.high,this.unsigned)},de.shiftLeft=function(pe){return t(pe)&&(pe=pe.toInt()),(pe&=63)===0?this:pe<32?l(this.low<<pe,this.high<<pe|this.low>>>32-pe,this.unsigned):l(0,this.low<<pe-32,this.unsigned)},de.shl=de.shiftLeft,de.shiftRight=function(pe){return t(pe)&&(pe=pe.toInt()),(pe&=63)===0?this:pe<32?l(this.low>>>pe|this.high<<32-pe,this.high>>pe,this.unsigned):l(this.high>>pe-32,this.high>=0?0:-1,this.unsigned)},de.shr=de.shiftRight,de.shiftRightUnsigned=function(pe){if(t(pe)&&(pe=pe.toInt()),pe&=63,pe===0)return this;var W=this.high;if(pe<32){var te=this.low;return l(te>>>pe|W<<32-pe,W>>>pe,this.unsigned)}else return pe===32?l(W,0,this.unsigned):l(W>>>pe-32,0,this.unsigned)},de.shru=de.shiftRightUnsigned,de.toSigned=function(){return this.unsigned?l(this.low,this.high,!1):this},de.toUnsigned=function(){return this.unsigned?this:l(this.low,this.high,!0)},de.toBytes=function(me){return me?this.toBytesLE():this.toBytesBE()},de.toBytesLE=function(){var me=this.high,pe=this.low;return[pe&255,pe>>>8&255,pe>>>16&255,pe>>>24&255,me&255,me>>>8&255,me>>>16&255,me>>>24&255]},de.toBytesBE=function(){var me=this.high,pe=this.low;return[me>>>24&255,me>>>16&255,me>>>8&255,me&255,pe>>>24&255,pe>>>16&255,pe>>>8&255,pe&255]},e})})(Im)),Im.exports}var Hae=Gae();const Bm=uh(Hae),Wae=3,$ae=30,Xae=2*$ae+1,WB=180/Math.PI;function qae(r,e,t){const n=1<<e;return[(r[0]+t[0])/n,(r[1]+t[1])/n]}function $B(r){return r>=.5?1/3*(4*r*r-1):1/3*(1-4*(1-r)*(1-r))}function Jae(r){return[$B(r[0]),$B(r[1])]}function Kae(r,[e,t]){switch(r){case 0:return[1,e,t];case 1:return[-e,1,t];case 2:return[-e,-t,1];case 3:return[-1,-t,-e];case 4:return[t,-1,-e];case 5:return[t,e,-1];default:throw new Error("Invalid face")}}function Zae([r,e,t]){const n=Math.atan2(t,Math.sqrt(r*r+e*e));return[Math.atan2(e,r)*WB,n*WB]}function Yae(r){let e=Bm.fromString(r,!0,10).toString(2);for(;e.length<Wae+Xae;)e="0"+e;const t=e.lastIndexOf("1"),n=e.substring(0,3),i=e.substring(3,t),s=i.length/2,o=Bm.fromString(n,!0,2).toString(10);
4186let l=Bm.fromString(i,!0,2).toString(4);for(;l.length<s;)l="0"+l;return`${o}/${l}`}function Qae(r,e,t,n){if(n===0){t===1&&(e[0]=r-1-e[0],e[1]=r-1-e[1]);const i=e[0];e[0]=e[1],e[1]=i}}function ele(r){const e=r.split("/"),t=parseInt(e[0],10),n=e[1],i=n.length,s=[0,0];let o;for(let l=i-1;l>=0;l--){o=i-l;const f=n[l];let A=0,v=0;f==="1"?v=1:f==="2"?(A=1,v=1):f==="3"&&(A=1);const T=Math.pow(2,o-1);Qae(T,s,A,v),s[0]+=T*A,s[1]+=T*v}if(t%2===1){const l=s[0];s[0]=s[1],s[1]=l}return{face:t,ij:s,level:o}}function tle(r){const e=r.padEnd(16,"0");return Bm.fromString(e,16)}const rle=100;function nle({face:r,ij:e,level:t}){const n=[[0,0],[0,1],[1,1],[1,0],[0,0]],i=Math.max(1,Math.ceil(rle*Math.pow(2,-t))),s=new Float64Array(4*i*2+2);let o=0,l=0;for(let f=0;f<4;f++){const A=n[f].slice(0),v=n[f+1],T=(v[0]-A[0])/i,I=(v[1]-A[1])/i;for(let F=0;F<i;F++){A[0]+=T,A[1]+=I;const N=qae(e,t,A),U=Jae(N),$=Kae(r,U),V=Zae($);Math.abs(V[1])>89.999&&(V[0]=l);const G=V[0]-l;V[0]+=G>180?-360:G<-180?360:0,s[o++]=V[0],s[o++]=V[1],l=V[0]}}return s[o++]=s[0],s[o++]=s[1],s}function ile(r){if(typeof r=="string"){if(r.indexOf("/")>0)return r;r=tle(r)}return Yae(r.toString())}function sle(r){const e=ile(r),t=ele(e);return nle(t)}const ole={getS2Token:{type:"accessor",value:r=>r.token}};class K_ extends lf{indexToBounds(){const{data:e,getS2Token:t}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,i)=>sle(t(n,i))}}}K_.layerName="S2Layer";K_.defaultProps=ole;const wb=512;function ale(r,e){let t=0,n=0,i=1<<r.length;const s=i/wb;for(let o=0;o<r.length;o++){i>>=1;const l=parseInt(r[o]);l%2&&(t|=i),l>1&&(n|=i)}return[[t/s,wb-n/s],[(t+e)/s,wb-(n+e)/s]]}function lle(r,e=1){const[t,n]=ale(r,e),[i,s]=uc(t),[o,l]=uc(n);return[o,s,o,l,i,l,i,s,o,s]}const cle={getQuadkey:{type:"accessor",value:r=>r.quadkey}};class Z_ extends lf{indexToBounds(){const{data:e,extruded:t,getQuadkey:n}=this.props,i=t?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(s,o)=>lle(n(s,o),i),updateTriggers:{getPolygon:i}}}}Z_.layerName="QuadkeyLayer";Z_.defaultProps=cle;const ule="Queued Requests",fle="Active Requests",hle="Cancelled Requests",dle="Queued Requests Ever",ple="Active Requests Ever",Ale={id:"request-scheduler",throttleRequests:!0,maxRequests:6,debounceTime:0};class gle{props;stats;activeRequestCount=0;requestQueue=[];requestMap=new Map;updateTimer=null;constructor(e={}){this.props={...Ale,...e},this.stats=new hh({id:this.props.id}),this.stats.get(ule),this.stats.get(fle),this.stats.get(hle),this.stats.get(dle),this.stats.get(ple)}scheduleRequest(e,t=()=>0){if(!this.props.throttleRequests)return Promise.resolve({done:()=>{}});if(this.requestMap.has(e))return this.requestMap.get(e);const n={handle:e,priority:0,getPriority:t},i=new Promise(s=>(n.resolve=s,n));return this.requestQueue.push(n),this.requestMap.set(e,i),this._issueNewRequests(),i}_issueRequest(e){const{handle:t,resolve:n}=e;let i=!1;const s=()=>{i||(i=!0,this.requestMap.delete(t),this.activeRequestCount--,this._issueNewRequests())};return this.activeRequestCount++,n?n({done:s}):Promise.resolve({done:s})}_issueNewRequests(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>this._issueNewRequestsAsync(),this.props.debounceTime)}_issueNewRequestsAsync(){this.updateTimer!==null&&clearTimeout(this.updateTimer),this.updateTimer=null;const e=Math.max(this.props.maxRequests-this.activeRequestCount,0);if(e!==0){this._updateAllRequests();for(let t=0;t<e;++t){const n=this.requestQueue.shift();n&&this._issueRequest(n)}}}_updateAllRequests(){const e=this.requestQueue;for(let t=0;t<e.length;++t){const n=e[t];this._updateRequest(n)||(e.splice(t,1),this.requestMap.delete(n.handle),t--)}e.sort((t,n)=>t.priority-n.priority)}_updateRequest(e){return e.priority=e.getPriority(e.handle),e.priority<0?(e.resolve(null),!1):!0}}class vL{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(){const 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:t,onLoad:n,onError:i}){const{index:s,id:o,bbox:l,userData:f,zoom:A}=this,v=this._loaderId;this._abortController=new AbortController;const{signal:T}=this._abortController,I=await t.scheduleRequest(this,U=>U.isSelected?1:-1);if(!I){this._isCancelled=!0;return}if(this._isCancelled){I.done();return}let F=null,N;try{F=await e({index:s,id:o,bbox:l,userData:f,zoom:A,signal:T})}catch(U){N=U||!0}finally{I.done()}if(v===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):n(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())}}const go={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},XB=new dt,mle=new dt;class xw{constructor(e=[0,0,0],t=[0,0,0],n){n=n||XB.copy(e).add(t).scale(.5),this.center=new dt(n),this.halfDiagonal=new dt(t).subtract(this.center),this.minimum=new dt(e),this.maximum=new dt(t)}clone(){return new xw(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){const{halfDiagonal:t}=this,n=mle.from(e.normal),i=t.x*Math.abs(n.x)+t.y*Math.abs(n.y)+t.z*Math.abs(n.z),s=this.center.dot(n)+e.distance;return s-i>0?go.INSIDE:s+i<0?go.OUTSIDE:go.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){const t=XB.from(e).subtract(this.center),{halfDiagonal:n}=this;let i=0,s;return s=Math.abs(t.x)-n.x,s>0&&(i+=s*s),s=Math.abs(t.y)-n.y,s>0&&(i+=s*s),s=Math.abs(t.z)-n.z,s>0&&(i+=s*s),i}}const gA=new dt,qB=new dt;class Sg{constructor(e=[0,0,0],t=0){this.radius=-0,this.center=new dt,this.fromCenterRadius(e,t)}fromCenterRadius(e,t){return this.center.from(e),this.radius=t,this}fromCornerPoints(e,t){return t=gA.from(t),this.center=new dt().from(e).add(t).scale(.5),this.radius=this.center.distance(t),this}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.radius===e.radius}clone(){return new Sg(this.center,this.radius)}union(e){const t=this.center,n=this.radius,i=e.center,s=e.radius,o=gA.copy(i).subtract(t),l=o.magnitude();if(n>=l+s)return this.clone();if(s>=l+n)return e.clone();const f=(n+l+s)*.5;return qB.copy(o).scale((-n+f)/l).add(t),this.center.copy(qB),this.radius=f,this}expand(e){const n=gA.from(e).subtract(this.center).magnitude();return n>this.radius&&(this.radius=n),this}transform(e){this.center.transform(e);const t=uV(gA,e);return this.radius=Math.max(t[0],Math.max(t[1],t[2]))*this.radius,this}distanceSquaredTo(e){const t=this.distanceTo(e);return t*t}distanceTo(e){const n=gA.from(e).subtract(this.center);return Math.max(0,n.len()-this.radius)}intersectPlane(e){const t=this.center,n=this.radius,s=e.normal.dot(t)+e.distance;return s<-n?go.OUTSIDE:s<n?go.INTERSECTING:go.INSIDE}}const _le=new dt,yle=new dt,j0=new dt,G0=new dt,H0=new dt,vle=new dt,ble=new dt,zc={COLUMN0ROW0:0,COLUMN0ROW1:1,COLUMN0ROW2:2,COLUMN1ROW0:3,COLUMN1ROW1:4,COLUMN1ROW2:5,COLUMN2ROW0:6,COLUMN2ROW1:7,COLUMN2ROW2:8};class Ig{constructor(e=[0,0,0],t=[0,0,0,0,0,0,0,0,0]){this.center=new dt().from(e),this.halfAxes=new Oi(t)}get halfSize(){const e=this.halfAxes.getColumn(0),t=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2);return[new dt(e).len(),new dt(t).len(),new dt(n).len()]}get quaternion(){const e=this.halfAxes.getColumn(0),t=this.halfAxes.getColumn(1),n=this.halfAxes.getColumn(2),i=new dt(e).normalize(),s=new dt(t).normalize(),o=new dt(n).normalize();return new YA().fromMatrix3(new Oi([...i,...s,...o]))}fromCenterHalfSizeQuaternion(e,t,n){const i=new YA(n),s=new Oi().fromQuaternion(i);return s[0]=s[0]*t[0],s[1]=s[1]*t[0],s[2]=s[2]*t[0],s[3]=s[3]*t[1],s[4]=s[4]*t[1],s[5]=s[5]*t[1],s[6]=s[6]*t[2],s[7]=s[7]*t[2],s[8]=s[8]*t[2],this.center=new dt().from(e),this.halfAxes=s,this}clone(){return new Ig(this.center,this.halfAxes)}equals(e){return this===e||!!e&&this.center.equals(e.center)&&this.halfAxes.equals(e.halfAxes)}getBoundingSphere(e=new Sg){const t=this.halfAxes,n=t.getColumn(0,j0),i=t.getColumn(1,G0),s=t.getColumn(2,H0),o=_le.copy(n).add(i).add(s);return e.center.copy(this.center),e.radius=o.magnitude(),e}intersectPlane(e){const t=this.center,n=e.normal,i=this.halfAxes,s=n.x,o=n.y,l=n.z,f=Math.abs(s*i[zc.COLUMN0ROW0]+o*i[zc.COLUMN0ROW1]+l*i[zc.COLUMN0ROW2])+Math.abs(s*i[zc.COLUMN1ROW0]+o*i[zc.COLUMN1ROW1]+l*i[zc.COLUMN1ROW2])+Math.abs(s*i[zc.COLUMN2ROW0]+o*i[zc.COLUMN2ROW1]+l*i[zc.COLUMN2ROW2]),A=n.dot(t)+e.distance;return A<=-f?go.OUTSIDE:A>=f?go.INSIDE:go.INTERSECTING}distanceTo(e){return Math.sqrt(this.distanceSquaredTo(e))}distanceSquaredTo(e){const t=yle.from(e).subtract(this.center),n=this.halfAxes,i=n.getColumn(0,j0),s=n.getColumn(1,G0),o=n.getColumn(2,H0),l=i.magnitude(),f=s.magnitude(),A=o.magnitude();i.normalize(),s.normalize(),o.normalize();let v=0,T;return T=Math.abs(t.dot(i))-l,T>0&&(v+=T*T),T=Math.abs(t.dot(s))-f,T>0&&(v+=T*T),T=Math.abs(t.dot(o))-A,T>0&&(v+=T*T),v}computePlaneDistances(e,t,n=[-0,-0]){let i=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY;const o=this.center,l=this.halfAxes,f=l.getColumn(0,j0),A=l.getColumn(1,G0),v=l.getColumn(2,H0),T=vle.copy(f).add(A).add(v).add(o),I=ble.copy(T).subtract(e);let F=t.dot(I);return i=Math.min(F,i),s=Math.max(F,s),T.copy(o).add(f).add(A).subtract(v),I.copy(T).subtract(e),F=t.dot(I),i=Math.min(F,i),s=Math.max(F,s),T.copy(o).add(f).subtract(A).add(v),I.copy(T).subtract(e),F=t.dot(I),i=Math.min(F,i),s=Math.max(F,s),T.copy(o).add(f).subtract(A).subtract(v),I.copy(T).subtract(e),F=t.dot(I),i=Math.min(F,i),s=Math.max(F,s),o.copy(T).subtract(f).add(A).add(v),I.copy(T).subtract(e),F=t.dot(I),i=Math.min(F,i),s=Math.max(F,s),o.copy(T).subtract(f).add(A).subtract(v),I.copy(T).subtract(e),F=t.dot(I),i=Math.min(F,i),s=Math.max(F,s),o.copy(T).subtract(f).subtract(A).add(v),I.copy(T).subtract(e),F=t.dot(I),i=Math.min(F,i),s=Math.max(F,s),o.copy(T).subtract(f).subtract(A).subtract(v),I.copy(T).subtract(e),F=t.dot(I),i=Math.min(F,i),s=Math.max(F,s),n[0]=i,n[1]=s,n}transform(e){this.center.transformAsPoint(e);const t=this.halfAxes.getColumn(0,j0);t.transformAsPoint(e);const n=this.halfAxes.getColumn(1,G0);n.transformAsPoint(e);const i=this.halfAxes.getColumn(2,H0);return i.transformAsPoint(e),this.halfAxes=new Oi([...t,...n,...i]),this}getTransform(){throw new Error("not implemented")}}const JB=new dt,KB=new dt;class Al{constructor(e=[0,0,1],t=0){this.normal=new dt,this.distance=-0,this.fromNormalDistance(e,t)}fromNormalDistance(e,t){return gl(Number.isFinite(t)),this.normal.from(e).normalize(),this.distance=t,this}fromPointNormal(e,t){e=JB.from(e),this.normal.from(t).normalize();const n=-this.normal.dot(e);return this.distance=n,this}fromCoefficients(e,t,n,i){return this.normal.set(e,t,n),gl(ga(this.normal.len(),1)),this.distance=i,this}clone(){return new Al(this.normal,this.distance)}equals(e){return ga(this.distance,e.distance)&&ga(this.normal,e.normal)}getPointDistance(e){return this.normal.dot(e)+this.distance}transform(e){const t=KB.copy(this.normal).transformAsVector(e).normalize(),n=this.normal.scale(-this.distance).transform(e);return this.fromPointNormal(n,t)}projectPointOntoPlane(e,t=[0,0,0]){const n=JB.from(e),i=this.getPointDistance(n),s=KB.copy(this.normal).scale(i);return n.subtract(s).to(t)}}const ZB=[new dt([1,0,0]),new dt([0,1,0]),new dt([0,0,1])],YB=new dt,xle=new dt;class pa{constructor(e=[]){this.planes=e}fromBoundingSphere(e){this.planes.length=2*ZB.length;const t=e.center,n=e.radius;let i=0;for(const s of ZB){let o=this.planes[i],l=this.planes[i+1];o||(o=this.planes[i]=new Al),l||(l=this.planes[i+1]=new Al);const f=YB.copy(s).scale(-n).add(t);o.fromPointNormal(f,s);const A=YB.copy(s).scale(n).add(t),v=xle.copy(s).negate();l.fromPointNormal(A,v),i+=2}return this}computeVisibility(e){let t=go.INSIDE;for(const n of this.planes)switch(e.intersectPlane(n)){case go.OUTSIDE:return go.OUTSIDE;case go.INTERSECTING:t=go.INTERSECTING;break}return t}computeVisibilityWithPlaneMask(e,t){if(gl(Number.isFinite(t),"parentPlaneMask is required."),t===pa.MASK_OUTSIDE||t===pa.MASK_INSIDE)return t;let n=pa.MASK_INSIDE;const i=this.planes;for(let s=0;s<this.planes.length;++s){const o=s<31?1<<s:0;if(s<31&&(t&o)===0)continue;const l=i[s],f=e.intersectPlane(l);if(f===go.OUTSIDE)return pa.MASK_OUTSIDE;f===go.INTERSECTING&&(n|=o)}return n}}pa.MASK_OUTSIDE=4294967295;pa.MASK_INSIDE=0;pa.MASK_INDETERMINATE=2147483647;new dt;new dt;new dt;new dt;new dt;new dt;new dt;new dt;new dt;new dt;new dt;new dt;new dt;new dt;new dt;new dt;new dt;const ec=new Oi,wle=new Oi,Tle=new Oi,W0=new Oi,QB=new Oi;function Ele(r,e={}){const t=JV,n=10;let i=0,s=0;const o=wle,l=Tle;o.identity(),l.copy(r);const f=t*Cle(l);for(;s<n&&Sle(l)>f;)Ile(l,W0),QB.copy(W0).transpose(),l.multiplyRight(W0),l.multiplyLeft(QB),o.multiplyRight(W0),++i>2&&(++s,i=0);return e.unitary=o.toTarget(e.unitary),e.diagonal=l.toTarget(e.diagonal),e}function Cle(r){let e=0;for(let t=0;t<9;++t){const n=r[t];e+=n*n}return Math.sqrt(e)}const b2=[1,0,0],x2=[2,2,1];function Sle(r){let e=0;for(let t=0;t<3;++t){const n=r[ec.getElementIndex(x2[t],b2[t])];e+=2*n*n}return Math.sqrt(e)}function Ile(r,e){const t=NO;let n=0,i=1;for(let A=0;A<3;++A){const v=Math.abs(r[ec.getElementIndex(x2[A],b2[A])]);v>n&&(i=A,n=v)}const s=b2[i],o=x2[i];let l=1,f=0;if(Math.abs(r[ec.getElementIndex(o,s)])>
4186t){const A=r[ec.getElementIndex(o,o)],v=r[ec.getElementIndex(s,s)],T=r[ec.getElementIndex(o,s)],I=(A-v)/2/T;let F;I<0?F=-1/(-I+Math.sqrt(1+I*I)):F=1/(I+Math.sqrt(1+I*I)),l=1/Math.sqrt(1+F*F),f=F*l}return Oi.IDENTITY.to(e),e[ec.getElementIndex(s,s)]=e[ec.getElementIndex(o,o)]=l,e[ec.getElementIndex(o,s)]=f,e[ec.getElementIndex(s,o)]=-f,e}const Fu=new dt,Ble=new dt,Ple=new dt,Mle=new dt,Rle=new dt,Ole=new Oi,Dle={diagonal:new Oi,unitary:new Oi};function bL(r,e=new Ig){if(!r||r.length===0)return e.halfAxes=new Oi([0,0,0,0,0,0,0,0,0]),e.center=new dt,e;const t=r.length,n=new dt(0,0,0);for(const de of r)n.add(de);const i=1/t;n.multiplyByScalar(i);let s=0,o=0,l=0,f=0,A=0,v=0;for(const de of r){const me=Fu.copy(de).subtract(n);s+=me.x*me.x,o+=me.x*me.y,l+=me.x*me.z,f+=me.y*me.y,A+=me.y*me.z,v+=me.z*me.z}s*=i,o*=i,l*=i,f*=i,A*=i,v*=i;const T=Ole;T[0]=s,T[1]=o,T[2]=l,T[3]=o,T[4]=f,T[5]=A,T[6]=l,T[7]=A,T[8]=v;const{unitary:I}=Ele(T,Dle),F=e.halfAxes.copy(I);let N=F.getColumn(0,Ple),U=F.getColumn(1,Mle),$=F.getColumn(2,Rle),V=-Number.MAX_VALUE,G=-Number.MAX_VALUE,X=-Number.MAX_VALUE,ue=Number.MAX_VALUE,K=Number.MAX_VALUE,se=Number.MAX_VALUE;for(const de of r)Fu.copy(de),V=Math.max(Fu.dot(N),V),G=Math.max(Fu.dot(U),G),X=Math.max(Fu.dot($),X),ue=Math.min(Fu.dot(N),ue),K=Math.min(Fu.dot(U),K),se=Math.min(Fu.dot($),se);N=N.multiplyByScalar(.5*(ue+V)),U=U.multiplyByScalar(.5*(K+G)),$=$.multiplyByScalar(.5*(se+X)),e.center.copy(N).add(U).add($);const Ee=Ble.set(V-ue,G-K,X-se).multiplyByScalar(.5),Ue=new Oi([Ee[0],0,0,0,Ee[1],0,0,0,Ee[2]]);return e.halfAxes.multiplyRight(Ue),e}const $d=512,eP=3,xL=[[.5,.5],[0,0],[0,1],[1,0],[1,1]],wL=xL.concat([[0,.5],[.5,0],[1,.5],[.5,1]]),Fle=wL.concat([[.25,.5],[.75,.5]]);class Xd{constructor(e,t,n){this.x=e,this.y=t,this.z=n}get children(){if(!this._children){const e=this.x*2,t=this.y*2,n=this.z+1;this._children=[new Xd(e,t,n),new Xd(e,t+1,n),new Xd(e+1,t,n),new Xd(e+1,t+1,n)]}return this._children}update(e){const{viewport:t,cullingVolume:n,elevationBounds:i,minZ:s,maxZ:o,bounds:l,offset:f,project:A}=e,v=this.getBoundingVolume(i,f,A);if(l&&!this.insideBounds(l)||n.computeVisibility(v)<0)return!1;if(!this.childVisible){let{z:I}=this;if(I<o&&I>=s){const F=v.distanceTo(t.cameraPosition)*t.scale/t.height;I+=Math.floor(Math.log2(F))}if(I>=o)return this.selected=!0,!0}this.selected=!1,this.childVisible=!0;for(const I of this.children)I.update(e);return!0}getSelected(e=[]){if(this.selected&&e.push(this),this._children)for(const t of this._children)t.getSelected(e);return e}insideBounds([e,t,n,i]){const s=Math.pow(2,this.z),o=$d/s;return this.x*o<n&&this.y*o<i&&(this.x+1)*o>e&&(this.y+1)*o>t}getBoundingVolume(e,t,n){if(n){const f=this.z<1?Fle:this.z<2?wL:xL,A=[];for(const v of f){const T=T2(this.x+v[0],this.y+v[1],this.z);T[2]=e[0],A.push(n(T)),e[0]!==e[1]&&(T[2]=e[1],A.push(n(T)))}return bL(A)}const i=Math.pow(2,this.z),s=$d/i,o=this.x*s+t*$d,l=$d-(this.y+1)*s;return new xw([o,l,e[0]],[o+s,l+s,e[1]])}}function Lle(r,e,t,n){const i=r instanceof bJ&&r.resolution?r.projectPosition:null,s=Object.values(r.getFrustumPlanes()).map(({normal:F,distance:N})=>new Al(F.clone().negate(),N)),o=new pa(s),l=r.distanceScales.unitsPerMeter[2],f=t&&t[0]*l||0,A=t&&t[1]*l||0,v=r instanceof tg&&r.pitch<=60?e:0;if(n){const[F,N,U,$]=n,V=Yc([F,$]),G=Yc([U,N]);n=[V[0],$d-V[1],G[0],$d-G[1]]}const T=new Xd(0,0,0),I={viewport:r,project:i,cullingVolume:o,elevationBounds:[f,A],minZ:v,maxZ:e,bounds:n,offset:0};if(T.update(I),r instanceof tg&&r.subViewports&&r.subViewports.length>1){for(I.offset=-1;T.update(I)&&!(--I.offset<-eP););for(I.offset=1;T.update(I)&&!(++I.offset>eP););}return T.getSelected()}const Qc=512,kle=[-1/0,-1/0,1/0,1/0],d_={type:"object",value:null,validate:(r,e)=>e.optional&&r===null||typeof r=="string"||Array.isArray(r)&&r.every(t=>typeof t=="string"),equal:(r,e)=>{if(r===e)return!0;if(!Array.isArray(r)||!Array.isArray(e))return!1;const t=r.length;if(t!==e.length)return!1;for(let n=0;n<t;n++)if(r[n]!==e[n])return!1;return!0}};function TL(r,e){const t=[e.transformAsPoint([r[0],r[1]]),e.transformAsPoint([r[2],r[1]]),e.transformAsPoint([r[0],r[3]]),e.transformAsPoint([r[2],r[3]
4186])];return[Math.min(...t.map(i=>i[0])),Math.min(...t.map(i=>i[1])),Math.max(...t.map(i=>i[0])),Math.max(...t.map(i=>i[1]))]}function Nle(r){return Math.abs(r.split("").reduce((e,t)=>(e<<5)-e+t.charCodeAt(0)|0,0))}function oh(r,e){if(!r||!r.length)return null;const{index:t,id:n}=e;if(Array.isArray(r)){const s=Nle(n)%r.length;r=r[s]}let i=r;for(const s of Object.keys(t)){const o=new RegExp(`{${s}}`,"g");i=i.replace(o,String(t[s]))}return Number.isInteger(t.y)&&Number.isInteger(t.z)&&(i=i.replace(/\{-y\}/g,String(Math.pow(2,t.z)-t.y-1))),i}function Ule(r,e,t){let n;return n=r.getBounds(),r.isGeospatial?[Math.max(n[0],t[0]),Math.max(n[1],t[1]),Math.min(n[2],t[2]),Math.min(n[3],t[3])]:[Math.max(Math.min(n[0],t[2]),t[0]),Math.max(Math.min(n[1],t[3]),t[1]),Math.min(Math.max(n[2],t[0]),t[2]),Math.min(Math.max(n[3],t[1]),t[3])]}function zle({viewport:r,z:e,cullRect:t}){return(r.subViewports||[r]).map(i=>w2(i,e||0,t))}function w2(r,e,t){if(!Array.isArray(e)){const s=t.x-r.x,o=t.y-r.y,{width:l,height:f}=t,A={targetZ:e},v=r.unproject([s,o],A),T=r.unproject([s+l,o],A),I=r.unproject([s,o+f],A),F=r.unproject([s+l,o+f],A);return[Math.min(v[0],T[0],I[0],F[0]),Math.min(v[1],T[1],I[1],F[1]),Math.max(v[0],T[0],I[0],F[0]),Math.max(v[1],T[1],I[1],F[1])]}const n=w2(r,e[0],t),i=w2(r,e[1],t);return[Math.min(n[0],i[0]),Math.min(n[1],i[1]),Math.max(n[2],i[2]),Math.max(n[3],i[3])]}function Vle(r,e,t){return t?TL(r,t).map(i=>i*e/Qc):r.map(n=>n*e/Qc)}function ww(r,e){return Math.pow(2,r)*Qc/e}function T2(r,e,t){const n=ww(t,Qc),i=r/n*360-180,s=Math.PI-2*Math.PI*e/n,o=180/Math.PI*Math.atan(.5*(Math.exp(s)-Math.exp(-s)));return[i,o]}function tP(r,e,t,n){const i=ww(t,n);return[r/i*Qc,e/i*Qc]}function jle(r,e,t,n,i=Qc){if(r.isGeospatial){const[A,v]=T2(e,t,n),[T,I]=T2(e+1,t+1,n);return{west:A,north:v,east:T,south:I}}const[s,o]=tP(e,t,n,i),[l,f]=tP(e+1,t+1,n,i);return{left:s,top:o,right:l,bottom:f}}function Gle(r,e,t,n,i){const s=Ule(r,null,n),o=ww(e,t),[l,f,A,v]=Vle(s,o,i),T=[];for(let I=Math.floor(l);I<A;I++)for(let F=Math.floor(f);F<v;F++)T.push({x:I,y:F,z:e});return T}function Hle({viewport:r,maxZoom:e,minZoom:t,zRange:n,extent:i,tileSize:s=Qc,modelMatrix:o,modelMatrixInverse:l,zoomOffset:f=0}){let A=r.isGeospatial?Math.round(r.zoom+Math.log2(Qc/s))+f:Math.ceil(r.zoom)+f;if(typeof t=="number"&&Number.isFinite(t)&&A<t){if(!i)return[];A=t}typeof e=="number"&&Number.isFinite(e)&&A>e&&(A=e);let v=i;return o&&l&&i&&!r.isGeospatial&&(v=TL(i,o)),r.isGeospatial?Lle(r,A,n,i):Gle(r,A,s,v||kle,l)}function Wle(r){return/(?=.*{z})(?=.*{x})(?=.*({y}|{-y}))/.test(r)}function $le(r){return Number.isFinite(r.west)&&Number.isFinite(r.north)&&Number.isFinite(r.east)&&Number.isFinite(r.south)}function Xle(r){let e={},t;return n=>{for(const i in n)if(!qle(n[i],e[i])){t=r(n),e=n;break}return t}}function qle(r,e){if(r===e)return!0;if(Array.isArray(r)){const t=r.length;if(!e||e.length!==t)return!1;for(let n=0;n<t;n++)if(r[n]!==e[n])return!1;return!0}return!1}const rP=1,Y_=2,Jle="never",Kle="no-overlap",Tw="best-available",Zle=5,Yle={[Tw]:ece,[Kle]:tce,[Jle]:()=>{}},Qle={extent:null,tileSize:512,maxZoom:null,minZoom:null,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:"best-available",zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{}};class Q_{constructor(e){this._getCullBounds=Xle(zle),this.opts={...Qle,...e},this.setOptions(this.opts),this.onTileLoad=t=>{this.opts.onTileLoad?.(t),this.opts.maxCacheByteSize!==null&&(this._cacheByteSize+=t.byteLength,this._resizeCache())},this._requestScheduler=new gle({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 vn,this._modelMatrixInverse=new vn}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))}finalize(){for(const e of this._cache.values())e.isLoading&&e.abort();this._cache.clear(),this._tiles=[],this._selectedTiles=null}reloadAll(){for(const e of this._cache.keys()){const t=this._cache.get(e);!this._selectedTiles||!this._selectedTiles.includes(t)?this._cache.delete(e):t.setNeedsReload()}}update(e,{zRange:t,modelMatrix:n}={zRange:null,modelMatrix:null}){const i=n?new vn(n):new vn,s=!i.equals(this._modelMatrix);if(!this._viewport||!e.equals(this._viewport)||!ga(this._zRange,t)||s){s&&(this._modelMatrixInverse=i.clone().invert(),this._modelMatrix=i),this._viewport=e,this._zRange=t;const l=this.getTileIndices({viewport:e,maxZoom:this._maxZoom,minZoom:this._minZoom,zRange:t,modelMatrix:this._modelMatrix,modelMatrixInverse:this._modelMatrixInverse});this._selectedTiles=l.map(f=>this._getTile(f,!0)),this._dirty&&this._rebuildTree()}else this.needsReload&&(this._selectedTiles=this._selectedTiles.map(l
4186=>this._getTile(l.index,!0)));const o=this.updateTileStates();return this._pruneRequests(),this._dirty&&this._resizeCache(),o&&this._frameNumber++,this._frameNumber}isTileVisible(e,t){if(!e.isVisible)return!1;if(t&&this._viewport){const n=this._getCullBounds({viewport:this._viewport,z:this._zRange,cullRect:t}),{bbox:i}=e;for(const[s,o,l,f]of n){let A;if("west"in i)A=i.west<l&&i.east>s&&i.south<f&&i.north>o;else{const v=Math.min(i.top,i.bottom),T=Math.max(i.top,i.bottom);A=i.left<l&&i.right>s&&v<f&&T>o}if(A)return!0}return!1}return!0}getTileIndices({viewport:e,maxZoom:t,minZoom:n,zRange:i,modelMatrix:s,modelMatrixInverse:o}){const{tileSize:l,extent:f,zoomOffset:A}=this.opts;return Hle({viewport:e,maxZoom:t,minZoom:n,zRange:i,tileSize:l,extent:f,modelMatrix:s,modelMatrixInverse:o,zoomOffset:A})}getTileId(e){return`${e.x}-${e.y}-${e.z}`}getTileZoom(e){return e.z}getTileMetadata(e){const{tileSize:t}=this.opts;return{bbox:jle(this._viewport,e.x,e.y,e.z,t)}}getParentIndex(e){const t=Math.floor(e.x/2),n=Math.floor(e.y/2),i=e.z-1;return{x:t,y:n,z:i}}updateTileStates(){const e=this.opts.refinementStrategy||Tw,t=new Array(this._cache.size);let n=0;for(const i of this._cache.values())t[n++]=i.isVisible,i.isSelected=!1,i.isVisible=!1;for(const i of this._selectedTiles)i.isSelected=!0,i.isVisible=!0;(typeof e=="function"?e:Yle[e])(Array.from(this._cache.values())),n=0;for(const i of this._cache.values())if(t[n++]!==i.isVisible)return!0;return!1}_pruneRequests(){const{maxRequests:e=0}=this.opts,t=[];let n=0;for(const i of this._cache.values())i.isLoading&&(n++,!i.isSelected&&!i.isVisible&&t.push(i));for(;e>0&&n>e&&t.length>0;)t.shift().abort(),n--}_rebuildTree(){const{_cache:e}=this;for(const t of e.values())t.parent=null,t.children&&(t.children.length=0);for(const t of e.values()){const n=this._getNearestAncestor(t);t.parent=n,n?.children&&n.children.push(t)}}_resizeCache(){const{_cache:e,opts:t}=this,n=t.maxCacheSize??(t.maxCacheByteSize!==null?1/0:Zle*this.selectedTiles.length),i=t.maxCacheByteSize??1/0;if(e.size>n||this._cacheByteSize>i){for(const[o,l]of e)if(!l.isVisible&&!l.isSelected&&(this._cacheByteSize-=t.maxCacheByteSize!==null?l.byteLength:0,e.delete(o),this.opts.onTileUnload?.(l)),e.size<=n&&this._cacheByteSize<=i)break;this._rebuildTree(),this._dirty=!0}this._dirty&&(this._tiles=Array.from(this._cache.values()).sort((o,l)=>o.zoom-l.zoom),this._dirty=!1)}_getTile(e,t){const n=this.getTileId(e);let i=this._cache.get(n),s=!1;return!i&&t?(i=new vL(e),Object.assign(i,this.getTileMetadata(i.index)),Object.assign(i,{id:n,zoom:this.getTileZoom(i.index)}),s=!0,this._cache.set(n,i),this._dirty=!0):i&&i.needsReload&&(s=!0),i&&s&&i.loadData({getData:this.opts.getTileData,requestScheduler:this._requestScheduler,onLoad:this.onTileLoad,onError:this.opts.onTileError}),i}_getNearestAncestor(e){const{_minZoom:t=0}=this;let n=e.index;for(;this.getTileZoom(n)>t;){n=this.getParentIndex(n);const i=this._getTile(n);if(i)return i}return null}}function ece(r){for(const e of r)e.state=0;for(const e of r)e.isSelected&&!EL(e)&&Ew(e);for(const e of r)e.isVisible=!!(e.state&Y_)}function tce(r){for(const t of r)t.state=0;for(const t of r)t.isSelected&&EL(t);const e=Array.from(r).sort((t,n)=>t.zoom-n.zoom);for(const t of e)if(t.isVisible=!!(t.state&Y_),t.children&&(t.isVisible||t.state&rP))for(const n of t.children)n.state=rP;else t.isSelected&&Ew(t)}function EL(r){let e=r;for(;e;){if(e.isLoaded||e.content)return e.state|=Y_,!0;e=e.parent}return!1}function Ew(r){for(const e of r.children)e.isLoaded||e.content?e.state|=Y_:Ew(e)}const rce={TilesetClass:Q_,data:{type:"data",value:[]},dataComparator:d_.equal,renderSubLayers:{type:"function",value:r=>new ru(r)},getTileData:{type:"function",optional:!0,value:null},onViewportLoad:{type:"function",optional:!0,value:null},onTileLoad:{type:"function",value:r=>{}},onTileUnload:{type:"function",value:r=>{}},onTileError:{type:"function",value:r=>console.error(r)},extent:{type:"array",optional:!0,value:null,compare:!0},tileSize:512,maxZoom:null,minZoom:0,maxCacheSize:null,maxCacheByteSize:null,refinementStrategy:Tw,zRange:null,maxRequests:6,debounceTime:0,zoomOffset:0};
4186class nu extends Ss{initializeState(){this.state={tileset:null,isLoaded:!1}}finalizeState(){this.state?.tileset?.finalize()}get isLoaded(){return!!this.state?.tileset?.selectedTiles?.every(e=>e.isLoaded&&e.layers&&e.layers.every(t=>t.isLoaded))}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({changeFlags:e}){let{tileset:t}=this.state;const n=e.propsOrDataChanged||e.updateTriggersChanged,i=e.dataChanged||e.updateTriggersChanged&&(e.updateTriggersChanged.all||e.updateTriggersChanged.getTileData);t?n&&(t.setOptions(this._getTilesetOptions()),i?t.reloadAll():t.tiles.forEach(s=>{s.layers=null})):(t=new this.props.TilesetClass(this._getTilesetOptions()),this.setState({tileset:t})),this._updateTileset()}_getTilesetOptions(){const{tileSize:e,maxCacheSize:t,maxCacheByteSize:n,refinementStrategy:i,extent:s,maxZoom:o,minZoom:l,maxRequests:f,debounceTime:A,zoomOffset:v}=this.props;return{maxCacheSize:t,maxCacheByteSize:n,maxZoom:o,minZoom:l,tileSize:e,refinementStrategy:i,extent:s,maxRequests:f,debounceTime:A,zoomOffset:v,getTileData:this.getTileData.bind(this),onTileLoad:this._onTileLoad.bind(this),onTileError:this._onTileError.bind(this),onTileUnload:this._onTileUnload.bind(this)}}_updateTileset(){const e=this.state.tileset,{zRange:t,modelMatrix:n}=this.props,i=e.update(this.context.viewport,{zRange:t,modelMatrix:n}),{isLoaded:s}=e,o=this.state.isLoaded!==s,l=this.state.frameNumber!==i;s&&(o||l)&&this._onViewportLoad(),l&&this.setState({frameNumber:i}),this.state.isLoaded=s}_onViewportLoad(){const{tileset:e}=this.state,{onViewportLoad:t}=this.props;t&&t(e.selectedTiles)}_onTileLoad(e){this.props.onTileLoad(e),e.layers=null,this.setNeedsUpdate()}_onTileError(e,t){this.props.onTileError(e),t.layers=null,this.setNeedsUpdate()}_onTileUnload(e){this.props.onTileUnload(e)}getTileData(e){const{data:t,getTileData:n,fetch:i}=this.props,{signal:s}=e;return e.url=typeof t=="string"||Array.isArray(t)?oh(t,e):null,n?n(e):i&&e.url?i(e.url,{propName:"data",layer:this,signal:s}):null}renderSubLayers(e){return this.props.renderSubLayers(e)}getSubLayerPropsByTile(e){return null}getPickingInfo(e){const t=e.sourceLayer,n=t.props.tile,i=e.info;return i.picked&&(i.tile=n),i.sourceTile=n,i.sourceTileSubLayer=t,i}_updateAutoHighlight(e){e.sourceTileSubLayer.updateAutoHighlight(e)}renderLayers(){return this.state.tileset.tiles.map(e=>{const t=this.getSubLayerPropsByTile(e);if(!(!e.isLoaded&&!e.content))if(e.layers)t&&e.layers[0]&&Object.keys(t).some(n=>e.layers[0].props[n]!==t[n])&&(e.layers=e.layers.map(n=>n.clone(t)));else{const n=this.renderSubLayers({...this.props,...this.getSubLayerProps({id:e.id,updateTriggers:this.props.updateTriggers}),data:e.content,_offset:0,tile:e});e.layers=F_(n,Boolean).map(i=>i.clone({tile:e,...t}))}return e.layers})}filterSubLayer({layer:e,cullRect:t}){const{tile:n}=e.props;return this.state.tileset.isTileVisible(n,t)}}nu.defaultProps=rce;nu.layerName="TileLayer";const nP=`uniform tripsUniforms { 4187 bool fadeTrail; 4188 float trailLength; 4189 float currentTime; 4190} trips; 4191`,nce={name:"trips",vs:nP,fs:nP,uniformTypes:{fadeTrail:"f32",trailLength:"f32",currentTime:"f32"}},ice={fadeTrail:!0,trailLength:{type:"number",value:120,min:0},currentTime:{type:"number",value:0,min:0},getTimestamps:{type:"accessor",value:r=>r.timestamps}};class ey extends sf{getShaders(){const e=super.getShaders();return e.inject={"vs:#decl":`in float instanceTimestamps; 4192in float instanceNextTimestamps; 4193out float vTime; 4194`,"vs:#main-end":`vTime = instanceTimestamps + (instanceNextTimestamps - instanceTimestamps) * vPathPosition.y / vPathLength; 4195`,"fs:#decl":`in float vTime; 4196`,"fs:#main-start":`if(vTime > trips.currentTime || (trips.fadeTrail && (vTime < trips.currentTime - trips.trailLength))) { 4197 discard; 4198} 4199`,"fs:DECKGL_FILTER_COLOR":`if(trips.fadeTrail) { 4200 color.a *= 1.0 - (trips.currentTime - vTime) / trips.trailLength; 4201} 4202`},e.modules=[...e.modules,nce],e}initializeState(){super.initializeState(),this.getAttributeManager().addInstanced({timestamps:{size:1,accessor:"getTimestamps",shaderAttributes:{instanceTimestamps:{vertexOffset:0},instanceNextTimestamps:{vertexOffset:1}}}})}draw(e){const{fadeTrail:t,trailLength:n,currentTime:i}=this.props,s={fadeTrail:t,trailLength:n,currentTime:i};this.state.model.shaderInputs.setProps({trips:s}),super.draw(e)}}ey.layerName="TripsLayer";ey.defaultProps=ice;var Nr=(function(r){r=r||{};var e=typeof r<"u"?r:{},t={},n;for(n in e)e.hasOwnProperty(n)&&(t[n]=e[n]);var i="";function s(he){return e.locateFile?e.locateFile(he,i):i+he}var o;typeof document<"u"&&document.currentScript&&(i=document.currentScript.src),i.indexOf("blob:")!==0?i=i.substr(0,i.lastIndexOf("/")+1):i="",o=function(ve,ae,Se){var g=new XMLHttpRequest;g.open("GET",ve,!0),g.responseType="arraybuffer",g.onload=function(){if(g.status==200||g.status==0&&g.response){ae(g.response);return}var xt=Rt(ve);if(xt){ae(xt.buffer);return}Se()},g.onerror=Se,g.send(null)};var l=e.print||console.log.bind(console),f=e.printErr||console.warn.bind(console);for(n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);t=null,e.arguments&&e.arguments;var A=0,v=function(he){A=he},T=function(){return A},I=8;function F(he,ve,ae,Se){switch(ae=ae||"i8",ae.charAt(ae.length-1)==="*"&&(ae="i32"),ae){case"i1":W[he>>0]=ve;break;case"i8":W[he>>0]=ve;break;case"i16":Ce[he>>1]=ve;break;case"i32":Qe[he>>2]=ve;break;case"i64":Qn=[ve>>>0,(Sn=ve,+_r(Sn)>=1?Sn>0?(vr(+yr(Sn/4294967296),4294967295)|0)>>>0:~~+Gn((Sn-+(~~Sn>>>0))/4294967296)>>>0:0)],Qe[he>>2]=Qn[0],Qe[he+4>>2]=Qn[1];break;case"float":we[he>>2]=ve;break;case"double":De[he>>3]=ve;break;default:Le("invalid type for setValue: "+ae)}}function N(he,ve,ae){switch(ve=ve||"i8",ve.charAt(ve.length-1)==="*"&&(ve="i32"),ve){case"i1":return W[he>>0];case"i8":return W[he>>0];case"i16":return Ce[he>>1];case"i32":return Qe[he>>2];case"i64":return Qe[he>>2];case"float":return we[he>>2];case"double":return De[he>>3];default:Le("invalid type for getValue: "+ve)}return null}var U=!1;function $(he,ve){he||Le("Assertion failed: "+ve)}function V(he){var ve=e["_"+he];return $(ve,"Cannot call unknown function "+he+", make sure it is exported"),ve}function G(he,ve,ae,Se,g){var le={string:function(Pt){var Gt=0;if(Pt!=null&&Pt!==0){var Ur=(Pt.length<<2)+1;Gt=vt(Ur),Ue(Pt,Gt,Ur)}return Gt},array:function(Pt){var Gt=vt(Pt.length);return de(Pt,Gt),Gt}};function xt(Pt){return ve==="string"?se(Pt):ve==="boolean"?!!Pt:Pt}var Je=V(he),Ct=[],Mt=0;if(Se)for(var Ft=0;Ft<Se.length;
4202Ft++){var ht=le[ae[Ft]];ht?(Mt===0&&(Mt=Te()),Ct[Ft]=ht(Se[Ft])):Ct[Ft]=Se[Ft]}var Lt=Je.apply(null,Ct);return Lt=xt(Lt),Mt!==0&&St(Mt),Lt}function X(he,ve,ae,Se){ae=ae||[];var g=ae.every(function(xt){return xt==="number"}),le=ve!=="string";return le&&g&&!Se?V(he):function(){return G(he,ve,ae,arguments)}}var ue=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function K(he,ve,ae){for(var Se=ve+ae,g=ve;he[g]&&!(g>=Se);)++g;if(g-ve>16&&he.subarray&&ue)return ue.decode(he.subarray(ve,g));for(var le="";ve<g;){var xt=he[ve++];if(!(xt&128)){le+=String.fromCharCode(xt);continue}var Je=he[ve++]&63;if((xt&224)==192){le+=String.fromCharCode((xt&31)<<6|Je);continue}var Ct=he[ve++]&63;if((xt&240)==224?xt=(xt&15)<<12|Je<<6|Ct:xt=(xt&7)<<18|Je<<12|Ct<<6|he[ve++]&63,xt<65536)le+=String.fromCharCode(xt);else{var Mt=xt-65536;le+=String.fromCharCode(55296|Mt>>10,56320|Mt&1023)}}return le}function se(he,ve){return he?K(te,he,ve):""}function Ee(he,ve,ae,Se){if(!(Se>0))return 0;for(var g=ae,le=ae+Se-1,xt=0;xt<he.length;++xt){var Je=he.charCodeAt(xt);if(Je>=55296&&Je<=57343){var Ct=he.charCodeAt(++xt);Je=65536+((Je&1023)<<10)|Ct&1023}if(Je<=127){if(ae>=le)break;ve[ae++]=Je}else if(Je<=2047){if(ae+1>=le)break;ve[ae++]=192|Je>>6,ve[ae++]=128|Je&63}else if(Je<=65535){if(ae+2>=le)break;ve[ae++]=224|Je>>12,ve[ae++]=128|Je>>6&63,ve[ae++]=128|Je&63}else{if(ae+3>=le)break;ve[ae++]=240|Je>>18,ve[ae++]=128|Je>>12&63,ve[ae++]=128|Je>>6&63,ve[ae++]=128|Je&63}}return ve[ae]=0,ae-g}function Ue(he,ve,ae){return Ee(he,te,ve,ae)}typeof TextDecoder<"u"&&new TextDecoder("utf-16le");function de(he,ve){W.set(he,ve)}function me(he,ve){return he%ve>0&&(he+=ve-he%ve),he}var pe,W,te,Ce,Qe,we,De;function ze(he){pe=he,e.HEAP8=W=new Int8Array(he),e.HEAP16=Ce=new Int16Array(he),e.HEAP32=Qe=new Int32Array(he),e.HEAPU8=te=new Uint8Array(he),e.HEAPU16=new Uint16Array(he),e.HEAPU32=new Uint32Array(he),e.HEAPF32=we=new Float32Array(he),e.HEAPF64=De=new Float64Array(he)}var Ze=5267040,tt=24128,rt=e.TOTAL_MEMORY||33554432;e.buffer?pe=e.buffer:pe=new ArrayBuffer(rt),rt=pe.byteLength,ze(pe),Qe[tt>>2]=Ze;function ct(he){for(;he.length>0;){var ve=he.shift();if(typeof ve=="function"){ve();continue}var ae=ve.func;typeof ae=="number"?ve.arg===void 0?e.dynCall_v(ae):e.dynCall_vi(ae,ve.arg):ae(ve.arg===void 0?null:ve.arg)}}var bt=[],It=[],st=[],pr=[];function Qt(){if(e.preRun)for(typeof e.preRun=="function"&&(e.preRun=[e.preRun]);e.preRun.length;)cn(e.preRun.shift());ct(bt)}function Jt(){ct(It)}function Nt(){ct(st)}function Ar(){if(e.postRun)for(typeof e.postRun=="function"&&(e.postRun=[e.postRun]);e.postRun.length;)Mr(e.postRun.shift());ct(pr)}function cn(he){bt.unshift(he)}function Mr(he){pr.unshift(he)}var _r=Math.abs,Gn=Math.ceil,yr=Math.floor,vr=Math.min,un=0,Dr=null;function li(he){un++,e.monitorRunDependencies&&e.monitorRunDependencies(un)}function Yn(he){if(un--,e.monitorRunDependencies&&e.monitorRunDependencies(un),un==0&&Dr){var ve=Dr;Dr=null,ve()}}e.preloadedImages={},e.preloadedAudios={};var mn=null,ri="data:application/octet-stream;base64,";function Hn(he){return String.prototype.startsWith?he.startsWith(ri):he.indexOf(ri)===0}var Sn,Qn;mn
vendor: 19,357 bytes, line 4202
4202="data:application/octet-stream;base64,AAAAAAAAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAGAAAAAQAAAAQAAAADAAAABgAAAAUAAAACAAAAAAAAAAIAAAADAAAAAQAAAAQAAAAGAAAAAAAAAAUAAAADAAAABgAAAAQAAAAFAAAAAAAAAAEAAAACAAAABAAAAAUAAAAGAAAAAAAAAAIAAAADAAAAAQAAAAUAAAACAAAAAAAAAAEAAAADAAAABgAAAAQAAAAGAAAAAAAAAAUAAAACAAAAAQAAAAQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAAAAAAEAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAYAAAAAAAAABQAAAAAAAAAAAAAABAAAAAUAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAYAAAAAAAAABgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAMAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAAEAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABQAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAYAAAAAAAAAAQAAAAIAAAADAAAABAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAIAAAAAAAAAAAAAAAYAAAAAAAAAAwAAAAIAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAFAAAABAAAAAAAAAABAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAYAAAAAAAAABAAAAAAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAAgAAAAQAAAADAAAACAAAAAEAAAAHAAAABgAAAAkAAAAAAAAAAwAAAAIAAAACAAAABgAAAAoAAAALAAAAAAAAAAEAAAAFAAAAAwAAAA0AAAABAAAABwAAAAQAAAAMAAAAAAAAAAQAAAB/AAAADwAAAAgAAAADAAAAAAAAAAwAAAAFAAAAAgAAABIAAAAKAAAACAAAAAAAAAAQAAAABgAAAA4AAAALAAAAEQAAAAEAAAAJAAAAAgAAAAcAAAAVAAAACQAAABMAAAADAAAADQAAAAEAAAAIAAAABQAAABYAAAAQAAAABAAAAAAAAAAPAAAACQAAABMAAAAOAAAAFAAAAAEAAAAHAAAABgAAAAoAAAALAAAAGAAAABcAAAAFAAAAAgAAABIAAAALAAAAEQAAABcAAAAZAAAAAgAAAAYAAAAKAAAADAAAABwAAAANAAAAGgAAAAQAAAAPAAAAAwAAAA0AAAAaAAAAFQAAAB0AAAADAAAADAAAAAcAAAAOAAAAfwAAABEAAAAbAAAACQAAABQAAAAGAAAADwAAABYAAAAcAAAAHwAAAAQAAAAIAAAADAAAABAAAAASAAAAIQAAAB4AAAAIAAAABQAAABYAAAARAAAACwAAAA4AAAAGAAAAIwAAABkAAAAbAAAAEgAAABgAAAAeAAAAIAAAAAUAAAAKAAAAEAAAABMAAAAiAAAAFAAAACQAAAAHAAAAFQAAAAkAAAAUAAAADgAAABMAAAAJAAAAKAAAABsAAAAkAAAAFQAAACYAAAATAAAAIgAAAA0AAAAdAAAABwAAABYAAAAQAAAAKQAAACEAAAAPAAAACAAAAB8AAAAXAAAAGAAAAAsAAAAKAAAAJwAAACUAAAAZAAAAGAAAAH8AAAAgAAAAJQAAAAoAAAAXAAAAEgAAABkAAAAXAAAAEQAAAAsAAAAtAAAAJwAAACMAAAAaAAAAKgAAAB0AAAArAAAADAAAABwAAAANAAAAGwAAACgAAAAjAAAALgAAAA4AAAAUAAAAEQAAABwAAAAfAAAAKgAAACwAAAAMAAAADwAAABoAAAAdAAAAKwAAACYAAAAvAAAADQAAABoAAAAVAAAAHgAAACAAAAAwAAAAMgAAABAAAAASAAAAIQAAAB8AAAApAAAALAAAADUAAAAPAAAAFgAAABwAAAAgAAAAHgAAABgAAAASAAAANAAAADIAAAAlAAAAIQAAAB4AAAAxAAAAMAAAABYAAAAQAAAAKQAAACIAAAATAAAAJgAAABUAAAA2AAAAJAAAADMAAAAjAAAALgAAAC0AAAA4AAAAEQAAABsAAAAZAAAAJAAAABQAAAAiAAAAEwAAADcAAAAoAAAANgAAACUAAAAnAAAANAAAADkAAAAYAAAAFwAAACAAAAAmAAAAfwAAACIAAAAzAAAAHQAAAC8AAAAVAAAAJwAAACUAAAAZAAAAFwAAADsAAAA5AAAALQAAACgAAAAbAAAAJAAAABQAAAA8AAAALgAAADcAAAApAAAAMQAAADUAAAA9AAAAFgAAACEAAAAfAAAAKgAAADoAAAArAAAAPgAAABwAAAAsAAAAGgAAACsAAAA+AAAALwAAAEAAAAAaAAAAKgAAAB0AAAAsAAAANQAAADoAAABBAAAAHAAAAB8AAAAqAAAALQAAACcAAAAjAAAAGQAAAD8AAAA7AAAAOAAAAC4AAAA8AAAAOAAAAEQAAAAbAAAAKAAAACMAAAAvAAAAJgAAACsAAAAdAAAARQAAADMAAABAAAAAMAAAADEAAAAeAAAAIQAAAEMAAABCAAAAMgAAADEAAAB/AAAAPQAAAEIAAAAhAAAAMAAAACkAAAAyAAAAMAAAACAAAAAeAAAARgAAAEMAAAA0AAAAMwAAAEUAAAA2AAAARwAAACYAAAAvAAAAIgAAADQAAAA5AAAARgAAAEoAAAAgAAAAJQAAADIAAAA1AAAAPQAAAEEAAABLAAAAHwAAACkAAAAsAAAANgAAAEcAAAA3AAAASQAAACIAAAAzAAAAJAAAADcAAAAoAAAANgAAACQAAABIAAAAPAAAAEkAAAA4AAAARAAAAD8AAABNAAAAIwAAAC4AAAAtAAAAOQAAADsAAABKAAAATgAAACUAAAAnAAAANAAAADoAAAB/AAAAPgAAAEwAAAAsAAAAQQAAACoAAAA7AAAAPwAAAE4AAABPAAAAJwAAAC0AAAA5AAAAPAAAAEgAAABEAAAAUAAAACgAAAA3AAAALgAAAD0AAAA1AAAAMQAAACkAAABRAAAASwAAAEIAAAA+AAAAKwAAADoAAAAqAAAAUgAAAEAAAABMAAAAPwAAAH8AAAA4AAAALQAAAE8AAAA7AAAATQAAAEAAAAAvAAAAPgAAACsAAABUAAAARQAAAFIAAABBAAAAOgAAADUAAAAsAAAAVgAAAEwAAABLAAAAQgAAAEMAAABRAAAAVQAAADEAAAAwAAAAPQAAAEMAAABCAAAAMgAAADAAAABXAAAAVQAAAEYAAABEAAAAOAAAADwAAAAuAAAAWgAAAE0AAABQAAAARQAAADMAAABAAAAALwAAAFkAAABHAAAAVAAAAEYAAABDAAAANAAAADIAAABTAAAAVwAAAEoAAABHAAAAWQAAAEkAAABbAAAAMwAAAEUAAAA2AAAASAAAAH8AAABJAAAANwAAAFAAAAA8AAAAWAAAAEkAAABbAAAASAAAAFgAAAA2AAAARwAAADcAAABKAAAATgAAAFMAAABcAAAANAAAADkAAABGAAAASwAAAEEAAAA9AAAANQAAAF4AAABWAAAAUQAAAEwAAABWAAAAUgAAAGAAAAA6AAAAQQAAAD4AAABNAAAAPwAAAEQAAAA4AAAAXQAAAE8AAABaAAAATgAAAEoAAAA7AAAAOQAAAF8AAABcAAAATwAAAE8AAABOAAAAPwAAADsAAABdAAAAXwAAAE0AAABQAAAARAAAAEgAAAA8AAAAYwAAAFoAAABYAAAAUQAAAFUAAABeAAAAZQAAAD0AAABCAAAASwAAAFIAAABgAAAAVAAAAGIAAAA+AAAATAAAAEAAAABTAAAAfwAAAEoAAABGAAAAZAAAAFcAAABcAAAAVAAAAEUAAABSAAAAQAAAAGEAAABZAAAAYgAAAFUAAABXAAAAZQAAAGYAAABCAAAAQwAAAFEAAABWAAAATAAAAEsAAABBAAAAaAAAAGAAAABeAAAAVwAAAFMAAABmAAAAZAAAAEMAAABGAAAAVQAAAFgAAABIAAAAWwAAAEkAAABjAAAAUAAAAGkAAABZAAAAYQAAAFsAAABnAAAARQAAAFQAAABHAAAAWgAAAE0AAABQAAAARAAAAGoAAABdAAAAYwAAAFsAAABJAAAAWQAAAEcAAABpAAAAWAAAAGcAAABcAAAAUwAAAE4AAABKAAAAbAAAAGQAAABfAAAAXQAAAE8AAABaAAAATQAAAG0AAABfAAAAagAAAF4AAABWAAAAUQAAAEsAAABrAAAAaAAAAGUAAABfAAAAXAAAAE8AAABOAAAAbQAAAGwAAABdAAAAYAAAAGgAAABiAAAAbgAAAEwAAABWAAAAUgAAAGEAAAB/AAAAYgAAAFQAAABnAAAAWQAAAG8AAABiAAAAbgAAAGEAAABvAAAAUgAAAGAAAABUAAAAYwAAAFAAAABpAAAAWAAAAGoAAABaAAAAcQAAAGQAAABmAAAAUwAAAFcAAABsAAAAcgAAAFwAAABlAAAAZgAAAGsAAABwAAAAUQAAAFUAAABeAAAAZgAAAGUAAABXAAAAVQAAAHIAAABwAAAAZAAAAGcAAABbAAAAYQAAAFkAAAB0AAAAaQAAAG8AAABoAAAAawAAAG4AAABzAAAAVgAAAF4AAABgAAAAaQAAAFgAAABnAAAAWwAAAHEAAABjAAAAdAAAAGoAAABdAAAAYwAAAFoAAAB1AAAAbQAAAHEAAABrAAAAfwAAAGUAAABeAAAAcwAAAGgAAABwAAAAbAAAAGQAAABfAAAAXAAAAHYAAAByAAAAbQAAAG0AAABsAAAAXQAAAF8AAAB1AAAAdgAAAGoAAABuAAAAYgAAAGgAAABgAAAAdwAAAG8AAABzAAAAbwAAAGEAAABuAAAAYgAAAHQAAABnAAAAdwAAAHAAAABrAAAAZgAAAGUAAAB4AAAAcwAAAHIAAABxAAAAYwAAAHQAAABpAAAAdQAAAGoAAAB5AAAAcgAAAHAAAABkAAAAZgAAAHYAAAB4AAAAbAAAAHMAAABuAAAAawAAAGgAAAB4AAAAdwAAAHAAAAB0AAAAZwAAAHcAAABvAAAAcQAAAGkAAAB5AAAAdQAAAH8AAABtAAAAdgAAAHEAAAB5AAAAagAAAHYAAAB4AAAAbAAAAHIAAAB1AAAAeQAAAG0AAAB3AAAAbwAAAHMAAABuAAAAeQAAAHQAAAB4AAAAeAAAAHMAAAByAAAAcAAAAHkAAAB3AAAAdgAAAHkAAAB0AAAAeAAAAHcAAAB1AAAAcQAAAHYAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAACAAAABQAAAAEAAAAAAAAA/////wEAAAAAAAAAAwAAAAQAAAACAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAFAAAAAQAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAAAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAABQAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAEAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAQAAAAMAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAUAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAFAAAABQAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAADAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAAAAAD/////AwAAAAAAAAAFAAAAAgAAAAAAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAADAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAAAAAABAAAAAwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAADAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAADAAAAAwAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAwAAAAAAAAAAAAAA/////wMAAAAAAAAABQAAAAIAAAAAAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAwAAAAAAAAADAAAAAwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAMAAAADAAAAAwAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAwAAAAUAAAABAAAAAAAAAP////8DAAAAAAAAAAUAAAACAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABAAAAAUAAAABAAAAAAAAAAMAAAADAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAUAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAIAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAADAAAAAQAAAAAAAAABAAAAAAAAAAUAAAAAAAAAAAAAAAUAAAAFAAAAAAAAAAAAAAD/////AQAAAAAAAAADAAAABAAAAAIAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAFAAAAAAAAAAAAAAAFAAAABQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAUAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAEAAAD//////////wEAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAAAAAAAAAAABAAAAAgAAAAYAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAcAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAACAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAAAAAAAAAAAAQAAAAEAAAAFAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAACAAAAAAAAAAAAAAABAAAAAwAAAAcAAAAGAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAADgAAAAIAAAAAAAAAAAAAAAEAAAAAAAAACQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAMAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAIAAAAAAAAAAAAAAAEAAAAEAAAACAAAAAoAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAALAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAAAAAAAAAAAAQAAAAsAAAAPAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAIAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHAAAAAgAAAAAAAAAAAAAAAQAAAAwAAAAQAAAADAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAADwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAACAAAAAAAAAAAAAAABAAAACgAAABMAAAAIAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAOAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAQAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAQAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAACQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAAAAAAAAAAAAAEAAAANAAAAEQAAAA0AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAARAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAEAAAABAAAAAAAAAAAAAAAAAAAAEQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAACAAAAAAAAAAAAAAABAAAADgAAABIAAAAPAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAASAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEwAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAABEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEgAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABIAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAATAAAAAgAAAAAAAAAAAAAAAQAAAP//////////EwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAAQAAAAAAAAABAAAAAAAAAAAAAAAAAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAASAAAAAAAAABgAAAAAAAAAIQAAAAAAAAAeAAAAAAAAACAAAAADAAAAMQAAAAEAAAAwAAAAAwAAADIAAAADAAAACAAAAAAAAAAFAAAABQAAAAoAAAAFAAAAFgAAAAAAAAAQAAAAAAAAABIAAAAAAAAAKQAAAAEAAAAhAAAAAAAAAB4AAAAAAAAABAAAAAAAAAAAAAAABQAAAAIAAAAFAAAADwAAAAEAAAAIAAAAAAAAAAUAAAAFAAAAHwAAAAEAAAAWAAAAAAAAABAAAAAAAAAAAgAAAAAAAAAGAAAAAAAAAA4AAAAAAAAACgAAAAAAAAALAAAAAAAAABEAAAADAAAAGAAAAAEAAAAXAAAAAwAAABkAAAADAAAAAAAAAAAAAAABAAAABQAAAAkAAAAFAAAABQAAAAAAAAACAAAAAAAAAAYAAAAAAAAAEgAAAAEAAAAKAAAAAAAAAAsAAAAAAAAABAAAAAEAAAADAAAABQAAAAcAAAAFAAAACAAAAAEAAAAAAAAAAAAAAAEAAAAFAAAAEAAAAAEAAAAFAAAAAAAAAAIAAAAAAAAABwAAAAAAAAAVAAAAAAAAACYAAAAAAAAACQAAAAAAAAATAAAAAAAAACIAAAADAAAADgAAAAEAAAAUAAAAAwAAACQAAAADAAAAAwAAAAAAAAANAAAABQAAAB0AAAAFAAAAAQAAAAAAAAAHAAAAAAAAABUAAAAAAAAABgAAAAEAAAAJAAAAAAAAABMAAAAAAAAABAAAAAIAAAAMAAAABQAAABoAAAAFAAAAAAAAAAEAAAADAAAAAAAAAA0AAAAFAAAAAgAAAAEAAAABAAAAAAAAAAcAAAAAAAAAGgAAAAAAAAAqAAAAAAAAADoAAAAAAAAAHQAAAAAAAAArAAAAAAAAAD4AAAADAAAAJgAAAAEAAAAvAAAAAwAAAEAAAAADAAAADAAAAAAAAAAcAAAABQAAACwAAAAFAAAADQAAAAAAAAAaAAAAAAAAACoAAAAAAAAAFQAAAAEAAAAdAAAAAAAAACsAAAAAAAAABAAAAAMAAAAPAAAABQAAAB8AAAAFAAAAAwAAAAEAAAAMAAAAAAAAABwAAAAFAAAABwAAAAEAAAANAAAAAAAAABoAAAAAAAAAHwAAAAAAAAApAAAAAAAAADEAAAAAAAAALAAAAAAAAAA1AAAAAAAAAD0AAAADAAAAOgAAAAEAAABBAAAAAwAAAEsAAAADAAAADwAAAAAAAAAWAAAABQAAACEAAAAFAAAAHAAAAAAAAAAfAAAAAAAAACkAAAAAAAAAKgAAAAEAAAAsAAAAAAAAADUAAAAAAAAABAAAAAQAAAAIAAAABQAAABAAAAAFAAAADAAAAAEAAAAPAAAAAAAAABYAAAAFAAAAGgAAAAEAAAAcAAAAAAAAAB8AAAAAAAAAMgAAAAAAAAAwAAAAAAAAADEAAAADAAAAIAAAAAAAAAAeAAAAAwAAACEAAAADAAAAGAAAAAMAAAASAAAAAwAAABAAAAADAAAARgAAAAAAAABDAAAAAAAAAEIAAAADAAAANAAAAAMAAAAyAAAAAAAAADAAAAAAAAAAJQAAAAMAAAAgAAAAAAAAAB4AAAADAAAAUwAAAAAAAABXAAAAAwAAAFUAAAADAAAASgAAAAMAAABGAAAAAAAAAEMAAAAAAAAAOQAAAAEAAAA0AAAAAwAAADIAAAAAAAAAGQAAAAAAAAAXAAAAAAAAABgAAAADAAAAEQAAAAAAAAALAAAAAwAAAAoAAAADAAAADgAAAAMAAAAGAAAAAwAAAAIAAAADAAAALQAAAAAAAAAnAAAAAAAAACUAAAADAAAAIwAAAAMAAAAZAAAAAAAAABcAAAAAAAAAGwAAAAMAAAARAAAAAAAAAAsAAAADAAAAPwAAAAAAAAA7AAAAAwAAADkAAAADAAAAOAAAAAMAAAAtAAAAAAAAACcAAAAAAAAALgAAAAMAAAAjAAAAAwAAABkAAAAAAAAAJAAAAAAAAAAUAAAAAAAAAA4AAAADAAAAIgAAAAAAAAATAAAAAwAAAAkAAAADAAAAJgAAAAMAAAAVAAAAAwAAAAcAAAADAAAANwAAAAAAAAAoAAAAAAAAABsAAAADAAAANgAAAAMAAAAkAAAAAAAAABQAAAAAAAAAMwAAAAMAAAAiAAAAAAAAABMAAAADAAAASAAAAAAAAAA8AAAAAwAAAC4AAAADAAAASQAAAAMAAAA3AAAAAAAAACgAAAAAAAAARwAAAAMAAAA2AAAAAwAAACQAAAAAAAAAQAAAAAAAAAAvAAAAAAAAACYAAAADAAAAPgAAAAAAAAArAAAAAwAAAB0AAAADAAAAOgAAAAMAAAAqAAAAAwAAABoAAAADAAAAVAAAAAAAAABFAAAAAAAAADMAAAADAAAAUgAAAAMAAABAAAAAAAAAAC8AAAAAAAAATAAAAAMAAAA+AAAAAAAAACsAAAADAAAAYQAAAAAAAABZAAAAAwAAAEcAAAADAAAAYgAAAAMAAABUAAAAAAAAAEUAAAAAAAAAYAAAAAMAAABSAAAAAwAAAEAAAAAAAAAASwAAAAAAAABBAAAAAAAAADoAAAADAAAAPQAAAAAAAAA1AAAAAwAAACwAAAADAAAAMQAAAAMAAAApAAAAAwAAAB8AAAADAAAAXgAAAAAAAABWAAAAAAAAAEwAAAADAAAAUQAAAAMAAABLAAAAAAAAAEEAAAAAAAAAQgAAAAMAAAA9AAAAAAAAADUAAAADAAAAawAAAAAAAABoAAAAAwAAAGAAAAADAAAAZQAAAAMAAABeAAAAAAAAAFYAAAAAAAAAVQAAAAMAAABRAAAAAwAAAEsAAAAAAAAAOQAAAAAAAAA7AAAAAAAAAD8AAAADAAAASgAAAAAAAABOAAAAAwAAAE8AAAADAAAAUwAAAAMAAABcAAAAAwAAAF8AAAADAAAAJQAAAAAAAAAnAAAAAwAAAC0AAAADAAAANAAAAAAAAAA5AAAAAAAAADsAAAAAAAAARgAAAAMAAABKAAAAAAAAAE4AAAADAAAAGAAAAAAAAAAXAAAAAwAAABkAAAADAAAAIAAAAAMAAAAlAAAAAAAAACcAAAADAAAAMgAAAAMAAAA0AAAAAAAAADkAAAAAAAAALgAAAAAAAAA8AAAAAAAAAEgAAAADAAAAOAAAAAAAAABEAAAAAwAAAFAAAAADAAAAPwAAAAMAAABNAAAAAwAAAFoAAAADAAAAGwAAAAAAAAAoAAAAAwAAADcAAAADAAAAIwAAAAAAAAAuAAAAAAAAADwAAAAAAAAALQAAAAMAAAA4AAAAAAAAAEQAAAADAAAADgAAAAAAAAAUAAAAAwAAACQAAAADAAAAEQAAAAMAAAAbAAAAAAAAACgAAAADAAAAGQAAAAMAAAAjAAAAAAAAAC4AAAAAAAAARwAAAAAAAABZAAAAAAAAAGEAAAADAAAASQAAAAAAAABbAAAAAwAAAGcAAAADAAAASAAAAAMAAABYAAAAAwAAAGkAAAADAAAAMwAAAAAAAABFAAAAAwAAAFQAAAADAAAANgAAAAAAAABHAAAAAAAAAFkAAAAAAAAANwAAAAMAAABJAAAAAAAAAFsAAAADAAAAJgAAAAAAAAAvAAAAAwAAAEAAAAADAAAAIgAAAAMAAAAzAAAAAAAAAEUAAAADAAAAJAAAAAMAAAA2AAAAAAAAAEcAAAAAAAAAYAAAAAAAAABoAAAAAAAAAGsAAAADAAAAYgAAAAAAAABuAAAAAwAAAHMAAAADAAAAYQAAAAMAAABvAAAAAwAAAHcAAAADAAAATAAAAAAAAABWAAAAAwAAAF4AAAADAAAAUgAAAAAAAABgAAAAAAAAAGgAAAAAAAAAVAAAAAMAAABiAAAAAAAAAG4AAAADAAAAOgAAAAAAAABBAAAAAwAAAEsAAAADAAAAPgAAAAMAAABMAAAAAAAAAFYAAAADAAAAQAAAAAMAAABSAAAAAAAAAGAAAAAAAAAAVQAAAAAAAABXAAAAAAAAAFMAAAADAAAAZQAAAAAAAABmAAAAAwAAAGQAAAADAAAAawAAAAMAAABwAAAAAwAAAHIAAAADAAAAQgAAAAAAAABDAAAAAwAAAEYAAAADAAAAUQAAAAAAAABVAAAAAAAAAFcAAAAAAAAAXgAAAAMAAABlAAAAAAAAAGYAAAADAAAAMQAAAAAAAAAwAAAAAwAAADIAAAADAAAAPQAAAAMAAABCAAAAAAAAAEMAAAADAAAASwAAAAMAAABRAAAAAAAAAFUAAAAAAAAAXwAAAAAAAABcAAAAAAAAAFMAAAAAAAAATwAAAAAAAABOAAAAAAAAAEoAAAADAAAAPwAAAAEAAAA7AAAAAwAAADkAAAADAAAAbQAAAAAAAABsAAAAAAAAAGQAAAAFAAAAXQAAAAEAAABfAAAAAAAAAFwAAAAAAAAATQAAAAEAAABPAAAAAAAAAE
vendor: 11,896 bytes, line 4202
42024AAAAAAAAAdQAAAAQAAAB2AAAABQAAAHIAAAAFAAAAagAAAAEAAABtAAAAAAAAAGwAAAAAAAAAWgAAAAEAAABdAAAAAQAAAF8AAAAAAAAAWgAAAAAAAABNAAAAAAAAAD8AAAAAAAAAUAAAAAAAAABEAAAAAAAAADgAAAADAAAASAAAAAEAAAA8AAAAAwAAAC4AAAADAAAAagAAAAAAAABdAAAAAAAAAE8AAAAFAAAAYwAAAAEAAABaAAAAAAAAAE0AAAAAAAAAWAAAAAEAAABQAAAAAAAAAEQAAAAAAAAAdQAAAAMAAABtAAAABQAAAF8AAAAFAAAAcQAAAAEAAABqAAAAAAAAAF0AAAAAAAAAaQAAAAEAAABjAAAAAQAAAFoAAAAAAAAAaQAAAAAAAABYAAAAAAAAAEgAAAAAAAAAZwAAAAAAAABbAAAAAAAAAEkAAAADAAAAYQAAAAEAAABZAAAAAwAAAEcAAAADAAAAcQAAAAAAAABjAAAAAAAAAFAAAAAFAAAAdAAAAAEAAABpAAAAAAAAAFgAAAAAAAAAbwAAAAEAAABnAAAAAAAAAFsAAAAAAAAAdQAAAAIAAABqAAAABQAAAFoAAAAFAAAAeQAAAAEAAABxAAAAAAAAAGMAAAAAAAAAdwAAAAEAAAB0AAAAAQAAAGkAAAAAAAAAdwAAAAAAAABvAAAAAAAAAGEAAAAAAAAAcwAAAAAAAABuAAAAAAAAAGIAAAADAAAAawAAAAEAAABoAAAAAwAAAGAAAAADAAAAeQAAAAAAAAB0AAAAAAAAAGcAAAAFAAAAeAAAAAEAAAB3AAAAAAAAAG8AAAAAAAAAcAAAAAEAAABzAAAAAAAAAG4AAAAAAAAAdQAAAAEAAABxAAAABQAAAGkAAAAFAAAAdgAAAAEAAAB5AAAAAAAAAHQAAAAAAAAAcgAAAAEAAAB4AAAAAQAAAHcAAAAAAAAAcgAAAAAAAABwAAAAAAAAAGsAAAAAAAAAZAAAAAAAAABmAAAAAAAAAGUAAAADAAAAUwAAAAEAAABXAAAAAwAAAFUAAAADAAAAdgAAAAAAAAB4AAAAAAAAAHMAAAAFAAAAbAAAAAEAAAByAAAAAAAAAHAAAAAAAAAAXAAAAAEAAABkAAAAAAAAAGYAAAAAAAAAdQAAAAAAAAB5AAAABQAAAHcAAAAFAAAAbQAAAAEAAAB2AAAAAAAAAHgAAAAAAAAAXwAAAAEAAABsAAAAAQAAAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAAAAAABAAAAAQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAGAAAAAgAAAAUAAAABAAAABAAAAAAAAAAAAAAABQAAAAMAAAABAAAABgAAAAQAAAACAAAAAAAAAH6iBfbytuk/Gq6akm/58z/Xrm0Liez0P5doSdOpSwRAWs602ULg8D/dT7Rcbo/1v1N1RQHFNOM/g9Snx7HW3L8HWsP8Q3jfP6VwOLosutk/9rjk1YQcxj+gnmKMsNn6P/HDeuPFY+M/YHwDjqKhB0Ci19/fCVrbP4UxKkDWOP6/pvljWa09tL9wi7wrQXjnv/Z6yLImkM2/3yTlOzY14D+m+WNZrT20PzwKVQnrQwNA9nrIsiaQzT/g40rFrRQFwPa45NWEHMa/kbslHEZq97/xw3rjxWPjv4cLC2SMBci/otff3wla27+rKF5oIAv0P1N1RQHFNOO/iDJPGyWHBUAHWsP8Q3jfvwQf/by16gXAfqIF9vK26b8XrO0Vh0r+v9eubQuJ7PS/BxLrA0ZZ479azrTZQuDwv1MK1EuItPw/yscgV9Z6FkAwHBR2WjQMQJNRzXsQ5vY/GlUHVJYKF0DONuFv2lMNQNCGZ28QJfk/0WUwoIL36D8ggDOMQuATQNqMOeAy/wZAWFYOYM+M2z/LWC4uH3oSQDE+LyTsMgRAkJzhRGWFGEDd4soovCQQQKqk0DJMEP8/rGmNdwOLBUAW2X/9xCbjP4hu3dcqJhNAzuYItRvdB0CgzW3zJW/sPxotm/Y2TxRAQAk9XmdDDEC1Kx9MKgT3P1M+NctcghZAFVqcLlb0C0Bgzd3sB2b2P77mZDPUWhZAFROHJpUGCEDAfma5CxXtPz1DWq/zYxRAmhYY5824F0DOuQKWSbAOQNCMqrvu3fs/L6DR22K2wT9nAAxPBU8RQGiN6mW43AFAZhu25b633D8c1YgmzowSQNM25BRKWARArGS08/lNxD+LFssHwmMRQLC5aNcxBgJABL9HT0WRF0CjCmJmOGEOQHsuaVzMP/s/TWJCaGGwBUCeu1PAPLzjP9nqN9DZOBNAKE4JcydbCkCGtbd1qjPzP8dgm9U8jhVAtPeKTkVwDkCeCLss5l37P401XMPLmBdAFd29VMVQDUBg0yA55h75Pz6odcYLCRdApBM4rBrkAkDyAVWgQxbRP4XDMnK20hFAymLlF7EmzD8GUgo9XBHlP3lbK7T9COc/k+OhPthhy7+YGEpnrOvCPzBFhLs15u4/epbqB6H4uz9IuuLF5svev6lzLKY31es/CaQ0envF5z8ZY0xlUADXv7zaz7HYEuI/CfbK1sn16T8uAQfWwxLWPzKn/YuFN94/5KdbC1AFu793fyCSnlfvPzK2y4doAMY/NRg5t1/X6b/shq4QJaHDP5yNIAKPOeI/vpn7BSE30r/X4YQrO6nrv78Ziv/Thto/DqJ1Y6+y5z9l51NaxFrlv8QlA65HOLS/86dxiEc96z+Hj0+LFjneP6LzBZ8LTc2/DaJ1Y6+y579l51NaxFrlP8QlA65HOLQ/8qdxiEc967+Jj0+LFjnev6LzBZ8LTc0/1qdbC1AFuz93fyCSnlfvvzK2y4doAMa/NRg5t1/X6T/vhq4QJaHDv5yNIAKPOeK/wJn7BSE30j/W4YQrO6nrP78Ziv/Thtq/CaQ0envF578XY0xlUADXP7zaz7HYEuK/CvbK1sn16b8rAQfWwxLWvzKn/YuFN96/zWLlF7EmzL8GUgo9XBHlv3lbK7T9COe/kOOhPthhyz+cGEpnrOvCvzBFhLs15u6/c5bqB6H4u79IuuLF5sveP6lzLKY31eu/AQAAAP////8HAAAA/////zEAAAD/////VwEAAP////9hCQAA/////6dBAAD/////kcsBAP/////3kAwA/////8H2VwAAAAAAAAAAAAAAAAACAAAA/////w4AAAD/////YgAAAP////+uAgAA/////8ISAAD/////ToMAAP////8ilwMA/////+4hGQD/////gu2vAAAAAAAAAAAAAAAAAAAAAAACAAAA//////////8BAAAAAwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////////////////////AQAAAAAAAAACAAAA////////////////AwAAAP//////////////////////////////////////////////////////////AgAAAP//////////AQAAAAAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD/////////////////////AQAAAP///////////////wIAAAD///////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAD///////////////8CAAAAAQAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8BAAAAAgAAAP///////////////wAAAAD/////////////////////AwAAAP///////////////////////////////wIAAAD///////////////8BAAAA/////////////////////wAAAAD/////////////////////AwAAAP////////////////////////////////////////////////////8DAAAA/////////////////////wAAAAABAAAA//////////8CAAAA//////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAA////////////////AgAAAAAAAAABAAAA//////////////////////////////////////////////////////////////////////////8DAAAAAQAAAP//////////AgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAACAAAAAAAAAAIAAAABAAAAAQAAAAIAAAACAAAAAAAAAAUAAAAFAAAAAAAAAAIAAAACAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAgAAAAEAAAACAAAAAgAAAAIAAAAAAAAABQAAAAYAAAAAAAAAAgAAAAIAAAADAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAAAAAACAAAAAQAAAAMAAAACAAAAAgAAAAAAAAAFAAAABwAAAAAAAAACAAAAAgAAAAMAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAACAAAAAAAAAAIAAAABAAAABAAAAAIAAAACAAAAAAAAAAUAAAAIAAAAAAAAAAIAAAACAAAAAwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAIAAAAAAAAAAgAAAAEAAAAAAAAAAgAAAAIAAAAAAAAABQAAAAkAAAAAAAAAAgAAAAIAAAADAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAAgAAAAIAAAAAAAAAAwAAAA4AAAACAAAAAAAAAAIAAAADAAAAAAAAAAAAAAACAAAAAgAAAAMAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAsAAAACAAAAAgAAAAAAAAADAAAACgAAAAIAAAAAAAAAAgAAAAMAAAABAAAAAAAAAAIAAAACAAAAAwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAADAAAAAIAAAACAAAAAAAAAAMAAAALAAAAAgAAAAAAAAACAAAAAwAAAAIAAAAAAAAAAgAAAAIAAAADAAAACAAAAAAAAAAAAAAAAAAAAAAAAAANAAAAAgAAAAIAAAAAAAAAAwAAAAwAAAACAAAAAAAAAAIAAAADAAAAAwAAAAAAAAACAAAAAgAAAAMAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAA4AAAACAAAAAgAAAAAAAAADAAAADQAAAAIAAAAAAAAAAgAAAAMAAAAEAAAAAAAAAAIAAAACAAAAAwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAIAAAACAAAAAAAAAAMAAAAGAAAAAgAAAAAAAAACAAAAAwAAAA8AAAAAAAAAAgAAAAIAAAADAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAAgAAAAIAAAAAAAAAAwAAAAcAAAACAAAAAAAAAAIAAAADAAAAEAAAAAAAAAACAAAAAgAAAAMAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAACAAAAAgAAAAAAAAADAAAACAAAAAIAAAAAAAAAAgAAAAMAAAARAAAAAAAAAAIAAAACAAAAAwAAAA0AAAAAAAAAAAAAAAAAAAAAAAAACAAAAAIAAAACAAAAAAAAAAMAAAAJAAAAAgAAAAAAAAACAAAAAwAAABIAAAAAAAAAAgAAAAIAAAADAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAAgAAAAIAAAAAAAAAAwAAAAUAAAACAAAAAAAAAAIAAAADAAAAEwAAAAAAAAACAAAAAgAAAAMAAAAPAAAAAAAAAAAAAAAAAAAAAAAAABAAAAACAAAAAAAAAAIAAAABAAAAEwAAAAIAAAACAAAAAAAAAAUAAAAKAAAAAAAAAAIAAAACAAAAAwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAEQAAAAIAAAAAAAAAAgAAAAEAAAAPAAAAAgAAAAIAAAAAAAAABQAAAAsAAAAAAAAAAgAAAAIAAAADAAAAEQAAAAAAAAAAAAAAAAAAAAAAAAASAAAAAgAAAAAAAAACAAAAAQAAABAAAAACAAAAAgAAAAAAAAAFAAAADAAAAAAAAAACAAAAAgAAAAMAAAASAAAAAAAAAAAAAAAAAAAAAAAAABMAAAACAAAAAAAAAAIAAAABAAAAEQAAAAIAAAACAAAAAAAAAAUAAAANAAAAAAAAAAIAAAACAAAAAwAAABMAAAAAAAAAAAAAAAAAAAAAAAAADwAAAAIAAAAAAAAAAgAAAAEAAAASAAAAAgAAAAIAAAAAAAAABQAAAA4AAAAAAAAAAgAAAAIAAAADAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAAAAAAAAAAAAAIAAAABAAAAAAAAAAEAAAACAAAAAQAAAAAAAAACAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAQAAAAAAAAABQAAAAAAAAACAAAAAQAAAAAAAAABAAAAAgAAAAAAAAAAAAAAAgAAAAEAAAAAAAAAAQAAAAIAAAABAAAAAAAAAAIAAAACAAAAAAAAAAEAAAAAAAAAAAAAAAUAAAAEAAAAAAAAAAEAAAAFAAAAAAAAAAAAAAAFAAAABAAAAAAAAAABAAAABQAAAAQAAAAAAAAABQAAAAUAAAAAAAAAAQAAAAAAAAAAAAAAOgehWlKfUEEz1zLi+JsiQa2og3wcMfVAWCbHorc0yEDi+Yn/Y6mbQJ11/mfsnG9At6bnG4UQQkBvMCQWKqUUQJVmwwswmOc/3hVgVBL3uj//qqOEOdGOPw/WDN4gnGE/H3ANkCUgND+AA8btKgAHPwTXBqJVSdo+XfRQAqsKrj4fc+zLYbSPQklEmCZHv2FCUP+uDso1NEKYtPhwphUHQptxnyFXYdpB7CddZAMmrkGAt1AxSTqBQUibBVdTsFNBSuX3MV+AJkFocv82SLf5QAqmgj7AY81A23VDSEnLoEDGEJVSeDFzQDYrqvBk70VA8U157pcRGUBWfEF+ZKbsP7KBdLHZTpFAqKYk69AqekDbeGY41MdjQD8AZzHK501A1vcrrjubNkD5LnquvBYhQCbiRRD71QlAqt72EbOH8z8Eu+jL1YbdP4uaox/xUcY/abedg1XfsD+BsUdzJ4KZP5wE9YFySIM/rW1kAKMpbT+rZFthVRhWPy4PKlXIs0A/qMZLlwDnMEHByqEF0I0ZQQYSFD8lUQNBPpY+dFs07UAH8BZImBPWQN9RY0I0sMBA2T7kLfc6qUByFYvfhBKTQMq+0Mis1XxA0XQbeQXMZUBJJ5aEGXpQQP7/SY0a6ThAaMD92b/UIkAs8s8yqXoMQNIegOvCk/U/aOi7NZJP4D8AAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAD/////AAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAA/////wAAAAAAAAAAAQAAAAEAAAAAAAAAAAAAAP////8AAAAABQAAAAAAAAAAAAAAAAAAAAAAAAD/////BQAAAAUAAAAAAAAAAAAAAAAAAAAAAAAA/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////////////////////////////////8AAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQAAAAAAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////////////////////////////////AAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAABQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////////////////////////////wAAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAQAAAAAAAAABAAAAAAAAAAUAAAABAAAAAQAAAAAAAAAAAAAAAQAAAAEAAAAAAAAAAQAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEAAAAAAAEAAQAAAQEAAAAAAAEAAAABAAAAAQABAAAAAAAAAAAAAAAAAAAAAAcAAAAHAAAAAQAAAAIAAAAEAAAAAwAAAAAAAAAAAAAABwAAAAMAAAABAAAAAgAAAAUAAAAEAAAAAAAAAAAAAAAEAAAABAAAAAAAAAACAAAAAQAAAAMAAAAOAAAABgAAAAsAAAACAAAABwAAAAEAAAAYAAAABQAAAAoAAAABAAAABgAAAAAAAAAmAAAABwAAAAwAAAADAAAACAAAAAIAAAAxAAAACQAAAA4AAAAAAAAABQAAAAQAAAA6AAAACAAAAA0AAAAEAAAACQAAAAMAAAA/AAAACwAAAAYAAAAPAAAACgAAABAAAABIAAAADAAAAAcAAAAQAAAACwAAABEAAABTAAAACgAAAAUAAAATAAAADgAAAA8AAABhAAAADQAAAAgAAAARAAAADAAAABIAAABrAAAADgAAAAkAAAASAAAADQAAABMAAAB1AAAADwAAABMAAAARAAAAEgAAABAAAAAGAAAAAgAAAAMAAAAFAAAABAAAAAAAAAAAAAAAAAAAAAYAAAACAAAAAwAAAAEAAAAFAAAABAAAAAAAAAAAAAAABwAAAAUAAAADAAAABAAAAAEAAAAAAAAAAgAAAAAAAAACAAAAAwAAAAEAAAAFAAAABAAAAAYAAAAAAAAAAAAAAGFsZ29zLmMAaDNOZWlnaGJvclJvdGF0aW9ucwBjb29yZGlqay5jAF91cEFwN0NoZWNrZWQAX3VwQXA3ckNoZWNrZWQAZGlyZWN0ZWRFZGdlLmMAZGlyZWN0ZWRFZGdlVG9Cb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbdG1wRmlqay5mYWNlXVtmaWprLmZhY2VdID09IEtJAGZhY2VpamsuYwBfZmFjZUlqa1BlbnRUb0NlbGxCb3VuZGFyeQBhZGphY2VudEZhY2VEaXJbY2VudGVySUpLLmZhY2VdW2ZhY2UyXSA9PSBLSQBfZmFjZUlqa1RvQ2VsbEJvdW5kYXJ5AGgzSW5kZXguYwBjb21wYWN0Q2VsbHMAbGF0TG5nVG9DZWxsAGNlbGxUb0NoaWxkUG9zAHZhbGlkYXRlQ2hpbGRQb3MAbGF0TG5nLmMAY2VsbEFyZWFSYWRzMgBwb2x5Z29uLT5uZXh0ID09IE5VTEwAbGlua2VkR2VvLmMAYWRkTmV3TGlua2VkUG9seWdvbgBuZXh0ICE9IE5VTEwAbG9vcCAhPSBOVUxMAGFkZE5ld0xpbmtlZExvb3AAcG9seWdvbi0+Zmlyc3QgPT0gTlVMTABhZGRMaW5rZWRMb29wAGNvb3JkICE9IE5VTEwAYWRkTGlua2VkQ29vcmQAbG9vcC0+Zmlyc3QgPT0gTlVMTABpbm5lckxvb3BzICE9IE5VTEwAbm9ybWFsaXplTXVsdGlQb2x5Z29uAGJib3hlcyAhPSBOVUxMAGNhbmRpZGF0ZXMgIT0gTlVMTABmaW5kUG9seWdvbkZvckhvbGUAY2FuZGlkYXRlQkJveGVzICE9IE5VTEwAcmV2RGlyICE9IElOVkFMSURfRElHSVQAbG9jYWxpai5jAGNlbGxUb0xvY2FsSWprAGJhc2VDZWxsICE9IG9yaWdpbkJhc2VDZWxsACEob3JpZ2luT25QZW50ICYmIGluZGV4T25QZW50KQBiYXNlQ2VsbCA9PSBvcmlnaW5CYXNlQ2VsbABiYXNlQ2VsbCAhPSBJTlZBTElEX0JBU0VfQ0VMTABsb2NhbElqa1RvQ2VsbAAhX2lzQmFzZUNlbGxQZW50YWdvbihiYXNlQ2VsbCkAYmFzZUNlbGxSb3RhdGlvbnMgPj0gMABncmlkUGF0aENlbGxzADAAdmVydGV4LmMAY2VsbFRvVmVydGV4AGdyYXBoLT5idWNrZXRzICE9IE5VTEwAdmVydGV4R3JhcGguYwBpbml0VmVydGV4R3JhcGgAbm9kZSAhPSBOVUxMAGFkZFZlcnRleE5vZGU=";
4202var jt=24144;function mr(he,ve,ae,Se){Le("Assertion failed: "+se(he)+", at: "+[ve?se(ve):"unknown filename",ae,Se?se(Se):"unknown function"])}function Rr(){return W.length}function nn(he,ve,ae){te.set(te.subarray(ve,ve+ae),he)}function gi(he){return e.___errno_location&&(Qe[e.___errno_location()>>2]=he),he}function Pe(he){Le("OOM")}function kt(he){try{var ve=new ArrayBuffer(he);return ve.byteLength!=he?void 0:(new Int8Array(ve).set(W),H(ve),ze(ve),1)}catch{}}function Wt(he){var ve=Rr(),ae=16777216,Se=2147483648-ae;if(he>Se)return!1;for(var g=16777216,le=Math.max(ve,g);le<he;)le<=536870912?le=me(2*le,ae):le=Math.min(me((3*le+2147483648)/4,ae),Se);var xt=kt(le);return!!xt}var cr=typeof atob=="function"?atob:function(he){var ve="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789
4202+/=",ae="",Se,g,le,xt,Je,Ct,Mt,Ft=0;he=he.replace(/[^A-Za-z0-9\+\/\=]/g,"");do xt=ve.indexOf(he.charAt(Ft++)),Je=ve.indexOf(he.charAt(Ft++)),Ct=ve.indexOf(he.charAt(Ft++)),Mt=ve.indexOf(he.charAt(Ft++)),Se=xt<<2|Je>>4,g=(Je&15)<<4|Ct>>2,le=(Ct&3)<<6|Mt,ae=ae+String.fromCharCode(Se),Ct!==64&&(ae=ae+String.fromCharCode(g)),Mt!==64&&(ae=ae+String.fromCharCode(le));while(Ft<he.length);return ae};function Ye(he){try{for(var ve=cr(he),ae=new Uint8Array(ve.length),Se=0;Se<ve.length;++Se)ae[Se]=ve.charCodeAt(Se);return ae}catch{throw new Error("Converting base64 string to bytes failed.")}}function Rt(he){if(Hn(he))return Ye(he.slice(ri.length))}var Ae={Math,Int8Array,Int32Array,Uint8Array,Float32Array,Float64Array},Vt={b:v,c:T,d:mr,e:gi,f:Rr,g:nn,h:Wt,i:Pe,o:jt,p:tt},Et=(function(he,ve,ae){"almost asm";var Se=new he.Int8Array(ae),g=new he.Int32Array(ae);new he.Uint8Array(ae),new he.Float32Array(ae);var le=new he.Float64Array(ae),xt=ve.o|0,Je=ve.p|0,Ct=he.Math.floor,Mt=he.Math.abs,Ft=he.Math.sqrt,ht=he.Math.pow,Lt=he.Math.cos,Pt=he.Math.sin,Gt=he.Math.tan,Ur=he.Math.acos,er=he.Math.asin,en=he.Math.atan,ln=he.Math.atan2,$r=he.Math.ceil,Xr=he.Math.imul,jr=he.Math.min,mi=he.Math.max,qr=he.Math.clz32,dr=ve.b,Be=ve.c,qt=ve.d,tn=ve.e,Wi=ve.f,_a=ve.g,ci=ve.h,Wn=ve.i,Ie=24160;function Ho(y){return Se=new Int8Array(y),g=new Int32Array(y),le=new Float64Array(y),ae=y,!0}function $n(y){y=y|0;var _=0;return _=Ie,Ie=Ie+y|0,Ie=Ie+15&-16,_|0}function Wo(){return Ie|0}function Fi(y){y=y|0,Ie=y}function ui(y,_){y=y|0,Ie=y}function Si(y,_){y=y|0,_=_|0;var b=0,w=0,S=0;return(y|0)<0?(_=2,_|0):(y|0)>13780509?(_=Yo(15,_)|0,_|0):(b=((y|0)<0)<<31>>31,S=di(y|0,b|0,3,0)|0,w=Be()|0,b=An(y|0,b|0,1,0)|0,b=di(S|0,w|0,b|0,Be()|0)|0,b=An(b|0,Be()|0,1,0)|0,y=Be()|0,g[_>>2]=b,g[_+4>>2]=y,_=0,_|0)}function Rn(y,_,b,w){return y=y|0,_=_|0,b=b|0,w=w|0,ms(y,_,b,w,0)|0}function ms(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0;if(d=Ie,Ie=Ie+16|0,D=d,!($i(y,_,b,w,S)|0))return w=0,Ie=d,w|0;do if((b|0)>=0){if((b|0)>13780509){if(P=Yo(15,D)|0,P|0)break;c=D,D=g[c>>2]|0,c=g[c+4>>2]|0}else P=((b|0)<0)<<31>>31,h=di(b|0,P|0,3,0)|0,c=Be()|0,P=An(b|0,P|0,1,0)|0,P=di(h|0,c|0,P|0,Be()|0)|0,P=An(P|0,Be()|0,1,0)|0,c=Be()|0,g[D>>2]=P,g[D+4>>2]=c,D=P;if(na(w|0,0,D<<3|0)|0,S|0){na(S|0,0,D<<2|0)|0,P=Ns(y,_,b,w,S,D,c,0)|0;break}P=oo(D,4)|0,P?(h=Ns(y,_,b,w,P,D,c,0)|0,zr(P),P=h):P=13}else P=2;while(!1);return h=P,Ie=d,h|0}function $i(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0;if(z=Ie,Ie=Ie+16|0,R=z,L=z+8|0,M=R,g[M>>2]=y,g[M+4>>2]=_,(b|0)<0)return L=2,Ie=z,L|0;if(P=w,g[P>>2]=y,g[P+4>>2]=_,P=(S|0)!=0,P&&(g[S>>2]=0),On(y,_)|0)return L=9,Ie=z,L|0;g[L>>2]=0;e:do if((b|0)>=1)if(P)for(m=1,h=0,E=0,M=1,P=y;;){if(!(h|E)){if(P=In(P,_,4,L,R)|0,P|0)break e;if(_=R,P=g[_>>2]|0,_=g[_+4>>2]|0,On(P,_)|0){P=9;break e}}if(P=In(P,_,g[22384+(E<<2)>>2]|0,L,R)|0,P|0)break e;if(_=R,P=g[_>>2]|0,_=g[_+4>>2]|0,y=w+(m<<3)|0,g[y>>2]=P,g[y+4>>2]=_,g[S+(m<<2)>>2]=M,y=h+1|0,D=(y|0)==(M|0),c=E+1|0,d=(c|0)==6,On(P,_)|0){P=9;break e}if(M=M+(d&D&1)|0,(M|0)>(b|0)){P=0;break}else m=m+1|0,h=D?0:y,E=D?d?0:c:E}else for(m=1,h=0,E=0,M=1,P=y;;){if(!(h|E)){if(P=In(P,_,4,L,R)|0,P|0)break e;if(_=R,P=g[_>>2]|0,_=g[_+4>>2]|0,On(P,_)|0){P=9;break e}}if(P=In(P,_,g[22384+(E<<2)>>2]|0,L,R)|0,P|0)break e;if(_=R,P=g[_>>2]|0,_=g[_+4>>2]|0,y=w+(m<<3)|0,g[y>>2]=P,g[y+4>>2]=_,y=h+1|0,D=(y|0)==(M|0),c=E+1|0,d=(c|0)==6,On(P,_)|0){P=9;break e}if(M=M+(d&D&1)|0,(M|0)>(b|0)){P=0;break}else m=m+1|0,h=D?0:y,E=D?d?0:c:E}else P=0;while(!1);return L=P,Ie=z,L|0}function Ns(y,_,b,w,S,P,D,c){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0,P=P|0,D=D|0,c=c|0;var d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0;if(z=Ie,Ie=Ie+16|0,R=z+8|0,L=z,d=To(y|0,_|0,P|0,D|0)|0,m=Be()|0,E=w+(d<<3)|0,q=E,ee=g[q>>2]|0,q=g[q+4>>2]|0,h=(ee|0)==(y|0)&(q|0)==(_|0),!((ee|0)==0&(q|0)==0|h))do d=An(d|0,m|0,1,0)|0,d=os(d|0,Be()|0,P|0,D|0)|0,m=Be()|0,E=w+(d<<3)|0,ee=E,q=g[ee>>2]|0,ee=g[ee+4>>2]|0,h=(q|0)==(y|0)&(ee|0)==(_|0);while(!((q|0)==0&(ee|0)==0|h));if(d=S+(d<<2)|0,h&&(g[d>>2]|0)<=(c|0)||(ee=E,g[ee>>2]=y,g[ee+4>>2]=_,g[d>>2]=c,(c|0)>=(b|0)))return ee=0,Ie=z,ee|0;switch(h=c+1|0,g[R>>2]=0,d=In(y,_,2,R,L)|0,d|0){case 9:{M=9;break}case 0:{d=L,d=Ns(g[d>>2]|0,g[d+4>>2]|0,b,w,S,P,D,h)|0,d||(M=9);break}}e:do if((M|0)==9){switch(g[R>>2]=0,d=In(y,_,3,R,L)|0,d|0){case 9:break;case 0:{if(d=L,d=Ns(g[d>>2]|0,g[d+4>>2]|0,b,w,S,P,D,h)|0,d|0)break e;break}default:break e}switch(g[R>>2]=0,d=In(y,_,1,R,L)|0,d|0){case 9:break;case 0:{if(d=L,d=Ns(g[d>>2]|0,g[d+4>>2]|0,b,w,S,P,D,h)|0,d|0)break e;break}default:break e}switch(g[R>>2]=0,d=In(y,_,5,R,L)|0,d|0){case 9:break;case 0:{if(d=L,d=Ns(g[d>>2]|0,g[d+4>>2]|0,b,w,S,P,D,h)|0,d|0)break e;break}default:break e}switch(g[R>>2]=0,d=In(y,_,4,R,L)|0,d|0){case 9:break;case 0:{if(d=L,d=Ns(g[d>>2]|0,g[d+4>>2]|0,b,w,S,P,D,h)|0,d|0)break e;break}default:break e}switch(g[R>>2]=0,d=In(y,_,6,R,L)|0,d|0){case 9:break;case 0:{if(d=L,d=Ns(g[d>>2]|0,g[d+4>>2]|0,b,w,S,P,D,h)|0,d|0)break e;break}default:break e}return ee=0,Ie=z,ee|0}while(!1);return ee=d,Ie=z,ee|0}function In(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0;if(b>>>0>6)return S=1,S|0;if(E=(g[w>>2]|0)%6|0,g[w>>2]=E,(E|0)>0){P=0;do b=bo(b)|0,P=P+1|0;while((P|0)<(g[w>>2]|0))}if(E=Xt(y|0,_|0,45)|0,Be()|0,m=E&127,m>>>0>121)return S=5,S|0;d=ns(y,_)|0,P=Xt(y|0,_|0,52)|0,Be()|0,P=P&15;e:do if(!P)h=8;else{for(;;){if(D=(15-P|0)*3|0,c=Xt(y|0,_|0,D|0)|0,Be()|0,c=c&7,(c|0)==7){_=5;break}if(L=(zs(P)|0)==0,P=P+-1|0,M=rr(7,0,D|0)|0,_=_&~(Be()|0),R=rr(g[(L?432:16)+(c*28|0)+(b<<2)>>2]|0,0,D|0)|0,D=Be()|0,b=g[(L?640:224)+(c*28|0)+(b<<2)>>2]|0,y=R|y&~M,_=D|_,!b){b=0;break e}if(!P){h=8;break e}}return _|0}while(!1);(h|0)==8&&(L=g[848+(m*28|0)+(b<<2)>>2]|0,R=rr(L|0,0,45)|0,y=R|y,_=Be()|0|_&-1040385,b=g[4272+(m*28|0)+(b<<2)>>2]|0,(L&127|0)==127&&(L=rr(g[848+(m*28|0)+20>>2]|0,0,45)|0,_=Be()|0|_&-1040385,b=g[4272+(m*28|0)+20>>2]|0,y=xo(L|y,_)|0,_=Be()|0,g[w>>2]=(g[w>>2]|0)+1)),c=Xt(y|0,_|0,45)|0,Be()|0,c=c&127;e:do if(Br(c)|0){t:do if((ns(y,_)|0)==1){if((m|0)!=(c|0))if(uf(c,g[7696+(m*28|0)>>2]|0)|0){y=Za(y,_)|0,D=1,_=Be()|0;break}else qt(23313,22416,436,22424);switch(d|0){case 3:{y=xo(y,_)|0,_=Be()|0,g[w>>2]=(g[w>>2]|0)+1,D=0;break t}case 5:{y=Za(y,_)|0,_=Be()|0,g[w>>2]=(g[w>>2]|0)+5,D=0;break t}case 0:return L=9,L|0;default:return L=1,L|0}}else D=0;while(!1);if((b|0)>0){P=0;
4202do y=Sa(y,_)|0,_=Be()|0,P=P+1|0;while((P|0)!=(b|0))}if((m|0)!=(c|0)){if(!(fi(c)|0)){if((D|0)!=0|(ns(y,_)|0)!=5)break;g[w>>2]=(g[w>>2]|0)+1;break}switch(E&127){case 8:case 118:break e}(ns(y,_)|0)!=3&&(g[w>>2]=(g[w>>2]|0)+1)}}else if((b|0)>0){P=0;do y=xo(y,_)|0,_=Be()|0,P=P+1|0;while((P|0)!=(b|0))}while(!1);return g[w>>2]=((g[w>>2]|0)+b|0)%6|0,L=S,g[L>>2]=y,g[L+4>>2]=_,L=0,L|0}function gc(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0;for(c=Ie,Ie=Ie+16|0,P=c,D=c+8|0,S=(On(y,_)|0)==0,S=S?1:2;;){if(g[D>>2]=0,h=(In(y,_,S,D,P)|0)==0,d=P,h&((g[d>>2]|0)==(b|0)?(g[d+4>>2]|0)==(w|0):0)){y=4;break}if(S=S+1|0,S>>>0>=7){S=7,y=4;break}}return(y|0)==4?(Ie=c,S|0):0}function be(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0;if(L=Ie,Ie=Ie+16|0,M=L,R=L+8|0,E=M,g[E>>2]=y,g[E+4>>2]=_,!b)return R=w,g[R>>2]=y,g[R+4>>2]=_,R=0,Ie=L,R|0;g[R>>2]=0;e:do if(On(y,_)|0)y=9;else{if(P=(b|0)>0,P){S=0,E=y;do{if(y=In(E,_,4,R,M)|0,y|0)break e;if(_=M,E=g[_>>2]|0,_=g[_+4>>2]|0,S=S+1|0,On(E,_)|0){y=9;break e}}while((S|0)<(b|0));if(m=w,g[m>>2]=E,g[m+4>>2]=_,m=b+-1|0,P){h=0,y=1;do{if(S=22384+(h<<2)|0,(h|0)==5)for(D=g[S>>2]|0,P=0,S=y;;){if(y=M,y=In(g[y>>2]|0,g[y+4>>2]|0,D,R,M)|0,y|0)break e;if((P|0)!=(m|0))if(d=M,c=g[d>>2]|0,d=g[d+4>>2]|0,y=w+(S<<3)|0,g[y>>2]=c,g[y+4>>2]=d,!(On(c,d)|0))y=S+1|0;else{y=9;break e}else y=S;if(P=P+1|0,(P|0)>=(b|0))break;S=y}else for(D=M,d=g[S>>2]|0,c=0,S=y,P=g[D>>2]|0,D=g[D+4>>2]|0;;){if(y=In(P,D,d,R,M)|0,y|0)break e;if(D=M,P=g[D>>2]|0,D=g[D+4>>2]|0,y=w+(S<<3)|0,g[y>>2]=P,g[y+4>>2]=D,y=S+1|0,On(P,D)|0){y=9;break e}if(c=c+1|0,(c|0)>=(b|0))break;S=y}h=h+1|0}while(h>>>0<6);y=M,D=E,S=g[y>>2]|0,P=_,y=g[y+4>>2]|0}else D=E,S=E,P=_,y=_}else D=w,g[D>>2]=y,g[D+4>>2]=_,D=y,S=y,P=_,y=_;y=(D|0)==(S|0)&(P|0)==(y|0)?0:9}while(!1);return R=y,Ie=L,R|0}function Me(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0;if(c=Ie,Ie=Ie+48|0,S=c+16|0,P=c+8|0,D=c,b|0)return D=15,Ie=c,D|0;if(h=y,d=g[h+4>>2]|0,b=P,g[b>>2]=g[h>>2],g[b+4>>2]=d,_s(P,S),_=$o(S,_,D)|0,!_){if(b=g[P>>2]|0,P=g[y+8>>2]|0,(P|0)>0){S=g[y+12>>2]|0,_=0;do b=(g[S+(_<<3)>>2]|0)+b|0,_=_+1|0;while((_|0)<(P|0))}_=D,S=g[_>>2]|0,_=g[_+4>>2]|0,P=((b|0)<0)<<31>>31,(_|0)<(P|0)|(_|0)==(P|0)&S>>>0<b>>>0?(_=D,g[_>>2]=b,g[_+4>>2]=P,_=P):b=S,d=An(b|0,_|0,12,0)|0,h=Be()|0,_=D,g[_>>2]=d,g[_+4>>2]=h,_=w,g[_>>2]=d,g[_+4>>2]=h,_=0}return h=_,Ie=c,h|0}function We(y,_,b,w,S,P,D){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0,P=P|0,D=D|0;var c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0,oe=0,xe=0,Oe=0,ge=0,Re=0,Ge=0,$e=0,nt=0,qe=0,et=0,pt=0,Dt=0,Tt=0,zt=0,sr=0,Cr=0;if(Dt=Ie,Ie=Ie+64|0,nt=Dt+48|0,qe=Dt+32|0,et=Dt+24|0,xe=Dt+8|0,Oe=Dt,d=g[y>>2]|0,(d|0)<=0)return pt=0,Ie=Dt,pt|0;for(ge=y+4|0,Re=nt+8|0,Ge=qe+8|0,$e=xe+8|0,c=0,re=0;;){h=g[ge>>2]|0,Y=h+(re<<4)|0,g[nt>>2]=g[Y>>2],g[nt+4>>2]=g[Y+4>>2],g[nt+8>>2]=g[Y+8>>2],g[nt+12>>2]=g[Y+12>>2],(re|0)==(d+-1|0)?(g[qe>>2]=g[h>>2],g[qe+4>>2]=g[h+4>>2],g[qe+8>>2]=g[h+8>>2],g[qe+12>>2]=g[h+12>>2]):(Y=h+(re+1<<4)|0,g[qe>>2]=g[Y>>2],g[qe+4>>2]=g[Y+4>>2],g[qe+8>>2]=g[Y+8>>2],g[qe+12>>2]=g[Y+12>>2]),d=va(nt,qe,w,et)|0;e:do if(d)h=0,c=d;else if(h=et,d=g[h>>2]|0,h=g[h+4>>2]|0,(h|0)>0|(h|0)==0&d>>>0>0){ee=0,Y=0;t:for(;;){if(Cr=+le[nt>>3],q=Jr(d|0,h|0,ee|0,Y|0)|0,sr=+(q>>>0)+4294967296*+(Be()|0),Tt=+(d>>>0)+4294967296*+(h|0),zt=+(ee>>>0)+4294967296*+(Y|0),le[xe>>3]=Cr*sr/Tt+ +le[qe>>3]*zt/Tt,le[$e>>3]=+le[Re>>3]*sr/Tt+ +le[Ge>>3]*zt/Tt,d=Ya(xe,w,Oe)|0,d|0){c=d;break}q=Oe,z=g[q>>2]|0,q=g[q+4>>2]|0,M=To(z|0,q|0,_|0,b|0)|0,m=Be()|0,d=D+(M<<3)|0,E=d,h=g[E>>2]|0,E=g[E+4>>2]|0;r:do if((h|0)==0&(E|0)==0)oe=d,pt=16;else for(R=0,L=0;;){if((R|0)>(b|0)|(R|0)==(b|0)&L>>>0>_>>>0){c=1;break t}if((h|0)==(z|0)&(E|0)==(q|0))break r;if(d=An(M|0,m|0,1,0)|0,M=os(d|0,Be()|0,_|0,b|0)|0,m=Be()|0,L=An(L|0,R|0,1,0)|0,R=Be()|0,d=D+(M<<3)|0,E=d,h=g[E>>2]|0,E=g[E+4>>2]|0,(h|0)==0&(E|0)==0){oe=d,pt=16;break}}while(!1);if((pt|0)==16&&(pt=0,!((z|0)==0&(q|0)==0))&&(L=oe,g[L>>2]=z,g[L+4>>2]=q,L=P+(g[S>>2]<<3)|0,g[L>>2]=z,g[L+4>>2]=q,L=S,L=An(g[L>>2]|0,g[L+4>>2]|0,1,0)|0,z=Be()|0,q=S,g[q>>2]=L,g[q+4>>2]=z),ee=An(ee|0,Y|0,1,0)|0,Y=Be()|0,h=et,d=g[h>>2]|0,h=g[h+4>>2]|0,!((h|0)>(Y|0)|(h|0)==(Y|0)&d>>>0>ee>>>0)){h=1;break e}}h=0}else h=1;while(!1);if(re=re+1|0,!h){pt=21;break}if(d=g[y>>2]|0,(re|0)>=(d|0)){c=0,pt=21;break}}return(pt|0)==21?(Ie=Dt,c|0):0}function gt(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0,oe=0,xe=0,Oe=0,ge=0,Re=0,Ge=0,$e=0,nt=0,qe=0,et=0,pt=0,Dt=0,Tt=0,zt=0,sr=0;if(sr=Ie,Ie=Ie+112|0,pt=sr+80|0,d=sr+72|0,Dt=sr,Tt=sr+56|0,b|0)return zt=15,Ie=sr,zt|0;if(h=y+8|0,zt=qn((g[h>>2]<<5)+32|0)|0,!zt)return zt=13,Ie=sr,zt|0;if(_f(y,zt),qe=y,et=g[qe+4>>2]|0,b=d,g[b>>2]=g[qe>>2],g[b+4>>2]=et,_s(d,pt),b=$o(pt,_,Dt)|0,b)qe=0,et=0;else{if(b=g[d>>2]|0,P=g[h>>2]|0,(P|0)>0){D=g[y+12>>2]|0,S=0;do b=(g[D+(S<<3)>>2]|0)+b|0,S=S+1|0;while((S|0)!=(P|0));S=b}else S=b;b=Dt,P=g[b>>2]|0,b=g[b+4>>2]|0,D=((S|0)<0)<<31>>31,(b|0)<(D|0)|(b|0)==(D|0)&P>>>0<S>>>0?(b=Dt,g[b>>2]=S,g[b+4>>2]=D,b=D):S=P,qe=An(S|0,b|0,12,0)|0,et=Be()|0,b=Dt,g[b>>2]=qe,g[b+4>>2]=et,b=0}if(b|0)return zr(zt),zt=b,Ie=sr,zt|0;if(S=oo(qe,8)|0,!S)return zr(zt),zt=13,Ie=sr,zt|0;if(c=oo(qe,8)|0,!c)return zr(zt),zr(S),zt=13,Ie=sr,zt|0;$e=pt,g[$e>>2]=0,g[$e+4>>2]=0,$e=y,nt=g[$e+4>>2]|0,b=d,g[b>>2]=g[$e>>2],g[b+4>>2]=nt,b=We(d,qe,et,_,pt,S,c)|0;e:do if(b)zr(S),zr(c),zr(zt);else{t:do if((g[h>>2]|0)>0){for(D=y+12|0,P=0;b=We((g[D>>2]|0)+(P<<3)|0,qe,et,_,pt,S,c)|0,P=P+1|0,!(b|0);)if((P|0)>=(g[h>>2]|0))break t;zr(S),zr(c),zr(zt);break e}while(!1);(et|0)>0|(et|0)==0&qe>>>0>0&&na(c|0,0,qe<<3|0)|0,nt=pt,$e=g[nt+4>>2]|0;
4202t:do if(($e|0)>0|($e|0)==0&(g[nt>>2]|0)>>>0>0){ge=S,Re=c,Ge=S,$e=c,nt=S,b=S,oe=S,xe=c,Oe=c,S=c;r:for(;;){for(q=0,ee=0,Y=0,re=0,P=0,D=0;;){c=Dt,d=c+56|0;do g[c>>2]=0,c=c+4|0;while((c|0)<(d|0));if(_=ge+(q<<3)|0,h=g[_>>2]|0,_=g[_+4>>2]|0,$i(h,_,1,Dt,0)|0){c=Dt,d=c+56|0;do g[c>>2]=0,c=c+4|0;while((c|0)<(d|0));c=oo(7,4)|0,c|0&&(Ns(h,_,1,Dt,c,7,0,0)|0,zr(c))}for(z=0;;){L=Dt+(z<<3)|0,R=g[L>>2]|0,L=g[L+4>>2]|0;n:do if((R|0)==0&(L|0)==0)c=P,d=D;else{if(m=To(R|0,L|0,qe|0,et|0)|0,h=Be()|0,c=w+(m<<3)|0,_=c,d=g[_>>2]|0,_=g[_+4>>2]|0,!((d|0)==0&(_|0)==0)){E=0,M=0;do{if((E|0)>(et|0)|(E|0)==(et|0)&M>>>0>qe>>>0)break r;if((d|0)==(R|0)&(_|0)==(L|0)){c=P,d=D;break n}c=An(m|0,h|0,1,0)|0,m=os(c|0,Be()|0,qe|0,et|0)|0,h=Be()|0,M=An(M|0,E|0,1,0)|0,E=Be()|0,c=w+(m<<3)|0,_=c,d=g[_>>2]|0,_=g[_+4>>2]|0}while(!((d|0)==0&(_|0)==0))}(R|0)==0&(L|0)==0?(c=P,d=D):(Ol(R,L,Tt)|0,Zt(y,zt,Tt)|0&&(M=An(P|0,D|0,1,0)|0,D=Be()|0,E=c,g[E>>2]=R,g[E+4>>2]=L,P=Re+(P<<3)|0,g[P>>2]=R,g[P+4>>2]=L,P=M),c=P,d=D)}while(!1);if(z=z+1|0,z>>>0>=7)break;P=c,D=d}if(q=An(q|0,ee|0,1,0)|0,ee=Be()|0,Y=An(Y|0,re|0,1,0)|0,re=Be()|0,D=pt,P=g[D>>2]|0,D=g[D+4>>2]|0,(re|0)<(D|0)|(re|0)==(D|0)&Y>>>0<P>>>0)P=c,D=d;else break}if((D|0)>0|(D|0)==0&P>>>0>0){P=0,D=0;do re=ge+(P<<3)|0,g[re>>2]=0,g[re+4>>2]=0,P=An(P|0,D|0,1,0)|0,D=Be()|0,re=pt,Y=g[re+4>>2]|0;while((D|0)<(Y|0)|((D|0)==(Y|0)?P>>>0<(g[re>>2]|0)>>>0:0))}if(re=pt,g[re>>2]=c,g[re+4>>2]=d,(d|0)>0|(d|0)==0&c>>>0>0)z=S,q=Oe,ee=nt,Y=xe,re=Re,S=oe,Oe=b,xe=Ge,oe=z,b=q,nt=$e,$e=ee,Ge=Y,Re=ge,ge=re;else break t}zr(Ge),zr($e),zr(zt),b=1;break e}else b=c;while(!1);zr(zt),zr(S),zr(b),b=0}while(!1);return zt=b,Ie=sr,zt|0}function $t(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0;if(m=Ie,Ie=Ie+176|0,d=m,(_|0)<1)return Ia(b,0,0),h=0,Ie=m,h|0;for(c=y,c=Xt(g[c>>2]|0,g[c+4>>2]|0,52)|0,Be()|0,Ia(b,(_|0)>6?_:6,c&15),c=0;w=y+(c<<3)|0,w=Dl(g[w>>2]|0,g[w+4>>2]|0,d)|0,!(w|0);){if(w=g[d>>2]|0,(w|0)>0){D=0;do P=d+8+(D<<4)|0,D=D+1|0,w=d+8+(((D|0)%(w|0)|0)<<4)|0,S=wr(b,w,P)|0,S?ss(b,S)|0:Bc(b,P,w)|0,w=g[d>>2]|0;while((D|0)<(w|0))}if(c=c+1|0,(c|0)>=(_|0)){w=0,h=13;break}}return(h|0)==13?(Ie=m,w|0):(ta(b),h=w,Ie=m,h|0)}function br(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0;if(P=Ie,Ie=Ie+32|0,w=P,S=P+16|0,y=$t(y,_,S)|0,y|0)return b=y,Ie=P,b|0;if(g[b>>2]=0,g[b+4>>2]=0,g[b+8>>2]=0,y=so(S)|0,y|0)do{_=Np(b)|0;do Up(_,y)|0,D=y+16|0,g[w>>2]=g[D>>2],g[w+4>>2]=g[D+4>>2],g[w+8>>2]=g[D+8>>2],g[w+12>>2]=g[D+12>>2],ss(S,y)|0,y=ur(S,w)|0;while((y|0)!=0);y=so(S)|0}while((y|0)!=0);return ta(S),y=Ic(b)|0,y?(Nl(b),D=y,Ie=P,D|0):(D=0,Ie=P,D|0)}function Br(y){return y=y|0,y>>>0>121?(y=0,y|0):(y=g[7696+(y*28|0)+16>>2]|0,y|0)}function fi(y){return y=y|0,(y|0)==4|(y|0)==117|0}function Li(y){return y=y|0,g[11120+((g[y>>2]|0)*216|0)+((g[y+4>>2]|0)*72|0)+((g[y+8>>2]|0)*24|0)+(g[y+12>>2]<<3)>>2]|0}function Xi(y){return y=y|0,g[11120+((g[y>>2]|0)*216|0)+((g[y+4>>2]|0)*72|0)+((g[y+8>>2]|0)*24|0)+(g[y+12>>2]<<3)+4>>2]|0}function Qs(y,_){y=y|0,_=_|0,y=7696+(y*28|0)|0,g[_>>2]=g[y>>2],g[_+4>>2]=g[y+4>>2],g[_+8>>2]=g[y+8>>2],g[_+12>>2]=g[y+12>>2]}function xh(y,_){y=y|0,_=_|0;var b=0,w=0;if(_>>>0>20)return _=-1,_|0;do if((g[11120+(_*216|0)>>
42022]|0)!=(y|0))if((g[11120+(_*216|0)+8>>2]|0)!=(y|0))if((g[11120+(_*216|0)+16>>2]|0)!=(y|0))if((g[11120+(_*216|0)+24>>2]|0)!=(y|0))if((g[11120+(_*216|0)+32>>2]|0)!=(y|0))if((g[11120+(_*216|0)+40>>2]|0)!=(y|0))if((g[11120+(_*216|0)+48>>2]|0)!=(y|0))if((g[11120+(_*216|0)+56>>2]|0)!=(y|0))if((g[11120+(_*216|0)+64>>2]|0)!=(y|0))if((g[11120+(_*216|0)+72>>2]|0)!=(y|0))if((g[11120+(_*216|0)+80>>2]|0)!=(y|0))if((g[11120+(_*216|0)+88>>2]|0)!=(y|0))if((g[11120+(_*216|0)+96>>2]|0)!=(y|0))if((g[11120+(_*216|0)+104>>2]|0)!=(y|0))if((g[11120+(_*216|0)+112>>2]|0)!=(y|0))if((g[11120+(_*216|0)+120>>2]|0)!=(y|0))if((g[11120+(_*216|0)+128>>2]|0)!=(y|0))if((g[11120+(_*216|0)+136>>2]|0)==(y|0))y=2,b=1,w=2;else{if((g[11120+(_*216|0)+144>>2]|0)==(y|0)){y=0,b=2,w=0;break}if((g[11120+(_*216|0)+152>>2]|0)==(y|0)){y=0,b=2,w=1;break}if((g[11120+(_*216|0)+160>>2]|0)==(y|0)){y=0,b=2,w=2;break}if((g[11120+(_*216|0)+168>>2]|0)==(y|0)){y=1,b=2,w=0;break}if((g[11120+(_*216|0)+176>>2]|0)==(y|0)){y=1,b=2,w=1;break}if((g[11120+(_*216|0)+184>>2]|0)==(y|0)){y=1,b=2,w=2;break}if((g[11120+(_*216|0)+192>>2]|0)==(y|0)){y=2,b=2,w=0;break}if((g[11120+(_*216|0)+200>>2]|0)==(y|0)){y=2,b=2,w=1;break}if((g[11120+(_*216|0)+208>>2]|0)==(y|0)){y=2,b=2,w=2;break}else y=-1;return y|0}else y=2,b=1,w=1;else y=2,b=1,w=0;else y=1,b=1,w=2;else y=1,b=1,w=1;else y=1,b=1,w=0;else y=0,b=1,w=2;else y=0,b=1,w=1;else y=0,b=1,w=0;else y=2,b=0,w=2;else y=2,b=0,w=1;else y=2,b=0,w=0;else y=1,b=0,w=2;else y=1,b=0,w=1;else y=1,b=0,w=0;else y=0,b=0,w=2;else y=0,b=0,w=1;else y=0,b=0,w=0;while(!1);return _=g[11120+(_*216|0)+(b*72|0)+(y*24|0)+(w<<3)+4>>2]|0,_|0}function uf(y,_){return y=y|0,_=_|0,(g[7696+(y*28|0)+20>>2]|0)==(_|0)?(_=1,_|0):(_=(g[7696+(y*28|0)+24>>2]|0)==(_|0),_|0)}function ya(y,_){return y=y|0,_=_|0,g[848+(y*28|0)+(_<<2)>>2]|0}function mc(y,_){return y=y|0,_=_|0,(g[848+(y*28|0)>>2]|0)==(_|0)?(_=0,_|0):(g[848+(y*28|0)+4>>2]|0)==(_|0)?(_=1,_|0):(g[848+(y*28|0)+8>>2]|0)==(_|0)?(_=2,_|0):(g[848+(y*28|0)+12>>2]|0)==(_|0)?(_=3,_|0):(g[848+(y*28|0)+16>>2]|0)==(_|0)?(_=4,_|0):(g[848+(y*28|0)+20>>2]|0)==(_|0)?(_=5,_|0):((g[848+(y*28|0)+24>>2]|0)==(_|0)?6:7)|0}function _c(){return 122}function wh(y){y=y|0;var _=0,b=0,w=0;_=0;do rr(_|0,0,45)|0,w=Be()|0|134225919,b=y+(_<<3)|0,g[b>>2]=-1,g[b+4>>2]=w,_=_+1|0;while((_|0)!=122);return 0}function yc(y){return y=y|0,+le[y+16>>3]<+le[y+24>>3]|0}function Us(y,_){y=y|0,_=_|0;var b=0,w=0,S=0;return b=+le[_>>3],!(b>=+le[y+8>>3])||!(b<=+le[y>>3])?(_=0,_|0):(w=+le[y+16>>3],b=+le[y+24>>3],S=+le[_+8>>3],_=S>=b,y=S<=w&1,w<b?_&&(y=1):_||(y=0),_=(y|0)!=0,_|0)}function $o(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0;L=Ie,Ie=Ie+288|0,m=L+264|0,E=L+96|0,h=L,c=h,d=c+96|0;do g[c>>2]=0,c=c+4|0;while((c|0)<(d|0));return _=wc(_,h)|0,_|0?(R=_,Ie=L,R|0):(d=h,h=g[d>>2]|0,d=g[d+4>>2]|0,Ol(h,d,m)|0,Dl(h,d,E)|0,D=+rl(m,E+8|0),le[m>>3]=+le[y>>3],d=m+8|0,le[d>>3]=+le[y+16>>3],le[E>>3]=+le[y+8>>3],h=E+8|0,le[h>>3]=+le[y+24>>3],S=+rl(m,E),q=+le[d>>3]-+le[h>>3],P=+Mt(+q),z=+le[m>>3]-+le[E>>3],w=+Mt(+z),!(q==0|z==0)&&(q=+Vl(+P,+w),q=+$r(+(S*S/+Pc(+(q/+Pc(+P,+w)),3)/(D*(D*2.59807621135)*.8))),le[xt>>3]=q,M=~~q>>>0,R=+Mt(q)>=1?q>0?~~+jr(+Ct(q/4294967296),4294967295)>>>0:~~+$r((q-+(~~q>>>0))/4294967296)>>>0:0,(g[xt+4>>2]&2146435072|0)!=2146435072)?(E=(M|0)==0&(R|0)==0,_=b,g[_>>2]=E?1:M,g[_+4>>2]=E?0:R,_=0):_=1,R=_,Ie=L,R|0)}function va(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0,m=0;h=Ie,Ie=Ie+288|0,D=h+264|0,c=h+96|0,d=h,S=d,P=S+96|0;do g[S>>2]=0,S=S+4|0;while((S|0)<(P|0));return b=wc(b,d)|0,b|0?(w=b,Ie=h,w|0):(b=d,S=g[b>>2]|0,b=g[b+4>>2]|0,Ol(S,b,D)|0,Dl(S,b,c)|0,m=+rl(D,c+8|0),m=+$r(+(+rl(y,_)/(m*2))),le[xt>>3]=m,b=~~m>>>0,S=+Mt(m)>=1?m>0?~~+jr(+Ct(m/4294967296),4294967295)>>>0:~~+$r((m-+(~~m>>>0))/4294967296)>>>0:0,(g[xt+4>>2]&2146435072|0)==2146435072?(w=1,Ie=h,w|0):(d=(b|0)==0&(S|0)==0,g[w>>2]=d?1:b,g[w+4>>2]=d?0:S,w=0,Ie=h,w|0))}function Wa(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0,g[y>>2]=_,g[y+4>>2]=b,g[y+8>>2]=w}function ba(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0;E=_+8|0,g[E>>2]=0,d=+le[y>>3],D=+Mt(+d),h=+le[y+8>>3],c=+Mt(+h)/.8660254037844386,D=D+c*.5,b=~~D,y=~~c,D=D-+(b|0),c=c-+(y|0);do if(D<.5)if(D<.3333333333333333)if(g[_>>2]=b,c<(D+1)*.5){g[_+4>>2]=y;break}else{y=y+1|0,g[_+4>>2]=y;break}else if(M=1-D,y=(!(c<M)&1)+y|0,g[_+4>>2]=y,M<=c&c<D*2){b=b+1|0,g[_>>2]=b;break}else{g[_>>2]=b;break}else{if(!(D<.6666666666666666))if(b=b+1|0,g[_>>2]=b,c<D*.5){g[_+4>>2]=y;break}else{y=y+1|0,g[_+4>>2]=y;break}
4202if(c<1-D){if(g[_+4>>2]=y,D*2+-1<c){g[_>>2]=b;break}}else y=y+1|0,g[_+4>>2]=y;b=b+1|0,g[_>>2]=b}while(!1);do if(d<0)if(y&1){m=(y+1|0)/2|0,m=Jr(b|0,((b|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0,b=~~(+(b|0)-((+(m>>>0)+4294967296*+(Be()|0))*2+1)),g[_>>2]=b;break}else{m=(y|0)/2|0,m=Jr(b|0,((b|0)<0)<<31>>31|0,m|0,((m|0)<0)<<31>>31|0)|0,b=~~(+(b|0)-(+(m>>>0)+4294967296*+(Be()|0))*2),g[_>>2]=b;break}while(!1);m=_+4|0,h<0&&(b=b-((y<<1|1|0)/2|0)|0,g[_>>2]=b,y=0-y|0,g[m>>2]=y),w=y-b|0,(b|0)<0?(S=0-b|0,g[m>>2]=w,g[E>>2]=S,g[_>>2]=0,y=w,b=0):S=0,(y|0)<0&&(b=b-y|0,g[_>>2]=b,S=S-y|0,g[E>>2]=S,g[m>>2]=0,y=0),P=b-S|0,w=y-S|0,(S|0)<0&&(g[_>>2]=P,g[m>>2]=w,g[E>>2]=0,y=w,b=P,S=0),w=(y|0)<(b|0)?y:b,w=(S|0)<(w|0)?S:w,!((w|0)<=0)&&(g[_>>2]=b-w,g[m>>2]=y-w,g[E>>2]=S-w)}function _i(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0;_=g[y>>2]|0,D=y+4|0,b=g[D>>2]|0,(_|0)<0&&(b=b-_|0,g[D>>2]=b,P=y+8|0,g[P>>2]=(g[P>>2]|0)-_,g[y>>2]=0,_=0),(b|0)<0?(_=_-b|0,g[y>>2]=_,P=y+8|0,S=(g[P>>2]|0)-b|0,g[P>>2]=S,g[D>>2]=0,b=0):(S=y+8|0,P=S,S=g[S>>2]|0),(S|0)<0&&(_=_-S|0,g[y>>2]=_,b=b-S|0,g[D>>2]=b,g[P>>2]=0,S=0),w=(b|0)<(_|0)?b:_,w=(S|0)<(w|0)?S:w,!((w|0)<=0)&&(g[y>>2]=_-w,g[D>>2]=b-w,g[P>>2]=S-w)}function Mo(y,_){y=y|0,_=_|0;var b=0,w=0;w=g[y+8>>2]|0,b=+((g[y+4>>2]|0)-w|0),le[_>>3]=+((g[y>>2]|0)-w|0)-b*.5,le[_+8>>3]=b*.8660254037844386}function Vn(y,_,b){y=y|0,_=_|0,b=b|0,g[b>>2]=(g[_>>2]|0)+(g[y>>2]|0),g[b+4>>2]=(g[_+4>>2]|0)+(g[y+4>>2]|0),g[b+8>>2]=(g[_+8>>2]|0)+(g[y+8>>2]|0)}function hi(y,_,b){y=y|0,_=_|0,b=b|0,g[b>>2]=(g[y>>2]|0)-(g[_>>2]|0),g[b+4>>2]=(g[y+4>>2]|0)-(g[_+4>>2]|0),g[b+8>>2]=(g[y+8>>2]|0)-(g[_+8>>2]|0)}function $a(y,_){y=y|0,_=_|0;var b=0,w=0;b=Xr(g[y>>2]|0,_)|0,g[y>>2]=b,b=y+4|0,w=Xr(g[b>>2]|0,_)|0,g[b>>2]=w,y=y+8|0,_=Xr(g[y>>2]|0,_)|0,g[y>>2]=_}function vc(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;D=g[y>>2]|0,c=(D|0)<0,w=(g[y+4>>2]|0)-(c?D:0)|0,P=(w|0)<0,S=(P?0-w|0:0)+((g[y+8>>2]|0)-(c?D:0))|0,b=(S|0)<0,y=b?0:S,_=(P?0:w)-(b?S:0)|0,S=(c?0:D)-(P?w:0)-(b?S:0)|0,b=(_|0)<(S|0)?_:S,b=(y|0)<(b|0)?y:b,w=(b|0)>0,y=y-(w?b:0)|0,_=_-(w?b:0)|0;e:do switch(S-(w?b:0)|0){case 0:switch(_|0){case 0:return c=(y|0)==0?0:(y|0)==1?1:7,c|0;case 1:return c=(y|0)==0?2:(y|0)==1?3:7,c|0;default:break e}case 1:switch(_|0){case 0:return c=(y|0)==0?4:(y|0)==1?5:7,c|0;case 1:{if(!y)y=6;else break e;return y|0}default:break e}}while(!1);return c=7,c|0}function Op(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;D=y+8|0,S=g[D>>2]|0,P=(g[y>>2]|0)-S|0,c=y+4|0,S=(g[c>>2]|0)-S|0;do if(P>>>0>715827881|S>>>0>715827881){if(b=(P|0)>0,b){if((2147483647-P|0)<(P|0)||(2147483647-(P<<1)|0)<(P|0))return c=1,c|0}else if((-2147483648-P|0)>(P|0)||(-2147483648-(P<<1)|0)>(P|0))return c=1,c|0;if(_=P*3|0,(S|0)>0){if((2147483647-S|0)<(S|0))return c=1,c|0}else if((-2147483648-S|0)>(S|0))return c=1,c|0;if(w=S<<1,(P|0)>-1){if((_|-2147483648|0)>=(S|0))return c=1,c|0}else if((_^-2147483648|0)<(S|0))return c=1,c|0;if(b){if((2147483647-P|0)<(w|0))_=1;else{b=w;break}return _|0}else{if((-2147483648-P|0)>(w|0))_=1;else{b=w;break}return _|0}}else b=S<<1,_=P*3|0;while(!1);w=Ji(+(_-S|0)/7)|0,g[y>>2]=w,S=Ji(+(b+P|0)/7)|0,g[c>>2]=S,g[D>>2]=0,b=(S|0)<(w|0),_=b?w:S,b=b?S:w;do if((b|0)<0){if((_|0)>0){if((_|-2147483648|0)<(b|0)&((b|0)!=-2147483648&(2147483647-_|0)>=(b|0)))break;qt(23313,22444,355,22455)}if((b|0)==-2147483648|(-2147483648-_|0)>(b|0)&&qt(23313,22444,355,22455),(_|0)>-1){if((_|-2147483648|0)<(b|0))break;qt(23313,22444,355,22455)}else{if((_^-2147483648|0)>=(b|0))break;qt(23313,22444,355,22455)}}while(!1);return _=S-w|0,(w|0)<0?(b=0-w|0,g[c>>2]=_,g[D>>2]=b,g[y>>2]=0,w=0):(_=S,b=0),(_|0)<0&&(w=w-_|0,g[y>>2]=w,b=b-_|0,g[D>>2]=b,g[c>>2]=0,_=0),P=w-b|0,S=_-b|0,(b|0)<0?(g[y>>2]=P,g[c>>2]=S,g[D>>2]=0,_=S,S=P,b=0):S=w,w=(_|0)<(S|0)?_:S,w=(b|0)<(w|0)?b:w,(w|0)<=0?(c=0,c|0):(g[y>>2]=S-w,g[c>>2]=_-w,g[D>>2]=b-w,c=0,c|0)}function Dp(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;D=y+8|0,S=g[D>>2]|0,P=(g[y>>2]|0)-S|0,c=y+4|0,S=(g[c>>2]|0)-S|0;do if(P>>>0>715827881|S>>>0>715827881){if(b=(P|0)>0,b){if((2147483647-P|0)<(P|0))return c=1,c|0}else if((-2147483648-P|0)>(P|0))return c=1,c|0;if(_=P<<1,(S|0)>
42020){if((2147483647-S|0)<(S|0)||(2147483647-(S<<1)|0)<(S|0))return c=1,c|0}else if((-2147483648-S|0)>(S|0)||(-2147483648-(S<<1)|0)>(S|0))return c=1,c|0;if(w=S*3|0,b){if((2147483647-_|0)<(S|0))return c=1,c|0}else if((-2147483648-_|0)>(S|0))return c=1,c|0;if((S|0)>-1){if((w|-2147483648|0)<(P|0)){b=w;break}else _=1;return _|0}else{if((w^-2147483648|0)<(P|0))_=1;else{b=w;break}return _|0}}else b=S*3|0,_=P<<1;while(!1);w=Ji(+(_+S|0)/7)|0,g[y>>2]=w,S=Ji(+(b-P|0)/7)|0,g[c>>2]=S,g[D>>2]=0,b=(S|0)<(w|0),_=b?w:S,b=b?S:w;do if((b|0)<0){if((_|0)>0){if((_|-2147483648|0)<(b|0)&((b|0)!=-2147483648&(2147483647-_|0)>=(b|0)))break;qt(23313,22444,404,22469)}if((b|0)==-2147483648|(-2147483648-_|0)>(b|0)&&qt(23313,22444,404,22469),(_|0)>-1){if((_|-2147483648|0)<(b|0))break;qt(23313,22444,404,22469)}else{if((_^-2147483648|0)>=(b|0))break;qt(23313,22444,404,22469)}}while(!1);return _=S-w|0,(w|0)<0?(b=0-w|0,g[c>>2]=_,g[D>>2]=b,g[y>>2]=0,w=0):(_=S,b=0),(_|0)<0&&(w=w-_|0,g[y>>2]=w,b=b-_|0,g[D>>2]=b,g[c>>2]=0,_=0),P=w-b|0,S=_-b|0,(b|0)<0?(g[y>>2]=P,g[c>>2]=S,g[D>>2]=0,_=S,S=P,b=0):S=w,w=(_|0)<(S|0)?_:S,w=(b|0)<(w|0)?b:w,(w|0)<=0?(c=0,c|0):(g[y>>2]=S-w,g[c>>2]=_-w,g[D>>2]=b-w,c=0,c|0)}function ff(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;D=y+8|0,b=g[D>>2]|0,_=(g[y>>2]|0)-b|0,c=y+4|0,b=(g[c>>2]|0)-b|0,w=Ji(+((_*3|0)-b|0)/7)|0,g[y>>2]=w,_=Ji(+((b<<1)+_|0)/7)|0,g[c>>2]=_,g[D>>2]=0,b=_-w|0,(w|0)<0?(P=0-w|0,g[c>>2]=b,g[D>>2]=P,g[y>>2]=0,_=b,w=0,b=P):b=0,(_|0)<0&&(w=w-_|0,g[y>>2]=w,b=b-_|0,g[D>>2]=b,g[c>>2]=0,_=0),P=w-b|0,S=_-b|0,(b|0)<0?(g[y>>2]=P,g[c>>2]=S,g[D>>2]=0,_=S,S=P,b=0):S=w,w=(_|0)<(S|0)?_:S,w=(b|0)<(w|0)?b:w,!((w|0)<=0)&&(g[y>>2]=S-w,g[c>>2]=_-w,g[D>>2]=b-w)}function iu(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;D=y+8|0,b=g[D>>2]|0,_=(g[y>>2]|0)-b|0,c=y+4|0,b=(g[c>>2]|0)-b|0,w=Ji(+((_<<1)+b|0)/7)|0,g[y>>2]=w,_=Ji(+((b*3|0)-_|0)/7)|0,g[c>>2]=_,g[D>>2]=0,b=_-w|0,(w|0)<0?(P=0-w|0,g[c>>2]=b,g[D>>2]=P,g[y>>2]=0,_=b,w=0,b=P):b=0,(_|0)<0&&(w=w-_|0,g[y>>2]=w,b=b-_|0,g[D>>2]=b,g[c>>2]=0,_=0),P=w-b|0,S=_-b|0,(b|0)<0?(g[y>>2]=P,g[c>>2]=S,g[D>>2]=0,_=S,S=P,b=0):S=w,w=(_|0)<(S|0)?_:S,w=(b|0)<(w|0)?b:w,!((w|0)<=0)&&(g[y>>2]=S-w,g[c>>2]=_-w,g[D>>2]=b-w)}function Bl(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;_=g[y>>2]|0,D=y+4|0,b=g[D>>2]|0,c=y+8|0,w=g[c>>2]|0,S=b+(_*3|0)|0,g[y>>2]=S,b=w+(b*3|0)|0,g[D>>2]=b,_=(w*3|0)+_|0,g[c>>2]=_,w=b-S|0,(S|0)<0?(_=_-S|0,g[D>>2]=w,g[c>>2]=_,g[y>>
42022]=0,b=w,w=0):w=S,(b|0)<0&&(w=w-b|0,g[y>>2]=w,_=_-b|0,g[c>>2]=_,g[D>>2]=0,b=0),P=w-_|0,S=b-_|0,(_|0)<0?(g[y>>2]=P,g[D>>2]=S,g[c>>2]=0,w=P,_=0):S=b,b=(S|0)<(w|0)?S:w,b=(_|0)<(b|0)?_:b,!((b|0)<=0)&&(g[y>>2]=w-b,g[D>>2]=S-b,g[c>>2]=_-b)}function Xo(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;S=g[y>>2]|0,D=y+4|0,_=g[D>>2]|0,c=y+8|0,b=g[c>>2]|0,w=(_*3|0)+S|0,S=b+(S*3|0)|0,g[y>>2]=S,g[D>>2]=w,_=(b*3|0)+_|0,g[c>>2]=_,b=w-S|0,(S|0)<0?(_=_-S|0,g[D>>2]=b,g[c>>2]=_,g[y>>2]=0,S=0):b=w,(b|0)<0&&(S=S-b|0,g[y>>2]=S,_=_-b|0,g[c>>2]=_,g[D>>2]=0,b=0),P=S-_|0,w=b-_|0,(_|0)<0?(g[y>>2]=P,g[D>>2]=w,g[c>>2]=0,S=P,_=0):w=b,b=(w|0)<(S|0)?w:S,b=(_|0)<(b|0)?_:b,!((b|0)<=0)&&(g[y>>2]=S-b,g[D>>2]=w-b,g[c>>2]=_-b)}function hf(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0;(_+-1|0)>>>0>=6||(S=(g[15440+(_*12|0)>>2]|0)+(g[y>>2]|0)|0,g[y>>2]=S,c=y+4|0,w=(g[15440+(_*12|0)+4>>2]|0)+(g[c>>2]|0)|0,g[c>>2]=w,D=y+8|0,_=(g[15440+(_*12|0)+8>>2]|0)+(g[D>>2]|0)|0,g[D>>2]=_,b=w-S|0,(S|0)<0?(_=_-S|0,g[c>>2]=b,g[D>>2]=_,g[y>>2]=0,w=0):(b=w,w=S),(b|0)<0&&(w=w-b|0,g[y>>2]=w,_=_-b|0,g[D>>2]=_,g[c>>2]=0,b=0),P=w-_|0,S=b-_|0,(_|0)<0?(g[y>>2]=P,g[c>>2]=S,g[D>>2]=0,w=P,_=0):S=b,b=(S|0)<(w|0)?S:w,b=(_|0)<(b|0)?_:b,!((b|0)<=0)&&(g[y>>2]=w-b,g[c>>2]=S-b,g[D>>2]=_-b))}function df(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;S=g[y>>2]|0,D=y+4|0,_=g[D>>2]|0,c=y+8|0,b=g[c>>2]|0,w=_+S|0,S=b+S|0,g[y>>2]=S,g[D>>2]=w,_=b+_|0,g[c>>2]=_,b=w-S|0,(S|0)<0?(_=_-S|0,g[D>>2]=b,g[c>>2]=_,g[y>>2]=0,w=0):(b=w,w=S),(b|0)<0&&(w=w-b|0,g[y>>2]=w,_=_-b|0,g[c>>2]=_,g[D>>2]=0,b=0),P=w-_|0,S=b-_|0,(_|0)<0?(g[y>>2]=P,g[D>>2]=S,g[c>>2]=0,w=P,_=0):S=b,b=(S|0)<(w|0)?S:w,b=(_|0)<(b|0)?_:b,!((b|0)<=0)&&(g[y>>2]=w-b,g[D>>2]=S-b,g[c>>2]=_-b)}function su(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;_=g[y>>2]|0,D=y+4|0,w=g[D>>2]|0,c=y+8|0,b=g[c>>2]|0,S=w+_|0,g[y>>2]=S,w=b+w|0,g[D>>2]=w,_=b+_|0,g[c>>2]=_,b=w-S|0,(S|0)<0?(_=_-S|0,g[D>>2]=b,g[c>>2]=_,g[y>>2]=0,w=0):(b=w,w=S),(b|0)<0&&(w=w-b|0,g[y>>2]=w,_=_-b|0,g[c>>2]=_,g[D>>2]=0,b=0),P=w-_|0,S=b-_|0,(_|0)<0?(g[y>>2]=P,g[D>>2]=S,g[c>>2]=0,w=P,_=0):S=b,b=(S|0)<(w|0)?S:w,b=(_|0)<(b|0)?_:b,!((b|0)<=0)&&(g[y>>2]=w-b,g[D>>2]=S-b,g[c>>2]=_-b)}function bo(y){switch(y=y|0,y|0){case 1:{y=5;break}case 5:{y=4;break}case 4:{y=6;break}case 6:{y=2;break}case 2:{y=3;break}case 3:{y=1;break}}return y|0}function eo(y){switch(y=y|0,y|0){case 1:{y=3;break}case 3:{y=2;break}case 2:{y=6;break}case 6:{y=4;break}case 4:{y=5;break}case 5:{y=1;break}}return y|0}function pf(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;_=g[y>>2]|0,D=y+4|0,b=g[D>>2]|0,c=y+8|0,w=g[c>>2]|0,S=b+(_<<1)|0,g[y>>2]=S,b=w+(b<<1)|0,g[D>>2]=b,_=(w<<1)+_|0,g[c>>2]=_,w=b-S|0,(S|0)<0?(_=_-S|0,g[D>>2]=w,g[c>>2]=_,g[y>>
42022]=0,b=w,w=0):w=S,(b|0)<0&&(w=w-b|0,g[y>>2]=w,_=_-b|0,g[c>>2]=_,g[D>>2]=0,b=0),P=w-_|0,S=b-_|0,(_|0)<0?(g[y>>2]=P,g[D>>2]=S,g[c>>2]=0,w=P,_=0):S=b,b=(S|0)<(w|0)?S:w,b=(_|0)<(b|0)?_:b,!((b|0)<=0)&&(g[y>>2]=w-b,g[D>>2]=S-b,g[c>>2]=_-b)}function zi(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;S=g[y>>2]|0,D=y+4|0,_=g[D>>2]|0,c=y+8|0,b=g[c>>2]|0,w=(_<<1)+S|0,S=b+(S<<1)|0,g[y>>2]=S,g[D>>2]=w,_=(b<<1)+_|0,g[c>>2]=_,b=w-S|0,(S|0)<0?(_=_-S|0,g[D>>2]=b,g[c>>2]=_,g[y>>2]=0,S=0):b=w,(b|0)<0&&(S=S-b|0,g[y>>2]=S,_=_-b|0,g[c>>2]=_,g[D>>2]=0,b=0),P=S-_|0,w=b-_|0,(_|0)<0?(g[y>>2]=P,g[D>>2]=w,g[c>>2]=0,S=P,_=0):w=b,b=(w|0)<(S|0)?w:S,b=(_|0)<(b|0)?_:b,!((b|0)<=0)&&(g[y>>2]=S-b,g[D>>2]=w-b,g[c>>2]=_-b)}function bc(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0;return D=(g[y>>2]|0)-(g[_>>2]|0)|0,c=(D|0)<0,w=(g[y+4>>2]|0)-(g[_+4>>2]|0)-(c?D:0)|0,P=(w|0)<0,S=(c?0-D|0:0)+(g[y+8>>2]|0)-(g[_+8>>2]|0)+(P?0-w|0:0)|0,y=(S|0)<0,_=y?0:S,b=(P?0:w)-(y?S:0)|0,S=(c?0:D)-(P?w:0)-(y?S:0)|0,y=(b|0)<(S|0)?b:S,y=(_|0)<(y|0)?_:y,w=(y|0)>0,_=_-(w?y:0)|0,b=b-(w?y:0)|0,y=S-(w?y:0)|0,y=(y|0)>-1?y:0-y|0,b=(b|0)>-1?b:0-b|0,_=(_|0)>-1?_:0-_|0,_=(b|0)>(_|0)?b:_,((y|0)>(_|0)?y:_)|0}function xa(y,_){y=y|0,_=_|0;var b=0;b=g[y+8>>2]|0,g[_>>2]=(g[y>>2]|0)-b,g[_+4>>2]=(g[y+4>>2]|0)-b}function wa(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0;w=g[y>>2]|0,g[_>>2]=w,S=g[y+4>>2]|0,D=_+4|0,g[D>>2]=S,c=_+8|0,g[c>>2]=0,b=(S|0)<(w|0),y=b?w:S,b=b?S:w;do if((b|0)<0){if((y|0)>0){if((y|-2147483648|0)<(b|0)&((b|0)!=-2147483648&(2147483647-y|0)>=(b|0)))break;return y=1,y|0}if((b|0)==-2147483648|(-2147483648-y|0)>(b|0))return _=1,_|0;if((y|0)>-1){if((y|-2147483648|0)<(b|0))break;return y=1,y|0}else{if((y^-2147483648|0)<(b|0))y=1;else break;return y|0}}while(!1);return y=S-w|0,(w|0)<0?(b=0-w|0,g[D>>2]=y,g[c>>2]=b,g[_>>2]=0,w=0):(y=S,b=0),(y|0)<0&&(w=w-y|0,g[_>>2]=w,b=b-y|0,g[c>>2]=b,g[D>>2]=0,y=0),P=w-b|0,S=y-b|0,(b|0)<0?(g[_>>2]=P,g[D>>2]=S,g[c>>2]=0,y=S,S=P,b=0):S=w,w=(y|0)<(S|0)?y:S,w=(b|0)<(w|0)?b:w,(w|0)<=0?(_=0,_|0):(g[_>>2]=S-w,g[D>>2]=y-w,g[c>>2]=b-w,_=0,_|0)}function Ta(y){y=y|0;var _=0,b=0,w=0,S=0;_=y+8|0,S=g[_>>2]|0,b=S-(g[y>>2]|0)|0,g[y>>2]=b,w=y+4|0,y=(g[w>>2]|0)-S|0,g[w>>2]=y,g[_>>2]=0-(y+b)}function Xa(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;b=g[y>>2]|0,_=0-b|0,g[y>>2]=_,D=y+8|0,g[D>>2]=0,c=y+4|0,w=g[c>>2]|0,S=w+b|0,(b|0)>0?(g[c>>2]=S,g[D>>2]=b,g[y>>2]=0,_=0,w=S):b=0,(w|0)<0?(P=_-w|0,g[y>>2]=P,b=b-w|0,g[D>>2]=b,g[c>>2]=0,S=P-b|0,_=0-b|0,(b|0)<0?(g[y>>2]=S,g[c>>2]=_,g[D>>2]=0,w=_,b=0):(w=0,S=P)):S=_,_=(w|0)<(S|0)?w:S,_=(b|0)<(_|0)?b:_,!((_|0)<=0)&&(g[y>>2]=S-_,g[c>>2]=w-_,g[D>>2]=b-_)}function Ea(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0,m=0,E=0;if(E=Ie,Ie=Ie+64|0,m=E,c=E+56|0,!(!0&(_&2013265920|0)==134217728&(!0&(w&2013265920|0)==134217728)))return S=5,Ie=E,S|0;if((y|0)==(b|0)&(_|0)==(w|0))return g[S>>2]=0,S=0,Ie=E,S|0;if(D=Xt(y|0,_|0,52)|0,Be()|0,D=D&15,h=Xt(b|0,w|0,52)|0,Be()|0,(D|0)!=(h&15|0))return S=12,Ie=E,S|0;if(P=D+-1|0,D>>>0>1){Zo(y,_,P,m)|0,Zo(b,w,P,c)|0,h=m,d=g[h>>2]|0,h=g[h+4>>2]|0;e:do if((d|0)==(g[c>>2]|0)&&(h|0)==(g[c+4>>2]|0)){D=(D^15)*3|0,P=Xt(y|0,_|0,D|0)|0,Be()|0,P=P&7,D=Xt(b|0,w|0,D|0)|0,Be()|0,D=D&7;do if((P|0)==0|(D|0)==0)g[S>>2]=1,P=0;else if((P|0)==7)P=5;else{if((P|0)==1|(D|0)==1&&On(d,h)|0){P=5;break}if((g[15536+(P<<2)>>2]|0)!=(D|0)&&(g[15568+(P<<2)>>2]|0)!=(D|0))break e;g[S>>2]=1,P=0}while(!1);return S=P,Ie=E,S|0}while(!1)}P=m,D=P+56|0;do g[P>>2]=0,P=P+4|0;while((P|0)<(D|0));return Rn(y,_,1,m)|0,_=m,!((g[_>>2]|0)==(b|0)&&(g[_+4>>2]|0)==(w|0))&&(_=m+8|0,!((g[_>>2]|0)==(b|0)&&(g[_+4>>2]|0)==(w|0)))&&(_=m+16|0,!((g[_>>2]|0)==(b|0)&&(g[_+4>>2]|0)==(w|0)))&&(_=m+24|0,!((g[_>>2]|0)==(b|0)&&(g[_+4>>2]|0)==(w|0)))&&(_=m+32|0,!((g[_>>2]|0)==(b|0)&&(g[_+4>>2]|0)==(w|0)))&&(_=m+40|0,!((g[_>>2]|0)==(b|0)&&(g[_+4>>2]|0)==(w|0)))?(P=m+48|0,P=((g[P>>2]|0)==(b|0)?(g[P+4>>2]|0)==(w|0):0)&1):P=1,g[S>>2]=P,S=0,Ie=E,S|0}function qa(y,_,b,w,S){return y=y|0,_=_|0,b=b|0,w=w|0,S=S|0,b=gc(y,_,b,w)|0,(b|0)==7?(S=11,S|0):(w=rr(b|0,0,56)|0,_=_&-2130706433|(Be()|0)|268435456,g[S>>2]=y|w,g[S+4>>2]=_,S=0,S|0)}function Ja(y,_,b){return y=y|0,_=_|0,b=b|0,!0&(_&2013265920|0)==268435456?(g[b>>2]=y,g[b+4>>2]=_&-2130706433|134217728,b=0,b|0):(b=6,b|0)}function Ca(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0;
4202return S=Ie,Ie=Ie+16|0,w=S,g[w>>2]=0,!0&(_&2013265920|0)==268435456?(P=Xt(y|0,_|0,56)|0,Be()|0,w=In(y,_&-2130706433|134217728,P&7,w,b)|0,Ie=S,w|0):(w=6,Ie=S,w|0)}function Th(y,_){y=y|0,_=_|0;var b=0;switch(b=Xt(y|0,_|0,56)|0,Be()|0,b&7){case 0:case 7:return b=0,b|0}return b=_&-2130706433|134217728,!(!0&(_&2013265920|0)==268435456)||!0&(_&117440512|0)==16777216&(On(y,b)|0)!=0?(b=0,b|0):(b=Ko(y,b)|0,b|0)}function Eh(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0;return S=Ie,Ie=Ie+16|0,w=S,!0&(_&2013265920|0)==268435456?(P=_&-2130706433|134217728,D=b,g[D>>2]=y,g[D+4>>2]=P,g[w>>2]=0,_=Xt(y|0,_|0,56)|0,Be()|0,w=In(y,P,_&7,w,b+8|0)|0,Ie=S,w|0):(w=6,Ie=S,w|0)}function Bn(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0;return S=(On(y,_)|0)==0,_=_&-2130706433,w=b,g[w>>2]=S?y:0,g[w+4>>2]=S?_|285212672:0,w=b+8|0,g[w>>2]=y,g[w+4>>2]=_|301989888,w=b+16|0,g[w>>2]=y,g[w+4>>2]=_|318767104,w=b+24|0,g[w>>2]=y,g[w+4>>2]=_|335544320,w=b+32|0,g[w>>2]=y,g[w+4>>2]=_|352321536,b=b+40|0,g[b>>2]=y,g[b+4>>2]=_|369098752,0}function ou(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0;return D=Ie,Ie=Ie+16|0,S=D,P=_&-2130706433|134217728,!0&(_&2013265920|0)==268435456?(w=Xt(y|0,_|0,56)|0,Be()|0,w=wo(y,P,w&7)|0,(w|0)==-1?(g[b>>2]=0,P=6,Ie=D,P|0):(Qa(y,P,S)|0&&qt(23313,22484,282,22499),_=Xt(y|0,_|0,52)|0,Be()|0,_=_&15,On(y,P)|0?qo(S,_,w,2,b):lu(S,_,w,2,b),P=0,Ie=D,P|0)):(P=6,Ie=D,P|0)}function au(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0;w=Ie,Ie=Ie+16|0,S=w,Ch(y,_,b,S),ba(S,b+4|0),Ie=w}function Ch(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0;if(c=Ie,Ie=Ie+16|0,d=c,Sh(y,b,d),P=+Ur(+(1-+le[d>>3]*.5)),P<1e-16){g[w>>2]=0,g[w+4>>2]=0,g[w+8>>2]=0,g[w+12>>2]=0,Ie=c;return}if(d=g[b>>2]|0,S=+le[15920+(d*24|0)>>3],S=+Ll(S-+Ll(+mf(15600+(d<<4)|0,y))),zs(_)|0?D=+Ll(S+-.3334731722518321):D=S,S=+Gt(+P)/.381966011250105,(_|0)>0){y=0;do S=S*2.6457513110645907,y=y+1|0;while((y|0)!=(_|0))}P=+Lt(+D)*S,le[w>>3]=P,D=+Pt(+D)*S,le[w+8>>3]=D,Ie=c}function Sh(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0;if(P=Ie,Ie=Ie+32|0,S=P,xf(y,S),g[_>>2]=0,le[b>>3]=5,w=+wi(16400,S),w<+le[b>>3]&&(g[_>>2]=0,le[b>>3]=w),w=+wi(16424,S),w<+le[b>>3]&&(g[_>>2]=1,le[b>>3]=w),w=+wi(16448,S),w<+le[b>>3]&&(g[_>>2]=2,le[b>>3]=w),w=+wi(16472,S),w<+le[b>>3]&&(g[_>>2]=3,le[b>>3]=w),w=+wi(16496,S),w<+le[b>>3]&&(g[_>>2]=4,le[b>>3]=w),w=+wi(16520,S),w<+le[b>>3]&&(g[_>>2]=5,le[b>>3]=w),w=+wi(16544,S),w<+le[b>>3]&&(g[_>>2]=6,le[b>>3]=w),w=+wi(16568,S),w<+le[b>>3]&&(g[_>>2]=7,le[b>>3]=w),w=+wi(16592,S),w<+le[b>>3]&&(g[_>>2]=8,le[b>>3]=w),w=+wi(16616,S),w<+le[b>>3]&&(g[_>>2]=9,le[b>>3]=w),w=+wi(16640,S),w<+le[b>>3]&&(g[_>>2]=10,le[b>>3]=w),w=+wi(16664,S),w<+le[b>>3]&&(g[_>>2]=11,le[b>>3]=w),w=+wi(16688,S),w<+le[b>>3]&&(g[_>>2]=12,le[b>>3]=w),w=+wi(16712,S),w<+le[b>>3]&&(g[_>>2]=13,le[b>>3]=w),w=+wi(16736,S),w<+le[b>>3]&&(g[_>>2]=14,le[b>>3]=w),w=+wi(16760,S),w<+le[b>>3]&&(g[_>>2]=15,le[b>>3]=w),w=+wi(16784,S),w<+le[b>>3]&&(g[_>>2]=16,le[b>>3]=w),w=+wi(16808,S),w<+le[b>>3]&&(g[_>>2]=17,le[b>>3]=w),w=+wi(16832,S),w<+le[b>>3]&&(g[_>>2]=18,le[b>>3]=w),w=+wi(16856,S),!(w<+le[b>>3])){Ie=P;return}g[_>>2]=19,le[b>>3]=w,Ie=P}function Pl(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0;if(P=+ea(y),P<1e-16){_=15600+(_<<4)|0,g[S>>2]=g[_>>2],g[S+4>>2]=g[_+4>>2],g[S+8>>2]=g[_+8>>2],g[S+12>>2]=g[_+12>>2];return}if(D=+ln(+ +le[y+8>>3],+ +le[y>>3]),(b|0)>0){y=0;do P=P/2.6457513110645907,y=y+1|0;while((y|0)!=(b|0))}w?(P=P/3,b=(zs(b)|0)==0,P=+en(+((b?P:P/2.6457513110645907)*.381966011250105))):(P=+en(+(P*.381966011250105)),zs(b)|0&&(D=+Ll(D+.3334731722518321))),Ec(15600+(_<<4)|0,+Ll(+le[15920+(_*24|0)>>3]-D),P,S)}function Ih(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0;w=Ie,Ie=Ie+16|0,S=w,Mo(y+4|0,S),Pl(S,g[y>>2]|0,_,0,b),Ie=w}function qo(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0,oe=0,xe=0,Oe=0,ge=0,Re=0,Ge=0,$e=0,nt=0,qe=0,et=0,pt=0,Dt=0,Tt=0;if(pt=Ie,Ie=Ie+272|0,P=pt+256|0,Y=pt+240|0,nt=pt,qe=pt+224|0,et=pt+208|0,re=pt+176|0,oe=pt+160|0,xe=pt+192|0,Oe=pt+144|0,ge=pt+128|0,Re=pt+112|0,Ge=pt+96|0,$e=pt+80|0,g[P>>2]=_,g[Y>>2]=g[y>>2],g[Y+4>>2]=g[y+4>>2],g[Y+8>>2]=g[y+8>>2],g[Y+12>>2]=g[y+12>>2],Jo(Y,P,nt),g[S>>2]=0,Y=w+b+((w|0)==5&1)|0,(Y|0)<=(b|0)){Ie=pt;return}d=g[P>>2]|0,h=qe+4|0,m=re+4|0,E=b+5|0,M=16880+(d<<2)|0,R=16960+(d<<2)|0,L=ge+8|0,z=Re+8|0,q=Ge+8|0,ee=et+4|0,c=b;e:for(;;){D=nt+(((c|0)%5|0)<<4)|0,g[et>>2]=g[D>>2],g[et+4>>2]=g[D+4>>2],g[et+8>>2]=g[D+8>>2],g[et+12>>2]=g[D+12>>2];do;while((to(et,d,0,1)|0)==2);if((c|0)>(b|0)&(zs(_)|0)!=0){if(g[re>>2]=g[et>>2],g[re+4>>2]=g[et+4>>2],g[re+8>>2]=g[et+8>>2],g[re+12>>2]=g[et+12>>2],Mo(h,oe),w=g[re>>2]|0,P=g[17040+(w*80|0)+(g[qe>>2]<<2)>>2]|0,g[re>>2]=g[18640+(w*80|0)+(P*20|0)>>2],D=g[18640+(w*80|0)+(P*20|0)+16>>2]|0,(D|0)>0){y=0;do df(m),y=y+1|0;while((y|0)<(D|0))}switch(D=18640+(w*80|0)+(P*20|0)+4|0,g[xe>>2]=g[D>>2],g[xe+4>>2]=g[D+4>>2],g[xe+8>>2]=g[D+8>>2],$a(xe,(g[M>>2]|0)*3|0),Vn(m,xe,m),_i(m),Mo(m,Oe),Dt=+(g[R>>2]|0),le[ge>>3]=Dt*3,le[L>>3]=0,Tt=Dt*-1.5,le[Re>>3]=Tt,le[z>>3]=Dt*2.598076211353316,le[Ge>>3]=Tt,le[q>>3]=Dt*-2.598076211353316,g[17040+((g[re>>2]|0)*80|0)+(g[et>>2]<<2)>>2]|0){case 1:{y=Re,w=ge;break}case 3:{y=Ge,w=Re;break}case 2:{y=ge,w=Ge;break}default:{y=12;break e}}bf(oe,Oe,w,y,$e),Pl($e,g[re>>2]|0,d,1,S+8+(g[S>>2]<<4)|0),g[S>>2]=(g[S>>2]|0)+1}if((c|0)<(E|0)&&(Mo(ee,re),Pl(re,g[et>>2]|0,d,1,S+8+(g[S>>2]<<4)|0),g[S>>2]=(g[S>>2]|0)+1),g[qe>>2]=g[et>>2],g[qe+4>>2]=g[et+4>>2],g[qe+8>>2]=g[et+8>>2],g[qe+12>>2]=g[et+12>>2],c=c+1|0,(c|0)>=(Y|0)){y=3;break}}if((y|0)==3){Ie=pt;return}else(y|0)==12&&qt(22522,22569,571,22579)}function Jo(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0;d=Ie,Ie=Ie+128|0,w=d+64|0,S=d,P=w,D=20240,c=P+60|0;do g[P>>2]=g[D>>2],P=P+4|0,D=D+4|0;while((P|0)<(c|0));P=S,D=20304,c=P+60|0;do g[P>>2]=g[D>>2],P=P+4|0,D=D+4|0;while((P|0)<(c|0));c=(zs(g[_>>2]|0)|0)==0,w=c?w:S,S=y+4|0,pf(S),zi(S),zs(g[_>>2]|0)|0&&(Xo(S),g[_>>2]=(g[_>>2]|0)+1),g[b>>2]=g[y>>2],_=b+4|0,Vn(S,w,_),_i(_),g[b+16>>2]=g[y>>2],_=b+20|0,Vn(S,w+12|0,_),_i(_),g[b+32>>2]=g[y>>2],_=b+36|0,Vn(S,w+24|0,_),_i(_),g[b+48>>2]=g[y>>2],_=b+52|0,Vn(S,w+36|0,_),_i(_),g[b+64>>2]=g[y>>2],b=b+68|0,Vn(S,w+48|0,b),_i(b),Ie=d}function to(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0;if(L=Ie,Ie=Ie+32|0,M=L+12|0,c=L,R=y+4|0,E=g[16960+(_<<2)>>2]|0,m=(w|0)!=0,E=m?E*3|0:E,S=g[R>>2]|0,h=y+8|0,D=g[h>>2]|0,m){if(P=y+12|0,w=g[P>>2]|0,S=D+S+w|0,(S|0)==(E|0))return R=1,Ie=L,R|0;d=P}else d=y+12|0,w=g[d>>2]|0,S=D+S+w|0;if((S|0)<=(E|0))return R=0,Ie=L,R|0;do if((w|0)>0){if(w=g[y>>2]|0,(D|0)>0){P=18640+(w*80|0)+60|0,w=y;break}w=18640+(w*80|0)+40|0,b?(Wa(M,E,0,0),hi(R,M,c),su(c),Vn(c,M,R),P=w,w=y):(P=w,w=y)}else P=18640+((g[y>>2]|0)*80|0)+20|0,w=y;while(!1);if(g[w>>2]=g[P>>2],S=P+16|0,(g[S>>2]|0)>0){w=0;do df(R),w=w+1|0;while((w|0)<(g[S>>2]|0))}return y=P+4|0,g[M>>2]=g[y>>2],g[M+4>>2]=g[y+4>>2],g[M+8>>2]=g[y+8>>2],_=g[16880+(_<<2)>>2]|0,$a(M,m?_*3|0:_),Vn(R,M,R),_i(R),m?w=((g[h>>2]|0)+(g[R>>2]|0)+(g[d>>2]|0)|0)==(E|0)?1:2:w=2,R=w,Ie=L,R|0}function Bh(y,_){y=y|0,_=_|0;var b=0;do b=to(y,_,0,1)|0;while((b|0)==2);return b|0}function lu(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0,oe=0,xe=0,Oe=0,ge=0,Re=0,Ge=0,$e=0,nt=0;if(Ge=Ie,Ie=Ie+240|0,P=Ge+224|0,xe=Ge+208|0,Oe=Ge,ge=Ge+192|0,Re=Ge+176|0,q=Ge+160|0,ee=Ge+144|0,Y=Ge+128|0,re=Ge+112|0,oe=Ge+96|0,g[P>>2]=_,g[xe>>2]=g[y>>2],g[xe+4>>2]=g[y+4>>2],g[xe+8>>2]=g[y+8>>2],g[xe+12>>2]=g[y+12>>2],cu(xe,P,Oe),g[S>>2]=0,z=w+b+((w|0)==6&1)|0,(z|0)<=(b|0)){Ie=Ge;return}d=g[P>>2]|0,h=b+6|0,m=16960+(d<<2)|0,E=ee+8|0,M=Y+8|0,R=re+8|0,L=ge+4|0,D=0,c=b,w=-1;e:for(;;){if(P=(c|0)%6|0,y=Oe+(P<<4)|0,g[ge>>2]=g[y>>2],g[ge+4>>2]=g[y+4>>2],g[ge+8>>2]=g[y+8>>2],g[ge+12>>2]=g[y+12>>2],y=D,D=to(ge,d,0,1)|0,(c|0)>(b|0)&(zs(_)|0)!=0&&(y|0)!=1&&(g[ge>>2]|0)!=(w|0)){switch(Mo(Oe+(((P+5|0)%6|0)<<4)+4|0,Re),Mo(Oe+(P<<4)+4|0,q),$e=+(g[m>>2]|0),le[ee>>3]=$e*3,le[E>>3]=0,nt=$e*-1.5,le[Y>>3]=nt,le[M>>3]=$e*2.598076211353316,le[re>>3]=nt,le[R>>3]=$e*-2.598076211353316,P=g[xe>>2]|0,g[17040+(P*80|0)+(((w|0)==(P|0)?g[ge>>2]|0:w)<<2)>>2]|0){case 1:{y=Y,w=ee;break}case 3:{y=re,w=Y;break}
4202case 2:{y=ee,w=re;break}default:{y=8;break e}}bf(Re,q,w,y,oe),!(zl(Re,oe)|0)&&!(zl(q,oe)|0)&&(Pl(oe,g[xe>>2]|0,d,1,S+8+(g[S>>2]<<4)|0),g[S>>2]=(g[S>>2]|0)+1)}if((c|0)<(h|0)&&(Mo(L,Re),Pl(Re,g[ge>>2]|0,d,1,S+8+(g[S>>2]<<4)|0),g[S>>2]=(g[S>>2]|0)+1),c=c+1|0,(c|0)>=(z|0)){y=3;break}else w=g[ge>>2]|0}if((y|0)==3){Ie=Ge;return}else(y|0)==8&&qt(22606,22569,736,22651)}function cu(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0;d=Ie,Ie=Ie+160|0,w=d+80|0,S=d,P=w,D=20368,c=P+72|0;do g[P>>2]=g[D>>2],P=P+4|0,D=D+4|0;while((P|0)<(c|0));P=S,D=20448,c=P+72|0;do g[P>>2]=g[D>>2],P=P+4|0,D=D+4|0;while((P|0)<(c|0));c=(zs(g[_>>2]|0)|0)==0,w=c?w:S,S=y+4|0,pf(S),zi(S),zs(g[_>>2]|0)|0&&(Xo(S),g[_>>2]=(g[_>>2]|0)+1),g[b>>2]=g[y>>2],_=b+4|0,Vn(S,w,_),_i(_),g[b+16>>2]=g[y>>2],_=b+20|0,Vn(S,w+12|0,_),_i(_),g[b+32>>2]=g[y>>2],_=b+36|0,Vn(S,w+24|0,_),_i(_),g[b+48>>2]=g[y>>2],_=b+52|0,Vn(S,w+36|0,_),_i(_),g[b+64>>2]=g[y>>2],_=b+68|0,Vn(S,w+48|0,_),_i(_),g[b+80>>2]=g[y>>2],b=b+84|0,Vn(S,w+60|0,b),_i(b),Ie=d}function Ka(y,_){return y=y|0,_=_|0,_=Xt(y|0,_|0,52)|0,Be()|0,_&15|0}function Af(y,_){return y=y|0,_=_|0,_=Xt(y|0,_|0,45)|0,Be()|0,_&127|0}function Ko(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0;if(!(!0&(_&-16777216|0)==134217728)||(D=Xt(y|0,_|0,45)|0,Be()|0,D=D&127,D>>>0>121))return _=0,_|0;b=Xt(y|0,_|0,52)|0,Be()|0,b=b&15;do if(b|0){for(S=1,w=0;;){if(P=Xt(y|0,_|0,(15-S|0)*3|0)|0,Be()|0,P=P&7,(P|0)!=0&(w^1))if((P|0)==1&(Br(D)|0)!=0){c=0,w=13;break}else w=1;if((P|0)==7){c=0,w=13;break}if(S>>>0<b>>>0)S=S+1|0;else{w=9;break}}if((w|0)==9){if((b|0)==15)c=1;else break;return c|0}else if((w|0)==13)return c|0}while(!1);for(;;){if(c=Xt(y|0,_|0,(14-b|0)*3|0)|0,Be()|0,!((c&7|0)==7&!0)){c=0,w=13;break}if(b>>>0<14)b=b+1|0;else{c=1,w=13;break}}return(w|0)==13?c|0:0}function Zo(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0;if(P=Xt(y|0,_|0,52)|0,Be()|0,P=P&15,b>>>0>15)return w=4,w|0;if((P|0)<(b|0))return w=12,w|0;if((P|0)==(b|0))return g[w>>2]=y,g[w+4>>2]=_,w=0,w|0;if(S=rr(b|0,0,52)|0,S=S|y,y=Be()|0|_&-15728641,(P|0)>(b|0))do _=rr(7,0,(14-b|0)*3|0)|0,b=b+1|0,S=_|S,y=Be()|0|y;while((b|0)<(P|0));return g[w>>2]=S,g[w+4>>2]=y,w=0,w|0}function xc(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0;if(P=Xt(y|0,_|0,52)|0,Be()|0,P=P&15,!((b|0)<16&(P|0)<=(b|0)))return w=4,w|0;S=b-P|0,b=Xt(y|0,_|0,45)|0,Be()|0;e:do if(!(Br(b&127)|0))b=Gs(7,0,S,((S|0)<0)<<31>>31)|0,S=Be()|0;else{t:do if(P|0){for(b=1;D=rr(7,0,(15-b|0)*3|0)|0,!!((D&y|0)==0&((Be()|0)&_|0)==0);)if(b>>>0<P>>>0)b=b+1|0;else break t;b=Gs(7,0,S,((S|0)<0)<<31>>31)|0,S=Be()|0;break e}while(!1);b=Gs(7,0,S,((S|0)<0)<<31>>31)|0,b=di(b|0,Be()|0,5,0)|0,b=An(b|0,Be()|0,-5,-1)|0,b=Hs(b|0,Be()|0,6,0)|0,b=An(b|0,Be()|0,1,0)|0,S=Be()|0}while(!1);return D=w,g[D>>2]=b,g[D+4>>2]=S,D=0,D|0}function On(y,_){y=y|0,_=_|0;var b=0,w=0,S=0;if(S=Xt(y|0,_|0,45)|0,Be()|0,!(Br(S&127)|0))return S=0,S|0;S=Xt(y|0,_|0,52)|0,Be()|0,S=S&15;e:do if(!S)b=0;else for(w=1;;){if(b=Xt(y|0,_|0,(15-w|0)*3|0)|0,Be()|0,b=b&7,b|0)break e;if(w>>>0<S>>>0)w=w+1|0;else{b=0;break}}while(!1);return S=(b|0)==0&1,S|0}function Fn(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0;if(D=Ie,Ie=Ie+16|0,P=D,Tc(P,y,_,b),_=P,y=g[_>>2]|0,_=g[_+4>>2]|0,(y|0)==0&(_|0)==0)return Ie=D,0;S=0,b=0;do c=w+(S<<3)|0,g[c>>2]=y,g[c+4>>2]=_,S=An(S|0,b|0,1,0)|0,b=Be()|0,pu(P),c=P,y=g[c>>2]|0,_=g[c+4>>2]|0;while(!((y|0)==0&(_|0)==0));return Ie=D,0}function uu(y,_,b,w){return y=y|0,_=_|0,b=b|0,w=w|0,(w|0)<(b|0)?(b=_,w=y,dr(b|0),w|0):(b=rr(-1,-1,((w-b|0)*3|0)+3|0)|0,w=rr(~b|0,~(Be()|0)|0,(15-w|0)*3|0)|0,b=~(Be()|0)&_,w=~w&y,dr(b|0),w|0)}function Fp(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0;return S=Xt(y|0,_|0,52)|0,Be()|0,S=S&15,(b|0)<16&(S|0)<=(b|0)?((S|0)<(b|0)&&(S=rr(-1,-1,((b+-1-S|0)*3|0)+3|0)|0,S=rr(~S|0,~(Be()|0)|0,(15-b|0)*3|0)|0,_=~(Be()|0)&_,y=~S&y),S=rr(b|0,0,52)|0,b=_&-15728641|(Be()|0),g[w>>2]=y|S,g[w+4>>2]=b,w=0,w|0):(w=4,w|0)}function Ml(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0,oe=0,xe=0,Oe=0,ge=0,Re=0;if((b|0)==0&(w|0)==0)return ge=0,ge|0;if(S=y,P=g[S>>2]|0,S=g[S+4>>2]|0,!0&(S&15728640|0)==0){if(!((w|0)>0|(w|0)==0&b>>>0>0)||(ge=_,g[ge>>2]=P,g[ge+4>>2]=S,(b|0)==1&(w|0)==0))return ge=0,ge|0;S=1;do xe=y+(S<<3)|0,Oe=g[xe+4>>2]|0,ge=_+(S<<3)|0,g[ge>>2]=g[xe>>2],g[ge+4>>2]=Oe,S=S+1|0;while(0<(w|0)|(w|0)==0&S>>>0<b>>>0);return S=0,S|0}if(oe=b<<3,Oe=qn(oe)|0,!Oe)return ge=13,ge|0;if(Do(Oe|0,y|0,oe|0)|0,xe=oo(b,8)|0,!xe)return zr(Oe),ge=13,ge|0;e:do if(b|0){t:for(;;){S=Oe,ee=g[S>>2]|0,S=g[S+4>>2]|0,Y=Xt(ee|0,S|0,52)|0,Be()|0,Y=Y&15,re=Y+-1|0,q=(b|0)>0;r:do if((Y|0)!=0&q){if(R=((b|0)<0)<<31>>31,L=rr(re|0,0,52)|0,z=Be()|0,re>>>0>15){if(!((ee|0)==0&(S|0)==0)){ge=17;break t}for(P=0;;){if(P=P+1|0,(P|0)>=(b|0))break r;if(w=Oe+(P<<3)|0,z=g[w>>2]|0,w=g[w+4>>2]|0,!((z|0)==0&(w|0)==0)){S=w,ge=17;break t}}}for(P=0,y=ee,w=S;;){if(!((y|0)==0&(w|0)==0)){if(!(!0&(w&117440512|0)==0)){ge=22;break t}if(c=Xt(y|0,w|0,52)|0,Be()|0,c=c&15,(c|0)<(re|0)){S=12,ge=28;break t}if((c|0)!=(re|0)&&(y=y|L,w=w&-15728641|z,c>>>0>=Y>>>0)){D=re;do M=rr(7,0,(14-D|0)*3|0)|0,D=D+1|0,y=M|y,w=Be()|0|w;while(D>>>0<c>>>0)}if(D=To(y|0,w|0,b|0,R|0)|0,Be()|0,h=xe+(D<<3)|0,c=h,d=g[c>>2]|0,c=g[c+4>>2]|0,(d|0)==0&(c|0)==0)D=h;else for(M=0;;){if((M|0)>(b|0)){ge=32;break t}if((d|0)==(y|0)&(c&-117440513|0)==(w|0)){m=Xt(d|0,c|0,56)|0,Be()|0,m=m&7,E=m+1|0,Re=Xt(d|0,c|0,45)|0,Be()|0;n:do if(!(Br(Re&127)|0))c=7;else{if(d=Xt(d|0,c|0,52)|0,Be()|0,d=d&15,!d){c=6;break}for(c=1;;){if(Re=rr(7,0,(15-c|0)*3|0)|0,!((Re&y|0)==0&((Be()|0)&w|0)==0)){c=7;break n}if(c>>>0<d>>>0)c=c+1|0;else{c=6;break}}}while(!1);
4202if((m+2|0)>>>0>c>>>0){ge=42;break t}Re=rr(E|0,0,56)|0,w=Be()|0|w&-117440513,E=h,g[E>>2]=0,g[E+4>>2]=0,y=Re|y}else D=(D+1|0)%(b|0)|0;if(h=xe+(D<<3)|0,c=h,d=g[c>>2]|0,c=g[c+4>>2]|0,(d|0)==0&(c|0)==0){D=h;break}else M=M+1|0}Re=D,g[Re>>2]=y,g[Re+4>>2]=w}if(P=P+1|0,(P|0)>=(b|0))break r;w=Oe+(P<<3)|0,y=g[w>>2]|0,w=g[w+4>>2]|0}}while(!1);if((b+5|0)>>>0<11){ge=85;break}if(z=oo((b|0)/6|0,8)|0,!z){ge=49;break}r:do if(q){M=0,E=0;do{if(c=xe+(M<<3)|0,w=c,P=g[w>>2]|0,w=g[w+4>>2]|0,!((P|0)==0&(w|0)==0)){d=Xt(P|0,w|0,56)|0,Be()|0,d=d&7,y=d+1|0,h=w&-117440513,Re=Xt(P|0,w|0,45)|0,Be()|0;n:do if(Br(Re&127)|0){if(m=Xt(P|0,w|0,52)|0,Be()|0,m=m&15,m|0)for(D=1;;){if(Re=rr(7,0,(15-D|0)*3|0)|0,!((P&Re|0)==0&(h&(Be()|0)|0)==0))break n;if(D>>>0<m>>>0)D=D+1|0;else break}w=rr(y|0,0,56)|0,P=w|P,w=Be()|0|h,y=c,g[y>>2]=P,g[y+4>>2]=w,y=d+2|0}while(!1);(y|0)==7&&(Re=z+(E<<3)|0,g[Re>>2]=P,g[Re+4>>2]=w&-117440513,E=E+1|0)}M=M+1|0}while((M|0)!=(b|0));if(q){if(M=((b|0)<0)<<31>>31,R=rr(re|0,0,52)|0,L=Be()|0,re>>>0>15){if(!((ee|0)==0&(S|0)==0)){S=4,ge=84;break t}for(S=0;;){if(S=S+1|0,(S|0)>=(b|0)){P=0,S=E;break r}if(Re=Oe+(S<<3)|0,!((g[Re>>2]|0)==0&(g[Re+4>>2]|0)==0)){S=4,ge=84;break t}}}for(m=0,P=0,h=ee;;){do if(!((h|0)==0&(S|0)==0)){if(c=Xt(h|0,S|0,52)|0,Be()|0,c=c&15,(c|0)<(re|0)){S=12,ge=84;break t}do if((c|0)==(re|0))w=h,c=S;else{if(w=h|R,y=S&-15728641|L,c>>>0<Y>>>0){c=y;break}D=re;do Re=rr(7,0,(14-D|0)*3|0)|0,D=D+1|0,w=Re|w,y=Be()|0|y;while(D>>>0<c>>>0);c=y}while(!1);for(D=To(w|0,c|0,b|0,M|0)|0,Be()|0,y=0;;){if((y|0)>(b|0)){ge=77;break t}if(Re=xe+(D<<3)|0,d=g[Re+4>>2]|0,(d&-117440513|0)==(c|0)&&(g[Re>>2]|0)==(w|0)){ge=79;break}if(D=(D+1|0)%(b|0)|0,Re=xe+(D<<3)|0,(g[Re>>2]|0)==(w|0)&&(g[Re+4>>2]|0)==(c|0))break;y=y+1|0}if((ge|0)==79&&(ge=0,!0&(d&117440512|0)==100663296))break;Re=_+(P<<3)|0,g[Re>>2]=h,g[Re+4>>2]=S,P=P+1|0}while(!1);if(S=m+1|0,(S|0)>=(b|0)){S=E;break r}Re=Oe+(S<<3)|0,m=S,h=g[Re>>2]|0,S=g[Re+4>>2]|0}}else P=0,S=E}else P=0,S=0;while(!1);if(na(xe|0,0,oe|0)|0,Do(Oe|0,z|0,S<<3|0)|0,zr(z),S)_=_+(P<<3)|0,b=S;else break e}if((ge|0)==17)!0&(S&117440512|0)==0?(S=4,ge=28):ge=22;else if((ge|0)==32)qt(23313,22674,362,22684);else{if((ge|0)==42)return zr(Oe),zr(xe),Re=10,Re|0;if((ge|0)==49)return zr(Oe),zr(xe),Re=13,Re|0;if((ge|0)==77)qt(23313,22674,462,22684);else{if((ge|0)==84)return zr(z),zr(Oe),zr(xe),Re=S,Re|0;if((ge|0)==85){Do(_|0,Oe|0,b<<3|0)|0;break}}}if((ge|0)==22)return zr(Oe),zr(xe),Re=5,Re|0;if((ge|0)==28)return zr(Oe),zr(xe),Re=S,Re|0}while(!1);return zr(Oe),zr(xe),Re=0,Re|0}function Ph(y,_,b,w,S,P,D){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0,P=P|0,D=D|0;var c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0;if(z=Ie,Ie=Ie+16|0,L=z,!((b|0)>0|(b|0)==0&_>>>0>0))return L=0,Ie=z,L|0;if((D|0)>=16)return L=12,Ie=z,L|0;M=0,R=0,E=0,c=0;e:for(;;){if(h=y+(M<<3)|0,d=g[h>>2]|0,h=g[h+4>>2]|0,m=Xt(d|0,h|0,52)|0,Be()|0,(m&15|0)>(D|0)){c=12,d=11;break}if(Tc(L,d,h,D),m=L,h=g[m>>2]|0,m=g[m+4>>2]|0,(h|0)==0&(m|0)==0)d=E;else{d=E;do{if(!((c|0)<(P|0)|(c|0)==(P|0)&d>>>0<S>>>0)){d=10;break e}E=w+(d<<3)|0,g[E>>2]=h,g[E+4>>2]=m,d=An(d|0,c|0,1,0)|0,c=Be()|0,pu(L),E=L,h=g[E>>2]|0,m=g[E+4>>2]|0}while(!((h|0)==0&(m|0)==0))}if(M=An(M|0,R|0,1,0)|0,R=Be()|0,(R|0)<(b|0)|(R|0)==(b|0)&M>>>0<_>>>0)E=d;else{c=0,d=11;break}}return(d|0)==10?(L=14,Ie=z,L|0):(d|0)==11?(Ie=z,c|0):0}function Lp(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0;M=Ie,Ie=Ie+16|0,E=M;e:do if((b|0)>0|(b|0)==0&_>>>0>0){for(h=0,D=0,P=0,m=0;;){if(d=y+(h<<3)|0,c=g[d>>2]|0,d=g[d+4>>2]|0,!((c|0)==0&(d|0)==0)&&(d=(xc(c,d,w,E)|0)==0,c=E,D=An(g[c>>2]|0,g[c+4>>2]|0,D|0,P|0)|0,P=Be()|0,!d)){P=12;break}if(h=An(h|0,m|0,1,0)|0,m=Be()|0,!((m|0)<(b|0)|(m|0)==(b|0)&h>>>0<_>>>0))break e}return Ie=M,P|0}else D=0,P=0;while(!1);return g[S>>2]=D,g[S+4>>2]=P,S=0,Ie=M,S|0}function Mh(y,_){return y=y|0,_=_|0,_=Xt(y|0,_|0,52)|0,Be()|0,_&1|0}function ns(y,_){y=y|0,_=_|0;var b=0,w=0,S=0;if(S=Xt(y|0,_|0,52)|0,Be()|0,S=S&15,!S)return S=0,S|0;for(w=1;;){if(b=Xt(y|0,_|0,(15-w|0)*3|0)|0,Be()|0,b=b&7,b|0){w=5;break}if(w>>>0<S>>>0)w=w+1|0;else{b=0,w=5;break}}return(w|0)==5?b|0:0}function Sa(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0,d=0;if(d=Xt(y|0,_|0,52)|0,Be()|0,d=d&15,!d)return c=_,d=y,dr(c|0),d|0;for(c=1,b=0;;){P=(15-c|0)*3|0,w=rr(7,0,P|0)|0,S=Be()|0,D=Xt(y|0,_|0,P|0)|0,Be()|0,P=rr(bo(D&7)|0,0,P|0)|0,D=Be()|0,y=P|y&~w,_=D|_&~S;e:do if(!b)if((P&w|0)==0&(D&S|0)==0)b=0;else if(w=Xt(y|0,_|0,52)|0,Be()|0,w=w&15,!w)b=1;else{b=1;t:for(;;){switch(D=Xt(y|0,_|0,(15-b|0)*3|0)|0,Be()|0,D&7){case 1:break t;case 0:break;default:{b=1;break e}}if(b>>>0<w>>>0)b=b+1|0;else{b=1;break e}}for(b=1;;)if(D=(15-b|0)*3|0,S=Xt(y|0,_|0,D|0)|0,Be()|0,P=rr(7,0,D|0)|0,_=_&~(Be()|0),D=rr(bo(S&7)|0,0,D|0)|0,y=y&~P|D,_=_|(Be()|0),b>>>0<w>>>0)b=b+1|0;else{b=1;break}}while(!1);if(c>>>0<d>>>0)c=c+1|0;else break}return dr(_|0),y|0}function xo(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0;if(w=Xt(y|0,_|0,52)|0,Be()|0,w=w&15,!w)return b=_,w=y,dr(b|0),w|0;for(b=1;P=(15-b|0)*3|0,D=Xt(y|0,_|0,P|0)|0,Be()|0,S=rr(7,0,P|0)|0,_=_&~(Be()|0),P=rr(bo(D&7)|0,0,P|0)|0,y=P|y&~S,_=Be()|0|_,b>>>0<w>>>0;)b=b+1|0;return dr(_|0),y|0}function fu(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0,d=0;if(d=Xt(y|0,_|0,52)|0,Be()|0,d=d&15,!d)return c=_,d=y,dr(c|0),d|0;for(c=1,b=0;;){P=(15-c|0)*3|0,w=rr(7,0,P|0)|0,S=Be()|0,D=Xt(y|0,_|0,P|0)|0,Be()|0,P=rr(eo(D&7)|0,0,P|0)|0,D=Be()|0,y=P|y&~w,_=D|_&~S;e:do if(!b)if((P&w|0)==0&(D&S|0)==0)b=0;else if(w=Xt(y|0,_|0,52)|0,Be()|0,w=w&15,!w)b=1;else{b=1;t:for(;;){switch(D=Xt(y|0,_|0,(15-b|0)*3|0)|0,Be()|0,D&7){case 1:break t;case 0:break;default:{b=1;break e}}if(b>>>0<w>>>0)b=b+1|0;else{b=1;break e}}for(b=1;;)if(S=(15-b|0)*3|0,P=rr(7,0,S|0)|0,D=_&~(Be()|0),_=Xt(y|0,_|0,S|0)|0,Be()|0,_=rr(eo(_&7)|0,0,S|0)|0,y=y&~P|_,_=D|(Be()|0),b>>>0<w>>>0)b=b+1|0;else{b=1;break}}while(!1);if(c>>>0<d>>>0)c=c+1|0;else break}return dr(_|0),y|0}function Za(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0;if(w=Xt(y|0,_|0,52)|0,Be()|0,w=w&15,!w)return b=_,w=y,dr(b|0),w|0;for(b=1;D=(15-b|0)*3|0,P=rr(7,0,D|0)|0,S=_&~(Be()|0),_=Xt(y|0,_|0,D|0)|0,Be()|0,_=rr(eo(_&7)|0,0,D|0)|0,y=_|y&~P,_=Be()|0|S,b>>>0<w>>>0;)b=b+1|0;return dr(_|0),y|0}function Rl(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0;
4202if(d=Ie,Ie=Ie+64|0,c=d+40|0,w=d+24|0,S=d+12|0,P=d,rr(_|0,0,52)|0,b=Be()|0|134225919,!_)return(g[y+4>>2]|0)>2||(g[y+8>>2]|0)>2||(g[y+12>>2]|0)>2?(D=0,c=0,dr(D|0),Ie=d,c|0):(rr(Li(y)|0,0,45)|0,D=Be()|0|b,c=-1,dr(D|0),Ie=d,c|0);if(g[c>>2]=g[y>>2],g[c+4>>2]=g[y+4>>2],g[c+8>>2]=g[y+8>>2],g[c+12>>2]=g[y+12>>2],D=c+4|0,(_|0)>0)for(y=-1;g[w>>2]=g[D>>2],g[w+4>>2]=g[D+4>>2],g[w+8>>2]=g[D+8>>2],_&1?(ff(D),g[S>>2]=g[D>>2],g[S+4>>2]=g[D+4>>2],g[S+8>>2]=g[D+8>>2],Bl(S)):(iu(D),g[S>>2]=g[D>>2],g[S+4>>2]=g[D+4>>2],g[S+8>>2]=g[D+8>>2],Xo(S)),hi(w,S,P),_i(P),m=(15-_|0)*3|0,h=rr(7,0,m|0)|0,b=b&~(Be()|0),m=rr(vc(P)|0,0,m|0)|0,y=m|y&~h,b=Be()|0|b,(_|0)>1;)_=_+-1|0;else y=-1;e:do if((g[D>>2]|0)<=2&&(g[c+8>>2]|0)<=2&&(g[c+12>>2]|0)<=2){if(w=Li(c)|0,_=rr(w|0,0,45)|0,_=_|y,y=Be()|0|b&-1040385,P=Xi(c)|0,!(Br(w)|0)){if((P|0)<=0)break;for(S=0;;){if(w=Xt(_|0,y|0,52)|0,Be()|0,w=w&15,w)for(b=1;m=(15-b|0)*3|0,c=Xt(_|0,y|0,m|0)|0,Be()|0,h=rr(7,0,m|0)|0,y=y&~(Be()|0),m=rr(bo(c&7)|0,0,m|0)|0,_=_&~h|m,y=y|(Be()|0),b>>>0<w>>>0;)b=b+1|0;if(S=S+1|0,(S|0)==(P|0))break e}}S=Xt(_|0,y|0,52)|0,Be()|0,S=S&15;t:do if(S){b=1;r:for(;;){switch(m=Xt(_|0,y|0,(15-b|0)*3|0)|0,Be()|0,m&7){case 1:break r;case 0:break;default:break t}if(b>>>0<S>>>0)b=b+1|0;else break t}if(uf(w,g[c>>2]|0)|0)for(b=1;c=(15-b|0)*3|0,h=rr(7,0,c|0)|0,m=y&~(Be()|0),y=Xt(_|0,y|0,c|0)|0,Be()|0,y=rr(eo(y&7)|0,0,c|0)|0,_=_&~h|y,y=m|(Be()|0),b>>>0<S>>>0;)b=b+1|0;else for(b=1;m=(15-b|0)*3|0,c=Xt(_|0,y|0,m|0)|0,Be()|0,h=rr(7,0,m|0)|0,y=y&~(Be()|0),m=rr(bo(c&7)|0,0,m|0)|0,_=_&~h|m,y=y|(Be()|0),b>>>0<S>>>0;)b=b+1|0}while(!1);if((P|0)>0){b=0;do _=Sa(_,y)|0,y=Be()|0,b=b+1|0;while((b|0)!=(P|0))}}else _=0,y=0;while(!1);return h=y,m=_,dr(h|0),Ie=d,m|0}function zs(y){return y=y|0,(y|0)%2|0|0}function Ya(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0;return S=Ie,Ie=Ie+16|0,w=S,_>>>0>15?(w=4,Ie=S,w|0):(g[y+4>>2]&2146435072|0)==2146435072||(g[y+8+4>>2]&2146435072|0)==2146435072?(w=3,Ie=S,w|0):(au(y,_,w),_=Rl(w,_)|0,w=Be()|0,g[b>>2]=_,g[b+4>>2]=w,(_|0)==0&(w|0)==0&&qt(23313,22674,786,22697),w=0,Ie=S,w|0)}function Vs(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0;if(S=b+4|0,P=Xt(y|0,_|0,52)|0,Be()|0,P=P&15,D=Xt(y|0,_|0,45)|0,Be()|0,w=(P|0)==0,Br(D&127)|0){if(w)return D=1,D|0;w=1}else{if(w)return D=0,D|0;(g[S>>2]|0)==0&&(g[b+8>>2]|0)==0?w=(g[b+12>>2]|0)!=0&1:w=1}for(b=1;b&1?Bl(S):Xo(S),D=Xt(y|0,_|0,(15-b|0)*3|0)|0,Be()|0,hf(S,D&7),b>>>0<P>>>0;)b=b+1|0;return w|0}function Qa(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0;if(m=Ie,Ie=Ie+16|0,d=m,h=Xt(y|0,_|0,45)|0,Be()|0,h=h&127,h>>>0>121)return g[b>>2]=0,g[b+4>>2]=0,g[b+8>>2]=0,g[b+12>>2]=0,h=5,Ie=m,h|0;e:do if((Br(h)|0)!=0&&(P=Xt(y|0,_|0,52)|0,Be()|0,P=P&15,(P|0)!=0)){w=1;t:for(;;){switch(c=Xt(y|0,_|0,(15-w|0)*3|0)|0,Be()|0,c&7){case 5:break t;case 0:break;default:{w=_;break e}}if(w>>>0<P>>>0)w=w+1|0;else{w=_;break e}}for(S=1,w=_;_=(15-S|0)*3|0,D=rr(7,0,_|0)|0,c=w&~(Be()|0),w=Xt(y|0,w|0,_|0)|0,Be()|0,w=rr(eo(w&7)|0,0,_|0)|0,y=y&~D|w,w=c|(Be()|0),S>>>0<P>>>0;)S=S+1|0}else w=_;while(!1);if(c=7696+(h*28|0)|0,g[b>>2]=g[c>>2],g[b+4>>2]=g[c+4>>2],g[b+8>>2]=g[c+8>>2],g[b+12>>2]=g[c+12>>2],!(Vs(y,w,b)|0))return h=0,Ie=m,h|0;if(D=b+4|0,g[d>>2]=g[D>>2],g[d+4>>2]=g[D+4>>2],g[d+8>>2]=g[D+8>>2],P=Xt(y|0,w|0,52)|0,Be()|0,c=P&15,P&1?(Xo(D),P=c+1|0):P=c,!(Br(h)|0))w=0;else{e:do if(!c)w=0;else for(_=1;;){if(S=Xt(y|0,w|0,(15-_|0)*3|0)|0,Be()|0,S=S&7,S|0){w=S;break e}if(_>>>0<c>>>0)_=_+1|0;else{w=0;break}}while(!1);w=(w|0)==4&1}if(!(to(b,P,w,0)|0))(P|0)!=(c|0)&&(g[D>>2]=g[d>>2],g[D+4>>2]=g[d+4>>2],g[D+8>>2]=g[d+8>>2]);else{if(Br(h)|0)do;while((to(b,P,0,0)|0)!=0);
4202(P|0)!=(c|0)&&iu(D)}return h=0,Ie=m,h|0}function Ol(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0;return P=Ie,Ie=Ie+16|0,w=P,S=Qa(y,_,w)|0,S|0?(Ie=P,S|0):(S=Xt(y|0,_|0,52)|0,Be()|0,Ih(w,S&15,b),S=0,Ie=P,S|0)}function Dl(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0;if(D=Ie,Ie=Ie+16|0,P=D,w=Qa(y,_,P)|0,w|0)return P=w,Ie=D,P|0;w=Xt(y|0,_|0,45)|0,Be()|0,w=(Br(w&127)|0)==0,S=Xt(y|0,_|0,52)|0,Be()|0,S=S&15;e:do if(!w){if(S|0)for(w=1;;){if(c=rr(7,0,(15-w|0)*3|0)|0,!((c&y|0)==0&((Be()|0)&_|0)==0))break e;if(w>>>0<S>>>0)w=w+1|0;else break}return qo(P,S,0,5,b),c=0,Ie=D,c|0}while(!1);return lu(P,S,0,6,b),c=0,Ie=D,c|0}function el(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0;if(S=Xt(y|0,_|0,45)|0,Be()|0,!(Br(S&127)|0))return S=2,g[b>>2]=S,0;if(S=Xt(y|0,_|0,52)|0,Be()|0,S=S&15,!S)return S=5,g[b>>2]=S,0;for(w=1;;){if(P=rr(7,0,(15-w|0)*3|0)|0,!((P&y|0)==0&((Be()|0)&_|0)==0)){w=2,y=6;break}if(w>>>0<S>>>0)w=w+1|0;else{w=5,y=6;break}}return(y|0)==6&&(g[b>>2]=w),0}function Fl(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0;E=Ie,Ie=Ie+128|0,h=E+112|0,P=E+96|0,m=E,S=Xt(y|0,_|0,52)|0,Be()|0,c=S&15,g[h>>2]=c,D=Xt(y|0,_|0,45)|0,Be()|0,D=D&127;e:do if(Br(D)|0){if(c|0)for(w=1;;){if(d=rr(7,0,(15-w|0)*3|0)|0,!((d&y|0)==0&((Be()|0)&_|0)==0)){S=0;break e}if(w>>>0<c>>>0)w=w+1|0;else break}if(S&1)S=1;else return d=rr(c+1|0,0,52)|0,m=Be()|0|_&-15728641,h=rr(7,0,(14-c|0)*3|0)|0,m=Fl((d|y)&~h,m&~(Be()|0),b)|0,Ie=E,m|0}else S=0;while(!1);if(w=Qa(y,_,P)|0,!w){S?(Jo(P,h,m),d=5):(cu(P,h,m),d=6);e:do if(Br(D)|0)if(!c)y=5;else for(w=1;;){if(D=rr(7,0,(15-w|0)*3|0)|0,!((D&y|0)==0&((Be()|0)&_|0)==0)){y=2;break e}if(w>>>0<c>>>0)w=w+1|0;else{y=5;break}}else y=2;while(!1);na(b|0,-1,y<<2|0)|0;e:do if(S)for(P=0;;){if(D=m+(P<<4)|0,Bh(D,g[h>>2]|0)|0,D=g[D>>2]|0,c=g[b>>2]|0,(c|0)==-1|(c|0)==(D|0))w=b;else{S=0;do{if(S=S+1|0,S>>>0>=y>>>0){w=1;break e}w=b+(S<<2)|0,c=g[w>>2]|0}while(!((c|0)==-1|(c|0)==(D|0)))}if(g[w>>2]=D,P=P+1|0,P>>>0>=d>>>0){w=0;break}}else for(P=0;;){if(D=m+(P<<4)|0,to(D,g[h>>2]|0,0,1)|0,D=g[D>>2]|0,c=g[b>>2]|0,(c|0)==-1|(c|0)==(D|0))w=b;else{S=0;do{if(S=S+1|0,S>>>0>=y>>>0){w=1;break e}w=b+(S<<2)|0,c=g[w>>2]|0}while(!((c|0)==-1|(c|0)==(D|0)))}if(g[w>>2]=D,P=P+1|0,P>>>0>=d>>>0){w=0;break}}while(!1)}return m=w,Ie=E,m|0}function hu(){return 12}function wc(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0,d=0;if(y>>>0>15)return c=4,c|0;if(rr(y|0,0,52)|0,c=Be()|0|134225919,!y){b=0,w=0;do Br(w)|0&&(rr(w|0,0,45)|0,D=c|(Be()|0),y=_+(b<<3)|0,g[y>>2]=-1,g[y+4>>2]=D,b=b+1|0),w=w+1|0;while((w|0)!=122);return b=0,b|0}b=0,D=0;do{if(Br(D)|0){for(rr(D|0,0,45)|0,w=1,S=-1,P=c|(Be()|0);d=rr(7,0,(15-w|0)*3|0)|0,S=S&~d,P=P&~(Be()|0),(w|0)!=(y|0);)w=w+1|0;d=_+(b<<3)|0,g[d>>2]=S,g[d+4>>2]=P,b=b+1|0}D=D+1|0}while((D|0)!=122);return b=0,b|0}function du(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0;if(Y=Ie,Ie=Ie+16|0,q=Y,ee=Xt(y|0,_|0,52)|0,Be()|0,ee=ee&15,b>>>0>15)return ee=4,Ie=Y,ee|0;if((ee|0)<(b|0))return ee=12,Ie=Y,ee|0;if((ee|0)!=(b|0))if(P=rr(b|0,0,52)|0,P=P|y,c=Be()|0|_&-15728641,(ee|0)>(b|0)){d=b;do z=rr(7,0,(14-d|0)*3|0)|0,d=d+1|0,P=z|P,c=Be()|0|c;while((d|0)<(ee|0));z=P}else z=P;else z=y,c=_;L=Xt(z|0,c|0,45)|0,Be()|0;e:do if(Br(L&127)|0){if(d=Xt(z|0,c|0,52)|0,Be()|0,d=d&15,d|0)for(P=1;;){if(L=rr(7,0,(15-P|0)*3|0)|0,!((L&z|0)==0&((Be()|0)&c|0)==0)){h=33;break e}if(P>>>0<d>>>0)P=P+1|0;else break}if(L=w,g[L>>2]=0,g[L+4>>2]=0,(ee|0)>(b|0)){for(L=_&-15728641,R=ee;;){if(M=R,R=R+-1|0,R>>>0>15|(ee|0)<(R|0)){h=19;break}if((ee|0)!=(R|0))if(P=rr(R|0,0,52)|0,P=P|y,d=Be()|0|L,(ee|0)<(M|0))E=P;else{h=R;do E=rr(7,0,(14-h|0)*3|0)|0,h=h+1|0,P=E|P,d=Be()|0|d;while((h|0)<(ee|0));E=P}else E=y,d=_;if(m=Xt(E|0,d|0,45)|0,Be()|0,!(Br(m&127)|0))P=0;else{m=Xt(E|0,d|0,52)|0,Be()|0,m=m&15;t:do if(!m)P=0;else for(h=1;;){if(P=Xt(E|0,d|0,(15-h|0)*3|0)|0,Be()|0,P=P&7,P|0)break t;if(h>>>0<m>>>0)h=h+1|0;else{P=0;break}}while(!1);P=(P|0)==0&1}if(d=Xt(y|0,_|0,(15-M|0)*3|0)|0,Be()|0,d=d&7,(d|0)==7){S=5,h=42;break}if(P=(P|0)!=0,(d|0)==1&P){S=5,h=42;break}if(E=d+(((d|0)!=0&P)<<31>>31)|0,E|0&&(h=ee-M|0,h=Gs(7,0,h,((h|0)<0)<<31>>31)|0,m=Be()|0,P?(P=di(h|0,m|0,5,0)|0,P=An(P|0,Be()|0,-5,-1)|0,P=Hs(P|0,Be()|0,6,0)|0,P=An(P|0,Be()|0,1,0)|0,d=Be()|0):(P=h,d=m),M=E+-1|0,M=di(h|0,m|0,M|0,((M|0)<0)<<31>>31|0)|0,M=An(P|0,d|0,M|0,Be()|0)|0,E=Be()|0,m=w,m=An(M|0,E|0,g[m>>2]|0,g[m+4>>2]|0)|0,E=Be()|0,M=w,g[M>>2]=m,g[M+4>>2]=E),(R|0)<=(b|0)){h=37;break}}if((h|0)==19)qt(23313,22674,1099,22710);else if((h|0)==37){D=w,S=g[D+4>>2]|0,D=g[D>>2]|0;break}else if((h|0)==42)return Ie=Y,S|0}else S=0,D=0}else h=33;while(!1);e:do if((h|0)==33)if(L=w,g[L>>2]=0,g[L+4>>2]=0,(ee|0)>(b|0)){for(P=ee;;){if(S=Xt(y|0,_|0,(15-P|0)*3|0)|0,Be()|0,S=S&7,(S|0)==7){S=5;break}if(D=ee-P|0,D=Gs(7,0,D,((D|0)<0)<<31>>31)|0,S=di(D|0,Be()|0,S|0,0)|0,D=Be()|0,L=w,D=An(g[L>>2]|0,g[L+4>>2]|0,S|0,D|0)|0,S=Be()|0,L=w,g[L>>2]=D,g[L+4>>2]=S,P=P+-1|0,(P|0)<=(b|0))break e}return Ie=Y,S|0}else S=0,D=0;while(!1);return xc(z,c,ee,q)|0&&qt(23313,22674,1063,22725),ee=q,q=g[ee+4>>2]|0,((S|0)>-1|(S|0)==-1&D>>>0>4294967295)&((q|0)>(S|0)|((q|0)==(S|0)?(g[ee>>2]|0)>>>0>D>>>0:0))?(ee=0,Ie=Y,ee|0):(qt(23313,22674,1139,22710),0)}function kp(y,_,b,w,S,P){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0,P=P|0;var D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0;if(E=Ie,Ie=Ie+16|0,D=E,S>>>0>15)return P=4,Ie=E,P|0;if(c=Xt(b|0,w|0,52)|0,Be()|0,c=c&15,(c|0)>(S|0))return P=12,Ie=E,P|0;if(xc(b,w,S,D)|0&&qt(23313,22674,1063,22725),m=D,h=g[m+4>>2]|0,!(((_|0)>-1|(_|0)==-1&y>>>0>4294967295)&((h|0)>(_|0)|((h|0)==(_|0)?(g[m>>2]|0)>>>0>y>>>0:0))))return P=2,Ie=E,P|0;m=S-c|0,S=rr(S|0,0,52)|0,d=Be()|0|w&-15728641,h=P,g[h>>2]=S|b,g[h+4>>2]=d,h=Xt(b|0,w|0,45)|0,Be()|0;
4202e:do if(Br(h&127)|0){if(c|0)for(D=1;;){if(h=rr(7,0,(15-D|0)*3|0)|0,!((h&b|0)==0&((Be()|0)&w|0)==0))break e;if(D>>>0<c>>>0)D=D+1|0;else break}if((m|0)<1)return P=0,Ie=E,P|0;for(h=c^15,w=-1,d=1,D=1;;){c=m-d|0,c=Gs(7,0,c,((c|0)<0)<<31>>31)|0,b=Be()|0;do if(D)if(D=di(c|0,b|0,5,0)|0,D=An(D|0,Be()|0,-5,-1)|0,D=Hs(D|0,Be()|0,6,0)|0,S=Be()|0,(_|0)>(S|0)|(_|0)==(S|0)&y>>>0>D>>>0){_=An(y|0,_|0,-1,-1)|0,_=Jr(_|0,Be()|0,D|0,S|0)|0,D=Be()|0,M=P,L=g[M>>2]|0,M=g[M+4>>2]|0,z=(h+w|0)*3|0,R=rr(7,0,z|0)|0,M=M&~(Be()|0),w=Hs(_|0,D|0,c|0,b|0)|0,y=Be()|0,S=An(w|0,y|0,2,0)|0,z=rr(S|0,Be()|0,z|0)|0,M=Be()|0|M,S=P,g[S>>2]=z|L&~R,g[S+4>>2]=M,y=di(w|0,y|0,c|0,b|0)|0,y=Jr(_|0,D|0,y|0,Be()|0)|0,D=0,_=Be()|0;break}else{z=P,R=g[z>>2]|0,z=g[z+4>>2]|0,L=rr(7,0,(h+w|0)*3|0)|0,z=z&~(Be()|0),D=P,g[D>>2]=R&~L,g[D+4>>2]=z,D=1;break}else R=P,S=g[R>>2]|0,R=g[R+4>>2]|0,w=(h+w|0)*3|0,M=rr(7,0,w|0)|0,R=R&~(Be()|0),z=Hs(y|0,_|0,c|0,b|0)|0,D=Be()|0,w=rr(z|0,D|0,w|0)|0,R=Be()|0|R,L=P,g[L>>2]=w|S&~M,g[L+4>>2]=R,D=di(z|0,D|0,c|0,b|0)|0,y=Jr(y|0,_|0,D|0,Be()|0)|0,D=0,_=Be()|0;while(!1);if((m|0)>(d|0))w=~d,d=d+1|0;else{_=0;break}}return Ie=E,_|0}while(!1);if((m|0)<1)return z=0,Ie=E,z|0;for(S=c^15,D=1;;)if(L=m-D|0,L=Gs(7,0,L,((L|0)<0)<<31>>31)|0,z=Be()|0,d=P,b=g[d>>2]|0,d=g[d+4>>2]|0,c=(S-D|0)*3|0,w=rr(7,0,c|0)|0,d=d&~(Be()|0),M=Hs(y|0,_|0,L|0,z|0)|0,R=Be()|0,c=rr(M|0,R|0,c|0)|0,d=Be()|0|d,h=P,g[h>>2]=c|b&~w,g[h+4>>2]=d,z=di(M|0,R|0,L|0,z|0)|0,y=Jr(y|0,_|0,z|0,Be()|0)|0,_=Be()|0,(m|0)<=(D|0)){_=0;break}else D=D+1|0;return Ie=E,_|0}function Tc(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0;S=Xt(_|0,b|0,52)|0,Be()|0,S=S&15,(_|0)==0&(b|0)==0|((w|0)>15|(S|0)>(w|0))?(w=-1,S=-1,_=0,b=0):(P=uu(_,b,S+1|0,w)|0,b=(Be()|0)&-15728641,_=rr(w|0,0,52)|0,_=P|_,b=b|(Be()|0),P=(On(_,b)|0)==0,w=P?-1:w),P=y,g[P>>2]=_,g[P+4>>2]=b,g[y+8>>2]=S,g[y+12>>2]=w}function pu(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0,d=0,h=0;if(b=y,_=g[b>>2]|0,b=g[b+4>>2]|0,!((_|0)==0&(b|0)==0)&&(w=Xt(_|0,b|0,52)|0,Be()|0,w=w&15,c=rr(1,0,(w^15)*3|0)|0,_=An(c|0,Be()|0,_|0,b|0)|0,b=Be()|0,c=y,g[c>>2]=_,g[c+4>>2]=b,c=y+8|0,D=g[c>>2]|0,!((w|0)<(D|0)))){for(d=y+12|0,P=w;;){if((P|0)==(D|0)){w=5;break}if(h=(P|0)==(g[d>>2]|0),S=(15-P|0)*3|0,w=Xt(_|0,b|0,S|0)|0,Be()|0,w=w&7,h&((w|0)==1&!0)){w=7;break}if(!((w|0)==7&!0)){w=10;break}if(h=rr(1,0,S|0)|0,_=An(_|0,b|0,h|0,Be()|0)|0,b=Be()|0,h=y,g[h>>2]=_,g[h+4>>2]=b,(P|0)>(D|0))P=P+-1|0;else{w=10;break}}if((w|0)==5){h=y,g[h>>2]=0,g[h+4>>2]=0,g[c>>2]=-1,g[d>>2]=-1;return}else if((w|0)==7){D=rr(1,0,S|0)|0,D=An(_|0,b|0,D|0,Be()|0)|0,c=Be()|0,h=y,g[h>>2]=D,g[h+4>>2]=c,g[d>>2]=P+-1;return}else if((w|0)==10)return}}function Ll(y){y=+y;var _=0;return _=y<0?y+6.283185307179586:y,+(y>=6.283185307179586?_+-6.283185307179586:_)}function tl(y,_){return y=y|0,_=_|0,+Mt(+(+le[y>>3]-+le[_>>3]))<17453292519943298e-27?(_=+Mt(+(+le[y+8>>3]-+le[_+8>>3]))<17453292519943298e-27,_|0):(_=0,_|0)}function Au(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0;return S=+le[_>>3],w=+le[y>>3],P=+Pt(+((S-w)*.5)),b=+Pt(+((+le[_+8>>3]-+le[y+8>>3])*.5)),b=P*P+b*(+Lt(+S)*+Lt(+w)*b),+(+ln(+ +Ft(+b),+ +Ft(+(1-b)))*2)}function rl(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0;return S=+le[_>>3],w=+le[y>>3],P=+Pt(+((S-w)*.5)),b=+Pt(+((+le[_+8>>3]-+le[y+8>>3])*.5)),b=P*P+b*(+Lt(+S)*+Lt(+w)*b),+(+ln(+ +Ft(+b),+ +Ft(+(1-b)))*2*6371.007180918475)}function gf(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0;return S=+le[_>>3],w=+le[y>>3],P=+Pt(+((S-w)*.5)),b=+Pt(+((+le[_+8>>3]-+le[y+8>>3])*.5)),b=P*P+b*(+Lt(+S)*+Lt(+w)*b),+(+ln(+ +Ft(+b),+ +Ft(+(1-b)))*2*6371.007180918475*1e3)}function mf(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0;return P=+le[_>>3],w=+Lt(+P),S=+le[_+8>>3]-+le[y+8>>3],D=w*+Pt(+S),b=+le[y>>3],+ +ln(+D,+(+Pt(+P)*+Lt(+b)-+Lt(+S)*(w*+Pt(+b))))}function Ec(y,_,b,w){y=y|0,_=+_,b=+b,w=w|0;var S=0,P=0,D=0,c=0;if(b<1e-16){g[w>>2]=g[y>>2],g[w+4>>2]=g[y+4>>2],g[w+8>>2]=g[y+8>>2],g[w+12>>2]=g[y+12>>2];return}P=_<0?_+6.283185307179586:_,P=_>=6.283185307179586?P+-6.283185307179586:P;do if(P<1e-16)_=+le[y>>3]+b,le[w>>3]=_,S=w;else{if(S=+Mt(+(P+-3.141592653589793))<1e-16,_=+le[y>>3],S){_=_-b,le[w>>3]=_,S=w;break}if(D=+Lt(+b),b=+Pt(+b),_=D*+Pt(+_)+ +Lt(+P)*(b*+Lt(+_)),_=_>1?1:_,_=+er(+(_<-1?-1:_)),le[w>>3]=_,+Mt(+(_+-1.5707963267948966))<1e-16){le[w>>3]=1.5707963267948966,le[w+8>>3]=0;return}if(+Mt(+(_+1.5707963267948966))<1e-16){le[w>>3]=-1.5707963267948966,le[w+8>>3]=0;return}if(c=+Lt(+_),P=b*+Pt(+P)/c,b=+le[y>>3],_=(D-+Pt(+_)*+Pt(+b))/+Lt(+b)/c,D=P>1?1:P,_=_>1?1:_,_=+le[y+8>>3]+ +ln(+(D<-1?-1:D),+(_<-1?-1:_)),_>3.141592653589793)do _=_+-6.283185307179586;while(_>3.141592653589793);if(_<-3.141592653589793)do _=_+6.283185307179586;while(_<-3.141592653589793);le[w+8>>3]=_;return}while(!1);if(+Mt(+(_+-1.5707963267948966))<1e-16){le[S>>3]=1.5707963267948966,le[w+8>>3]=0;return}if(+Mt(+(_+1.5707963267948966))<1e-16){le[S>>3]=-1.5707963267948966,le[w+8>>3]=0;return}if(_=+le[y+8>>3],_>3.141592653589793)do _=_+-6.283185307179586;while(_>3.141592653589793);if(_<-3.141592653589793)do _=_+6.283185307179586;while(_<-3.141592653589793);le[w+8>>3]=_}function Rh(y,_){return y=y|0,_=_|0,y>>>0>15?(_=4,_|0):(le[_>>3]=+le[20528+(y<<3)>>3],_=0,_|0)}function nl(y,_){return y=y|0,_=_|0,y>>>0>15?(_=4,_|0):(le[_>>3]=+le[20656+(y<<3)>>3],_=0,_|0)}function Xn(y,_){return y=y|0,_=_|0,y>>>0>15?(_=4,_|0):(le[_>>3]=+le[20784+(y<<3)>>3],_=0,_|0)}function gu(y,_){return y=y|0,_=_|0,y>>>0>15?(_=4,_|0):(le[_>>3]=+le[20912+(y<<3)>>3],_=0,_|0)}function Yo(y,_){y=y|0,_=_|0;var b=0;return y>>>0>15?(_=4,_|0):(b=Gs(7,0,y,((y|0)<0)<<31>>31)|0,b=di(b|0,Be()|0,120,0)|0,y=Be()|0,g[_>>2]=b|2,g[_+4>>2]=y,_=0,_|0)}function Qo(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0;return M=+le[_>>3],m=+le[y>>3],d=+Pt(+((M-m)*.5)),P=+le[_+8>>3],h=+le[y+8>>3],D=+Pt(+((P-h)*.5)),c=+Lt(+m),E=+Lt(+M),D=d*d+D*(E*c*D),D=+ln(+ +Ft(+D),+ +Ft(+(1-D)))*2,d=+le[b>>3],M=+Pt(+((d-M)*.5)),w=+le[b+8>>3],P=+Pt(+((w-P)*.5)),S=+Lt(+d),P=M*M+P*(E*S*P),P=+ln(+ +Ft(+P),+ +Ft(+(1-P)))*2,d=+Pt(+((m-d)*.5)),w=+Pt(+((h-w)*.5)),w=d*d+w*(c*S*w),w=+ln(+ +Ft(+w),+ +Ft(+(1-w)))*2,S=(D+P+w)*.5,+(+en(+ +Ft(+(+Gt(+(S*.5))*+Gt(+((S-D)*.5))*+Gt(+((S-P)*.5))*+Gt(+((S-w)*.5)))))*4)}function fn(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0;if(c=Ie,Ie=Ie+192|0,P=c+168|0,D=c,S=Ol(y,_,P)|0,S|0)return b=S,Ie=c,b|0;if(Dl(y,_,D)|0&&qt(23313,22742,386,22751),_=g[D>>2]|0,(_|0)>0){if(w=+Qo(D+8|0,D+8+(((_|0)!=1&1)<<4)|0,P)+0,(_|0)!=1){y=1;do S=y,y=y+1|0,w=w+ +Qo(D+8+(S<<4)|0,D+8+(((y|0)%(_|0)|0)<<4)|0,P);while((y|0)<(_|0))}}else w=0;return le[b>>3]=w,b=0,Ie=c,b|0}function Ln(y,_,b){return y=y|0,_=_|0,b=b|0,y=fn(y,_,b)|0,y|0||(le[b>>3]=+le[b>>3]*6371.007180918475*6371.007180918475),y|0}function js(y,_,b){return y=y|0,_=_|0,b=b|0,y=fn(y,_,b)|0,y|0||(le[b>>3]=+le[b>>3]*6371.007180918475*6371.007180918475*1e3*1e3),y|0}function Cc(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0;if(c=Ie,Ie=Ie+176|0,D=c,y=ou(y,_,D)|0,y|0)return D=y,Ie=c,D|0;if(le[b>>3]=0,y=g[D>>2]|0,(y|0)<=1)return D=0,Ie=c,D|0;_=y+-1|0,y=0,w=+le[D+8>>3],S=+le[D+16>>3],P=0;do y=y+1|0,h=w,w=+le[D+8+(y<<4)>>3],m=+Pt(+((w-h)*.5)),d=S,S=+le[D+8+(y<<4)+8>>3],d=+Pt(+((S-d)*.5)),d=m*m+d*(+Lt(+w)*+Lt(+h)*d),P=P+ +ln(+ +Ft(+d),+ +Ft(+(1-d)))*2;while((y|0)<(_|0));return le[b>>3]=P,D=0,Ie=c,D|0}
4202function kl(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0;if(c=Ie,Ie=Ie+176|0,D=c,y=ou(y,_,D)|0,y|0)return D=y,P=+le[b>>3],P=P*6371.007180918475,le[b>>3]=P,Ie=c,D|0;if(le[b>>3]=0,y=g[D>>2]|0,(y|0)<=1)return D=0,P=0,P=P*6371.007180918475,le[b>>3]=P,Ie=c,D|0;_=y+-1|0,y=0,w=+le[D+8>>3],S=+le[D+16>>3],P=0;do y=y+1|0,h=w,w=+le[D+8+(y<<4)>>3],m=+Pt(+((w-h)*.5)),d=S,S=+le[D+8+(y<<4)+8>>3],d=+Pt(+((S-d)*.5)),d=m*m+d*(+Lt(+h)*+Lt(+w)*d),P=P+ +ln(+ +Ft(+d),+ +Ft(+(1-d)))*2;while((y|0)!=(_|0));return le[b>>3]=P,D=0,m=P,m=m*6371.007180918475,le[b>>3]=m,Ie=c,D|0}function Sc(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0;if(c=Ie,Ie=Ie+176|0,D=c,y=ou(y,_,D)|0,y|0)return D=y,P=+le[b>>3],P=P*6371.007180918475,P=P*1e3,le[b>>3]=P,Ie=c,D|0;if(le[b>>3]=0,y=g[D>>2]|0,(y|0)<=1)return D=0,P=0,P=P*6371.007180918475,P=P*1e3,le[b>>3]=P,Ie=c,D|0;_=y+-1|0,y=0,w=+le[D+8>>3],S=+le[D+16>>3],P=0;do y=y+1|0,h=w,w=+le[D+8+(y<<4)>>3],m=+Pt(+((w-h)*.5)),d=S,S=+le[D+8+(y<<4)+8>>3],d=+Pt(+((S-d)*.5)),d=m*m+d*(+Lt(+h)*+Lt(+w)*d),P=P+ +ln(+ +Ft(+d),+ +Ft(+(1-d)))*2;while((y|0)!=(_|0));return le[b>>3]=P,D=0,m=P,m=m*6371.007180918475,m=m*1e3,le[b>>3]=m,Ie=c,D|0}function Np(y){y=y|0;var _=0,b=0,w=0;return _=oo(1,12)|0,_||qt(22832,22787,49,22845),b=y+4|0,w=g[b>>2]|0,w|0?(w=w+8|0,g[w>>2]=_,g[b>>2]=_,_|0):(g[y>>2]|0&&qt(22862,22787,61,22885),w=y,g[w>>2]=_,g[b>>2]=_,_|0)}function Up(y,_){y=y|0,_=_|0;var b=0,w=0;return w=qn(24)|0,w||qt(22899,22787,78,22913),g[w>>2]=g[_>>2],g[w+4>>2]=g[_+4>>2],g[w+8>>2]=g[_+8>>2],g[w+12>>2]=g[_+12>>2],g[w+16>>2]=0,_=y+4|0,b=g[_>>2]|0,b|0?(g[b+16>>2]=w,g[_>>2]=w,w|0):(g[y>>2]|0&&qt(22928,22787,82,22913),g[y>>2]=w,g[_>>2]=w,w|0)}function Nl(y){y=y|0;var _=0,b=0,w=0,S=0;if(y)for(w=1;;){if(_=g[y>>2]|0,_|0)do{if(b=g[_>>2]|0,b|0)do S=b,b=g[b+16>>2]|0,zr(S);while((b|0)!=0);S=_,_=g[_+8>>2]|0,zr(S)}while((_|0)!=0);if(_=y,y=g[y+8>>2]|0,w||zr(_),y)w=0;else break}}function Ic(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0,oe=0,xe=0,Oe=0,ge=0,Re=0,Ge=0,$e=0,nt=0,qe=0,et=0,pt=0,Dt=0,Tt=0;if(S=y+8|0,g[S>>2]|0)return Tt=1,Tt|0;if(w=g[y>>2]|0,!w)return Tt=0,Tt|0;_=w,b=0;do b=b+1|0,_=g[_+8>>2]|0;while((_|0)!=0);if(b>>>0<2)return Tt=0,Tt|0;pt=qn(b<<2)|0,pt||qt(22948,22787,317,22967),et=qn(b<<5)|0,et||qt(22989,22787,321,22967),g[y>>2]=0,Oe=y+4|0,g[Oe>>2]=0,g[S>>2]=0,b=0,qe=0,xe=0,E=0;e:for(;;){if(m=g[w>>2]|0,m){P=0,D=m;do{if(d=+le[D+8>>3],_=D,D=g[D+16>>2]|0,h=(D|0)==0,S=h?m:D,c=+le[S+8>>3],+Mt(+(d-c))>3.141592653589793){Tt=14;break}P=P+(c-d)*(+le[_>>3]+ +le[S>>3])}while(!h);if((Tt|0)==14){Tt=0,P=0,_=m;do oe=+le[_+8>>3],nt=_+16|0,$e=g[nt>>2]|0,$e=($e|0)==0?m:$e,re=+le[$e+8>>3],P=P+(+le[_>>3]+ +le[$e>>3])*((re<0?re+6.283185307179586:re)-(oe<0?oe+6.283185307179586:oe)),_=g[((_|0)==0?w:nt)>>2]|0;while((_|0)!=0)}P>0?(g[pt+(qe<<2)>>2]=w,qe=qe+1|0,S=xe,_=E):Tt=19}else Tt=19;if((Tt|0)==19){Tt=0;do if(b){if(_=b+8|0,g[_>>2]|0){Tt=21;break e}if(b=oo(1,12)|0,!b){Tt=23;break e}g[_>>2]=b,S=b+4|0,D=b,_=E}else if(E){S=Oe,D=E+8|0,_=w,b=y;break}else if(g[y>>2]|0){Tt=27;break e}else{S=Oe,D=y,_=w,b=y;break}while(!1);if(g[D>>2]=w,g[S>>2]=w,D=et+(xe<<5)|0,h=g[w>>2]|0,h){for(m=et+(xe<<5)+8|0,le[m>>3]=17976931348623157e292,E=et+(xe<<5)+24|0,le[E>>3]=17976931348623157e292,le[D>>3]=-17976931348623157e292,M=et+(xe<<5)+16|0,le[M>>3]=-17976931348623157e292,ee=17976931348623157e292,Y=-17976931348623157e292,S=0,R=h,d=17976931348623157e292,z=17976931348623157e292,q=-17976931348623157e292,c=-17976931348623157e292;P=+le[R>>3],oe=+le[R+8>>3],R=g[R+16>>2]|0,L=(R|0)==0,re=+le[(L?h:R)+8>>3],P<d&&(le[m>>3]=P,d=P),oe<z&&(le[E>>3]=oe,z=oe),P>q?le[D>>3]=P:P=q,oe>c&&(le[M>>3]=oe,c=oe),ee=oe>0&oe<ee?oe:ee,Y=oe<0&oe>Y?oe:Y,S=S|+Mt(+(oe-re))>3.141592653589793,!L;)q=P;S&&(le[M>>3]=Y,le[E>>3]=ee)}else g[D>>2]=0,g[D+4>>2]=0,g[D+8>>2]=0,g[D+12>>2]=0,g[D+16>>2]=0,g[D+20>>2]=0,g[D+24>>2]=0,g[D+28>>2]=0;S=xe+1|0}if(nt=w+8|0,w=g[nt>>2]|0,g[nt>>2]=0,w)xe=S,E=_;else{Tt=45;break}}if((Tt|0)==21)qt(22765,22787,35,22799);else if((Tt|0)==23)qt(22819,22787,37,22799);else if((Tt|0)==27)qt(22862,22787,61,22885);else if((Tt|0)==45){e:do if((qe|0)>0){for(nt=(S|0)==0,Ge=S<<2,$e=(y|0)==0,Re=0,_=0;;){if(ge=g[pt+(Re<<2)>>2]|0,nt)Tt=73;else{if(xe=qn(Ge)|0,!xe){Tt=50;break}if(Oe=qn(Ge)|0,!Oe){Tt=52;break}t:do if($e)b=0;else{for(S=0,b=0,D=y;w=et+(S<<5)|0,Ro(g[D>>2]|0,w,g[ge>>2]|0)|0?(g[xe+(b<<2)>>2]=D,g[Oe+(b<<2)>>2]=w,L=b+1|0):L=b,D=g[D+8>>2]|0,D;)S=S+1|0,b=L;if((L|0)>0)if(w=g[xe>>2]|0,(L|0)==1)b=w;else for(M=0,R=-1,b=w,E=w;;){for(h=g[E>>2]|0,w=0,D=0;S=g[g[xe+(D<<2)>>2]>>2]|0,(S|0)==(h|0)?m=w:m=w+((Ro(S,g[Oe+(D<<2)>>2]|0,g[h>>2]|0)|0)&1)|0,D=D+1|0,(D|0)!=(L|0);)w=m;if(S=(m|0)>(R|0),b=S?E:b,w=M+1|0,(w|0)==(L|0))break t;M=w,R=S?m:R,E=g[xe+(w<<2)>>2]|0}else b=0}while(!1);if(zr(xe),zr(Oe),b){if(S=b+4|0,w=g[S>>2]|0,w)b=w+8|0;else if(g[b>>2]|0){Tt=70;break}g[b>>2]=ge,g[S>>2]=ge}else Tt=73}if((Tt|0)==73){if(Tt=0,_=g[ge>>2]|0,_|0)do Oe=_,_=g[_+16>>2]|0,zr(Oe);while((_|0)!=0);zr(ge),_=1}if(Re=Re+1|0,(Re|0)>=(qe|0)){Dt=_;break e}}(Tt|0)==50?qt(23004,22787,249,23023):(Tt|0)==52?qt(23042,22787,252,23023):(Tt|0)==70&&qt(22862,22787,61,22885)}else Dt=0;while(!1);return zr(pt),zr(et),Tt=Dt,Tt|0}return 0}function Ro(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0;if(!(Us(_,b)|0)||(_=yc(_)|0,w=+le[b>>3],S=+le[b+8>>3],S=_&S<0?S+6.283185307179586:S,y=g[y>>2]|0,!y))return y=0,y|0;if(_){_=0,h=S,b=y;e:for(;;){for(;D=+le[b>>3],S=+le[b+8>>3],b=b+16|0,m=g[b>>
42022]|0,m=(m|0)==0?y:m,P=+le[m>>3],c=+le[m+8>>3],D>P?(d=D,D=c):(d=P,P=D,D=S,S=c),w=w==P|w==d?w+2220446049250313e-31:w,!!(w<P|w>d);)if(b=g[b>>2]|0,!b){b=22;break e}if(c=D<0?D+6.283185307179586:D,D=S<0?S+6.283185307179586:S,h=c==h|D==h?h+-2220446049250313e-31:h,d=c+(D-c)*((w-P)/(d-P)),(d<0?d+6.283185307179586:d)>h&&(_=_^1),b=g[b>>2]|0,!b){b=22;break}}if((b|0)==22)return _|0}else{_=0,h=S,b=y;e:for(;;){for(;D=+le[b>>3],S=+le[b+8>>3],b=b+16|0,m=g[b>>2]|0,m=(m|0)==0?y:m,P=+le[m>>3],c=+le[m+8>>3],D>P?(d=D,D=c):(d=P,P=D,D=S,S=c),w=w==P|w==d?w+2220446049250313e-31:w,!!(w<P|w>d);)if(b=g[b>>2]|0,!b){b=22;break e}if(h=D==h|S==h?h+-2220446049250313e-31:h,D+(S-D)*((w-P)/(d-P))>h&&(_=_^1),b=g[b>>2]|0,!b){b=22;break}}if((b|0)==22)return _|0}return 0}function kn(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0;if(Y=Ie,Ie=Ie+32|0,ee=Y+16|0,q=Y,P=Xt(y|0,_|0,52)|0,Be()|0,P=P&15,R=Xt(b|0,w|0,52)|0,Be()|0,(P|0)!=(R&15|0))return ee=12,Ie=Y,ee|0;if(h=Xt(y|0,_|0,45)|0,Be()|0,h=h&127,m=Xt(b|0,w|0,45)|0,Be()|0,m=m&127,h>>>0>121|m>>>0>121)return ee=5,Ie=Y,ee|0;if(R=(h|0)!=(m|0),R){if(c=mc(h,m)|0,(c|0)==7)return ee=1,Ie=Y,ee|0;d=mc(m,h)|0,(d|0)==7?qt(23066,23090,161,23100):(L=c,D=d)}else L=0,D=0;E=Br(h)|0,M=Br(m)|0,g[ee>>2]=0,g[ee+4>>2]=0,g[ee+8>>2]=0,g[ee+12>>2]=0;do if(L){if(m=g[4272+(h*28|0)+(L<<2)>>2]|0,c=(m|0)>0,M)if(c){h=0,d=b,c=w;do d=fu(d,c)|0,c=Be()|0,D=eo(D)|0,(D|0)==1&&(D=eo(1)|0),h=h+1|0;while((h|0)!=(m|0));m=D,h=d,d=c}else m=D,h=b,d=w;else if(c){h=0,d=b,c=w;do d=Za(d,c)|0,c=Be()|0,D=eo(D)|0,h=h+1|0;while((h|0)!=(m|0));m=D,h=d,d=c}else m=D,h=b,d=w;if(Vs(h,d,ee)|0,R||qt(23115,23090,191,23100),c=(E|0)!=0,D=(M|0)!=0,c&D&&qt(23142,23090,192,23100),c){if(D=ns(y,_)|0,(D|0)==7){P=5;break}if(Se[21872+(D*7|0)+L>>0]|0){P=1;break}d=g[21040+(D*28|0)+(L<<2)>>2]|0,h=d}else if(D){if(D=ns(h,d)|0,(D|0)==7){P=5;break}if(Se[21872+(D*7|0)+m>>0]|0){P=1;break}h=0,d=g[21040+(m*28|0)+(D<<2)>>2]|0}else h=0,d=0;if((h|d|0)<0)P=5;else{if((d|0)>0){c=ee+4|0,D=0;do su(c),D=D+1|0;while((D|0)!=(d|0))}if(g[q>>2]=0,g[q+4>>2]=0,g[q+8>>2]=0,hf(q,L),P|0)for(;zs(P)|0?Bl(q):Xo(q),(P|0)>1;)P=P+-1|0;if((h|0)>0){P=0;do su(q),P=P+1|0;while((P|0)!=(h|0))}z=ee+4|0,Vn(z,q,z),_i(z),z=51}}else if(Vs(b,w,ee)|0,(E|0)!=0&(M|0)!=0)if((m|0)!=(h|0)&&qt(23173,23090,261,23100),D=ns(y,_)|0,P=ns(b,w)|0,(D|0)==7|(P|0)==7)P=5;else if(Se[21872+(D*7|0)+P>>0]|0)P=1;else if(D=g[21040+(D*28|0)+(P<<2)>>2]|0,(D|0)>0){c=ee+4|0,P=0;do su(c),P=P+1|0;while((P|0)!=(D|0));z=51}else z=51;else z=51;while(!1);return(z|0)==51&&(P=ee+4|0,g[S>>2]=g[P>>2],g[S+4>>2]=g[P+4>>2],g[S+8>>2]=g[P+8>>2],P=0),ee=P,Ie=Y,ee|0}function Ul(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0;if(z=Ie,Ie=Ie+48|0,h=z+36|0,D=z+24|0,c=z+12|0,d=z,S=Xt(y|0,_|0,52)|0,Be()|0,S=S&15,M=Xt(y|0,_|0,45)|0,Be()|0,M=M&127,M>>>0>121)return w=5,Ie=z,w|0;if(m=Br(M)|0,rr(S|0,0,52)|0,q=Be()|0|134225919,P=w,g[P>>2]=-1,g[P+4>>2]=q,!S)return S=vc(b)|0,(S|0)==7||(S=ya(M,S)|0,(S|0)==127)?(q=1,Ie=z,q|0):(R=rr(S|0,0,45)|0,L=Be()|0,M=w,L=g[M+4>>2]&-1040385|L,q=w,g[q>>2]=g[M>>2]|R,g[q+4>>2]=L,q=0,Ie=z,q|0);for(g[h>>2]=g[b>>2],g[h+4>>2]=g[b+4>>2],g[h+8>>2]=g[b+8>>2],b=S;;){if(P=b,b=b+-1|0,g[D>>2]=g[h>>2],g[D+4>>2]=g[h+4>>2],g[D+8>>2]=g[h+8>>2],zs(P)|0){if(S=Op(h)|0,S|0){b=13;break}g[c>>2]=g[h>>2],g[c+4>>2]=g[h+4>>2],g[c+8>>2]=g[h+8>>2],Bl(c)}else{if(S=Dp(h)|0,S|0){b=13;break}g[c>>2]=g[h>>2],g[c+4>>2]=g[h+4>>2],g[c+8>>2]=g[h+8>>2],Xo(c)}if(hi(D,c,d),_i(d),S=w,Y=g[S>>2]|0,S=g[S+4>>2]|0,re=(15-P|0)*3|0,ee=rr(7,0,re|0)|0,S=S&~(Be()|0),re=rr(vc(d)|0,0,re|0)|0,S=Be()|0|S,q=w,g[q>>2]=re|Y&~ee,g[q+4>>2]=S,(P|0)<=1){b=14;break}}e:do if((b|0)!=13&&(b|0)==14)if((g[h>>2]|0)<=1&&(g[h+4>>2]|0)<=1&&(g[h+8>>2]|0)<=1){b=vc(h)|0,S=ya(M,b)|0,(S|0)==127?d=0:d=Br(S)|0;t:do if(b){if(m){if(S=ns(y,_)|0,(S|0)==7){S=5;break e}if(P=g[21248+(S*28|0)+(b<<2)>>2]|0,(P|0)>0){S=b,b=0;do S=bo(S)|0,b=b+1|0;while((b|0)!=(P|0))}else S=b;if((S|0)==1){S=9;break e}b=ya(M,S)|0,(b|0)==127&&qt(23200,23090,411,23230),Br(b)|0?qt(23245,23090,412,23230):(L=b,R=P,E=S)}else L=S,R=0,E=b;if(c=g[4272+(M*28|0)+(E<<2)>>2]|0,(c|0)<=-1&&qt(23276,23090,419,23230),!d){if((R|0)<0){S=5;break e}if(R|0){P=w,S=0,b=g[P>>2]|0,P=g[P+4>>2]|0;do b=xo(b,P)|0,P=Be()|0,re=w,g[re>>2]=b,g[re+4>>2]=P,S=S+1|0;while((S|0)<(R|0))}if((c|0)<=0){S=L,b=58;break}for(P=w,S=0,b=g[P>>2]|0,P=g[P+4>>2]|0;;)if(b=xo(b,P)|0,P=Be()|0,re=w,g[re>>2]=b,g[re+4>>2]=P,S=S+1|0,(S|0)==(c|0)){S=L,b=58;break t}}
4202if(D=mc(L,M)|0,(D|0)==7&&qt(23066,23090,428,23230),S=w,b=g[S>>2]|0,S=g[S+4>>2]|0,(c|0)>0){P=0;do b=xo(b,S)|0,S=Be()|0,re=w,g[re>>2]=b,g[re+4>>2]=S,P=P+1|0;while((P|0)!=(c|0))}if(S=ns(b,S)|0,(S|0)==7&&qt(23313,23090,440,23230),b=fi(L)|0,b=g[(b?21664:21456)+(D*28|0)+(S<<2)>>2]|0,(b|0)<0&&qt(23313,23090,454,23230),!b)S=L,b=58;else{D=w,S=0,P=g[D>>2]|0,D=g[D+4>>2]|0;do P=Sa(P,D)|0,D=Be()|0,re=w,g[re>>2]=P,g[re+4>>2]=D,S=S+1|0;while((S|0)<(b|0));S=L,b=58}}else if((m|0)!=0&(d|0)!=0){if(b=ns(y,_)|0,P=w,P=ns(g[P>>2]|0,g[P+4>>2]|0)|0,(b|0)==7|(P|0)==7){S=5;break e}if(P=g[21248+(b*28|0)+(P<<2)>>2]|0,(P|0)<0){S=5;break e}if(!P)b=59;else{c=w,b=0,D=g[c>>2]|0,c=g[c+4>>2]|0;do D=xo(D,c)|0,c=Be()|0,re=w,g[re>>2]=D,g[re+4>>2]=c,b=b+1|0;while((b|0)<(P|0));b=58}}else b=58;while(!1);if((b|0)==58&&d&&(b=59),(b|0)==59&&(re=w,(ns(g[re>>2]|0,g[re+4>>2]|0)|0)==1)){S=9;break}re=w,ee=g[re>>2]|0,re=g[re+4>>2]&-1040385,Y=rr(S|0,0,45)|0,re=re|(Be()|0),S=w,g[S>>2]=ee|Y,g[S+4>>2]=re,S=0}else S=1;while(!1);return re=S,Ie=z,re|0}function Oh(y,_,b,w,S,P){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0,P=P|0;var D=0,c=0;return c=Ie,Ie=Ie+16|0,D=c,S?y=15:(y=kn(y,_,b,w,D)|0,y||(xa(D,P),y=0)),Ie=c,y|0}function xi(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0;return D=Ie,Ie=Ie+16|0,P=D,w?b=15:(b=wa(b,P)|0,b||(b=Ul(y,_,P,S)|0)),Ie=D,b|0}function or(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0;return d=Ie,Ie=Ie+32|0,D=d+12|0,c=d,P=kn(y,_,y,_,D)|0,P|0?(c=P,Ie=d,c|0):(y=kn(y,_,b,w,c)|0,y|0?(c=y,Ie=d,c|0):(D=bc(D,c)|0,c=S,g[c>>2]=D,g[c+4>>2]=((D|0)<0)<<31>>31,c=0,Ie=d,c|0))}function Is(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0;return d=Ie,Ie=Ie+32|0,D=d+12|0,c=d,P=kn(y,_,y,_,D)|0,!P&&(P=kn(y,_,b,w,c)|0,!P)?(w=bc(D,c)|0,w=An(w|0,((w|0)<0)<<31>>31|0,1,0)|0,D=Be()|0,c=S,g[c>>2]=w,g[c+4>>2]=D,c=0,Ie=d,c|0):(c=P,Ie=d,c|0)}function mu(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0,oe=0,xe=0,Oe=0,ge=0,Re=0;if(ge=Ie,Ie=Ie+48|0,D=ge+24|0,c=ge+12|0,Oe=ge,P=kn(y,_,y,_,D)|0,!P&&(P=kn(y,_,b,w,c)|0,!P)){oe=bc(D,c)|0,xe=((oe|0)<0)<<31>>31,g[D>>2]=0,g[D+4>>2]=0,g[D+8>>2]=0,g[c>>2]=0,g[c+4>>2]=0,g[c+8>>2]=0,kn(y,_,y,_,D)|0&&qt(23313,23090,691,23299),kn(y,_,b,w,c)|0&&qt(23313,23090,696,23299),Ta(D),Ta(c),oe?(E=g[D>>2]|0,L=+(oe|0),ee=D+4|0,M=g[ee>>2]|0,Y=D+8|0,R=g[Y>>2]|0,re=D,w=E,P=M,b=R,z=+((g[c>>2]|0)-E|0)/L,q=+((g[c+4>>2]|0)-M|0)/L,L=+((g[c+8>>2]|0)-R|0)/L):(P=D+4|0,b=D+8|0,ee=P,Y=b,re=D,w=g[D>>2]|0,P=g[P>>2]|0,b=g[b>>2]|0,z=0,q=0,L=0),g[Oe>>2]=w,R=Oe+4|0,g[R>>2]=P,M=Oe+8|0,g[M>>2]=b;e:do if((oe|0)<0)P=0;else for(m=0,E=0,P=w;;){h=+(E>>>0)+4294967296*+(m|0),Re=z*h+ +(P|0),d=q*h+ +(g[ee>>2]|0),h=L*h+ +(g[Y>>2]|0),b=~~+ra(+Re),D=~~+ra(+d),P=~~+ra(+h),Re=+Mt(+(+(b|0)-Re)),d=+Mt(+(+(D|0)-d)),h=+Mt(+(+(P|0)-h));do if(Re>d&Re>h)b=0-(D+P)|0,w=D;else if(c=0-b|0,d>h){w=c-P|0;break}else{w=D,P=c-D|0;break}while(!1);if(g[Oe>>2]=b,g[R>>2]=w,g[M>>2]=P,Xa(Oe),P=Ul(y,_,Oe,S+(E<<3)|0)|0,P|0)break e;if(!((m|0)<(xe|0)|(m|0)==(xe|0)&E>>>0<oe>>>0)){P=0;break e}P=An(E|0,m|0,1,0)|0,c=Be()|0,m=c,E=P,P=g[re>>2]|0}while(!1);return Oe=P,Ie=ge,Oe|0}return Oe=P,Ie=ge,Oe|0}function Gs(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0;if((b|0)==0&(w|0)==0)return S=0,P=1,dr(S|0),P|0;P=y,S=_,y=1,_=0;do D=(b&1|0)==0&!0,y=di((D?1:P)|0,(D?0:S)|0,y|0,_|0)|0,_=Be()|0,b=Eo(b|0,w|0,1)|0,w=Be()|0,P=di(P|0,S|0,P|0,S|0)|0,S=Be()|0;while(!((b|0)==0&(w|0)==0));return dr(_|0),y|0}function ro(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0;if(!(Us(_,b)|0)||(_=yc(_)|0,w=+le[b>>3],S=+le[b+8>>3],S=_&S<0?S+6.283185307179586:S,M=g[y>>2]|0,(M|0)<=0))return M=0,M|0;if(E=g[y+4>>2]|0,_){_=0,m=S,b=-1,y=0;e:for(;;){for(h=y;D=+le[E+(h<<4)>>3],S=+le[E+(h<<4)+8>>3],y=(b+2|0)%(M|0)|0,P=+le[E+(y<<4)>>3],c=+le[E+(y<<4)+8>>3],D>P?(d=D,D=c):(d=P,P=D,D=S,S=c),w=w==P|w==d?w+2220446049250313e-31:w,!!(w<P|w>d);)if(b=h+1|0,(b|0)>=(M|0)){b=22;break e}else y=h,h=b,b=y;if(c=D<0?D+6.283185307179586:D,D=S<0?S+6.283185307179586:S,m=c==m|D==m?m+-2220446049250313e-31:m,d=c+(D-c)*((w-P)/(d-P)),(d<0?d+6.283185307179586:d)>m&&(_=_^1),y=h+1|0,(y|0)>=(M|0)){b=22;break}else b=h}if((b|0)==22)return _|0}else{_=0,m=S,b=-1,y=0;e:for(;;){for(h=y;D=+le[E+(h<<4)>>3],S=+le[E+(h<<4)+8>>3],y=(b+2|0)%(M|0)|0,P=+le[E+(y<<4)>>3],c=+le[E+(y<<4)+8>>3],D>P?(d=D,D=c):(d=P,P=D,D=S,S=c),w=w==P|w==d?w+2220446049250313e-31:w,!!(w<P|w>d);)if(b=h+1|0,(b|0)>=(M|0)){b=22;break e}else y=h,h=b,b=y;if(m=D==m|S==m?m+-2220446049250313e-31:m,D+(S-D)*((w-P)/(d-P))>m&&(_=_^1),y=h+1|0,(y|0)>=(M|0)){b=22;break}else b=h}if((b|0)==22)return _|0}return 0}function _s(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0;
4202if(L=g[y>>2]|0,!L){g[_>>2]=0,g[_+4>>2]=0,g[_+8>>2]=0,g[_+12>>2]=0,g[_+16>>2]=0,g[_+20>>2]=0,g[_+24>>2]=0,g[_+28>>2]=0;return}if(z=_+8|0,le[z>>3]=17976931348623157e292,q=_+24|0,le[q>>3]=17976931348623157e292,le[_>>3]=-17976931348623157e292,ee=_+16|0,le[ee>>3]=-17976931348623157e292,!((L|0)<=0)){for(M=g[y+4>>2]|0,h=17976931348623157e292,m=-17976931348623157e292,E=0,y=-1,P=17976931348623157e292,D=17976931348623157e292,d=-17976931348623157e292,w=-17976931348623157e292,R=0;b=+le[M+(R<<4)>>3],c=+le[M+(R<<4)+8>>3],y=y+2|0,S=+le[M+(((y|0)==(L|0)?0:y)<<4)+8>>3],b<P&&(le[z>>3]=b,P=b),c<D&&(le[q>>3]=c,D=c),b>d?le[_>>3]=b:b=d,c>w&&(le[ee>>3]=c,w=c),h=c>0&c<h?c:h,m=c<0&c>m?c:m,E=E|+Mt(+(c-S))>3.141592653589793,y=R+1|0,(y|0)!=(L|0);)Y=R,d=b,R=y,y=Y;E&&(le[ee>>3]=m,le[q>>3]=h)}}function _f(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0,oe=0,xe=0,Oe=0,ge=0;if(L=g[y>>2]|0,L){if(z=_+8|0,le[z>>3]=17976931348623157e292,q=_+24|0,le[q>>3]=17976931348623157e292,le[_>>3]=-17976931348623157e292,ee=_+16|0,le[ee>>3]=-17976931348623157e292,(L|0)>0){for(S=g[y+4>>2]|0,M=17976931348623157e292,R=-17976931348623157e292,w=0,b=-1,d=17976931348623157e292,h=17976931348623157e292,E=-17976931348623157e292,D=-17976931348623157e292,Y=0;P=+le[S+(Y<<4)>>3],m=+le[S+(Y<<4)+8>>3],Oe=b+2|0,c=+le[S+(((Oe|0)==(L|0)?0:Oe)<<4)+8>>3],P<d&&(le[z>>3]=P,d=P),m<h&&(le[q>>3]=m,h=m),P>E?le[_>>3]=P:P=E,m>D&&(le[ee>>3]=m,D=m),M=m>0&m<M?m:M,R=m<0&m>R?m:R,w=w|+Mt(+(m-c))>3.141592653589793,b=Y+1|0,(b|0)!=(L|0);)Oe=Y,E=P,Y=b,b=Oe;w&&(le[ee>>3]=R,le[q>>3]=M)}}else g[_>>2]=0,g[_+4>>2]=0,g[_+8>>2]=0,g[_+12>>2]=0,g[_+16>>2]=0,g[_+20>>2]=0,g[_+24>>2]=0,g[_+28>>2]=0;if(Oe=y+8|0,b=g[Oe>>2]|0,!((b|0)<=0)){xe=y+12|0,oe=0;do if(S=g[xe>>2]|0,w=oe,oe=oe+1|0,q=_+(oe<<5)|0,ee=g[S+(w<<3)>>2]|0,ee){if(Y=_+(oe<<5)+8|0,le[Y>>3]=17976931348623157e292,y=_+(oe<<5)+24|0,le[y>>3]=17976931348623157e292,le[q>>3]=-17976931348623157e292,re=_+(oe<<5)+16|0,le[re>>3]=-17976931348623157e292,(ee|0)>0){for(L=g[S+(w<<3)+4>>2]|0,M=17976931348623157e292,R=-17976931348623157e292,S=0,w=-1,z=0,d=17976931348623157e292,h=17976931348623157e292,m=-17976931348623157e292,D=-17976931348623157e292;P=+le[L+(z<<4)>>3],E=+le[L+(z<<4)+8>>3],w=w+2|0,c=+le[L+(((w|0)==(ee|0)?0:w)<<4)+8>>3],P<d&&(le[Y>>3]=P,d=P),E<h&&(le[y>>3]=E,h=E),P>m?le[q>>3]=P:P=m,E>D&&(le[re>>3]=E,D=E),M=E>0&E<M?E:M,R=E<0&E>R?E:R,S=S|+Mt(+(E-c))>3.141592653589793,w=z+1|0,(w|0)!=(ee|0);)ge=z,z=w,m=P,w=ge;S&&(le[re>>3]=R,le[y>>3]=M)}}else g[q>>2]=0,g[q+4>>2]=0,g[q+8>>2]=0,g[q+12>>2]=0,g[q+16>>2]=0,g[q+20>>2]=0,g[q+24>>2]=0,g[q+28>>2]=0,b=g[Oe>>2]|0;while((oe|0)<(b|0))}}function Zt(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0;if(!(ro(y,_,b)|0))return S=0,S|0;if(S=y+8|0,(g[S>>2]|0)<=0)return S=1,S|0;for(w=y+12|0,y=0;;){if(P=y,y=y+1|0,ro((g[w>>2]|0)+(P<<3)|0,_+(y<<5)|0,b)|0){y=0,w=6;break}if((y|0)>=(g[S>>2]|0)){y=1,w=6;break}}return(w|0)==6?y|0:0}function yf(){return 8}function _u(){return 16}function vf(){return 168}function no(){return 8}function Bs(){return 16}function yu(){return 12}function vu(){return 8}function Ps(y){return y=y|0,+(+((g[y>>2]|0)>>>0)+4294967296*+(g[y+4>>2]|0))}function ea(y){y=y|0;var _=0,b=0;return b=+le[y>>3],_=+le[y+8>>3],+ +Ft(+(b*b+_*_))}function bf(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0;h=+le[y>>3],d=+le[_>>3]-h,c=+le[y+8>>3],D=+le[_+8>>3]-c,E=+le[b>>3],P=+le[w>>3]-E,M=+le[b+8>>3],m=+le[w+8>>3]-M,P=(P*(c-M)-(h-E)*m)/(d*m-D*P),le[S>>3]=h+d*P,le[S+8>>3]=c+D*P}function zl(y,_){return y=y|0,_=_|0,+Mt(+(+le[y>>3]-+le[_>>3]))<11920928955078125e-23?(_=+Mt(+(+le[y+8>>3]-+le[_+8>>3]))<11920928955078125e-23,_|0):(_=0,_|0)}function wi(y,_){y=y|0,_=_|0;var b=0,w=0,S=0;return S=+le[y>>3]-+le[_>>3],w=+le[y+8>>3]-+le[_+8>>3],b=+le[y+16>>3]-+le[_+16>>3],+(S*S+w*w+b*b)}function xf(y,_){y=y|0,_=_|0;var b=0,w=0,S=0;b=+le[y>>3],w=+Lt(+b),b=+Pt(+b),le[_+16>>3]=b,b=+le[y+8>>3],S=w*+Lt(+b),le[_>>3]=S,b=w*+Pt(+b),le[_+8>>3]=b}function wo(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0;if(P=Ie,Ie=Ie+16|0,S=P,w=On(y,_)|0,(b+-1|0)>>>0>5||(w=(w|0)!=0,(b|0)==1&w))return S=-1,Ie=P,S|0;do if(is(y,_,S)|0)w=-1;else if(w){w=((g[21936+(b<<2)>>2]|0)+5-(g[S>>2]|0)|0)%5|0;break}else{w=((g[21968+(b<<2)>>2]|0)+6-(g[S>>2]|0)|0)%6|0;break}while(!1);return S=w,Ie=P,S|0}function is(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0,h=0;if(h=Ie,Ie=Ie+32|0,D=h+16|0,c=h,w=Qa(y,_,D)|0,w|0)return b=w,Ie=h,b|0;P=Af(y,_)|0,d=ns(y,_)|0,Qs(P,c),w=xh(P,g[D>>2]|0)|0;e:do if(Br(P)|0){do switch(P|0){case 4:{y=0;break}case 14:{y=1;break}case 24:{y=2;break}case 38:{y=3;break}case 49:{y=4;break}case 58:{y=5;break}case 63:{y=6;break}case 72:{y=7;break}case 83:{y=8;break}case 97:{y=9;break}case 107:{y=10;break}case 117:{y=11;break}default:{w=1;break e}}while(!1);if(S=g[22e3+(y*24|0)+8>>2]|0,_=g[22e3+(y*24|0)+16>>2]|0,y=g[D>
4202>2]|0,(y|0)!=(g[c>>2]|0)&&(c=fi(P)|0,y=g[D>>2]|0,c|(y|0)==(_|0)&&(w=(w+1|0)%6|0)),(d|0)==3&(y|0)==(_|0)){w=(w+5|0)%6|0,S=22;break}(d|0)==5&(y|0)==(S|0)&&(w=(w+1|0)%6|0),S=22}else S=22;while(!1);return(S|0)==22&&(g[b>>2]=w,w=0),b=w,Ie=h,b|0}function Gr(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0;if(re=Ie,Ie=Ie+32|0,Y=re+24|0,q=re+20|0,L=re+8|0,R=re+16|0,M=re,d=(On(y,_)|0)==0,d=d?6:5,m=Xt(y|0,_|0,52)|0,Be()|0,m=m&15,d>>>0<=b>>>0)return w=2,Ie=re,w|0;E=(m|0)==0,!E&&(z=rr(7,0,(m^15)*3|0)|0,(z&y|0)==0&((Be()|0)&_|0)==0)?S=b:P=4;e:do if((P|0)==4){if(S=(On(y,_)|0)!=0,((S?4:5)|0)<(b|0)||is(y,_,Y)|0||(P=(g[Y>>2]|0)+b|0,S?S=22288+(((P|0)%5|0)<<2)|0:S=22320+(((P|0)%6|0)<<2)|0,z=g[S>>2]|0,(z|0)==7))return w=1,Ie=re,w|0;g[q>>2]=0,S=In(y,_,z,q,L)|0;do if(!S){if(c=L,h=g[c>>2]|0,c=g[c+4>>2]|0,D=c>>>0<_>>>0|(c|0)==(_|0)&h>>>0<y>>>0,P=D?h:y,D=D?c:_,!E&&(E=rr(7,0,(m^15)*3|0)|0,(h&E|0)==0&(c&(Be()|0)|0)==0))S=b;else{if(c=(b+-1+d|0)%(d|0)|0,S=On(y,_)|0,(c|0)<0&&qt(23313,23315,245,23324),d=(S|0)!=0,((d?4:5)|0)<(c|0)&&qt(23313,23315,245,23324),is(y,_,Y)|0&&qt(23313,23315,245,23324),S=(g[Y>>2]|0)+c|0,d?S=22288+(((S|0)%5|0)<<2)|0:S=22320+(((S|0)%6|0)<<2)|0,c=g[S>>2]|0,(c|0)==7&&qt(23313,23315,245,23324),g[R>>2]=0,S=In(y,_,c,R,M)|0,S|0)break;h=M,d=g[h>>2]|0,h=g[h+4>>2]|0;do if(h>>>0<D>>>0|(h|0)==(D|0)&d>>>0<P>>>0){if(On(d,h)|0?P=gc(d,h,y,_)|0:P=g[22384+((((g[R>>2]|0)+(g[22352+(c<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,S=On(d,h)|0,(P+-1|0)>>>0>5){S=-1,P=d,D=h;break}if(S=(S|0)!=0,(P|0)==1&S){S=-1,P=d,D=h;break}do if(is(d,h,Y)|0)S=-1;else if(S){S=((g[21936+(P<<2)>>2]|0)+5-(g[Y>>2]|0)|0)%5|0;break}else{S=((g[21968+(P<<2)>>2]|0)+6-(g[Y>>2]|0)|0)%6|0;break}while(!1);P=d,D=h}else S=b;while(!1);c=L,h=g[c>>2]|0,c=g[c+4>>2]|0}if((P|0)==(h|0)&(D|0)==(c|0)){if(d=(On(h,c)|0)!=0,d?y=gc(h,c,y,_)|0:y=g[22384+((((g[q>>2]|0)+(g[22352+(z<<2)>>2]|0)|0)%6|0)<<2)>>2]|0,S=On(h,c)|0,(y+-1|0)>>>0<=5&&(ee=(S|0)!=0,!((y|0)==1&ee)))do if(is(h,c,Y)|0)S=-1;else if(ee){S=((g[21936+(y<<2)>>2]|0)+5-(g[Y>>2]|0)|0)%5|0;break}else{S=((g[21968+(y<<2)>>2]|0)+6-(g[Y>>2]|0)|0)%6|0;break}while(!1);else S=-1;S=S+1|0,S=(S|0)==6|d&(S|0)==5?0:S}_=D,y=P;break e}while(!1);return w=S,Ie=re,w|0}while(!1);return ee=rr(S|0,0,56)|0,Y=Be()|0|_&-2130706433|536870912,g[w>>2]=ee|y,g[w+4>>2]=Y,w=0,Ie=re,w|0}function Oo(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0;return P=(On(y,_)|0)==0,w=Gr(y,_,0,b)|0,S=(w|0)==0,P?!S||(w=Gr(y,_,1,b+8|0)|0,w|0)||(w=Gr(y,_,2,b+16|0)|0,w|0)||(w=Gr(y,_,3,b+24|0)|0,w|0)||(w=Gr(y,_,4,b+32|0)|0,w)?(P=w,P|0):Gr(y,_,5,b+40|0)|0:!S||(w=Gr(y,_,1,b+8|0)|0,w|0)||(w=Gr(y,_,2,b+16|0)|0,w|0)||(w=Gr(y,_,3,b+24|0)|0,w|0)||(w=Gr(y,_,4,b+32|0)|0,w|0)?(P=w,P|0):(P=b+40|0,g[P>>2]=0,g[P+4>>2]=0,P=0,P|0)}function io(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0,c=0,d=0;return d=Ie,Ie=Ie+192|0,S=d,P=d+168|0,D=Xt(y|0,_|0,56)|0,Be()|0,D=D&7,c=_&-2130706433|134217728,w=Qa(y,c,P)|0,w|0?(c=w,Ie=d,c|0):(_=Xt(y|0,_|0,52)|0,Be()|0,_=_&15,On(y,c)|0?qo(P,_,D,1,S):lu(P,_,D,1,S),c=S+8|0,g[b>>2]=g[c>>2],g[b+4>>2]=g[c+4>>2],g[b+8>>2]=g[c+8>>2],g[b+12>>2]=g[c+12>>2],c=0,Ie=d,c|0)}function qi(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0;return S=Ie,Ie=Ie+16|0,b=S,!(!0&(_&2013265920|0)==536870912)||(w=_&-2130706433|134217728,!(Ko(y,w)|0))?(w=0,Ie=S,w|0):(P=Xt(y|0,_|0,56)|0,Be()|0,P=(Gr(y,w,P&7,b)|0)==0,w=b,w=P&((g[w>>2]|0)==(y|0)?(g[w+4>>2]|0)==(_|0):0)&1,Ie=S,w|0)}function Ia(y,_,b){y=y|0,_=_|0,b=b|0;var w=0;(_|0)>0?(w=oo(_,4)|0,g[y>>2]=w,w||qt(23337,23360,40,23374)):g[y>>2]=0,g[y+4>>2]=_,g[y+8>>2]=0,g[y+12>>2]=b}function ta(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0;S=y+4|0,P=y+12|0,D=y+8|0;e:for(;;){for(b=g[S>>2]|0,_=0;;){if((_|0)>=(b|0))break e;if(w=g[y>>2]|0,c=g[w+(_<<2)>>2]|0,!c)_=_+1|0;else break}_=w+(~~(+Mt(+(+ht(10,+ +(15-(g[P>>2]|0)|0))*(+le[c>>3]+ +le[c+8>>3])))%+(b|0))>>>0<<2)|0,b=g[_>>2]|0;t:do if(b|0){if(w=c+32|0,(b|0)==(c|0))g[_>>2]=g[w>>2];else{if(b=b+32|0,_=g[b>>2]|0,!_)break;for(;(_|0)!=(c|0);)if(b=_+32|0,_=g[b>>2]|0,!_)break t;g[b>>2]=g[w>>2]}zr(c),g[D>>2]=(g[D>>2]|0)+-1}while(!1)}zr(g[y>>2]|0)}function so(y){y=y|0;var _=0,b=0,w=0;for(w=g[y+4>>2]|0,b=0;;){if((b|0)>=(w|0)){_=0,b=4;break}if(_=g[(g[y>>2]|0)+(b<<2)>>2]|0,!_)b=b+1|0;else{b=4;break}}return(b|0)==4?_|0:0}function ss(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0;if(b=~~(+Mt(+(+ht(10,+ +(15-(g[y+12>>2]|0)|0))*(+le[_>>3]+ +le[_+8>>3])))%+(g[y+4>>2]|0))>>>0,b=(g[y>>2]|0)+(b<<2)|0,w=g[b>>2]|0,!w)return P=1,P|0;P=_+32|0;do if((w|0)!=(_|0)){if(b=g[w+32>>2]|0,!b)return P=1,P|0;for(S=b;;){if((S|0)==(_|0)){S=8;break}if(b=g[S+32>>2]|0,b)w=S,S=b;else{b=1,S=10;break}}if((S|0)==8){g[w+32>>2]=g[P>>2];break}else if((S|0)==10)return b|0}else g[b>>2]=g[P>>2];while(!1);return zr(_),P=y+8|0,g[P>>2]=(g[P>>2]|0)+-1,P=0,P|0}function Bc(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0;P=qn(40)|0,P||qt(23390,23360,98,23403),g[P>>2]=g[_>>2],g[P+4>>2]=g[_+4>>2],g[P+8>>2]=g[_+8>>2],g[P+12>>2]=g[_+12>>2],S=P+16|0,g[S>>2]=g[b>>2],g[S+4>>2]=g[b+4>>2],g[S+8>>2]=g[b+8>>2],g[S+12>>2]=g[b+12>>2],g[P+32>>2]=0,S=~~(+Mt(+(+ht(10,+ +(15-(g[y+12>>2]|0)|0))*(+le[_>>3]+ +le[_+8>>3])))%+(g[y+4>>2]|0))>>>0,S=(g[y>>2]|0)+(S<<2)|0,w=g[S>>2]|0;do if(!w)g[S>>2]=P;else{for(;!(tl(w,_)|0&&tl(w+16|0,b)|0);)if(S=g[w+32>>2]|0,w=(S|0)==0?w:S,!(g[w+32>>2]|0)){D=10;break}if((D|0)==10){g[w+32>>2]=P;break}return zr(P),D=w,D|0}while(!1);return D=y+8|0,g[D>>2]=(g[D>>2]|0)+1,D=P,D|0}
4202function wr(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0;if(S=~~(+Mt(+(+ht(10,+ +(15-(g[y+12>>2]|0)|0))*(+le[_>>3]+ +le[_+8>>3])))%+(g[y+4>>2]|0))>>>0,S=g[(g[y>>2]|0)+(S<<2)>>2]|0,!S)return b=0,b|0;if(!b){for(y=S;;){if(tl(y,_)|0){w=10;break}if(y=g[y+32>>2]|0,!y){y=0,w=10;break}}if((w|0)==10)return y|0}for(y=S;;){if(tl(y,_)|0&&tl(y+16|0,b)|0){w=10;break}if(y=g[y+32>>2]|0,!y){y=0,w=10;break}}return(w|0)==10?y|0:0}function ur(y,_){y=y|0,_=_|0;var b=0;if(b=~~(+Mt(+(+ht(10,+ +(15-(g[y+12>>2]|0)|0))*(+le[_>>3]+ +le[_+8>>3])))%+(g[y+4>>2]|0))>>>0,y=g[(g[y>>2]|0)+(b<<2)>>2]|0,!y)return b=0,b|0;for(;;){if(tl(y,_)|0){_=5;break}if(y=g[y+32>>2]|0,!y){y=0,_=5;break}}return(_|0)==5?y|0:0}function bu(){return 23424}function fs(y){return y=+y,+ +ia(+y)}function Ji(y){return y=+y,~~+fs(y)|0}function qn(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0,z=0,q=0,ee=0,Y=0,re=0,oe=0,xe=0;xe=Ie,Ie=Ie+16|0,M=xe;do if(y>>>0<245){if(h=y>>>0<11?16:y+11&-8,y=h>>>3,E=g[5857]|0,b=E>>>y,b&3|0)return _=(b&1^1)+y|0,y=23468+(_<<1<<2)|0,b=y+8|0,w=g[b>>2]|0,S=w+8|0,P=g[S>>2]|0,(P|0)==(y|0)?g[5857]=E&~(1<<_):(g[P+12>>2]=y,g[b>>2]=P),oe=_<<3,g[w+4>>2]=oe|3,oe=w+oe+4|0,g[oe>>2]=g[oe>>2]|1,oe=S,Ie=xe,oe|0;if(m=g[5859]|0,h>>>0>m>>>0){if(b|0)return _=2<<y,_=b<<y&(_|0-_),_=(_&0-_)+-1|0,c=_>>>12&16,_=_>>>c,b=_>>>5&8,_=_>>>b,P=_>>>2&4,_=_>>>P,y=_>>>1&2,_=_>>>y,w=_>>>1&1,w=(b|c|P|y|w)+(_>>>w)|0,_=23468+(w<<1<<2)|0,y=_+8|0,P=g[y>>2]|0,c=P+8|0,b=g[c>>2]|0,(b|0)==(_|0)?(y=E&~(1<<w),g[5857]=y):(g[b+12>>2]=_,g[y>>2]=b,y=E),oe=w<<3,D=oe-h|0,g[P+4>>2]=h|3,S=P+h|0,g[S+4>>2]=D|1,g[P+oe>>2]=D,m|0&&(w=g[5862]|0,_=m>>>3,b=23468+(_<<1<<2)|0,_=1<<_,y&_?(y=b+8|0,_=g[y>>2]|0):(g[5857]=y|_,_=b,y=b+8|0),g[y>>2]=w,g[_+12>>2]=w,g[w+8>>2]=_,g[w+12>>2]=b),g[5859]=D,g[5862]=S,oe=c,Ie=xe,oe|0;if(P=g[5858]|0,P){for(b=(P&0-P)+-1|0,S=b>>>12&16,b=b>>>S,w=b>>>5&8,b=b>>>w,D=b>>>2&4,b=b>>>D,c=b>>>1&2,b=b>>>c,d=b>>>1&1,d=g[23732+((w|S|D|c|d)+(b>>>d)<<2)>>2]|0,b=d,c=d,d=(g[d+4>>2]&-8)-h|0;y=g[b+16>>2]|0,!(!y&&(y=g[b+20>>2]|0,!y));)D=(g[y+4>>2]&-8)-h|0,S=D>>>0<d>>>0,b=y,c=S?y:c,d=S?D:d;if(D=c+h|0,D>>>0>c>>>0){S=g[c+24>>2]|0,_=g[c+12>>2]|0;do if((_|0)==(c|0)){if(y=c+20|0,_=g[y>>2]|0,!_&&(y=c+16|0,_=g[y>>2]|0,!_)){b=0;break}for(;;)if(w=_+20|0,b=g[w>>2]|0,b)_=b,y=w;else if(w=_+16|0,b=g[w>>2]|0,b)_=b,y=w;else break;g[y>>2]=0,b=_}else b=g[c+8>>2]|0,g[b+12>>2]=_,g[_+8>>2]=b,b=_;while(!1);do if(S|0){if(_=g[c+28>>2]|0,y=23732+(_<<2)|0,(c|0)==(g[y>>2]|0)){if(g[y>>2]=b,!b){g[5858]=P&~(1<<_);break}}else if(oe=S+16|0,g[((g[oe>>2]|0)==(c|0)?oe:S+20|0)>>2]=b,!b)break;g[b+24>>2]=S,_=g[c+16>>2]|0,_|0&&(g[b+16>>2]=_,g[_+24>>2]=b),_=g[c+20>>2]|0,_|0&&(g[b+20>>2]=_,g[_+24>>2]=b)}while(!1);return d>>>0<16?(oe=d+h|0,g[c+4>>2]=oe|3,oe=c+oe+4|0,g[oe>>2]=g[oe>>2]|1):(g[c+4>>2]=h|3,g[D+4>>2]=d|1,g[D+d>>2]=d,m|0&&(w=g[5862]|0,_=m>>>3,b=23468+(_<<1<<2)|0,_=1<<_,_&E?(y=b+8|0,_=g[y>>2]|0):(g[5857]=_|E,_=b,y=b+8|0),g[y>>2]=w,g[_+12>>2]=w,g[w+8>>2]=_,g[w+12>>2]=b),g[5859]=d,g[5862]=D),oe=c+8|0,Ie=xe,oe|0}else E=h}else E=h}else E=h}else if(y>>>0<=4294967231)if(y=y+11|0,h=y&-8,w=g[5858]|0,w){S=0-h|0,y=y>>>8,y?h>>>0>16777215?d=31:(E=(y+1048320|0)>>>16&8,z=y<<E,c=(z+520192|0)>>>16&4,z=z<<c,d=(z+245760|0)>>>16&2,d=14-(c|E|d)+(z<<d>>>15)|0,d=h>>>(d+7|0)&1|d<<1):d=0,b=g[23732+(d<<2)>>2]|0;e:do if(!b)b=0,y=0,z=61;else for(y=0,c=h<<((d|0)==31?0:25-(d>>>1)|0),P=0;;){if(D=(g[b+4>>2]&-8)-h|0,D>>>0<S>>>0)if(D)y=b,S=D;else{y=b,S=0,z=65;break e}if(z=g[b+20>>2]|0,b=g[b+16+(c>>>31<<2)>>2]|0,P=(z|0)==0|(z|0)==(b|0)?P:z,b)c=c<<1;else{b=P,z=61;break}}while(!1);if((z|0)==61){if((b|0)==0&(y|0)==0){if(y=2<<d,y=(y|0-y)&w,!y){E=h;break}E=(y&0-y)+-1|0,D=E>>>12&16,E=E>>>D,P=E>>>5&8,E=E>>>P,c=E>>>2&4,E=E>>>c,d=E>>>1&2,E=E>>>d,b=E>>>1&1,y=0,b=g[23732+((P|D|c|d|b)+(E>>>b)<<2)>>2]|0}b?z=65:(c=y,D=S)}if((z|0)==65)for(P=b;;)if(E=(g[P+4>>2]&-8)-h|0,b=E>>>0<S>>>0,S=b?E:S,y=b?P:y,b=g[P+16>>2]|0,b||(b=g[P+20>>2]|0),b)P=b;else{c=y,D=S;break}if((c|0)!=0&&D>>>0<((g[5859]|0)-h|0)>>>0&&(m=c+h|0,m>>>0>c>>>0)){P=g[c+24>>2]|0,_=g[c+12>>2]|0;do if((_|0)==(c|0)){if(y=c+20|0,_=g[y>>2]|0,!_&&(y=c+16|0,_=g[y>>2]|0,!_)){_=0;break}for(;;)if(S=_+20|0,b=g[S>>2]|0,b)_=b,y=S;else if(S=_+16|0,b=g[S>>2]|0,b)_=b,y=S;else break;g[y>>2]=0}else oe=g[c+8>>2]|0,g[oe+12>>2]=_,g[_+8>>2]=oe;while(!1);do if(P){if(y=g[c+28>>2]|0,b=23732+(y<<2)|0,(c|0)==(g[b>>2]|0)){if(g[b>>2]=_,!_){w=w&~(1<<y),g[5858]=w;break}}else if(oe=P+16|0,g[((g[oe>>2]|0)==(c|0)?oe:P+20|0)>>2]=_,!_)break;g[_+24>>2]=P,y=g[c+16>>2]|0,y|0&&(g[_+16>>2]=y,g[y+24>>2]=_),y=g[c+20>>2]|0,y&&(g[_+20>>2]=y,g[y+24>>2]=_)}while(!1);e:do if(D>>>0<16)oe=D+h|0,g[c+4>>2]=oe|3,oe=c+oe+4|0,g[oe>>2]=g[oe>>2]|1;else{if(g[c+4>>2]=h|3,g[m+4>>2]=D|1,g[m+D>>2]=D,_=D>>>3,D>>>0<256){b=23468+(_<<1<<2)|0,y=g[5857]|0,_=1<<_,y&_?(y=b+8|0,_=g[y>>2]|0):(g[5857]=y|_,_=b,y=b+8|0),g[y>>2]=m,g[_+12>>2]=m,g[m+8>>2]=_,g[m+12>>2]=b;break}if(_=D>>>8,_?D>>>0>16777215?b=31:(re=(_+1048320|0)>>>16&8,oe=_<<re,Y=(oe+520192|0)>>>16&4,oe=oe<<Y,b=(oe+245760|0)>>>16&2,b=14-(Y|re|b)+(oe<<b>>>15)|0,b=D>>>(b+7|0)&1|b<<1):b=0,_=23732+(b<<2)|0,g[m+28>>2]=b,y=m+16|0,g[y+4>>2]=0,g[y>>2]=0,y=1<<b,!(w&y)){g[5858]=w|y,g[_>>2]=m,g[m+24>>2]=_,g[m+12>>2]=m,g[m+8>>2]=m;break}_=g[_>>2]|0;
4202t:do if((g[_+4>>2]&-8|0)!=(D|0)){for(w=D<<((b|0)==31?0:25-(b>>>1)|0);b=_+16+(w>>>31<<2)|0,y=g[b>>2]|0,!!y;)if((g[y+4>>2]&-8|0)==(D|0)){_=y;break t}else w=w<<1,_=y;g[b>>2]=m,g[m+24>>2]=_,g[m+12>>2]=m,g[m+8>>2]=m;break e}while(!1);re=_+8|0,oe=g[re>>2]|0,g[oe+12>>2]=m,g[re>>2]=m,g[m+8>>2]=oe,g[m+12>>2]=_,g[m+24>>2]=0}while(!1);return oe=c+8|0,Ie=xe,oe|0}else E=h}else E=h;else E=-1;while(!1);if(b=g[5859]|0,b>>>0>=E>>>0)return _=b-E|0,y=g[5862]|0,_>>>0>15?(oe=y+E|0,g[5862]=oe,g[5859]=_,g[oe+4>>2]=_|1,g[y+b>>2]=_,g[y+4>>2]=E|3):(g[5859]=0,g[5862]=0,g[y+4>>2]=b|3,oe=y+b+4|0,g[oe>>2]=g[oe>>2]|1),oe=y+8|0,Ie=xe,oe|0;if(D=g[5860]|0,D>>>0>E>>>0)return Y=D-E|0,g[5860]=Y,oe=g[5863]|0,re=oe+E|0,g[5863]=re,g[re+4>>2]=Y|1,g[oe+4>>2]=E|3,oe=oe+8|0,Ie=xe,oe|0;if(g[5975]|0?y=g[5977]|0:(g[5977]=4096,g[5976]=4096,g[5978]=-1,g[5979]=-1,g[5980]=0,g[5968]=0,g[5975]=M&-16^1431655768,y=4096),c=E+48|0,d=E+47|0,P=y+d|0,S=0-y|0,h=P&S,h>>>0<=E>>>0||(y=g[5967]|0,y|0&&(m=g[5965]|0,M=m+h|0,M>>>0<=m>>>0|M>>>0>y>>>0)))return oe=0,Ie=xe,oe|0;e:do if(g[5968]&4)_=0,z=143;else{b=g[5863]|0;t:do if(b){for(w=23876;M=g[w>>2]|0,!(M>>>0<=b>>>0&&(M+(g[w+4>>2]|0)|0)>>>0>b>>>0);)if(y=g[w+8>>2]|0,y)w=y;else{z=128;break t}if(_=P-D&S,_>>>0<2147483647)if(y=ys(_|0)|0,(y|0)==((g[w>>2]|0)+(g[w+4>>2]|0)|0)){if((y|0)!=-1){D=_,P=y,z=145;break e}}else w=y,z=136;else _=0}else z=128;while(!1);do if((z|0)==128)if(b=ys(0)|0,(b|0)!=-1&&(_=b,R=g[5976]|0,L=R+-1|0,_=((L&_|0)==0?0:(L+_&0-R)-_|0)+h|0,R=g[5965]|0,L=_+R|0,_>>>0>E>>>0&_>>>0<2147483647)){if(M=g[5967]|0,M|0&&L>>>0<=R>>>0|L>>>0>M>>>0){_=0;break}if(y=ys(_|0)|0,(y|0)==(b|0)){D=_,P=b,z=145;break e}else w=y,z=136}else _=0;while(!1);do if((z|0)==136){if(b=0-_|0,!(c>>>0>_>>>0&(_>>>0<2147483647&(w|0)!=-1)))if((w|0)==-1){_=0;break}else{D=_,P=w,z=145;break e}if(y=g[5977]|0,y=d-_+y&0-y,y>>>0>=2147483647){D=_,P=w,z=145;break e}if((ys(y|0)|0)==-1){ys(b|0)|0,_=0;break}else{D=y+_|0,P=w,z=145;break e}}while(!1);g[5968]=g[5968]|4,z=143}while(!1);if((z|0)==143&&h>>>0<2147483647&&(Y=ys(h|0)|0,L=ys(0)|0,q=L-Y|0,ee=q>>>0>(E+40|0)>>>0,!((Y|0)==-1|ee^1|Y>>>0<L>>>0&((Y|0)!=-1&(L|0)!=-1)^1))&&(D=ee?q:_,P=Y,z=145),(z|0)==145){_=(g[5965]|0)+D|0,g[5965]=_,_>>>0>(g[5966]|0)>>>0&&(g[5966]=_),d=g[5863]|0;e:do if(d){for(_=23876;;){if(y=g[_>>2]|0,b=g[_+4>>2]|0,(P|0)==(y+b|0)){z=154;break}if(w=g[_+8>>2]|0,w)_=w;else break}if((z|0)==154&&(re=_+4|0,(g[_+12>>2]&8|0)==0)&&P>>>0>d>>>0&y>>>0<=d>>>0){g[re>>2]=b+D,oe=(g[5860]|0)+D|0,Y=d+8|0,Y=(Y&7|0)==0?0:0-Y&7,re=d+Y|0,Y=oe-Y|0,g[5863]=re,g[5860]=Y,g[re+4>>2]=Y|1,g[d+oe+4>>2]=40,g[5864]=g[5979];break}for(P>>>0<(g[5861]|0)>>>0&&(g[5861]=P),b=P+D|0,_=23876;;){if((g[_>>2]|0)==(b|0)){z=162;break}if(y=g[_+8>>2]|0,y)_=y;else break}if((z|0)==162&&(g[_+12>>2]&8|0)==0){g[_>>2]=P,m=_+4|0,g[m>>2]=(g[m>>2]|0)+D,m=P+8|0,m=P+((m&7|0)==0?0:0-m&7)|0,_=b+8|0,_=b+((_&7|0)==0?0:0-_&7)|0,h=m+E|0,c=_-m-E|0,g[m+4>>2]=E|3;t:do if((d|0)==(_|0))oe=(g[5860]|0)+c|0,g[5860]=oe,g[5863]=h,g[h+4>>2]=oe|1;else{if((g[5862]|0)==(_|0)){oe=(g[5859]|0)+c|0,g[5859]=oe,g[5862]=h,g[h+4>>2]=oe|1,g[h+oe>>2]=oe;break}if(y=g[_+4>>2]|0,(y&3|0)==1){D=y&-8,w=y>>>3;r:do if(y>>>0<256)if(y=g[_+8>>2]|0,b=g[_+12>>2]|0,(b|0)==(y|0)){g[5857]=g[5857]&~(1<<w);break}else{g[y+12>>2]=b,g[b+8>>2]=y;break}else{P=g[_+24>>2]|0,y=g[_+12>>2]|0;do if((y|0)==(_|0)){if(b=_+16|0,w=b+4|0,y=g[w>>2]|0,y)b=w;else if(y=g[b>>2]|0,!y){y=0;break}for(;;)if(S=y+20|0,w=g[S>>2]|0,w)y=w,b=S;else if(S=y+16|0,w=g[S>>2]|0,w)y=w,b=S;else break;g[b>>2]=0}else oe=g[_+8>>2]|0,g[oe+12>>2]=y,g[y+8>>2]=oe;while(!1);if(!P)break;b=g[_+28>>2]|0,w=23732+(b<<2)|0;do if((g[w>>2]|0)!=(_|0)){if(oe=P+16|0,g[((g[oe>>2]|0)==(_|0)?oe:P+20|0)>>2]=y,!y)break r}else{if(g[w>>2]=y,y|0)break;g[5858]=g[5858]&~(1<<b);break r}while(!1);if(g[y+24>>2]=P,b=_+16|0,w=g[b>>2]|0,w|0&&(g[y+16>>2]=w,g[w+24>>2]=y),b=g[b+4>>2]|0,!b)break;g[y+20>>2]=b,g[b+24>>2]=y}while(!1);_=_+D|0,S=D+c|0}else S=c;if(_=_+4|0,g[_>>2]=g[_>>2]&-2,g[h+4>>2]=S|1,g[h+S>>2]=S,_=S>>>3,S>>>0<256){b=23468+(_<<1<<2)|0,y=g[5857]|0,_=1<<_,y&_?(y=b+8|0,_=g[y>>2]|0):(g[5857]=y|_,_=b,y=b+8|0),g[y>>2]=h,g[_+12>>2]=h,g[h+8>>2]=_,g[h+12>>2]=b;break}_=S>>>8;do if(!_)w=0;else{if(S>>>0>16777215){w=31;break}re=(_+1048320|0)>>>16&8,oe=_<<re,Y=(oe+520192|0)>>>16&4,oe=oe<<Y,w=(oe+245760|0)>>>16&2,w=14-(Y|re|w)+(oe<<w>>>15)|0,w=S>>>(w+7|0)&1|w<<1}while(!1);if(_=23732+(w<<2)|0,g[h+28>>2]=w,y=h+16|0,g[y+4>>2]=0,g[y>>2]=0,y=g[5858]|0,b=1<<w,!(y&b)){g[5858]=y|b,g[_>>2]=h,g[h+24>>2]=_,g[h+12>>2]=h,g[h+8>>2]=h;break}_=g[_>>2]|0;r:do if((g[_+4>>
42022]&-8|0)!=(S|0)){for(w=S<<((w|0)==31?0:25-(w>>>1)|0);b=_+16+(w>>>31<<2)|0,y=g[b>>2]|0,!!y;)if((g[y+4>>2]&-8|0)==(S|0)){_=y;break r}else w=w<<1,_=y;g[b>>2]=h,g[h+24>>2]=_,g[h+12>>2]=h,g[h+8>>2]=h;break t}while(!1);re=_+8|0,oe=g[re>>2]|0,g[oe+12>>2]=h,g[re>>2]=h,g[h+8>>2]=oe,g[h+12>>2]=_,g[h+24>>2]=0}while(!1);return oe=m+8|0,Ie=xe,oe|0}for(_=23876;y=g[_>>2]|0,!(y>>>0<=d>>>0&&(oe=y+(g[_+4>>2]|0)|0,oe>>>0>d>>>0));)_=g[_+8>>2]|0;S=oe+-47|0,y=S+8|0,y=S+((y&7|0)==0?0:0-y&7)|0,S=d+16|0,y=y>>>0<S>>>0?d:y,_=y+8|0,b=D+-40|0,Y=P+8|0,Y=(Y&7|0)==0?0:0-Y&7,re=P+Y|0,Y=b-Y|0,g[5863]=re,g[5860]=Y,g[re+4>>2]=Y|1,g[P+b+4>>2]=40,g[5864]=g[5979],b=y+4|0,g[b>>2]=27,g[_>>2]=g[5969],g[_+4>>2]=g[5970],g[_+8>>2]=g[5971],g[_+12>>2]=g[5972],g[5969]=P,g[5970]=D,g[5972]=0,g[5971]=_,_=y+24|0;do re=_,_=_+4|0,g[_>>2]=7;while((re+8|0)>>>0<oe>>>0);if((y|0)!=(d|0)){if(P=y-d|0,g[b>>2]=g[b>>2]&-2,g[d+4>>2]=P|1,g[y>>2]=P,_=P>>>3,P>>>0<256){b=23468+(_<<1<<2)|0,y=g[5857]|0,_=1<<_,y&_?(y=b+8|0,_=g[y>>2]|0):(g[5857]=y|_,_=b,y=b+8|0),g[y>>2]=d,g[_+12>>2]=d,g[d+8>>2]=_,g[d+12>>2]=b;break}if(_=P>>>8,_?P>>>0>16777215?w=31:(re=(_+1048320|0)>>>16&8,oe=_<<re,Y=(oe+520192|0)>>>16&4,oe=oe<<Y,w=(oe+245760|0)>>>16&2,w=14-(Y|re|w)+(oe<<w>>>15)|0,w=P>>>(w+7|0)&1|w<<1):w=0,b=23732+(w<<2)|0,g[d+28>>2]=w,g[d+20>>2]=0,g[S>>2]=0,_=g[5858]|0,y=1<<w,!(_&y)){g[5858]=_|y,g[b>>2]=d,g[d+24>>2]=b,g[d+12>>2]=d,g[d+8>>2]=d;break}_=g[b>>2]|0;t:do if((g[_+4>>2]&-8|0)!=(P|0)){for(w=P<<((w|0)==31?0:25-(w>>>1)|0);b=_+16+(w>>>31<<2)|0,y=g[b>>2]|0,!!y;)if((g[y+4>>2]&-8|0)==(P|0)){_=y;break t}else w=w<<1,_=y;g[b>>2]=d,g[d+24>>2]=_,g[d+12>>2]=d,g[d+8>>2]=d;break e}while(!1);re=_+8|0,oe=g[re>>2]|0,g[oe+12>>2]=d,g[re>>2]=d,g[d+8>>2]=oe,g[d+12>>2]=_,g[d+24>>2]=0}}else oe=g[5861]|0,(oe|0)==0|P>>>0<oe>>>0&&(g[5861]=P),g[5969]=P,g[5970]=D,g[5972]=0,g[5866]=g[5975],g[5865]=-1,g[5870]=23468,g[5869]=23468,g[5872]=23476,g[5871]=23476,g[5874]=23484,g[5873]=23484,g[5876]=23492,g[5875]=23492,g[5878]=23500,g[5877]=23500,g[5880]=23508,g[5879]=23508,g[5882]=23516,g[5881]=23516,g[5884]=23524,g[5883]=23524,g[5886]=23532,g[5885]=23532,g[5888]=23540,g[5887]=23540,g[5890]=23548,g[5889]=23548,g[5892]=23556,g[5891]=23556,g[5894]=23564,g[5893]=23564,g[5896]=23572,g[5895]=23572,g[5898]=23580,g[5897]=23580,g[5900]=23588,g[5899]=23588,g[5902]=23596,g[5901]=23596,g[5904]=23604,g[5903]=23604,g[5906]=23612,g[5905]=23612,g[5908]=23620,g[5907]=23620,g[5910]=23628,g[5909]=23628,g[5912]=23636,g[5911]=23636,g[5914]=23644,g[5913]=23644,g[5916]=23652,g[5915]=23652,g[5918]=23660,g[5917]=23660,g[5920]=23668,g[5919]=23668,g[5922]=23676,g[5921]=23676,g[5924]=23684,g[5923]=23684,g[5926]=23692,g[5925]=23692,g[5928]=23700,g[5927]=23700,g[5930]=23708,g[5929]=23708,g[5932]=23716,g[5931]=23716,oe=D+-40|0,Y=P+8|0,Y=(Y&7|0)==0?0:0-Y&7,re=P+Y|0,Y=oe-Y|0,g[5863]=re,g[5860]=Y,g[re+4>>2]=Y|1,g[P+oe+4>>2]=40,g[5864]=g[5979];while(!1);if(_=g[5860]|0,_>>>0>E>>>0)return Y=_-E|0,g[5860]=Y,oe=g[5863]|0,re=oe+E|0,g[5863]=re,g[re+4>>2]=Y|1,g[oe+4>>2]=E|3,oe=oe+8|0,Ie=xe,oe|0}return oe=bu()|0,g[oe>>2]=12,oe=0,Ie=xe,oe|0}function zr(y){y=y|0;var _=0,b=0,w=0,S=0,P=0,D=0,c=0,d=0;if(y){b=y+-8|0,S=g[5861]|0,y=g[y+-4>>2]|0,_=y&-8,d=b+_|0;do if(y&1)c=b,D=b;else{if(w=g[b>>2]|0,!(y&3)||(D=b+(0-w)|0,P=w+_|0,D>>>0<S>>>0))return;if((g[5862]|0)==(D|0)){if(y=d+4|0,_=g[y>>2]|0,(_&3|0)!=3){c=D,_=P;break}g[5859]=P,g[y>>2]=_&-2,g[D+4>>2]=P|1,g[D+P>>2]=P;return}if(b=w>>>3,w>>>0<256)if(y=g[D+8>>2]|0,_=g[D+12>>2]|0,(_|0)==(y|0)){g[5857]=g[5857]&~(1<<b),c=D,_=P;break}else{g[y+12>>2]=_,g[_+8>>2]=y,c=D,_=P;break}S=g[D+24>>2]|0,y=g[D+12>>2]|0;do if((y|0)==(D|0)){if(_=D+16|0,b=_+4|0,y=g[b>>2]|0,y)_=b;else if(y=g[_>>2]|0,!y){y=0;break}for(;;)if(w=y+20|0,b=g[w>>2]|0,b)y=b,_=w;else if(w=y+16|0,b=g[w>>2]|0,b)y=b,_=w;else break;g[_>>2]=0}else c=g[D+8>>2]|0,g[c+12>>2]=y,g[y+8>>2]=c;while(!1);if(S){if(_=g[D+28>>2]|0,b=23732+(_<<2)|0,(g[b>>2]|0)==(D|0)){if(g[b>>2]=y,!y){g[5858]=g[5858]&~(1<<_),c=D,_=P;break}}else if(c=S+16|0,g[((g[c>>2]|0)==(D|0)?c:S+20|0)>>2]=y,!y){c=D,_=P;break}g[y+24>>2]=S,_=D+16|0,b=g[_>>2]|0,b|0&&(g[y+16>>2]=b,g[b+24>>2]=y),_=g[_+4>>2]|0,_?(g[y+20>>2]=_,g[_+24>>2]=y,c=D,_=P):(c=D,_=P)}else c=D,_=P}while(!1);if(!(D>>>0>=d>>>0)&&(y=d+4|0,w=g[y>>2]|0,!!(w&1))){if(w&2)g[y>>2]=w&-2,g[c+4>>2]=_|1,g[D+_>>2]=_,S=_;else{if((g[5863]|0)==(d|0)){if(d=(g[5860]|0)+_|0,g[5860]=d,g[5863]=c,g[c+4>>2]=d|1,(c|0)!=(g[5862]|0))return;g[5862]=0,g[5859]=0;return}if((g[5862]|0)==(d|0)){d=(g[5859]|0)+_|0,g[5859]=d,g[5862]=D,g[c+4>>2]=d|1,g[D+d>>2]=d;return}S=(w&-8)+_|0,b=w>>>3;do if(w>>>0<256)if(_=g[d+8>>2]|0,y=g[d+12>>2]|0,(y|0)==(_|0)){g[5857]=g[5857]&~(1<<b);break}else{g[_+12>>2]=y,g[y+8>>2]=_;break}else{P=g[d+24>>2]|0,y=g[d+12>>2]|0;do if((y|0)==(d|0)){if(_=d+16|0,b=_+4|0,y=g[b>>2]|0,y)_=b;else if(y=g[_>>2]|0,!y){b=0;break}for(;;)if(w=y+20|0,b=g[w>>2]|0,b)y=b,_=w;else if(w=y+16|0,b=g[w>>2]|0,b)y=b,_=w;else break;g[_>>2]=0,b=y}else b=g[d+8>>2]|0,g[b+12>>2]=y,g[y+8>>2]=b,b=y;while(!1);if(P|0){if(y=g[d+28>>2]|0,_=23732+(y<<2)|0,(g[_>>2]|0)==(d|0)){if(g[_>>2]=b,!b){g[5858]=g[5858]&~(1<<y);break}}else if(w=P+16|0,g[((g[w>>2]|0)==(d|0)?w:P+20|0)>>2]=b,!b)break;g[b+24>>2]=P,y=d+16|0,_=g[y>>2]|0,_|0&&(g[b+16>>2]=_,g[_+24>>2]=b),y=g[y+4>>2]|0,y|0&&(g[b+20>>2]=y,g[y+24>>2]=b)}}while(!1);if(g[c+4>>2]=S|1,g[D+S>>2]=S,(c|0)==(g[5862]|0)){g[5859]=S;return}}if(y=S>>>3,S>>>0<256){b=23468+(y<<1<<2)|0,_=g[5857]|0,y=1<<y,_&y?(_=b+8|0,y=g[_>>2]|0):(g[5857]=_|y,y=b,_=b+8|0),g[_>>2]=c,g[y+12>>2]=c,g[c+8>>2]=y,g[c+12>>2]=b;return}y=S>>>8,y?S>>>0>16777215?w=31:(D=(y+1048320|0)>>>16&8,d=y<<D,P=(d+520192|0)>>>16&4,d=d<<P,w=(d+245760|0)>>>16&2,w=14-(P|D|w)+(d<<w>>>15)|0,w=S>>>(w+7|0)&1|w<<1):w=0,y=23732+(w<<2)|0,g[c+28>>2]=w,g[c+20>>2]=0,g[c+16>>2]=0,_=g[5858]|0,b=1<<w;e:do if(!(_&b))g[5858]=_|b,g[y>>2]=c,g[c+24>>2]=y,g[c+12>>2]=c,g[c+8>>2]=c;else{y=g[y>>2]|0;t:do if((g[y+4>>
42022]&-8|0)!=(S|0)){for(w=S<<((w|0)==31?0:25-(w>>>1)|0);b=y+16+(w>>>31<<2)|0,_=g[b>>2]|0,!!_;)if((g[_+4>>2]&-8|0)==(S|0)){y=_;break t}else w=w<<1,y=_;g[b>>2]=c,g[c+24>>2]=y,g[c+12>>2]=c,g[c+8>>2]=c;break e}while(!1);D=y+8|0,d=g[D>>2]|0,g[d+12>>2]=c,g[D>>2]=c,g[c+8>>2]=d,g[c+12>>2]=y,g[c+24>>2]=0}while(!1);if(d=(g[5865]|0)+-1|0,g[5865]=d,!(d|0)){for(y=23884;y=g[y>>2]|0,y;)y=y+8|0;g[5865]=-1}}}}function oo(y,_){y=y|0,_=_|0;var b=0;return y?(b=Xr(_,y)|0,(_|y)>>>0>65535&&(b=((b>>>0)/(y>>>0)|0|0)==(_|0)?b:-1)):b=0,y=qn(b)|0,!y||!(g[y+-4>>2]&3)||na(y|0,0,b|0)|0,y|0}function An(y,_,b,w){return y=y|0,_=_|0,b=b|0,w=w|0,b=y+b>>>0,dr(_+w+(b>>>0<y>>>0|0)>>>0|0),b|0|0}function Jr(y,_,b,w){return y=y|0,_=_|0,b=b|0,w=w|0,w=_-w-(b>>>0>y>>>0|0)>>>0,dr(w|0),y-b>>>0|0|0}function ki(y){return y=y|0,(y?31-(qr(y^y-1)|0)|0:32)|0}function xu(y,_,b,w,S){y=y|0,_=_|0,b=b|0,w=w|0,S=S|0;var P=0,D=0,c=0,d=0,h=0,m=0,E=0,M=0,R=0,L=0;if(m=y,d=_,h=d,D=b,M=w,c=M,!h)return P=(S|0)!=0,c?P?(g[S>>2]=y|0,g[S+4>>2]=_&0,M=0,S=0,dr(M|0),S|0):(M=0,S=0,dr(M|0),S|0):(P&&(g[S>>2]=(m>>>0)%(D>>>0),g[S+4>>2]=0),M=0,S=(m>>>0)/(D>>>0)>>>0,dr(M|0),S|0);P=(c|0)==0;do if(D){if(!P){if(P=(qr(c|0)|0)-(qr(h|0)|0)|0,P>>>0<=31){E=P+1|0,c=31-P|0,_=P-31>>31,D=E,y=m>>>(E>>>0)&_|h<<c,_=h>>>(E>>>0)&_,P=0,c=m<<c;break}return S?(g[S>>2]=y|0,g[S+4>>2]=d|_&0,M=0,S=0,dr(M|0),S|0):(M=0,S=0,dr(M|0),S|0)}if(P=D-1|0,P&D|0){c=(qr(D|0)|0)+33-(qr(h|0)|0)|0,L=64-c|0,E=32-c|0,d=E>>31,R=c-32|0,_=R>>31,D=c,y=E-1>>31&h>>>(R>>>0)|(h<<E|m>>>(c>>>0))&_,_=_&h>>>(c>>>0),P=m<<L&d,c=(h<<L|m>>>(R>>>0))&d|m<<E&c-33>>31;break}return S|0&&(g[S>>2]=P&m,g[S+4>>2]=0),(D|0)==1?(R=d|_&0,L=y|0|0,dr(R|0),L|0):(L=ki(D|0)|0,R=h>>>(L>>>0)|0,L=h<<32-L|m>>>(L>>>0)|0,dr(R|0),L|0)}else{if(P)return S|0&&(g[S>>2]=(h>>>0)%(D>>>0),g[S+4>>2]=0),R=0,L=(h>>>0)/(D>>>0)>>>0,dr(R|0),L|0;if(!m)return S|0&&(g[S>>2]=0,g[S+4>>2]=(h>>>0)%(c>>>0)),R=0,L=(h>>>0)/(c>>>0)>>>0,dr(R|0),L|0;if(P=c-1|0,!(P&c))return S|0&&(g[S>>2]=y|0,g[S+4>>2]=P&h|_&0),R=0,L=h>>>((ki(c|0)|0)>>>0),dr(R|0),L|0;if(P=(qr(c|0)|0)-(qr(h|0)|0)|0,P>>>0<=30){_=P+1|0,c=31-P|0,D=_,y=h<<c|m>>>(_>>>0),_=h>>>(_>>>0),P=0,c=m<<c;break}return S?(g[S>>2]=y|0,g[S+4>>2]=d|_&0,R=0,L=0,dr(R|0),L|0):(R=0,L=0,dr(R|0),L|0)}while(!1);if(!D)h=c,d=0,c=0;else{E=b|0|0,m=M|w&0,h=An(E|0,m|0,-1,-1)|0,b=Be()|0,d=c,c=0;do w=d,d=P>>>31|d<<1,P=c|P<<1,w=y<<1|w>>>31|0,M=y>>>31|_<<1|0,Jr(h|0,b|0,w|0,M|0)|0,L=Be()|0,R=L>>31|((L|0)<0?-1:0)<<1,c=R&1,y=Jr(w|0,M|0,R&E|0,(((L|0)<0?-1:0)>>31|((L|0)<0?-1:0)<<1)&m|0)|0,_=Be()|0,D=D-1|0;while((D|0)!=0);h=d,d=0}return D=0,S|0&&(g[S>>2]=y,g[S+4>>2]=_),R=(P|0)>>>31|(h|D)<<1|(D<<1|P>>>31)&0|d,L=(P<<1|0)&-2|c,dr(R|0),L|0}function Hs(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0;return h=_>>31|((_|0)<0?-1:0)<<1,d=((_|0)<0?-1:0)>>31|((_|0)<0?-1:0)<<1,P=w>>31|((w|0)<0?-1:0)<<1,S=((w|0)<0?-1:0)>>31|((w|0)<0?-1:0)<<1,c=Jr(h^y|0,d^_|0,h|0,d|0)|0,D=Be()|0,y=P^h,_=S^d,Jr((xu(c,D,Jr(P^b|0,S^w|0,P|0,S|0)|0,Be()|0,0)|0)^y|0,(Be()|0)^_|0,y|0,_|0)|0}function wf(y,_){y=y|0,_=_|0;var b=0,w=0,S=0,P=0;return P=y&65535,S=_&65535,b=Xr(S,P)|0,w=y>>>16,y=(b>>>16)+(Xr(S,w)|0)|0,S=_>>>16,_=Xr(S,P)|0,dr((y>>>16)+(Xr(S,w)|0)+(((y&65535)+_|0)>>>16)|0),y+_<<16|b&65535|0|0}function di(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0;return S=y,P=b,b=wf(S,P)|0,y=Be()|0,dr((Xr(_,P)|0)+(Xr(w,S)|0)+y|y&0|0),b|0|0|0}function os(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0,D=0,c=0,d=0,h=0;return S=Ie,Ie=Ie+16|0,c=S|0,D=_>>31|((_|0)<0?-1:0)<<1,P=((_|0)<0?-1:0)>>31|((_|0)<0?-1:0)<<1,h=w>>31|((w|0)<0?-1:0)<<1,d=((w|0)<0?-1:0)>>31|((w|0)<0?-1:0)<<1,y=Jr(D^y|0,P^_|0,D|0,P|0)|0,_=Be()|0,xu(y,_,Jr(h^b|0,d^w|0,h|0,d|0)|0,Be()|0,c)|0,w=Jr(g[c>>2]^D|0,g[c+4>>2]^P|0,D|0,P|0)|0,b=Be()|0,Ie=S,dr(b|0),w|0}function To(y,_,b,w){y=y|0,_=_|0,b=b|0,w=w|0;var S=0,P=0;return P=Ie,Ie=Ie+16|0,S=P|0,xu(y,_,b,w,S)|0,Ie=P,dr(g[S+4>>2]|0),g[S>>2]|0|0}function Eo(y,_,b){return y=y|0,_=_|0,b=b|0,(b|0)<32?(dr(_>>b|0),y>>>b|(_&(1<<b)-1)<<32-b):(dr(((_|0)<0?-1:0)|0),_>>b-32|0)}function Xt(y,_,b){return y=y|0,_=_|0,b=b|0,(b|0)<32?(dr(_>>>b|0),y>>>b|(_&(1<<b)-1)<<32-b):(dr(0),_>>>b-32|0)}function rr(y,_,b){return y=y|0,_=_|0,b=b|0,(b|0)<32?(dr(_<<b|(y&(1<<b)-1<<32-b)>>>32-b|0),y<<b):(dr(y<<b-32|0),0)}function Vl(y,_){return y=+y,_=+_,y!=y?+_:_!=_?+y:+mi(+y,+_)}function Pc(y,_){return y=+y,_=+_,y!=y?+_:_!=_?+y:+jr(+y,+_)}function ra(y){return y=+y,y>=0?+Ct(y+.5):+$r(y-.5)}function Do(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0;if((b|0)>=8192)return _a(y|0,_|0,b|0)|0,y|0;if(P=y|0,S=y+b|0,(y&3)==(_&3)){for(;y&3;){if(!b)return P|0;Se[y>>0]=Se[_>>0]|0,y=y+1|0,_=_+1|0,b=b-1|0}for(b=S&-4|0,w=b-64|0;(y|0)<=(w|0);)g[y>>2]=g[_>>2],g[y+4>>2]=g[_+4>>2],g[y+8>>2]=g[_+8>>2],g[y+12>>2]=g[_+12>>2],g[y+16>>2]=g[_+16>>2],g[y+20>>2]=g[_+20>>2],g[y+24>>2]=g[_+24>>2],g[y+28>>2]=g[_+28>>2],g[y+32>>2]=g[_+32>>2],g[y+36>>2]=g[_+36>>2],g[y+40>>2]=g[_+40>>2],g[y+44>>2]=g[_+44>>2],g[y+48>>
42022]=g[_+48>>2],g[y+52>>2]=g[_+52>>2],g[y+56>>2]=g[_+56>>2],g[y+60>>2]=g[_+60>>2],y=y+64|0,_=_+64|0;for(;(y|0)<(b|0);)g[y>>2]=g[_>>2],y=y+4|0,_=_+4|0}else for(b=S-4|0;(y|0)<(b|0);)Se[y>>0]=Se[_>>0]|0,Se[y+1>>0]=Se[_+1>>0]|0,Se[y+2>>0]=Se[_+2>>0]|0,Se[y+3>>0]=Se[_+3>>0]|0,y=y+4|0,_=_+4|0;for(;(y|0)<(S|0);)Se[y>>0]=Se[_>>0]|0,y=y+1|0,_=_+1|0;return P|0}function na(y,_,b){y=y|0,_=_|0,b=b|0;var w=0,S=0,P=0,D=0;if(P=y+b|0,_=_&255,(b|0)>=67){for(;y&3;)Se[y>>0]=_,y=y+1|0;for(w=P&-4|0,D=_|_<<8|_<<16|_<<24,S=w-64|0;(y|0)<=(S|0);)g[y>>2]=D,g[y+4>>2]=D,g[y+8>>2]=D,g[y+12>>2]=D,g[y+16>>2]=D,g[y+20>>2]=D,g[y+24>>2]=D,g[y+28>>2]=D,g[y+32>>2]=D,g[y+36>>2]=D,g[y+40>>2]=D,g[y+44>>2]=D,g[y+48>>2]=D,g[y+52>>2]=D,g[y+56>>2]=D,g[y+60>>2]=D,y=y+64|0;for(;(y|0)<(w|0);)g[y>>2]=D,y=y+4|0}for(;(y|0)<(P|0);)Se[y>>0]=_,y=y+1|0;return P-b|0}function ia(y){return y=+y,y>=0?+Ct(y+.5):+$r(y-.5)}function ys(y){y=y|0;var _=0,b=0,w=0;return w=Wi()|0,b=g[Je>>2]|0,_=b+y|0,(y|0)>0&(_|0)<(b|0)|(_|0)<0?(Wn(_|0)|0,tn(12),-1):(_|0)>(w|0)&&!(ci(_|0)|0)?(tn(12),-1):(g[Je>>2]=_,b|0)}return{___divdi3:Hs,___muldi3:di,___remdi3:os,___uremdi3:To,_areNeighborCells:Ea,_bitshift64Ashr:Eo,_bitshift64Lshr:Xt,_bitshift64Shl:rr,_calloc:oo,_cellAreaKm2:Ln,_cellAreaM2:js,_cellAreaRads2:fn,_cellToBoundary:Dl,_cellToCenterChild:Fp,_cellToChildPos:du,_cellToChildren:Fn,_cellToChildrenSize:xc,_cellToLatLng:Ol,_cellToLocalIj:Oh,_cellToParent:Zo,_cellToVertex:Gr,_cellToVertexes:Oo,_cellsToDirectedEdge:qa,_cellsToLinkedMultiPolygon:br,_childPosToCell:kp,_compactCells:Ml,_destroyLinkedMultiPolygon:Nl,_directedEdgeToBoundary:ou,_directedEdgeToCells:Eh,_edgeLengthKm:kl,_edgeLengthM:Sc,_edgeLengthRads:Cc,_emscripten_replace_memory:Ho,_free:zr,_getBaseCellNumber:Af,_getDirectedEdgeDestination:Ca,_getDirectedEdgeOrigin:Ja,_getHexagonAreaAvgKm2:Rh,_getHexagonAreaAvgM2:nl,_getHexagonEdgeLengthAvgKm:Xn,_getHexagonEdgeLengthAvgM:gu,_getIcosahedronFaces:Fl,_getNumCells:Yo,_getPentagons:wc,_getRes0Cells:wh,_getResolution:Ka,_greatCircleDistanceKm:rl,_greatCircleDistanceM:gf,_greatCircleDistanceRads:Au,_gridDisk:Rn,_gridDiskDistances:ms,_gridDistance:or,_gridPathCells:mu,_gridPathCellsSize:Is,_gridRingUnsafe:be,_i64Add:An,_i64Subtract:Jr,_isPentagon:On,_isResClassIII:Mh,_isValidCell:Ko,_isValidDirectedEdge:Th,_isValidVertex:qi,_latLngToCell:Ya,_llvm_maxnum_f64:Vl,_llvm_minnum_f64:Pc,_llvm_round_f64:ra,_localIjToCell:xi,_malloc:qn,_maxFaceCount:el,_maxGridDiskSize:Si,_maxPolygonToCellsSize:Me,_memcpy:Do,_memset:na,_originToDirectedEdges:Bn,_pentagonCount:hu,_polygonToCells:gt,_readInt64AsDoubleFromPointer:Ps,_res0CellCount:_c,_round:ia,_sbrk:ys,_sizeOfCellBoundary:vf,_sizeOfCoordIJ:vu,_sizeOfGeoLoop:no,_sizeOfGeoPolygon:Bs,_sizeOfH3Index:yf,_sizeOfLatLng:_u,_sizeOfLinkedGeoPolygon:yu,_uncompactCells:Ph,_uncompactCellsSize:Lp,_vertexToLatLng:io,establishStackSpace:ui,stackAlloc:$n,stackRestore:Fi,stackSave:Wo}})(Ae,Vt,pe);e.___divdi3=Et.___divdi3,e.___muldi3=Et.___muldi3,e.___remdi3=Et.___remdi3,e.___uremdi3=Et.___uremdi3,e._areNeighborCells=Et._areNeighborCells,e._bitshift64Ashr=Et._bitshift64Ashr,e._bitshift64Lshr=Et._bitshift64Lshr,e._bitshift64Shl=Et._bitshift64Shl,e._calloc=Et._calloc,e._cellAreaKm2=Et._cellAreaKm2,e._cellAreaM2=Et._cellAreaM2,e._cellAreaRads2=Et._cellAreaRads2,e._cellToBoundary=Et._cellToBoundary,e._cellToCenterChild=Et._cellToCenterChild,e._cellToChildPos=Et._cellToChildPos,e._cellToChildren=Et._cellToChildren,e._cellToChildrenSize=Et._cellToChildrenSize,e._cellToLatLng=Et._cellToLatLng,e._cellToLocalIj=Et._cellToLocalIj,e._cellToParent=Et._cellToParent,e._cellToVertex=Et._cellToVertex,e._cellToVertexes=Et._cellToVertexes,e._cellsToDirectedEdge=Et._cellsToDirectedEdge,e._cellsToLinkedMultiPolygon=Et._cellsToLinkedMultiPolygon,e._childPosToCell=Et._childPosToCell,e._compactCells=Et._compactCells,e._destroyLinkedMultiPolygon=Et._destroyLinkedMultiPolygon,e._directedEdgeToBoundary=Et._directedEdgeToBoundary,e._directedEdgeToCells=Et._directedEdgeToCells,e._edgeLengthKm=Et._edgeLengthKm,e._edgeLengthM=Et._edgeLengthM,e._edgeLengthRads=Et._edgeLengthRads;var H=e._emscripten_replace_memory=Et._emscripten_replace_memory;e._free=Et._free,e._getBaseCellNumber=Et._getBaseCellNumber,e._getDirectedEdgeDestination=Et._getDirectedEdgeDestination,e._getDirectedEdgeOrigin=Et._getDirectedEdgeOrigin,e._getHexagonAreaAvgKm2=Et._getHexagonAreaAvgKm2,e._getHexagonAreaAvgM2=Et._getHexagonAreaAvgM2,e._getHexagonEdgeLengthAvgKm=Et._getHexagonEdgeLengthAvgKm,e._getHexagonEdgeLengthAvgM=Et._getHexagonEdgeLengthAvgM,e._getIcosahedronFaces=Et._getIcosahedronFaces,e._getNumCells=Et._getNumCells,e._getPentagons=Et._getPentagons,e._getRes0Cells=Et._getRes0Cells,e._getResolution=Et._getResolution,e._greatCircleDistanceKm=Et._greatCircleDistanceKm,e._greatCircleDistanceM=Et._greatCircleDistanceM,e._greatCircleDistanceRads=Et._greatCircleDistanceRads,e._gridDisk=Et._gridDisk,e._gridDiskDistances=Et._gridDiskDistances,e._gridDistance=Et._gridDistance,e._gridPathCells=Et._gridPathCells,e._gridPathCellsSize=Et._gridPathCellsSize,e._gridRingUnsafe=Et._gridRingUnsafe,e._i64Add=Et._i64Add,e._i64Subtract=Et._i64Subtract,e._isPentagon=Et._isPentagon,e._isResClassIII=Et._isResClassIII,e._isValidCell=Et._isValidCell,e._isValidDirectedEdge=Et._isValidDirectedEdge,e._isValidVertex=Et._isValidVertex,e._latLngToCell=Et._latLngToCell,e._llvm_maxnum_f64=Et._llvm_maxnum_f64,e._llvm_minnum_f64=Et._llvm_minnum_f64,e._llvm_round_f64=Et._llvm_round_f64,e._localIjToCell=Et._localIjToCell,e._malloc=Et._malloc,e._maxFaceCount=Et._maxFaceCount,e._maxGridDiskSize=Et._maxGridDiskSize,e._maxPolygonToCellsSize=Et._maxPolygonToCellsSize,e._memcpy=Et._memcpy,e._memset=Et._memset,e._originToDirectedEdges=Et._originToDirectedEdges,e._pentagonCount=Et._pentagonCount,e._polygonToCells=Et._polygonToCells,e._readInt64AsDoubleFromPointer=Et._readInt64AsDoubleFromPointer,e._res0CellCount=Et._res0CellCount,e._round=Et._round,e._sbrk=Et._sbrk,e._sizeOfCellBoundary=Et._sizeOfCellBoundary,e._sizeOfCoordIJ=Et._sizeOfCoordIJ,e._sizeOfGeoLoop=Et._sizeOfGeoLoop,e._sizeOfGeoPolygon=Et._sizeOfGeoPolygon,e._sizeOfH3Index=Et._sizeOfH3Index,e._sizeOfLatLng=Et._sizeOfLatLng,e._sizeOfLinkedGeoPolygon=Et._sizeOfLinkedGeoPolygon,e._uncompactCells=Et._uncompactCells,e._uncompactCellsSize=Et._uncompactCellsSize,e._vertexToLatLng=Et._vertexToLatLng,e.establishStackSpace=Et.establishStackSpace;var vt=e.stackAlloc=Et.stackAlloc,St=e.stackRestore=Et.stackRestore,Te=e.stackSave=Et.stackSave;if(e.asm=Et,e.cwrap=X,e.setValue=F,e.getValue=N,mn){Hn(mn)||(mn=s(mn));{li();var Xe=function(he){he.byteLength&&(he=new Uint8Array(he)),te.set(he,I),e.memoryInitializerRequest&&delete e.memoryInitializerRequest.response,Yn()},ut=function(){o(mn,Xe,function(){throw"could not load memory initializer "+mn})},Z=Rt(mn);if(Z)Xe(Z.buffer);else if(e.memoryInitializerRequest){var ne=function(){var he=e.memoryInitializerRequest,ve=he.response;if(he.status!==200&&he.status!==0){var ae=Rt(e.memoryInitializerRequestURL);if(ae)ve=ae.buffer;else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+he.status+", retrying "+mn),ut();return}}Xe(ve)};e.memoryInitializerRequest.response?setTimeout(ne,0):e.memoryInitializerRequest.addEventListener("load",ne)}else ut()}}var ce;Dr=function he(){ce||ye(),ce||(Dr=he)};function ye(he){if(un>0||(Qt(),un>0))return;function ve(){ce||(ce=!0,!U&&(Jt(),Nt(),e.onRuntimeInitialized&&e.onRuntimeInitialized(),Ar()))}e.setStatus?(e.setStatus("Running..."),setTimeout(function(){setTimeout(function(){e.setStatus("")},1),ve()},1)):ve()}e.run=ye;function Le(he){throw e.onAbort&&e.onAbort(he),he+="",l(he),f(he),U=!0,"abort("+he+"). Build with -s ASSERTIONS=1 for more info."}if(e.abort=Le,e.preInit)for(typeof e.preInit=="function"&&(e.preInit=[e.preInit]);e.preInit.length>0;)e.preInit.pop()();return ye(),r})(typeof Nr=="object"?Nr:{}),_n="number",an=_n,mA=_n,dn=_n,pn=_n,ho=_n,Or=_n,sce=[["sizeOfH3Index",_n],["sizeOfLatLng",_n],["sizeOfCellBoundary",_n],["sizeOfGeoLoop",_n],["sizeOfGeoPolygon",_n],["sizeOfLinkedGeoPolygon",_n],["sizeOfCoordIJ",_n],["readInt64AsDoubleFromPointer",_n],["isValidCell",mA,[dn,pn]],["latLngToCell",an,[_n,_n,ho,Or]],["cellToLatLng",an,[dn,pn,Or]],["cellToBoundary",an,[dn,pn,Or]],["maxGridDiskSize",an,[_n,Or]],["gridDisk",an,[dn,pn,_n,Or]],["gridDiskDistances",an,[dn,pn,_n,Or,Or]],["gridRingUnsafe",an,[dn,pn,_n,Or]],["maxPolygonToCellsSize",an,[Or,ho,_n,Or]],["polygonToCells",an,[Or,ho,_n,Or]],["cellsToLinkedMultiPolygon",an,[Or,_n,Or]],["destroyLinkedMultiPolygon",null,[Or]],["compactCells",an,[Or,Or,_n,_n]],["uncompactCells",an,[Or,_n,_n,Or,_n,ho]],["uncompactCellsSize",an,[Or,_n,_n,ho,Or]],["isPentagon",mA,[dn,pn]],["isResClassIII",mA,[dn,pn]],["getBaseCellNumber",_n,[dn,pn]],["getResolution",_n,[dn,pn]],["maxFaceCount",an,[dn,pn,Or]],["getIcosahedronFaces",an,[dn,pn,Or]],["cellToParent",an,[dn,pn,ho,Or]],["cellToChildren",an,[dn,pn,ho,Or]],["cellToCenterChild",an,[dn,pn,ho,Or]],["cellToChildrenSize",an,[dn,pn,ho,Or]],["cellToChildPos",an,[dn,pn,ho,Or]],["childPosToCell",an,[_n,_n,dn,pn,ho,Or]],["areNeighborCells",an,[dn,pn,dn,pn,Or]],["cellsToDirectedEdge",an,[dn,pn,dn,pn,Or]],["getDirectedEdgeOrigin",an,[dn,pn,Or]],["getDirectedEdgeDestination",an,[dn,pn,Or]],["isValidDirectedEdge",mA,[dn,pn]],["directedEdgeToCells",an,[dn,pn,Or]],["originToDirectedEdges",an,[dn,pn,Or]],["directedEdgeToBoundary",an,[dn,pn,Or]],["gridDistance",an,[dn,pn,dn,pn,Or]],["gridPathCells",an,[dn,pn,dn,pn,Or]],["gridPathCellsSize",an,[dn,pn,dn,pn,Or]],["cellToLocalIj",an,[dn,pn,dn,pn,_n,Or]],["localIjToCell",an,[dn,pn,Or,_n,Or]],["getHexagonAreaAvgM2",an,[ho,Or]],["getHexagonAreaAvgKm2",an,[ho,Or]],["getHexagonEdgeLengthAvgM",an,[ho,Or]],["getHexagonEdgeLengthAvgKm",an,[ho,Or]],["greatCircleDistanceM",_n,[Or,Or]],["greatCircleDistanceKm",_n,[Or,Or]],["greatCircleDistanceRads",_n,[Or,Or]],["cellAreaM2",an,[dn,pn,Or]],["cellAreaKm2",an,[dn,pn,Or]],["cellAreaRads2",an,[dn,pn,Or]],["edgeLengthM",an,[dn,pn,Or]],["edgeLengthKm",an,[dn,pn,Or]],["edgeLengthRads",an,[dn,pn,Or]],["getNumCells",an,[ho,Or]],["getRes0Cells",an,[Or]],["res0CellCount",_n],["getPentagons",an,[_n,Or]],["pentagonCount",_n],["cellToVertex",an,[dn,pn,_n,Or]],["cellToVertexes",an,[dn,pn,Or]],["vertexToLatLng",an,[dn,pn,Or]],["isValidVertex",mA,[dn,pn]]],oce=0,ace=1,lce=2,cce=3,CL=4,uce=5,fce=6,hce=7,dce=8,pce=9,Ace=10,gce=11,mce=12,_ce=13,yce=14,vce=15,Ys={};Ys[oce]="Success";Ys[ace]="The operation failed but a more specific error is not available";Ys[lce]="Argument was outside of acceptable range";Ys[cce]="Latitude or longitude arguments were outside of acceptable range";Ys[CL]="Resolution argument was outside of acceptable range";
4202Ys[uce]="Cell argument was not valid";Ys[fce]="Directed edge argument was not valid";Ys[hce]="Undirected edge argument was not valid";Ys[dce]="Vertex argument was not valid";Ys[pce]="Pentagon distortion was encountered";Ys[Ace]="Duplicate input";Ys[gce]="Cell arguments were not neighbors";Ys[mce]="Cell arguments had incompatible resolutions";Ys[_ce]="Memory allocation failed";Ys[yce]="Bounds of provided memory were insufficient";Ys[vce]="Mode or flags argument was not valid";var Cw=1e3,SL=1001,IL=1002,ty={};ty[Cw]="Unknown unit";ty[SL]="Array length out of bounds";ty[IL]="Got unexpected null value for H3 index";var bce="Unknown error";function BL(r,e,t){var n=t&&"value"in t,i=new Error((r[e]||bce)+" (code: "+e+(n?", value: "+t.value:"")+")");return i.code=e,i}function PL(r,e){var t=arguments.length===2?{value:e}:{};return BL(Ys,r,t)}function ry(r,e){var t=arguments.length===2?{value:e}:{};return BL(ty,r,t)}function _o(r){if(r!==0)throw PL(r)}var ai={};sce.forEach(function(e){ai[e[0]]=Nr.cwrap.apply(Nr,e)});var qd=16,yp=4,iP=4,hc=8,Sw=8,Yu=ai.sizeOfH3Index(),Iw=ai.sizeOfLatLng(),xce=ai.sizeOfCellBoundary(),wce=ai.sizeOfGeoPolygon(),XA=ai.sizeOfGeoLoop(),Tce=ai.sizeOfLinkedGeoPolygon();ai.sizeOfCoordIJ();var op={m:"m",m2:"m2",km:"km",km2:"km2",rads:"rads",rads2:"rads2"};function ML(r){if(typeof r!="number"||r<0||r>15||Math.floor(r)!==r)throw PL(CL,r);return r}function RL(r){if(!r)throw ry(IL);return r}var Ece=Math.pow(2,32)-1;function OL(r){if(r>Ece)throw ry(SL,r);return r}var Cce=/[^0-9a-fA-F]/;function Cl(r){if(Array.isArray(r)&&r.length===2&&Number.isInteger(r[0])&&Number.isInteger(r[1]))return r;if(typeof r!="string"||Cce.test(r))return[0,0];var e=parseInt(r.substring(0,r.length-8),qd),t=parseInt(r.substring(r.length-8),qd);return[t,e]}function sP(r){if(r>=0)return r.toString(qd);r=r&2147483647;var e=DL(8,r.toString(qd)),t=(parseInt(e[0],qd)+8).toString(qd);return e=t+e.substring(1),e}function Sce(r,e){return sP(e)+DL(8,sP(r))}function DL(r,e){for(var t=r-e.length,n="",i=0;i<t;i++)n+="0";return n=n+e,n}function oP(r,e,t){for(var n=r.length,i=Nr._calloc(n,Iw),s=t?1:0,o=t?0:1,l=0;l<n*2;l+=2)Nr.HEAPF64.set([r[l/2][s],r[l/2][o]].map(UL),i/hc+l);return Nr.HEAPU32.set([n,i],e/yp),e}function Ice(r,e){var t=r.length-1,n=Nr._calloc(wce),i=0,s=i+XA,o=s+yp;oP(r[0],n+i,e);var l;if(t>0){l=Nr._calloc(t,XA);for(var f=0;f<t;f++)oP(r[f+1],l+XA*f,e)}return Nr.setValue(n+s,t,"i32"),Nr.setValue(n+o,l,"i32"),n}function Bce(r){var e=0,t=e+XA,n=t+yp,i=yp;Nr._free(Nr.getValue(r+e+i,"i8*"));var s=Nr.getValue(r+t,"i32");if(s>0){for(var o=Nr.getValue(r+n,"i32"),l=0;l<s;l++)Nr._free(Nr.getValue(o+XA*l+i,"i8*"));Nr._free(o)}Nr._free(r)}function Bw(r,e){e===void 0&&(e=0);var t=Nr.getValue(r+Yu*e,"i32"),n=Nr.getValue(r+Yu*e+yp,"i32");return n?Sce(t,n):null}function FL(r,e){return e===void 0&&(e=0),Nr.getValue(r+hc*e,"double")}function Pw(r){return ai.readInt64AsDoubleFromPointer(r)}function Pce(r,e,t){Nr.HEAPU32.set(Cl(r),e/yp+2*t)}function Mw(r,e){for(var t=[],n=0;n<e;n++){var i=Bw(r,n);i!==null&&t.push(i)}return t}function Mce(r,e){for(var t=e.length,n=0;n<t;n++)Pce(e[n],r,n)}function p_(r){return Gce(Nr.getValue(r,"double"))}function LL(r){return[p_(r),p_(r+hc)]}function kL(r){return[p_(r+hc),p_(r)]}function Rce(r,e,t){for(var n=Nr.getValue(r,"i32"),i=r+hc,s=[],o=e?kL:LL,l=0;l<n*2;l+=2)s.push(o(i+hc*l));return t&&s.push(s[0]),s}function Oce(r,e){for(var t=[],n=kL,i,s,o,l;r;){for(t.push(i=[]),s=Nr.getValue(r,"i8*");s;){for(i.push(o=[]),l=Nr.getValue(s,"i8*");l;)o.push(n(l)),l=Nr.getValue(l+hc*2,"i8*");o.push(o[0]),s=Nr.getValue(s+iP*2,"i8*")}r=Nr.getValue(r+iP*2,"i8*")}return t}function Dce(r){var e=Cl(r),t=e[0],n=e[1];return!!ai.isPentagon(t,n)}function A_(r){var e=Cl(r),t=e[0],n=e[1];return ai.isValidCell(t,n)?ai.getResolution(t,n):-1}function Rw(r,e,t){var n=Nr._malloc(Iw);Nr.HEAPF64.set([r,e].map(UL),n/hc);var i=Nr._malloc(Yu);try{return _o(ai.latLngToCell(n,t,i)),RL(Bw(i))}finally{Nr._free(i),Nr._free(n)}}function Ow(r){var e=Nr._malloc(Iw),t=Cl(r),n=t[0],i=t[1];try{return _o(ai.cellToLatLng(n,i,e)),LL(e)}finally{Nr._free(e)}}function NL(r,e){var t=Nr._malloc(xce),n=Cl(r),i=n[0],s=n[1];try{return _o(ai.cellToBoundary(i,s,t)),Rce(t,e,e)}finally{Nr._free(t)}}function Fce(r,e){var t=Cl(r),n=t[0],i=t[1],s=Nr._malloc(Yu);try{return _o(ai.cellToParent(n,i,e,s)),RL(Bw(s))}finally{Nr._free(s)}}function Lce(r,e){var t=Cl(r),n=t[0],i=t[1],s=Nr._malloc(Sw);try{_o(ai.maxGridDiskSize(e,s));var o=OL(Pw(s)),l=Nr._calloc(o,Yu);try{return _o(ai.gridDisk(n,i,e,l)),Mw(l,o)}finally{Nr._free(l)}}finally{Nr._free(s)}}function kce(r,e,t){if(ML(e),t=!!t,r.length===0||r[0].length===0)return[];var n=typeof r[0][0]=="number"?[r]:r,i=Ice(n,t),s=Nr._malloc(Sw);try{_o(ai.maxPolygonToCellsSize(i,e,0,s));var o=OL(Pw(s)),l=Nr._calloc(o,Yu);try{return _o(ai.polygonToCells(i,e,0,l)),Mw(l,o)}finally{Nr._free(l)}}finally{Nr._free(s),Bce(i)}}function Nce(r,e){if(!r||!r.length)return[];var t=r.length,n=Nr._calloc(t,Yu);Mce(n,r);var i=Nr._calloc(Tce);try{return _o(ai.cellsToLinkedMultiPolygon(n,t,i)),Oce(i,e)}finally{ai.destroyLinkedMultiPolygon(i),Nr._free(i),Nr._free(n)}}function Uce(r){var e=Cl(r),t=e[0],n=e[1],i=6,s=Nr._calloc(i,Yu);
4202try{return _o(ai.originToDirectedEdges(t,n,s)),Mw(s,i)}finally{Nr._free(s)}}function zce(r,e){var t=Cl(r),n=t[0],i=t[1],s=Cl(e),o=s[0],l=s[1],f=Nr._malloc(Sw);try{return _o(ai.gridDistance(n,i,o,l,f)),Pw(f)}finally{Nr._free(f)}}function Vce(r,e){var t=Cl(r),n=t[0],i=t[1],s=Nr._malloc(hc);try{switch(e){case op.m:_o(ai.edgeLengthM(n,i,s));break;case op.km:_o(ai.edgeLengthKm(n,i,s));break;case op.rads:_o(ai.edgeLengthRads(n,i,s));break;default:throw ry(Cw,e)}return FL(s)}finally{Nr._free(s)}}function jce(r,e){ML(r);var t=Nr._malloc(hc);try{switch(e){case op.m:_o(ai.getHexagonEdgeLengthAvgM(r,t));break;case op.km:_o(ai.getHexagonEdgeLengthAvgKm(r,t));break;default:throw ry(Cw,e)}return FL(t)}finally{Nr._free(t)}}function UL(r){return r*Math.PI/180}function Gce(r){return r*180/Math.PI}function Dw(r,e){e=e===void 0?r[0][0]:e;for(const t of r){const n=t[0]-e;n>180?t[0]-=360:n<-180&&(t[0]+=360)}}function Hce(r,e,t){const[n,i]=Ow(r),s=e.length;Dw(e,i);const o=e[0]===e[s-1]?s-1:s;for(let l=0;l<o;l++)e[l][0]=wl(i,e[l][0],t),e[l][1]=wl(n,e[l][1],t)}function Wce(r,e,t){const n=r(e,t),[i,s]=Ow(n);return[s,i]}function aP(r,e=1){const t=NL(r,!0);return e!==1?Hce(r,t,e):Dw(t),t}function $ce(r){const e=new Float64Array(r.length*2);let t=0;for(const n of r)e[t++]=n[0],e[t++]=n[1];return e}const Xce=10;function qce(r,e){let t;return r==null?t=e:typeof r=="object"?t={...r,coverage:e}:t={getHexagon:r,coverage:e},t}const Jce={...af.defaultProps,highPrecision:"auto",coverage:{type:"number",min:0,max:1,value:1},centerHexagon:null,getHexagon:{type:"accessor",value:r=>r.hexagon},extruded:!0};class Ac extends Ss{initializeState(){Ac._checkH3Lib(),this.state={edgeLengthKM:0,resolution:-1}}shouldUpdateState({changeFlags:e}){return this._shouldUseHighPrecision()?e.propsOrDataChanged:e.somethingChanged}updateState({props:e,changeFlags:t}){if(e.highPrecision!==!0&&(t.dataChanged||t.updateTriggersChanged&&t.updateTriggersChanged.getHexagon)){const n=this._calculateH3DataProps();this.setState(n)}this._updateVertices(this.context.viewport)}_calculateH3DataProps(){let e=-1,t=!1,n=!1;const{iterable:i,objectInfo:s}=dc(this.props.data);for(const o of i){s.index++;const l=this.props.getHexagon(o,s),f=A_(l);if(e<0){if(e=f,!this.props.highPrecision)break}else if(e!==f){n=!0;break}if(Dce(l)){t=!0;break}}return{resolution:e,edgeLengthKM:e>=0?jce(e,"km"):0,hasMultipleRes:n,hasPentagon:t}}_shouldUseHighPrecision(){if(this.props.highPrecision==="auto"){const{resolution:e,hasPentagon:t,hasMultipleRes:n}=this.state,{viewport:i}=this.context;return!!i?.resolution||n||t||e>=0&&e<=5}return this.props.highPrecision}_updateVertices(e){if(this._shouldUseHighPrecision())return;const{resolution:t,edgeLengthKM:n,centerHex:i}=this.state;if(t<0)return;const s=this.props.centerHexagon||Rw(e.latitude,e.longitude,t);if(i===s)return;if(i)try{if(zce(i,s)*n<Xce)return}catch{}const{unitsPerMeter:o}=e.distanceScales;let l=aP(s);const[f,A]=Ow(s),[v,T]=e.projectFlat([A,f]);l=l.map(I=>{const F=e.projectFlat(I);return[(F[0]-v)/o[0],(F[1]-T)/o[1]]}),this.setState({centerHex:s,vertices:l})}renderLayers(){return this._shouldUseHighPrecision()?this._renderPolygonLayer():this._renderColumnLayer()}_getForwardProps(){const{elevationScale:e,material:t,coverage:n,extruded:i,wireframe:s,stroked:o,filled:l,lineWidthUnits:f,lineWidthScale:A,lineWidthMinPixels:v,lineWidthMaxPixels:T,getFillColor:I,getElevation:F,getLineColor:N,getLineWidth:U,transitions:$,updateTriggers:V}=this.props;return{elevationScale:e,extruded:i,coverage:n,wireframe:s,stroked:o,filled:l,lineWidthUnits:f,lineWidthScale:A,lineWidthMinPixels:v,lineWidthMaxPixels:T,material:t,getElevation:F,getFillColor:I,getLineColor:N,getLineWidth:U,transitions:$,updateTriggers:{getFillColor:V.getFillColor,getElevation:V.getElevation,getLineColor:V.getLineColor,getLineWidth:V.getLineWidth}}}_renderPolygonLayer(){const{data:e,getHexagon:t,updateTriggers:n,coverage:i}=this.props,s=this.getSubLayerClass("hexagon-cell-hifi",af),o=this._getForwardProps();return o.updateTriggers.getPolygon=qce(n.getHexagon,i),new s(o,this.getSubLayerProps({id:"hexagon-cell-hifi",updateTriggers:o.updateTriggers}),{data:e,_normalize:!1,_windingOrder:"CCW",positionFormat:"XY",getPolygon:(l,f)=>{const A=t(l,f);return $ce(aP(A,i))}})}_renderColumnLayer(){const{data:e,getHexagon:t,updateTriggers:n}=this.props,i=this.getSubLayerClass("hexagon-cell",pc),s=this._getForwardProps();return s.updateTriggers.getPosition=n.getHexagon,new i(s,this.get
4202SubLayerProps({id:"hexagon-cell",flatShading:!0,updateTriggers:s.updateTriggers}),{data:e,diskResolution:6,radius:1,vertices:this.state.vertices,getPosition:Wce.bind(null,t)})}}Ac.defaultProps=Jce;Ac.layerName="H3HexagonLayer";Ac._checkH3Lib=()=>{};const Kce={getHexagons:{type:"accessor",value:r=>r.hexagons}};class ny extends lf{initializeState(){Ac._checkH3Lib()}updateState({props:e,changeFlags:t}){if(t.dataChanged||t.updateTriggersChanged&&t.updateTriggersChanged.getHexagons){const{data:n,getHexagons:i}=e,s=[],{iterable:o,objectInfo:l}=dc(n);for(const f of o){l.index++;const A=i(f,l),v=Nce(A,!0);for(const T of v){for(const I of T)Dw(I);s.push(this.getSubLayerRow({polygon:T},f,l.index))}}this.setState({polygons:s})}}indexToBounds(){const{getElevation:e,getFillColor:t,getLineColor:n,getLineWidth:i}=this.props;return{data:this.state.polygons,getPolygon:s=>s.polygon,getElevation:this.getSubLayerAccessor(e),getFillColor:this.getSubLayerAccessor(t),getLineColor:this.getSubLayerAccessor(n),getLineWidth:this.getSubLayerAccessor(i)}}}ny.layerName="H3ClusterLayer";ny.defaultProps=Kce;const Tb=Math.PI/180,$0=new Float32Array(16),lP=new Float32Array(12);function cP(r,e,t){const n=e[0]*Tb,i=e[1]*Tb,s=e[2]*Tb,o=Math.sin(s),l=Math.sin(n),f=Math.sin(i),A=Math.cos(s),v=Math.cos(n),T=Math.cos(i),I=t[0],F=t[1],N=t[2];r[0]=I*T*v,r[1]=I*f*v,r[2]=I*-l,r[3]=F*(-f*A+T*l*o),r[4]=F*(T*A+f*l*o),r[5]=F*v*o,r[6]=N*(f*o+T*l*A),r[7]=N*(-T*o+f*l*A),r[8]=N*v*A}function uP(r){return r[0]=r[0],r[1]=r[1],r[2]=r[2],r[3]=r[4],r[4]=r[5],r[5]=r[6],r[6]=r[8],r[7]=r[9],r[8]=r[10],r[9]=r[12],r[10]=r[13],r[11]=r[14],r.subarray(0,12)}const zL={size:12,accessor:["getOrientation","getScale","getTranslation","getTransformMatrix"],shaderAttributes:{instanceModelMatrixCol0:{size:3,elementOffset:0},instanceModelMatrixCol1:{size:3,elementOffset:3},instanceModelMatrixCol2:{size:3,elementOffset:6},instanceTranslation:{size:3,elementOffset:9}},update(r,{startRow:e,endRow:t}){const{data:n,getOrientation:i,getScale:s,getTranslation:o,getTransformMatrix:l}=this.props,f=Array.isArray(l),A=f&&l.length===16,v=Array.isArray(s),T=Array.isArray(i),I=Array.isArray(o),F=A||!f&&!!l(n[0]);F?r.constant=A:r.constant=T&&v&&I;const N=r.value;if(r.constant){let U;F?($0.set(l),U=uP($0)):(U=lP,cP(U,i,s),U.set(o,9)),r.value=new Float32Array(U)}else{let U=e*r.size;const{iterable:$,objectInfo:V}=dc(n,e,t);for(const G of $){V.index++;let X;
vendor: 15,585 bytes, lines 4202-4368
4202if(F)$0.set(A?l:l(G,V)),X=uP($0);else{X=lP;const ue=T?i:i(G,V),K=v?s:s(G,V);cP(X,ue,K),X.set(I?o:o(G,V),9)}N[U++]=X[0],N[U++]=X[1],N[U++]=X[2],N[U++]=X[3],N[U++]=X[4],N[U++]=X[5],N[U++]=X[6],N[U++]=X[7],N[U++]=X[8],N[U++]=X[9],N[U++]=X[10],N[U++]=X[11]}}}};function VL(r,e){return e===Qr.CARTESIAN||e===Qr.METER_OFFSETS||e===Qr.DEFAULT&&!r.isGeospatial}const fP=`uniform simpleMeshUniforms { 4203 float sizeScale; 4204 bool composeModelMatrix; 4205 bool hasTexture; 4206 bool flatShading; 4207} simpleMesh; 4208`,Zce={name:"simpleMesh",vs:fP,fs:fP,uniformTypes:{sizeScale:"f32",composeModelMatrix:"f32",hasTexture:"f32",flatShading:"f32"}},Yce=`#version 300 es 4209#define SHADER_NAME simple-mesh-layer-vs 4210in vec3 positions; 4211in vec3 normals; 4212in vec3 colors; 4213in vec2 texCoords; 4214in vec3 instancePositions; 4215in vec3 instancePositions64Low; 4216in vec4 instanceColors; 4217in vec3 instancePickingColors; 4218in vec3 instanceModelMatrixCol0; 4219in vec3 instanceModelMatrixCol1; 4220in vec3 instanceModelMatrixCol2; 4221in vec3 instanceTranslation; 4222out vec2 vTexCoord; 4223out vec3 cameraPosition; 4224out vec3 normals_commonspace; 4225out vec4 position_commonspace; 4226out vec4 vColor; 4227void main(void) { 4228geometry.worldPosition = instancePositions; 4229geometry.uv = texCoords; 4230geometry.pickingColor = instancePickingColors; 4231vTexCoord = texCoords; 4232cameraPosition = project.cameraPosition; 4233vColor = vec4(colors * instanceColors.rgb, instanceColors.a); 4234mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2); 4235vec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale + instanceTranslation; 4236if (simpleMesh.composeModelMatrix) { 4237DECKGL_FILTER_SIZE(pos, geometry); 4238normals_commonspace = project_normal(instanceModelMatrix * normals); 4239geometry.worldPosition += pos; 4240gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), position_commonspace); 4241geometry.position = position_commonspace; 4242} 4243else { 4244pos = project_size(pos); 4245DECKGL_FILTER_SIZE(pos, geometry); 4246gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, position_commonspace); 4247geometry.position = position_commonspace; 4248normals_commonspace = project_normal(instanceModelMatrix * normals); 4249} 4250geometry.normal = normals_commonspace; 4251DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 4252DECKGL_FILTER_COLOR(vColor, geometry); 4253} 4254`,Qce=`#version 300 es 4255#define SHADER_NAME simple-mesh-layer-fs 4256precision highp float; 4257uniform sampler2D sampler; 4258in vec2 vTexCoord; 4259in vec3 cameraPosition; 4260in vec3 normals_commonspace; 4261in vec4 position_commonspace; 4262in vec4 vColor; 4263out vec4 fragColor; 4264void main(void) { 4265geometry.uv = vTexCoord; 4266vec3 normal; 4267if (simpleMesh.flatShading) { 4268normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz))); 4269} else { 4270normal = normals_commonspace; 4271} 4272vec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor; 4273DECKGL_FILTER_COLOR(color, geometry); 4274vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal); 4275fragColor = vec4(lightColor, color.a * layer.opacity); 4276} 4277`;function Eb(r){const e=r.positions||r.POSITION;Zr.assert(e,'no "postions" or "POSITION" attribute in mesh');const t=e.value.length/e.size;let n=r.COLOR_0||r.colors;n||(n={size:3,value:new Float32Array(t*3).fill(1)});let i=r.NORMAL||r.normals;i||(i={size:3,value:new Float32Array(t*3).fill(0)});let s=r.TEXCOORD_0||r.texCoords;return s||(s={size:2,value:new Float32Array(t*2).fill(0)}),{positions:e,colors:n,normals:i,texCoords:s}}function hP(r){return r instanceof Zs?(r.attributes=Eb(r.attributes),r):r.attributes?new Zs({...r,topology:"triangle-list",attributes:Eb(r.attributes)}):new Zs({topology:"triangle-list",attributes:Eb(r)})}const eue=[0,0,0,255],tue={mesh:{type:"object",value:null,async:!0},texture:{type:"image",value:null,async:!0},sizeScale:{type:"number",value:1,min:0},_instanced:!0,wireframe:!1,material:!0,getPosition:{type:"accessor",value:r=>r.position},getColor:{type:"accessor",value:eue},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}};class ah extends Cs{getShaders(){return super.getShaders({vs:Yce,fs:Qce,modules:[Ls,Tx,ma,Zce]})}getBounds(){if(this.props._instanced)return super.getBounds();let e=this.state.positionBounds;if(e)return e;const{mesh:t}=this.props;if(!t)return null;if(e=t.header?.boundingBox,!e){const{attributes:n}=hP(t);n.POSITION=n.POSITION||n.positions,e=S4(n)}return this.state.positionBounds=e,e}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:zL}),this.setState({emptyTexture:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})})}updateState(e){super.updateState(e);const{props:t,oldProps:n,changeFlags:i}=e;if(t.mesh!==n.mesh||i.extensionsChanged){if(this.state.positionBounds=null,this.state.model?.destroy(),t.mesh){this.state.model=this.getModel(t.mesh);const s=t.mesh.attributes||t.mesh;this.setState({hasNormals:!!(s.NORMAL||s.normals)})}this.getAttributeManager().invalidateAll()}t.texture!==n.texture&&t.texture instanceof oi&&this.setTexture(t.texture),this.state.model&&this.state.model.setTopology(this.props.wireframe?"line-strip":"triangle-list")}finalizeState(e){super.finalizeState(e),this.state.emptyTexture.delete()}draw({uniforms:e}){const{model:t}=this.state;if(!t)return;const{viewport:n,renderPass:i}=this.context,{sizeScale:s,coordinateSystem:o,_instanced:l}=this.props,f={sizeScale:s,composeModelMatrix:!l||VL(n,o),flatShading:!this.state.hasNormals};t.shaderInputs.setProps({simpleMesh:f}),t.draw(i)}get isLoaded(){return!!(this.state?.model&&super.isLoaded)}getModel(e){const t=new Di(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:hP(e),isInstanced:!0}),{texture:n}=this.props,{emptyTexture:i}=this.state,s={sampler:n||i,hasTexture:!!n};return t.shaderInputs.setProps({simpleMesh:s}),t}setTexture(e){const{emptyTexture:t,model:n}=this.state;if(n){const i={sampler:e||t,hasTexture:!!e};n.shaderInputs.setProps({simpleMesh:i})}}}ah.defaultProps=tue;ah.layerName="SimpleMeshLayer";var ml;(function(r){r[r.FUNC_ADD=32774]="FUNC_ADD",r[r.ONE=1]="ONE",r[r.SRC_ALPHA=770]="SRC_ALPHA",r[r.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",r[r.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",r[r.LINEAR=9729]="LINEAR",r[r.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",r[r.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL"})(ml||(ml={}));function jL(r,e,t,n){const i={defines:{MANUAL_SRGB:1,SRGB_FAST_APPROXIMATION:1},bindings:{},uniforms:{camera:[0,0,0],metallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};i.defines.USE_TEX_LOD=1;const{imageBasedLightingEnvironment:s}=n;return s&&(i.bindings.pbr_diffuseEnvSampler=s.diffuseEnvSampler.texture,i.bindings.pbr_specularEnvSampler=s.specularEnvSampler.texture,i.bindings.pbr_BrdfLUT=s.brdfLutTexture.texture,i.uniforms.scaleIBLAmbient=[1,1]),n?.pbrDebug&&(i.defines.PBR_DEBUG=1,i.uniforms.scaleDiffBaseMR=[0,0,0,0],i.uniforms.scaleFGDSpec=[0,0,0,0]),t.NORMAL&&(i.defines.HAS_NORMALS=1),t.TANGENT&&n?.useTangents&&(i.defines.HAS_TANGENTS=1),t.TEXCOORD_0&&(i.defines.HAS_UV=1),n?.imageBasedLightingEnvironment&&(i.defines.USE_IBL=1),n?.lights&&(i.defines.USE_LIGHTS=1),e&&rue(r,e,i),i}function rue(r,e,t){if(t.uniforms.unlit=!!e.unlit,e.pbrMetallicRoughness&&nue(r,e.pbrMetallicRoughness,t),e.normalTexture){qA(r,e.normalTexture,"pbr_normalSampler","HAS_NORMALMAP",t);const{scale:n=1}=e.normalTexture;t.uniforms.normalScale=n}if(e.occlusionTexture){qA(r,e.occlusionTexture,"pbr_occlusionSampler","HAS_OCCLUSIONMAP",t);const{strength:n=1}=e.occlusionTexture;t.uniforms.occlusionStrength=n}switch(e.emissiveTexture&&(qA(r,e.emissiveTexture,"pbr_emissiveSampler","HAS_EMISSIVEMAP",t),t.uniforms.emissiveFactor=e.emissiveFactor||[0,0,0]),e.alphaMode){case"MASK":const{alphaCutoff:n=.5}=e;t.defines.ALPHA_CUTOFF=1,t.uniforms.alphaCutoff=n;break;case"BLEND":Yt.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),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=ml.FUNC_ADD,t.glParameters.blendFunc=[ml.SRC_ALPHA,ml.ONE_MINUS_SRC_ALPHA,ml.ONE,ml.ONE_MINUS_SRC_ALPHA];break}}function nue(r,e,t){e.baseColorTexture&&qA(r,e.baseColorTexture,"pbr_baseColorSampler","HAS_BASECOLORMAP",t),t.uniforms.baseColorFactor=e.baseColorFactor||[1,1,1,1],e.metallicRoughnessTexture&&qA(r,e.metallicRoughnessTexture,"pbr_metallicRoughnessSampler","HAS_METALROUGHNESSMAP",t);const{metallicFactor:n=1,roughnessFactor:i=1}=e;t.uniforms.metallicRoughnessValues=[n,i]}function qA(r,e,t,n=null,i){const s=e?.texture?.sampler?.parameters||{},o=e.texture.source.image;let l,f={};o.compressed?(l=o,f={[ml.TEXTURE_MIN_FILTER]:o.data.length>1?ml.LINEAR_MIPMAP_NEAREST:ml.LINEAR}):l={data:o};const A=r.createTexture({id:e.uniformName||e.id,parameters:{...s,...f},pixelStore:{[ml.UNPACK_FLIP_Y_WEBGL]:!1},...l});i.bindings[t]=A,n&&(i.defines[n]=1),i.generatedTextures.push(A)}const iue={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},sue={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};class oue{name;startTime=0;playing=!0;speed=1;channels=[];constructor(e){Object.assign(this,e)}animate(e){if(!this.playing)return;const n=(e/1e3-this.startTime)*this.speed;this.channels.forEach(({sampler:i,target:s,path:o})=>{due(n,i,s,o),cue(s,s._node)})}}class aue{animations;constructor(e){this.animations=e.animations.map((t,n)=>{const i=t.name||`Animation-${n}`,s=t.samplers.map(({input:l,interpolation:f="LINEAR",output:A})=>({input:dP(e.accessors[l]),interpolation:f,output:dP(e.accessors[A])})),o=t.channels.map(({sampler:l,target:f})=>({sampler:s[l],target:e.nodes[f.node],path:f.path}));return new oue({name:i,channels:o})})}animate(e){this.setTime(e)}setTime(e){this.animations.forEach(t=>t.animate(e))}getAnimations(){return this.animations}}function dP(r){if(!r._animation){const e=sue[r.componentType],t=iue[r.type],n=t*r.count,{buffer:i,byteOffset:s}=r.bufferView.data,o=new e(i,s+(r.byteOffset||0),n);if(t===1)r._animation=Array.from(o);else{const l=[];for(let f=0;f<o.length;f+=t)l.push(Array.from(o.slice(f,f+t)));r._animation=l}}return r._animation}const lue=new vn;function cue(r,e){if(e.matrix.identity(),r.translation&&e.matrix.translate(r.translation),r.rotation){const t=lue.fromQuaternion(r.rotation);e.matrix.multiplyRight(t)}r.scale&&e.matrix.scale(r.scale)}const Cb=new YA;function uue(r,e,t,n,i){if(e==="rotation"){Cb.slerp({start:t,target:n,ratio:i});for(let s=0;s<Cb.length;s++)r[e][s]=Cb[s]}else for(let s=0;s<t.length;s++)r[e][s]=i*n[s]+(1-i)*t[s]}function fue(r,e,{p0:t,outTangent0:n,inTangent1:i,p1:s,tDiff:o,ratio:l}){for(let f=0;f<r[e].length;f++){const A=n[f]*o,v=i[f]*o;r[e][f]=(2*Math.pow(l,3)-3*Math.pow(l,2)+1)*t[f]+(Math.pow(l,3)-2*Math.pow(l,2)+l)*A+(-2*Math.pow(l,3)+3*Math.pow(l,2))*s[f]+(Math.pow(l,3)-Math.pow(l,2))*v}}function hue(r,e,t){for(let n=0;n<t.length;n++)r[e][n]=t[n]}function due(r,{input:e,interpolation:t,output:n},i,s){const o=e[e.length-1],l=r%o,f=e.findIndex(I=>I>=l),A=Math.max(0,f-1);if(!Array.isArray(i[s]))switch(s){case"translation":i[s]=[0,0,0];break;case"rotation":i[s]=[0,0,0,1];break;case"scale":i[s]=[1,1,1];break;default:Yt.warn(`Bad animation path ${s}`)()}const v=e[A],T=e[f];switch(t){case"STEP":hue(i,s,n[A]);break;case"LINEAR":if(T>v){const I=(l-v)/(T-v);uue(i,s,n[A],n[f],I)}break;case"CUBICSPLINE":if(T>v){const I=(l-v)/(T-v),F=T-v,N=n[3*A+1],U=n[3*A+2],$=n[3*f+0],V=n[3*f+1];fue(i,s,{p0:N,outTangent0:U,inTangent1:$,p1:V,tDiff:F,ratio:I})}break;default:Yt.warn(`Interpolation ${t} not supported`)();break}}const pue=` 4278layout(0) positions: vec4; // in vec4 POSITION; 4279 4280 #ifdef HAS_NORMALS 4281 in vec4 normals; // in vec4 NORMAL; 4282 #endif 4283 4284 #ifdef HAS_TANGENTS 4285 in vec4 TANGENT; 4286 #endif 4287 4288 #ifdef HAS_UV 4289 // in vec2 TEXCOORD_0; 4290 in vec2 texCoords; 4291 #endif 4292 4293@vertex 4294 void main(void) { 4295 vec4 _NORMAL = vec4(0.); 4296 vec4 _TANGENT = vec4(0.); 4297 vec2 _TEXCOORD_0 = vec2(0.); 4298 4299 #ifdef HAS_NORMALS 4300 _NORMAL = normals; 4301 #endif 4302 4303 #ifdef HAS_TANGENTS 4304 _TANGENT = TANGENT; 4305 #endif 4306 4307 #ifdef HAS_UV 4308 _TEXCOORD_0 = texCoords; 4309 #endif 4310 4311 pbr_setPositionNormalTangentUV(positions, _NORMAL, _TANGENT, _TEXCOORD_0); 4312 gl_Position = u_MVPMatrix * positions; 4313 } 4314 4315@fragment 4316 out vec4 fragmentColor; 4317 4318 void main(void) { 4319 vec3 pos = pbr_vPosition; 4320 fragmentColor = pbr_filterColor(vec4(1.0)); 4321 } 4322`,Aue=`#version 300 es 4323 4324 // in vec4 POSITION; 4325 in vec4 positions; 4326 4327 #ifdef HAS_NORMALS 4328 // in vec4 NORMAL; 4329 in vec4 normals; 4330 #endif 4331 4332 #ifdef HAS_TANGENTS 4333 in vec4 TANGENT; 4334 #endif 4335 4336 #ifdef HAS_UV 4337 // in vec2 TEXCOORD_0; 4338 in vec2 texCoords; 4339 #endif 4340 4341 void main(void) { 4342 vec4 _NORMAL = vec4(0.); 4343 vec4 _TANGENT = vec4(0.); 4344 vec2 _TEXCOORD_0 = vec2(0.); 4345 4346 #ifdef HAS_NORMALS 4347 _NORMAL = normals; 4348 #endif 4349 4350 #ifdef HAS_TANGENTS 4351 _TANGENT = TANGENT; 4352 #endif 4353 4354 #ifdef HAS_UV 4355 _TEXCOORD_0 = texCoords; 4356 #endif 4357 4358 pbr_setPositionNormalTangentUV(positions, _NORMAL, _TANGENT, _TEXCOORD_0); 4359 gl_Position = pbrProjection.modelViewProjectionMatrix * positions; 4360 } 4361`,gue=`#version 300 es 4362 out vec4 fragmentColor; 4363 4364 void main(void) { 4365 vec3 pos = pbr_vPosition; 4366 fragmentColor = pbr_filterColor(vec4(1.0)); 4367 } 4368`;function mue(r,e){const{id:t,geometry:n,material:i,vertexCount:s,materialOptions:o,modelOptions:l}=e,f=jL(r,i,n.attributes,o);Yt.info(4,"createGLTFModel defines: ",f.defines)();const A=[],v={depthWriteEnabled:!0,depthCompare:"less",depthFormat:"depth24plus",cullMode:"back"},T={id:t,source:pue,vs:Aue,fs:gue,geometry:n,topology:n.topology,vertexCount:s,modules:[Ex],...l,defines:{...f.defines,...l.defines},parameters:{...v,...f.parameters,...l.parameters}},I=new Di(r,T),{camera:F,...N}={...f.uniforms,...l.uniforms,...f.bindings,...l.bindings};return I.shaderInputs.setProps({pbrMaterial:N,pbrProjection:{camera:F}}),new U1({managedResources:A,model:I})}var Hf;(function(r){r[r.POINTS=0]="POINTS",r[r.LINES=1]="LINES",r[r.LINE_LOOP=2]="LINE_LOOP",r[r.LINE_STRIP=3]="LINE_STRIP",r[r.TRIANGLES=4]="TRIANGLES",r[r.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",r[r.TRIANGLE_FAN=6]="TRIANGLE_FAN"})(Hf||(Hf={}));function _ue(r){switch(r){case Hf.POINTS:return"point-list";case Hf.LINES:return"line-list";case Hf.LINE_STRIP:return"line-strip";case Hf.TRIANGLES:return"triangle-list";case Hf.TRIANGLE_STRIP:return"triangle-strip";default:throw new Error(String(r))}}const yue={modelOptions:{},pbrDebug:!1,imageBasedLightingEnvironment:null,lights:!0,useTangents:!1};class vue{device;options;gltf;constructor(e,t={}){this.device=e,this.options={...yue,...t}}instantiate(e){return this.gltf=E2(e),(this.gltf.scenes||[]).map(n=>this.createScene(n))}createAnimator(){return Array.isArray(this.gltf.animations)?new aue(this.gltf):null}createScene(e){const n=(e.nodes||[]).map(s=>this.createNode(s));
4368return new Qd({id:e.name||e.id,children:n})}createNode(e){if(!e._node){const i=(e.children||[]).map(o=>this.createNode(o));e.mesh&&i.push(this.createMesh(e.mesh));const s=new Qd({id:e.name||e.id,children:i});if(e.matrix)s.setMatrix(e.matrix);else{if(s.matrix.identity(),e.translation&&s.matrix.translate(e.translation),e.rotation){const o=new vn().fromQuaternion(e.rotation);s.matrix.multiplyRight(o)}e.scale&&s.matrix.scale(e.scale)}e._node=s}const t=this.gltf.nodes.find(n=>n.id===e.id);return t._node=e._node,e._node}createMesh(e){if(!e._mesh){const n=(e.primitives||[]).map((s,o)=>this.createPrimitive(s,o,e)),i=new Qd({id:e.name||e.id,children:n});e._mesh=i}return e._mesh}createPrimitive(e,t,n){const i=e.name||`${n.name||n.id}-primitive-${t}`,s=_ue(e.mode||4),o=e.indices?e.indices.count:this.getVertexCount(e.attributes),l=mue(this.device,{id:i,geometry:this.createGeometry(i,e,s),material:e.material,materialOptions:this.options,modelOptions:this.options.modelOptions,vertexCount:o});return l.bounds=[e.attributes.POSITION.min,e.attributes.POSITION.max],l}getVertexCount(e){throw new Error("getVertexCount not implemented")}createGeometry(e,t,n){const i={};for(const[s,o]of Object.entries(t.attributes)){const{components:l,size:f,value:A}=o;i[s]={size:f??l,value:A}}return new Zs({id:e,topology:n,indices:t.indices.value,attributes:i})}createBuffer(e,t){e.bufferView||(e.bufferView={});const{bufferView:n}=e;return n.lumaBuffers||(n.lumaBuffers={}),n.lumaBuffers[t]||(n.lumaBuffers[t]=this.device.createBuffer({id:`from-${n.id}`,data:n.data||e.value})),n.lumaBuffers[t]}createSampler(e){return e}needsPOT(){return!1}}function E2(r){if(ArrayBuffer.isView(r)||r instanceof ArrayBuffer||r instanceof ImageBitmap)return r;if(Array.isArray(r))return r.map(E2);if(r&&typeof r=="object"){const e={};for(const t in r)e[t]=E2(r[t]);return e}return r}function bue(r,e,t){const n=new vue(r,t),i=n.instantiate(e),s=n.createAnimator();return{scenes:i,animator:s}}async function xue(r){const e=[];return r.scenes.forEach(t=>{t.traverse(n=>{Object.values(n.model.uniforms).forEach(i=>{i.loaded===!1&&e.push(i)})})}),await wue(()=>e.some(t=>!t.loaded))}async function wue(r){for(;r();)await new Promise(e=>requestAnimationFrame(e))}const pP=`uniform scenegraphUniforms { 4369 float sizeScale; 4370 float sizeMinPixels; 4371 float sizeMaxPixels; 4372 mat4 sceneModelMatrix; 4373 bool composeModelMatrix; 4374} scenegraph; 4375`,Tue={name:"scenegraph",vs:pP,fs:pP,uniformTypes:{sizeScale:"f32",sizeMinPixels:"f32",sizeMaxPixels:"f32",sceneModelMatrix:"mat4x4<f32>",composeModelMatrix:"f32"}},Eue=`#version 300 es 4376#define SHADER_NAME scenegraph-layer-vertex-shader 4377in vec3 instancePositions; 4378in vec3 instancePositions64Low; 4379in vec4 instanceColors; 4380in vec3 instancePickingColors; 4381in vec3 instanceModelMatrixCol0; 4382in vec3 instanceModelMatrixCol1; 4383in vec3 instanceModelMatrixCol2; 4384in vec3 instanceTranslation; 4385in vec3 positions; 4386#ifdef HAS_UV 4387in vec2 texCoords; 4388#endif 4389#ifdef LIGHTING_PBR 4390#ifdef HAS_NORMALS 4391in vec3 normals; 4392#endif 4393#endif 4394out vec4 vColor; 4395#ifndef LIGHTING_PBR 4396#ifdef HAS_UV 4397out vec2 vTEXCOORD_0; 4398#endif 4399#endif 4400void main(void) { 4401#if defined(HAS_UV) && !defined(LIGHTING_PBR) 4402vTEXCOORD_0 = texCoords; 4403geometry.uv = texCoords; 4404#endif 4405geometry.worldPosition = instancePositions; 4406geometry.pickingColor = instancePickingColors; 4407mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2); 4408vec3 normal = vec3(0.0, 0.0, 1.0); 4409#ifdef LIGHTING_PBR 4410#ifdef HAS_NORMALS 4411normal = instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4(normals, 0.0)).xyz; 4412#endif 4413#endif 4414float originalSize = project_size_to_pixel(scenegraph.sizeScale); 4415float clampedSize = clamp(originalSize, scenegraph.sizeMinPixels, scenegraph.sizeMaxPixels); 4416vec3 pos = (instanceModelMatrix * (scenegraph.sceneModelMatrix * vec4(positions, 1.0)).xyz) * scenegraph.sizeScale * (clampedSize / originalSize) + instanceTranslation; 4417if(scenegraph.composeModelMatrix) { 4418DECKGL_FILTER_SIZE(pos, geometry); 4419geometry.normal = project_normal(normal); 4420geometry.worldPosition += pos; 4421gl_Position = project_position_to_clipspace(pos + instancePositions, instancePositions64Low, vec3(0.0), geometry.position); 4422} 4423else { 4424pos = project_size(pos); 4425DECKGL_FILTER_SIZE(pos, geometry); 4426gl_Position = project_position_to_clipspace(instancePositions, instancePositions64Low, pos, geometry.position); 4427geometry.normal = project_normal(normal); 4428} 4429DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 4430#ifdef LIGHTING_PBR 4431pbr_vPosition = geometry.position.xyz; 4432#ifdef HAS_NORMALS 4433pbr_vNormal = geometry.normal; 4434#endif 4435#ifdef HAS_UV 4436pbr_vUV = texCoords; 4437#else 4438pbr_vUV = vec2(0., 0.); 4439#endif 4440geometry.uv = pbr_vUV; 4441#endif 4442vColor = instanceColors; 4443DECKGL_FILTER_COLOR(vColor, geometry); 4444} 4445`,Cue=`#version 300 es 4446#define SHADER_NAME scenegraph-layer-fragment-shader 4447in vec4 vColor; 4448out vec4 fragColor; 4449#ifndef LIGHTING_PBR 4450#if defined(HAS_UV) && defined(HAS_BASECOLORMAP) 4451in vec2 vTEXCOORD_0; 4452uniform sampler2D pbr_baseColorSampler; 4453#endif 4454#endif 4455void main(void) { 4456#ifdef LIGHTING_PBR 4457fragColor = vColor * pbr_filterColor(vec4(0)); 4458geometry.uv = pbr_vUV; 4459#else 4460#if defined(HAS_UV) && defined(HAS_BASECOLORMAP) 4461fragColor = vColor * texture(pbr_baseColorSampler, vTEXCOORD_0); 4462geometry.uv = vTEXCOORD_0; 4463#else 4464fragColor = vColor; 4465#endif 4466#endif 4467fragColor.a *= layer.opacity; 4468DECKGL_FILTER_COLOR(fragColor, geometry); 4469} 4470`,HL=[255,255,255,255],Sue={scenegraph:{type:"object",value:null,async:!0},getScene:r=>r&&r.scenes?typeof r.scene=="object"?r.scene:r.scenes[r.scene||0]:r,getAnimator:r=>r&&r.animator,_animations:null,sizeScale:{type:"number",value:1,min:0}
vendor: 4,835 bytes, lines 4470-4510
4470,sizeMinPixels:{type:"number",min:0,value:0},sizeMaxPixels:{type:"number",min:0,value:Number.MAX_SAFE_INTEGER},getPosition:{type:"accessor",value:r=>r.position},getColor:{type:"accessor",value:HL},_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:[i_]};class Bg extends Cs{getShaders(){const e={};let t;this.props._lighting==="pbr"?(t=Ex,e.LIGHTING_PBR=1):t={name:"pbrMaterial"};const n=[Ls,ma,Tue,t];return super.getShaders({defines:e,vs:Eue,fs:Cue,modules:n})}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:HL,transition:!0},instanceModelMatrix:zL})}updateState(e){super.updateState(e);const{props:t,oldProps:n}=e;t.scenegraph!==n.scenegraph?this._updateScenegraph():t._animations!==n._animations&&this._applyAnimationsProp(this.state.animator,t._animations)}finalizeState(e){super.finalizeState(e),this.state.scenegraph?.destroy()}get isLoaded(){return!!(this.state?.scenegraph&&super.isLoaded)}_updateScenegraph(){const e=this.props,{device:t}=this.context;let n=null;if(e.scenegraph instanceof Jm)n={scenes:[e.scenegraph]};else if(e.scenegraph&&typeof e.scenegraph=="object"){const l=e.scenegraph,f=l.json?Cee(l):l,A=bue(t,f,this._getModelOptions());n={gltf:f,...A},xue(A).then(()=>{this.setNeedsRedraw()}).catch(v=>{this.raiseError(v,"loading glTF")})}const i={layer:this,device:this.context.device},s=e.getScene(n,i),o=e.getAnimator(n,i);if(s instanceof Qd){this.state.scenegraph?.destroy(),this._applyAnimationsProp(o,e._animations);const l=[];s.traverse(f=>{f instanceof U1&&l.push(f.model)}),this.setState({scenegraph:s,animator:o,models:l}),this.getAttributeManager().invalidateAll()}else s!==null&&Zr.warn("invalid scenegraph:",s)()}_applyAnimationsProp(e,t){if(!e||!t)return;const n=e.getAnimations();Object.keys(t).sort().forEach(i=>{const s=t[i];if(i==="*")n.forEach(o=>{Object.assign(o,s)});else if(Number.isFinite(Number(i))){const o=Number(i);o>=0&&o<n.length?Object.assign(n[o],s):Zr.warn(`animation ${i} not found`)()}else{const o=n.find(({name:l})=>l===i);o?Object.assign(o,s):Zr.warn(`animation ${i} not found`)()}})}_getModelOptions(){const{_imageBasedLightingEnvironment:e}=this.props;let t;return e&&(typeof e=="function"?t=e({gl:this.context.gl,layer:this}):t=e),{imageBasedLightingEnvironment:t,modelOptions:{id:this.props.id,isInstanced:!0,bufferLayout:this.getAttributeManager().getBufferLayouts(),...this.getShaders()},useTangents:!1}}draw({context:e}){if(!this.state.scenegraph)return;this.props._animations&&this.state.animator&&(this.state.animator.animate(e.timeline.getTime()),this.setNeedsRedraw());const{viewport:t,renderPass:n}=this.context,{sizeScale:i,sizeMinPixels:s,sizeMaxPixels:o,coordinateSystem:l}=this.props,f=this.getNumInstances();this.state.scenegraph.traverse((A,{worldMatrix:v})=>{if(A instanceof U1){const{model:T}=A;T.setInstanceCount(f);const I={camera:T.uniforms.cameraPosition},F={sizeScale:i,sizeMinPixels:s,sizeMaxPixels:o,composeModelMatrix:VL(t,l),sceneModelMatrix:v};T.shaderInputs.setProps({pbrProjection:I,scenegraph:F}),T.draw(n)}})}}Bg.defaultProps=Sue;Bg.layerName="ScenegraphLayer";const Iue=Object.freeze(Object.defineProperty({__proto__:null,ScenegraphLayer:Bg,SimpleMeshLayer:ah},Symbol.toStringTag,{value:"Module"})),AP=`uniform meshUniforms { 4471 bool pickFeatureIds; 4472} mesh; 4473`,Bue={name:"mesh",vs:AP,fs:AP,uniformTypes:{pickFeatureIds:"f32"}},Pue=`#version 300 es 4474#define SHADER_NAME simple-mesh-layer-vs 4475in vec3 positions; 4476in vec3 normals; 4477in vec3 colors; 4478in vec2 texCoords; 4479in vec4 uvRegions; 4480in vec3 featureIdsPickingColors; 4481in vec4 instanceColors; 4482in vec3 instancePickingColors; 4483in vec3 instanceModelMatrixCol0; 4484in vec3 instanceModelMatrixCol1; 4485in vec3 instanceModelMatrixCol2; 4486out vec2 vTexCoord; 4487out vec3 cameraPosition; 4488out vec3 normals_commonspace; 4489out vec4 position_commonspace; 4490out vec4 vColor; 4491vec2 applyUVRegion(vec2 uv) { 4492#ifdef HAS_UV_REGIONS 4493return fract(uv) * (uvRegions.zw - uvRegions.xy) + uvRegions.xy; 4494#else 4495return uv; 4496#endif 4497} 4498void main(void) { 4499vec2 uv = applyUVRegion(texCoords); 4500geometry.uv = uv; 4501if (mesh.pickFeatureIds) { 4502geometry.pickingColor = featureIdsPickingColors; 4503} else { 4504geometry.pickingColor = instancePickingColors; 4505} 4506mat3 instanceModelMatrix = mat3(instanceModelMatrixCol0, instanceModelMatrixCol1, instanceModelMatrixCol2); 4507vTexCoord = uv; 4508cameraPosition = project.cameraPosition; 4509vColor = vec4(colors * instanceColors.rgb, instanceColors.a); 4510vec3 pos = (instanceModelMatrix * positions) * simpleMesh.sizeScale;
4511vec3 projectedPosition = project_position(positions); 4512position_commonspace = vec4(projectedPosition, 1.0); 4513gl_Position = project_common_position_to_clipspace(position_commonspace); 4514geometry.position = position_commonspace; 4515normals_commonspace = project_normal(instanceModelMatrix * normals); 4516geometry.normal = normals_commonspace; 4517DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 4518#ifdef MODULE_PBRMATERIAL 4519pbr_vPosition = geometry.position.xyz; 4520#ifdef HAS_NORMALS 4521pbr_vNormal = geometry.normal; 4522#endif 4523#ifdef HAS_UV 4524pbr_vUV = uv; 4525#else 4526pbr_vUV = vec2(0., 0.); 4527#endif 4528geometry.uv = pbr_vUV; 4529#endif 4530DECKGL_FILTER_COLOR(vColor, geometry); 4531} 4532`,Mue=`#version 300 es 4533#define SHADER_NAME simple-mesh-layer-fs 4534precision highp float; 4535uniform sampler2D sampler; 4536in vec2 vTexCoord; 4537in vec3 cameraPosition; 4538in vec3 normals_commonspace; 4539in vec4 position_commonspace; 4540in vec4 vColor; 4541out vec4 fragColor; 4542void main(void) { 4543#ifdef MODULE_PBRMATERIAL 4544fragColor = vColor * pbr_filterColor(vec4(0)); 4545geometry.uv = pbr_vUV; 4546fragColor.a *= layer.opacity; 4547#else 4548geometry.uv = vTexCoord; 4549vec3 normal; 4550if (simpleMesh.flatShading) { 4551normal = normalize(cross(dFdx(position_commonspace.xyz), dFdy(position_commonspace.xyz))); 4552} else { 4553normal = normals_commonspace; 4554} 4555vec4 color = simpleMesh.hasTexture ? texture(sampler, vTexCoord) : vColor; 4556vec3 lightColor = lighting_getLightColor(color.rgb, cameraPosition, position_commonspace.xyz, normal); 4557fragColor = vec4(lightColor, color.a * layer.opacity); 4558#endif 4559DECKGL_FILTER_COLOR(fragColor, geometry); 4560} 4561`;function Rue(r){const e=r.positions||r.POSITION,t=e.value.length/e.size;r.COLOR_0||r.colors||(r.colors={size:4,value:new Uint8Array(t*4).fill(255),normalized:!0})}const Oue={pbrMaterial:{type:"object",value:null},featureIds:{type:"array",value:null,optional:!0}};class Fw extends ah{getShaders(){const e=super.getShaders();return e.modules.push(Ex,Bue),{...e,vs:Pue,fs:Mue}}initializeState(){const{featureIds:e}=this.props;super.initializeState();const t=this.getAttributeManager();e&&t.add({featureIdsPickingColors:{type:"uint8",size:3,noAlloc:!0,update:this.calculateFeatureIdsPickingColors}})}updateState(e){super.updateState(e);const{props:t,oldProps:n}=e;t.pbrMaterial!==n.pbrMaterial&&this.updatePbrMaterialUniforms(t.pbrMaterial)}draw(e){const{featureIds:t}=this.props,{model:n}=this.state;if(!n)return;const i={pickFeatureIds:!!t},s={camera:n.uniforms.cameraPosition};n.shaderInputs.setProps({pbrProjection:s,mesh:i}),super.draw(e)}getModel(e){const{id:t}=this.props,n=this.parseMaterial(this.props.pbrMaterial,e);this.setState({parsedPBRMaterial:n});const i=this.getShaders();return Rue(e.attributes),new Di(this.context.device,{...this.getShaders(),id:t,geometry:e,bufferLayout:this.getAttributeManager().getBufferLayouts(),defines:{...i.defines,...n?.defines,HAS_UV_REGIONS:e.attributes.uvRegions?1:0},parameters:n?.parameters,isInstanced:!0})}updatePbrMaterialUniforms(e){const{model:t}=this.state;if(t){const{mesh:n}=this.props,i=this.parseMaterial(e,n);this.setState({parsedPBRMaterial:i});const{pbr_baseColorSampler:s}=i.bindings,{emptyTexture:o}=this.state,l={sampler:s||o,hasTexture:!!s},{camera:f,...A}={...i.bindings,...i.uniforms};t.shaderInputs.setProps({simpleMesh:l,pbrMaterial:A})}}parseMaterial(e,t){const n=!!(e.pbrMetallicRoughness&&e.pbrMetallicRoughness.baseColorTexture);return jL(this.context.device,{unlit:n,...e},{NORMAL:t.attributes.normals,TEXCOORD_0:t.attributes.texCoords},{pbrDebug:!1,lights:!0,useTangents:!1})}calculateFeatureIdsPickingColors(e){const t=this.props.featureIds,n=new Uint8ClampedArray(t.length*e.size),i=[];for(let s=0;s<t.length;s++)this.encodePickingColor(t[s],i),n[s*3]=i[0],n[s*3+1]=i[1],n[s*3+2]=i[2];e.value=n}finalizeState(e){super.finalizeState(e),this.state.parsedPBRMaterial?.generatedTextures.forEach(t=>t.destroy()),this.setState({parsedPBRMaterial:null})}}Fw.layerName="MeshLayer";Fw.defaultProps=Oue;const Due=6378137,Fue=6378137,Lue=6356752314245179e-9;function iy(r){return r}new dt;function kue(r,e=[],t=iy){return"longitude"in r?(e[0]=t(r.longitude),e[1]=t(r.latitude),e[2]=r.height):"x"in r?(e[0]=t(r.x),e[1]=t(r.y),e[2]=r.z):(e[0]=t(r[0]),e[1]=t(r[1]),e[2]=r[2]),e}function Nue(r,e=[]){return kue(r,e,Es._cartographicRadians?iy:I7)}function Uue(r,e,t=iy){return"longitude"in e?(e.longitude=t(r[0]),e.latitude=t(r[1]),e.height=r[2]):"x"in e?(e.x=t(r[0]),e.y=t(r[1]),e.z=r[2]):(e[0]=t(r[0]),e[1]=t(r[1]),e[2]=r[2]),e}function zue(r,e){return Uue(r,e,Es._cartographicRadians?iy:B7)}const gP=1e-14,Vue=new dt,mP={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"}},Sb={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},_A={east:new dt,north:new dt,up:new dt,west:new dt,south:new dt,down:new dt},jue=new dt,Gue=new dt,Hue=new dt;function _P(r,e,t,n,i,s){const o=mP[e]&&mP[e][t];gl(o&&(!n||n===o));let l,f,A;
vendor: 38,318 bytes, line 4561
4561const v=Vue.copy(i);if(ga(v.x,0,gP)&&ga(v.y,0,gP)){const I=Math.sign(v.z);l=jue.fromArray(Sb[e]),e!=="east"&&e!=="west"&&l.scale(I),f=Gue.fromArray(Sb[t]),t!=="east"&&t!=="west"&&f.scale(I),A=Hue.fromArray(Sb[n]),n!=="east"&&n!=="west"&&A.scale(I)}else{const{up:I,east:F,north:N}=_A;F.set(-v.y,v.x,0).normalize(),r.geodeticSurfaceNormal(v,I),N.copy(I).cross(F);const{down:U,west:$,south:V}=_A;U.copy(I).scale(-1),$.copy(F).scale(-1),V.copy(N).scale(-1),l=_A[e],f=_A[t],A=_A[n]}return s[0]=l.x,s[1]=l.y,s[2]=l.z,s[3]=0,s[4]=f.x,s[5]=f.y,s[6]=f.z,s[7]=0,s[8]=A.x,s[9]=A.y,s[10]=A.z,s[11]=0,s[12]=v.x,s[13]=v.y,s[14]=v.z,s[15]=1,s}const md=new dt,Wue=new dt,$ue=new dt;function Xue(r,e,t=[]){const{oneOverRadii:n,oneOverRadiiSquared:i,centerToleranceSquared:s}=e;md.from(r);const o=md.x,l=md.y,f=md.z,A=n.x,v=n.y,T=n.z,I=o*o*A*A,F=l*l*v*v,N=f*f*T*T,U=I+F+N,$=Math.sqrt(1/U);if(!Number.isFinite($))return;const V=Wue;if(V.copy(r).scale($),U<s)return V.to(t);const G=i.x,X=i.y,ue=i.z,K=$ue;K.set(V.x*G*2,V.y*X*2,V.z*ue*2);let se=(1-$)*md.len()/(.5*K.len()),Ee=0,Ue,de,me,pe;do{se-=Ee,Ue=1/(1+se*G),de=1/(1+se*X),me=1/(1+se*ue);const W=Ue*Ue,te=de*de,Ce=me*me,Qe=W*Ue,we=te*de,De=Ce*me;pe=I*W+F*te+N*Ce-1;const Ze=-2*(I*Qe*G+F*we*X+N*De*ue);Ee=pe/Ze}while(Math.abs(pe)>qV);return md.scale([Ue,de,me]).to(t)}const X0=new dt,yP=new dt,que=new dt,cl=new dt,Jue=new dt,q0=new dt;class bi{constructor(e=0,t=0,n=0){this.centerToleranceSquared=XV,gl(e>=0),gl(t>=0),gl(n>=0),this.radii=new dt(e,t,n),this.radiiSquared=new dt(e*e,t*t,n*n),this.radiiToTheFourth=new dt(e*e*e*e,t*t*t*t,n*n*n*n),this.oneOverRadii=new dt(e===0?0:1/e,t===0?0:1/t,n===0?0:1/n),this.oneOverRadiiSquared=new dt(e===0?0:1/(e*e),t===0?0:1/(t*t),n===0?0:1/(n*n)),this.minimumRadius=Math.min(e,t,n),this.maximumRadius=Math.max(e,t,n),this.radiiSquared.z!==0&&(this.squaredXOverSquaredZ=this.radiiSquared.x/this.radiiSquared.z),Object.freeze(this)}equals(e){return this===e||!!(e&&this.radii.equals(e.radii))}toString(){return this.radii.toString()}cartographicToCartesian(e,t=[0,0,0]){const n=yP,i=que,[,,s]=e;this.geodeticSurfaceNormalCartographic(e,n),i.copy(this.radiiSquared).scale(n);const o=Math.sqrt(n.dot(i));return i.scale(1/o),n.scale(s),i.add(n),i.to(t)}cartesianToCartographic(e,t=[0,0,0]){q0.from(e);const n=this.scaleToGeodeticSurface(q0,cl);if(!n)return;const i=this.geodeticSurfaceNormal(n,yP),s=Jue;s.copy(q0).subtract(n);const o=Math.atan2(i.y,i.x),l=Math.asin(i.z),f=Math.sign(yx(s,q0))*SO(s);return zue([o,l,f],t)}eastNorthUpToFixedFrame(e,t=new vn){return _P(this,"east","north","up",e,t)}localFrameToFixedFrame(e,t,n,i,s=new vn){return _P(this,e,t,n,i,s)}geocentricSurfaceNormal(e,t=[0,0,0]){return X0.from(e).normalize().to(t)}geodeticSurfaceNormalCartographic(e,t=[0,0,0]){const n=Nue(e),i=n[0],s=n[1],o=Math.cos(s);return X0.set(o*Math.cos(i),o*Math.sin(i),Math.sin(s)).normalize(),X0.to(t)}geodeticSurfaceNormal(e,t=[0,0,0]){return X0.from(e).scale(this.oneOverRadiiSquared).normalize().to(t)}scaleToGeodeticSurface(e,t){return Xue(e,this,t)}scaleToGeocentricSurface(e,t=[0,0,0]){cl.from(e);const n=cl.x,i=cl.y,s=cl.z,o=this.oneOverRadiiSquared,l=1/Math.sqrt(n*n*o.x+i*i*o.y+s*s*o.z);return cl.multiplyScalar(l).to(t)}transformPositionToScaledSpace(e,t=[0,0,0]){return cl.from(e).scale(this.oneOverRadii).to(t)}transformPositionFromScaledSpace(e,t=[0,0,0]){return cl.from(e).scale(this.radii).to(t)}getSurfaceNormalIntersectionWithZAxis(e,t=0,n=[0,0,0]){gl(ga(this.radii.x,this.radii.y,NO)),gl(this.radii.z>0),cl.from(e);const i=cl.z*(1-this.squaredXOverSquaredZ);if(!(Math.abs(i)>=this.radii.z-t))return cl.set(0,0,i).to(n)}}bi.WGS84=new bi(Due,Fue,Lue);class Kue{item;previous;next;constructor(e,t,n){this.item=e,this.previous=t,this.next=n}}class Zue{head=null;tail=null;_length=0;get length(){return this._length}add(e){const t=new Kue(e,this.tail,null);return this.tail?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t}remove(e){e&&(e.previous&&e.next?(e.previous.next=e.next,e.next.previous=e.previous):e.previous?(e.previous.next=null,this.tail=e.previous):e.next?(e.next.previous=null,this.head=e.next):(this.head=null,this.tail=null),e.next=null,e.previous=null,--this._length)}splice(e,t){e!==t&&(this.remove(t),this._insert(e,t))}_insert(e,t){const n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e,++this._length}}class Yue{_list;_sentinel;_trimTiles;constructor(){this._list=new Zue,this._sentinel=this._list.add("sentinel"),this._trimTiles=!1}reset(){this._list.splice(this._list.tail,this._sentinel)}touch(e){const t=e._cacheNode;t&&this._list.splice(this._sentinel,t)}add(e,t,n){t._cacheNode||(t._cacheNode=this._list.add(t),n&&n(e,t))}unloadTile(e,t,n){const i=t._cacheNode;i&&(this._list.remove(i),t._cacheNode=null,n&&n(e,t))}unloadTiles(e,t){const n=this._trimTiles;this._trimTiles=!1;const i=this._list,s=e.maximumMemoryUsage*1024*1024,o=this._sentinel;let l=i.head;for(;l!==o&&(e.gpuMemoryUsageInBytes>s||n);){const f=l.item;l=l.next,this.unloadTile(e,f,t)}}trim(){this._trimTiles=!0}}function Que(r,e){Ri(r),Ri(e);const{rtcCenter:t,gltfUpAxis:n}=e,{computedTransform:i,boundingVolume:{center:s}}=r;let o=new vn(i);switch(t&&o.translate(t),n){case"Z":break;case"Y":const T=new vn().rotateX(Math.PI/2);o=o.multiplyRight(T);break;case"X":const I=new vn().rotateY(-Math.PI/2);o=o.multiplyRight(I);break}e.isQuantized&&o.translate(e.quantizedVolumeOffset).scale(e.quantizedVolumeScale);const l=new dt(s);e.cartesianModelMatrix=o,e.cartesianOrigin=l;const f=bi.WGS84.cartesianToCartographic(l,new dt),v=bi.WGS84.eastNorthUpToFixedFrame(l).invert();e.cartographicModelMatrix=v.multiplyRight(o),e.cartographicOrigin=f,e.coordinateSystem||(e.modelMatrix=e.cartographicModelMatrix)}const vP=new dt,Ib=new dt,C2=new pa([new Al,new Al,new Al,new Al,new Al,new Al]);function efe(r,e){const{cameraDirection:t,cameraUp:n,height:i}=r,{metersPerUnit:s}=r.distanceScales,o=Pm(r,r.center),l=bi.WGS84.eastNorthUpToFixedFrame(o),f=r.unprojectPosition(r.cameraPosition),A=bi.WGS84.cartographicToCartesian(f,new dt),v=new dt(l.transformAsVector(new dt(t).scale(s))).normalize(),T=new dt(l.transformAsVector(new dt(n).scale(s))).normalize();rfe(r);const I=r.constructor,{longitude:F,latitude:N,width:U,bearing:$,zoom:V}=r,G=new I({longitude:F,latitude:N,height:i,width:U,bearing:$,zoom:V,pitch:0});return{camera:{position:A,direction:v,up:T},viewport:r,topDownViewport:G,height:i,cullingVolume:C2,frameNumber:e,sseDenominator:1.15}}function tfe(r,e,t){if(t===0||r.length<=t)return[r,[]];const n=[],{longitude:i,latitude:s}=e.viewport;for(const[A,v]of r.entries()){const[T,I]=v.header.mbs,F=Math.abs(i-T),N=Math.abs(s-I),U=Math.sqrt(N*N+F*F);n.push([A,U])}const o=n.sort((A,v)=>A[1]-v[1]),l=[];for(let A=0;A<t;A++)l.push(r[o[A][0]]);const f=[];for(let A=t;A<o.length;A++)f.push(r[o[A][0]]);return[l,f]}function rfe(r){const e=r.getFrustumPlanes(),t=bP(e.near,r.cameraPosition),n=Pm(r,t),i=Pm(r,r.cameraPosition,Ib);let s=0;C2.planes[s++].fromPointNormal(n,vP.copy(n).subtract(i));for(const o in e){if(o==="near")continue;const l=e[o],f=bP(l,t,Ib),A=Pm(r,f,Ib);C2.planes[s++].fromPointNormal(A,vP.copy(n).subtract(A))}}function bP(r,e,t=new dt){const n=r.normal.dot(e);return t.copy(r.normal).scale(r.distance-n).add(e),t}function Pm(r,e,t=new dt){const n=r.unprojectPosition(e);return bi.WGS84.cartographicToCartesian(n,t)}const nfe=6378137,ife=6378137,S2=6356752314245179e-9,Jd=new dt;function sfe(r,e){if(r instanceof Ig){const{halfAxes:t}=r,n=afe(t);return Math.log2(S2/(n+e[2]))}else if(r instanceof Sg){const{radius:t}=r;return Math.log2(S2/(t+e[2]))}else if(r.width&&r.height){const{width:t,height:n}=r,i=Math.log2(nfe/t),s=Math.log2(ife/n);return(i+s)/2}return 1}function WL(r,e,t){bi.WGS84.cartographicToCartesian([r.xmax,r.ymax,r.zmax],Jd);const n=Math.sqrt(Math.pow(Jd[0]-t[0],2)+Math.pow(Jd[1]-t[1],2)+Math.pow(Jd[2]-t[2],2));return Math.log2(S2/(n+e[2]))}function ofe(r,e,t){const[n,i,s,o]=r;return WL({xmax:s,ymax:o,zmax:0},e,t)}function afe(r){r.getColumn(0,Jd);const e=r.getColumn(1),t=r.getColumn(2);return Jd.add(e).add(t).len()}const ca={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5};var Tl;(function(r){r[r.ADD=1]="ADD",r[r.REPLACE=2]="REPLACE"})(Tl||(Tl={}));var qc;(function(r){r.EMPTY="empty",r.SCENEGRAPH="scenegraph",r.POINTCLOUD="pointcloud",r.MESH="mesh"})(qc||(qc={}));var zo;(function(r){r.I3S="I3S",r.TILES3D="TILES3D"})(zo||(zo={}));var vp;(function(r){r.GEOMETRIC_ERROR="geometricError",r.MAX_SCREEN_THRESHOLD="maxScreenThreshold"})(vp||(vp={}));const lfe={USE_OPTIMIZATION:1};function $L(r){return r!=null}const mo=new dt,Mm=new dt,cfe=new dt,ufe=new dt,Nf=new dt,xP=new dt,wP=new dt,TP=new dt;function Bb(r,e,t){if(Ri(r,"3D Tile: boundingVolume must be defined"),r.box)return XL(r.box,e,t);if(r.region)return dfe(r.region);if(r.sphere)return hfe(r.sphere,e,t);throw new Error("3D Tile: boundingVolume must contain a sphere, region, or box")}function ffe(r,e){if(r.box)return pfe(e);if(r.region){const[t,n,i,s,o,l]=r.region;return[[pl(t),pl(n),o],[pl(i),pl(s),l]]}if(r.sphere)return Afe(e);throw new Error("Unkown boundingVolume type")}function XL(r,e,t){const n=new dt(r[0],r[1],r[2]);e.transform(n,n);let i=[];if(r.length===10){const A=r.slice(3,6),v=new YA;v.fromArray(r,6);const T=new dt([1,0,0]),I=new dt([0,1,0]),F=new dt([0,0,1]);T.transformByQuaternion(v),T.scale(A[0]),I.transformByQuaternion(v),I.scale(A[1]),F.transformByQuaternion(v),F.scale(A[2]),i=[...T.toArray(),...I.toArray(),...F.toArray()]}else i=[...r.slice(3,6),...r.slice(6,9),...r.slice(9,12)];const s=e.transformAsVector(i.slice(0,3)),o=e.transformAsVector(i.slice(3,6)),l=e.transformAsVector(i.slice(6,9)),f=new Oi([s[0],s[1],s[2],o[0],o[1],o[2],l[0],l[1],l[2]]);return $L(t)?(t.center=n,t.halfAxes=f,t):new Ig(n,f)}function hfe(r,e,t){const n=new dt(r[0],r[1],r[2]);e.transform(n,n);const i=e.getScale(Mm),s=Math.max(Math.max(i[0],i[1]),i[2]),o=r[3]*s;return $L(t)?(t.center=n,t.radius=o,t):new Sg(n,o)}function dfe(r){const[e,t,n,i,s,o]=r,l=bi.WGS84.cartographicToCartesian([pl(e),pl(i),s],cfe),f=bi.WGS84.cartographicToCartesian([pl(n),pl(t),o],ufe),A=new dt().addVectors(l,f).multiplyByScalar(.5);return bi.WGS84.cartesianToCartographic(A,Nf),bi.WGS84.cartographicToCartesian([pl(n),Nf[1],Nf[2]],xP),bi.WGS84.cartographicToCartesian([Nf[0],pl(i),Nf[2]],wP),bi.WGS84.cartographicToCartesian([Nf[0],Nf[1],o],TP),XL([...A,...xP.subtract(A),...wP.subtract(A),...TP.subtract(A)],new vn)}function pfe(r){const e=qL(),{halfAxes:t}=r,n=new dt(t.getColumn(0)),i=new dt(t.getColumn(1)),s=new dt(t.getColumn(2));for(let o=0;o<2;o++){for(let l=0;l<2;l++){for(let f=0;f<2;f++)mo.copy(r.center),mo.add(n),mo.add(i),mo.add(s),JL(e,mo),s.negate();i.negate()}n.negate()}return e}function Afe(r){const e=qL(),{center:t,radius:n}=r,i=bi.WGS84.scaleToGeodeticSurface(t,mo);let s;i?s=bi.WGS84.geodeticSurfaceNormal(i):s=new dt(0,0,1);let o=new dt(s[2],-s[1],0);o.len()>0?o.normalize():o=new dt(0,1,0);const l=o.clone().cross(s);for(const f of[o,l,s]){Mm.copy(f).scale(n);for(let A=0;A<2;A++)mo.copy(t),mo.add(Mm),JL(e,mo),Mm.negate()}return e}function qL(){return[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]]}function JL(r,e){bi.WGS84.cartesianToCartographic(e,mo),r[0][0]=Math.min(r[0][0],mo[0]),r[0][1]=Math.min(r[0][1],mo[1]),r[0][2]=Math.min(r[0][2],mo[2]),r[1][0]=Math.max(r[1][0],mo[0]),r[1][1]=Math.max(r[1][1],mo[1]),r[1][2]=Math.max(r[1][2],mo[2])}new dt;new dt;new vn;new dt;new dt;new dt;function gfe(r,e){const t=r*e;return 1-Math.exp(-(t*t))}function mfe(r,e){if(r.dynamicScreenSpaceError&&r.dynamicScreenSpaceErrorComputedDensity){const t=r.dynamicScreenSpaceErrorComputedDensity,n=r.dynamicScreenSpaceErrorFactor;return gfe(e,t)*n}return 0}function _fe(r,e,t){const n=r.tileset,i=r.parent&&r.parent.lodMetricValue||r.lodMetricValue,s=t?i:r.lodMetricValue;if(s===0)return 0;const o=Math.max(r._distanceToCamera,1e-7),{height:l,sseDenominator:f}=e,{viewDistanceScale:A}=n.options;let v=s*l*(A||1)/(o*f);return v-=mfe(n,o),v}const Pb=new dt,EP=new dt,Lu=new dt,CP=new dt,yfe=new dt,Mb=new vn,SP=new vn;function vfe(r,e){if(r.lodMetricValue===0||isNaN(r.lodMetricValue))return"DIG";const t=2*KL(r,e);return t<2?"OUT":!r.header.children||t<=r.lodMetricValue?"DRAW":r.header.children?"DIG":"OUT"}function KL(r,e){const{topDownViewport:t}=e,n=r.header.mbs[1],i=r.header.mbs[0],s=r.header.mbs[2],o=r.header.mbs[3],l=[...r.boundingVolume.center],f=t.unprojectPosition(t.cameraPosition);bi.WGS84.cartographicToCartesian(f,Pb),EP.copy(Pb).subtract(l).normalize(),bi.WGS84.eastNorthUpToFixedFrame(l,Mb),SP.copy(Mb).invert(),Lu.copy(Pb).transform(SP);const A=Math.sqrt(Lu[0]*Lu[0]+Lu[1]*Lu[1]),v=A*A/Lu[2];CP.copy([Lu[0],Lu[1],v]);const I=CP.transform(Mb).subtract(l).normalize(),N=EP.cross(I).normalize().scale(o).add(l),U=bi.WGS84.cartesianToCartographic(N),$=t.project([i,n,s]),V=t.project(U);return yfe.copy($).subtract(V).magnitude()}function bfe(r){return{assetGltfUpAxis:r.asset&&r.asset.gltfUpAxis||"Y"}}class IP{_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 Ri(e<this._array.length),this._array[e]}set(e,t){Ri(e>=0),e>=this.length&&(this.length=e+1),this._map.has(this._array[e])&&this._map.delete(this._array[e]),this._array[e]=t,this._map.set(t,e)}delete(e){const t=this._map.get(e);t>=0&&(this._array.splice(t,1),this._map.delete(e),this.length--)}peek(){return this._array[this._length-1]}push(e){if(!this._map.has(e)){const t=this.length++;this._array[t]=e,this._map.set(e,t)}}pop(){const e=this._array[--this.length];return this._map.delete(e),e}reserve(e){Ri(e>=0),e>this._array.length&&(this._array.length=e)}resize(e){Ri(e>=0),this.length=e}trim(e){e==null&&(e=this.length),this._array.length=e}reset(){this._array=[],this._map=new Map,this._length=0}find(e){return this._map.has(e)}}const xfe={loadSiblings:!1,skipLevelOfDetail:!1,updateTransforms:!0,onTraversalEnd:()=>{},viewportTraversersMap:{},basePath:""};class sy{options;root=null;selectedTiles={};requestedTiles={};emptyTiles={};lastUpdate=new Date().getTime();updateDebounceTime=1e3;_traversalStack=new IP;_emptyTraversalStack=new IP;_frameNumber=null;traversalFinished(e){return!0}constructor(e){this.options={...xfe,...e}}traverse(e,t,n){this.root=e,this.options={...this.options,...n},this.reset(),this.updateTile(e,t),this._frameNumber=t.frameNumber,this.executeTraversal(e,t)}reset(){this.requestedTiles={},this.selectedTiles={},this.emptyTiles={},this._traversalStack.reset(),this._emptyTraversalStack.reset()}executeTraversal(e,t){const n=this._traversalStack;for(e._selectionDepth=1,n.push(e);n.length>0;){const s=n.pop();let o=!1;this.canTraverse(s,t)&&(this.updateChildTiles(s,t),o=this.updateAndPushChildren(s,t,n,s.hasRenderContent?s._selectionDepth+1:s._selectionDepth));const l=s.parent,f=!!(!l||l._shouldRefine),A=!o;s.hasRenderContent?s.refine===Tl.ADD?(this.loadTile(s,t),this.selectTile(s,t)):s.refine===Tl.REPLACE&&(this.loadTile(s,t),A&&this.selectTile(s,t)):(this.emptyTiles[s.id]=s,this.loadTile(s,t),A&&this.selectTile(s,t)),this.touchTile(s,t),s._shouldRefine=o&&f}const i=new Date().getTime();(this.traversalFinished(t)||i-this.lastUpdate>this.updateDebounceTime)&&(this.lastUpdate=i,this.options.onTraversalEnd(t))}updateChildTiles(e,t){const n=e.children;for(const i of n)this.updateTile(i,t)}updateAndPushChildren(e,t,n,i){const{loadSiblings:s,skipLevelOfDetail:o}=this.options,l=e.children;l.sort(this.compareDistanceToCamera.bind(this));const f=e.refine===Tl.REPLACE&&e.hasRenderContent&&!o;let A=!1,v=!0;for(const T of l)if(T._selectionDepth=i,T.isVisibleAndInRequestVolume?(n.find(T)&&n.delete(T),n.push(T),A=!0):(f||s)&&(this.loadTile(T,t),this.touchTile(T,t)),f){let I;if(T._inRequestVolume?T.hasRenderContent?I=T.contentAvailable:I=this.executeEmptyTraversal(T,t):I=!1,v=v&&I,!v)return!1}return A||(v=!1),v}updateTile(e,t){this.updateTileVisibility(e,t)}selectTile(e,t){this.shouldSelectTile(e)&&(e._selectedFrame=t.frameNumber,this.selectedTiles[e.id]=e)}loadTile(e,t){this.shouldLoadTile(e)&&(e._requestedFrame=t.frameNumber,e._priority=e._getPriority(),this.requestedTiles[e.id]=e)}touchTile(e,t){e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber}canTraverse(e,t,n=!1,i=!1){return e.hasChildren?e.hasTilesetContent?!e.contentExpired:!i&&!e.isVisibleAndInRequestVolume?!1:this.shouldRefine(e,t,n):!1}shouldLoadTile(e){return e.hasUnloadedContent||e.contentExpired}shouldSelectTile(e){return e.contentAvailable&&!this.options.skipLevelOfDetail}shouldRefine(e,t,n=!1){let i=e._screenSpaceError;return n&&(i=e.getScreenSpaceError(t,!0)),i>e.tileset.memoryAdjustedScreenSpaceError}updateTileVisibility(e,t){const n=[];if(this.options.viewportTraversersMap)for(const i in this.options.viewportTraversersMap)this.options.viewportTraversersMap[i]===t.viewport.id&&n.push(i);else n.push(t.viewport.id);e.updateVisibility(t,n)}compareDistanceToCamera(e,t){return e._distanceToCamera-t._distanceToCamera}anyChildrenVisible(e,t){let n=!1;for(const i of e.children)i.updateVisibility(t),n=n||i.isVisibleAndInRequestVolume;return n}executeEmptyTraversal(e,t){let n=!0;const i=this._emptyTraversalStack;for(i.push(e);i.length>0;){const s=i.pop(),o=!s.hasRenderContent&&this.canTraverse(s,t,!1,!1),l=!s.hasRenderContent&&s.children.length===0;if(!o&&!s.contentAvailable&&!l&&(n=!1),this.updateTile(s,t),s.isVisibleAndInRequestVolume||(this.loadTile(s,t),this.touchTile(s,t)),o){const f=s.children;for(const A of f)i.push(A)}}return n}}const BP=new dt;function wfe(r){return r!=null}class I2{tileset;header;id;url;parent;refine;type;contentUrl;lodMetricType="geometricError";lodMetricValue=0;boundingVolume=null;content=null;contentState=ca.UNLOADED;gpuMemoryUsageInBytes=0;children=[];depth=0;viewportIds=[];transform=new vn;extensions=null;implicitTiling=null;userData={};computedTransform;hasEmptyContent=!1;hasTilesetContent=!1;traverser=new sy({});_cacheNode=null;_frameNumber=null;_expireDate=null;_expiredContent=null;_boundingBox=void 0;_distanceToCamera=0;_screenSpaceError=0;_visibilityPlaneMask;_visible=void 0;_contentBoundingVolume;_viewerRequestVolume;_initialTransform=new vn;_priority=0;_selectedFrame=0;_requestedFrame=0;_selectionDepth=0;_touchedFrame=0;_centerZDepth=0;_shouldRefine=!1;_stackLength=0;_visitedFrame=0;_inRequestVolume=!1;_lodJudge=null;constructor(e,t,n,i=""){this.header=t,this.tileset=e,this.id=i||t.id,this.url=t.url,this.parent=n,this.refine=this._getRefine(t.refine),this.type=t.type,this.contentUrl=t.contentUrl,this._initializeLodMetric(t),this._initializeTransforms(t),this._initializeBoundingVolumes(t),this._initializeContent(t),this._initializeRenderingState(t),Object.seal(this)}destroy(){this.header=null}isDestroyed(){return this.header===null}get selected(){return this._selectedFrame===this.tileset._frameNumber}get isVisible(){return this._visible}get isVisibleAndInRequestVolume(){return this._visible&&this._inRequestVolume}get hasRenderContent(){return!this.hasEmptyContent&&!this.hasTilesetContent}get hasChildren(){return this.children.length>0||this.header.children&&this.header.children.length>0}get contentReady(){return this.contentState===ca.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===ca.UNLOADED}get contentExpired(){return this.contentState===ca.EXPIRED}get contentFailed(){return this.contentState===ca.FAILED}get distanceToCamera(){return this._distanceToCamera}get screenSpaceError(){return this._screenSpaceError}get boundingBox(){return this._boundingBox||(this._boundingBox=ffe(this.header.boundingVolume,this.boundingVolume)),this._boundingBox}getScreenSpaceError(e,t){switch(this.tileset.type){case zo.I3S:return KL(this,e);case zo.TILES3D:return _fe(this,e,t);default:throw new Error("Unsupported tileset type")}}unselect(){this._selectedFrame=0}_getGpuMemoryUsageInBytes(){return this.content.gpuMemoryUsageInBytes||this.content.byteLength||0}_getPriority(){const e=this.tileset._traverser,{skipLevelOfDetail:t}=e.options,n=this.refine===Tl.ADD||t;if(n&&!this.isVisible&&this._visible!==void 0||this.tileset._frameNumber-this._touchedFrame>=1||this.contentState===ca.UNLOADED)return-1;const i=this.parent,o=i&&(!n||this._screenSpaceError===0||i.hasTilesetContent)?i._screenSpaceError:this._screenSpaceError,l=e.root?e.root._screenSpaceError:0;return Math.max(l-o,0)}async loadContent(){if(this.hasEmptyContent)return!1;if(this.content)return!0;this.contentExpired&&(this._expireDate=null),this.contentState=ca.LOADING;const t=await this.tileset._requestScheduler.scheduleRequest(this.id,this._getPriority.bind(this));if(!t)return this.contentState=ca.UNLOADED,!1;try{const n=this.tileset.getTileUrl(this.contentUrl),i=this.tileset.loader,s={...this.tileset.loadOptions,[i.id]:{...this.tileset.loadOptions[i.id],isTileset:this.type==="json",...this._getLoaderSpecificOptions(i.id)}};return this.content=await Kc(n,i,s),this.tileset.options.contentLoader&&await this.tileset.options.contentLoader(this),this._isTileset()&&this.tileset._initializeTileHeaders(this.content,this),this.contentState=ca.READY,this._onContentLoaded(),!0}catch(n){throw this.contentState=ca.FAILED,n}finally{t.done()}}unloadContent(){return this.content&&this.content.destroy&&this.content.destroy(),this.content=null,this.header.content&&this.header.content.destroy&&this.header.content.destroy(),this.header.content=null,this.contentState=ca.UNLOADED,!0}updateVisibility(e,t){if(this._frameNumber===e.frameNumber)return;const n=this.parent,i=n?n._visibilityPlaneMask:pa.MASK_INDETERMINATE;if(this.tileset._traverser.options.updateTransforms){const s=n?n.computedTransform:this.tileset.modelMatrix;this._updateTransform(s)}this._distanceToCamera=this.distanceToTile(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._visibilityPlaneMask=this.visibility(e,i),this._visible=this._visibilityPlaneMask!==pa.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._frameNumber=e.frameNumber,this.viewportIds=t}visibility(e,t){const{cullingVolume:n}=e,{boundingVolume:i}=this;return n.computeVisibilityWithPlaneMask(i,t)}contentVisibility(){return!0}distanceToTile(e){const t=this.boundingVolume;return Math.sqrt(Math.max(t.distanceSquaredTo(e.camera.position),0))}cameraSpaceZDepth({camera:e}){const t=this.boundingVolume;return BP.subVectors(t.center,e.position),e.direction.dot(BP)}insideViewerRequestVolume(e){const t=this._viewerRequestVolume;return!t||t.distanceSquaredTo(e.camera.position)<=0}updateExpiration(){if(wfe(this._expireDate)&&this.contentReady&&!this.hasEmptyContent){const e=Date.now();Date.lessThan(this._expireDate,e)&&(this.contentState=ca.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 vn(e.transform):new vn;const t=this.parent,n=this.tileset,i=t&&t.computedTransform?t.computedTransform.clone():n.modelMatrix.clone();this.computedTransform=new vn(i).multiplyRight(this.transform);const s=t&&t._initialTransform?t._initialTransform.clone():new vn;this._initialTransform=new vn(s).multiplyRight(this.transform)}_initializeBoundingVolumes(e){this._contentBoundingVolume=null,this._viewerRequestVolume=null,this._updateBoundingVolume(e)}_initializeContent(e){this.content={_tileset:this.tileset,_tile:this},this.hasEmptyContent=!0,this.contentState=ca.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=pa.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||Tl.REPLACE}_isTileset(){return this.contentUrl.indexOf(".json")!==-1}_onContentLoaded(){switch(this.content&&this.content.type){case"vctr":case"geom":this.tileset._traverser.disableSkipLevelOfDetail=!0;break}this._isTileset()?this.hasTilesetContent=!0:this.gpuMemoryUsageInBytes=this._getGpuMemoryUsageInBytes()}_updateBoundingVolume(e){this.boundingVolume=Bb(e.boundingVolume,this.computedTransform,this.boundingVolume);const t=e.content;t&&(t.boundingVolume&&(this._contentBoundingVolume=Bb(t.boundingVolume,this.computedTransform,this._contentBoundingVolume)),e.viewerRequestVolume&&(this._viewerRequestVolume=Bb(e.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)))}_updateTransform(e=new vn){const t=e.clone().multiplyRight(this.transform);t.equals(this.computedTransform)||(this.computedTransform=t,this._updateBoundingVolume(this.header))}_getLoaderSpecificOptions(e){switch(e){case"i3s":return{...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};case"3d-tiles":case"cesium-ion":default:return bfe(this.tileset.tileset)}}}class Tfe extends sy{compareDistanceToCamera(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera}updateTileVisibility(e,t){if(super.updateTileVisibility(e,t),!e.isVisibleAndInRequestVolume)return;const n=e.children.length>0;if(e.hasTilesetContent&&n){const o=e.children[0];this.updateTileVisibility(o,t),e._visible=o._visible;return}if(this.meetsScreenSpaceErrorEarly(e,t)){e._visible=!1;return}const i=e.refine===Tl.REPLACE,s=e._optimChildrenWithinParent===lfe.USE_OPTIMIZATION;if(i&&s&&n&&!this.anyChildrenVisible(e,t)){e._visible=!1;return}}meetsScreenSpaceErrorEarly(e,t){const{parent:n}=e;return!n||n.hasTilesetContent||n.refine!==Tl.ADD?!1:!this.shouldRefine(e,t,!0)}}class Efe{frameNumberMap=new Map;register(e,t){const n=this.frameNumberMap.get(e)||new Map,i=n.get(t)||0;n.set(t,i+1),this.frameNumberMap.set(e,n)}deregister(e,t){const n=this.frameNumberMap.get(e);if(!n)return;const i=n.get(t)||1;n.set(t,i-1)}isZero(e,t){return(this.frameNumberMap.get(e)?.get(t)||0)===0}}const Rb={REQUESTED:"REQUESTED",COMPLETED:"COMPLETED",ERROR:"ERROR"};class Cfe{_statusMap;pendingTilesRegister=new Efe;constructor(){this._statusMap={}}add(e,t,n,i){if(!this._statusMap[t]){const{frameNumber:s,viewport:{id:o}}=i;this._statusMap[t]={request:e,callback:n,key:t,frameState:i,status:Rb.REQUESTED},this.pendingTilesRegister.register(o,s),e().then(l=>{this._statusMap[t].status=Rb.COMPLETED;const{frameNumber:f,viewport:{id:A}}=this._statusMap[t].frameState;this.pendingTilesRegister.deregister(A,f),this._statusMap[t].callback(l,i)}).catch(l=>{this._statusMap[t].status=Rb.ERROR;const{frameNumber:f,viewport:{id:A}}=this._statusMap[t].frameState;this.pendingTilesRegister.deregister(A,f),n(l)})}}update(e,t){if(this._statusMap[e]){const{frameNumber:n,viewport:{id:i}}=this._statusMap[e].frameState;this.pendingTilesRegister.deregister(i,n);const{frameNumber:s,viewport:{id:o}}=t;this.pendingTilesRegister.register(o,s),this._statusMap[e].frameState=t}}find(e){return this._statusMap[e]}hasPendingTiles(e,t){return!this.pendingTilesRegister.isZero(e,t)}}class Sfe extends sy{_tileManager;constructor(e){super(e),this._tileManager=new Cfe}traversalFinished(e){return!this._tileManager.hasPendingTiles(e.viewport.id,this._frameNumber||0)}shouldRefine(e,t){return e._lodJudge=vfe(e,t),e._lodJudge==="DIG"}updateChildTiles(e,t){const n=e.header.children||[],i=e.children,s=e.tileset;for(const o of n){const l=`${o.id}-${t.viewport.id}`,f=i&&i.find(A=>A.id===l);if(f)f&&this.updateTile(f,t);else{let A=()=>this._loadTile(o.id,s);this._tileManager.find(l)?this._tileManager.update(l,t):(s.tileset.nodePages&&(A=()=>s.tileset.nodePagesTile.formTileFromNodePages(o.id)),this._tileManager.add(A,l,T=>this._onTileLoad(T,e,l),t))}}return!1}async _loadTile(e,t){const{loader:n}=t,i=t.getTileUrl(`${t.url}/nodes/${e}`),s={...t.loadOptions,i3s:{...t.loadOptions.i3s,isTileHeader:!0}};return await Kc(i,n,s)}_onTileLoad(e,t,n){const i=new I2(t.tileset,e,t,n);t.children.push(i);const s=this._tileManager.find(i.id).frameState;this.updateTile(i,s),this._frameNumber===s.frameNumber&&(this.traversalFinished(s)||new Date().getTime()-this.lastUpdate>this.updateDebounceTime)&&this.executeTraversal(i,s)}}const Ife={description:"",ellipsoid:bi.WGS84,modelMatrix:new vn,throttleRequests:!0,maxRequests:64,maximumMemoryUsage:32,memoryCacheOverflow:1,maximumTilesSelected:0,debounceTime:0,onTileLoad:()=>{},onTileUnload:()=>{},onTileError:()=>{},onTraversalComplete:r=>r,contentLoader:void 0,viewDistanceScale:1,maximumScreenSpaceError:8,memoryAdjustedScreenSpaceError:!1,loadTiles:!0,updateTransforms:!0,viewportTraversersMap:null,loadOptions:{fetch:{}},attributions:[],basePath:"",i3s:{}},J0="Tiles In Tileset(s)",Ob="Tiles In Memory",PP="Tiles In View",MP="Tiles To Render",RP="Tiles Loaded",Db="Tiles Loading",OP="Tiles Unloaded",DP="Failed Tile Loads",FP="Points/Vertices",Fb="Tile Memory Use",LP="Maximum Screen Space Error";class Bfe{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 Yue;_requestScheduler;updatePromise=null;tilesetInitializationPromise;constructor(e,t){this.options={...Ife,...t},this.tileset=e,this.loader=e.loader,this.type=e.type,this.url=e.url,this.basePath=e.basePath||pL(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 Toe({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 hh({id:this.url}),this._initializeStats(),this.tilesetInitializationPromise=this._initializeTileSet(e)}destroy(){this._destroy()}isLoaded(){return this._pendingCount===0&&this._frameNumber!==0&&this._requestedTiles.length===0}get tiles(){return Object.values(this._tiles)}get frameNumber(){return this._frameNumber}get queryParams(){return new URLSearchParams(this._queryParams).toString()}setProps(e){this.options={...this.options,...e}}getTileUrl(e){if(e.startsWith("data:"))return e;let n=e;return this.queryParams.length&&(n=`${e}${e.includes("?")?"&":"?"}${this.queryParams}`),n}hasExtension(e){return this._extensionsUsed.indexOf(e)>-1}update(e=null){this.tilesetInitializationPromise.then(()=>{!e&&this.lastUpdatedVieports?e=this.lastUpdatedVieports:this.lastUpdatedVieports=e,e&&this.doUpdate(e)})}async selectTiles(e=null){return await this.tilesetInitializationPromise,e&&(this.lastUpdatedVieports=e),this.updatePromise||(this.updatePromise=new Promise(t=>{setTimeout(()=>{this.lastUpdatedVieports&&this.doUpdate(this.lastUpdatedVieports),t(this._frameNumber),this.updatePromise=null},this.options.debounceTime)})),this.updatePromise}adjustScreenSpaceError(){this.gpuMemoryUsageInBytes<this._cacheBytes?this.memoryAdjustedScreenSpaceError=Math.max(this.memoryAdjustedScreenSpaceError/1.02,this.options.maximumScreenSpaceError):this.gpuMemoryUsageInBytes>this._cacheBytes+this._cacheOverflowBytes&&(this.memoryAdjustedScreenSpaceError*=1.02)}doUpdate(e){if("loadTiles"in this.options&&!this.options.loadTiles||this.traverseCounter>0)return;const t=e instanceof Array?e:[e];this._cache.reset(),this._frameNumber++,this.traverseCounter=t.length;const n=[];for(const i of t){const s=i.id;this._needTraverse(s)?n.push(s):this.traverseCounter--}for(const i of t){const s=i.id;if(this.roots[s]||(this.roots[s]=this._initializeTileHeaders(this.tileset,null)),!n.includes(s))continue;const o=efe(i,this._frameNumber);this._traverser.traverse(this.roots[s],o,this.options)}}_needTraverse(e){let t=e;return this.options.viewportTraversersMap&&(t=this.options.viewportTraversersMap[e]),t===e}_onTraversalEnd(e){const t=e.viewport.id;this.frameStateData[t]||(this.frameStateData[t]={selectedTiles:[],_requestedTiles:[],_emptyTiles:[]});const n=this.frameStateData[t],i=Object.values(this._traverser.selectedTiles),[s,o]=tfe(i,e,this.options.maximumTilesSelected);n.selectedTiles=s;for(const l of o)l.unselect();n._requestedTiles=Object.values(this._traverser.requestedTiles),n._emptyTiles=Object.values(this._traverser.emptyTiles),this.traverseCounter--,!(this.traverseCounter>0)&&this._updateTiles()}_updateTiles(){this.selectedTiles=[],this._requestedTiles=[],this._emptyTiles=[];for(const e in this.frameStateData){const t=this.frameStateData[e];this.selectedTiles=this.selectedTiles.concat(t.selectedTiles),this._requestedTiles=this._requestedTiles.concat(t._requestedTiles),this._emptyTiles=this._emptyTiles.concat(t._emptyTiles)}this.selectedTiles=this.options.onTraversalComplete(this.selectedTiles);for(const e of this.selectedTiles)this._tiles[e.id]=e;this._loadTiles(),this._unloadTiles(),this._updateStats()}_tilesChanged(e,t){if(e.length!==t.length)return!0;const n=new Set(e.map(o=>o.id)),i=new Set(t.map(o=>o.id));let s=e.filter(o=>!i.has(o.id)).length>0;return s=s||t.filter(o=>!n.has(o.id)).length>0,s}_loadTiles(){for(const e of this._requestedTiles)e.contentUnloaded&&this._loadTile(e)}_unloadTiles(){this._cache.unloadTiles(this,(e,t)=>e._unloadTile(t))}_updateStats(){let e=0,t=0;for(const n of this.selectedTiles)n.contentAvailable&&n.content&&(e++,n.content.pointCount?t+=n.content.pointCount:t+=n.content.vertexCount);this.stats.get(PP).count=this.selectedTiles.length,this.stats.get(MP).count=e,this.stats.get(FP).count=t,this.stats.get(LP).count=this.memoryAdjustedScreenSpaceError}async _initializeTileSet(e){this.type===zo.I3S&&(this.calculateViewPropsI3S(),e.root=await e.root),this.root=this._initializeTileHeaders(e,null),this.type===zo.TILES3D&&(this._initializeTiles3DTileset(e),this.calculateViewPropsTiles3D()),this.type===zo.I3S&&this._initializeI3STileset()}calculateViewPropsI3S(){const e=this.tileset.fullExtent;if(e){const{xmin:n,xmax:i,ymin:s,ymax:o,zmin:l,zmax:f}=e;this.cartographicCenter=new dt(n+(i-n)/2,s+(o-s)/2,l+(f-l)/2),this.cartesianCenter=new dt,bi.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=WL(e,this.cartographicCenter,this.cartesianCenter);return}const t=this.tileset.store?.extent;if(t){const[n,i,s,o]=t;this.cartographicCenter=new dt(n+(s-n)/2,i+(o-i)/2,0),this.cartesianCenter=new dt,bi.WGS84.cartographicToCartesian(this.cartographicCenter,this.cartesianCenter),this.zoom=ofe(t,this.cartographicCenter,this.cartesianCenter);return}console.warn("Extent is not defined in the tileset header"),this.cartographicCenter=new dt,this.zoom=1}calculateViewPropsTiles3D(){const e=this.root,{center:t}=e.boundingVolume;if(!t){console.warn("center was not pre-calculated for the root tile"),this.cartographicCenter=new dt,this.zoom=1;return}t[0]!==0||t[1]!==0||t[2]!==0?(this.cartographicCenter=new dt,bi.WGS84.cartesianToCartographic(t,this.cartographicCenter)):this.cartographicCenter=new dt(0,0,-bi.WGS84.radii[0]),this.cartesianCenter=t,this.zoom=sfe(e.boundingVolume,this.cartographicCenter)}_initializeStats(){this.stats.get(J0),this.stats.get(Db),this.stats.get(Ob),this.stats.get(PP),this.stats.get(MP),this.stats.get(RP),this.stats.get(OP),this.stats.get(DP),this.stats.get(FP),this.stats.get(Fb,"memory"),this.stats.get(LP)}_initializeTileHeaders(e,t){const n=new I2(this,e.root,t);if(t&&(t.children.push(n),n.depth=t.depth+1),this.type===zo.TILES3D){const i=[];for(i.push(n);i.length>0;){const s=i.pop();this.stats.get(J0).incrementCount();const o=s.header.children||[];for(const l of o){const f=new I2(this,l,s);if(f.contentUrl?.includes("?session=")){const v=new URL(f.contentUrl).searchParams.get("session");v&&(this._queryParams.session=v)}s.children.push(f),f.depth=s.depth+1,i.push(f)}}}return n}_initializeTraverser(){let e;switch(this.type){case zo.TILES3D:e=Tfe;break;case zo.I3S:e=Sfe;break;default:e=sy}return new e({basePath:this.basePath,onTraversalEnd:this._onTraversalEnd.bind(this)})}_destroyTileHeaders(e){this._destroySubtree(e)}async _loadTile(e){let t;try{this._onStartTileLoading(),t=await e.loadContent()}catch(n){this._onTileLoadError(e,n instanceof Error?n:new Error("load failed"))}finally{this._onEndTileLoading(),this._onTileLoad(e,t)}}_onTileLoadError(e,t){this.stats.get(DP).incrementCount();const n=t.message||t.toString(),i=e.url;console.error(`A 3D tile failed to load: ${e.url} ${n}
4561`),this.options.onTileError(e,n,i)}_onTileLoad(e,t){if(t){if(this.type===zo.I3S){const n=this.tileset?.nodePagesTile?.nodesInNodePages||0;this.stats.get(J0).reset(),this.stats.get(J0).addCount(n)}e&&e.content&&Que(e,e.content),this.updateContentTypes(e),this._addTileToCache(e),this.options.onTileLoad(e)}}updateContentTypes(e){if(this.type===zo.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}else if(this.type===zo.TILES3D){const{extensionsRemoved:t=[]}=e.content?.gltf||{};t.includes("KHR_draco_mesh_compression")&&(this.contentFormats.draco=!0),t.includes("EXT_meshopt_compression")&&(this.contentFormats.meshopt=!0),t.includes("KHR_texture_basisu")&&(this.contentFormats.ktx2=!0)}}_onStartTileLoading(){this._pendingCount++,this.stats.get(Db).incrementCount()}_onEndTileLoading(){this._pendingCount--,this.stats.get(Db).decrementCount()}_addTileToCache(e){this._cache.add(this,e,t=>t._updateCacheStats(e))}_updateCacheStats(e){this.stats.get(RP).incrementCount(),this.stats.get(Ob).incrementCount(),this.gpuMemoryUsageInBytes+=e.gpuMemoryUsageInBytes||0,this.stats.get(Fb).count=this.gpuMemoryUsageInBytes,this.options.memoryAdjustedScreenSpaceError&&this.adjustScreenSpaceError()}_unloadTile(e){this.gpuMemoryUsageInBytes-=e.gpuMemoryUsageInBytes||0,this.stats.get(Ob).decrementCount(),this.stats.get(OP).incrementCount(),this.stats.get(Fb).count=this.gpuMemoryUsageInBytes,this.options.onT
vendor: 45,721 bytes, line 4561
4561ileUnload(e),e.unloadContent()}_destroy(){const e=[];for(this.root&&e.push(this.root);e.length>0;){const t=e.pop();for(const n of t.children)e.push(n);this._destroyTile(t)}this.root=null}_destroySubtree(e){const t=e,n=[];for(n.push(t);n.length>0;){e=n.pop();for(const i of e.children)n.push(i);e!==t&&this._destroyTile(e)}t.children=[]}_destroyTile(e){this._cache.unloadTile(this,e),this._unloadTile(e),e.destroy()}_initializeTiles3DTileset(e){if(e.queryString){const t=new URLSearchParams(e.queryString),n=Object.fromEntries(t.entries());this._queryParams={...this._queryParams,...n}}if(this.asset=e.asset,!this.asset)throw new Error("Tileset must have an asset property.");if(this.asset.version!=="0.0"&&this.asset.version!=="1.0"&&this.asset.version!=="1.1")throw new Error("The tileset must be 3D Tiles version either 0.0 or 1.0 or 1.1.");"tilesetVersion"in this.asset&&(this._queryParams.v=this.asset.tilesetVersion),this.credits={attributions:this.options.attributions||[]},this.description=this.options.description||"",this.properties=e.properties,this.geometricError=e.geometricError,this._extensionsUsed=e.extensionsUsed||[],this.extras=e.extras}_initializeI3STileset(){this.loadOptions.i3s&&"token"in this.loadOptions.i3s&&(this._queryParams.token=this.loadOptions.i3s.token)}}const ZL="4.2.4",yA={COMPOSITE:"cmpt",POINT_CLOUD:"pnts",BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",GLTF:"glTF"};function YL(r,e,t){Ri(r instanceof ArrayBuffer);const n=new TextDecoder("utf8"),i=new Uint8Array(r,e,t);return n.decode(i)}function Pfe(r,e=0){const t=new DataView(r);return`${String.fromCharCode(t.getUint8(e+0))}${String.fromCharCode(t.getUint8(e+1))}${String.fromCharCode(t.getUint8(e+2))}${String.fromCharCode(t.getUint8(e+3))}`}const Mfe="4.2.4",Rfe={dataType:null,batchType:null,name:"Draco",id:"draco",module:"draco",version:Mfe,worker:!0,extensions:["drc"],mimeTypes:["application/octet-stream"],binary:!0,tests:["DRACO"],options:{draco:{decoderType:typeof WebAssembly=="object"?"wasm":"js",libraryPath:"libs/",extraAttributes:{},attributeNameEntry:void 0}}};function Ofe(r){switch(r.constructor){case Int8Array:return"int8";case Uint8Array:case Uint8ClampedArray:return"uint8";case Int16Array:return"int16";case Uint16Array:return"uint16";case Int32Array:return"int32";case Uint32Array:return"uint32";case Float32Array:return"float32";case Float64Array:return"float64";default:return"null"}}function Dfe(r){let e=1/0,t=1/0,n=1/0,i=-1/0,s=-1/0,o=-1/0;const l=r.POSITION?r.POSITION.value:[],f=l&&l.length;for(let A=0;A<f;A+=3){const v=l[A],T=l[A+1],I=l[A+2];e=v<e?v:e,t=T<t?T:t,n=I<n?I:n,i=v>i?v:i,s=T>s?T:s,o=I>o?I:o}return[[e,t,n],[i,s,o]]}function Ffe(r,e,t){const n=Ofe(e.value),i=t||Lfe(e);return{name:r,type:{type:"fixed-size-list",listSize:e.size,children:[{name:"value",type:n}]},nullable:!1,metadata:i}}function Lfe(r){const e={};return"byteOffset"in r&&(e.byteOffset=r.byteOffset.toString(10)),"byteStride"in r&&(e.byteStride=r.byteStride.toString(10)),"normalized"in r&&(e.normalized=r.normalized.toString()),e}function kfe(r,e,t){const n=QL(e.metadata),i=[],s=Nfe(e.attributes);for(const o in r){const l=r[o],f=kP(o,l,s[o]);i.push(f)}if(t){const o=kP("indices",t);i.push(o)}return{fields:i,metadata:n}}function Nfe(r){const e={};for(const t in r){const n=r[t];e[n.name||"undefined"]=n}return e}function kP(r,e,t){const n=t?QL(t.metadata):void 0;return Ffe(r,e,n)}function QL(r){Object.entries(r);const e={};for(const t in r)e[`${t}.string`]=JSON.stringify(r[t]);return e}const NP={POSITION:"POSITION",NORMAL:"NORMAL",COLOR:"COLOR_0",TEX_COORD:"TEXCOORD_0"},Ufe={1:Int8Array,2:Uint8Array,3:Int16Array,4:Uint16Array,5:Int32Array,6:Uint32Array,9:Float32Array},zfe=4;class Vfe{draco;decoder;metadataQuerier;constructor(e){this.draco=e,this.decoder=new this.draco.Decoder,this.metadataQuerier=new this.draco.MetadataQuerier}destroy(){this.draco.destroy(this.decoder),this.draco.destroy(this.metadataQuerier)}parseSync(e,t={}){const n=new this.draco.DecoderBuffer;n.Init(new Int8Array(e),e.byteLength),this._disableAttributeTransforms(t);const i=this.decoder.GetEncodedGeometryType(n),s=i===this.draco.TRIANGULAR_MESH?new this.draco.Mesh:new this.draco.PointCloud;try{let o;switch(i){case this.draco.TRIANGULAR_MESH:o=this.decoder.DecodeBufferToMesh(n,s);break;case this.draco.POINT_CLOUD:o=this.decoder.DecodeBufferToPointCloud(n,s);break;default:throw new Error("DRACO: Unknown geometry type.")}if(!o.ok()||!s.ptr){const I=`DRACO decompression failed: ${o.error_msg()}`;throw new Error(I)}const l=this._getDracoLoaderData(s,i,t),f=this._getMeshData(s,l,t),A=Dfe(f.attributes),v=kfe(f.attributes,l,f.indices);return{loader:"draco",loaderData:l,header:{vertexCount:s.num_points(),boundingBox:A},...f,schema:v}}finally{this.draco.destroy(n),s&&this.draco.destroy(s)}}_getDracoLoaderData(e,t,n){const i=this._getTopLevelMetadata(e),s=this._getDracoAttributes(e,n);return{geometry_type:t,num_attributes:e.num_attributes(),num_points:e.num_points(),num_faces:e instanceof this.draco.Mesh?e.num_faces():0,metadata:i,attributes:s}}_getDracoAttributes(e,t){const n={};for(let i=0;i<e.num_attributes();i++){const s=this.decoder.GetAttribute(e,i),o=this._getAttributeMetadata(e,i);n[s.unique_id()]={unique_id:s.unique_id(),attribute_type:s.attribute_type(),data_type:s.data_type(),num_components:s.num_components(),byte_offset:s.byte_offset(),byte_stride:s.byte_stride(),normalized:s.normalized(),attribute_index:i,metadata:o};const l=this._getQuantizationTransform(s,t);l&&(n[s.unique_id()].quantization_transform=l);const f=this._getOctahedronTransform(s,t);f&&(n[s.unique_id()].octahedron_transform=f)}return n}_getMeshData(e,t,n){const i=this._getMeshAttributes(t,e,n);if(!i.POSITION)throw new Error("DRACO: No position attribute found.");if(e instanceof this.draco.Mesh)switch(n.topology){case"triangle-strip":return{topology:"triangle-strip",mode:4,attributes:i,indices:{value:this._getTriangleStripIndices(e),size:1}};case"triangle-list":default:return{topology:"triangle-list",mode:5,attributes:i,indices:{value:this._getTriangleListIndices(e),size:1}}}return{topology:"point-list",mode:0,attributes:i}}_getMeshAttributes(e,t,n){const i={};for(const s of Object.values(e.attributes)){const o=this._deduceAttributeName(s,n);s.name=o;const l=this._getAttributeValues(t,s);if(l){const{value:f,size:A}=l;i[o]={value:f,size:A,byteOffset:s.byte_offset,byteStride:s.byte_stride,normalized:s.normalized}}}return i}_getTriangleListIndices(e){const n=e.num_faces()*3,i=n*zfe,s=this.draco._malloc(i);try{return this.decoder.GetTrianglesUInt32Array(e,i,s),new Uint32Array(this.draco.HEAPF32.buffer,s,n).slice()}finally{this.draco._free(s)}}_getTriangleStripIndices(e){const t=new this.draco.DracoInt32Array;try{return this.decoder.GetTriangleStripsFromMesh(e,t),Hfe(t)}finally{this.draco.destroy(t)}}_getAttributeValues(e,t){const n=Ufe[t.data_type];if(!n)return console.warn(`DRACO: Unsupported attribute type ${t.data_type}`),null;const i=t.num_components,o=e.num_points()*i,l=o*n.BYTES_PER_ELEMENT,f=jfe(this.draco,n);let A;const v=this.draco._malloc(l);try{const T=this.decoder.GetAttribute(e,t.attribute_index);this.decoder.GetAttributeDataArrayForAllPoints(e,T,f,l,v),A=new n(this.draco.HEAPF32.buffer,v,o).slice()}finally{this.draco._free(v)}return{value:A,size:i}}_deduceAttributeName(e,t){const n=e.unique_id;for(const[o,l]of Object.entries(t.extraAttributes||{}))if(l===n)return o;const i=e.attribute_type;for(const o in NP)if(this.draco[o]===i)return NP[o];const s=t.attributeNameEntry||"name";return e.metadata[s]?e.metadata[s].string:`CUSTOM_ATTRIBUTE_${n}`}_getTopLevelMetadata(e){const t=this.decoder.GetMetadata(e);return this._getDracoMetadata(t)}_getAttributeMetadata(e,t){const n=this.decoder.GetAttributeMetadata(e,t);return this._getDracoMetadata(n)}_getDracoMetadata(e){if(!e||!e.ptr)return{};const t={},n=this.metadataQuerier.NumEntries(e);for(let i=0;i<n;i++){const s=this.metadataQuerier.GetEntryName(e,i);t[s]=this._getDracoMetadataField(e,s)}return t}_getDracoMetadataField(e,t){const n=new this.draco.DracoInt32Array;try{this.metadataQuerier.GetIntEntryArray(e,t,n);const i=Gfe(n);return{int:this.metadataQuerier.GetIntEntry(e,t),string:this.metadataQuerier.GetStringEntry(e,t),double:this.metadataQuerier.GetDoubleEntry(e,t),intArray:i}}finally{this.draco.destroy(n)}}_disableAttributeTransforms(e){const{quantizedAttributes:t=[],octahedronAttributes:n=[]}=e,i=[...t,...n];for(const s of i)this.decoder.SkipAttributeTransform(this.draco[s])}_getQuantizationTransform(e,t){const{quantizedAttributes:n=[]}=t,i=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(i)){const o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits(),range:o.range(),min_values:new Float32Array([1,2,3]).map(l=>o.min_value(l))}}finally{this.draco.destroy(o)}}return null}_getOctahedronTransform(e,t){const{octahedronAttributes:n=[]}=t,i=e.attribute_type();if(n.map(o=>this.decoder[o]).includes(i)){const o=new this.draco.AttributeQuantizationTransform;try{if(o.InitFromAttribute(e))return{quantization_bits:o.quantization_bits()}}finally{this.draco.destroy(o)}}return null}}function jfe(r,e){switch(e){case Float32Array:return r.DT_FLOAT32;case Int8Array:return r.DT_INT8;case Int16Array:return r.DT_INT16;case Int32Array:return r.DT_INT32;case Uint8Array:return r.DT_UINT8;case Uint16Array:return r.DT_UINT16;case Uint32Array:return r.DT_UINT32;default:return r.DT_INVALID}}function Gfe(r){const e=r.size(),t=new Int32Array(e);for(let n=0;n<e;n++)t[n]=r.GetValue(n);return t}function Hfe(r){const e=r.size(),t=new Int32Array(e);for(let n=0;n<e;n++)t[n]=r.GetValue(n);return t}const Wfe="1.5.6",$fe="1.4.1",Lb=`https://www.gstatic.com/draco/versioned/decoders/${Wfe}`,jo={DECODER:"draco_wasm_wrapper.js",DECODER_WASM:"draco_decoder.wasm",FALLBACK_DECODER:"draco_decoder.js",ENCODER:"draco_encoder.js"},kb={[jo.DECODER]:`${Lb}/${jo.DECODER}`,[jo.DECODER_WASM]:`${Lb}/${jo.DECODER_WASM}`,[jo.FALLBACK_DECODER]:`${Lb}/${jo.FALLBACK_DECODER}`,[jo.ENCODER]:`https://raw.githubusercontent.com/google/draco/${$fe}/javascript/${jo.ENCODER}`};let Nb;async function Xfe(r){const e=r.modules||{};return e.draco3d?Nb||=e.draco3d.createDecoderModule({}).then(t=>({draco:t})):Nb||=qfe(r),await Nb}async function qfe(r){let e,t;switch(r.draco&&r.draco.decoderType){case"js":e=await eh(kb[jo.FALLBACK_DECODER],"draco",r,jo.FALLBACK_DECODER);break;case"wasm":default:[e,t]=await Promise.all([await eh(kb[jo.DECODER],"draco",r,jo.DECODER),await eh(kb[jo.DECODER_WASM],"draco",r,jo.DECODER_WASM)])}return e=e||globalThis.DracoDecoderModule,await Jfe(e,t)}function Jfe(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r({...t,onModuleLoaded:i=>n({draco:i})})})}const e6={...Rfe,parse:Kfe};async function Kfe(r,e){const{draco:t}=await Xfe(e),n=new Vfe(t);try{return n.parseSync(r,e?.draco)}finally{n.destroy()}}const Zfe={POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6},ps={BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DOUBLE:5130},Un={...Zfe,...ps},Ub={[ps.DOUBLE]:Float64Array,[ps.FLOAT]:Float32Array,[ps.UNSIGNED_SHORT]:Uint16Array,[ps.UNSIGNED_INT]:Uint32Array,[ps.UNSIGNED_BYTE]:Uint8Array,[ps.BYTE]:Int8Array,[ps.SHORT]:Int16Array,[ps.INT]:Int32Array},Yfe={DOUBLE:ps.DOUBLE,FLOAT:ps.FLOAT,UNSIGNED_SHORT:ps.UNSIGNED_SHORT,UNSIGNED_INT:ps.UNSIGNED_INT,UNSIGNED_BYTE:ps.UNSIGNED_BYTE,BYTE:ps.BYTE,SHORT:ps.SHORT,INT:ps.INT},zb="Failed to convert GL type";class ac{static fromTypedArray(e){e=ArrayBuffer.isView(e)?e.constructor:e;for(const t in Ub)if(Ub[t]===e)return t;throw new Error(zb)}static fromName(e){const t=Yfe[e];if(!t)throw new Error(zb);return t}static getArrayType(e){switch(e){case ps.UNSIGNED_SHORT_5_6_5:case ps.UNSIGNED_SHORT_4_4_4_4:case ps.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;default:const t=Ub[e];if(!t)throw new Error(zb);return t}}static getByteSize(e){return ac.getArrayType(e).BYTES_PER_ELEMENT}static validate(e){return!!ac.getArrayType(e)}static createTypedArray(e,t,n=0,i){i===void 0&&(i=(t.byteLength-n)/ac.getByteSize(e));const s=ac.getArrayType(e);return new s(t,n,i)}}function Qfe(r,e){if(!r)throw new Error(`math.gl assertion failed. ${e}`)}function ehe(r,e=[0,0,0]){const t=r>>11&31,n=r>>5&63,i=r&31;return e[0]=t<<3,e[1]=n<<2,e[2]=i<<3,e}new _x;new dt;new _x;new _x;function UP(r,e=255){return $c(r,0,e)/e*2-1}function zP(r){return r<0?-1:1}function the(r,e,t,n){if(Qfe(n),r<0||r>t||e<0||e>t)throw new Error(`x and y must be unsigned normalized integers between 0 and ${t}`);if(n.x=UP(r,t),n.y=UP(e,t),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){const i=n.x;n.x=(1-Math.abs(n.y))*zP(i),n.y=(1-Math.abs(i))*zP(n.y)}return n.normalize()}function rhe(r,e,t){return the(r,e,255,t)}class Lw{json;buffer;featuresLength=0;_cachedTypedArrays={};constructor(e,t){this.json=e,this.buffer=t}getExtension(e){return this.json.extensions&&this.json.extensions[e]}hasProperty(e){return!!this.json[e]}getGlobalProperty(e,t=Un.UNSIGNED_INT,n=1){const i=this.json[e];return i&&Number.isFinite(i.byteOffset)?this._getTypedArrayFromBinary(e,t,n,1,i.byteOffset):i}getPropertyArray(e,t,n){const i=this.json[e];return i&&Number.isFinite(i.byteOffset)?("componentType"in i&&(t=ac.fromName(i.componentType)),this._getTypedArrayFromBinary(e,t,n,this.featuresLength,i.byteOffset)):this._getTypedArrayFromArray(e,t,i)}getProperty(e,t,n,i,s){const o=this.json[e];if(!o)return o;const l=this.getPropertyArray(e,t,n);if(n===1)return l[i];for(let f=0;f<n;++f)s[f]=l[n*i+f];return s}_getTypedArrayFromBinary(e,t,n,i,s){const o=this._cachedTypedArrays;let l=o[e];return l||(l=ac.createTypedArray(t,this.buffer.buffer,this.buffer.byteOffset+s,i*n),o[e]=l),l}_getTypedArrayFromArray(e,t,n){const i=this._cachedTypedArrays;let s=i[e];return s||(s=ac.createTypedArray(t,n),i[e]=s),s}}const nhe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},ihe={SCALAR:(r,e)=>r[e],VEC2:(r,e)=>[r[2*e+0],r[2*e+1]],VEC3:(r,e)=>[r[3*e+0],r[3*e+1],r[3*e+2]],VEC4:(r,e)=>[r[4*e+0],r[4*e+1],r[4*e+2],r[4*e+3]],MAT2:(r,e)=>[r[4*e+0],r[4*e+1],r[4*e+2],r[4*e+3]],MAT3:(r,e)=>[r[9*e+0],r[9*e+1],r[9*e+2],r[9*e+3],r[9*e+4],r[9*e+5],r[9*e+6],r[9*e+7],r[9*e+8]],MAT4:(r,e)=>[r[16*e+0],r[16*e+1],r[16*e+2],r[16*e+3],r[16*e+4],r[16*e+5],r[16*e+6],r[16*e+7],r[16*e+8],r[16*e+9],r[16*e+10],r[16*e+11],r[16*e+12],r[16*e+13],r[16*e+14],r[16*e+15]]},she={SCALAR:(r,e,t)=>{e[t]=r},VEC2:(r,e,t)=>{e[2*t+0]=r[0],e[2*t+1]=r[1]},VEC3:(r,e,t)=>{e[3*t+0]=r[0],e[3*t+1]=r[1],e[3*t+2]=r[2]},VEC4:(r,e,t)=>{e[4*t+0]=r[0],e[4*t+1]=r[1],e[4*t+2]=r[2],e[4*t+3]=r[3]},MAT2:(r,e,t)=>{e[4*t+0]=r[0],e[4*t+1]=r[1],e[4*t+2]=r[2],e[4*t+3]=r[3]},MAT3:(r,e,t)=>{e[9*t+0]=r[0],e[9*t+1]=r[1],e[9*t+2]=r[2],e[9*t+3]=r[3],e[9*t+4]=r[4],e[9*t+5]=r[5],e[9*t+6]=r[6],e[9*t+7]=r[7],e[9*t+8]=r[8],e[9*t+9]=r[9]},MAT4:(r,e,t)=>{e[16*t+0]=r[0],e[16*t+1]=r[1],e[16*t+2]=r[2],e[16*t+3]=r[3],e[16*t+4]=r[4],e[16*t+5]=r[5],e[16*t+6]=r[6],e[16*t+7]=r[7],e[16*t+8]=r[8],e[16*t+9]=r[9],e[16*t+10]=r[10],e[16*t+11]=r[11],e[16*t+12]=r[12],e[16*t+13]=r[13],e[16*t+14]=r[14],e[16*t+15]=r[15]}};function ohe(r,e,t,n){const{componentType:i}=r;Ri(r.componentType);const s=typeof i=="string"?ac.fromName(i):i,o=nhe[r.type],l=ihe[r.type],f=she[r.type];return t+=r.byteOffset,{values:ac.createTypedArray(s,e,t,o*n),type:s,size:o,unpacker:l,packer:f}}const sc=r=>r!==void 0;function ahe(r,e,t){if(!e)return null;let n=r.getExtension("3DTILES_batch_table_hierarchy");const i=e.HIERARCHY;return i&&(console.warn("3D Tile Parser: HIERARCHY is deprecated. Use 3DTILES_batch_table_hierarchy."),e.extensions=e.extensions||{},e.extensions["3DTILES_batch_table_hierarchy"]=i,n=i),n?lhe(n,t):null}function lhe(r,e){let t,n,i;const s=r.instancesLength,o=r.classes;let l=r.classIds,f=r.parentCounts,A=r.parentIds,v=s;sc(l.byteOffset)&&(l.componentType=defaultValue(l.componentType,GL.UNSIGNED_SHORT),l.type=AttributeType.SCALAR,i=getBinaryAccessor(l),l=i.createArrayBufferView(e.buffer,e.byteOffset+l.byteOffset,s));let T;if(sc(f))for(sc(f.byteOffset)&&(f.componentType=defaultValue(f.componentType,GL.UNSIGNED_SHORT),f.type=AttributeType.SCALAR,i=getBinaryAccessor(f),f=i.createArrayBufferView(e.buffer,e.byteOffset+f.byteOffset,s)),T=new Uint16Array(s),v=0,t=0;t<s;++t)T[t]=v,v+=f[t];sc(A)&&sc(A.byteOffset)&&(A.componentType=defaultValue(A.componentType,GL.UNSIGNED_SHORT),A.type=AttributeType.SCALAR,i=getBinaryAccessor(A),A=i.createArrayBufferView(e.buffer,e.byteOffset+A.byteOffset,v));const I=o.length;for(t=0;t<I;++t){const $=o[t].length,V=o[t].instances,G=getBinaryProperties($,V,e);o[t].instances=combine(G,V)}const F=new Array(I).fill(0),N=new Uint16Array(s);for(t=0;t<s;++t)n=l[t],N[t]=F[n],++F[n];const U={classes:o,classIds:l,classIndexes:N,parentCounts:f,parentIndexes:T,parentIds:A};return fhe(U),U}function vA(r,e,t){if(!r)return;const n=r.parentCounts;return r.parentIds?t(r,e):n>0?che(r,e,t):uhe(r,e,t)}function che(r,e,t){const n=r.classIds,i=r.parentCounts,s=r.parentIds,o=r.parentIndexes,l=n.length,f=scratchVisited;f.length=Math.max(f.length,l);const A=++marker,v=scratchStack;for(v.length=0,v.push(e);v.length>0;){if(e=v.pop(),f[e]===A)continue;f[e]=A;const T=t(r,e);if(sc(T))return T;const I=i[e],F=o[e];for(let N=0;N<I;++N){const U=s[F+N];U!==e&&v.push(U)}}return null}function uhe(r,e,t){let n=!0;for(;n;){const i=t(r,e);if(sc(i))return i;const s=r.parentIds[e];n=s!==e,e=s}throw new Error("traverseHierarchySingleParent")}function fhe(r){const t=r.classIds.length;for(let n=0;n<t;++n)t6(r,n,stack)}function t6(r,e,t){const n=r.parentCounts,i=r.parentIds,s=r.parentIndexes,l=r.classIds.length;if(!sc(i))return;assert(e<l,`Parent index ${e} exceeds the total number of instances: ${l}`),assert(t.indexOf(e)===-1,"Circular dependency detected in the batch table hierarchy."),t.push(e);const f=sc(n)?n[e]:1,A=sc(n)?s[e]:e;for(let v=0;v<f;++v){const T=i[A+v];T!==e&&t6(r,T,t)}t.pop(e)}function Uo(r){return r!=null}const K0=(r,e)=>r,hhe={HIERARCHY:!0,extensions:!0,extras:!0};class r6{json;binary;featureCount;_extensions;_properties;_binaryProperties;_hierarchy;constructor(e,t,n,i={}){Ri(n>=0),this.json=e||{},this.binary=t,this.featureCount=n,this._extensions=this.json?.extensions||{},this._properties={};for(const s in this.json)hhe[s]||(this._properties[s]=this.json[s]);this._binaryProperties=this._initializeBinaryProperties(),i["3DTILES_batch_table_hierarchy"]&&(this._hierarchy=ahe(this,this.json,this.binary))}getExtension(e){return this.json&&this.json.extensions&&this.json.extensions[e]}memorySizeInBytes(){return 0}isClass(e,t){if(this._checkBatchId(e),Ri(typeof t=="string",t),this._hierarchy){const n=vA(this._hierarchy,e,(i,s)=>{const o=i.classIds[s];return i.classes[o].name===t});return Uo(n)}return!1}isExactClass(e,t){return Ri(typeof t=="string",t),this.getExactClassName(e)===t}getExactClassName(e){if(this._checkBatchId(e),this._hierarchy){const t=this._hierarchy.classIds[e];return this._hierarchy.classes[t].name}}hasProperty(e,t){return this._checkBatchId(e),Ri(typeof t=="string",t),Uo(this._properties[t])||this._hasPropertyInHierarchy(e,t)}getPropertyNames(e,t){this._checkBatchId(e),t=Uo(t)?t:[],t.length=0;const n=Object.keys(this._properties);return t.push(...n),this._hierarchy&&this._getPropertyNamesInHierarchy(e,t),t}getProperty(e,t){if(this._checkBatchId(e),Ri(typeof t=="string",t),this._binaryProperties){const i=this._binaryProperties[t];if(Uo(i))return this._getBinaryProperty(i,e)}const n=this._properties[t];if(Uo(n))return K0(n[e]);if(this._hierarchy){const i=this._getHierarchyProperty(e,t);if(Uo(i))return i}}setProperty(e,t,n){const i=this.featureCount;if(this._checkBatchId(e),Ri(typeof t=="string",t),this._binaryProperties){const o=this._binaryProperties[t];if(o){this._setBinaryProperty(o,e,n);return}}if(this._hierarchy&&this._setHierarchyProperty(this,e,t,n))return;let s=this._properties[t];Uo(s)||(this._properties[t]=new Array(i),s=this._properties[t]),s[e]=K0(n)}_checkBatchId(e){if(!(e>=0&&e<this.featureCount))throw new Error("batchId not in range [0, featureCount - 1].")}_getBinaryProperty(e,t){return e.unpack(e.typedArray,t)}_setBinaryProperty(e,t,n){e.pack(n,e.typedArray,t)}_initializeBinaryProperties(){let e=null;for(const t in this._properties){const n=this._properties[t],i=this._initializeBinaryProperty(t,n);i&&(e=e||{},e[t]=i)}return e}_initializeBinaryProperty(e,t){if("byteOffset"in t){const n=t;Ri(this.binary,`Property ${e} requires a batch table binary.`),Ri(n.type,`Property ${e} requires a type.`);const i=ohe(n,this.binary.buffer,this.binary.byteOffset|0,this.featureCount);return{typedArray:i.values,componentCount:i.size,unpack:i.unpacker,pack:i.packer}}return null}_hasPropertyInHierarchy(e,t){if(!this._hierarchy)return!1;const n=vA(this._hierarchy,e,(i,s)=>{const o=i.classIds[s],l=i.classes[o].instances;return Uo(l[t])});return Uo(n)}_getPropertyNamesInHierarchy(e,t){vA(this._hierarchy,e,(n,i)=>{const s=n.classIds[i],o=n.classes[s].instances;for(const l in o)o.hasOwnProperty(l)&&t.indexOf(l)===-1&&t.push(l)})}_getHierarchyProperty(e,t){return vA(this._hierarchy,e,(n,i)=>{const s=n.classIds[i],o=n.classes[s],l=n.classIndexes[i],f=o.instances[t];return Uo(f)?Uo(f.typedArray)?this._getBinaryProperty(f,l):K0(f[l]):null})}_setHierarchyProperty(e,t,n,i){const s=vA(this._hierarchy,t,(o,l)=>{const f=o.classIds[l],A=o.classes[f],v=o.classIndexes[l],T=A.instances[n];return Uo(T)?(Ri(l===t,`Inherited property "${n}" is read-only.`),Uo(T.typedArray)?this._setBinaryProperty(T,v,i):T[v]=K0(i),!0):!1});return Uo(s)}}const Vb=4;function oy(r,e,t=0){const n=new DataView(e);if(r.magic=n.getUint32(t,!0),t+=Vb,r.version=n.getUint32(t,!0),t+=Vb,r.byteLength=n.getUint32(t,!0),t+=Vb,r.version!==1)throw new Error(`3D Tile Version ${r.version} not supported`);return t}const _d=4,VP="b3dm tile in legacy format.";function kw(r,e,t){const n=new DataView(e);let i;r.header=r.header||{};let s=n.getUint32(t,!0);t+=_d;let o=n.getUint32(t,!0);t+=_d;let l=n.getUint32(t,!0);t+=_d;let f=n.getUint32(t,!0);return t+=_d,l>=570425344?(t-=_d*2,i=s,l=o,f=0,s=0,o=0,console.warn(VP)):f>=570425344&&(t-=_d,i=l,l=s,f=o,s=0,o=0,console.warn(VP)),r.header.featureTableJsonByteLength=s,r.header.featureTableBinaryByteLength=o,r.header.batchTableJsonByteLength=l,r.header.batchTableBinaryByteLength=f,r.header.batchLength=i,t}function Nw(r,e,t,n){return t=dhe(r,e,t),t=phe(r,e,t),t}function dhe(r,e,t,n){const{featureTableJsonByteLength:i,featureTableBinaryByteLength:s,batchLength:o}=r.header||{};if(r.featureTableJson={BATCH_LENGTH:o||0},i&&i>0){const l=YL(e,t,i);r.featureTableJson=JSON.parse(l)}return t+=i||0,r.featureTableBinary=new Uint8Array(e,t,s),t+=s||0,t}function phe(r,e,t,n){const{batchTableJsonByteLength:i,batchTableBinaryByteLength:s}=r.header||{};if(i&&i>0){const o=YL(e,t,i);r.batchTableJson=JSON.parse(o),t+=i,s&&s>0&&(r.batchTableBinary=new Uint8Array(e,t,s),r.batchTableBinary=new Uint8Array(r.batchTableBinary),t+=s)}return t}function n6(r,e,t){if(!e&&(!r||!r.batchIds||!t))return null;const{batchIds:n,isRGB565:i,pointCount:s=0}=r;if(n&&t){const o=new Uint8ClampedArray(s*3);for(let l=0;l<s;l++){const f=n[l],v=t.getProperty(f,"dimensions").map(T=>T*255);o[l*3]=v[0],o[l*3+1]=v[1],o[l*3+2]=v[2]}return{type:Un.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}if(e&&i){const o=new Uint8ClampedArray(s*3);for(let l=0;l<s;l++){const f=ehe(e[l]);o[l*3]=f[0],o[l*3+1]=f[1],o[l*3+2]=f[2]}return{type:Un.UNSIGNED_BYTE,value:o,size:3,normalized:!0}}return e&&e.length===s*3?{type:Un.UNSIGNED_BYTE,value:e,size:3,normalized:!0}:{type:Un.UNSIGNED_BYTE,value:e||new Uint8ClampedArray,size:4,normalized:!0}}const jP=new dt;function Ahe(r,e){if(!e)return null;if(r.isOctEncoded16P){const t=new Float32Array((r.pointsLength||0)*3);for(let n=0;n<(r.pointsLength||0);n++)rhe(e[n*2],e[n*2+1],jP),jP.toArray(t,n*3);return{type:Un.FLOAT,size:2,value:t}}return{type:Un.FLOAT,size:2,value:e}}function ghe(r,e,t){return r.isQuantized?t["3d-tiles"]&&t["3d-tiles"].decodeQuantizedPositions?(r.isQuantized=!1,mhe(r,e)):{type:Un.UNSIGNED_SHORT,value:e,size:3,normalized:!0}:e}function mhe(r,e){const t=new dt,n=new Float32Array(r.pointCount*3);for(let i=0;i<r.pointCount;i++)t.set(e[i*3],e[i*3+1],e[i*3+2]).scale(1/r.quantizedRange).multiply(r.quantizedVolumeScale).add(r.quantizedVolumeOffset).toArray(n,i*3);return n}async function _he(r,e,t,n,i){t=oy(r,e,t),t=kw(r,e,t),t=Nw(r,e,t),yhe(r);const{featureTable:s,batchTable:o}=vhe(r);return await Ehe(r,s,o,n,i),bhe(r,s,n),xhe(r,s,o),whe(r,s),t}function yhe(r){r.attributes={positions:null,colors:null,normals:null,batchIds:null},r.isQuantized=!1,r.isTranslucent=!1,r.isRGB565=!1,r.isOctEncoded16P=!1}function vhe(r){const e=new Lw(r.featureTableJson,r.featureTableBinary),t=e.getGlobalProperty("POINTS_LENGTH");if(!Number.isFinite(t))throw new Error("POINTS_LENGTH must be defined");e.featuresLength=t,r.featuresLength=t,r.pointsLength=t,r.pointCount=t,r.rtcCenter=e.getGlobalProperty("RTC_CENTER",Un.FLOAT,3);const n=The(r,e);return{featureTable:e,batchTable:n}}function bhe(r,e,t){if(r.attributes=r.attributes||{positions:null,colors:null,normals:null,batchIds:null},!r.attributes.positions){if(e.hasProperty("POSITION"))r.attributes.positions=e.getPropertyArray("POSITION",Un.FLOAT,3);else if(e.hasProperty("POSITION_QUANTIZED")){const n=e.getPropertyArray("POSITION_QUANTIZED",Un.UNSIGNED_SHORT,3);if(r.isQuantized=!0,r.quantizedRange=65535,r.quantizedVolumeScale=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",Un.FLOAT,3),!r.quantizedVolumeScale)throw new Error("QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");if(r.quantizedVolumeOffset=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",Un.FLOAT,3),!r.quantizedVolumeOffset)throw new Error("QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");r.attributes.positions=ghe(r,n,t)}}if(!r.attributes.positions)throw new Error("Either POSITION or POSITION_QUANTIZED must be defined.")}function xhe(r,e,t){if(r.attributes=r.attributes||{positions:null,colors:null,normals:null,batchIds:null},!r.attributes.colors){let n=null;e.hasProperty("RGBA")?(n=e.getPropertyArray("RGBA",Un.UNSIGNED_BYTE,4),r.isTranslucent=!0):e.hasProperty("RGB")?n=e.getPropertyArray("RGB",Un.UNSIGNED_BYTE,3):e.hasProperty("RGB565")&&(n=e.getPropertyArray("RGB565",Un.UNSIGNED_SHORT,1),r.isRGB565=!0),r.attributes.colors=n6(r,n,t)}e.hasProperty("CONSTANT_RGBA")&&(r.constantRGBA=e.getGlobalProperty("CONSTANT_RGBA",Un.UNSIGNED_BYTE,4))}function whe(r,e){if(r.attributes=r.attributes||{positions:null,colors:null,normals:null,batchIds:null},!r.attributes.normals){let t=null;e.hasProperty("NORMAL")?t=e.getPropertyArray("NORMAL",Un.FLOAT,3):e.hasProperty("NORMAL_OCT16P")&&(t=e.getPropertyArray("NORMAL_OCT16P",Un.UNSIGNED_BYTE,2),r.isOctEncoded16P=!0),r.attributes.normals=Ahe(r,t)}}function The(r,e){let t=null;if(!r.batchIds&&e.hasProperty("BATCH_ID")&&(r.batchIds=e.getPropertyArray("BATCH_ID",Un.UNSIGNED_SHORT,1),r.batchIds)){const n=e.getGlobalProperty("BATCH_LENGTH");if(!n)throw new Error("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");const{batchTableJson:i,batchTableBinary:s}=r;t=new r6(i,s,n)}return t}async function Ehe(r,e,t,n,i){let s,o,l;const f=r.batchTableJson&&r.batchTableJson.extensions&&r.batchTableJson.extensions["3DTILES_draco_point_compression"];f&&(l=f.properties);const A=e.getExtension("3DTILES_draco_point_compression");if(A){o=A.properties;const T=A.byteOffset,I=A.byteLength;if(!o||!Number.isFinite(T)||!I)throw new Error("Draco properties, byteOffset, and byteLength must be defined");s=(r.featureTableBinary||[]).slice(T,T+I),r.hasPositions=Number.isFinite(o.POSITION),r.hasColors=Number.isFinite(o.RGB)||Number.isFinite(o.RGBA),r.hasNormals=Number.isFinite(o.NORMAL),r.hasBatchIds=Number.isFinite(o.BATCH_ID),r.isTranslucent=Number.isFinite(o.RGBA)}if(!s)return!0;const v={buffer:s,properties:{...o,...l},batchTableProperties:l};return await Che(r,v,n,i)}async function Che(r,e,t,n){if(!n)return;const i={...t,draco:{...t?.draco,extraAttributes:e.batchTableProperties||{}}};delete i["3d-tiles"];const s=await wg(e.buffer,e6,i,n),o=s.attributes.POSITION&&s.attributes.POSITION.value,l=s.attributes.COLOR_0&&s.attributes.COLOR_0.value,f=s.attributes.NORMAL&&s.attributes.NORMAL.value,A=s.attributes.BATCH_ID&&s.attributes.BATCH_ID.value,v=o&&s.attributes.POSITION.value.quantization,T=f&&s.attributes.NORMAL.value.quantization;if(v){const F=s.POSITION.data.quantization,N=F.range;r.quantizedVolumeScale=new dt(N,N,N),r.quantizedVolumeOffset=new dt(F.minValues),r.quantizedRange=(1<<F.quantizationBits)-1,r.isQuantizedDraco=!0}T&&(r.octEncodedRange=(1<<s.NORMAL.data.quantization.quantizationBits)-1,r.isOctEncodedDraco=!0);const I={};if(e.batchTableProperties)for(const F of Object.keys(e.batchTableProperties))s.attributes[F]&&s.attributes[F].value&&(I[F.toLowerCase()]=s.attributes[F].value);r.attributes={positions:o,colors:n6(r,l,void 0),normals:f,batchIds:A,...I}}function Aa(r,e){if(!r)throw new Error(e||"assert failed: gltf")}const i6={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},s6={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},She=1.33,GP=["SCALAR","VEC2","VEC3","VEC4"],Ihe=[[Int8Array,5120],[Uint8Array,5121],[Int16Array,5122],[Uint16Array,5123],[Uint32Array,5125],[Float32Array,5126],[Float64Array,5130]],Bhe=new Map(Ihe),Phe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Mhe={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Rhe={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array};function o6(r){return GP[r-1]||GP[0]}function Uw(r){const e=Bhe.get(r.constructor);if(!e)throw new Error("Illegal typed array");return e}function zw(r,e){const t=Rhe[r.componentType],n=Phe[r.type],i=Mhe[r.componentType],s=r.count*n,o=r.count*n*i;Aa(o>=0&&o<=e.byteLength);const l=s6[r.componentType],f=i6[r.type];return{ArrayType:t,length:s,byteLength:o,componentByteSize:l,numberOfComponentsInElement:f}}function a6(r){let{images:e,bufferViews:t}=r;e=e||[],t=t||[];const n=e.map(o=>o.bufferView);t=t.filter(o=>!n.includes(o));const i=t.reduce((o,l)=>o+l.byteLength,0),s=e.reduce((o,l)=>{const{width:f,height:A}=l.image;return o+f*A},0);return i+Math.ceil(4*s*She)}function Ohe(r,e,t){const n=r.bufferViews[t];Aa(n);const i=n.buffer,s=e[i];Aa(s);const o=(n.byteOffset||0)+s.byteOffset;return new Uint8Array(s.arrayBuffer,o,n.byteLength)}function Dhe(r,e,t){const n=typeof t=="number"?r.accessors?.[t]:t;if(!n)throw new Error(`No gltf accessor ${JSON.stringify(t)}`);const i=r.bufferViews?.[n.bufferView||0];if(!i)throw new Error(`No gltf buffer view for accessor ${i}`);const{arrayBuffer:s,byteOffset:o}=e[i.buffer],l=(o||0)+(n.byteOffset||0)+(i.byteOffset||0),{ArrayType:f,length:A,componentByteSize:v,numberOfComponentsInElement:T}=zw(n,i),I=v*T,F=i.byteStride||I;if(typeof i.byteStride>"u"||i.byteStride===I)return new f(s,l,A);const N=new f(A);for(let U=0;U<n.count;U++){const $=new f(s,l+U*F,T);N.set($,U*T)}return N}function Fhe(){return{asset:{version:"2.0",generator:"loaders.gl"},buffers:[],extensions:{},extensionsRequired:[],extensionsUsed:[]}}class yo{gltf;sourceBuffers;byteLength;constructor(e){this.gltf={json:e?.json||Fhe(),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){const t=this.getUsedExtensions().find(i=>i===e),n=this.getRequiredExtensions().find(i=>i===e);return typeof t=="string"||typeof n=="string"}getExtension(e){const t=this.getUsedExtensions().find(i=>i===e),n=this.json.extensions||{};return t?n[e]:null}getRequiredExtension(e){return this.getRequiredExtensions().find(n=>n===e)?this.getExtension(e):null}getRequiredExtensions(){return this.json.extensionsRequired||[]}getUsedExtensions(){return this.json.extensionsUsed||[]}getRemovedExtensions(){return this.json.extensionsRemoved||[]}getObjectExtension(e,t){return(e.extensions||{})[t]}getScene(e){return this.getObject("scenes",e)}getNode(e){return this.getObject("nodes",e)}getSkin(e){return this.getObject("skins",e)}getMesh(e){return this.getObject("meshes",e)}getMaterial(e){return this.getObject("materials",e)}getAccessor(e){return this.getObject("accessors",e)}getTexture(e){return this.getObject("textures",e)}getSampler(e){return this.getObject("samplers",e)}getImage(e){return this.getObject("images",e)}getBufferView(e){return this.getObject("bufferViews",e)}getBuffer(e){return this.getObject("buffers",e)}getObject(e,t){if(typeof t=="object")return t;const n=this.json[e]&&this.json[e][t];if(!n)throw new Error(`glTF file error: Could not find ${e}[${t}]`);return n}getTypedArrayForBufferView(e){e=this.getBufferView(e);const t=e.buffer,n=this.gltf.buffers[t];Aa(n);const i=(e.byteOffset||0)+n.byteOffset;return new Uint8Array(n.arrayBuffer,i,e.byteLength)}getTypedArrayForAccessor(e){const t=this.getAccessor(e);return Dhe(this.gltf.json,this.gltf.buffers,t)}getTypedArrayForImageData(e){e=this.getAccessor(e);const t=this.getBufferView(e.bufferView),i=this.getBuffer(t.buffer).data,s=t.byteOffset||0;return new Uint8Array(i,s,t.byteLength)}addApplicationData(e,t){return this.json[e]=t,this}addExtraData(e,t){return this.json.extras=this.json.extras||{},this.json.extras[e]=t,this}addObjectExtension(e,t,n){return e.extensions=e.extensions||{},e.extensions[t]=n,this.registerUsedExtension(t),this}setObjectExtension(e,t,n){const i=e.extensions||{};i[t]=n}removeObjectExtension(e,t){const n=e?.extensions||{};if(n[t]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];const i=this.json.extensionsRemoved;i.includes(t)||i.push(t)}delete n[t]}addExtension(e,t={}){return Aa(t),this.json.extensions=this.json.extensions||{},this.json.extensions[e]=t,this.registerUsedExtension(e),t}addRequiredExtension(e,t={}){return Aa(t),this.addExtension(e,t),this.registerRequiredExtension(e),t}registerUsedExtension(e){this.json.extensionsUsed=this.json.extensionsUsed||[],this.json.extensionsUsed.find(t=>t===e)||this.json.extensionsUsed.push(e)}registerRequiredExtension(e){this.registerUsedExtension(e),this.json.extensionsRequired=this.json.extensionsRequired||[],this.json.extensionsRequired.find(t=>t===e)||this.json.extensionsRequired.push(e)}removeExtension(e){if(this.json.extensions?.[e]){this.json.extensionsRemoved=this.json.extensionsRemoved||[];const t=this.json.extensionsRemoved;t.includes(e)||t.push(e)}this.json.extensions&&delete this.json.extensions[e],this.json.extensionsRequired&&this._removeStringFromArray(this.json.extensionsRequired,e),this.json.extensionsUsed&&this._removeStringFromArray(this.json.extensionsUsed,e)}setDefaultScene(e){this.json.scene=e}addScene(e){const{nodeIndices:t}=e;return this.json.scenes=this.json.scenes||[],this.json.scenes.push({nodes:t}),this.json.scenes.length-1}addNode(e){const{meshIndex:t,matrix:n}=e;this.json.nodes=this.json.nodes||[];const i={mesh:t};return n&&(i.matrix=n),this.json.nodes.push(i),this.json.nodes.length-1}addMesh(e){const{attributes:t,indices:n,material:i,mode:s=4}=e,l={primitives:[{attributes:this._addAttributes(t),mode:s}]};if(n){const f=this._addIndices(n);l.primitives[0].indices=f}return Number.isFinite(i)&&(l.primitives[0].material=i),this.json.meshes=this.json.meshes||[],this.json.meshes.push(l),this.json.meshes.length-1}addPointCloud(e){const n={primitives:[{attributes:this._addAttributes(e),mode:0}]};return this.json.meshes=this.json.meshes||[],this.json.meshes.push(n),this.json.meshes.length-1}addImage(e,t){const n=yw(e),i=t||n?.mimeType,o={bufferView:this.addBufferView(e),mimeType:i};return this.json.images=this.json.images||[],this.json.images.push(o),this.json.images.length-1}addBufferView(e,t=0,n=this.byteLength){const i=e.byteLength;Aa(Number.isFinite(i)),this.sourceBuffers=this.sourceBuffers||[],this.sourceBuffers.push(e);const s={buffer:t,byteOffset:n,byteLength:i};return this.byteLength+=Eg(i,4),this.json.bufferViews=this.json.bufferViews||[],this.json.bufferViews.push(s),this.json.bufferViews.length-1}addAccessor(e,t){const n={bufferView:e,type:o6(t.size),componentType:t.componentType,count:t.count,max:t.max,min:t.min};return this.json.accessors=this.json.accessors||[],this.json.accessors.push(n),this.json.accessors.length-1}addBinaryBuffer(e,t={size:3}){const n=this.addBufferView(e);let i={min:t.min,max:t.max};(!i.min||!i.max)&&(i=this._getAccessorMinMax(e,t.size));const s={size:t.size,componentType:Uw(e),count:Math.round(e.length/t.size),min:i.min,max:i.max};return this.addAccessor(n,Object.assign(s,t))}addTexture(e){const{imageIndex:t}=e,n={source:t};return this.json.textures=this.json.textures||[],this.json.textures.push(n),this.json.textures.length-1}addMaterial(e){return this.json.materials=this.json.materials||[],this.json.materials.push(e),this.json.materials.length-1}createBinaryChunk(){this.gltf.buffers=[];const e=this.byteLength,t=new ArrayBuffer(e),n=new Uint8Array(t);let i=0;for(const s of this.sourceBuffers||[])i=moe(s,n,i);this.json?.buffers?.[0]?this.json.buffers[0].byteLength=e:this.json.buffers=[{byteLength:e}],this.gltf.binary=t,this.sourceBuffers=[t]}_removeStringFromArray(e,t){let n=!0;for(;n;){const i=e.indexOf(t);i>-1?e.splice(i,1):n=!1}}_addAttributes(e={}){const t={};for(const n in e){const i=e[n],s=this._getGltfAttributeName(n),o=this.addBinaryBuffer(i.value,i);t[s]=o}return t}_addIndices(e){return this.addBinaryBuffer(e,{size:1})}_getGltfAttributeName(e){switch(e.toLowerCase()){case"position":case"positions":case"vertices":return"POSITION";case"normal":case"normals":return"NORMAL";case"color":case"colors":return"COLOR_0";case"texcoord":case"texcoords":return"TEXCOORD_0";default:return e}}_getAccessorMinMax(e,t){const n={min:null,max:null};if(e.length<t)return n;n.min=[],n.max=[];const i=e.subarray(0,t);for(const s of i)n.min.push(s),n.max.push(s);for(let s=t;s<e.length;s+=t)for(let o=0;o<t;o++)n.min[0+o]=Math.min(n.min[0+o],e[s+o]),n.max[0+o]=Math.max(n.max[0+o],e[s+o]);return n}}function HP(r){return(r%1+1)%1}const l6={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16,BOOLEAN:1,STRING:1,ENUM:1},Lhe={INT8:Int8Array,UINT8:Uint8Array,INT16:Int16Array,UINT16:Uint16Array,INT32:Int32Array,UINT32:Uint32Array,INT64:BigInt64Array,UINT64:BigUint64Array,FLOAT32:Float32Array,FLOAT64:Float64Array},c6={INT8:1,UINT8:1,INT16:2,UINT16:2,INT32:4,UINT32:4,INT64:8,UINT64:8,FLOAT32:4,FLOAT64:8};function Vw(r,e){return c6[e]*l6[r]}function ay(r,e,t,n){if(t!=="UINT8"&&t!=="UINT16"&&t!=="UINT32"&&t!=="UINT64")return null;const i=r.getTypedArrayForBufferView(e),s=ly(i,"SCALAR",t,n+1);return s instanceof BigInt64Array||s instanceof BigUint64Array?null:s}function ly(r,e,t,n=1){const i=l6[e],s=Lhe[t],o=c6[t],l=n*i,f=l*o;let A=r.buffer,v=r.byteOffset;return v%o!==0&&(A=new Uint8Array(A).slice(v,v+f).buffer,v=0),new s(A,v,l)}function jw(r,e,t){const n=`TEXCOORD_${e.texCoord||0}`,i=t.attributes[n],s=r.getTypedArrayForAccessor(i),o=r.gltf.json,l=e.index,f=o.textures?.[l]?.source;if(typeof f<"u"){const A=o.images?.[f]?.mimeType,v=r.gltf.images?.[f];if(v&&typeof v.width<"u"){const T=[];for(let I=0;I<s.length;I+=2){const F=khe(v,A,s,I,e.channels);T.push(F)}return T}}return[]}function u6(r,e,t,n,i){if(!t?.length)return;const s=[];for(const v of t){let T=n.findIndex(I=>I===v);T===-1&&(T=n.push(v)-1),s.push(T)}const o=new Uint32Array(s),l=r.gltf.buffers.push({arrayBuffer:o.buffer,byteOffset:o.byteOffset,byteLength:o.byteLength})-1,f=r.addBufferView(o,l,0),A=r.addAccessor(f,{size:1,componentType:Uw(o),count:o.length});i.attributes[e]=A}function khe(r,e,t,n,i=[0]){const s={r:{offset:0,shift:0},g:{offset:1,shift:8},b:{offset:2,shift:16},a:{offset:3,shift:24}},o=t[n],l=t[n+1];let f=1;e&&(e.indexOf("image/jpeg")!==-1||e.indexOf("image/png")!==-1)&&(f=4);const A=Nhe(o,l,r,f);let v=0;for(const T of i){const I=typeof T=="number"?Object.values(s)[T]:s[T],F=A+I.offset,N=mL(r);if(N.data.length<=F)throw new Error(`${N.data.length} <= ${F}`);const U=N.data[F];v|=U<<I.shift}return v}function Nhe(r,e,t,n=1){const i=t.width,s=HP(r)*(i-1),o=Math.round(s),l=t.height,f=HP(e)*(l-1),A=Math.round(f),v=t.components?t.components:n;return(A*i+o)*v}function f6(r,e,t,n,i){const s=[];for(let o=0;o<e;o++){const l=t[o],f=t[o+1]-t[o];if(f+l>n)break;const A=l/i,v=f/i;s.push(r.slice(A,A+v))}return s}function h6(r,e,t){const n=[];for(let i=0;i<e;i++){const s=i*t;n.push(r.slice(s,s+t))}return n}function d6(r,e,t,n){if(t)throw new Error("Not implemented - arrayOffsets for strings is specified");if(n){const i=[],s=new TextDecoder("utf8");let o=0;for(let l=0;l<r;l++){const f=n[l+1]-n[l];if(f+o<=e.length){const A=e.subarray(o,f+o),v=s.decode(A);i.push(v),o+=f}}return i}return[]}const p6="EXT_mesh_features",Uhe=p6;async function zhe(r,e){const t=new yo(r);Vhe(t,e)}function Vhe(r,e){const t=r.gltf.json;if(t.meshes)for(const n of t.meshes)for(const i of n.primitives)jhe(r,i,e)}function jhe(r,e,t){if(!t?.gltf?.loadBuffers)return;const i=e.extensions?.[p6]?.featureIds;if(i)for(const s of i){let o;if(typeof s.attribute<"u"){const l=`_FEATURE_ID_${s.attribute}`,f=e.attributes[l];o=r.getTypedArrayForAccessor(f)}else typeof s.texture<"u"&&t?.gltf?.loadImages?o=jw(r,s.texture,e):o=[];s.data=o}}const Ghe=Object.freeze(Object.defineProperty({__proto__:null,decode:zhe,name:Uhe},Symbol.toStringTag,{value:"Module"})),Gw="EXT_structural_metadata",Hhe=Gw;async function Whe(r,e){const t=new yo(r);$he(t,e)}function $he(r,e){if(!e.gltf?.loadBuffers)return;const t=r.getExtension(Gw);t&&(e.gltf?.loadImages&&Xhe(r,t),qhe(r,t))}function Xhe(r,e){const t=e.propertyTextures,n=r.gltf.json;if(t&&n.meshes)for(const i of n.meshes)for(const s of i.primitives)Khe(r,t,s,e)}function qhe(r,e){const t=e.schema;if(!t)return;const n=t.classes,i=e.propertyTables;if(n&&i)for(const s in n){const o=Jhe(i,s);o&&Yhe(r,t,o)}}function Jhe(r,e){for(const t of r)if(t.class===e)return t;return null}function Khe(r,e,t,n){if(!e)return;const s=t.extensions?.[Gw]?.propertyTextures;if(s)for(const o of s){const l=e[o];Zhe(r,l,t,n)}}function Zhe(r,e,t,n){if(!e.properties)return;n.dataAttributeNames||(n.dataAttributeNames=[]);const i=e.class;for(const s in e.properties){const o=`${i}_${s}`,l=e.properties?.[s];if(!l)continue;l.data||(l.data=[]);const f=l.data,A=jw(r,l,t);A!==null&&(u6(r,o,A,f,t),l.data=f,n.dataAttributeNames.push(o))}}function Yhe(r,e,t){const n=e.classes?.[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with name ${t.class}`);const i=t.count;for(const s in n.properties){const o=n.properties[s],l=t.properties?.[s];if(l){const f=Qhe(r,e,o,i,l);l.data=f}}}function Qhe(r,e,t,n,i){let s=[];const o=i.values,l=r.getTypedArrayForBufferView(o),f=ede(r,t,i,n),A=tde(r,i,n);switch(t.type){case"SCALAR":case"VEC2":case"VEC3":case"VEC4":case"MAT2":case"MAT3":case"MAT4":{s=rde(t,n,l,f);break}case"BOOLEAN":throw new Error(`Not implemented - classProperty.type=${t.type}`);case"STRING":{s=d6(n,l,f,A);break}case"ENUM":{s=nde(e,t,n,l,f);break}default:throw new Error(`Unknown classProperty type ${t.type}`)}return s}function ede(r,e,t,n){return e.array&&typeof e.count>"u"&&typeof t.arrayOffsets<"u"?ay(r,t.arrayOffsets,t.arrayOffsetType||"UINT32",n):null}function tde(r,e,t){return typeof e.stringOffsets<"u"?ay(r,e.stringOffsets,e.stringOffsetType||"UINT32",t):null}function rde(r,e,t,n){const i=r.array,s=r.count,o=Vw(r.type,r.componentType),l=t.byteLength/o;let f;return r.componentType?f=ly(t,r.type,r.componentType,l):f=t,i?n?f6(f,e,n,t.length,o):s?h6(f,e,s):[]:f}function nde(r,e,t,n,i){const s=e.enumType;if(!s)throw new Error("Incorrect data in the EXT_structural_metadata extension: classProperty.enumType is not set for type ENUM");const o=r.enums?.[s];if(!o)throw new Error(`Incorrect data in the EXT_structural_metadata extension: schema.enums does't contain ${s}`);const l=o.valueType||"UINT16",f=Vw(e.type,l),A=n.byteLength/f;let v=ly(n,e.type,l,A);if(v||(v=n),e.array){if(i)return ide({valuesData:v,numberOfElements:t,arrayOffsets:i,valuesDataBytesLength:n.length,elementSize:f,enumEntry:o});const T=e.count;return T?sde(v,t,T,o):[]}return Hw(v,0,t,o)}function ide(r){const{valuesData:e,numberOfElements:t,arrayOffsets:n,valuesDataBytesLength:i,elementSize:s,enumEntry:o}=r,l=[];for(let f=0;f<t;f++){const A=n[f],v=n[f+1]-n[f];if(v+A>i)break;const T=A/s,I=v/s,F=Hw(e,T,I,o);l.push(F)}return l}function sde(r,e,t,n){const i=[];for(let s=0;s<e;s++){const o=t*s,l=Hw(r,o,t,n);i.push(l)}return i}function Hw(r,e,t,n){const i=[];for(let s=0;s<t;s++)if(r instanceof BigInt64Array||r instanceof BigUint64Array)i.push("");else{const o=r[e+s],l=ode(n,o);l?i.push(l.name):i.push("")}return i}function ode(r,e){for(const t of r.values)if(t.value===e)return t;return null}const ade=Object.freeze(Object.defineProperty({__proto__:null,decode:Whe,name:Hhe},Symbol.toStringTag,{value:"Module"})),A6="EXT_feature_metadata",lde=A6;async function cde(r,e){const t=new yo(r);ude(t,e)}function ude(r,e){if(!e.gltf?.loadBuffers)return;const t=r.getExtension(A6);t&&(e.gltf?.loadImages&&fde(r,t),hde(r,t))}function fde(r,e){const t=e.schema;if(!t)return;const n=t.classes,{featureTextures:i}=e;if(n&&i)for(const s in n){const o=n[s],l=pde(i,s);l&&gde(r,l,o)}}function hde(r,e){const t=e.schema;if(!t)return;const n=t.classes,i=e.featureTables;if(n&&i)for(const s in n){const o=dde(i,s);o&&Ade(r,t,o)}}function dde(r,e){for(const t in r){const n=r[t];if(n.class===e)return n}return null}function pde(r,e){for(const t in r){const n=r[t];if(n.class===e)return n}return null}function Ade(r,e,t){if(!t.class)return;const n=e.classes?.[t.class];if(!n)throw new Error(`Incorrect data in the EXT_structural_metadata extension: no schema class with
4561name ${t.class}`);const i=t.count;for(const s in n.properties){const o=n.properties[s],l=t.properties?.[s];if(l){const f=mde(r,e,o,i,l);l.data=f}}}function gde(r,e,t){const n=e.class;for(const i in t.properties){const s=e?.properties?.[i];if(s){const o=xde(r,s,n);s.data=o}}}function mde(r,e,t,n,i){let s=[];const o=i.bufferView,l=r.getTypedArrayForBufferView(o),f=_de(r,t,i,n),A=yde(r,t,i,n);return t.type==="STRING"||t.componentType==="STRING"?s=d6(n,l,f,A):vde(t)&&(s=bde(t,n,l,f)),s}function _de(r,e,t,n){return e.type==="ARRAY"&&typeof e.componentCount>"u"&&typeof t.arrayOffsetBufferView<"u"?ay(r,t.arrayOffsetBufferView,t.offsetType||"UINT32",n):null}function yde(r,e,t,n){return typeof t.stringOffsetBufferView<"u"?ay(r,t.stringOffsetBufferView,t.offsetType||"UINT32",n):null}function vde(r){const e=["UINT8","INT16","UINT16","INT32","UINT32","INT64","UINT64","FLOAT32","FLOAT64"];return e.includes(r.type)||typeof r.componentType<"u"&&e.includes(r.componentType)}function bde(r,e,t,n){const i=r.type==="ARRAY",s=r.componentCount,o="SCALAR",l=r.componentType||r.type,f=Vw(o,l),A=t.byteLength/f,v=ly(t,o,l,A);return i?n?f6(v,e,n,t.length,f):s?h6(v,e,s):[]:v}function xde(r,e,t){const n=r.gltf.json;if(!n.meshes)return[];const i=[];for(const s of n.meshes)for(const o of s.primitives)wde(r,t,e,i,o);return i}function wde(r,e,t,n,i){const s={channels:t.channels,...t.texture},o=jw(r,s,i);o&&u6(r,e,o,n,i)}const Tde=Object.freeze(Object.defineProperty({__proto__:null,decode:cde,name:lde},Symbol.toStringTag,{value:"Module"})),Ede="4.2.4",Cde="4.2.4",g_={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"};let WP;async function $P(r){soe(r.modules);const e=ooe("basis");return e||(WP||=Sde(r),await WP)}async function Sde(r){let e=null,t=null;return[e,t]=await Promise.all([await eh(g_.TRANSCODER,"textures",r),await eh(g_.TRANSCODER_WASM,"textures",r)]),e=e||globalThis.BASIS,await Ide(e,t)}function Ide(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(t).then(i=>{const{BasisFile:s,initializeBasis:o}=i;o(),n({BasisFile:s})})})}let jb;async function XP(r){const e=r.modules||{};return e.basisEncoder?e.basisEncoder:(jb=jb||Bde(r),await jb)}async function Bde(r){let e=null,t=null;return[e,t]=await Promise.all([await eh(g_.ENCODER,"textures",r),await eh(g_.ENCODER_WASM,"textures",r)]),e=e||globalThis.BASIS,await Pde(e,t)}function Pde(r,e){const t={};return e&&(t.wasmBinary=e),new Promise(n=>{r(t).then(i=>{const{BasisFile:s,KTX2File:o,initializeBasis:l,BasisEncoder:f}=i;l(),n({BasisFile:s,KTX2File:o,BasisEncoder:f})})})}const yd={COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_ASTC_4X4_KHR:37808},Mde=["","WEBKIT_","MOZ_"],qP={WEBGL_compressed_texture_s3tc:"dxt",WEBGL_compressed_texture_s3tc_srgb:"dxt-srgb",WEBGL_compressed_texture_etc1:"etc1",WEBGL_compressed_texture_etc:"etc2",WEBGL_compressed_texture_pvrtc:"pvrtc",WEBGL_compressed_texture_atc:"atc",WEBGL_compressed_texture_astc:"astc",EXT_texture_compression_rgtc:"rgtc"};let Z0=null;function Rde(r){if(!Z0){r=r||Ode()||void 0,Z0=new Set;for(const e of Mde)for(const t in qP)if(r&&r.getExtension(`${e}${t}`)){const n=qP[t];Z0.add(n)}}return Z0}function Ode(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var JP,KP,ZP,YP,QP,eM,tM,rM;(function(r){r[r.NONE=0]="NONE",r[r.BASISLZ=1]="BASISLZ",r[r.ZSTD=2]="ZSTD",r[r.ZLIB=3]="ZLIB"})(JP||(JP={})),(function(r){r[r.BASICFORMAT=0]="BASICFORMAT"})(KP||(KP={})),(function(r){r[r.UNSPECIFIED=0]="UNSPECIFIED",r[r.ETC1S=163]="ETC1S",r[r.UASTC=166]="UASTC"})(ZP||(ZP={})),(function(r){r[r.UNSPECIFIED=0]="UNSPECIFIED",r[r.SRGB=1]="SRGB"})(YP||(YP={})),(function(r){r[r.UNSPECIFIED=0]="UNSPECIFIED",r[r.LINEAR=1]="LINEAR",r[r.SRGB=2]="SRGB",r[r.ITU=3]="ITU",r[r.NTSC=4]="NTSC",r[r.SLOG=5]="SLOG",r[r.SLOG2=6]="SLOG2"})(QP||(QP={})),(function(r){r[r.ALPHA_STRAIGHT=0]="ALPHA_STRAIGHT",r[r.ALPHA_PREMULTIPLIED=1]="ALPHA_PREMULTIPLIED"})(eM||(eM={})),(function(r){r[r.RGB=0]="RGB",r[r.RRR=3]="RRR",r[r.GGG=4]="GGG",r[r.AAA=15]="AAA"})(tM||(tM={})),(function(r){r[r.RGB=0]="RGB",r[r.RGBA=3]="RGBA",r[r.RRR=4]="RRR",r[r.RRRG=5]="RRRG"})(rM||(rM={}));const ua=[171,75,84,88,32,50,48,187,13,10,26,10];function Dde(r){const e=new Uint8Array(r);return!(e.byteLength<ua.length||e[0]!==ua[0]||e[1]!==ua[1]||e[2]!==ua[2]||e[3]!==ua[3]||e[4]!==ua[4]||e[5]!==ua[5]||e[6]!==ua[6]||e[7]!==ua[7]||e[8]!==ua[8]||e[9]!==ua[9]||e[10]!==ua[10]||e[11]!==ua[11])}const Fde={etc1:{basisFormat:0,compressed:!0,format:yd.COMPRESSED_RGB_ETC1_WEBGL},etc2:{basisFormat:1,compressed:!0},bc1:{basisFormat:2,compressed:!0,format:yd.COMPRESSED_RGB_S3TC_DXT1_EXT},bc3:{basisFormat:3,compressed:!0,format:yd.COMPRESSED_RGBA_S3TC_DXT5_EXT},bc4:{basisFormat:4,compressed:!0},bc5:{basisFormat:5,compressed:!0},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0},"bc7-m5":{basisFormat:7,compressed:!0},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:yd.COMPRESSED_RGB_PVRTC_4BPPV1_IMG},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:yd.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG},"astc-4x4":{basisFormat:10,compressed:!0,format:yd.COMPRESSED_RGBA_ASTC_4X4_KHR},"atc-rgb":{basisFormat:11,compressed:!0},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0},rgba32:{basisFormat:13,compressed:!1},rgb565:{basisFormat:14,compressed:!1},bgr565:{basisFormat:15,compressed:!1},rgba4444:{basisFormat:16,compressed:!1}};async function Lde(r,e){if(e.basis.containerFormat==="auto"){if(Dde(r)){const n=await XP(e);return nM(n.KTX2File,r,e)}const{BasisFile:t}=await $P(e);return Gb(t,r,e)}switch(e.basis.module){case"encoder":const t=await XP(e);switch(e.basis.containerFormat){case"ktx2":return nM(t.KTX2File,r,e);case"basis":default:return Gb(t.BasisFile,r,e)}case"transcoder":default:const{BasisFile:n}=await $P(e);return Gb(n,r,e)}}function Gb(r,e,t){const n=new r(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("Failed to start basis transcoding");const i=n.getNumImages(),s=[];for(let o=0;o<i;o++){const l=n.getNumLevels(o),f=[];for(let A=0;A<l;A++)f.push(kde(n,o,A,t));s.push(f)}return s}finally{n.close(),n.delete()}}function kde(r,e,t,n){const i=r.getImageWidth(e,t),s=r.getImageHeight(e,t),o=r.getHasAlpha(),{compressed:l,format:f,basisFormat:A}=g6(n,o),v=r.getImageTranscodedSizeInBytes(e,t,A),T=new Uint8Array(v);if(!r.transcodeImage(T,e,t,A,0,0))throw new Error("failed to start Basis transcoding");return{width:i,height:s,data:T,compressed:l,format:f,hasAlpha:o}}function nM(r,e,t){const n=new r(new Uint8Array(e));try{if(!n.startTranscoding())throw new Error("failed to start KTX2 transcoding");const i=n.getLevels(),s=[];for(let o=0;o<i;o++){s.push(Nde(n,o,t));break}return[s]}finally{n.close(),n.delete()}}function Nde(r,e,t){const{alphaFlag:n,height:i,width:s}=r.getImageLevelInfo(e,0,0),{compressed:o,format:l,basisFormat:f}=g6(t,n),A=r.getImageTranscodedSizeInBytes(e,0,0,f),v=new Uint8Array(A);if(!r.transcodeImage(v,e,0,0,f,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{width:s,height:i,data:v,compressed:o,levelSize:A,hasAlpha:n,format:l}}function g6(r,e){let t=r&&r.basis&&r.basis.format;return t==="auto"&&(t=m6()),typeof t=="object"&&(t=e?t.alpha:t.noAlpha),t=t.toLowerCase(),Fde[t]}function m6(){const r=Rde();return r.has("astc")?"astc-4x4":r.has("dxt")?{alpha:"bc3",noAlpha:"bc1"}
vendor: 2,235 bytes, line 4561
4561:r.has("pvrtc")?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:r.has("etc1")?"etc1":r.has("etc2")?"etc2":"rgb565"}const Ude={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:Cde,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",libraryPath:"libs/",containerFormat:"auto",module:"transcoder"}}},zde={...Ude,parse:Lde},bp=!0,iM=1735152710,Ww=12,m_=8,Vde=1313821514,jde=5130562,Gde=0,Hde=0,Wde=1;function $de(r,e=0){return`${String.fromCharCode(r.getUint8(e+0))}${String.fromCharCode(r.getUint8(e+1))}${String.fromCharCode(r.getUint8(e+2))}${String.fromCharCode(r.getUint8(e+3))}`}function Xde(r,e=0,t={}){const n=new DataView(r),{magic:i=iM}=t,s=n.getUint32(e,!1);return s===i||s===iM}function qde(r,e,t=0,n={}){const i=new DataView(e),s=$de(i,t+0),o=i.getUint32(t+4,bp),l=i.getUint32(t+8,bp);switch(Object.assign(r,{header:{byteOffset:t,byteLength:l,hasBinChunk:!1},type:s,version:o,json:{},binChunks:[]}),t+=Ww,r.version){case 1:return Jde(r,i,t);case 2:return Kde(r,i,t,n={});default:throw new Error(`Invalid GLB version ${r.version}. Only supports version 1 and 2.`)}}function Jde(r,e,t){Ri(r.header.byteLength>Ww+m_);const n=e.getUint32(t+0,bp),i=e.getUint32(t+4,bp);return t+=m_,Ri(i===Gde),B2(r,e,t,n),t+=n,t+=P2(r,e,t,r.header.byteLength),t}function Kde(r,e,t,n){return Ri(r.header.byteLength>Ww+m_),Zde(r,e,t,n),t+r.header.byteLength}function Zde(r,e,t,n){for(;t+8<=r.header.byteLength;){const i=e.getUint32(t+0,bp),s=e.getUint32(t+4,bp);switch(t+=m_,s){case Vde:B2(r,e,t,i);break;case jde:P2(r,e,t,i);break;case Hde:n.strict||B2(r,e,t,i);break;case Wde:n.strict||P2(r,e,t,i);break}t+=Eg(i,4)}return t}function B2(r,e,t,n){const i=new Uint8Array(e.buffer,t,n),o=new TextDecoder("utf8").decode(i);return r.json=JSON.parse(o),Eg(n,4)}function P2(r,e,t,n){return r.header.hasBinChunk=!0,r.binChunks.push({byteOffset:t,byteLength:n,arrayBuffer:e.buffer}),Eg(n,4)}function _6(r,e){if(r.startsWith("data:")||r.startsWith("http:")||r.startsWith("https:"))return r;const n=e.baseUri||e.uri;if(!n)throw new Error(`'baseUri' must be provided to resolve relative url ${r}`);return n.substr(0,n.lastIndexOf("/")+1)+r}
4561const Yde="B9h9z9tFBBBF8fL9gBB9gLaaaaaFa9gEaaaB9gFaFa9gEaaaFaEMcBFFFGGGEIIILF9wFFFLEFBFKNFaFCx/IFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBF8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBGy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBEn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBIi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBKI9z9iqlBOc+x8ycGBM/qQFTa8jUUUUBCU/EBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAGTkUUUBRNCUoBAG9uC/wgBZHKCUGAKCUG9JyRVAECFJRICBRcGXEXAcAF9PQFAVAFAclAcAVJAF9JyRMGXGXAG9FQBAMCbJHKC9wZRSAKCIrCEJCGrRQANCUGJRfCBRbAIRTEXGXAOATlAQ9PQBCBRISEMATAQJRIGXAS9FQBCBRtCBREEXGXAOAIlCi9PQBCBRISLMANCU/CBJAEJRKGXGXGXGXGXATAECKrJ2BBAtCKZrCEZfIBFGEBMAKhB83EBAKCNJhB83EBSEMAKAI2BIAI2BBHmCKrHYAYCE6HYy86BBAKCFJAICIJAYJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCGJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCEJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCIJAYAmJHY2BBAI2BFHmCKrHPAPCE6HPy86BBAKCLJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCKJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCOJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCNJAYAmJHY2BBAI2BGHmCKrHPAPCE6HPy86BBAKCVJAYAPJHY2BBAmCIrCEZHPAPCE6HPy86BBAKCcJAYAPJHY2BBAmCGrCEZHPAPCE6HPy86BBAKCMJAYAPJHY2BBAmCEZHmAmCE6Hmy86BBAKCSJAYAmJHm2BBAI2BEHICKrHYAYCE6HYy86BBAKCQJAmAYJHm2BBAICIrCEZHYAYCE6HYy86BBAKCfJAmAYJHm2BBAICGrCEZHYAYCE6HYy86BBAKCbJAmAYJHK2BBAICEZHIAICE6HIy86BBAKAIJRISGMAKAI2BNAI2BBHmCIrHYAYCb6HYy86BBAKCFJAICNJAYJHY2BBAmCbZHmAmCb6Hmy86BBAKCGJAYAmJHm2BBAI2BFHYCIrHPAPCb6HPy86BBAKCEJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCIJAmAYJHm2BBAI2BGHYCIrHPAPCb6HPy86BBAKCLJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCKJAmAYJHm2BBAI2BEHYCIrHPAPCb6HPy86BBAKCOJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCNJAmAYJHm2BBAI2BIHYCIrHPAPCb6HPy86BBAKCVJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCcJAmAYJHm2BBAI2BLHYCIrHPAPCb6HPy86BBAKCMJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCSJAmAYJHm2BBAI2BKHYCIrHPAPCb6HPy86BBAKCQJAmAPJHm2BBAYCbZHYAYCb6HYy86BBAKCfJAmAYJHm2BBAI2BOHICIrHYAYCb6HYy86BBAKCbJAmAYJHK2BBAICbZHIAICb6HIy86BBAKAIJRISFMAKAI8pBB83BBAKCNJAICNJ8pBB83BBAICTJRIMAtCGJRtAECTJHEAS9JQBMMGXAIQBCBRISEMGXAM9FQBANAbJ2BBRtCBRKAfREEXAEANCU/CBJAKJ2BBHTCFrCBATCFZl9zAtJHt86BBAEAGJREAKCFJHKAM9HQBMMAfCFJRfAIRTAbCFJHbAG9HQBMMABAcAG9sJANCUGJAMAG9sTkUUUBpANANCUGJAMCaJAG9sJAGTkUUUBpMAMCBAIyAcJRcAIQBMC9+RKSFMCBC99AOAIlAGCAAGCA9Ly6yRKMALCU/EBJ8kUUUUBAKM+OmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUFT+JUUUBpALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIA
4561LAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM+lLKFaF99GaG99FaG99GXGXAGCI9HQBAF9FQFEXGXGX9DBBB8/9DBBB+/ABCGJHG1BB+yAB1BBHE+yHI+L+TABCFJHL1BBHK+yHO+L+THN9DBBBB9gHVyAN9DBB/+hANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE86BBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG86BBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG86BBABCIJRBAFCaJHFQBSGMMAF9FQBEXGXGX9DBBB8/9DBBB+/ABCIJHG8uFB+yAB8uFBHE+yHI+L+TABCGJHL8uFBHK+yHO+L+THN9DBBBB9gHVyAN9DB/+g6ANAN+U9DBBBBANAVyHcAc+MHMAECa3yAI+SHIAI+UAcAMAKCa3yAO+SHcAc+U+S+S+R+VHO+U+SHN+L9DBBB9P9d9FQBAN+oRESFMCUUUU94REMAGAE87FBGXGX9DBBB8/9DBBB+/Ac9DBBBB9gyAcAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMALAG87FBGXGX9DBBB8/9DBBB+/AI9DBBBB9gyAIAO+U+SHN+L9DBBB9P9d9FQBAN+oRGSFMCUUUU94RGMABAG87FBABCNJRBAFCaJHFQBMMM/SEIEaE99EaF99GXAF9FQBCBREABRIEXGXGX9D/zI818/AICKJ8uFBHLCEq+y+VHKAI8uFB+y+UHO9DB/+g6+U9DBBB8/9DBBB+/AO9DBBBB9gy+SHN+L9DBBB9P9d9FQBAN+oRVSFMCUUUU94RVMAICIJ8uFBRcAICGJ8uFBRMABALCFJCEZAEqCFWJAV87FBGXGXAKAM+y+UHN9DB/+g6+U9DBBB8/9DBBB+/AN9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRMSFMCUUUU94RMMABALCGJCEZAEqCFWJAM87FBGXGXAKAc+y+UHK9DB/+g6+U9DBBB8/9DBBB+/AK9DBBBB9gy+SHS+L9DBBB9P9d9FQBAS+oRcSFMCUUUU94RcMABALCaJCEZAEqCFWJAc87FBGXGX9DBBU8/AOAO+U+TANAN+U+TAKAK+U+THO9DBBBBAO9DBBBB9gy+R9DB/+g6+U9DBBB8/+SHO+L9DBBB9P9d9FQBAO+oRcSFMCUUUU94RcMABALCEZAEqCFWJAc87FBAICNJRIAECIJREAFCaJHFQBMMM9JBGXAGCGrAF9sHF9FQBEXABAB8oGBHGCNWCN91+yAGCi91CnWCUUU/8EJ+++U84GBABCIJRBAFCaJHFQBMMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEM/lFFFaGXGXAFABqCEZ9FQBABRESFMGXGXAGCT9PQBABRESFMABREEXAEAF8oGBjGBAECIJAFCIJ8oGBjGBAECNJAFCNJ8oGBjGBAECSJAFCSJ8oGBjGBAECTJREAFCTJRFAGC9wJHGCb9LQBMMAGCI9JQBEXAEAF8oGBjGBAFCIJRFAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF2BB86BBAECFJREAFCFJRFAGCaJHGQBMMABMoFFGaGXGXABCEZ9FQBABRESFMAFCgFZC+BwsN9sRIGXGXAGCT9PQBABRESFMABREEXAEAIjGBAECSJAIjGBAECNJAIjGBAECIJAIjGBAECTJREAGC9wJHGCb9LQBMMAGCI9JQBEXAEAIjGBAECIJREAGC98JHGCE9LQBMMGXAG9FQBEXAEAF86BBAECFJREAGCaJHGQBMMABMMMFBCUNMIT9kBB",Qd
vendor: 10,663 bytes, line 4561
4561e="B9h9z9tFBBBF8dL9gBB9gLaaaaaFa9gEaaaB9gGaaB9gFaFaEQSBBFBFFGEGEGIILF9wFFFLEFBFKNFaFCx/aFMO/LFVK9tv9t9vq95GBt9f9f939h9z9t9f9j9h9s9s9f9jW9vq9zBBp9tv9z9o9v9wW9f9kv9j9v9kv9WvqWv94h919m9mvqBG8Z9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv94h919m9mvqBIy9tv9z9o9v9wW9f9kv9j9v9kv9J9u9kv949TvZ91v9u9jvBLn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9P9jWBKi9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9R919hWBNn9tv9z9o9v9wW9f9kv9j9v9kv69p9sWvq9F949wBcI9z9iqlBMc/j9JSIBTEM9+FLa8jUUUUBCTlRBCBRFEXCBRGCBREEXABCNJAGJAECUaAFAGrCFZHIy86BBAEAIJREAGCFJHGCN9HQBMAFCx+YUUBJAE86BBAFCEWCxkUUBJAB8pEN83EBAFCFJHFCUG9HQBMMkRIbaG97FaK978jUUUUBCU/KBlHL8kUUUUBC9+RKGXAGCFJAI9LQBCaRKAE2BBC+gF9HQBALAEAIJHOAGlAG/8cBBCUoBAG9uC/wgBZHKCUGAKCUG9JyRNAECFJRKCBRVGXEXAVAF9PQFANAFAVlAVANJAF9JyRcGXGXAG9FQBAcCbJHIC9wZHMCE9sRSAMCFWRQAICIrCEJCGrRfCBRbEXAKRTCBRtGXEXGXAOATlAf9PQBCBRKSLMALCU/CBJAtAM9sJRmATAfJRKCBREGXAMCoB9JQBAOAKlC/gB9JQBCBRIEXAmAIJREGXGXGXGXGXATAICKrJ2BBHYCEZfIBFGEBMAECBDtDMIBSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIBAKCTJRKMGXGXGXGXGXAYCGrCEZfIBFGEBMAECBDtDMITSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMITAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMITAKCTJRKMGXGXGXGXGXAYCIrCEZfIBFGEBMAECBDtDMIASEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIAAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAEAKDBBBDMIAAKCTJRKMGXGXGXGXGXAYCKrfIBFGEBMAECBDtDMI8wSEMAEAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCIJAnDeBJAYCx+YUUBJ2BBJRKSGMAEAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBAYCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HYCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMI8wAKCNJAnDeBJAYCx+YUUBJ2BBJRKSFMAEAKDBBBDMI8wAKCTJRKMAICoBJREAICUFJAM9LQFAERIAOAKlC/fB9LQBMMGXAEAM9PQBAECErRIEXGXAOAKlCi9PQBCBRKSOMAmAEJRYGXGXGXGXGXATAECKrJ2BBAICKZrCEZfIBFGEBMAYCBDtDMIBSEMAYAKDBBIAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnHPCGD+MFAPDQBTFtGmEYIPLdKeOnC0+G+MiDtD9OHdCEDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCIJAnDeBJAeCx+YUUBJ2BBJRKSGMAYAKDBBNAKDBBBHPCID+MFAPDQBTFtGmEYIPLdKeOnC+P+e+8/4BDtD9OHdCbDbD8jHPD8dBhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBAeCx+YUUBJDBBBHnAnDQBBBBBBBBBBBBBBBBAPD8dFhUg/8/4/w/goB9+h84k7HeCEWCxkUUBJDBEBD9uDQBFGEILKOTtmYPdenDfAdAPD9SDMIBAKCNJAnDeBJAeCx+YUUBJ2BBJRKSFMAYAKDBBBDMIBAKCTJRKMAICGJRIAECTJHEAM9JQBMMGXAK9FQBAKRTAtCFJHtCI6QGSFMMCBRKSEMGXAM9FQBALCUGJAbJREALAbJDBGBRnCBRYEXAEALCU/CBJAYJHIDBIBHdCFD9tAdCFDbHPD9OD9hD9RHdAIAMJDBIBHiCFD9tAiAPD9OD9hD9RHiDQBTFtGmEYIPLdKeOnH8ZAIAQJDBIBHpCFD9tApAPD9OD9hD9RHpAIASJDBIBHyCFD9tAyAPD9OD9hD9RHyDQBTFtGmEYIPLdKeOnH8cDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGEAnD9uHnDyBjGBAEAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnA8ZA8cDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNiV8ZcpMyS8cQ8df8eb8fHdApAyDQNiV8ZcpMyS8cQ8df8eb8fHiDQBFTtGEmYILPdKOenHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJHIAnAdAiDQNVi8ZcMpySQ8c8dfb8e8fHPAPDQBFGEBFGEBFGEBFGED9uHnDyBjGBAIAGJHIAnAPAPDQILKOILKOILKOILKOD9uHnDyBjGBAIAGJHIAnAPAPDQNVcMNVcMNVcMNVcMD9uHnDyBjGBAIAGJHIAnAPAPDQSQfbSQfbSQfbSQfbD9uHnDyBjGBAIAGJREAYCTJHYAM9JQBMMAbCIJHbAG9JQBMMABAVAG9sJALCUGJAcAG9s/8cBBALALCUGJAcCaJAG9sJAG/8cBBMAcCBAKyAVJRVAKQBMC9+RKSFMCBC99AOAKlAGCAAGCA9Ly6yRKMALCU/KBJ8kUUUUBAKMNBT+BUUUBM+KmFTa8jUUUUBCoFlHL8kUUUUBC9+RKGXAFCE9uHOCtJAI9LQBCaRKAE2BBHNC/wFZC/gF9HQBANCbZHVCF9LQBALCoBJCgFCUF/8MBALC84Jha83EBALC8wJha83EBALC8oJha83EBALCAJha83EBALCiJha83EBALCTJha83EBALha83ENALha83EBAEAIJC9wJRcAECFJHNAOJRMGXAF9FQBCQCbAVCF6yRSABRECBRVCBRQCBRfCBRICBRKEXGXAMAcuQBC9+RKSEMGXGXAN2BBHOC/vF9LQBALCoBJAOCIrCa9zAKJCbZCEWJHb8oGIRTAb8oGBRtGXAOCbZHbAS9PQBALAOCa9zAIJCbZCGWJ8oGBAVAbyROAb9FRbGXGXAGCG9HQBABAt87FBABCIJAO87FBABCGJAT87FBSFMAEAtjGBAECNJAOjGBAECIJATjGBMAVAbJRVALCoBJAKCEWJHmAOjGBAmATjGIALAICGWJAOjGBALCoBJAKCFJCbZHKCEWJHTAtjGBATAOjGIAIAbJRIAKCFJRKSGMGXGXAbCb6QBAQAbJAbC989zJCFJRQSFMAM1BBHbCgFZROGXGXAbCa9MQBAMCFJRMSFMAM1BFHbCgBZCOWAOCgBZqROGXAbCa9MQBAMCGJRMSFMAM1BGHbCgBZCfWAOqROGXAbCa9MQBAMCEJRMSFMAM1BEHbCgBZCdWAOqROGXAbCa9MQBAMCIJRMSFMAM2BIC8cWAOqROAMCLJRMMAOCFrCBAOCFZl9zAQJRQMGXGXAGCG9HQBABAt87FBABCIJAQ87FBABCGJAT87FBSFMAEAtjGBAECNJAQjGBAECIJATjGBMALCoBJAKCEWJHOAQjGBAOATjGIALAICGWJAQjGBALCoBJAKCFJCbZHKCEWJHOAtjGBAOAQjGIAICFJRIAKCFJRKSFMGXAOCDF9LQBALAIAcAOCbZJ2BBHbCIrHTlCbZCGWJ8oGBAVCFJHtATyROALAIAblCbZCGWJ8oGBAtAT9FHmJHtAbCbZHTyRbAT9FRTGXGXAGCG9HQBABAV87FBABCIJAb87FBABCGJAO87FBSFMAEAVjGBAECNJAbjGBAECIJAOjGBMALAICGWJAVjGBALCoBJAKCEWJHYAOjGBAYAVjGIALAICFJHICbZCGWJAOjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAIAmJCbZHICGWJAbjGBALCoBJAKCGJCbZHKCEWJHOAVjGBAOAbjGIAKCFJRKAIATJRIAtATJRVSFMAVCBAM2BBHYyHTAOC/+F6HPJROAYCbZRtGXGXAYCIrHmQBAOCFJRbSFMAORbALAIAmlCbZCGWJ8oGBROMGXGXAtQBAbCFJRVSFMAbRVALAIAYlCbZCGWJ8oGBRbMGXGXAP9FQBAMCFJRYSFMAM1BFHYCgFZRTGXGXAYCa9MQBAMCGJRYSFMAM1BGHYCgBZCOWATCgBZqRTGXAYCa9MQBAMCEJRYSFMAM1BEHYCgBZCfWATqRTGXAYCa9MQBAMCIJRYSFMAM1BIHYCgBZCdWATqRTGXAYCa9MQBAMCLJRYSFMAMCKJRYAM2BLC8cWATqRTMATCFrCBATCFZl9zAQJHQRTMGXGXAmCb6QBAYRPSFMAY1BBHMCgFZROGXGXAMCa9MQBAYCFJRPSFMAY1BFHMCgBZCOWAOCgBZqROGXAMCa9MQBAYCGJRPSFMAY1BGHMCgBZCfWAOqROGXAMCa9MQBAYCEJRPSFMAY1BEHMCgBZCdWAOqROGXAMCa9MQBAYCIJRPSFMAYCLJRPAY2BIC8cWAOqROMAOCFrCBAOCFZl9zAQJHQROMGXGXAtCb6QBAPRMSFMAP1BBHMCgFZRbGXGXAMCa9MQBAPCFJRMSFMAP1BFHMCgBZCOWAbCgBZqRbGXAMCa9MQBAPCGJRMSFMAP1BGHMCgBZCfWAbqRbGXAMCa9MQBAPCEJRMSFMAP1BEHMCgBZCdWAbqRbGXAMCa9MQBAPCIJRMSFMAPCLJRMAP2BIC8cWAbqRbMAbCFrCBAbCFZl9zAQJHQRbMGXGXAGCG9HQBABAT87FBABCIJAb87FBABCGJAO87FBSFMAEATjGBAECNJAbjGBAECIJAOjGBMALCoBJAKCEWJHYAOjGBAYATjGIALAICGWJATjGBALCoBJAKCFJCbZCEWJHYAbjGBAYAOjGIALAICFJHICbZCGWJAOjGBALCoBJAKCGJCbZCEWJHOATjGBAOAbjGIALAIAm9FAmCb6qJHICbZCGWJAbjGBAIAt9FAtCb6qJRIAKCEJRKMANCFJRNABCKJRBAECSJREAKCbZRKAICbZRIAfCEJHfAF9JQBMMCBC99AMAc6yRKMALCoFJ8kUUUUBAKM/tIFGa8jUUUUBCTlRLC9+RKGXAFCLJAI9LQBCaRKAE2BBC/+FZC/QF9HQBALhB83ENAECFJRKAEAIJC98JREGXAF9FQBGXAGCG6QBEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMALCNJAICFZCGWqHGAICGrCBAICFrCFZl9zAG8oGBJHIjGBABAIjGBABCIJRBAFCaJHFQBSGMMEXGXAKAE9JQBC9+bMAK1BBHGCgFZRIGXGXAGCa9MQBAKCFJRKSFMAK1BFHGCgBZCOWAICgBZqRIGXAGCa9MQBAKCGJRKSFMAK1BGHGCgBZCfWAIqRIGXAGCa9MQBAKCEJRKSFMAK1BEHGCgBZCdWAIqRIGXAGCa9MQBAKCIJRKSFMAK2BIC8cWAIqRIAKCLJRKMABAICGrCBAICFrCFZl9zALCNJAICFZCGWqHI8oGBJHG87FBAIAGjGBABCGJRBAFCaJHFQBMMCBC99AKAE6yRKMAKM/xLGEaK978jUUUUBCAlHE8kUUUUBGXGXAGCI9HQBGXAFC98ZHI9FQBABRGCBRLEXAGAGDBBBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMBBAGCTJRGALCIJHLAI9JQBMMAIAF9PQFAEAFCEZHLCGWHGqCBCTAGl/8MBAEABAICGWJHIAG/8cBBGXAL9FQBAEAEDBIBHKCiD+rFCiD+sFD/6FHOAKCND+rFCiD+sFD/6FAOD/gFAKCTD+rFCiD+sFD/6FHND/gFD/kFD/lFHVCBDtD+2FHcAOCUUUU94DtHMD9OD9RD/kFHO9DBB/+hDYAOAOD/mFAVAVD/mFANAcANAMD9OD9RD/kFHOAOD/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHcD/kFCgFDtD9OAKCUUU94DtD9OD9QAOAND/mFAcD/kFCND+rFCU/+EDtD9OD9QAVAND/mFAcD/kFCTD+rFCUU/8ODtD9OD9QDMIBMAIAEAG/8cBBSFMABAFC98ZHGT+HUUUBAGAF9PQBAEAFCEZHICEWHLJCBCAALl/8MBAEABAGCEWJHGAL/8cBBAEAIT+HUUUBAGAEAL/8cBBMAECAJ8kUUUUBM+yEGGaO97GXAF9FQBCBRGEXABCTJHEAEDBBBHICBDtHLCUU98D8cFCUU98D8cEHKD9OABDBBBHOAIDQILKOSQfbPden8c8d8e8fCggFDtD9OD/6FAOAIDQBFGENVcMTtmYi8ZpyHICTD+sFD/6FHND/gFAICTD+rFCTD+sFD/6FHVD/gFD/kFD/lFHI9DB/+g6DYAVAIALD+2FHLAVCUUUU94DtHcD9OD9RD/kFHVAVD/mFAIAID/mFANALANAcD9OD9RD/kFHIAID/mFD/kFD/kFD/jFD/nFHND/mF9DBBX9LDYHLD/kFCTD+rFAVAND/mFALD/kFCggEDtD9OD9QHVAIAND/mFALD/kFCaDbCBDnGCBDnECBDnKCBDnOCBDncCBDnMCBDnfCBDnbD9OHIDQNVi8ZcMpySQ8c8dfb8e8fD9QDMBBABAOAKD9OAVAIDQBFTtGEmYILPdKOenD9QDMBBABCAJRBAGCIJHGAF9JQBMMM94FEa8jUUUUBCAlHE8kUUUUBABAFC98ZHIT+JUUUBGXAIAF9PQBAEAFCEZHLCEWHFJCBCAAFl/8MBAEABAICEWJHBAF/8cBBAEALT+JUUUBABAEAF/8cBBMAECAJ8kUUUUBM/hEIGaF97FaL978jUUUUBCTlRGGXAF9FQBCBREEXAGABDBBBHIABCTJHLDBBBHKDQILKOSQfbPden8c8d8e8fHOCTD+sFHNCID+rFDMIBAB9DBBU8/DY9D/zI818/DYANCEDtD9QD/6FD/nFHNAIAKDQBFGENVcMTtmYi8ZpyHICTD+rFCTD+sFD/6FD/mFHKAKD/mFANAICTD+sFD/6FD/mFHVAVD/mFANAOCTD+rFCTD+sFD/6FD/mFHOAOD/mFD/kFD/kFD/lFCBDtD+4FD/jF9DB/+g6DYHND/mF9DBBX9LDYHID/kFCggEDtHcD9OAVAND/mFAID/kFCTD+rFD9QHVAOAND/mFAID/kFCTD+rFAKAND/mFAID/kFAcD9OD9QHNDQBFTtGEmYILPdKOenHID8dBAGDBIBDyB+t+J83EBABCNJAID8dFAGDBIBDyF+t+J83EBALAVANDQNVi8ZcMpySQ8c8dfb8e8fHND8dBAGDBIBDyG+t+J83EBABCiJAND8dFAGDBIBDyE+t+J83EBABCAJRBAECIJHEAF9JQBMMM/3FGEaF978jUUUUBCoBlREGXAGCGrAF9sHIC98ZHL9FQBCBRGABRFEXAFAFDBBBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMBBAFCTJRFAGCIJHGAL9JQBMMGXALAI9PQBAEAICEZHGCGWHFqCBCoBAFl/8MBAEABALCGWJHLAF/8cBBGXAG9FQBAEAEDBIBHKCND+rFCND+sFD/6FAKCiD+sFCnD+rFCUUU/8EDtD+uFD/mFDMIBMALAEAF/8cBBMM9TFEaCBCB8oGUkUUBHFABCEJC98ZJHBjGUkUUBGXGXAB8/BCTWHGuQBCaREABAGlCggEJCTrXBCa6QFMAFREMAEMMMFBCUNMIT9tBB",
vendor: 22,058 bytes, line 4561
4561epe=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]),tpe=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]),rpe={0:"",1:"meshopt_decodeFilterOct",2:"meshopt_decodeFilterQuat",3:"meshopt_decodeFilterExp",NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},npe={0:"meshopt_decodeVertexBuffer",1:"meshopt_decodeIndexBuffer",2:"meshopt_decodeIndexSequence",ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"};async function ipe(r,e,t,n,i,s="NONE"){const o=await spe();lpe(o,o.exports[npe[i]],r,e,t,n,o.exports[rpe[s||"NONE"]])}let Hb;async function spe(){return Hb||(Hb=ope()),Hb}async function ope(){let r=Yde;WebAssembly.validate(epe)&&(r=Qde,console.log("Warning: meshopt_decoder is using experimental SIMD support"));const e=await WebAssembly.instantiate(ape(r),{});return await e.instance.exports.__wasm_call_ctors(),e.instance}function ape(r){const e=new Uint8Array(r.length);for(let n=0;n<r.length;++n){const i=r.charCodeAt(n);e[n]=i>96?i-71:i>64?i-65:i>47?i+4:i>46?63:62}let t=0;for(let n=0;n<r.length;++n)e[t++]=e[n]<60?tpe[e[n]]:(e[n]-60)*64+e[++n];return e.buffer.slice(0,t)}function lpe(r,e,t,n,i,s,o){const l=r.exports.sbrk,f=n+3&-4,A=l(f*i),v=l(s.length),T=new Uint8Array(r.exports.memory.buffer);T.set(s,v);const I=e(A,n,i,v,s.length);if(I===0&&o&&o(A,f,i),t.set(T.subarray(A,A+n*i)),l(A-l(0)),I!==0)throw new Error(`Malformed buffer data: ${I}`)}const __="EXT_meshopt_compression",cpe=__;async function upe(r,e){const t=new yo(r);if(!e?.gltf?.decompressMeshes||!e.gltf?.loadBuffers)return;const n=[];for(const i of r.json.bufferViews||[])n.push(fpe(t,i));await Promise.all(n),t.removeExtension(__)}async function fpe(r,e){const t=r.getObjectExtension(e,__);if(t){const{byteOffset:n=0,byteLength:i=0,byteStride:s,count:o,mode:l,filter:f="NONE",buffer:A}=t,v=r.gltf.buffers[A],T=new Uint8Array(v.arrayBuffer,v.byteOffset+n,i),I=new Uint8Array(r.gltf.buffers[e.buffer].arrayBuffer,e.byteOffset,e.byteLength);await ipe(I,o,s,T,l,f),r.removeObjectExtension(e,__)}}const hpe=Object.freeze(Object.defineProperty({__proto__:null,decode:upe,name:cpe},Symbol.toStringTag,{value:"Module"})),Fd="EXT_texture_webp",dpe=Fd;function ppe(r,e){const t=new yo(r);if(!Sae("image/webp")){if(t.getRequiredExtensions().includes(Fd))throw new Error(`gltf: Required extension ${Fd} not supported by browser`);return}const{json:n}=t;for(const i of n.textures||[]){const s=t.getObjectExtension(i,Fd);s&&(i.source=s.source),t.removeObjectExtension(i,Fd)}t.removeExtension(Fd)}const Ape=Object.freeze(Object.defineProperty({__proto__:null,name:dpe,preprocess:ppe},Symbol.toStringTag,{value:"Module"})),Rm="KHR_texture_basisu",gpe=Rm;function mpe(r,e){const t=new yo(r),{json:n}=t;for(const i of n.textures||[]){const s=t.getObjectExtension(i,Rm);s&&(i.source=s.source,t.removeObjectExtension(i,Rm))}t.removeExtension(Rm)}const _pe=Object.freeze(Object.defineProperty({__proto__:null,name:gpe,preprocess:mpe},Symbol.toStringTag,{value:"Module"}));function ype(r){const e={};for(const t in r){const n=r[t];if(t!=="indices"){const i=y6(n);e[t]=i}}return e}function y6(r){const{buffer:e,size:t,count:n}=vpe(r);return{value:e,size:t,byteOffset:0,count:n,type:o6(t),componentType:Uw(e)}}function vpe(r){let e=r,t=1,n=0;return r&&r.value&&(e=r.value,t=r.size||1),e&&(ArrayBuffer.isView(e)||(e=bpe(e,Float32Array)),n=e.length/t),{buffer:e,size:t,count:n}}function bpe(r,e,t=!1){return r?Array.isArray(r)?new e(r):t&&!(r instanceof e)?new e(r):r:null}const Qu="KHR_draco_mesh_compression",xpe=Qu;function wpe(r,e,t){const n=new yo(r);for(const i of v6(n))n.getObjectExtension(i,Qu)}async function Tpe(r,e,t){if(!e?.gltf?.decompressMeshes)return;const n=new yo(r),i=[];for(const s of v6(n))n.getObjectExtension(s,Qu)&&i.push(Cpe(n,s,e,t));await Promise.all(i),n.removeExtension(Qu)}function Epe(r,e={}){const t=new yo(r);for(const n of t.json.meshes||[])Spe(n),t.addRequiredExtension(Qu)}async function Cpe(r,e,t,n){const i=r.getObjectExtension(e,Qu);if(!i)return;const s=r.getTypedArrayForBufferView(i.bufferView),o=Aw(s.buffer,s.byteOffset),l={...t};delete l["3d-tiles"];const f=await wg(o,e6,l,n),A=ype(f.attributes);for(const[v,T]of Object.entries(A))if(v in e.attributes){const I=e.attributes[v],F=r.getAccessor(I);F?.min&&F?.max&&(T.min=F.min,T.max=F.max)}e.attributes=A,f.indices&&(e.indices=y6(f.indices)),r.removeObjectExtension(e,Qu),Ipe(e)}function Spe(r,e,t=4,n,i){if(!n.DracoWriter)throw new Error("options.gltf.DracoWriter not provided");const s=n.DracoWriter.encodeSync({attributes:r}),o=i?.parseSync?.({attributes:r}),l=n._addFauxAttributes(o.attributes),f=n.addBufferView(s);return{primitives:[{attributes:l,mode:t,extensions:{[Qu]:{bufferView:f,attributes:l}}}]}}function Ipe(r){if(!r.attributes&&Object.keys(r.attributes).length>0)throw new Error("glTF: Empty primitive detected: Draco decompression failure?")}function*v6(r){for(const e of r.json.meshes||[])for(const t of e.primitives)yield t}const Bpe=Object.freeze(Object.defineProperty({__proto__:null,decode:Tpe,encode:Epe,name:xpe,preprocess:wpe},Symbol.toStringTag,{value:"Module"})),cy="KHR_texture_transform",Ppe=cy,Y0=new dt,Mpe=new Oi,Rpe=new Oi;async function Ope(r,e){if(!new yo(r).hasExtension(cy)||!e.gltf?.loadBuffers)return;const i=r.json.materials||[];for(let s=0;s<i.length;s++)Dpe(s,r)}function Dpe(r,e){const t=e.json.materials?.[r],n=[t?.pbrMetallicRoughness?.baseColorTexture,t?.emissiveTexture,t?.normalTexture,t?.occlusionTexture,t?.pbrMetallicRoughness?.metallicRoughnessTexture],i=[];for(const s of n)s&&s?.extensions?.[cy]&&Fpe(e,r,s,i)}function Fpe(r,e,t,n){const i=Lpe(t,n);if(!i)return;const s=r.json.meshes||[];for(const o of s)for(const l of o.primitives){const f=l.material;Number.isFinite(f)&&e===f&&kpe(r,l,i)}}function Lpe(r,e){const t=r.extensions?.[cy],{texCoord:n=0}=r,{texCoord:i=n}=t;if(!(e.findIndex(([o,l])=>o===n&&l===i)!==-1)){const o=zpe(t);return n!==i&&(r.texCoord=i),e.push([n,i]),{originalTexCoord:n,texCoord:i,matrix:o}}return null}function kpe(r,e,t){const{originalTexCoord:n,texCoord:i,matrix:s}=t,o=e.attributes[`TEXCOORD_${n}`];if(Number.isFinite(o)){const l=r.json.accessors?.[o];if(l&&l.bufferView){const f=r.json.bufferViews?.[l.bufferView];if(f){const{arrayBuffer:A,byteOffset:v}=r.buffers[f.buffer],T=(v||0)+(l.byteOffset||0)+(f.byteOffset||0),{ArrayType:I,length:F}=zw(l,f),N=s6[l.componentType],U=i6[l.type],$=f.byteStride||N*U,V=new Float32Array(F);for(let G=0;G<l.count;G++){const X=new I(A,T+G*$,2);Y0.set(X[0],X[1],1),Y0.transformByMatrix3(s),V.set([Y0[0],Y0[1]],G*U)}n===i?Npe(l,f,r.buffers,V):Upe(i,l,e,r,V)}}}}function Npe(r,e,t,n){r.componentType=5126,t.push({arrayBuffer:n.buffer,byteOffset:0,byteLength:n.buffer.byteLength}),e.buffer=t.length-1,e.byteLength=n.buffer.byteLength,e.byteOffset=0,delete e.byteStride}function Upe(r,e,t,n,i){n.buffers.push({arrayBuffer:i.buffer,byteOffset:0,byteLength:i.buffer.byteLength});const s=n.json.bufferViews;if(!s)return;s.push({buffer:n.buffers.length-1,byteLength:i.buffer.byteLength,byteOffset:0});const o=n.json.accessors;o&&(o.push({bufferView:s?.length-1,byteOffset:0,componentType:5126,count:e.count,type:"VEC2"}),t.attributes[`TEXCOORD_${r}`]=o.length-1)}function zpe(r){const{offset:e=[0,0],rotation:t=0,scale:n=[1,1]}=r,i=new Oi().set(1,0,0,0,1,0,e[0],e[1],1),s=Mpe.set(Math.cos(t),Math.sin(t),0,-Math.sin(t),Math.cos(t),0,0,0,1),o=Rpe.set(n[0],0,0,0,n[1],0,0,0,1);return i.multiplyRight(s).multiplyRight(o)}const Vpe=Object.freeze(Object.defineProperty({__proto__:null,decode:Ope,name:Ppe},Symbol.toStringTag,{value:"Module"})),Jf="KHR_lights_punctual",jpe=Jf;async function Gpe(r){const e=new yo(r),{json:t}=e,n=e.getExtension(Jf);n&&(e.json.lights=n.lights,e.removeExtension(Jf));for(const i of t.nodes||[]){const s=e.getObjectExtension(i,Jf);s&&(i.light=s.light),e.removeObjectExtension(i,Jf)}}async function Hpe(r){const e=new yo(r),{json:t}=e;if(t.lights){const n=e.addExtension(Jf);Aa(!n.lights),n.lights=t.lights,delete t.lights}if(e.json.lights){for(const n of e.json.lights){const i=n.node;e.addObjectExtension(i,Jf,n)}delete e.json.lights}}const Wpe=Object.freeze(Object.defineProperty({__proto__:null,decode:Gpe,encode:Hpe,name:jpe},Symbol.toStringTag,{value:"Module"})),cg="KHR_materials_unlit",$pe=cg;async function Xpe(r){const e=new yo(r),{json:t}=e;for(const n of t.materials||[])n.extensions&&n.extensions.KHR_materials_unlit&&(n.unlit=!0),e.removeObjectExtension(n,cg);e.removeExtension(cg)}function qpe(r){const e=new yo(r),{json:t}=e;if(e.materials)for(const n of t.materials||[])n.unlit&&(delete n.unlit,e.addObjectExtension(n,cg,{}),e.addExtension(cg))}const Jpe=Object.freeze(Object.defineProperty({__proto__:null,decode:Xpe,encode:qpe,name:$pe},Symbol.toStringTag,{value:"Module"})),MA="KHR_techniques_webgl",Kpe=MA;async function Zpe(r){const e=new yo(r),{json:t}=e,n=e.getExtension(MA);if(n){const i=Qpe(n,e);for(const s of t.materials||[]){const o=e.getObjectExtension(s,MA);o&&(s.technique=Object.assign({},o,i[o.technique]),s.technique.values=eAe(s.technique,e)),e.removeObjectExtension(s,MA)}e.removeExtension(MA)}}async function Ype(r,e){}function Qpe(r,e){const{programs:t=[],shaders:n=[],techniques:i=[]}=r,s=new TextDecoder;return n.forEach(o=>{if(Number.isFinite(o.bufferView))o.code=s.decode(e.getTypedArrayForBufferView(o.bufferView));else throw new Error("KHR_techniques_webgl: no shader code")}),t.forEach(o=>{o.fragmentShader=n[o.fragmentShader],o.vertexShader=n[o.vertexShader]}),i.forEach(o=>{o.program=t[o.program]}),i}function eAe(r,e){const t=Object.assign({},r.values);return Object.keys(r.uniforms||{}).forEach(n=>{r.uniforms[n].value&&!(n in t)&&(t[n]=r.uniforms[n].value)}),Object.keys(t).forEach(n=>{typeof t[n]=="object"&&t[n].index!==void 0&&(t[n].texture=e.getTexture(t[n].index))}),t}const tAe=Object.freeze(Object.defineProperty({__proto__:null,decode:Zpe,encode:Ype,name:Kpe},Symbol.toStringTag,{value:"Module"})),b6=[ade,Ghe,hpe,Ape,_pe,Bpe,Wpe,Jpe,tAe,Vpe,Tde];function rAe(r,e={},t){const n=b6.filter(i=>x6(i.name,e));for(const i of n)i.preprocess?.(r,e,t)}async function nAe(r,e={},t){const n=b6.filter(i=>x6(i.name,e));for(const i of n)await i.decode?.(r,e,t)}function x6(r,e){const t=e?.gltf?.excludeExtensions||{};return!(r in t&&!t[r])}const Wb="KHR_binary_glTF";function iAe(r){const e=new yo(r),{json:t}=e;for(const n of t.images||[]){const i=e.getObjectExtension(n,Wb);i&&Object.assign(n,i),e.removeObjectExtension(n,Wb)}t.buffers&&t.buffers[0]&&delete t.buffers[0].uri,e.removeExtension(Wb)}const sM={accessors:"accessor",animations:"animation",buffers:"buffer",bufferViews:"bufferView",images:"image",materials:"material",meshes:"mesh",nodes:"node",samplers:"sampler",scenes:"scene",skins:"skin",textures:"texture"},sAe={accessor:"accessors",animations:"animation",buffer:"buffers",bufferView:"bufferViews",image:"images",material:"materials",mesh:"meshes",node:"nodes",sampler:"samplers",scene:"scenes",skin:"skins",texture:"textures"};class oAe{idToIndexMap={animations:{},accessors:{},buffers:{},bufferViews:{},images:{},materials:{},meshes:{},nodes:{},samplers:{},scenes:{},skins:{},textures:{}};json;normalize(e,t){this.json=e.json;const n=e.json;switch(n.asset&&n.asset.version){case"2.0":return;case void 0:case"1.0":break;default:console.warn(`glTF: Unknown version ${n.asset.version}`);return}if(!t.normalize)throw new Error("glTF v1 is not supported.");console.warn("Converting glTF v1 to glTF v2 format. This is experimental and may fail."),this._addAsset(n),this._convertTopLevelObjectsToArrays(n),iAe(e),this._convertObjectIdsToArrayIndices(n),this._updateObjects(n),this._updateMaterial(n)}_addAsset(e){e.asset=e.asset||{},e.asset.version="2.0",e.asset.generator=e.asset.generator||"Normalized to glTF 2.0 by loaders.gl"}_convertTopLevelObjectsToArrays(e){for(const t in sM)this._convertTopLevelObjectToArray(e,t)}_convertTopLevelObjectToArray(e,t){const n=e[t];if(!(!n||Array.isArray(n))){e[t]=[];for(const i in n){const s=n[i];s.id=s.id||i;const o=e[t].length;e[t].push(s),this.idToIndexMap[t][i]=o}}}_convertObjectIdsToArrayIndices(e){for(const t in sM)this._convertIdsToIndices(e,t);"scene"in e&&(e.scene=this._convertIdToIndex(e.scene,"scene"));for(const t of e.textures)this._convertTextureIds(t);for(const t of e.meshes)this._convertMeshIds(t);for(const t of e.nodes)this._convertNodeIds(t);for(const t of e.scenes)this._convertSceneIds(t)}_convertTextureIds(e){e.source&&(e.source=this._convertIdToIndex(e.source,"image"))}_convertMeshIds(e){for(const t of e.primitives){const{attributes:n,indices:i,material:s}=t;for(const o in n)n[o]=this._convertIdToIndex(n[o],"accessor");i&&(t.indices=this._convertIdToIndex(i,"accessor")),s&&(t.material=this._convertIdToIndex(s,"material"))}}_convertNodeIds(e){e.children&&(e.children=e.children.map(t=>this._convertIdToIndex(t,"node"))),e.meshes&&(e.meshes=e.meshes.map(t=>this._convertIdToIndex(t,"mesh")))}_convertSceneIds(e){e.nodes&&(e.nodes=e.nodes.map(t=>this._convertIdToIndex(t,"node")))}_convertIdsToIndices(e,t){e[t]||(console.warn(`gltf v1: json doesn't contain attribute ${t}`),e[t]=[]);for(const n of e[t])for(const i in n){const s=n[i],o=this._convertIdToIndex(s,i);n[i]=o}}_convertIdToIndex(e,t){const n=sAe[t];if(n in this.idToIndexMap){const i=this.idToIndexMap[n][e];if(!Number.isFinite(i))throw new Error(`gltf v1: failed to resolve ${t} with id ${e}`);return i}return e}_updateObjects(e){for(const t of this.json.buffers)delete t.type}_updateMaterial(e){for(const t of e.materials){t.pbrMetallicRoughness={baseColorFactor:[1,1,1,1],metallicFactor:1,roughnessFactor:1};const n=t.values?.tex||t.values?.texture2d_0||t.values?.diffuseTex,i=e.textures.findIndex(s=>s.id===n);i!==-1&&(t.pbrMetallicRoughness.baseColorTexture={index:i})}}}function aAe(r,e={}){return new oAe().normalize(r,e)}async function lAe(r,e,t=0,n,i){return cAe(r,e,t,n),aAe(r,{normalize:n?.gltf?.normalize}),rAe(r,n,i),n?.gltf?.loadBuffers&&r.json.buffers&&await uAe(r,n,i),n?.gltf?.loadImages&&await fAe(r,n,i),await nAe(r,n,i),r}function cAe(r,e,t,n){if(n.uri&&(r.baseUri=n.uri),e instanceof ArrayBuffer&&!Xde(e,t,n)&&(e=new TextDecoder().decode(e)),typeof e=="string")r.json=goe(e);else if(e instanceof ArrayBuffer){const o={};t=qde(o,e,t,n.glb),Aa(o.type==="glTF",`Invalid GLB magic string ${o.type}`),r._glb=o,r.json=o.json}else Aa(!1,"GLTF: must be ArrayBuffer or string");const i=r.json.buffers||[];if(r.buffers=new Array(i.length).fill(null),r._glb&&r._glb.header.hasBinChunk){const{binChunks:o}=r._glb;r.buffers[0]={arrayBuffer:o[0].arrayBuffer,byteOffset:o[0].byteOffset,byteLength:o[0].byteLength}}const s=r.json.images||[];r.images=new Array(s.length).fill({})}async function uAe(r,e,t){const n=r.json.buffers||[];for(let i=0;i<n.length;++i){const s=n[i];if(s.uri){const{fetch:o}=t;Aa(o);const l=_6(s.uri,e),A=await(await t?.fetch?.(l))?.arrayBuffer?.();r.buffers[i]={arrayBuffer:A,byteOffset:0,byteLength:A.byteLength},delete s.uri}else r.buffers[i]===null&&(r.buffers[i]={arrayBuffer:new ArrayBuffer(s.byteLength),byteOffset:0,byteLength:s.byteLength})}}async function fAe(r,e,t){const n=hAe(r),i=r.json.images||[],s=[];for(const o of n)s.push(dAe(r,i[o],o,e,t));return await Promise.all(s)}function hAe(r){const e=new Set,t=r.json.textures||[];for(const n of t)n.source!==void 0&&e.add(n.source);return Array.from(e).sort()}async function dAe(r,e,t,n,i){let s;if(e.uri&&!e.hasOwnProperty("bufferView")){const l=_6(e.uri,n),{fetch:f}=i;s=await(await f(l)).arrayBuffer(),e.bufferView={data:s}}if(Number.isFinite(e.bufferView)){const l=Ohe(r.json,r.buffers,e.bufferView);s=Aw(l.buffer,l.byteOffset,l.byteLength)}Aa(s,"glTF image has no data");let o=await wg(s,[h_,zde],{...n,mimeType:e.mimeType,basis:n.basis||{format:m6()}},i);o&&o[0]&&(o={compressed:!0,mipmaps:!1,width:o[0].width,height:o[0].height,data:o[0]}),r.images=r.images||[],r.images[t]=o}const y_={dataType:null,batchType:null,name:"glTF",id:"gltf",module:"gltf",version:Ede,extensions:["gltf","glb"],mimeTypes:["model/gltf+json","model/gltf-binary"],text:!0,binary:!0,tests:["glTF"],parse:pAe,options:{gltf:{normalize:!0,loadBuffers:!0,loadImages:!0,decompressMeshes:!0},log:console}};async function pAe(r,e={},t){e={...y_.options,...e},e.gltf={...y_.options.gltf,...e.gltf};const{byteOffset:n=0}=e;return await lAe({},r,n,e,t)}const AAe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},gAe={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},Da={TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,REPEAT:10497,LINEAR:9729,NEAREST_MIPMAP_LINEAR:9986},mAe={magFilter:Da.TEXTURE_MAG_FILTER,minFilter:Da.TEXTURE_MIN_FILTER,wrapS:Da.TEXTURE_WRAP_S,wrapT:Da.TEXTURE_WRAP_T},_Ae={[Da.TEXTURE_MAG_FILTER]:Da.LINEAR,[Da.TEXTURE_MIN_FILTER]:Da.NEAREST_MIPMAP_LINEAR,[Da.TEXTURE_WRAP_S]:Da.REPEAT,[Da.TEXTURE_WRAP_T]:Da.REPEAT};function yAe(){return{id:"default-sampler",parameters:_Ae}}function vAe(r){return gAe[r]}function bAe(r){return AAe[r]}class xAe{baseUri="";jsonUnprocessed;json;buffers=[];images=[];postProcess(e,t={}){const{json:n,buffers:i=[],images:s=[]}=e,{baseUri:o=""}=e;return Aa(n),this.baseUri=o,this.buffers=i,this.images=s,this.jsonUnprocessed=n,this.json=this._resolveTree(e.json,t),this.json}_resolveTree(e,t={}){const n={...e};return this.json=n,e.bufferViews&&(n.bufferViews=e.bufferViews.map((i,s)=>this._resolveBufferView(i,s))),e.images&&(n.images=e.images.map((i,s)=>this._resolveImage(i,s))),e.samplers&&(n.samplers=e.samplers.map((i,s)=>this._resolveSampler(i,s))),e.textures&&(n.textures=e.textures.map((i,s)=>this._resolveTexture(i,s))),e.accessors&&(n.accessors=e.accessors.map((i,s)=>this._resolveAccessor(i,s))),e.materials&&(n.materials=e.materials.map((i,s)=>this._resolveMaterial(i,s))),e.meshes&&(n.meshes=e.meshes.map((i,s)=>this._resolveMesh(i,s))),e.nodes&&(n.nodes=e.nodes.map((i,s)=>this._resolveNode(i,s)),n.nodes=n.nodes.map((i,s)=>this._resolveNodeChildren(i))),e.skins&&(n.skins=e.skins.map((i,s)=>this._resolveSkin(i,s))),e.scenes&&(n.scenes=e.scenes.map((i,s)=>this._resolveScene(i,s))),typeof this.json.scene=="number"&&n.scenes&&(n.scene=n.scenes[this.json.scene]),n}getScene(e){return this._get(this.json.scenes,e)}getNode(e){return this._get(this.json.nodes,e)}getSkin(e){return this._get(this.json.skins,e)}getMesh(e){return this._get(this.json.meshes,e)}getMaterial(e){return this._get(this.json.materials,e)}getAccessor(e){return this._get(this.json.accessors,e)}getCamera(e){return this._get(this.json.cameras,e)}getTexture(e){return this._get(this.json.textures,e)}getSampler(e){return this._get(this.json.samplers,e)}getImage(e){return this._get(this.json.images,e)}getBufferView(e){return this._get(this.json.bufferViews,e)}getBuffer(e){return this._get(this.json.buffers,e)}_get(e,t){if(typeof t=="object")return t;const n=e&&e[t];return n||console.warn(`glTF file error: Could not find ${e}[${t}]`),n}_resolveScene(e,t){return{...e,id:e.id||`scene-${t}`,nodes:(e.nodes||[]).map(n=>this.getNode(n))}}_resolveNode(e,t){const n={...e,id:e?.id||`node-${t}`};return e.mesh!==void 0&&(n.mesh=this.getMesh(e.mesh)),e.camera!==void 0&&(n.camera=this.getCamera(e.camera)),e.skin!==void 0&&(n.skin=this.getSkin(e.skin)),e.meshes!==void 0&&e.meshes.length&&(n.mesh=e.meshes.reduce((i,s)=>{const o=this.getMesh(s);return i.id=o.id,i.primitives=i.primitives.concat(o.primitives),i},{primitives:[]})),n}_resolveNodeChildren(e){return e.children&&(e.children=e.children.map(t=>this.getNode(t))),e}_resolveSkin(e,t){const n=typeof e.inverseBindMatrices=="number"?this.getAccessor(e.inverseBindMatrices):void 0;return{...e,id:e.id||`skin-${t}`,inverseBindMatrices:n}}_resolveMesh(e,t){const n={...e,id:e.id||`mesh-${t}`,primitives:[]};return e.primitives&&(n.primitives=e.primitives.map(i=>{const s={...i,attributes:{},indices:void 0,material:void 0},o=i.attributes;for(const l in o)s.attributes[l]=this.getAccessor(o[l]);return i.indices!==void 0&&(s.indices=this.getAccessor(i.indices)),i.material!==void 0&&(s.material=this.getMaterial(i.material)),s})),n}_resolveMaterial(e,t){const n={...e,id:e.id||`material-${t}`};if(n.normalTexture&&(n.normalTexture={...n.normalTexture},n.normalTexture.texture=this.getTexture(n.normalTexture.index)),n.occlusionTexture&&(n.occlusionTexture={...n.occlusionTexture},n.occlusionTexture.texture=this.getTexture(n.occlusionTexture.index)),n.emissiveTexture&&(n.emissiveTexture={...n.emissiveTexture},n.emissiveTexture.texture=this.getTexture(n.emissiveTexture.index)),n.emissiveFactor||(n.emissiveFactor=n.emissiveTexture?[1,1,1]:[0,0,0]),n.pbrMetallicRoughness){n.pbrMetallicRoughness={...n.pbrMetallicRoughness};const i=n.pbrMetallicRoughness;i.baseColorTexture&&(i.baseColorTexture={...i.baseColorTexture},i.baseColorTexture.texture=this.getTexture(i.baseColorTexture.index)),i.metallicRoughnessTexture&&(i.metallicRoughnessTexture={...i.metallicRoughnessTexture},i.metallicRoughnessTexture.texture=this.getTexture(i.metallicRoughnessTexture.index))}return n}_resolveAccessor(e,t){const n=vAe(e.componentType),i=bAe(e.type),s=n*i,o={...e,id:e.id||`accessor-${t}`,bytesPerComponent:n,components:i,bytesPerElement:s,value:void 0,bufferView:void 0,sparse:void 0};if(e.bufferView!==void 0&&(o.bufferView=this.getBufferView(e.bufferView)),o.bufferView){const l=o.bufferView.buffer,{ArrayType:f,byteLength:A}=zw(o,o.bufferView),v=(o.bufferView.byteOffset||0)+(o.byteOffset||0)+l.byteOffset;let T=l.arrayBuffer.slice(v,v+A);o.bufferView.byteStride&&(T=this._getValueFromInterleavedBuffer(l,v,o.bufferView.byteStride,o.bytesPerElement,o.count)),o.value=new f(T)}return o}_getValueFromInterleavedBuffer(e,t,n,i,s){const o=new Uint8Array(s*i);for(let l=0;l<s;l++){const f=t+l*n;o.set(new Uint8Array(e.arrayBuffer.slice(f,f+i)),l*i)}return o.buffer}_resolveTexture(e,t){return{...e,id:e.id||`texture-${t}
4561`,sampler:typeof e.sampler=="number"?this.getSampler(e.sampler):yAe(),source:typeof e.source=="number"?this.getImage(e.source):void 0}}_resolveSampler(e,t){const n={id:e.id||`sampler-${t}`,...e,parameters:{}};for(const i in n){const s=this._enumSamplerParameter(i);s!==void 0&&(n.parameters[s]=n[i])}return n}_enumSamplerParameter(e){return mAe[e]}_resolveImage(e,t){const n={...e,id:e.id||`image-${t}`,image:null,bufferView:e.bufferView!==void 0?this.getBufferView(e.bufferView):void 0},i=this.images[t];return i&&(n.image=i),n}_resolveBufferView(e,t){const n=e.buffer,i=this.buffers[n].arrayBuffer;let s=this.buffers[n].byteOffset||0;return e.byteOffset&&(s+=e.byteOffset),{id:`bufferView-${t}`,...e,buffer:this.buffers[n],data:new Uint8Array(i,s,e.byteLength)}}_resolveCamera(e,t){const n={...e,id:e.id||`camera-${t}`};return n.perspective,n.orthographic,n}}function w6(r,e){return new xAe().postProcess(r,e)}const M2={URI:0,EMBEDDED:1};function T6(r,e,t,n){r.rotateYtoZ=!0;const i=(r.byteOffset||0)+(r.byteLength||0)-t;if(i===0)throw new Error("glTF byte length must be greater than 0.");return r.gltfUpAxis=n?.["3d-tiles"]&&n["3d-tiles"].assetGltfUpAxis?n["3d-tiles"].assetGltfUpAxis:"Y",r.gltfArrayBuffer=Aw(e,t,i),r.gltfByteOffset=0,r.gltfByteLength=i,t%4===0||console.warn(`${r.type}: embedded glb is not aligned to a 4-byte boundary.`),(r.byteOffset||0)+(r.byteLength||0)}async function E6(r,e,t,n){const i=t?.["3d-tiles"]||{};if(wAe(r,e),i.loadGLTF){if(!n)return;if(r.gltfUrl){const{fetch:s}=n,o=await s(r.gltfUrl,t);r.gltfArrayBuffer=await o.arrayBuffer(),r.gltfByteOffset=0}if(r.gltfArrayBuffer){const s=await wg(r.gltfArrayBuffer,y_,t,n);r.gltf=w6(s),r.gpuMemoryUsageInBytes=a6(r.gltf),delete r.gltfArrayBuffer,delete r.gltfByteOffset,delete r.gltfByteLength}}}function wAe(r,e,t){switch(e){case M2.URI:if(r.gltfArrayBuffer){const n=new Uint8Array(r.gltfArrayBuffer,r.gltfByteOffset),s=new TextDecoder().decode(n);r.gltfUrl=s.replace(/[\s\0]+$/,"")}delete r.gltfArrayBuffer,delete r.gltfByteOffset,delete r.gltfByteLength;break;case M2.EMBEDDED:break;default:throw new Error("b3dm: Illegal glTF format field")}}async function TAe(r,e,t,n,i){t=EAe(r,e,t,n),await E6(r,M2.EMBEDDED,n,i);const s=r?.gltf?.extensions;return s&&s.CESIUM_RTC&&(r.rtcCenter=s.CESIUM_RTC.center),t}function EAe(r,e,t,n,i){t=oy(r,e,t),t=kw(r,e,t),t=Nw(r,e,t),t=T6(r,e,t,n);const s=new Lw(r.featureTableJson,r.featureTableBinary);return r.rtcCenter=s.getGlobalProperty("RTC_CENTER",Un.FLOAT,3),t}async function CAe(r,e,t,n,i){return t=SAe(r,e,t,n),await E6(r,r.gltfFormat||0,n,i),t}function SAe(r,e,t,n,i){if(t=oy(r,e,t),r.version!==1)throw new Error(`Instanced 3D Model version ${r.version} is not supported`);t=kw(r,e,t);const s=new DataView(e);if(r.gltfFormat=s.getUint32(t,!0),t+=4,t=Nw(r,e,t),t=T6(r,e,t,n),!r?.header?.featureTableJsonByteLength||r.header.featureTableJsonByteLength===0)throw new Error("i3dm parser: featureTableJsonByteLength is zero.");const o=new Lw(r.featureTableJson,r.featureTableBinary),l=o.getGlobalProperty("INSTANCES_LENGTH");if(o.featuresLength=l,!Number.isFinite(l))throw new Error("i3dm parser: INSTANCES_LENGTH must be defined");r.eastNorthUp=o.getGlobalProperty("EAST_NORTH_UP"),r.rtcCenter=o.getGlobalProperty("RTC_CENTER",Un.FLOAT,3);const f=new r6(r.batchTableJson,r.batchTableBinary,l);return IAe(r,o,f,l),t}function IAe(r,e,t,n){const i=new Array(n),s=new dt;new dt,new dt,new dt;const o=new Oi,l=new YA,f=new dt,A={},v=new vn,T=[],I=[],F=[],N=[];for(let U=0;U<n;U++){let $;if(e.hasProperty("POSITION"))$=e.getProperty("POSITION",Un.FLOAT,3,U,s);else if(e.hasProperty("POSITION_QUANTIZED")){$=e.getProperty("POSITION_QUANTIZED",Un.UNSIGNED_SHORT,3,U,s);const se=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",Un.FLOAT,3);if(!se)throw new Error("i3dm parser: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");const Ee=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",Un.FLOAT,3);if(!Ee)throw new Error("i3dm parser: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");const Ue=65535;for(let de=0;de<3;de++)$[de]=$[de]/Ue*Ee[de]+se[de]}if(!$)throw new Error("i3dm: POSITION or POSITION_QUANTIZED must be defined for each instance.");if(s.copy($),A.translation=s,r.normalUp=e.getProperty("NORMAL_UP",Un.FLOAT,3,U,T),r.normalRight=e.getProperty("NORMAL_RIGHT",Un.FLOAT,3,U,I),r.n
vendor: 2,025 bytes, line 4561
4561ormalUp){if(!r.normalRight)throw new Error("i3dm: Custom orientation requires both NORMAL_UP and NORMAL_RIGHT.");r.hasCustomOrientation=!0}else{if(r.octNormalUp=e.getProperty("NORMAL_UP_OCT32P",Un.UNSIGNED_SHORT,2,U,T),r.octNormalRight=e.getProperty("NORMAL_RIGHT_OCT32P",Un.UNSIGNED_SHORT,2,U,I),r.octNormalUp)throw r.octNormalRight?new Error("i3dm: oct-encoded orientation not implemented"):new Error("i3dm: oct-encoded orientation requires NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P");r.eastNorthUp?(bi.WGS84.eastNorthUpToFixedFrame(s,v),v.getRotationMatrix3(o)):o.identity()}l.fromMatrix3(o),A.rotation=l,f.set(1,1,1);const V=e.getProperty("SCALE",Un.FLOAT,1,U,F);Number.isFinite(V)&&f.multiplyByScalar(V);const G=e.getProperty("SCALE_NON_UNIFORM",Un.FLOAT,3,U,T);G&&f.scale(G),A.scale=f;let X=e.getProperty("BATCH_ID",Un.UNSIGNED_SHORT,1,U,N);X===void 0&&(X=U);const ue=new vn().fromQuaternion(A.rotation);v.identity(),v.translate(A.translation),v.multiplyRight(ue),v.scale(A.scale);const K=v.clone();i[U]={modelMatrix:K,batchId:X}}r.instances=i}async function BAe(r,e,t,n,i,s){t=oy(r,e,t);const o=new DataView(e);for(r.tilesLength=o.getUint32(t,!0),t+=4,r.tiles=[];r.tiles.length<r.tilesLength&&(r.byteLength||0)-t>12;){const l={shape:"tile3d"};r.tiles.push(l),t=await s(e,t,n,i,l)}return t}async function PAe(r,e,t,n){if(r.rotateYtoZ=!0,r.gltfUpAxis=t?.["3d-tiles"]?.assetGltfUpAxis?t["3d-tiles"].assetGltfUpAxis:"Y",t?.["3d-tiles"]?.loadGLTF){if(!n)return e.byteLength;const i=await wg(e,y_,t,n);r.gltf=w6(i),r.gpuMemoryUsageInBytes=a6(r.gltf)}else r.gltfArrayBuffer=e;return e.byteLength}async function C6(r,e=0,t,n,i={shape:"tile3d"}){switch(i.byteOffset=e,i.type=Pfe(r,e),i.type){case yA.COMPOSITE:return await BAe(i,r,e,t,n,C6);case yA.BATCHED_3D_MODEL:return await TAe(i,r,e,t,n);case yA.GLTF:return await PAe(i,r,t,n);case yA.INSTANCED_3D_MODEL:return await CAe(i,r,e,t,n);case yA.POINT_CLOUD:return await _he(i,r,e,t,n);default:throw new Error(`3DTileLoader: unknown type ${i.type}`)}}const MAe=1952609651,RAe=1;
vendor: 5,967 bytes, line 4561
4561async function OAe(r,e,t){if(new Uint32Array(r.slice(0,4))[0]!==MAe)throw new Error("Wrong subtree file magic number");if(new Uint32Array(r.slice(4,8))[0]!==RAe)throw new Error("Wrong subtree file verson, must be 1");const s=oM(r.slice(8,16)),o=new Uint8Array(r,24,s),f=new TextDecoder("utf8").decode(o),A=JSON.parse(f),v=oM(r.slice(16,24));let T=new ArrayBuffer(0);if(v&&(T=r.slice(24+s)),await Q0(A,A.tileAvailability,T,t),Array.isArray(A.contentAvailability))for(const I of A.contentAvailability)await Q0(A,I,T,t);else await Q0(A,A.contentAvailability,T,t);return await Q0(A,A.childSubtreeAvailability,T,t),A}async function Q0(r,e,t,n){const i=Number.isFinite(e.bitstream)?e.bitstream:e.bufferView;if(typeof i!="number")return;const s=r.bufferViews[i],o=r.buffers[s.buffer];if(!n?.baseUrl)throw new Error("Url is not provided");if(!n.fetch)throw new Error("fetch is not provided");if(o.uri){const f=`${n?.baseUrl||""}/${o.uri}`,v=await(await n.fetch(f)).arrayBuffer();e.explicitBitstream=new Uint8Array(v,s.byteOffset,s.byteLength);return}const l=r.buffers.slice(0,s.buffer).reduce((f,A)=>f+A.byteLength,0);e.explicitBitstream=new Uint8Array(t.slice(l,l+o.byteLength),s.byteOffset,s.byteLength)}function oM(r){const e=new DataView(r),t=e.getUint32(0,!0),n=e.getUint32(4,!0);return t+2**32*n}const S6={dataType:null,batchType:null,id:"3d-tiles-subtree",name:"3D Tiles Subtree",module:"3d-tiles",version:ZL,extensions:["subtree"],mimeTypes:["application/octet-stream"],tests:["subtree"],parse:OAe,options:{}};var ka=null;try{ka=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 jn(r,e,t){this.low=r|0,this.high=e|0,this.unsigned=!!t}jn.prototype.__isLong__;Object.defineProperty(jn.prototype,"__isLong__",{value:!0});function vo(r){return(r&&r.__isLong__)===!0}function aM(r){var e=Math.clz32(r&-r);return r?31-e:e}jn.isLong=vo;var lM={},cM={};function yh(r,e){var t,n,i;return e?(r>>>=0,(i=0<=r&&r<256)&&(n=cM[r],n)?n:(t=zn(r,0,!0),i&&(cM[r]=t),t)):(r|=0,(i=-128<=r&&r<128)&&(n=lM[r],n)?n:(t=zn(r,r<0?-1:0,!1),i&&(lM[r]=t),t))}jn.fromInt=yh;function Na(r,e){if(isNaN(r))return e?Jc:xl;if(e){if(r<0)return Jc;if(r>=I6)return M6}else{if(r<=-fM)return Go;if(r+1>=fM)return P6}return r<0?Na(-r,e).neg():zn(r%xp|0,r/xp|0,e)}jn.fromNumber=Na;function zn(r,e,t){return new jn(r,e,t)}jn.fromBits=zn;var v_=Math.pow;function $w(r,e,t){if(r.length===0)throw Error("empty string");if(typeof e=="number"?(t=e,e=!1):e=!!e,r==="NaN"||r==="Infinity"||r==="+Infinity"||r==="-Infinity")return e?Jc:xl;if(t=t||10,t<2||36<t)throw RangeError("radix");var n;if((n=r.indexOf("-"))>0)throw Error("interior hyphen");if(n===0)return $w(r.substring(1),e,t).neg();for(var i=Na(v_(t,8)),s=xl,o=0;o<r.length;o+=8){var l=Math.min(8,r.length-o),f=parseInt(r.substring(o,o+l),t);if(l<8){var A=Na(v_(t,l));s=s.mul(A).add(Na(f))}else s=s.mul(i),s=s.add(Na(f))}return s.unsigned=e,s}jn.fromString=$w;function Ha(r,e){return typeof r=="number"?Na(r,e):typeof r=="string"?$w(r,e):zn(r.low,r.high,typeof e=="boolean"?e:r.unsigned)}jn.fromValue=Ha;var uM=65536,DAe=1<<24,xp=uM*uM,I6=xp*xp,fM=I6/2,hM=yh(DAe),xl=yh(0);jn.ZERO=xl;var Jc=yh(0,!0);jn.UZERO=Jc;var Kd=yh(1);jn.ONE=Kd;var B6=yh(1,!0);jn.UONE=B6;var R2=yh(-1);jn.NEG_ONE=R2;var P6=zn(-1,2147483647,!1);jn.MAX_VALUE=P6;var M6=zn(-1,-1,!0);jn.MAX_UNSIGNED_VALUE=M6;var Go=zn(0,-2147483648,!1);jn.MIN_VALUE=Go;var tr=jn.prototype;tr.toInt=function(){return this.unsigned?this.low>>>0:this.low};tr.toNumber=function(){return this.unsigned?(this.high>>>0)*xp+(this.low>>>0):this.high*xp+(this.low>>>0)};tr.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(Go)){var t=Na(e),n=this.div(t),i=n.mul(t).sub(this);return n.toString(e)+i.toInt().toString(e)}else return"-"+this.neg().toString(e);for(var s=Na(v_(e,6),this.unsigned),o=this,l="";;){var f=o.div(s),A=o.sub(f.mul(s)).toInt()>>>0,v=A.toString(e);if(o=f,o.isZero())return v+l;for(;v.length<6;)v="0"+v;l=""+v+l}};tr.getHighBits=function(){return this.high};tr.getHighBitsUnsigned=function(){return this.high>>>0};tr.getLowBits=function(){return this.low};tr.getLowBitsUnsigned=function(){return this.low>>>0};tr.getNumBitsAbs=function(){if(this.isNegative())return this.eq(Go)?64:this.neg().getNumBitsAbs();for(var e=this.high!=0?this.high:this.low,t=31;t>0&&(e&1<<t)==0;t--);return this.high!=0?t+33:t+1};tr.isSafeInteger=function(){var e=this.high>>21;return e?this.unsigned?!1:e===-1&&!(this.low===0&&this.high===-2097152):!0};tr.isZero=function(){return this.high===0&&this.low===0};tr.eqz=tr.isZero;tr.isNegative=function(){return!this.unsigned&&this.high<0};tr.isPositive=function(){return this.unsigned||this.high>=0};tr.isOdd=function(){return(this.low&1)===1};tr.isEven=function(){return(this.low&1)===0};tr.equals=function(e){return vo(e)||(e=Ha(e)),this.unsigned!==e.unsigned&&this.high>>>31===1&&e.high>>>31===1?!1:this.high===e.high&&this.low===e.low};tr.eq=tr.equals;tr.notEquals=function(e){return!this.eq(e)};tr.neq=tr.notEquals;tr.ne=tr.notEquals;tr.lessThan=function(e){return this.comp(e)<0}
vendor: 5,521 bytes, line 4561
4561;tr.lt=tr.lessThan;tr.lessThanOrEqual=function(e){return this.comp(e)<=0};tr.lte=tr.lessThanOrEqual;tr.le=tr.lessThanOrEqual;tr.greaterThan=function(e){return this.comp(e)>0};tr.gt=tr.greaterThan;tr.greaterThanOrEqual=function(e){return this.comp(e)>=0};tr.gte=tr.greaterThanOrEqual;tr.ge=tr.greaterThanOrEqual;tr.compare=function(e){if(vo(e)||(e=Ha(e)),this.eq(e))return 0;var t=this.isNegative(),n=e.isNegative();return t&&!n?-1:!t&&n?1:this.unsigned?e.high>>>0>this.high>>>0||e.high===this.high&&e.low>>>0>this.low>>>0?-1:1:this.sub(e).isNegative()?-1:1};tr.comp=tr.compare;tr.negate=function(){return!this.unsigned&&this.eq(Go)?Go:this.not().add(Kd)};tr.neg=tr.negate;tr.add=function(e){vo(e)||(e=Ha(e));var t=this.high>>>16,n=this.high&65535,i=this.low>>>16,s=this.low&65535,o=e.high>>>16,l=e.high&65535,f=e.low>>>16,A=e.low&65535,v=0,T=0,I=0,F=0;return F+=s+A,I+=F>>>16,F&=65535,I+=i+f,T+=I>>>16,I&=65535,T+=n+l,v+=T>>>16,T&=65535,v+=t+o,v&=65535,zn(I<<16|F,v<<16|T,this.unsigned)};tr.subtract=function(e){return vo(e)||(e=Ha(e)),this.add(e.neg())};tr.sub=tr.subtract;tr.multiply=function(e){if(this.isZero())return this;if(vo(e)||(e=Ha(e)),ka){var t=ka.mul(this.low,this.high,e.low,e.high);return zn(t,ka.get_high(),this.unsigned)}if(e.isZero())return this.unsigned?Jc:xl;if(this.eq(Go))return e.isOdd()?Go:xl;if(e.eq(Go))return this.isOdd()?Go:xl;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(hM)&&e.lt(hM))return Na(this.toNumber()*e.toNumber(),this.unsigned);var n=this.high>>>16,i=this.high&65535,s=this.low>>>16,o=this.low&65535,l=e.high>>>16,f=e.high&65535,A=e.low>>>16,v=e.low&65535,T=0,I=0,F=0,N=0;return N+=o*v,F+=N>>>16,N&=65535,F+=s*v,I+=F>>>16,F&=65535,F+=o*A,I+=F>>>16,F&=65535,I+=i*v,T+=I>>>16,I&=65535,I+=s*A,T+=I>>>16,I&=65535,I+=o*f,T+=I>>>16,I&=65535,T+=n*v+i*A+s*f+o*l,T&=65535,zn(F<<16|N,T<<16|I,this.unsigned)};tr.mul=tr.multiply;tr.divide=function(e){if(vo(e)||(e=Ha(e)),e.isZero())throw Error("division by zero");if(ka){if(!this.unsigned&&this.high===-2147483648&&e.low===-1&&e.high===-1)return this;var t=(this.unsigned?ka.div_u:ka.div_s)(this.low,this.high,e.low,e.high);return zn(t,ka.get_high(),this.unsigned)}if(this.isZero())return this.unsigned?Jc:xl;var n,i,s;if(this.unsigned){if(e.unsigned||(e=e.toUnsigned()),e.gt(this))return Jc;if(e.gt(this.shru(1)))return B6;s=Jc}else{if(this.eq(Go)){if(e.eq(Kd)||e.eq(R2))return Go;if(e.eq(Go))return Kd;var o=this.shr(1);return n=o.div(e).shl(1),n.eq(xl)?e.isNegative()?Kd:R2:(i=this.sub(e.mul(n)),s=n.add(i.div(e)),s)}else if(e.eq(Go))return this.unsigned?Jc:xl;if(this.isNegative())return e.isNegative()?this.neg().div(e.neg()):this.neg().div(e).neg();if(e.isNegative())return this.div(e.neg()).neg();s=xl}for(i=this;i.gte(e);){n=Math.max(1,Math.floor(i.toNumber()/e.toNumber()));for(var l=Math.ceil(Math.log(n)/Math.LN2),f=l<=48?1:v_(2,l-48),A=Na(n),v=A.mul(e);v.isNegative()||v.gt(i);)n-=f,A=Na(n,this.unsigned),v=A.mul(e);A.isZero()&&(A=Kd),s=s.add(A),i=i.sub(v)}return s};tr.div=tr.divide;tr.modulo=function(e){if(vo(e)||(e=Ha(e)),ka){var t=(this.unsigned?ka.rem_u:ka.rem_s)(this.low,this.high,e.low,e.high);return zn(t,ka.get_high(),this.unsigned)}return this.sub(this.div(e).mul(e))};tr.mod=tr.modulo;tr.rem=tr.modulo;tr.not=function(){return zn(~this.low,~this.high,this.unsigned)};tr.countLeadingZeros=function(){return this.high?Math.clz32(this.high):Math.clz32(this.low)+32};tr.clz=tr.countLeadingZeros;tr.countTrailingZeros=function(){return this.low?aM(this.low):aM(this.high)+32};tr.ctz=tr.countTrailingZeros;tr.and=function(e){return vo(e)||(e=Ha(e)),zn(this.low&e.low,this.high&e.high,this.unsigned)};tr.or=function(e){return vo(e)||(e=Ha(e)),zn(this.low|e.low,this.high|e.high,this.unsigned)};tr.xor=function(e){return vo(e)||(e=Ha(e)),zn(this.low^e.low,this.high^e.high,this.unsigned)};tr.shiftLeft=function(e){return vo(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?zn(this.low<<e,this.high<<e|this.low>>>32-e,this.unsigned):zn(0,this.low<<e-32,this.unsigned)};tr.shl=tr.shiftLeft;tr.shiftRight=function(e){return vo(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?zn(this.low>>>e|this.high<<32-e,this.high>>e,this.unsigned):zn(this.high>>e-32,this.high>=0?0:-1,this.unsigned)};tr.shr=tr.shiftRight;tr.shiftRightUnsigned=function(e){return vo(e)&&(e=e.toInt()),(e&=63)===0?this:e<32?zn(this.low>>>e|this.high<<32-e,this.high>>>e,this.unsigned):e===32?zn(this.high,0,this.unsigned):zn(this.high>>>e-32,0,this.unsigned)};tr.shru=tr.shiftRightUnsigned;tr.shr_u=tr.shiftRightUnsigned;tr.rotateLeft=function(e){var t;return vo(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?zn(this.high,this.low,this.unsigned):e<32?(t=32-e,zn(this.low<<e|this.high>>>t,this.high<<e|this.low>>>t,this.unsigned)):(e-=32,t=32-e,zn(this.high<<e|this.low>>>t,this.low<<e|this.high>>>t,this.unsigned))};tr.rotl=tr.rotateLeft;tr.rotateRight=function(e){var t;return vo(e)&&(e=e.toInt()),(e&=63)===0?this:e===32?zn(this.high,this.low,this.unsigned):e<32?(t=32-e,zn(this.high<<t|this.low>>>e,this.low<<t|this.high>>>e,this.unsigned)):(e-=32,t=32-e,zn(this.low<<t|this.high>>>e,this.high<<t|this.low>>>e,this.unsigned))};tr.rotr=tr.rotateRight;tr.toSigned=function(){return this.unsigned?zn(this.low,this.high,!1):this};tr.toUnsigned=function(){return this.unsigned?this:zn(this.low,this.high,!0)};tr.toBytes=function(e){return e?this.toBytesLE():this.toBytesBE()};tr.toBytesLE=function(){var e=this.high,t=this.low;return[t&255,t>>>8&255,t>>>16&255,t>>>24,e&255,e>>
4561>8&255,e>>>16&255,e>>>24]};tr.toBytesBE=function(){var e=this.high,t=this.low;return[e>>>24,e>>>16&255,e>>>8&255,e&255,t>>>24,t>>>16&255,t>>>8&255,t&255]};jn.fromBytes=function(e,t,n){return n?jn.fromBytesLE(e,t):jn.fromBytesBE(e,t)};jn.fromBytesLE=function(e,t){return new jn(e[0]|e[1]<<8|e[2]<<16|e[3]<<24,e[4]|e[5]<<8|e[6]<<16|e[7]<<24,t)};jn.fromBytesBE=function(e,t){return new jn(e[4]<<24|e[5]<<16|e[6]<<8|e[7],e[0]<<24|e[1]<<16|e[2]<<8|e[3],t)};typeof BigInt=="function"&&(jn.fromBigInt=function(e,t){var n=Number(BigInt.asIntN(32,e)),i=Number(BigInt.asIntN(32,e>>BigInt(32)));return zn(n,i,t)},jn.fromValue=function(e,t){return typeof e=="bigint"?jn.fromBigInt(e,t):Ha(e,t)},tr.toBigInt=function(){var e=BigInt(this.low>>>0),t=BigInt(this.unsigned?this.high>>>0:this.high);return t<<BigInt(32)|e});const FAe=16;function R6(r){r==="X"&&(r="");const e=r.padEnd(FAe,"0");return jn.fromString(e,!0,16)}function LAe(r){if(r.isZero())return"X";let e=r.countTrailingZeros();const t=e%4;e=(e-t)/4;const n=e;e*=4;const s=r.shiftRightUnsigned(e).toString(16).replace(/0+$/,"");return Array(17-n-s.length).join("0")+s}function kAe(r,e){const t=NAe(r).shiftRightUnsigned(2);return r.add(jn.fromNumber(2*e+1-4).multiply(t))}function NAe(r){return r.and(r.not().add(1))}const UAe=3,zAe=30,VAe=2*zAe+1,dM=180/Math.PI;function jAe(r){if(r.length===0)throw new Error(`Invalid Hilbert quad key ${r}`);const e=r.split("/"),t=parseInt(e[0],10),n=e[1],i=n.length;let s=0;const o=[0,0];for(let l=i-1;l>=0;l--){s=i-l;const f=n[l];let A=0,v=0;f==="1"?v=1:f==="2"?(A=1,v=1):f==="3"&&(A=1);const T=Math.pow(2,s-1);HAe(T,o,A,v),o[0]+=T*A,o[1]+=T*v}if(t%2===1){const l=o[0];o[0]=o[1],o[1]=l}return{face:t,ij:o,level:s}}function GAe(r){if(r.isZero())return"";let e=r.toString(2);for(;e.length<UAe+VAe;)e="0"+e;const t=e.lastIndexOf("1"),n=e.substring(0,3),i=e.substring(3,t),s=i.length/2,o=jn.fromString(n,!0,2).toString(10);let l="";if(s!==0)for(l=jn.fromString(i,!0,2).toString(4);l.length<s;)l="0"+l;return`${o}/${l}`}function O6(r,e,t){const n=1<<e;return[(r[0]+t[0])/n,(r[1]+t[1])/n]}function pM(r){return r>=.5?1/3*(4*r*r-1):1/3*(1-4*(1-r)*(1-r))}function D6(r){return[pM(r[0]),pM(r[1])]}function F6(r,[e,t]){switch(r){case 0:return[1,e,t];case 1:return[-e,1,t];case 2:return[-e,-t,1];case 3:return[-1,-t,-e];case 4:return[t,-1,-e];case 5:return[t,e,-1];default:throw new Error("Invalid face")}}function L6([r,e,t]){const n=Math.atan2(t,Math.sqrt(r*r+e*e));return[Math.atan2(e,r)*dM,n*dM]}function HAe(r,e,t,n){if(n===0){t===1&&(e[0]=r-1-e[0],e[1]=r-1-e[1]);const i=e[0];e[0]=e[1],e[1]=i}}function WAe(r){const e=O6(r.ij,r.level,[.5,.5]),t=D6(e),n=F6(r.face,t);return L6(n)}const $Ae=100;function AM(r){const{face:e,ij:t,level:n}=r,i=[[0,0],[0,1],[1,1],[1,0],[0,0]],s=Math.max(1,Math.ceil($Ae*Math.pow(2,-n))),o=new Float64Array(4*s*2+2);let l=0,f=0;for(let A=0;A<4;A++){const v=i[A].slice(0),T=i[A+1],I=(T[0]-v[0])/s,F=(T[1]-v[1])/s;for(let N=0;N<s;N++){v[0]+=I,v[1]+=F;const U=O6(t,n,v),$=D6(U),V=F6(e,$),G=L6(V);Math.abs(G[1])>89.999&&(G[0]=f);const X=G[0]-f;G[0]+=X>180?-360:X<-180?360:0,o[l++]=G[0],o[l++]=G[1],f=G[0]}}return o[l++]=o[0],o[l++]=o[1],o}function Xw(r){const e=XAe(r);return jAe(e)}function XAe(r){if(r.indexOf("/")>0)return r;const e=R6(r);return GAe(e)}function qAe(r){const e=Xw(r);return WAe(e)}function JAe(r){let e;if(r.face===2||r.face===5){let t=null,n=0;for(let i=0;i<4;i++){const s=`${r.face}/${i}`,o=Xw(s),l=AM(o);(typeof t>"u"||t===null)&&(t=new Float64Array(4*l.length)),t.set(l,n),n+=l.length}e=gM(t)}else{const t=AM(r);e=gM(t)}return e}function gM(r){if(r.length%2!==0)throw new Error("Invalid corners");const e=[],t=[];for(let n=0;n<r.length;n+=2)e.push(r[n]),t.push(r[n+1]);return e.sort((n,i)=>n-i),t.sort((n,i)=>n-i),{west:e[0],east:e[e.length-1],north:t[t.length-1],south:t[0]}}function KAe(r,e){const t=e?.minimumHeight||0,n=e?.maximumHeight||0,i=Xw(r),s=JAe(i),o=s.west,l=s.south,f=s.east,A=s.north,v=[];return v.push(new dt(o,A,t)),v.push(new dt(f,A,t)),v.push(new dt(f,l,t)),v.push(new dt(o,l,t)),v.push(new dt(o,A,n)),v.push(new dt(f,A,n)),v.push(new dt(f,l,n)),v.push(new dt(o,l,n)),v}function k6(r){const e=r.token,t={minimumHeight:r.minimumHeight,maximumHeight:r.maximumHeight},n=KAe(e,t),i=qAe(e),s=i[0],o=i[1],l=bi.WGS84.cartographicToCartesian([s,o,t.maximumHeight]),f=new dt(l[0],l[1],l[2]);n.push(f);const A=bL(n);return[...A.center,...A.halfAxes]}const ZAe=4,YAe=8,QAe={QUADTREE:ZAe,OCTREE:YAe};function ege(r,e,t){if(r?.box){const n=R6(r.s2VolumeInfo.token),i=kAe(n,e),s=LAe(i),o={...r.s2VolumeInfo};switch(o.token=s,t){case"OCTREE":const A=r.s2VolumeInfo,v=A.maximumHeight-A.minimumHeight,T=v/2,I=A.minimumHeight+v/2;A.minimumHeight=I-T,A.maximumHeight=I+T;break}return{box:k6(o),s2VolumeInfo:o}}}async function N6(r){const{implicitOptions:e,parentData:t={mortonIndex:0,x:0,y:0,z:0},childIndex:n=0,s2VolumeBox:i,loaderOptions:s}=r;let{subtree:o,level:l=0,globalData:f={level:0,mortonIndex:0,x:0,y:0,z:0}}=r;const{subdivisionScheme:A,subtreeLevels:v,maximumLevel:T,contentUrlTemplate:I,subtreesUriTemplate:F,basePath:N}=e,U={children:[],lodMetricValue:0,contentUrl:""};if(!T)return a4.once(`Missing 'maximumLevel' or 'availableLevels' property. The subtree ${I} won't be loaded...`),U;const $=l+f.level;if($>T)return U;const V=QAe[A],G=Math.log2(V),X=n&1,ue=n>>1&1,K=n>>2&1,se=(V**l-1)/(V-1);let Ee=Uf(t.mortonIndex,n,G),Ue=se+Ee,de=Uf(t.x,X,1),me=Uf(t.y,ue,1),pe=Uf(t.z,K,1),W=!1;l>=v&&(W=$b(o.childSubtreeAvailability,Ee));const te=Uf(f.x,de,l),Ce=Uf(f.y,me,l),Qe=Uf(f.z,pe,l);if(W){const tt=`${N}/${F}`,rt=O2(tt,$,te,Ce,Qe);o=await Kc(rt,S6,s),f={mortonIndex:Ee,x:de,y:me,z:pe,level:l},Ee=0,Ue=0,de=0,me=0,pe=0,l=0}if(!$b(o.tileAvailability,Ue))return U;$b(o.contentAvailability,Ue)&&(U.contentUrl=O2(I,$,te,Ce,Qe));const ze=l+1,Ze={mortonIndex:Ee,x:de,y:me,z:pe};for(let tt=0;tt<V;tt++){const rt=ege(i,tt,A),ct=await N6({subtree:o,implicitOptions:e,loaderOptions:s,parentData:Ze,childIndex:tt,level:ze,globalData:{...f},s2VolumeBox:rt});if(ct.contentUrl||ct.children.length){const bt=$+1,st=tge(ct,bt,{childTileX:de,childTileY:me,childTileZ:pe},e,i);U.children.push(st)}}return U}function $b(r,e){let t;return Array.isArray(r)?(t=r[0],r.length>1&&a4.once('Not supported extension "3DTILES_multiple_contents" has been detected')):t=r,"constant"in t?!!t.constant:t.explicitBitstream?ige(e,t.explicitBitstream):!1}function tge(r,e,t,n,i){const{basePath:s,refine:o,getRefine:l,lodMetricType:f,getTileType:A,rootLodMetricValue:v,rootBoundingVolume:T}=n,I=r.contentUrl&&r.contentUrl.replace(`${s}/`,""),F=v/2**e,N=i?.box?{box:i.box}:T,U=rge(e,N,t);return{children:r.children,contentUrl:r.contentUrl,content:{uri:I},id:r.contentUrl,refine:l(o),type:A(r),lodMetricType:f,lodMetricValue:F,geometricError:F,transform:r.transform,boun
4561dingVolume:U}}function rge(r,e,t){if(e.region){const{childTileX:n,childTileY:i,childTileZ:s}=t,[o,l,f,A,v,T]=e.region,I=2**r,F=(f-o)/I,N=(A-l)/I,U=(T-v)/I,[$,V]=[o+F*n,o+F*(n+1)],[G,X]=[l+N*i,l+N*(i+1)],[ue,K]=[v+U*s,v+U*(s+1)];return{region:[$,G,V,X,ue,K]}}if(e.box)return e;throw new Error(`Unsupported bounding volume type ${JSON.stringify(e)}`)}function Uf(r,e,t){return(r<<t)+e}function O2(r,e,t,n,i){const s=nge({level:e,x:t,y:n,z:i});return r.replace(/{level}|{x}|{y}|{z}/gi,o=>s[o])}function nge(r){const e={};for(const t in r)e[`{${t}}`]=r[t];return e}function ige(r,e){const t=Math.floor(r/8),n=r%8;return(e[t]>>n&1)===1}function qw(r,e=""){if(!e)return qc.EMPTY;const n=e.split("?")[0].split(".").pop();switch(n){case"pnts":return qc.POINTCLOUD;case"i3dm":case"b3dm":case"glb":case"gltf":return qc.SCENEGRAPH;default:return n||qc.EMPTY}}function Jw(r){switch(r){case"REPLACE":case"replace":return Tl.REPLACE;case"ADD":case"add":return Tl.ADD;default:return r}}function D2(r,e){if(/^[a-z][0-9a-z+.-]*:/i.test(e)){const n=new URL(r,`${e}/`);return decodeURI(n.toString())}else if(r.startsWith("/"))return r;return Coe(e,r)}function mM(r,e){if(!r)return null;let t;if(r.content){const i=r.content.uri||r.content?.url;typeof i<"u"&&(t=D2(i,e))}return{...r,id:t,contentUrl:t,lodMetricType:vp.GEOMETRIC_ERROR,lodMetricValue:r.geometricError,transformMatrix:r.transform,type:qw(r,t),refine:Jw(r.refine)}}async function sge(r,e,t){let n=null;const i=yM(r.root);i&&r.root?n=await _M(r.root,r,e,i,t):n=mM(r.root,e);const s=[];for(s.push(n);s.length>0;){const o=s.pop()||{},l=o.children||[],f=[];for(const A of l){const v=yM(A);let T;v?T=await _M(A,r,e,v,t):T=mM(A,e),T&&(f.push(T),s.push(T))}o.children=f}return n}async function _M(r,e,t,n,i){const{subdivisionScheme:s,maximumLevel:o,availableLevels:l,subtreeLevels:f,subtrees:{uri:A}}=n,v=O2(A,0,0,0,0),T=D2(v,t),I=await Kc(T,S6,i),F=r.content?.uri,N=F?D2(F,t):"",U=e?.root?.refine,$=r.geometricError,V=r.boundingVolume.extensions?.["3DTILES_bounding_volume_S2"];if(V){const K={box:k6(V),s2VolumeInfo:V};r.boundingVolume=K}const G=r.boundingVolume,X={contentUrlTemplate:N,subtreesUriTemplate:A,subdivisionScheme:s,subtreeLevels:f,maximumLevel:Number.isFinite(l)?l-1:o,refine:U,basePath:t,lodMetricType:vp.GEOMETRIC_ERROR,rootLodMetricValue:$,rootBoundingVolume:G,getTileType:qw,getRefine:Jw};return await oge(r,t,I,X,i)}async function oge(r,e,t,n,i){if(!r)return null;const{children:s,contentUrl:o}=await N6({subtree:t,implicitOptions:n,loaderOptions:i});let l,f=null;return o&&(l=o,f={uri:o.replace(`${e}/`,"")}),{...r,id:l,contentUrl:l,lodMetricType:vp.GEOMETRIC_ERROR,lodMetricValue:r.geometricError,transformMatrix:r.transform,type:qw(r,l),refine:Jw(r.refine),content:f||r.content,children:s}}function yM(r){return r?.extensions?.["3DTILES_implicit_tiling"]||r?.implicitTiling}const U6={dataType:null,batchType:null,id:"3d-tiles",name:"3D Tiles",module:"3d-tiles",version:ZL,extensions:["cmpt","pnts","b3dm","i3dm"],mimeTypes:["application/octet-stream"],tests:["cmpt","pnts","b3dm","i3dm"],parse:age,options:{"3d-tiles":{loadGLTF:!0,decodeQuantizedPositions:!1,isTileset:"auto",assetGltfUpAxis:null}}};async function age(r,e={},t){const n=e["3d-tiles"]||{};let i;return n.isTileset==="auto"?i=t?.url&&t.url.indexOf(".json")!==-1:i=n.isTileset,i?lge(r,e,t):cge(r,e,t)}async function lge(r,e,t){const n=JSON.parse(new TextDecoder().decode(r)),i=t?.url||"",s=uge(i),o=await sge(n,s,e||{});return{...n,shape:"tileset3d",loader:U6,url:i,queryString:t?.queryString||"",basePath:s,root:o||n.root,type:zo.TILES3D,lodMetricType:vp.GEOMETRIC_ERROR,lodMetricValue:n.root?.geometricError||0}}async function cge(r,e,t){const n={content:{shape:"tile3d",featureIds:null}};return await C6(r,0,e,t,n.content),n.content}function uge(r){return pL(r)}var Xb={},vM;function cf(){return vM||(vM=1,(function(r){var e=typeof Uint8Array<"u"&&typeof Uint16Array<"u"&&typeof Int32Array<"u";function t(s,o){return Object.prototype.hasOwnProperty.call(s,o)}r.assign=function(s){for(var o=Array.prototype.slice.call(arguments,1);o.length;){var l=o.shift();if(l){if(typeof l!="object")throw new TypeError(l+"must be non-object");for(var f in l)t(l,f)&&(s[f]=l[f])}}return s},r.shrinkBuf=function(s,o){return s.length===o?s:s.subarray?s.subarray(0,o):(s.length=o,s)};var n={arraySet:function(s,o,l,f,A){if(o.subarray&&s.subarray){s.set(o.subarray(l,l+f),A);return}for(var v=0;v<f;v++)s[A+v]=o[l+v]},flattenChunks:function(s){var o,l,f,A,v,T;for(f=0,o=0,l=s.length;o<l;o++)f+=s[o].length;for(T=new Uint8Array(f),A=0,o=0,l=s.length;o<l;o++)v=s[o],T.set(v,A),A+=v.length;return T}},i={arraySet:function(s,o,l,f,A){for(var v=0;v<f;v++)s[A+v]=o[l+v]},flattenChunks:function(s){return[].concat.apply([],s)}};r.setTyped=function(s){s?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,n)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,i))},r.setTyped(e)})(Xb)),Xb}var vd={},ul={},zf={},bM;
vendor: 4,786 bytes, line 4561
4561function fge(){if(bM)return zf;bM=1;var r=cf(),e=4,t=0,n=1,i=2;function s(Pe){for(var kt=Pe.length;--kt>=0;)Pe[kt]=0}var o=0,l=1,f=2,A=3,v=258,T=29,I=256,F=I+1+T,N=30,U=19,$=2*F+1,V=15,G=16,X=7,ue=256,K=16,se=17,Ee=18,Ue=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],de=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],me=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],pe=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],W=512,te=new Array((F+2)*2);s(te);var Ce=new Array(N*2);s(Ce);var Qe=new Array(W);s(Qe);var we=new Array(v-A+1);s(we);var De=new Array(T);s(De);var ze=new Array(N);s(ze);function Ze(Pe,kt,Wt,cr,Ye){this.static_tree=Pe,this.extra_bits=kt,this.extra_base=Wt,this.elems=cr,this.max_length=Ye,this.has_stree=Pe&&Pe.length}var tt,rt,ct;function bt(Pe,kt){this.dyn_tree=Pe,this.max_code=0,this.stat_desc=kt}function It(Pe){return Pe<256?Qe[Pe]:Qe[256+(Pe>>>7)]}function st(Pe,kt){Pe.pending_buf[Pe.pending++]=kt&255,Pe.pending_buf[Pe.pending++]=kt>>>8&255}function pr(Pe,kt,Wt){Pe.bi_valid>G-Wt?(Pe.bi_buf|=kt<<Pe.bi_valid&65535,st(Pe,Pe.bi_buf),Pe.bi_buf=kt>>G-Pe.bi_valid,Pe.bi_valid+=Wt-G):(Pe.bi_buf|=kt<<Pe.bi_valid&65535,Pe.bi_valid+=Wt)}function Qt(Pe,kt,Wt){pr(Pe,Wt[kt*2],Wt[kt*2+1])}function Jt(Pe,kt){var Wt=0;do Wt|=Pe&1,Pe>>>=1,Wt<<=1;while(--kt>0);return Wt>>>1}function Nt(Pe){Pe.bi_valid===16?(st(Pe,Pe.bi_buf),Pe.bi_buf=0,Pe.bi_valid=0):Pe.bi_valid>=8&&(Pe.pending_buf[Pe.pending++]=Pe.bi_buf&255,Pe.bi_buf>>=8,Pe.bi_valid-=8)}function Ar(Pe,kt){var Wt=kt.dyn_tree,cr=kt.max_code,Ye=kt.stat_desc.static_tree,Rt=kt.stat_desc.has_stree,Ae=kt.stat_desc.extra_bits,Vt=kt.stat_desc.extra_base,Et=kt.stat_desc.max_length,H,vt,St,Te,Xe,ut,Z=0;for(Te=0;Te<=V;Te++)Pe.bl_count[Te]=0;for(Wt[Pe.heap[Pe.heap_max]*2+1]=0,H=Pe.heap_max+1;H<$;H++)vt=Pe.heap[H],Te=Wt[Wt[vt*2+1]*2+1]+1,Te>Et&&(Te=Et,Z++),Wt[vt*2+1]=Te,!(vt>cr)&&(Pe.bl_count[Te]++,Xe=0,vt>=Vt&&(Xe=Ae[vt-Vt]),ut=Wt[vt*2],Pe.opt_len+=ut*(Te+Xe),Rt&&(Pe.static_len+=ut*(Ye[vt*2+1]+Xe)));if(Z!==0){do{for(Te=Et-1;Pe.bl_count[Te]===0;)Te--;Pe.bl_count[Te]--,Pe.bl_count[Te+1]+=2,Pe.bl_count[Et]--,Z-=2}while(Z>0);for(Te=Et;Te!==0;Te--)for(vt=Pe.bl_count[Te];vt!==0;)St=Pe.heap[--H],!(St>cr)&&(Wt[St*2+1]!==Te&&(Pe.opt_len+=(Te-Wt[St*2+1])*Wt[St*2],Wt[St*2+1]=Te),vt--)}}function cn(Pe,kt,Wt){var cr=new Array(V+1),Ye=0,Rt,Ae;for(Rt=1;Rt<=V;Rt++)cr[Rt]=Ye=Ye+Wt[Rt-1]<<1;for(Ae=0;Ae<=kt;Ae++){var Vt=Pe[Ae*2+1];Vt!==0&&(Pe[Ae*2]=Jt(cr[Vt]++,Vt))}}function Mr(){var Pe,kt,Wt,cr,Ye,Rt=new Array(V+1);for(Wt=0,cr=0;cr<T-1;cr++)for(De[cr]=Wt,Pe=0;Pe<1<<Ue[cr];Pe++)we[Wt++]=cr;for(we[Wt-1]=cr,Ye=0,cr=0;cr<16;cr++)for(ze[cr]=Ye,Pe=0;Pe<1<<de[cr];Pe++)Qe[Ye++]=cr;for(Ye>>=7;cr<N;cr++)for(ze[cr]=Ye<<7,Pe=0;Pe<1<<de[cr]-7;Pe++)Qe[256+Ye++]=cr;for(kt=0;kt<=V;kt++)Rt[kt]=0;for(Pe=0;Pe<=143;)te[Pe*2+1]=8,Pe++,Rt[8]++;for(;Pe<=255;)te[Pe*2+1]=9,Pe++,Rt[9]++;for(;Pe<=279;)te[Pe*2+1]=7,Pe++,Rt[7]++;for(;Pe<=287;)te[Pe*2+1]=8,Pe++,Rt[8]++;for(cn(te,F+1,Rt),Pe=0;Pe<N;Pe++)Ce[Pe*2+1]=5,Ce[Pe*2]=Jt(Pe,5);tt=new Ze(te,Ue,I+1,F,V),rt=new Ze(Ce,de,0,N,V),ct=new Ze(new Array(0),me,0,U,X)}function _r(Pe){var kt;for(kt=0;kt<F;kt++)Pe.dyn_ltree[kt*2]=0;for(kt=0;kt<N;kt++)Pe.dyn_dtree[kt*2]=0;for(kt=0;kt<U;kt++)Pe.bl_tree[kt*2]=0;Pe.dyn_ltree[ue*2]=1,Pe.opt_len=Pe.static_len=0,Pe.last_lit=Pe.matches=0}function Gn(Pe){Pe.bi_valid>8?st(Pe,Pe.bi_buf):Pe.bi_valid>0&&(Pe.pending_buf[Pe.pending++]=Pe.bi_buf),Pe.bi_buf=0,Pe.bi_valid=0}function yr(Pe,kt,Wt,cr){Gn(Pe),st(Pe,Wt),st(Pe,~Wt),r.arraySet(Pe.pending_buf,Pe.window,kt,Wt,Pe.pending),Pe.pending+=Wt}function vr(Pe,kt,Wt,cr){var Ye=kt*2,Rt=Wt*2;return Pe[Ye]<Pe[Rt]||Pe[Ye]===Pe[Rt]&&cr[kt]<=cr[Wt]}function un(Pe,kt,Wt){for(var cr=Pe.heap[Wt],Ye=Wt<<1;Ye<=Pe.heap_len&&(Ye<Pe.heap_len&&vr(kt,Pe.heap[Ye+1],Pe.heap[Ye],Pe.depth)&&Ye++,!vr(kt,cr,Pe.heap[Ye],Pe.depth));)Pe.heap[Wt]=Pe.heap[Ye],Wt=Ye,Ye<<=1;Pe.heap[Wt]=cr}function Dr(Pe,kt,Wt){var cr,Ye,Rt=0,Ae,Vt;if(Pe.last_lit!==0)do cr=Pe.pending_buf[Pe.d_buf+Rt*2]<<8|Pe.pending_buf[Pe.d_buf+Rt*2+1],Ye=Pe.pending_buf[Pe.l_buf+Rt],Rt++,cr===0?Qt(Pe,Ye,kt):(Ae=we[Ye],Qt(Pe,Ae+I+1,kt),Vt=Ue[Ae],Vt!==0&&(Ye-=De[Ae],pr(Pe,Ye,Vt)),cr--,Ae=It(cr),Qt(Pe,Ae,Wt),Vt=de[Ae],Vt!==0&&(cr-=ze[Ae],pr(Pe,cr,Vt)));while(Rt<Pe.last_lit);Qt(Pe,ue,kt)}function li(Pe,kt){var Wt=kt.dyn_tree,cr=kt.stat_desc.static_tree,Ye=kt.stat_desc.has_stree,Rt=kt.stat_desc.elems,Ae,Vt,Et=-1,H;for(Pe.heap_len=0,Pe.heap_max=$,Ae=0;Ae<Rt;Ae++)Wt[Ae*2]!==0?(Pe.heap[++Pe.heap_len]=Et=Ae,Pe.depth[Ae]=0):Wt[Ae*2+1]=0;for(;Pe.heap_len<2;)H=Pe.heap[++Pe.heap_len]=Et<2?++Et:0,Wt[H*2]=1,Pe.depth[H]=0,Pe.opt_len--,Ye&&(Pe.static_len-=cr[H*2+1]);for(kt.max_code=Et,Ae=Pe.heap_len>>1;Ae>=1;Ae--)un(Pe,Wt,Ae);H=Rt;do Ae=Pe.heap[1],Pe.heap[1]=Pe.heap[Pe.heap_len--],un(Pe,Wt,1),Vt=Pe.heap[1],Pe.heap[--Pe.heap_max]=Ae,Pe.hea
vendor: 4,463 bytes, line 4561
4561p[--Pe.heap_max]=Vt,Wt[H*2]=Wt[Ae*2]+Wt[Vt*2],Pe.depth[H]=(Pe.depth[Ae]>=Pe.depth[Vt]?Pe.depth[Ae]:Pe.depth[Vt])+1,Wt[Ae*2+1]=Wt[Vt*2+1]=H,Pe.heap[1]=H++,un(Pe,Wt,1);while(Pe.heap_len>=2);Pe.heap[--Pe.heap_max]=Pe.heap[1],Ar(Pe,kt),cn(Wt,Et,Pe.bl_count)}function Yn(Pe,kt,Wt){var cr,Ye=-1,Rt,Ae=kt[1],Vt=0,Et=7,H=4;for(Ae===0&&(Et=138,H=3),kt[(Wt+1)*2+1]=65535,cr=0;cr<=Wt;cr++)Rt=Ae,Ae=kt[(cr+1)*2+1],!(++Vt<Et&&Rt===Ae)&&(Vt<H?Pe.bl_tree[Rt*2]+=Vt:Rt!==0?(Rt!==Ye&&Pe.bl_tree[Rt*2]++,Pe.bl_tree[K*2]++):Vt<=10?Pe.bl_tree[se*2]++:Pe.bl_tree[Ee*2]++,Vt=0,Ye=Rt,Ae===0?(Et=138,H=3):Rt===Ae?(Et=6,H=3):(Et=7,H=4))}function mn(Pe,kt,Wt){var cr,Ye=-1,Rt,Ae=kt[1],Vt=0,Et=7,H=4;for(Ae===0&&(Et=138,H=3),cr=0;cr<=Wt;cr++)if(Rt=Ae,Ae=kt[(cr+1)*2+1],!(++Vt<Et&&Rt===Ae)){if(Vt<H)do Qt(Pe,Rt,Pe.bl_tree);while(--Vt!==0);else Rt!==0?(Rt!==Ye&&(Qt(Pe,Rt,Pe.bl_tree),Vt--),Qt(Pe,K,Pe.bl_tree),pr(Pe,Vt-3,2)):Vt<=10?(Qt(Pe,se,Pe.bl_tree),pr(Pe,Vt-3,3)):(Qt(Pe,Ee,Pe.bl_tree),pr(Pe,Vt-11,7));Vt=0,Ye=Rt,Ae===0?(Et=138,H=3):Rt===Ae?(Et=6,H=3):(Et=7,H=4)}}function ri(Pe){var kt;for(Yn(Pe,Pe.dyn_ltree,Pe.l_desc.max_code),Yn(Pe,Pe.dyn_dtree,Pe.d_desc.max_code),li(Pe,Pe.bl_desc),kt=U-1;kt>=3&&Pe.bl_tree[pe[kt]*2+1]===0;kt--);return Pe.opt_len+=3*(kt+1)+5+5+4,kt}function Hn(Pe,kt,Wt,cr){var Ye;for(pr(Pe,kt-257,5),pr(Pe,Wt-1,5),pr(Pe,cr-4,4),Ye=0;Ye<cr;Ye++)pr(Pe,Pe.bl_tree[pe[Ye]*2+1],3);mn(Pe,Pe.dyn_ltree,kt-1),mn(Pe,Pe.dyn_dtree,Wt-1)}function Sn(Pe){var kt=4093624447,Wt;for(Wt=0;Wt<=31;Wt++,kt>>>=1)if(kt&1&&Pe.dyn_ltree[Wt*2]!==0)return t;if(Pe.dyn_ltree[18]!==0||Pe.dyn_ltree[20]!==0||Pe.dyn_ltree[26]!==0)return n;for(Wt=32;Wt<I;Wt++)if(Pe.dyn_ltree[Wt*2]!==0)return n;return t}var Qn=!1;function jt(Pe){Qn||(Mr(),Qn=!0),Pe.l_desc=new bt(Pe.dyn_ltree,tt),Pe.d_desc=new bt(Pe.dyn_dtree,rt),Pe.bl_desc=new bt(Pe.bl_tree,ct),Pe.bi_buf=0,Pe.bi_valid=0,_r(Pe)}function mr(Pe,kt,Wt,cr){pr(Pe,(o<<1)+(cr?1:0),3),yr(Pe,kt,Wt)}function Rr(Pe){pr(Pe,l<<1,3),Qt(Pe,ue,te),Nt(Pe)}function nn(Pe,kt,Wt,cr){var Ye,Rt,Ae=0;Pe.level>0?(Pe.strm.data_type===i&&(Pe.strm.data_type=Sn(Pe)),li(Pe,Pe.l_desc),li(Pe,Pe.d_desc),Ae=ri(Pe),Ye=Pe.opt_len+3+7>>>3,Rt=Pe.static_len+3+7>>>3,Rt<=Ye&&(Ye=Rt)):Ye=Rt=Wt+5,Wt+4<=Ye&&kt!==-1?mr(Pe,kt,Wt,cr):Pe.strategy===e||Rt===Ye?(pr(Pe,(l<<1)+(cr?1:0),3),Dr(Pe,te,Ce)):(pr(Pe,(f<<1)+(cr?1:0),3),Hn(Pe,Pe.l_desc.max_code+1,Pe.d_desc.max_code+1,Ae+1),Dr(Pe,Pe.dyn_ltree,Pe.dyn_dtree)),_r(Pe),cr&&Gn(Pe)}function gi(Pe,kt,Wt){return Pe.pending_buf[Pe.d_buf+Pe.last_lit*2]=kt>>>8&255,Pe.pending_buf[Pe.d_buf+Pe.last_lit*2+1]=kt&255,Pe.pending_buf[Pe.l_buf+Pe.last_lit]=Wt&255,Pe.last_lit++,kt===0?Pe.dyn_ltree[Wt*2]++:(Pe.matches++,kt--,Pe.dyn_ltree[(we[Wt]+I+1)*2]++,Pe.dyn_dtree[It(kt)*2]++),Pe.last_lit===Pe.lit_bufsize-1}return zf._tr_init=jt,zf._tr_stored_block=mr,zf._tr_flush_block=nn,zf._tr_tally=gi,zf._tr_align=Rr,zf}var qb,xM;function z6(){if(xM)return qb;xM=1;function r(e,t,n,i){for(var s=e&65535|0,o=e>>>16&65535|0,l=0;n!==0;){l=n>2e3?2e3:n,n-=l;do s=s+t[i++]|0,o=o+s|0;while(--l);s%=65521,o%=65521}return s|o<<16|0}return qb=r,qb}var Jb,wM;function V6(){if(wM)return Jb;wM=1;function r(){for(var n,i=[],s=0;s<256;s++){n=s;for(var o=0;o<8;o++)n=n&1?3988292384^n>>>1:n>>>1;i[s]=n}return i}var e=r();function t(n,i,s,o){var l=e,f=o+s;n^=-1;for(var A=o;A<f;A++)n=n>>>8^l[(n^i[A])&255];return n^-1}return Jb=t,Jb}var Kb,TM;function Kw(){return TM||(TM=1,Kb={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}),Kb}var EM;function hge(){if(EM)return ul;EM=1;var r=cf(),e=fge(),t=z6(),n=V6(),i=Kw(),s=0,o=1,l=3,f=4,A=5,v=0,T=1,I=-2,F=-3,N=-5,U=-1,$=1,V=2,G=3,X=4,ue=0,K=2,se=8,Ee=9,Ue=15,de=8,me=29,pe=256,W=pe+1+me,te=30,Ce=19,Qe=2*W+1,we=15,De=3,ze=258,Ze=ze+De+1,tt=32,rt=42,ct=69,bt=73,It=91,st=103,pr=113,Qt=666,Jt=1,Nt=2,Ar=3,cn=4,Mr=3;function _r(H,vt){return H.msg=i[vt],vt}function Gn(H){return(H<<1)-(H>4?9:0)}function yr(H){for(var vt=H.length;--vt>=0;)H[vt]=0}function vr(H){var vt=H.state,St=vt.pending;St>H.avail_out&&(St=H.avail_out),St!==0&&(r.arraySet(H.output,vt.pending_buf,vt.pending_out,St,H.next_out),H.next_out+=St,vt.pending_out+=St,H.total_out+=St,H.avail_out-=St,vt.pending-=St,vt.pending===0&&(vt.pending_out=0))}function un(H,vt){e._tr_flush_block(H,H.block_start>=0?H.block_start:-1,H.strstart-H.block_start,vt),H.block_start=H.strstart,vr(H.strm)}function Dr(H,vt){H.pending_buf[H.pending++]=vt}
vendor: 10,482 bytes, line 4561
4561function li(H,vt){H.pending_buf[H.pending++]=vt>>>8&255,H.pending_buf[H.pending++]=vt&255}function Yn(H,vt,St,Te){var Xe=H.avail_in;return Xe>Te&&(Xe=Te),Xe===0?0:(H.avail_in-=Xe,r.arraySet(vt,H.input,H.next_in,Xe,St),H.state.wrap===1?H.adler=t(H.adler,vt,Xe,St):H.state.wrap===2&&(H.adler=n(H.adler,vt,Xe,St)),H.next_in+=Xe,H.total_in+=Xe,Xe)}function mn(H,vt){var St=H.max_chain_length,Te=H.strstart,Xe,ut,Z=H.prev_length,ne=H.nice_match,ce=H.strstart>H.w_size-Ze?H.strstart-(H.w_size-Ze):0,ye=H.window,Le=H.w_mask,he=H.prev,ve=H.strstart+ze,ae=ye[Te+Z-1],Se=ye[Te+Z];H.prev_length>=H.good_match&&(St>>=2),ne>H.lookahead&&(ne=H.lookahead);do if(Xe=vt,!(ye[Xe+Z]!==Se||ye[Xe+Z-1]!==ae||ye[Xe]!==ye[Te]||ye[++Xe]!==ye[Te+1])){Te+=2,Xe++;do;while(ye[++Te]===ye[++Xe]&&ye[++Te]===ye[++Xe]&&ye[++Te]===ye[++Xe]&&ye[++Te]===ye[++Xe]&&ye[++Te]===ye[++Xe]&&ye[++Te]===ye[++Xe]&&ye[++Te]===ye[++Xe]&&ye[++Te]===ye[++Xe]&&Te<ve);if(ut=ze-(ve-Te),Te=ve-ze,ut>Z){if(H.match_start=vt,Z=ut,ut>=ne)break;ae=ye[Te+Z-1],Se=ye[Te+Z]}}while((vt=he[vt&Le])>ce&&--St!==0);return Z<=H.lookahead?Z:H.lookahead}function ri(H){var vt=H.w_size,St,Te,Xe,ut,Z;do{if(ut=H.window_size-H.lookahead-H.strstart,H.strstart>=vt+(vt-Ze)){r.arraySet(H.window,H.window,vt,vt,0),H.match_start-=vt,H.strstart-=vt,H.block_start-=vt,Te=H.hash_size,St=Te;do Xe=H.head[--St],H.head[St]=Xe>=vt?Xe-vt:0;while(--Te);Te=vt,St=Te;do Xe=H.prev[--St],H.prev[St]=Xe>=vt?Xe-vt:0;while(--Te);ut+=vt}if(H.strm.avail_in===0)break;if(Te=Yn(H.strm,H.window,H.strstart+H.lookahead,ut),H.lookahead+=Te,H.lookahead+H.insert>=De)for(Z=H.strstart-H.insert,H.ins_h=H.window[Z],H.ins_h=(H.ins_h<<H.hash_shift^H.window[Z+1])&H.hash_mask;H.insert&&(H.ins_h=(H.ins_h<<H.hash_shift^H.window[Z+De-1])&H.hash_mask,H.prev[Z&H.w_mask]=H.head[H.ins_h],H.head[H.ins_h]=Z,Z++,H.insert--,!(H.lookahead+H.insert<De)););}while(H.lookahead<Ze&&H.strm.avail_in!==0)}function Hn(H,vt){var St=65535;for(St>H.pending_buf_size-5&&(St=H.pending_buf_size-5);;){if(H.lookahead<=1){if(ri(H),H.lookahead===0&&vt===s)return Jt;if(H.lookahead===0)break}H.strstart+=H.lookahead,H.lookahead=0;var Te=H.block_start+St;if((H.strstart===0||H.strstart>=Te)&&(H.lookahead=H.strstart-Te,H.strstart=Te,un(H,!1),H.strm.avail_out===0)||H.strstart-H.block_start>=H.w_size-Ze&&(un(H,!1),H.strm.avail_out===0))return Jt}return H.insert=0,vt===f?(un(H,!0),H.strm.avail_out===0?Ar:cn):(H.strstart>H.block_start&&(un(H,!1),H.strm.avail_out===0),Jt)}function Sn(H,vt){for(var St,Te;;){if(H.lookahead<Ze){if(ri(H),H.lookahead<Ze&&vt===s)return Jt;if(H.lookahead===0)break}if(St=0,H.lookahead>=De&&(H.ins_h=(H.ins_h<<H.hash_shift^H.window[H.strstart+De-1])&H.hash_mask,St=H.prev[H.strstart&H.w_mask]=H.head[H.ins_h],H.head[H.ins_h]=H.strstart),St!==0&&H.strstart-St<=H.w_size-Ze&&(H.match_length=mn(H,St)),H.match_length>=De)if(Te=e._tr_tally(H,H.strstart-H.match_start,H.match_length-De),H.lookahead-=H.match_length,H.match_length<=H.max_lazy_match&&H.lookahead>=De){H.match_length--;do H.strstart++,H.ins_h=(H.ins_h<<H.hash_shift^H.window[H.strstart+De-1])&H.hash_mask,St=H.prev[H.strstart&H.w_mask]=H.head[H.ins_h],H.head[H.ins_h]=H.strstart;while(--H.match_length!==0);H.strstart++}else H.strstart+=H.match_length,H.match_length=0,H.ins_h=H.window[H.strstart],H.ins_h=(H.ins_h<<H.hash_shift^H.window[H.strstart+1])&H.hash_mask;else Te=e._tr_tally(H,0,H.window[H.strstart]),H.lookahead--,H.strstart++;if(Te&&(un(H,!1),H.strm.avail_out===0))return Jt}return H.insert=H.strstart<De-1?H.strstart:De-1,vt===f?(un(H,!0),H.strm.avail_out===0?Ar:cn):H.last_lit&&(un(H,!1),H.strm.avail_out===0)?Jt:Nt}function Qn(H,vt){for(var St,Te,Xe;;){if(H.lookahead<Ze){if(ri(H),H.lookahead<Ze&&vt===s)return Jt;if(H.lookahead===0)break}if(St=0,H.lookahead>=De&&(H.ins_h=(H.ins_h<<H.hash_shift^H.window[H.strstart+De-1])&H.hash_mask,St=H.prev[H.strstart&H.w_mask]=H.head[H.ins_h],H.head[H.ins_h]=H.strstart),H.prev_length=H.match_length,H.prev_match=H.match_start,H.match_length=De-1,St!==0&&H.prev_length<H.max_lazy_match&&H.strstart-St<=H.w_size-Ze&&(H.match_length=mn(H,St),H.match_length<=5&&(H.strategy===$||H.match_length===De&&H.strstart-H.match_start>4096)&&(H.match_length=De-1)),H.prev_length>=De&&H.match_length<=H.prev_length){Xe=H.strstart+H.lookahead-De,Te=e._tr_tally(H,H.strstart-1-H.prev_match,H.prev_length-De),H.lookahead-=H.prev_length-1,H.prev_length-=2;do++H.strstart<=Xe&&(H.ins_h=(H.ins_h<<H.hash_shift^H.window[H.strstart+De-1])&H.hash_mask,St=H.prev[H.strstart&H.w_mask]=H.head[H.ins_h],H.head[H.ins_h]=H.strstart);while(--H.prev_length!==0);if(H.match_available=0,H.match_length=De-1,H.strstart++,Te&&(un(H,!1),H.strm.avail_out===0))return Jt}else if(H.match_available){if(Te=e._tr_tally(H,0,H.window[H.strstart-1]),Te&&un(H,!1),H.strstart++,H.lookahead--,H.strm.avail_out===0)return Jt}else H.match_available=1,H.strstart++,H.lookahead--}return H.match_available&&(Te=e._tr_tally(H,0,H.window[H.strstart-1]),H.match_available=0),H.insert=H.strstart<De-1?H.strstart:De-1,vt===f?(un(H,!0),H.strm.avail_out===0?Ar:cn):H.last_lit&&(un(H,!1),H.strm.avail_out===0)?Jt:Nt}function jt(H,vt){for(var St,Te,Xe,ut,Z=H.window;;){if(H.lookahead<=ze){if(ri(H),H.lookahead<=ze&&vt===s)return Jt;if(H.lookahead===0)break}if(H.match_length=0,H.lookahead>=De&&H.strstart>0&&(Xe=H.strstart-1,Te=Z[Xe],Te===Z[++Xe]&&Te===Z[++Xe]&&Te===Z[++Xe])){ut=H.strstart+ze;do;while(Te===Z[++Xe]&&Te===Z[++Xe]&&Te===Z[++Xe]&&Te===Z[++Xe]&&Te===Z[++Xe]&&Te===Z[++Xe]&&Te===Z[++Xe]&&Te===Z[++Xe]&&Xe<ut);H.match_length=ze-(ut-Xe),H.match_length>H.lookahead&&(H.match_length=H.lookahead)}if(H.match_length>=De?(St=e._tr_tally(H,1,H.match_length-De),H.lookahead-=H.match_length,H.strstart+=H.match_length,H.match_length=0):(St=e._tr_tally(H,0,H.window[H.strstart]),H.lookahead--,H.strstart++),St&&(un(H,!1),H.strm.avail_out===0))return Jt}return H.insert=0,vt===f?(un(H,!0),H.strm.avail_out===0?Ar:cn):H.last_lit&&(un(H,!1),H.strm.avail_out===0)?Jt:Nt}function mr(H,vt){for(var St;;){if(H.lookahead===0&&(ri(H),H.lookahead===0)){if(vt===s)return Jt;break}if(H.match_length=0,St=e._tr_tally(H,0,H.window[H.strstart]),H.lookahead--,H.strstart++,St&&(un(H,!1),H.strm.avail_out===0))return Jt}return H.insert=0,vt===f?(un(H,!0),H.strm.avail_out===0?Ar:cn):H.last_lit&&(un(H,!1),H.strm.avail_out===0)?Jt:Nt}function Rr(H,vt,St,Te,Xe){this.good_length=H,this.max_lazy=vt,this.nice_length=St,this.max_chain=Te,this.func=Xe}var nn;nn=[new Rr(0,0,0,0,Hn),new Rr(4,4,8,4,Sn),new Rr(4,5,16,8,Sn),new Rr(4,6,32,32,Sn),new Rr(4,4,16,16,Qn),new Rr(8,16,32,32,Qn),new Rr(8,16,128,128,Qn),new Rr(8,32,128,256,Qn),new Rr(32,128,258,1024,Qn),new Rr(32,258,258,4096,Qn)];function gi(H){H.window_size=2*H.w_size,yr(H.head),H.max_lazy_match=nn[H.level].max_lazy,H.good_match=nn[H.level].good_length,H.nice_match=nn[H.level].nice_length,H.max_chain_length=nn[H.level].max_chain,H.strstart=0,H.block_start=0,H.lookahead=0,H.insert=0,H.match_length=H.prev_length=De-1,H.match_available=0,H.ins_h=0}function Pe(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=se,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new r.Buf16(Qe*2),this.dyn_dtree=new r.Buf16((2*te+1)*2),this.bl_tree=new r.Buf16((2*Ce+1)*2),yr(this.dyn_ltree),yr(this.dyn_dtree),yr(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new r.Buf16(we+1),this.heap=new r.Buf16(2*W+1),yr(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new r.Buf16(2*W+1),yr(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function kt(H){var vt;return!H||!H.state?_r(H,I):(H.total_in=H.total_out=0,H.data_type=K,vt=H.state,vt.pending=0,vt.pending_out=0,vt.wrap<0&&(vt.wrap=-vt.wrap),vt.status=vt.wrap?rt:pr,H.adler=vt.wrap===2?0:1,vt.last_flush=s,e._tr_init(vt),v)}function Wt(H){var vt=kt(H);return vt===v&&gi(H.state),vt}function cr(H,vt){return!H||!H.state||H.state.wrap!==2?I:(H.state.gzhead=vt,v)}function Ye(H,vt,St,Te,Xe,ut){if(!H)return I;var Z=1;if(vt===U&&(vt=6),Te<0?(Z=0,Te=-Te):Te>15&&(Z=2,Te-=16),Xe<1||Xe>Ee||St!==se||Te<8||Te>15||vt<0||vt>9||ut<0||ut>X)return _r(H,I);Te===8&&(Te=9);var ne=new Pe;return H.state=ne,ne.strm=H,ne.wrap=Z,ne.gzhead=null,ne.w_bits=Te,ne.w_size=1<<ne.w_bits,ne.w_mask=ne.w_size-1,ne.hash_bits=Xe+7,ne.hash_size=1<<ne.hash_bits,ne.hash_mask=ne.hash_size-1,ne.hash_shift=~~((ne.hash_bits+De-1)/De),ne.window=new r.Buf8(ne.w_size*2),ne.head=new r.Buf16(ne.hash_size),ne.prev=new r.Buf16(ne.w_size),ne.lit_bufsize=1<<Xe+6,ne.pending_buf_size=ne.lit_bufsize*4,ne.pending_buf=new r.Buf8(ne.pending_buf_size),ne.d_buf=1*ne.lit_bufsize,ne.l_buf=3*ne.lit_bufsize,ne.level=vt,ne.strategy=ut,ne.method=St,Wt(H)}function Rt(H,vt){return Ye(H,vt,se,Ue,de,ue)}function Ae(H,vt){var St,Te,Xe,ut;if(!H||!H.state||vt>A||vt<0)return H?_r(H,I):I;if(Te=H.state,!H.output||!H.input&&H.avail_in!==0||Te.status===Qt&&vt!==f)return _r(H,H.avail_out===0?N:I);if(Te.strm=H,St=Te.last_flush,Te.last_flush=vt,Te.status===rt)if(Te.wrap===2)H.adler=0,Dr(Te,31),Dr(Te,139),Dr(Te,8),Te.gzhead?(Dr(Te,(Te.gzhead.text?1:0)+(Te.gzhead.hcrc?2:0)+(Te.gzhead.extra?4:0)+(Te.gzhead.name?8:0)+(Te.gzhead.comment?16:0)),Dr(Te,Te.gzhead.time&255),Dr(Te,Te.gzhead.time>>8&255),Dr(Te,Te.gzhead.time>>16&255),Dr(Te,Te.gzhead.time>>24&255),Dr(Te,Te.level===9?2:Te.strategy>=V||Te.level<2?4:0),Dr(Te,Te.gzhead.os&255),Te.gzhead.extra&&Te.gzhead.extra.length&&(Dr(Te,Te.gzhead.extra.length&255),Dr(Te,Te.gzhead.extra.length>>8&255)),Te.gzhead.hcrc&&(H.adler=n(H.adler,Te.pending_buf,Te.pending,0)),Te.gzindex=0,Te.status=ct):(Dr(Te,0),Dr(Te,0),Dr(Te,0),Dr(Te,0),Dr(Te,0),Dr(Te,Te.level===9?2:Te.strategy>=V||Te.level<2?4:0),Dr(Te,Mr),Te.status=pr);else{var Z=se+(Te.w_bits-8<<4)<<8,ne=-1;Te.strategy>=V||Te.level<2?ne=0:Te.level<6?ne=1:Te.level===6?ne=2:ne=3,Z|=ne<<6,Te.strstart!==0&&(Z|=tt),Z+=31-Z%31,Te.status=pr,li(Te,Z),Te.strstart!==0&&(li(Te,H.adler>>>16),li(Te,H.adler&65535)),H.adler=1}
vendor: 7,067 bytes, line 4561
4561if(Te.status===ct)if(Te.gzhead.extra){for(Xe=Te.pending;Te.gzindex<(Te.gzhead.extra.length&65535)&&!(Te.pending===Te.pending_buf_size&&(Te.gzhead.hcrc&&Te.pending>Xe&&(H.adler=n(H.adler,Te.pending_buf,Te.pending-Xe,Xe)),vr(H),Xe=Te.pending,Te.pending===Te.pending_buf_size));)Dr(Te,Te.gzhead.extra[Te.gzindex]&255),Te.gzindex++;Te.gzhead.hcrc&&Te.pending>Xe&&(H.adler=n(H.adler,Te.pending_buf,Te.pending-Xe,Xe)),Te.gzindex===Te.gzhead.extra.length&&(Te.gzindex=0,Te.status=bt)}else Te.status=bt;if(Te.status===bt)if(Te.gzhead.name){Xe=Te.pending;do{if(Te.pending===Te.pending_buf_size&&(Te.gzhead.hcrc&&Te.pending>Xe&&(H.adler=n(H.adler,Te.pending_buf,Te.pending-Xe,Xe)),vr(H),Xe=Te.pending,Te.pending===Te.pending_buf_size)){ut=1;break}Te.gzindex<Te.gzhead.name.length?ut=Te.gzhead.name.charCodeAt(Te.gzindex++)&255:ut=0,Dr(Te,ut)}while(ut!==0);Te.gzhead.hcrc&&Te.pending>Xe&&(H.adler=n(H.adler,Te.pending_buf,Te.pending-Xe,Xe)),ut===0&&(Te.gzindex=0,Te.status=It)}else Te.status=It;if(Te.status===It)if(Te.gzhead.comment){Xe=Te.pending;do{if(Te.pending===Te.pending_buf_size&&(Te.gzhead.hcrc&&Te.pending>Xe&&(H.adler=n(H.adler,Te.pending_buf,Te.pending-Xe,Xe)),vr(H),Xe=Te.pending,Te.pending===Te.pending_buf_size)){ut=1;break}Te.gzindex<Te.gzhead.comment.length?ut=Te.gzhead.comment.charCodeAt(Te.gzindex++)&255:ut=0,Dr(Te,ut)}while(ut!==0);Te.gzhead.hcrc&&Te.pending>Xe&&(H.adler=n(H.adler,Te.pending_buf,Te.pending-Xe,Xe)),ut===0&&(Te.status=st)}else Te.status=st;if(Te.status===st&&(Te.gzhead.hcrc?(Te.pending+2>Te.pending_buf_size&&vr(H),Te.pending+2<=Te.pending_buf_size&&(Dr(Te,H.adler&255),Dr(Te,H.adler>>8&255),H.adler=0,Te.status=pr)):Te.status=pr),Te.pending!==0){if(vr(H),H.avail_out===0)return Te.last_flush=-1,v}else if(H.avail_in===0&&Gn(vt)<=Gn(St)&&vt!==f)return _r(H,N);if(Te.status===Qt&&H.avail_in!==0)return _r(H,N);if(H.avail_in!==0||Te.lookahead!==0||vt!==s&&Te.status!==Qt){var ce=Te.strategy===V?mr(Te,vt):Te.strategy===G?jt(Te,vt):nn[Te.level].func(Te,vt);if((ce===Ar||ce===cn)&&(Te.status=Qt),ce===Jt||ce===Ar)return H.avail_out===0&&(Te.last_flush=-1),v;if(ce===Nt&&(vt===o?e._tr_align(Te):vt!==A&&(e._tr_stored_block(Te,0,0,!1),vt===l&&(yr(Te.head),Te.lookahead===0&&(Te.strstart=0,Te.block_start=0,Te.insert=0))),vr(H),H.avail_out===0))return Te.last_flush=-1,v}return vt!==f?v:Te.wrap<=0?T:(Te.wrap===2?(Dr(Te,H.adler&255),Dr(Te,H.adler>>8&255),Dr(Te,H.adler>>16&255),Dr(Te,H.adler>>24&255),Dr(Te,H.total_in&255),Dr(Te,H.total_in>>8&255),Dr(Te,H.total_in>>16&255),Dr(Te,H.total_in>>24&255)):(li(Te,H.adler>>>16),li(Te,H.adler&65535)),vr(H),Te.wrap>0&&(Te.wrap=-Te.wrap),Te.pending!==0?v:T)}function Vt(H){var vt;return!H||!H.state?I:(vt=H.state.status,vt!==rt&&vt!==ct&&vt!==bt&&vt!==It&&vt!==st&&vt!==pr&&vt!==Qt?_r(H,I):(H.state=null,vt===pr?_r(H,F):v))}function Et(H,vt){var St=vt.length,Te,Xe,ut,Z,ne,ce,ye,Le;if(!H||!H.state||(Te=H.state,Z=Te.wrap,Z===2||Z===1&&Te.status!==rt||Te.lookahead))return I;for(Z===1&&(H.adler=t(H.adler,vt,St,0)),Te.wrap=0,St>=Te.w_size&&(Z===0&&(yr(Te.head),Te.strstart=0,Te.block_start=0,Te.insert=0),Le=new r.Buf8(Te.w_size),r.arraySet(Le,vt,St-Te.w_size,Te.w_size,0),vt=Le,St=Te.w_size),ne=H.avail_in,ce=H.next_in,ye=H.input,H.avail_in=St,H.next_in=0,H.input=vt,ri(Te);Te.lookahead>=De;){Xe=Te.strstart,ut=Te.lookahead-(De-1);do Te.ins_h=(Te.ins_h<<Te.hash_shift^Te.window[Xe+De-1])&Te.hash_mask,Te.prev[Xe&Te.w_mask]=Te.head[Te.ins_h],Te.head[Te.ins_h]=Xe,Xe++;while(--ut);Te.strstart=Xe,Te.lookahead=De-1,ri(Te)}return Te.strstart+=Te.lookahead,Te.block_start=Te.strstart,Te.insert=Te.lookahead,Te.lookahead=0,Te.match_length=Te.prev_length=De-1,Te.match_available=0,H.next_in=ce,H.input=ye,H.avail_in=ne,Te.wrap=Z,v}return ul.deflateInit=Rt,ul.deflateInit2=Ye,ul.deflateReset=Wt,ul.deflateResetKeep=kt,ul.deflateSetHeader=cr,ul.deflate=Ae,ul.deflateEnd=Vt,ul.deflateSetDictionary=Et,ul.deflateInfo="pako deflate (from Nodeca project)",ul}var Vf={},CM;function j6(){if(CM)return Vf;CM=1;var r=cf(),e=!0,t=!0;try{String.fromCharCode.apply(null,[0])}catch{e=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{t=!1}for(var n=new r.Buf8(256),i=0;i<256;i++)n[i]=i>=252?6:i>=248?5:i>=240?4:i>=224?3:i>=192?2:1;n[254]=n[254]=1,Vf.string2buf=function(o){var l,f,A,v,T,I=o.length,F=0;for(v=0;v<I;v++)f=o.charCodeAt(v),(f&64512)===55296&&v+1<I&&(A=o.charCodeAt(v+1),(A&64512)===56320&&(f=65536+(f-55296<<10)+(A-56320),v++)),F+=f<128?1:f<2048?2:f<65536?3:4;for(l=new r.Buf8(F),T=0,v=0;T<F;v++)f=o.charCodeAt(v),(f&64512)===55296&&v+1<I&&(A=o.charCodeAt(v+1),(A&64512)===56320&&(f=65536+(f-55296<<10)+(A-56320),v++)),f<128?l[T++]=f:f<2048?(l[T++]=192|f>>>6,l[T++]=128|f&63):f<65536?(l[T++]=224|f>>>12,l[T++]=128|f>>>6&63,l[T++]=128|f&63):(l[T++]=240|f>>>18,l[T++]=128|f>>>12&63,l[T++]=128|f>>>6&63,l[T++]=128|f&63);return l};function s(o,l){if(l<65534&&(o.subarray&&t||!o.subarray&&e))return String.fromCharCode.apply(null,r.shrinkBuf(o,l));for(var f="",A=0;A<l;A++)f+=String.fromCharCode(o[A]);return f}return Vf.buf2binstring=function(o){return s(o,o.length)},Vf.binstring2buf=function(o){for(var l=new r.Buf8(o.length),f=0,A=l.length;f<A;f++)l[f]=o.charCodeAt(f);return l},Vf.buf2string=function(o,l){var f,A,v,T,I=l||o.length,F=new Array(I*2);for(A=0,f=0;f<I;){if(v=o[f++],v<128){F[A++]=v;continue}if(T=n[v],T>4){F[A++]=65533,f+=T-1;continue}for(v&=T===2?31:T===3?15:7;T>1&&f<I;)v=v<<6|o[f++]&63,T--;if(T>1){F[A++]=65533;continue}v<65536?F[A++]=v:(v-=65536,F[A++]=55296|v>>10&1023,F[A++]=56320|v&1023)}return s(F,A)},Vf.utf8border=function(o,l){var f;for(l=l||o.length,l>o.length&&(l=o.length),f=l-1;f>=0&&(o[f]&192)===128;)f--;return f<0||f===0?l:f+n[o[f]]>l?f:l},Vf}var Zb,SM;function G6(){if(SM)return Zb;SM=1;function r(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}return Zb=r,Zb}var IM;function dge(){if(IM)return vd;IM=1;var r=hge(),e=cf(),t=j6(),n=Kw(),i=G6(),s=Object.prototype.toString,o=0,l=4,f=0,A=1,v=2,T=-1,I=0,F=8;function N(G){if(!(this instanceof N))return new N(G);this.options=e.assign({level:T,method:F,chunkSize:16384,windowBits:15,memLevel:8,strategy:I,to:""},G||{});var X=this.options;X.raw&&X.windowBits>0?X.windowBits=-X.windowBits:X.gzip&&X.windowBits>0&&X.windowBits<16&&(X.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var ue=r.deflateInit2(this.strm,X.level,X.method,X.windowBits,X.memLevel,X.strategy);if(ue!==f)throw new Error(n[ue]);if(X.header&&r.deflateSetHeader(this.strm,X.header),X.dictionary){var K;if(typeof X.dictionary=="string"?K=t.string2buf(X.dictionary):s.call(X.dictionary)==="[object ArrayBuffer]"?K=new Uint8Array(X.dictionary):K=X.dictionary,ue=r.deflateSetDictionary(this.strm,K),ue!==f)throw new Error(n[ue]);this._dict_set=!0}}N.prototype.push=function(G,X){var ue=this.strm,K=this.options.chunkSize,se,Ee;if(this.ended)return!1;Ee=X===~~X?X:X===!0?l:o,typeof G=="string"?ue.input=t.string2buf(G):s.call(G)==="[object ArrayBuffer]"?ue.
vendor: 15,966 bytes, line 4561
4561input=new Uint8Array(G):ue.input=G,ue.next_in=0,ue.avail_in=ue.input.length;do{if(ue.avail_out===0&&(ue.output=new e.Buf8(K),ue.next_out=0,ue.avail_out=K),se=r.deflate(ue,Ee),se!==A&&se!==f)return this.onEnd(se),this.ended=!0,!1;(ue.avail_out===0||ue.avail_in===0&&(Ee===l||Ee===v))&&(this.options.to==="string"?this.onData(t.buf2binstring(e.shrinkBuf(ue.output,ue.next_out))):this.onData(e.shrinkBuf(ue.output,ue.next_out)))}while((ue.avail_in>0||ue.avail_out===0)&&se!==A);return Ee===l?(se=r.deflateEnd(this.strm),this.onEnd(se),this.ended=!0,se===f):(Ee===v&&(this.onEnd(f),ue.avail_out=0),!0)},N.prototype.onData=function(G){this.chunks.push(G)},N.prototype.onEnd=function(G){G===f&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=e.flattenChunks(this.chunks)),this.chunks=[],this.err=G,this.msg=this.strm.msg};function U(G,X){var ue=new N(X);if(ue.push(G,!0),ue.err)throw ue.msg||n[ue.err];return ue.result}function $(G,X){return X=X||{},X.raw=!0,U(G,X)}function V(G,X){return X=X||{},X.gzip=!0,U(G,X)}return vd.Deflate=N,vd.deflate=U,vd.deflateRaw=$,vd.gzip=V,vd}var bd={},Ra={},Yb,BM;function pge(){if(BM)return Yb;BM=1;var r=30,e=12;return Yb=function(n,i){var s,o,l,f,A,v,T,I,F,N,U,$,V,G,X,ue,K,se,Ee,Ue,de,me,pe,W,te;s=n.state,o=n.next_in,W=n.input,l=o+(n.avail_in-5),f=n.next_out,te=n.output,A=f-(i-n.avail_out),v=f+(n.avail_out-257),T=s.dmax,I=s.wsize,F=s.whave,N=s.wnext,U=s.window,$=s.hold,V=s.bits,G=s.lencode,X=s.distcode,ue=(1<<s.lenbits)-1,K=(1<<s.distbits)-1;e:do{V<15&&($+=W[o++]<<V,V+=8,$+=W[o++]<<V,V+=8),se=G[$&ue];t:for(;;){if(Ee=se>>>24,$>>>=Ee,V-=Ee,Ee=se>>>16&255,Ee===0)te[f++]=se&65535;else if(Ee&16){Ue=se&65535,Ee&=15,Ee&&(V<Ee&&($+=W[o++]<<V,V+=8),Ue+=$&(1<<Ee)-1,$>>>=Ee,V-=Ee),V<15&&($+=W[o++]<<V,V+=8,$+=W[o++]<<V,V+=8),se=X[$&K];r:for(;;){if(Ee=se>>>24,$>>>=Ee,V-=Ee,Ee=se>>>16&255,Ee&16){if(de=se&65535,Ee&=15,V<Ee&&($+=W[o++]<<V,V+=8,V<Ee&&($+=W[o++]<<V,V+=8)),de+=$&(1<<Ee)-1,de>T){n.msg="invalid distance too far back",s.mode=r;break e}if($>>>=Ee,V-=Ee,Ee=f-A,de>Ee){if(Ee=de-Ee,Ee>F&&s.sane){n.msg="invalid distance too far back",s.mode=r;break e}if(me=0,pe=U,N===0){if(me+=I-Ee,Ee<Ue){Ue-=Ee;do te[f++]=U[me++];while(--Ee);me=f-de,pe=te}}else if(N<Ee){if(me+=I+N-Ee,Ee-=N,Ee<Ue){Ue-=Ee;do te[f++]=U[me++];while(--Ee);if(me=0,N<Ue){Ee=N,Ue-=Ee;do te[f++]=U[me++];while(--Ee);me=f-de,pe=te}}}else if(me+=N-Ee,Ee<Ue){Ue-=Ee;do te[f++]=U[me++];while(--Ee);me=f-de,pe=te}for(;Ue>2;)te[f++]=pe[me++],te[f++]=pe[me++],te[f++]=pe[me++],Ue-=3;Ue&&(te[f++]=pe[me++],Ue>1&&(te[f++]=pe[me++]))}else{me=f-de;do te[f++]=te[me++],te[f++]=te[me++],te[f++]=te[me++],Ue-=3;while(Ue>2);Ue&&(te[f++]=te[me++],Ue>1&&(te[f++]=te[me++]))}}else if((Ee&64)===0){se=X[(se&65535)+($&(1<<Ee)-1)];continue r}else{n.msg="invalid distance code",s.mode=r;break e}break}}else if((Ee&64)===0){se=G[(se&65535)+($&(1<<Ee)-1)];continue t}else if(Ee&32){s.mode=e;break e}else{n.msg="invalid literal/length code",s.mode=r;break e}break}}while(o<l&&f<v);Ue=V>>3,o-=Ue,V-=Ue<<3,$&=(1<<V)-1,n.next_in=o,n.next_out=f,n.avail_in=o<l?5+(l-o):5-(o-l),n.avail_out=f<v?257+(v-f):257-(f-v),s.hold=$,s.bits=V},Yb}var Qb,PM;function Age(){if(PM)return Qb;PM=1;var r=cf(),e=15,t=852,n=592,i=0,s=1,o=2,l=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],f=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],A=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],v=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];return Qb=function(I,F,N,U,$,V,G,X){var ue=X.bits,K=0,se=0,Ee=0,Ue=0,de=0,me=0,pe=0,W=0,te=0,Ce=0,Qe,we,De,ze,Ze,tt=null,rt=0,ct,bt=new r.Buf16(e+1),It=new r.Buf16(e+1),st=null,pr=0,Qt,Jt,Nt;for(K=0;K<=e;K++)bt[K]=0;for(se=0;se<U;se++)bt[F[N+se]]++;for(de=ue,Ue=e;Ue>=1&&bt[Ue]===0;Ue--);if(de>Ue&&(de=Ue),Ue===0)return $[V++]=1<<24|64<<16|0,$[V++]=1<<24|64<<16|0,X.bits=1,0;for(Ee=1;Ee<Ue&&bt[Ee]===0;Ee++);for(de<Ee&&(de=Ee),W=1,K=1;K<=e;K++)if(W<<=1,W-=bt[K],W<0)return-1;if(W>0&&(I===i||Ue!==1))return-1;for(It[1]=0,K=1;K<e;K++)It[K+1]=It[K]+bt[K];for(se=0;se<U;se++)F[N+se]!==0&&(G[It[F[N+se]]++]=se);if(I===i?(tt=st=G,ct=19):I===s?(tt=l,rt-=257,st=f,pr-=257,ct=256):(tt=A,st=v,ct=-1),Ce=0,se=0,K=Ee,Ze=V,me=de,pe=0,De=-1,te=1<<de,ze=te-1,I===s&&te>t||I===o&&te>n)return 1;for(;;){Qt=K-pe,G[se]<ct?(Jt=0,Nt=G[se]):G[se]>ct?(Jt=st[pr+G[se]],Nt=tt[rt+G[se]]):(Jt=96,Nt=0),Qe=1<<K-pe,we=1<<me,Ee=we;do we-=Qe,$[Ze+(Ce>>pe)+we]=Qt<<24|Jt<<16|Nt|0;while(we!==0);for(Qe=1<<K-1;Ce&Qe;)Qe>>=1;if(Qe!==0?(Ce&=Qe-1,Ce+=Qe):Ce=0,se++,--bt[K]===0){if(K===Ue)break;K=F[N+G[se]]}if(K>de&&(Ce&ze)!==De){for(pe===0&&(pe=de),Ze+=Ee,me=K-pe,W=1<<me;me+pe<Ue&&(W-=bt[me+pe],!(W<=0));)me++,W<<=1;if(te+=1<<me,I===s&&te>t||I===o&&te>n)return 1;De=Ce&ze,$[De]=de<<24|me<<16|Ze-V|0}}return Ce!==0&&($[Ze+Ce]=K-pe<<24|64<<16|0),X.bits=de,0},Qb}var MM;function gge(){if(MM)return Ra;MM=1;var r=cf(),e=z6(),t=V6(),n=pge(),i=Age(),s=0,o=1,l=2,f=4,A=5,v=6,T=0,I=1,F=2,N=-2,U=-3,$=-4,V=-5,G=8,X=1,ue=2,K=3,se=4,Ee=5,Ue=6,de=7,me=8,pe=9,W=10,te=11,Ce=12,Qe=13,we=14,De=15,ze=16,Ze=17,tt=18,rt=19,ct=20,bt=21,It=22,st=23,pr=24,Qt=25,Jt=26,Nt=27,Ar=28,cn=29,Mr=30,_r=31,Gn=32,yr=852,vr=592,un=15,Dr=un;function li(Ye){return(Ye>>>24&255)+(Ye>>>8&65280)+((Ye&65280)<<8)+((Ye&255)<<24)}function Yn(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function mn(Ye){var Rt;return!Ye||!Ye.state?N:(Rt=Ye.state,Ye.total_in=Ye.total_out=Rt.total=0,Ye.msg="",Rt.wrap&&(Ye.adler=Rt.wrap&1),Rt.mode=X,Rt.last=0,Rt.havedict=0,Rt.dmax=32768,Rt.head=null,Rt.hold=0,Rt.bits=0,Rt.lencode=Rt.lendyn=new r.Buf32(yr),Rt.distcode=Rt.distdyn=new r.Buf32(vr),Rt.sane=1,Rt.back=-1,T)}function ri(Ye){var Rt;return!Ye||!Ye.state?N:(Rt=Ye.state,Rt.wsize=0,Rt.whave=0,Rt.wnext=0,mn(Ye))}function Hn(Ye,Rt){var Ae,Vt;return!Ye||!Ye.state||(Vt=Ye.state,Rt<0?(Ae=0,Rt=-Rt):(Ae=(Rt>>4)+1,Rt<48&&(Rt&=15)),Rt&&(Rt<8||Rt>15))?N:(Vt.window!==null&&Vt.wbits!==Rt&&(Vt.window=null),Vt.wrap=Ae,Vt.wbits=Rt,ri(Ye))}function Sn(Ye,Rt){var Ae,Vt;return Ye?(Vt=new Yn,Ye.state=Vt,Vt.window=null,Ae=Hn(Ye,Rt),Ae!==T&&(Ye.state=null),Ae):N}function Qn(Ye){return Sn(Ye,Dr)}var jt=!0,mr,Rr;function nn(Ye){if(jt){var Rt;for(mr=new r.Buf32(512),Rr=new r.Buf32(32),Rt=0;Rt<144;)Ye.lens[Rt++]=8;for(;Rt<256;)Ye.lens[Rt++]=9;for(;Rt<280;)Ye.lens[Rt++]=7;for(;Rt<288;)Ye.lens[Rt++]=8;for(i(o,Ye.lens,0,288,mr,0,Ye.work,{bits:9}),Rt=0;Rt<32;)Ye.lens[Rt++]=5;i(l,Ye.lens,0,32,Rr,0,Ye.work,{bits:5}),jt=!1}Ye.lencode=mr,Ye.lenbits=9,Ye.distcode=Rr,Ye.distbits=5}function gi(Ye,Rt,Ae,Vt){var Et,H=Ye.state;return H.window===null&&(H.wsize=1<<H.wbits,H.wnext=0,H.whave=0,H.window=new r.Buf8(H.wsize)),Vt>=H.wsize?(r.arraySet(H.window,Rt,Ae-H.wsize,H.wsize,0),H.wnext=0,H.whave=H.wsize):(Et=H.wsize-H.wnext,Et>Vt&&(Et=Vt),r.arraySet(H.window,Rt,Ae-Vt,Et,H.wnext),Vt-=Et,Vt?(r.arraySet(H.window,Rt,Ae-Vt,Vt,0),H.wnext=Vt,H.whave=H.wsize):(H.wnext+=Et,H.wnext===H.wsize&&(H.wnext=0),H.whave<H.wsize&&(H.whave+=Et))),0}function Pe(Ye,Rt){var Ae,Vt,Et,H,vt,St,Te,Xe,ut,Z,ne,ce,ye,Le,he=0,ve,ae,Se,g,le,xt,Je,Ct,Mt=new r.Buf8(4),Ft,ht,Lt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!Ye||!Ye.state||!Ye.output||!Ye.input&&Ye.avail_in!==0)return N;Ae=Ye.state,Ae.mode===Ce&&(Ae.mode=Qe),vt=Ye.next_out,Et=Ye.output,Te=Ye.avail_out,H=Ye.next_in,Vt=Ye.input,St=Ye.avail_in,Xe=Ae.hold,ut=Ae.bits,Z=St,ne=Te,Ct=T;e:for(;;)switch(Ae.mode){case X:if(Ae.wrap===0){Ae.mode=Qe;break}for(;ut<16;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}if(Ae.wrap&2&&Xe===35615){Ae.check=0,Mt[0]=Xe&255,Mt[1]=Xe>>>8&255,Ae.check=t(Ae.check,Mt,2,0),Xe=0,ut=0,Ae.mode=ue;break}if(Ae.flags=0,Ae.head&&(Ae.head.done=!1),!(Ae.wrap&1)||(((Xe&255)<<8)+(Xe>>8))%31){Ye.msg="incorrect header check",Ae.mode=Mr;break}if((Xe&15)!==G){Ye.msg="unknown compression method",Ae.mode=Mr;break}if(Xe>>>=4,ut-=4,Je=(Xe&15)+8,Ae.wbits===0)Ae.wbits=Je;else if(Je>Ae.wbits){Ye.msg="invalid window size",Ae.mode=Mr;break}Ae.dmax=1<<Je,Ye.adler=Ae.check=1,Ae.mode=Xe&512?W:Ce,Xe=0,ut=0;break;case ue:for(;ut<16;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}if(Ae.flags=Xe,(Ae.flags&255)!==G){Ye.msg="unknown compression method",Ae.mode=Mr;break}if(Ae.flags&57344){Ye.msg="unknown header flags set",Ae.mode=Mr;break}Ae.head&&(Ae.head.text=Xe>>8&1),Ae.flags&512&&(Mt[0]=Xe&255,Mt[1]=Xe>>>8&255,Ae.check=t(Ae.check,Mt,2,0)),Xe=0,ut=0,Ae.mode=K;case K:for(;ut<32;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Ae.head&&(Ae.head.time=Xe),Ae.flags&512&&(Mt[0]=Xe&255,Mt[1]=Xe>>>8&255,Mt[2]=Xe>>>16&255,Mt[3]=Xe>>>24&255,Ae.check=t(Ae.check,Mt,4,0)),Xe=0,ut=0,Ae.mode=se;case se:for(;ut<16;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Ae.head&&(Ae.head.xflags=Xe&255,Ae.head.os=Xe>>8),Ae.flags&512&&(Mt[0]=Xe&255,Mt[1]=Xe>>>8&255,Ae.check=t(Ae.check,Mt,2,0)),Xe=0,ut=0,Ae.mode=Ee;case Ee:if(Ae.flags&1024){for(;ut<16;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Ae.length=Xe,Ae.head&&(Ae.head.extra_len=Xe),Ae.flags&512&&(Mt[0]=Xe&255,Mt[1]=Xe>>>8&255,Ae.check=t(Ae.check,Mt,2,0)),Xe=0,ut=0}else Ae.head&&(Ae.head.extra=null);Ae.mode=Ue;case Ue:if(Ae.flags&1024&&(ce=Ae.length,ce>St&&(ce=St),ce&&(Ae.head&&(Je=Ae.head.extra_len-Ae.length,Ae.head.extra||(Ae.head.extra=new Array(Ae.head.extra_len)),r.arraySet(Ae.head.extra,Vt,H,ce,Je)),Ae.flags&512&&(Ae.check=t(Ae.check,Vt,ce,H)),St-=ce,H+=ce,Ae.length-=ce),Ae.length))break e;Ae.length=0,Ae.mode=de;case de:if(Ae.flags&2048){if(St===0)break e;ce=0;do Je=Vt[H+ce++],Ae.head&&Je&&Ae.length<65536&&(Ae.head.name+=String.fromCharCode(Je));while(Je&&ce<St);if(Ae.flags&512&&(Ae.check=t(Ae.check,Vt,ce,H)),St-=ce,H+=ce,Je)break e}else Ae.head&&(Ae.head.name=null);Ae.length=0,Ae.mode=me;case me:if(Ae.flags&4096){if(St===0)break e;ce=0;do Je=Vt[H+ce++],Ae.head&&Je&&Ae.length<65536&&(Ae.head.comment+=String.fromCharCode(Je));while(Je&&ce<St);if(Ae.flags&512&&(Ae.check=t(Ae.check,Vt,ce,H)),St-=ce,H+=ce,Je)break e}else Ae.head&&(Ae.head.comment=null);Ae.mode=pe;case pe:if(Ae.flags&512){for(;ut<16;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}if(Xe!==(Ae.check&65535)){Ye.msg="header crc mismatch",Ae.mode=Mr;break}Xe=0,ut=0}Ae.head&&(Ae.head.hcrc=Ae.flags>>9&1,Ae.head.done=!0),Ye.adler=Ae.check=0,Ae.mode=Ce;break;case W:for(;ut<32;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Ye.adler=Ae.check=li(Xe),Xe=0,ut=0,Ae.mode=te;case te:if(Ae.havedict===0)return Ye.next_out=vt,Ye.avail_out=Te,Ye.next_in=H,Ye.avail_in=St,Ae.hold=Xe,Ae.bits=ut,F;Ye.adler=Ae.check=1,Ae.mode=Ce;case Ce:if(Rt===A||Rt===v)break e;case Qe:if(Ae.last){Xe>>>=ut&7,ut-=ut&7,Ae.mode=Nt;break}for(;ut<3;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}switch(Ae.last=Xe&1,Xe>>>=1,ut-=1,Xe&3){case 0:Ae.mode=we;break;case 1:if(nn(Ae),Ae.mode=ct,Rt===v){Xe>>>=2,ut-=2;break e}break;case 2:Ae.mode=Ze;break;case 3:Ye.msg="invalid block type",Ae.mode=Mr}Xe>>>=2,ut-=2;break;case we:for(Xe>>>=ut&7,ut-=ut&7;ut<32;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}if((Xe&65535)!==(Xe>>>16^65535)){Ye.msg="invalid stored block lengths",Ae.mode=Mr;break}if(Ae.length=Xe&65535,Xe=0,ut=0,Ae.mode=De,Rt===v)break e;case De:Ae.mode=ze;case ze:if(ce=Ae.length,ce){if(ce>St&&(ce=St),ce>Te&&(ce=Te),ce===0)break e;r.arraySet(Et,Vt,H,ce,vt),St-=ce,H+=ce,Te-=ce,vt+=ce,Ae.length-=ce;break}Ae.mode=Ce;break;case Ze:for(;ut<14;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}if(Ae.nlen=(Xe&31)+257,Xe>>>=5,ut-=5,Ae.ndist=(Xe&31)+1,Xe>>>=5,ut-=5,Ae.ncode=(Xe&15)+4,Xe>>>=4,ut-=4,Ae.nlen>286||Ae.ndist>30){Ye.msg="too many length or distance symbols",Ae.mode=Mr;break}Ae.have=0,Ae.mode=tt;case tt:for(;Ae.have<Ae.ncode;){for(;ut<3;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Ae.lens[Lt[Ae.have++]]=Xe&7,Xe>>>=3,ut-=3}for(;Ae.have<19;)Ae.lens[Lt[Ae.have++]]=0;if(Ae.lencode=Ae.lendyn,Ae.lenbits=7,Ft={bits:Ae.lenbits},Ct=i(s,Ae.lens,0,19,Ae.lencode,0,Ae.work,Ft),Ae.lenbits=Ft.bits,Ct){Ye.msg="invalid code lengths set",Ae.mode=Mr;break}Ae.have=0,Ae.mode=rt;case rt:for(;Ae.have<Ae.nlen+Ae.ndist;){for(;he=Ae.lencode[Xe&(1<<Ae.lenbits)-1],ve=he>>>24,ae=he>>>16&255,Se=he&65535,!(ve<=ut);){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}if(Se<16)Xe>>>=ve,ut-=ve,Ae.lens[Ae.have++]=Se;else{if(Se===16){for(ht=ve+2;ut<ht;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}if(Xe>>>=ve,ut-=ve,Ae.have===0){Ye.msg="invalid bit length repeat",Ae.mode=Mr;break}Je=Ae.lens[Ae.have-1],ce=3+(Xe&3),Xe>>>=2,ut-=2}else if(Se===17){for(ht=ve+3;ut<ht;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Xe>>>=ve,ut-=ve,Je=0,ce=3+(Xe&7),Xe>>>=3,ut-=3}else{for(ht=ve+7;ut<ht;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Xe>>>=ve,ut-=ve,Je=0,ce=11+(Xe&127),Xe>>>=7,ut-=7}if(Ae.have+ce>Ae.nlen+Ae.ndist){Ye.msg="invalid bit length repeat",Ae.mode=Mr;break}for(;ce--;)Ae.lens[Ae.have++]=Je}}if(Ae.mode===Mr)break;if(Ae.lens[256]===0){Ye.msg="invalid code -- missing end-of-block",Ae.mode=Mr;break}if(Ae.lenbits=9,Ft={bits:Ae.lenbits},Ct=i(o,Ae.lens,0,Ae.nlen,Ae.lencode,0,Ae.work,Ft),Ae.lenbits=Ft.bits,Ct){Ye.msg="invalid literal/lengths set",Ae.mode=Mr;break}if(Ae.distbits=6,Ae.distcode=Ae.distdyn,Ft={bits:Ae.distbits},Ct=i(l,Ae.lens,Ae.nlen,Ae.ndist,Ae.distcode,0,Ae.work,Ft),Ae.distbits=Ft.bits,Ct){Ye.msg="invalid distances set",Ae.mode=Mr;break}if(Ae.mode=ct,Rt===v)break e;case ct:Ae.mode=bt;case bt:if(St>=6&&Te>=258){Ye.next_out=vt,Ye.avail_out=Te,Ye.next_in=H,Ye.avail_in=St,Ae.hold=Xe,Ae.bits=ut,n(Ye,ne),vt=Ye.next_out,Et=Ye.output,Te=Ye.avail_out,H=Ye.next_in,Vt=Ye.input,St=Ye.avail_in,Xe=Ae.hold,ut=Ae.bits,Ae.mode===Ce&&(Ae.back=-1);break}for(Ae.back=0;he=Ae.lencode[Xe&(1<<Ae.lenbits)-1],ve=he>>>24,ae=he>>>16&255,Se=he&65535,!(ve<=ut);){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}if(ae&&(ae&240)===0){for(g=ve,le=ae,xt=Se;he=Ae.lencode[xt+((Xe&(1<<g+le)-1)>>g)],ve=he>>>24,ae=he>>>16&255,Se=he&65535,!(g+ve<=ut);){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Xe>>>=g,ut-=g,Ae.back+=g}if(Xe>>>=ve,ut-=ve,Ae.back+=ve,Ae.length=Se,ae===0){Ae.mode=Jt;break}if(ae&32){Ae.back=-1,Ae.mode=Ce;break}if(ae&64){Ye.msg="invalid literal/length code",Ae.mode=Mr;break}Ae.extra=ae&15,Ae.mode=It;case It:if(Ae.extra){for(ht=Ae.extra;ut<ht;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Ae.length+=Xe&(1<<Ae.extra)-1,Xe>>>=Ae.extra,ut-=Ae.extra,Ae.back+=Ae.extra}Ae.was=Ae.length,Ae.mode=st;case st:for(;he=Ae.distcode[Xe&(1<<Ae.distbits)-1],ve=he>>>24,ae=he>>>16&255,Se=he&65535,!(ve<=ut);){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}if((ae&240)===0){for(g=ve,le=ae,xt=Se;he=Ae.distcode[xt+((Xe&(1<<g+le)-1)>>g)],ve=he>>>24,ae=he>>>16&255,Se=he&65535,!(g+ve<=ut);){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Xe>>>=g,ut-=g,Ae.back+=g}if(Xe>>>=ve,ut-=ve,Ae.back+=ve,ae&64){Ye.msg="invalid distance code",Ae.mode=Mr;break}Ae.offset=Se,Ae.extra=ae&15,Ae.mode=pr;case pr:if(Ae.extra){for(ht=Ae.extra;ut<ht;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}Ae.offset+=Xe&(1<<Ae.extra)-1,Xe>>>=Ae.extra,ut-=Ae.extra,Ae.back+=Ae.extra}if(Ae.offset>Ae.dmax){Ye.msg="invalid distance too far back",Ae.mode=Mr;break}Ae.mode=Qt;case Qt:if(Te===0)break e;if(ce=ne-Te,Ae.offset>ce){if(ce=Ae.offset-ce,ce>Ae.whave&&Ae.sane){Ye.msg="invalid distance too far back",Ae.mode=Mr;break}ce>Ae.wnext?(ce-=Ae.wnext,ye=Ae.wsize-ce):ye=Ae.wnext-ce,ce>Ae.length&&(ce=Ae.length),Le=Ae.window}else Le=Et,ye=vt-Ae.offset,ce=Ae.length;ce>Te&&(ce=Te),Te-=ce,Ae.length-=ce;do Et[vt++]=Le[ye++];while(--ce);Ae.length===0&&(Ae.mode=bt);break;case Jt:if(Te===0)break e;Et[vt++]=Ae.length,Te--,Ae.mode=bt;break;case Nt:if(Ae.wrap){for(;ut<32;){if(St===0)break e;
4561St--,Xe|=Vt[H++]<<ut,ut+=8}if(ne-=Te,Ye.total_out+=ne,Ae.total+=ne,ne&&(Ye.adler=Ae.check=Ae.flags?t(Ae.check,Et,ne,vt-ne):e(Ae.check,Et,ne,vt-ne)),ne=Te,(Ae.flags?Xe:li(Xe))!==Ae.check){Ye.msg="incorrect data check",Ae.mode=Mr;break}Xe=0,ut=0}Ae.mode=Ar;case Ar:if(Ae.wrap&&Ae.flags){for(;ut<32;){if(St===0)break e;St--,Xe+=Vt[H++]<<ut,ut+=8}if(Xe!==(Ae.total&4294967295)){Ye.msg="incorrect length check",Ae.mode=Mr;break}Xe=0,ut=0}Ae.mode=cn;case cn:Ct=I;break e;case Mr:Ct=U;break e;case _r:return $;case Gn:default:return N}return Ye.next_out=vt,Ye.avail_out=Te,Ye.next_in=H,Ye.avail_in=St,Ae.hold=Xe,Ae.bits=ut,(Ae.wsize||ne!==Ye.avail_out&&Ae.mode<Mr&&(Ae.mode<Nt||Rt!==f))&&gi(Ye,Ye.output,Ye.next_out,ne-Ye.avail_out),Z-=Ye.avail_in,ne-=Ye.avail_out,Ye.total_in+=Z,Ye.total_out+=ne,Ae.total+=ne,Ae.wrap&&ne&&(Ye.adler=Ae.check=Ae.flags?t(Ae.check,Et,ne,Ye.next_out-ne):e(Ae.check,Et,ne,Ye.next_out-ne)),Ye.data_type=Ae.bits+(Ae.last?64:0)+(Ae.mode===Ce?128:0)+(Ae.mode===ct||Ae.mode===De?256:0),(Z===0&&ne===0||Rt===f)&&Ct===T&&(Ct=V),Ct}function kt(Ye){if(!Ye||!Ye.state)return N;var Rt=Ye.state;return Rt.window&&(Rt.window=null),Ye.state=null,T}function Wt(Ye,Rt){var Ae;return!Ye||!Ye.state||(Ae=Ye.state,(Ae.wrap&2)===0)?N:(Ae.head=Rt,Rt.done=!1,T)}function cr(Ye,Rt){var Ae=Rt.length,Vt,Et,H;return!Ye||!Ye.state||(Vt=Ye.state,Vt.wrap!==0&&Vt.mode!==te)?N:Vt.mode===te&&(Et=1,Et=e(Et,Rt,Ae,0),Et!==Vt.check)?U:(H=gi(Ye,Rt,Ae,Ae),H?(Vt.mode=_r,$):(Vt.havedict=1,T))}return Ra.inflateReset=ri,Ra.inflateReset2=Hn,Ra.inflateResetKeep=mn,Ra.inflateInit=Qn,Ra.inflateInit2=Sn,Ra.inflate=Pe,Ra.inflateEnd=kt,Ra.inflateGetHeader=Wt,Ra.inflateSetDictionary=cr,Ra.inflateInfo="pako inflate (from Nodeca project)",Ra}var e1,RM;function H6(){return RM||(RM=1,e1={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}),e1}var t1,OM;function mge(){if(OM)return t1;OM=1;function r(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}return t1=r,t1}var DM;function _ge(){if(DM)return bd;DM=1;var r=gge(),e=cf(),t=j6(),n=H6(),i=Kw(),s=G6(),o=mge(),l=Object.prototype.toString;function f(T){if(!(this instanceof f))return new f(T);this.options=e.assign({chunkSize:16384,windowBits:0,to:""},T||{});var I=this.options;I.raw&&I.windowBits>=0&&I.windowBits<16&&(I.windowBits=-I.windowBits,I.windowBits===0&&(I.windowBits=-15)),I.windowBits>=0&&I.windowBits<16&&!(T&&T.windowBits)&&(I.windowBits+=32),I.windowBits>15&&I.windowBits<48&&(I.windowBits&15)===0&&(I.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var F=r.inflateInit2(this.strm,I.windowBits);if(F!==n.Z_OK)throw new Error(i[F]);if(this.header=new o,r.inflateGetHeader(this.strm,this.header),I.dictionary&&(typeof I.dictionary=="string"?I.dictionary=t.string2buf(I.dictionary):l.call(I.dictionary)==="[object ArrayBuffer]"&&(I.dictionary=new Uint8Array(I.dictionary)),I.raw&&(F=r.inflateSetDictionary(this.strm,I.dictionary),F!==n.Z_OK)))throw new Error(i[F])}f.prototype.push=function(T,I){var F=this.strm,N=this.options.chunkSize,U=this.options.dictionary,$,V,G,X,ue,K=!1;if(this.ended)return!1;V=I===~~I?I:I===!0?n.Z_FINISH:n.Z_NO_FLUSH,typeof T=="string"?F.input=t.binstring2buf(T):l.call(T)==="[object ArrayBuffer]"?F.input=new Uint8Array(T):F.input=T,F.next_in=0,F.avail_in=F.input.length;do{if(F.avail_out===0&&(F.output=new e.Buf8(N),F.next_out=0,F.avail_out=N),$=r.inflate(F,n.Z_NO_FLUSH),$===n.Z_NEED_DICT&&U&&($=r.inflateSetDictionary(this.strm,U)),$===n.Z_BUF_ERROR&&K===!0&&($=n.Z_OK,K=!1),$!==n.Z_STREAM_END&&$!==n.Z_OK)return this.onEnd($),this.ended=!0,!1;F.next_out&&(F.avail_out===0||$===n.Z_STREAM_END||F.avail_in===0&&(V===n.Z_FINISH||V===n.Z_SYNC_FLUSH))&&(this.options.to==="string"?(G=t.utf8border(F.output,F.next_out),X=F.next_out-G,ue=t.buf2string(F.output,G),F.next_out=X,F.avail_out=N-X,X&&e.arraySet(F.output,F.output,G,X,0),this.onData(ue)):this.onData(e.shrinkBuf(F.output,F.next_out))),F.avail_in===0&&F.avail_out===0&&(K=!0)}while((F.avail_in>0||F.avail_out===0)&&$!==n.Z_STREAM_END);return $===n.Z_STREAM_END&&(V=n.Z_FINISH),V===n.Z_FINISH?($=r.inflateEnd(this.strm),this.onEnd($),this.ended=!0,$===n.Z_OK):(V===n.Z_SYNC_FLUSH&&(this.onEnd(n.Z_OK),F.avail_out=0),!0)},f.prototype.onData=function(T){this.chunks.push(T)},f.prototype.onEnd=function(T){T===n.Z_OK&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=e.flattenChunks(this.chunks)),this.chunks=[],this.err=T,this.msg=this.strm.msg};function A(T,I){var F=new f(I);if(F.push(T,!0),F.err)throw F.msg||i[F.err];return F.result}function v(T,I){return I=I||{},I.raw=!0,A(T,I)}return bd.Inflate=f,bd.inflate=A,bd.inflateRaw=v,bd.ungzip=A,bd}var r1,FM;function yge(){if(FM)return r1;FM=1;var r=cf().assign,e=dge(),t=_ge(),n=H6(),i={};return r(i,e,t,n),r1=i,r1}var vge=yge();const xd=uh(vge),LM=[0],bge={getPointColor:{type:"accessor",value:[0,0,0,255]},pointSize:1,data:"",loader:U6,onTilesetLoad:{type:"function",value:r=>{}},onTileLoad:{type:"function",value:r=>{}},onTileUnload:{type:"function",value:r=>{}},onTileError:{type:"function",value:(r,e,t)=>{}},_getMeshColor:{type:"function",value:r=>[255,255,255]}};class Zw extends Ss{initializeState(){"onTileLoadFail"in this.props&&Zr.removed("onTileLoadFail","onTileError")(),this.state={layerMap:{},tileset3d:null,activeViewports:{},lastUpdatedViewports:null}}get isLoaded(){return!!(this.state?.tileset3d?.isLoaded()&&super.isLoaded)}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState({props:e,oldProps:t,changeFlags:n}){if(e.data&&e.data!==t.data&&this._loadTileset(e.data),n.viewportChanged){const{activeViewports:i}=this.state;Object.keys(i).length&&(this._updateTileset(i),this.state.lastUpdatedViewports=i,this.state.activeViewports={})}if(n.propsChanged){const{layerMap:i}=this.state;for(const s in i)i[s].needsUpdate=!0}}activateViewport(e){const{activeViewports:t,lastUpdatedViewports:n}=this.state;this.internalState.viewport=e,t[e.id]=e;const i=n?.[e.id];(!i||!e.equals(i))&&(this.setChangeFlags({viewportChanged:!0}),this.setNeedsUpdate())}getPickingInfo({info:e,sourceLayer:t}){const n=t&&t.props.tile;return e.picked&&(e.object=n),e.sourceTile=n,e}filterSubLayer({layer:e,viewport:t}){const{tile:n}=e.props,{id:i}=t;return n.selected&&n.viewportIds.includes(i)}_updateAutoHighlight(e){const t=e.sourceTile,n=this.state.layerMap[t?.id];n&&n.layer&&n.layer.updateAutoHighlight(e)}async _loadTileset(e){const{loadOptions:t={}}=this.props,n=this.props.loader||this.props.loaders,i=Array.isArray(n)?n[0]:n,s={loadOptions:{...t}};let o=e;if(i.preload){const A=await i.preload(e,t);A.url&&(o=A.url),A.headers&&(s.loadOptions.fetch={...s.loadOptions.fetch,headers:A.headers}),Object.assign(s,A)}const l=await Kc(o,i,s.loadOptions),f=new Bfe(l,{onTileLoad:this._onTileLoad.bind(this),onTileUnload:this._onTileUnload.bind(this),onTileError:this.props.onTileError,...s});this.setState({tileset3d:f,layerMap:{}}),this._updateTileset(this.state.activeViewports),this.props.onTilesetLoad(f)}_onTileLoad(e){const{lastUpdatedViewports:t}=this.state;this.props.onTileLoad(e),this._updateTileset(t),this.setNeedsUpdate()}_onTileUnload(e){delete this.state.layerMap[e.id],this.props.onTileUnload(e)}_updateTileset(e){if(!e)return;const{tileset3d:t}=this.state,{timeline:n}=this.context,i=Object.keys(e).length;!n||!i||!t||t.selectTiles(Object.values(e)).then(s=>{this.state.frameNumber!==s&&this.setState({frameNumber:s})})}_getSubLayer(e,t){if(!e.content)return null;switch(e.type){case qc.POINTCLOUD:return this._makePointCloudLayer(e,t);case qc.SCENEGRAPH:return this._make3DModelLayer(e);case qc.MESH:return this._makeSimpleMeshLayer(e,t);default:throw new Error(`Tile3DLayer: Failed to render layer of type ${e.content.type}`)}}_makePointCloudLayer(e,t){const{attributes:n,pointCount:i,constantRGBA:s,cartographicOrigin:o,modelMatrix:l}=e.content,{positions:f,normals:A,colors:v}=n;if(!f)return null;const T=t&&t.props.data||{header:{vertexCount:i},attributes:{POSITION:f,NORMAL:A,COLOR_0:v}},{pointSize:I,getPointColor:F}=this.props,N=this.getSubLayerClass("pointcloud",vg);return new N({pointSize:I}
4561,this.getSubLayerProps({id:"pointcloud"}),{id:`${this.id}-pointcloud-${e.id}`,tile:e,data:T,coordinateSystem:Qr.METER_OFFSETS,coordinateOrigin:o,modelMatrix:l,getColor:s||F,_offset:0})}_make3DModelLayer(e){const{gltf:t,instances:n,cartographicOrigin:i,modelMatrix:s}=e.content,o=this.getSubLayerClass("scenegraph",Bg);return new o({_lighting:"pbr"},this.getSubLayerProps({id:"scenegraph"}),{id:`${this.id}-scenegraph-${e.id}`,tile:e,data:n||LM,scenegraph:t,coordinateSystem:Qr.METER_OFFSETS,coordinateOrigin:i,modelMatrix:s,getTransformMatrix:l=>l.modelMatrix,getPosition:[0,0,0],_offset:0})}_makeSimpleMeshLayer(e,t){const n=e.content,{attributes:i,indices:s,modelMatrix:o,cartographicOrigin:l,coordinateSystem:f=Qr.METER_OFFSETS,material:A,featureIds:v}=n,{_getMeshColor:T}=this.props,I=t&&t.props.mesh||new Zs({topology:"triangle-list",attributes:xge(i),indices:s}),F=this.getSubLayerClass("mesh",Fw);return new F(this.getSubLayerProps({id:"mesh"}),{id:`${this.id}-mesh-${e.id}`,tile:e,mesh:I,data:LM,getColor:T(e),pbrMaterial:A,modelMatrix:o,coordinateOrigin:l,coordinateSystem:f,featureIds:v,_offset:0})}renderLayers(){const{tileset3d:e,layerMap:t}=this.state;return e?e.tiles.map(n=>{const i=t[n.id]=t[n.id]||{tile:n};let{layer:s}=i;return n.selected&&(s?i.needsUpdate&&(s=this._getSubLayer(n,s),i.needsUpdate=!1):s=this._getSubLayer(n)),i.layer=s,s}).filter(Boolean):null}}Zw.defaultProps=bge;Zw.layerName="Tile3DLayer";function xge(r){const e={};return e.positions={...r.positions,value:new Float32Array(r.positions.value)},r.normals&&(e.normals=r.normals),r.texCoords&&(e.texCoords=r.texCoords),r.colors&&(e.colors=r.colors),r.uvRegions&&(e.uvRegions=r.uvRegions),e}const wge="4.2.4",W6={dataType:null,batchType:null,name:"Terrain",id:"terrain",module:"terrain",version:wge,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}}};({...W6});const kM=[1],Tge={...nu.defaultProps,elevationData:d_,texture:{...d_,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:[W6]};function NM(r){return Array.isArray(r)?r.join(";"):r||""}class Yw extends Ss{updateState({props:e,oldProps:t}){const n=e.elevationData!==t.elevationData;if(n){const{elevationData:s}=e,o=s&&(Array.isArray(s)||s.includes("{x}")&&s.includes("{y}"));this.setState({isTiled:o})}const i=n||e.meshMaxError!==t.meshMaxError||e.elevationDecoder!==t.elevationDecoder||e.bounds!==t.bounds;if(!this.state.isTiled&&i){const s=this.loadTerrain(e);this.setState({terrain:s})}e.workerUrl&&Zr.removed("workerUrl","loadOptions.terrain.workerUrl")()}loadTerrain({elevationData:e,bounds:t,elevationDecoder:n,meshMaxError:i,signal:s}){if(!e)return null;let o=this.getLoadOptions();o={...o,terrain:{skirtHeight:this.state.isTiled?i*2:0,...o?.terrain,bounds:t,meshMaxError:i,elevationDecoder:n}};const{fetch:l}=this.props;return l(e,{propName:"elevationData",layer:this,loadOptions:o,signal:s})}getTiledTerrainData(e){const{elevationData:t,fetch:n,texture:i,elevationDecoder:s,meshMaxError:o}=this.props,{viewport:l}=this.context,f=oh(t,e),A=i&&oh(i,e),{signal:v}=e;let T=[0,0],I=[0,0];if(l.isGeospatial){const $=e.bbox;T=l.projectFlat([$.west,$.south]),I=l.projectFlat([$.east,$.north])}else{const $=e.bbox;T=[$.left,$.bottom],I=[$.right,$.top]}const F=[T[0],T[1],I[0],I[1]],N=this.loadTerrain({elevationData:f,bounds:F,elevationDecoder:s,meshMaxError:o,signal:v}),U=A?n(A,{propName:"texture",layer:this,loaders:[],signal:v}).catch($=>null):Promise.resolve(null);return Promise.all([N,U])}renderSubLayers(e){const t=this.getSubLayerClass("mesh",ah),{color:n,wireframe:i,material:s}=this.props,{data:o}=e;if(!o)return null;const[l,f]=o;return new t(e,{data:kM,mesh:l,texture:f,_instanced:!1,coordinateSystem:Qr.CARTESIAN,getPosition:A=>[0,0,0],getColor:n,wireframe:i,material:s})}onViewportLoad(e){if(!e)return;const{zRange:t}=this.state,n=e.map(o=>
4561o.content).filter(Boolean).map(o=>o[0].header.boundingBox.map(f=>f[2]));if(n.length===0)return;const i=Math.min(...n.map(o=>o[0])),s=Math.max(...n.map(o=>o[1]));(!t||i<t[0]||s>t[1])&&this.setState({zRange:[i,s]})}renderLayers(){const{color:e,material:t,elevationData:n,texture:i,wireframe:s,meshMaxError:o,elevationDecoder:l,tileSize:f,maxZoom:A,minZoom:v,extent:T,maxRequests:I,onTileLoad:F,onTileUnload:N,onTileError:U,maxCacheSize:$,maxCacheByteSize:V,refinementStrategy:G}=this.props;if(this.state.isTiled)return new nu(this.getSubLayerProps({id:"tiles"}),{getTileData:this.getTiledTerrainData.bind(this),renderSubLayers:this.renderSubLayers.bind(this),updateTriggers:{getTileData:{elevationData:NM(n),texture:NM(i),meshMaxError:o,elevationDecoder:l}},onViewportLoad:this.onViewportLoad.bind(this),zRange:this.state.zRange||null,tileSize:f,maxZoom:A,minZoom:v,extent:T,maxRequests:I,onTileLoad:F,onTileUnload:N,onTileError:U,maxCacheSize:$,maxCacheByteSize:V,refinementStrategy:G});if(!n)return null;const X=this.getSubLayerClass("mesh",ah);return new X(this.getSubLayerProps({id:"mesh"}),{data:kM,mesh:this.state.terrain,texture:i,_instanced:!1,getPosition:ue=>[0,0,0],getColor:e,material:t,wireframe:s})}}Yw.defaultProps=Tge;Yw.layerName="TerrainLayer";const Ege={clipBounds:[0,0,1,1],clipByInstance:void 0},$6=` 4562uniform clipUniforms { 4563 vec4 bounds; 4564} clip; 4565 4566bool clip_isInBounds(vec2 position) { 4567 return position.x >= clip.bounds[0] && position.y >= clip.bounds[1] && position.x < clip.bounds[2] && position.y < clip.bounds[3]; 4568} 4569`,Cge={name:"clip",vs:$6,uniformTypes:{bounds:"vec4<f32>"}},Sge={"vs:#decl":` 4570out float clip_isVisible; 4571`,"vs:DECKGL_FILTER_GL_POSITION":` 4572 clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy)); 4573`,"fs:#decl":` 4574in float clip_isVisible; 4575`,"fs:DECKGL_FILTER_COLOR":` 4576 if (clip_isVisible < 0.5) discard; 4577`},Ige={name:"clip",fs:$6,uniformTypes:{bounds:"vec4<f32>"}},Bge={"vs:#decl":` 4578out vec2 clip_commonPosition; 4579`,"vs:DECKGL_FILTER_GL_POSITION":` 4580 clip_commonPosition = geometry.position.xy; 4581`,"fs:#decl":` 4582in vec2 clip_commonPosition; 4583`,"fs:DECKGL_FILTER_COLOR":` 4584 if (!clip_isInBounds(clip_commonPosition)) discard; 4585`};class uy extends U_{getShaders(){let e="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(e=!!this.props.clipByInstance),this.state.clipByInstance=e,e?{modules:[Cge],inject:Sge}:{modules:[Ige],inject:Bge}}draw(){const{clipBounds:e}=this.props,t={};if(this.state.clipByInstance)t.bounds=e;else{const n=this.projectPosition([e[0],e[1],0]),i=this.projectPosition([e[2],e[3],0]);t.bounds=[Math.min(n[0],i[0]),Math.min(n[1],i[1]),Math.max(n[0],i[0]),Math.max(n[1],i[1])]}this.setShaderModuleProps({clip:t})}}uy.defaultProps=Ege;uy.extensionName="ClipExtension";const Pge=` 4586in float collisionPriorities; 4587 4588uniform sampler2D collision_texture; 4589 4590uniform collisionUniforms { 4591 bool sort; 4592 bool enabled; 4593} collision; 4594 4595vec2 collision_getCoords(vec4 position) { 4596 vec4 collision_clipspace = project_common_position_to_clipspace(position); 4597 return (1.0 + collision_clipspace.xy / collision_clipspace.w) / 2.0; 4598} 4599 4600float collision_match(vec2 tex, vec3 pickingColor) { 4601 vec4 collision_pickingColor = texture(collision_texture, tex); 4602 float delta = dot(abs(collision_pickingColor.rgb - pickingColor), vec3(1.0)); 4603 float e = 0.001; 4604 return step(delta, e); 4605} 4606 4607float collision_isVisible(vec2 texCoords, vec3 pickingColor) { 4608 if (!collision.enabled) { 4609 return 1.0; 4610 } 4611 4612 // Visibility test, sample area of 5x5 pixels in order to fade in/out. 4613 // Due to the locality, the lookups will be cached 4614 // This reduces the flicker present when objects are shown/hidden 4615 const int N = 2; 4616 float accumulator = 0.0; 4617 vec2 step = vec2(1.0 / project.viewportSize); 4618 4619 const float floatN = float(N); 4620 vec2 delta = -floatN * step; 4621 for(int i = -N; i <= N; i++) { 4622 delta.x = -step.x * floatN; 4623 for(int j = -N; j <= N; j++) { 4624 accumulator += collision_match(texCoords + delta, pickingColor); 4625 delta.x += step.x; 4626 } 4627 delta.y += step.y; 4628 } 4629 4630 float W = 2.0 * floatN + 1.0; 4631 return pow(accumulator / (W * W), 2.2); 4632} 4633`,Mge={"vs:#decl":` 4634 float collision_fade = 1.0; 4635`,"vs:DECKGL_FILTER_GL_POSITION":` 4636 if (collision.sort) { 4637 float collisionPriority = collisionPriorities; 4638 position.z = -0.001 * collisionPriority * position.w;
4638 // Support range -1000 -> 1000 4639 } 4640 4641 if (collision.enabled) { 4642 vec4 collision_common_position = project_position(vec4(geometry.worldPosition, 1.0)); 4643 vec2 collision_texCoords = collision_getCoords(collision_common_position); 4644 collision_fade = collision_isVisible(collision_texCoords, geometry.pickingColor / 255.0); 4645 if (collision_fade < 0.0001) { 4646 // Position outside clip space bounds to discard 4647 position = vec4(0.0, 0.0, 2.0, 1.0); 4648 } 4649 } 4650 `,"vs:DECKGL_FILTER_COLOR":` 4651 color.a *= collision_fade; 4652 `},Rge=r=>{if(!r||!("dummyCollisionMap"in r))return{};const{enabled:e,collisionFBO:t,drawToCollisionMap:n,dummyCollisionMap:i}=r;return{enabled:e&&!n,sort:!!n,collision_texture:!n&&t?t.colorAttachments[0]:i}},Oge={name:"collision",dependencies:[O_],vs:Pge,inject:Mge,getUniforms:Rge,uniformTypes:{sort:"i32",enabled:"i32"}};class Dge extends D_{renderCollisionMap(e,t){const i=[0,0,0,0],s=[1,1,e.width-2,e.height-2];this.render({...t,clearColor:i,scissorRect:s,target:e,pass:"collision"})}getLayerParameters(e,t,n){return{...e.props.parameters,blend:!1,depthWriteEnabled:!0,depthCompare:"less-equal"}}getShaderModuleProps(){return{collision:{drawToCollisionMap:!0},picking:{isActive:1,isAttribute:!1},lighting:{enabled:!1}}}}const n1=2;class Fge{constructor(){this.id="collision-filter-effect",this.props=null,this.useInPicking=!0,this.order=1,this.channels={},this.collisionFBOs={}}setup(e){this.context=e;const{device:t}=e;this.dummyCollisionMap=t.createTexture({width:1,height:1}),this.collisionFilterPass=new Dge(t,{id:"default-collision-filter"})}preRender({effects:e,layers:t,layerFilter:n,viewports:i,onViewportActive:s,views:o,isPicking:l,preRenderStats:f={}}){const{device:A}=this.context;if(l)return;const v=t.filter(({props:{visible:$,collisionEnabled:V}})=>$&&V);if(v.length===0){this.channels={};return}const T=e?.filter($=>$.useInPicking&&f[$.id]),I=f["mask-effect"]?.didRender,F=this._groupByCollisionGroup(A,v),N=i[0],U=!this.lastViewport||!this.lastViewport.equals(N)||I;for(const $ in F){const V=this.collisionFBOs[$],G=F[$],[X,ue]=A.canvasContext.getPixelSize();V.resize({width:X/n1,height:ue/n1}),this._render(G,{effects:T,layerFilter:n,onViewportActive:s,views:o,viewport:N,viewportChanged:U})}}_render(e,{effects:t,layerFilter:n,onViewportActive:i,views:s,viewport:o,viewportChanged:l}){const{collisionGroup:f}=e,A=this.channels[f];if(!A)return;const v=l||e===A||!rs(A.layers,e.layers,1)||e.layerBounds.some((T,I)=>!ga(T,A.layerBounds[I]))||e.allLayersLoaded!==A.allLayersLoaded||e.layers.some(T=>T.props.transitions);if(this.channels[f]=e,v){this.lastViewport=o;const T=this.collisionFBOs[f];this.collisionFilterPass.renderCollisionMap(T,{pass:"collision-filter",isPicking:!0,layers:e.layers,effects:t,layerFilter:n,viewports:o?[o]:[],onViewportActive:i,views:s,shaderModuleProps:{collision:{enabled:!0,dummyCollisionMap:this.dummyCollisionMap},project:{devicePixelRatio:T.device.canvasContext.getDevicePixelRatio()/n1}}})}}_groupByCollisionGroup(e,t){const n={};for(const i of t){const s=i.props.collisionGroup;let o=n[s];o||(o={collisionGroup:s,layers:[],layerBounds:[],allLayersLoaded:!0},n[s]=o),o.layers.push(i),o.layerBounds.push(i.getBounds()),i.isLoaded||(o.allLayersLoaded=!1)}for(const i of Object.keys(n))this.collisionFBOs[i]||this.createFBO(e,i),this.channels[i]||(this.channels[i]=n[i]);for(const i of Object.keys(this.collisionFBOs))n[i]||this.destroyFBO(i);return n}getShaderModuleProps(e){const{collisionGroup:t,collisionEnabled:n}=e.props,{collisionFBOs:i,dummyCollisionMap:s}=this,o=i[t];return{collision:{enabled:n&&!!o,collisionFBO:o,dummyCollisionMap:s}}}cleanup(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(const e of Object.keys(this.collisionFBOs))this.destroyFBO(e);this.collisionFBOs={},this.lastViewport=void 0}createFBO(e,t){const{width:n,height:i}=e.gl.canvas,s=e.createTexture({format:"rgba8unorm",width:n,height:i,sampler:{minFilter:"nearest",magFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),o=e.createTexture({format:"depth16unorm",width:n,height:i,mipmaps:!1});
4652this.collisionFBOs[t]=e.createFramebuffer({id:`collision-${t}`,width:n,height:i,colorAttachments:[s],depthStencilAttachment:o})}destroyFBO(e){const t=this.collisionFBOs[e];t.colorAttachments[0]?.destroy(),t.depthStencilAttachment?.destroy(),t.destroy(),delete this.collisionFBOs[e]}}const Lge={getCollisionPriority:{type:"accessor",value:0},collisionEnabled:!0,collisionGroup:{type:"string",value:"default"},collisionTestProps:{}};class Qw extends U_{getShaders(){return{modules:[Oge]}}draw({shaderModuleProps:e}){e.collision?.drawToCollisionMap&&(this.props=this.clone(this.props.collisionTestProps).props)}initializeState(e,t){if(this.getAttributeManager()===null)return;this.context.deck?._addDefaultEffect(new Fge),this.getAttributeManager().add({collisionPriorities:{size:1,stepMode:"dynamic",accessor:"getCollisionPriority"}})}getNeedsPickingBuffer(){return this.props.collisionEnabled}}Qw.defaultProps=Lge;Qw.extensionName="CollisionFilterExtension";function F2(r,e){const t=e?.globalFeatureId;return t!==void 0?kge(r,t):Nge(r,e?.type)}function kge(r,e){const t=X6(r);for(const n of t){let i=0,s=n.featureIds.value[0];for(let o=0;o<n.featureIds.value.length;o++){const l=n.featureIds.value[o];if(l!==s){if(e===n.globalFeatureIds.value[i])return b_(n,i,o);i=o,s=l}}if(e===n.globalFeatureIds.value[i])return b_(n,i,n.featureIds.value.length)}throw new Error(`featureId:${e} not found`)}function Nge(r,e){const t=X6(r);return zge(t)}function Uge(r,e,t){switch(r.type){case"Point":return Hge(r,e,t);case"LineString":return Gge(r,e,t);case"Polygon":return q6(r,e,t);default:const n=r;throw new Error(`Unsupported geometry type: ${n?.type}`)}}function X6(r,e){const t=[];return r.points&&(r.points.type="Point",t.push(r.points)),r.lines&&(r.lines.type="LineString",t.push(r.lines)),r.polygons&&(r.polygons.type="Polygon",t.push(r.polygons)),t}function zge(r){const e=[];for(const t of r){if(t.featureIds.value.length===0)continue;let n=0,i=t.featureIds.value[0];for(let s=0;s<t.featureIds.value.length;s++){const o=t.featureIds.value[s];o!==i&&(e.push(b_(t,n,s)),n=s,i=o)}e.push(b_(t,n,t.featureIds.value.length))}return e}function b_(r,e,t){const n=Uge(r,e,t),i=jge(r,e),s=Vge(r,e);return{type:"Feature",geometry:n,properties:i,...s}}function Vge(r,e=0,t){return r.fields&&r.fields[r.featureIds.value[e]]}function jge(r,e=0,t){const n=Object.assign({},r.properties[r.featureIds.value[e]]);for(const i in r.numericProps)n[i]=r.numericProps[i].value[e];return n}function q6(r,e=-1/0,t=1/0){const{positions:n}=r,i=r.polygonIndices.value.filter(f=>f>=e&&f<=t),s=r.primitivePolygonIndices.value.filter(f=>f>=e&&f<=t);if(!(i.length>2)){const f=[];for(let A=0;A<s.length-1;A++){const v=s[A],T=s[A+1],I=x_(n,v,T);f.push(I)}return{type:"Polygon",coordinates:f}}const l=[];for(let f=0;f<i.length-1;f++){const A=i[f],v=i[f+1],T=q6(r,A,v).coordinates;l.push(T)}return{type:"MultiPolygon",coordinates:l}}function Gge(r,e=-1/0,t=1/0){const{positions:n}=r,i=r.pathIndices.value.filter(l=>l>=e&&l<=t);if(!(i.length>2))return{type:"LineString",coordinates:x_(n,i[0],i[1])};const o=[];for(let l=0;l<i.length-1;l++){const f=x_(n,i[l],i[l+1]);o.push(f)}return{type:"MultiLineString",coordinates:o}}function Hge(r,e,t){const{positions:n}=r,i=x_(n,e,t);return i.length>1?{type:"MultiPoint",coordinates:i}:{type:"Point",coordinates:i[0]}}function x_(r,e,t){e=e||0,t=t||r.value.length/r.size;const n=[];for(let i=e;i<t;i++){const s=Array();for(let o=i*r.size;o<(i+1)*r.size;o++)s.push(Number(r.value[o]));n.push(s)}return n}var em={};var UM;function Wge(){return UM||(UM=1,em.read=function(r,e,t,n,i){var s,o,l=i*8-n-1,f=(1<<l)-1,A=f>>1,v=-7,T=t?i-1:0,I=t?-1:1,F=r[e+T];for(T+=I,s=F&(1<<-v)-1,F>>=-v,v+=l;v>0;s=s*256+r[e+T],T+=I,v-=8);for(o=s&(1<<-v)-1,s>>=-v,v+=n;v>0;o=o*256+r[e+T],T+=I,v-=8);if(s===0)s=1-A;else{if(s===f)return o?NaN:(F?-1:1)*(1/0);o=o+Math.pow(2,n),s=s-A}return(F?-1:1)*o*Math.pow(2,s-n)},em.write=function(r,e,t,n,i,s){var o,l,f,A=s*8-i-1,v=(1<<A)-1,T=v>>1,I=i===23?Math.pow(2,-24)-Math.pow(2,-77):0,F=n?0:s-1,N=n?1:-1,U=e<0||e===0&&1/e<0?1:0;for(e=Math.abs(e),isNaN(e)||e===1/0?(l=isNaN(e)?1:0,o=v):(o=Math.floor(Math.log(e)/Math.LN2),e*(f=Math.pow(2,-o))<1&&(o--,f*=2),o+T>=1?e+=I/f:e+=I*Math.pow(2,1-T),e*f>=2&&(o++,f/=2),o+T>=v?(l=0,o=v):o+T>=1?(l=(e*f-1)*Math.pow(2,i),o=o+T):(l=e*Math.pow(2,T-1)*Math.pow(2,i),o=0));i>=8;r[t+F]=l&255,F+=N,l/=256,i-=8);for(o=o<<i|l,A+=i;A>0;r[t+F]=o&255,F+=N,o/=256,A-=8);r[t+F-N]|=U*128}),em}var i1,zM;function $ge(){if(zM)return i1;zM=1,i1=e;var r=Wge();function e(W){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(W)?W:new
vendor: 5,383 bytes, line 4652
4652Uint8Array(W||0),this.pos=0,this.type=0,this.length=this.buf.length}e.Varint=0,e.Fixed64=1,e.Bytes=2,e.Fixed32=5;var t=65536*65536,n=1/t,i=12,s=typeof TextDecoder>"u"?null:new TextDecoder("utf-8");e.prototype={destroy:function(){this.buf=null},readFields:function(W,te,Ce){for(Ce=Ce||this.length;this.pos<Ce;){var Qe=this.readVarint(),we=Qe>>3,De=this.pos;this.type=Qe&7,W(we,te,this),this.pos===De&&this.skip(Qe)}return te},readMessage:function(W,te){return this.readFields(W,te,this.readVarint()+this.pos)},readFixed32:function(){var W=se(this.buf,this.pos);return this.pos+=4,W},readSFixed32:function(){var W=Ue(this.buf,this.pos);return this.pos+=4,W},readFixed64:function(){var W=se(this.buf,this.pos)+se(this.buf,this.pos+4)*t;return this.pos+=8,W},readSFixed64:function(){var W=se(this.buf,this.pos)+Ue(this.buf,this.pos+4)*t;return this.pos+=8,W},readFloat:function(){var W=r.read(this.buf,this.pos,!0,23,4);return this.pos+=4,W},readDouble:function(){var W=r.read(this.buf,this.pos,!0,52,8);return this.pos+=8,W},readVarint:function(W){var te=this.buf,Ce,Qe;return Qe=te[this.pos++],Ce=Qe&127,Qe<128||(Qe=te[this.pos++],Ce|=(Qe&127)<<7,Qe<128)||(Qe=te[this.pos++],Ce|=(Qe&127)<<14,Qe<128)||(Qe=te[this.pos++],Ce|=(Qe&127)<<21,Qe<128)?Ce:(Qe=te[this.pos],Ce|=(Qe&15)<<28,o(Ce,W,this))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var W=this.readVarint();return W%2===1?(W+1)/-2:W/2},readBoolean:function(){return!!this.readVarint()},readString:function(){var W=this.readVarint()+this.pos,te=this.pos;return this.pos=W,W-te>=i&&s?me(this.buf,te,W):de(this.buf,te,W)},readBytes:function(){var W=this.readVarint()+this.pos,te=this.buf.subarray(this.pos,W);return this.pos=W,te},readPackedVarint:function(W,te){if(this.type!==e.Bytes)return W.push(this.readVarint(te));var Ce=l(this);for(W=W||[];this.pos<Ce;)W.push(this.readVarint(te));return W},readPackedSVarint:function(W){if(this.type!==e.Bytes)return W.push(this.readSVarint());var te=l(this);for(W=W||[];this.pos<te;)W.push(this.readSVarint());return W},readPackedBoolean:function(W){if(this.type!==e.Bytes)return W.push(this.readBoolean());var te=l(this);for(W=W||[];this.pos<te;)W.push(this.readBoolean());return W},readPackedFloat:function(W){if(this.type!==e.Bytes)return W.push(this.readFloat());var te=l(this);for(W=W||[];this.pos<te;)W.push(this.readFloat());return W},readPackedDouble:function(W){if(this.type!==e.Bytes)return W.push(this.readDouble());var te=l(this);for(W=W||[];this.pos<te;)W.push(this.readDouble());return W},readPackedFixed32:function(W){if(this.type!==e.Bytes)return W.push(this.readFixed32());var te=l(this);for(W=W||[];this.pos<te;)W.push(this.readFixed32());return W},readPackedSFixed32:function(W){if(this.type!==e.Bytes)return W.push(this.readSFixed32());var te=l(this);for(W=W||[];this.pos<te;)W.push(this.readSFixed32());return W},readPackedFixed64:function(W){if(this.type!==e.Bytes)return W.push(this.readFixed64());var te=l(this);for(W=W||[];this.pos<te;)W.push(this.readFixed64());return W},readPackedSFixed64:function(W){if(this.type!==e.Bytes)return W.push(this.readSFixed64());var te=l(this);for(W=W||[];this.pos<te;)W.push(this.readSFixed64());return W},skip:function(W){var te=W&7;if(te===e.Varint)for(;this.buf[this.pos++]>127;);else if(te===e.Bytes)this.pos=this.readVarint()+this.pos;else if(te===e.Fixed32)this.pos+=4;else if(te===e.Fixed64)this.pos+=8;else throw new Error("Unimplemented type: "+te)},writeTag:function(W,te){this.writeVarint(W<<3|te)},realloc:function(W){for(var te=this.length||16;te<this.pos+W;)te*=2;if(te!==this.length){var Ce=new Uint8Array(te);Ce.set(this.buf),this.buf=Ce,this.length=te}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(W){this.realloc(4),Ee(this.buf,W,this.pos),this.pos+=4},writeSFixed32:function(W){this.realloc(4),Ee(this.buf,W,this.pos),this.pos+=4},writeFixed64:function(W){this.realloc(8),Ee(this.buf,W&-1,this.pos),Ee(this.buf,Math.floor(W*n),this.pos+4),this.pos+=8},writeSFixed64:function(W){this.realloc(8),Ee(this.buf,W&-1,this.pos),Ee(this.buf,Math.floor(W*n),this.pos+4),this.pos+=8},writeVarint:function(W){if(W=+W||0,W>268435455||W<0){A(W,this);return}this.realloc(4),this.buf[this.pos++]=W&127|(W>127?128:0),!(W<=127)&&(this.buf[this.pos++]=(W>>>=7)&127|(W>127?128:0),!(W<=127)&&(this.buf[this.pos++]=(W>>>=7)&127|(W>127?128:0),!(W<=127)&&(this.buf[this.pos++]=W>>>7&127)))},writeSVarint:function(W){this.writeVarint(W<0?-W*2-1:W*2)},writeBoolean:function(W){this.writeVarint(!!W)},writeString:function(W){W=String(W),this.realloc(W.length*4),this.pos++;var te=this.pos;this.pos=pe(this.buf,W,this.pos);var Ce=this.pos-te;Ce>=128&&I(te,Ce,this),this.pos=te-1,this.writeVarint(Ce),this.pos+=Ce},writeFloat:function(W){this.realloc(4),r.write(this.buf,W,this.pos,!0,23,4),this.pos+=4},writeDouble:function(W){this.realloc(8),r.write(this.buf,W,this.pos,!0,52,8),this.pos+=8},writeBytes:function(W){var te=W.length;this.writeVarint(te),this.realloc(te);for(var Ce=0;Ce<te;Ce++)this.buf[this.pos++]=W[Ce]},writeRawMessage:function(W,te){this.pos++;var Ce=this.pos;W(te,this);var Qe=this.pos-Ce;Qe>=128&&I(Ce,Qe,this),this.pos=Ce-1,this.writeVarint(Qe),this.pos+=Qe},writeMessage:function(W,te,Ce){this.writeTag(W,e.Bytes),this.writeRawMessage(te,Ce)},writePackedVarint:function(W,te){te.length&&this.writeMessage(W,F,te)}
vendor: 5,881 bytes, line 4652
4652,writePackedSVarint:function(W,te){te.length&&this.writeMessage(W,N,te)},writePackedBoolean:function(W,te){te.length&&this.writeMessage(W,V,te)},writePackedFloat:function(W,te){te.length&&this.writeMessage(W,U,te)},writePackedDouble:function(W,te){te.length&&this.writeMessage(W,$,te)},writePackedFixed32:function(W,te){te.length&&this.writeMessage(W,G,te)},writePackedSFixed32:function(W,te){te.length&&this.writeMessage(W,X,te)},writePackedFixed64:function(W,te){te.length&&this.writeMessage(W,ue,te)},writePackedSFixed64:function(W,te){te.length&&this.writeMessage(W,K,te)},writeBytesField:function(W,te){this.writeTag(W,e.Bytes),this.writeBytes(te)},writeFixed32Field:function(W,te){this.writeTag(W,e.Fixed32),this.writeFixed32(te)},writeSFixed32Field:function(W,te){this.writeTag(W,e.Fixed32),this.writeSFixed32(te)},writeFixed64Field:function(W,te){this.writeTag(W,e.Fixed64),this.writeFixed64(te)},writeSFixed64Field:function(W,te){this.writeTag(W,e.Fixed64),this.writeSFixed64(te)},writeVarintField:function(W,te){this.writeTag(W,e.Varint),this.writeVarint(te)},writeSVarintField:function(W,te){this.writeTag(W,e.Varint),this.writeSVarint(te)},writeStringField:function(W,te){this.writeTag(W,e.Bytes),this.writeString(te)},writeFloatField:function(W,te){this.writeTag(W,e.Fixed32),this.writeFloat(te)},writeDoubleField:function(W,te){this.writeTag(W,e.Fixed64),this.writeDouble(te)},writeBooleanField:function(W,te){this.writeVarintField(W,!!te)}};function o(W,te,Ce){var Qe=Ce.buf,we,De;if(De=Qe[Ce.pos++],we=(De&112)>>4,De<128||(De=Qe[Ce.pos++],we|=(De&127)<<3,De<128)||(De=Qe[Ce.pos++],we|=(De&127)<<10,De<128)||(De=Qe[Ce.pos++],we|=(De&127)<<17,De<128)||(De=Qe[Ce.pos++],we|=(De&127)<<24,De<128)||(De=Qe[Ce.pos++],we|=(De&1)<<31,De<128))return f(W,we,te);throw new Error("Expected varint not more than 10 bytes")}function l(W){return W.type===e.Bytes?W.readVarint()+W.pos:W.pos+1}function f(W,te,Ce){return Ce?te*4294967296+(W>>>0):(te>>>0)*4294967296+(W>>>0)}function A(W,te){var Ce,Qe;if(W>=0?(Ce=W%4294967296|0,Qe=W/4294967296|0):(Ce=~(-W%4294967296),Qe=~(-W/4294967296),Ce^4294967295?Ce=Ce+1|0:(Ce=0,Qe=Qe+1|0)),W>=18446744073709552e3||W<-18446744073709552e3)throw new Error("Given varint doesn't fit into 10 bytes");te.realloc(10),v(Ce,Qe,te),T(Qe,te)}function v(W,te,Ce){Ce.buf[Ce.pos++]=W&127|128,W>>>=7,Ce.buf[Ce.pos++]=W&127|128,W>>>=7,Ce.buf[Ce.pos++]=W&127|128,W>>>=7,Ce.buf[Ce.pos++]=W&127|128,W>>>=7,Ce.buf[Ce.pos]=W&127}function T(W,te){var Ce=(W&7)<<4;te.buf[te.pos++]|=Ce|((W>>>=3)?128:0),W&&(te.buf[te.pos++]=W&127|((W>>>=7)?128:0),W&&(te.buf[te.pos++]=W&127|((W>>>=7)?128:0),W&&(te.buf[te.pos++]=W&127|((W>>>=7)?128:0),W&&(te.buf[te.pos++]=W&127|((W>>>=7)?128:0),W&&(te.buf[te.pos++]=W&127)))))}function I(W,te,Ce){var Qe=te<=16383?1:te<=2097151?2:te<=268435455?3:Math.floor(Math.log(te)/(Math.LN2*7));Ce.realloc(Qe);for(var we=Ce.pos-1;we>=W;we--)Ce.buf[we+Qe]=Ce.buf[we]}function F(W,te){for(var Ce=0;Ce<W.length;Ce++)te.writeVarint(W[Ce])}function N(W,te){for(var Ce=0;Ce<W.length;Ce++)te.writeSVarint(W[Ce])}function U(W,te){for(var Ce=0;Ce<W.length;Ce++)te.writeFloat(W[Ce])}function $(W,te){for(var Ce=0;Ce<W.length;Ce++)te.writeDouble(W[Ce])}function V(W,te){for(var Ce=0;Ce<W.length;Ce++)te.writeBoolean(W[Ce])}function G(W,te){for(var Ce=0;Ce<W.length;Ce++)te.writeFixed32(W[Ce])}function X(W,te){for(var Ce=0;Ce<W.length;Ce++)te.writeSFixed32(W[Ce])}function ue(W,te){for(var Ce=0;Ce<W.length;Ce++)te.writeFixed64(W[Ce])}function K(W,te){for(var Ce=0;Ce<W.length;Ce++)te.writeSFixed64(W[Ce])}function se(W,te){return(W[te]|W[te+1]<<8|W[te+2]<<16)+W[te+3]*16777216}function Ee(W,te,Ce){W[Ce]=te,W[Ce+1]=te>>>8,W[Ce+2]=te>>>16,W[Ce+3]=te>>>24}function Ue(W,te){return(W[te]|W[te+1]<<8|W[te+2]<<16)+(W[te+3]<<24)}function de(W,te,Ce){for(var Qe="",we=te;we<Ce;){var De=W[we],ze=null,Ze=De>239?4:De>223?3:De>191?2:1;if(we+Ze>Ce)break;var tt,rt,ct;Ze===1?De<128&&(ze=De):Ze===2?(tt=W[we+1],(tt&192)===128&&(ze=(De&31)<<6|tt&63,ze<=127&&(ze=null))):Ze===3?(tt=W[we+1],rt=W[we+2],(tt&192)===128&&(rt&192)===128&&(ze=(De&15)<<12|(tt&63)<<6|rt&63,(ze<=2047||ze>=55296&&ze<=57343)&&(ze=null))):Ze===4&&(tt=W[we+1],rt=W[we+2],ct=W[we+3],(tt&192)===128&&(rt&192)===128&&(ct&192)===128&&(ze=(De&15)<<18|(tt&63)<<12|(rt&63)<<6|ct&63,(ze<=65535||ze>=1114112)&&(ze=null))),ze===null?(ze=65533,Ze=1):ze>65535&&(ze-=65536,Qe+=String.fromCharCode(ze>>>10&1023|55296),ze=56320|ze&1023),Qe+=String.fromCharCode(ze),we+=Ze}return Qe}function me(W,te,Ce){return s.decode(W.subarray(te,Ce))}function pe(W,te,Ce){for(var Qe=0,we,De;Qe<te.length;Qe++){if(we=te.charCodeAt(Qe),we>55295&&we<57344)if(De)if(we<56320){W[Ce++]=239,W[Ce++]=191,W[Ce++]=189,De=we;continue}else we=De-55296<<10|we-56320|65536,De=null;else{we>56319||Qe+1===te.length?(W[Ce++]=239,W[Ce++]=191,W[Ce++]=189):De=we;continue}else De&&(W[Ce++]=239,W[Ce++]=191,W[Ce++]=189,De=null);we<128?W[Ce++]=we:(we<2048?W[Ce++]=we>>6|192:(we<65536?W[Ce++]=we>>12|224:(W[Ce++]=we>>18|240,W[Ce++]=we>>12&63|128),W[Ce++]=we>>6&63|128),W[Ce++]=we&63|128)}return Ce}return i1}var Xge=$ge();const qge=uh(Xge),Jge="4.2.4",J6={dataType:null,batchType:null,name:"Mapbox Vector Tile",id:"mvt",module:"mvt",version:Jge,extensions:["mvt","pbf"],mimeTypes:["application/vnd.mapbox-vector-tile","application/x-protobuf"],worker:!0,category:"geometry",options:{mvt:{shape:"geojson",coordinates:"local",layerProperty:"layerName",layers:void 0,tileIndex:null}}};({...J6});const Kge={Point:K6,MultiPoint:Zge,LineString:Z6,MultiLineString:Yge,Polygon:Y6,MultiPolygon:Qge};function K6([r,e],[t,n],i){const s=wl(t[0],n[0],r),o=wl(t[1],n[1],e);return i.unprojectFlat([s,o])}function eT(r,e,t){return r.map(n=>K6(n,e,t))}function Zge(r,e,t){return eT(r,e,t)}function Z6(r,e,t){return eT(r,e,t)}function Yge(r,e,t){return r.map(n=>Z6(n,e,t))}function Y6(r,e,t){return r.map(n=>eT(n,e,t))}function Qge(r,e,t){return r.map(n=>Y6(n,e,t))}
4652function e0e(r,e,t){const n=t.projectFlat([e.west,e.north]),i=t.projectFlat([e.east,e.south]),s=[n,i];return{...r,coordinates:Kge[r.type](r.coordinates,s,t)}}const t0e=["points","lines","polygons"];function r0e(r,e,t,n){for(const i of t0e){const s=r[i]&&n0e(r[i],e,t,n);if(s>=0)return s}return-1}function n0e(r,e,t,n){const i=r.featureIds.value;if(!i.length)return-1;let s=0,o=i[i.length-1]+1;if(n){const f=i0e(r,n);if(f)s=f[0],o=f[1]+1;else return-1}let l=-1;if(e in r.numericProps){const f=r.numericProps[e].value.findIndex((A,v)=>A===t&&i[v]>=s&&i[v]<o);return f>=0?r.globalFeatureIds.value[f]:-1}else e?l=VM(r.properties,f=>f[e]===t,s,o):r.fields&&(l=VM(r.fields,f=>f.id===t,s,o));return l>=0?s0e(r,l):-1}function i0e(r,e){if(!r.__layers){const t={},{properties:n}=r;for(let i=0;i<n.length;i++){const{layerName:s}=n[i];s&&(t[s]?t[s][1]=i:t[s]=[i,i])}r.__layers=t}return r.__layers[e]}function s0e(r,e){if(!r.__ids){const t=[],n=r.featureIds.value,i=r.globalFeatureIds.value;for(let s=0;s<n.length;s++)t[n[s]]=i[s];r.__ids=t}return r.__ids[e]}function VM(r,e,t,n){for(let i=t;i<n;i++)if(e(r[i],i))return i;return-1}const s1=512,o0e={...ru.defaultProps,data:d_,onDataLoad:{type:"function",value:null,optional:!0,compare:!1},uniqueIdProperty:"",highlightedFeatureId:null,loaders:[J6],binary:!0};class Ip extends nu{initializeState(){super.initializeState();const e=this.context.viewport.resolution!==void 0?!1:this.props.binary;this.setState({binary:e,data:null,tileJSON:null,hoveredFeatureId:null,hoveredFeatureLayerName:null})}get isLoaded(){return!!(this.state?.data&&super.isLoaded)}updateState({props:e,oldProps:t,context:n,changeFlags:i}){i.dataChanged&&this._updateTileData(),this.state?.data&&(super.updateState({props:e,oldProps:t,context:n,changeFlags:i}),this._setWGS84PropertyForTiles());const{highlightColor:s}=e;s!==t.highlightColor&&Array.isArray(s)&&this.setState({highlightColor:s})}async _updateTileData(){let e=this.props.data,t=null;if(typeof e=="string"&&!Wle(e)){const{onDataLoad:n,fetch:i}=this.props;this.setState({data:null,tileJSON:null});try{t=await i(e,{propName:"data",layer:this,loaders:[]})}catch(s){this.raiseError(s,"loading TileJSON"),e=null}n&&n(t,{propName:"data",layer:this})}else e&&typeof e=="object"&&"tilejson"in e&&(t=e);t&&(e=t.tiles),this.setState({data:e,tileJSON:t})}_getTilesetOptions(){const e=super._getTilesetOptions(),t=this.state.tileJSON,{minZoom:n,maxZoom:i}=this.props;return t&&(Number.isFinite(t.minzoom)&&t.minzoom>n&&(e.minZoom=t.minzoom),Number.isFinite(t.maxzoom)&&(!Number.isFinite(i)||t.maxzoom<i)&&(e.maxZoom=t.maxzoom)),e}renderLayers(){return this.state?.data?super.renderLayers():null}getTileData(e){const{data:t,binary:n}=this.state,{index:i,signal:s}=e,o=oh(t,e);if(!o)return Promise.reject("Invalid URL");let l=this.getLoadOptions();const{fetch:f}=this.props;return l={...l,mimeType:"application/x-protobuf",mvt:{...l?.mvt,coordinates:this.context.viewport.resolution?"wgs84":"local",tileIndex:i},gis:n?{format:"binary"}:{}},f(o,{propName:"data",layer:this,loadOptions:l,signal:s})}renderSubLayers(e){const{x:t,y:n,z:i}=e.tile.index,s=Math.pow(2,i),o=s1/s,l=-o,f=s1*t/s,A=s1*(1-n/s),v=new vn().scale([o,l,1]);e.autoHighlight=!1,this.context.viewport.resolution||(e.modelMatrix=v,e.coordinateOrigin=[f,A,0],e.coordinateSystem=Qr.CARTESIAN,e.extensions=[...e.extensions||[],new uy]);const T=super.renderSubLayers(e);return this.state.binary&&!(T instanceof ru)&&Zr.warn("renderSubLayers() must return GeoJsonLayer when using binary:true")(),T}_updateAutoHighlight(e){const{uniqueIdProperty:t}=this.props,{hoveredFeatureId:n,hoveredFeatureLayerName:i}=this.state,s=e.object;let o=null,l=null;s&&(o=o1(s,t),l=jM(s));let{highlightColor:f}=this.props;typeof f=="function"&&(f=f(e)),(n!==o||i!==l)&&this.setState({highlightColor:f,hoveredFeatureId:o,hoveredFeatureLayerName:l})}_isWGS84(){return!!this.context.viewport.resolution}getPickingInfo(e){const t=super.getPickingInfo(e);if(this.state.binary&&t.index!==-1){const{data:n}=e.sourceLayer.props;t.object=F2(n,{globalFeatureId:t.index})}return t.object&&!this._isWGS84()&&(t.object=HM(t.object,t.tile.bbox,this.context.viewport)),t}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){const{hoveredFeatureId:t,hoveredFeatureLayerName:n,binary:i}=this.state,{uniqueIdProperty:s,highlightedFeatureId:o}=this.props,l=e.content,f=GM(o);if(!(GM(t)||f))return-1;const v=f?o:t;return Array.isArray(l)?l.findIndex(T=>
4652{const I=o1(T,s)===v,F=f||jM(T)===n;return I&&F}):l&&i?r0e(l,s,v,f?"":n):-1}_pickObjects(e){const{deck:t,viewport:n}=this.context,i=n.width,s=n.height,o=n.x,l=n.y,f=[this.id];return t.pickObjects({x:o,y:l,width:i,height:s,layerIds:f,maxObjects:e})}getRenderedFeatures(e=null){const t=this._pickObjects(e),n=new Set,i=[];for(const s of t){const o=o1(s.object,this.props.uniqueIdProperty);o===void 0?i.push(s.object):n.has(o)||(n.add(o),i.push(s.object))}return i}_setWGS84PropertyForTiles(){const e="dataInWGS84";this.state.tileset.selectedTiles.forEach(n=>{n.hasOwnProperty(e)||Object.defineProperty(n,e,{get:()=>{if(!n.content)return null;if(this.state.binary&&Array.isArray(n.content)&&!n.content.length)return[];const{bbox:i}=n;if(n._contentWGS84===void 0&&$le(i)){const s=this.state.binary?F2(n.content):n.content;n._contentWGS84=s.map(o=>HM(o,i,this.context.viewport))}return n._contentWGS84}})})}}Ip.layerName="MVTLayer";Ip.defaultProps=o0e;function o1(r,e){if(r.properties&&e)return r.properties[e];if("id"in r)return r.id}function jM(r){return r.properties?.layerName||null}function GM(r){return r!=null&&r!==""}function HM(r,e,t){const n={...r,geometry:{type:r.geometry.type}};return Object.defineProperty(n.geometry,"coordinates",{get:()=>e0e(r.geometry,e,t).coordinates}),n}const WM="0123456789bcdefghjkmnpqrstuvwxyz",Q6={};for(let r=0;r<WM.length;r++)Q6[WM.charAt(r)]=r;const a0e=-90,l0e=90,c0e=-180,u0e=180;function f0e(r){let e=!0,t=l0e,n=a0e,i=u0e,s=c0e,o,l=0;for(let f=0,A=r.length;f<A;f++){const v=r[f].toLowerCase();l=Q6[v];for(let T=4;T>=0;T--){const I=l>>T&1;e?(o=(i+s)/2,I===1?s=o:i=o):(o=(t+n)/2,I===1?n=o:t=o),e=!e}}return[n,s,t,i]}function h0e(r){const[e,t,n,i]=f0e(r);return[i,n,i,e,t,e,t,n,i,n]}const d0e={getGeohash:{type:"accessor",value:r=>r.geohash}};class fy extends lf{indexToBounds(){const{data:e,getGeohash:t}=this.props;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(n,i)=>h0e(t(n,i))}}}fy.layerName="GeohashLayer";fy.defaultProps=d0e;const p0e=Object.freeze(Object.defineProperty({__proto__:null,GeohashLayer:fy,GreatCircleLayer:bw,H3ClusterLayer:ny,H3HexagonLayer:Ac,MVTLayer:Ip,QuadkeyLayer:Z_,S2Layer:K_,TerrainLayer:Yw,Tile3DLayer:Zw,TileLayer:nu,TripsLayer:ey,_GeoCellLayer:lf,_Tile2DHeader:vL,_Tileset2D:Q_,_WMSLayer:vw,_getURLFromTemplate:oh},Symbol.toStringTag,{value:"Module"}));function A0e({pointCount:r,getBinId:e}){const t=new Map;for(let n=0;n<r;n++){const i=e(n);if(i===null)continue;let s=t.get(String(i));s?s.points.push(n):(s={id:i,index:t.size,points:[n]},t.set(String(i),s))}return Array.from(t.values())}function g0e({bins:r,dimensions:e,target:t}){const n=r.length*e;(!t||t.length<n)&&(t=new Float32Array(n));for(let i=0;i<r.length;i++){const{id:s}=r[i];Array.isArray(s)?t.set(s,i*e):t[i]=s}return t}const m0e=r=>r.length,ek=(r,e)=>{let t=0;for(const n of r)t+=e(n);return t},_0e=(r,e)=>r.length===0?NaN:ek(r,e)/r.length,y0e=(r,e)=>{let t=1/0;for(const n of r){const i=e(n);i<t&&(t=i)}return t},v0e=(r,e)=>{let t=-1/0;for(const n of r){const i=e(n);i>t&&(t=i)}return t},b0e={COUNT:m0e,SUM:ek,MEAN:_0e,MIN:y0e,MAX:v0e};function x0e({bins:r,getValue:e,operation:t,target:n}){(!n||n.length<r.length)&&(n=new Float32Array(r.length));let i=1/0,s=-1/0;for(let o=0;o<r.length;o++){const{points:l}=r[o];n[o]=t(l,e),n[o]<i&&(i=n[o]),n[o]>s&&(s=n[o])}return{value:n,domain:[i,s]}}function $M(r,e,t){const n={};for(const s of r.sources||[]){const o=e[s];if(o)n[s]=w0e(o);else throw new Error(`Cannot find attribute ${s}`)}const i={};return s=>{for(const o in n)i[o]=n[o](s);return r.getValue(i,s,t)}}function w0e(r){const e=r.value,{offset:t=0,stride:n,size:i}=r.getAccessor(),s=e.BYTES_PER_ELEMENT,o=t/s,l=n?n/s:i;if(i===1)return r.isConstant?()=>e[0]:A=>{const v=o+l*A;return e[v]};let f;return r.isConstant?(f=Array.from(e),()=>f):(f=new Array(i),A=>{const v=o+l*A;for(let T=0;T<i;T++)f[T]=e[v+T];return f})}class Bp{constructor(e){this.bins=[],this.binIds=null,this.results=[],this.dimensions=e.dimensions,this.channelCount=e.getValue.length,this.props={...e,binOptions:{},pointCount:0,operations:[],customOperations:[],attributes:{}},this.needsUpdate=!0,this.setProps(e)}destroy(){}get binCount(){return this.bins.length}setProps(e){const t=this.props;if(e.binOptions&&(rs(e.binOptions,t.binOptions,2)||this.setNeedsUpdate()),e.operations)for(let n=0;n<this.channelCount;n++)e.operations[n]!==t.operations[n]&&this.setNeedsUpdate(n);if(e.customOperations)for(let n=0;n<this.channelCount;n++)!!e.customOperations[n]!=!!t.customOperations[n]&&this.setNeedsUpdate(n);e.pointCount!==void 0&&e.pointCount!==t.pointCount&&this.setNeedsUpdate(),e.attributes&&(e.attributes={...t.attributes,...e.attributes}),Object.assign(this.props,e)}setNeedsUpdate(e){e===void 0?this.needsUpdate=!0:this.needsUpdate!==!0&&(this.needsUpdate=this.needsUpdate||[],this.needsUpdate[e]=!0)}update(){if(this.needsUpdate===!0){this.bins=A0e({pointCount:this.props.pointCount,getBinId:$M(this.props.getBin,this.props.attributes,this.props.binOptions)});const e=g0e({bins:this.bins,dimensions:this.dimensions,target:this.binIds?.value});this.binIds={value:e,type:"float32",size:this.dimensions}}for(let e=0;e<this.channelCount;e++)if(this.needsUpdate===!0||this.needsUpdate[e]){const t=this.props.customOperations[e]||b0e[this.props.operations[e]],{value:n,domain:i}=x0e({bins:this.bins,getValue:$M(this.props.getValue[e],this.props.attributes,void 0),operation:t,target:this.results[e]?.value});this.results[e]={value:n,domain:i,type:"float32",size:1},this.props.onUpdate?.({channel:e})}this.needsUpdate=!1}preDraw(){}getBins(){return this.binIds}getResult(e){return this.results[e]}getResultDomain(e){return this.results[e]?.domain??[1/0,-1/0]}getBin(e){const t=this.bins[e];if(!t)return null;const n=new Array(this.channelCount);for(let i=0;i<n.length;i++){const s=this.results[i];n[i]=s?.value[e]}return{id:t.id,value:n,count:t.points.length,pointIndices:t.points}}}function tk(r,e,t){return r.createFramebuffer({width:e,height:t,colorAttachments:[r.createTexture({width:e,height:t,format:"rgba32float",mipmaps:!1,sampler:{minFilter:"nearest",magFilter:"nearest"}})]})}const T0e=`uniform binSorterUniforms { 4653 ivec4 binIdRange; 4654 ivec2 targetSize; 4655} binSorter; 4656`,E0e={name:"binSorter",vs:T0e,uniformTypes:{binIdRange:"vec4<i32>",targetSize:"vec2<i32>"}},rk=[1,2,4,8],XM=3e38,C0e={SUM:0,MEAN:0,MIN:0,MAX:0,COUNT:0},Om=1024;class S0e{constructor(e,t){this.binsFBO=null,this.device=e,this.model=B0e(e,t)}get texture(){return this.binsFBO?this.binsFBO.colorAttachments[0].texture:null}destroy(){this.model.destroy(),this.binsFBO?.colorAttachments[0].texture.destroy(),this.binsFBO?.destroy()}getBinValues(e){if(!this.binsFBO)return null;const t=e%Om,n=Math.floor(e/Om),i=this.device.readPixelsToArrayWebGL(this.binsFBO,{sourceX:t,sourceY:n,sourceWidth:1,sourceHeight:1}).buffer;return new Float32Array(i)}setDimensions(e,t){const n=Om,i=Math.ceil(e/n);this.binsFBO?this.binsFBO.height<i&&this.binsFBO.resize({width:n,height:i}):this.binsFBO=tk(this.device,n,i);const s={binIdRange:[t[0][0],t[0][1],t[1]?.[0]||0,t[1]?.[1]||0],targetSize:[this.binsFBO.width,this.binsFBO.height]};this.model.shaderInputs.setProps({binSorter:s})}setModelProps(e){const t=this.model;e.attributes&&t.setAttributes(e.attributes),e.constantAttributes&&t.setConstantAttributes(e.constantAttributes),e.vertexCount!==void 0&&t.setVertexCount(e.vertexCount),e.shaderModuleProps&&t.shaderInputs.setProps(e.shaderModuleProps)}update(e){if(!this.binsFBO)return;const t=I0e(e);this._updateBins("SUM",t.SUM+t.MEAN),this._updateBins("MIN",t.MIN),this._updateBins("MAX",t.MAX)}_updateBins(e,t){if(t===0)return;t|=rk[3];const n=this.model,i=this.binsFBO,s=e==="MAX"?-XM:e==="MIN"?XM:0,o=this.device.beginRenderPass({id:`gpu-aggregation-${e}`,framebuffer:i,parameters:{viewport:[0,0,i.width,i.height],colorMask:t},clearColor:[s,s,s,0],clearDepth:!1,clearStencil:!1});n.setParameters({blend:!0,blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one",blendColorOperation:e==="MAX"?"max":e==="MIN"?"min":"add",blendAlphaOperation:"add"}),n.draw(o),o.end()}}function I0e(r){const e={...C0e};for(let t=0;t<r.length;t++){const n=r[t];n&&(e[n]+=rk[t])}return e}function B0e(r,e){let t=e.vs;e.dimensions===2&&(t+=` 4657void getBin(out int binId) { 4658 ivec2 binId2; 4659 getBin(binId2); 4660 if (binId2.x < binSorter.binIdRange.x || binId2.x >= binSorter.binIdRange.y) { 4661 binId = -1; 4662 } else { 4663 binId = (binId2.y - binSorter.binIdRange.z) * (binSorter.binIdRange.y - binSorter.binIdRange.x) + binId2.x; 4664 } 4665} 4666`);const n=`#version 300 es 4667#define SHADER_NAME gpu-aggregation-sort-bins-vertex 4668 4669${t} 4670 4671out vec3 v_Value; 4672 4673void main() { 4674 int binIndex; 4675 getBin(binIndex); 4676 binIndex = binIndex - binSorter.binIdRange.x; 4677 if (binIndex < 0) { 4678 gl_Position = vec4(0.); 4679 return; 4680 } 4681 int row = binIndex / binSorter.targetSize.x; 4682 int col = binIndex - row * binSorter.targetSize.x; 4683 vec2 position = (vec2(col, row) + 0.5) / vec2(binSorter.targetSize) * 2.0 - 1.0; 4684 gl_Position = vec4(position, 0.0, 1.0); 4685 gl_PointSize = 1.0; 4686 4687#if NUM_CHANNELS == 3 4688 getValue(v_Value); 4689#elif NUM_CHANNELS == 2 4690 getValue(v_Value.xy); 4691#else 4692 getValue(v_Value.x); 4693#endif 4694} 4695`,i=`#version 300 es 4696#define SHADER_NAME gpu-aggregation-sort-bins-fragment 4697 4698precision highp float; 4699 4700in vec3 v_Value; 4701out vec4 fragColor; 4702 4703void main() { 4704 fragColor.xyz = v_Value; 4705 4706 #ifdef MODULE_GEOMETRY 4707 geometry.uv = vec2(0.); 4708 DECKGL_FILTER_COLOR(fragColor, geometry); 4709 #endif 4710 4711 fragColor.w = 1.0; 4712} 4713`;return new Di(r,{bufferLayout:e.bufferLayout,modules:[...e.modules||[],E0e],defines:{...e.defines,NON_INSTANCED_MODEL:1,NUM_CHANNELS:e.channelCount},isInstanced:!1,vs:n,fs:i,topology:"point-list",disableWarnings:!0})}const P0e=`uniform aggregatorTransformUniforms { 4714 ivec4 binIdRange; 4715 bvec3 isCount; 4716 bvec3 isMean; 4717 float naN; 4718} aggregatorTransform; 4719`,M0e={name:"aggregatorTransform",vs:P0e,uniformTypes:{binIdRange:"vec4<i32>",isCount:"vec3<f32>",isMean:"vec3<f32>"}};class R0e{constructor(e,t){this.binBuffer=null,this.valueBuffer=null,this._domains=null,this.device=e,this.channelCount=t.channelCount,this.transform=O0e(e,t),this.domainFBO=tk(e,2,1)}destroy(){this.transform.destroy(),this.binBuffer?.destroy(),this.valueBuffer?.destroy(),this.domainFBO.colorAttachments[0].texture.destroy(),this.domainFBO.destroy()}get domains(){if(!this._domains){const e=this.device.readPixelsToArrayWebGL(this.domainFBO).buffer,t=new Float32Array(e);this._domains=[[-t[4],t[0]],[-t[5],t[1]],[-t[6],t[2]]].slice(0,this.channelCount)}
4719return this._domains}setDimensions(e,t){const{model:n,transformFeedback:i}=this.transform;n.setVertexCount(e);const s={binIdRange:[t[0][0],t[0][1],t[1]?.[0]||0,t[1]?.[1]||0]};n.shaderInputs.setProps({aggregatorTransform:s});const o=e*t.length*4;(!this.binBuffer||this.binBuffer.byteLength<o)&&(this.binBuffer?.destroy(),this.binBuffer=this.device.createBuffer({byteLength:o}),i.setBuffer("binIds",this.binBuffer));const l=e*this.channelCount*4;(!this.valueBuffer||this.valueBuffer.byteLength<l)&&(this.valueBuffer?.destroy(),this.valueBuffer=this.device.createBuffer({byteLength:l}),i.setBuffer("values",this.valueBuffer))}update(e,t){if(!e)return;const n=this.transform,i=this.domainFBO,s=[0,1,2].map(f=>t[f]==="COUNT"?1:0),o=[0,1,2].map(f=>t[f]==="MEAN"?1:0),l={isCount:s,isMean:o,bins:e};n.model.shaderInputs.setProps({aggregatorTransform:l}),n.run({id:"gpu-aggregation-domain",framebuffer:i,parameters:{viewport:[0,0,2,1]},clearColor:[-3e38,-3e38,-3e38,0],clearDepth:!1,clearStencil:!1}),this._domains=null}}function O0e(r,e){const t=`#version 300 es 4720#define SHADER_NAME gpu-aggregation-domain-vertex 4721 4722uniform sampler2D bins; 4723 4724#if NUM_DIMS == 1 4725out float binIds; 4726#else 4727out vec2 binIds; 4728#endif 4729 4730#if NUM_CHANNELS == 1 4731flat out float values; 4732#elif NUM_CHANNELS == 2 4733flat out vec2 values; 4734#else 4735flat out vec3 values; 4736#endif 4737 4738const float NAN = intBitsToFloat(-1); 4739 4740void main() { 4741 int row = gl_VertexID / SAMPLER_WIDTH; 4742 int col = gl_VertexID - row * SAMPLER_WIDTH; 4743 vec4 weights = texelFetch(bins, ivec2(col, row), 0); 4744 vec3 value3 = mix( 4745 mix(weights.rgb, vec3(weights.a), aggregatorTransform.isCount), 4746 weights.rgb / max(weights.a, 1.0), 4747 aggregatorTransform.isMean 4748 ); 4749 if (weights.a == 0.0) { 4750 value3 = vec3(NAN); 4751 } 4752 4753#if NUM_DIMS == 1 4754 binIds = float(gl_VertexID + aggregatorTransform.binIdRange.x); 4755#else 4756 int y = gl_VertexID / (aggregatorTransform.binIdRange.y - aggregatorTransform.binIdRange.x); 4757 int x = gl_VertexID - y * (aggregatorTransform.binIdRange.y - aggregatorTransform.binIdRange.x); 4758 binIds.y = float(y + aggregatorTransform.binIdRange.z); 4759 binIds.x = float(x + aggregatorTransform.binIdRange.x); 4760#endif 4761 4762#if NUM_CHANNELS == 3 4763 values = value3; 4764#elif NUM_CHANNELS == 2 4765 values = value3.xy; 4766#else 4767 values = value3.x; 4768#endif 4769 4770 gl_Position = vec4(0., 0., 0., 1.); 4771 // This model renders into a 2x1 texture to obtain min and max simultaneously. 4772 // See comments in fragment shader 4773 gl_PointSize = 2.0; 4774} 4775`,n=`#version 300 es 4776#define SHADER_NAME gpu-aggregation-domain-fragment 4777 4778precision highp float; 4779 4780#if NUM_CHANNELS == 1 4781flat in float values; 4782#elif NUM_CHANNELS == 2 4783flat in vec2 values; 4784#else 4785flat in vec3 values; 4786#endif 4787 4788out vec4 fragColor; 4789 4790void main() { 4791 vec3 value3; 4792#if NUM_CHANNELS == 3 4793 value3 = values; 4794#elif NUM_CHANNELS == 2 4795 value3.xy = values; 4796#else 4797 value3.x = values; 4798#endif 4799 if (isnan(value3.x)) discard; 4800 // This shader renders into a 2x1 texture with blending=max 4801 // The left pixel yields the max value of each channel 4802 // The right pixel yields the min value of each channel 4803 if (gl_FragCoord.x < 1.0) { 4804 fragColor = vec4(value3, 1.0); 4805 } else { 4806 fragColor = vec4(-value3, 1.0); 4807 } 4808} 4809`;return new nh(r,{vs:t,fs:n,topology:"point-list",modules:[M0e],parameters:{blend:!0,blendColorSrcFactor:"one",blendColorDstFactor:"one",blendColorOperation:"max",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one",blendAlphaOperation:"max"},defines:{NUM_DIMS:e.dimensions,NUM_CHANNELS:e.channelCount,SAMPLER_WIDTH:Om},varyings:["binIds","values"],disableWarnings:!0})}class Ua{static isSupported(e){return e.features.has("float32-renderable-webgl")&&e.features.has("texture-blend-float-webgl")}constructor(e,t){this.binCount=0,this.binIds=null,this.results=[],this.device=e,this.dimensions=t.dimensions,this.channelCount=t.channelCount,this.props={...t,pointCount:0,binIdRange:[[0,0]],operations:[],attributes:{},binOptions:{}},this.needsUpdate=new Array(this.channelCount).fill(!0),this.binSorter=new S0e(e,t),this.aggregationTransform=new R0e(e,t),this.setProps(t)}getBins(){const e=this.aggregationTransform.binBuffer;return e?(this.binIds?.buffer!==e&&(this.binIds={buffer:e,type:"float32",size:this.dimensions}),this.binIds):null}getResult(e){const t=this.aggregationTransform.valueBuffer;return!t||e>=this.channelCount?null:(this.results[e]?.buffer!==t&&(this.results[e]={buffer:t,type:"float32",size:1,stride:this.channelCount*4,offset:e*4}),this.results[e])}getResultDomain(e){return this.aggregationTransform.domains[e]}getBin(e){if(e<0||e>=this.binCount)return null;const{binIdRange:t}=this.props;let n;if(this.dimensions===1)n=[e+t[0][0]];else{const[[l,f],[A]]=t,v=f-l;n=[e%v+l,Math.floor(e/v)+A]}const i=this.binSorter.getBinValues(e);if(!i)return null;const s=i[3],o=[];for(let l=0;l<this.channelCount;l++){const f=this.props.operations[l];f==="COUNT"?o[l]=s:s===0?o[l]=NaN:o[l]=f==="MEAN"?i[l]/s:i[l]}
4809return{id:n,value:o,count:s}}destroy(){this.binSorter.destroy(),this.aggregationTransform.destroy()}setProps(e){const t=this.props;if("binIdRange"in e&&!rs(e.binIdRange,t.binIdRange,2)){const n=e.binIdRange;if(Zr.assert(n.length===this.dimensions),this.dimensions===1){const[[i,s]]=n;this.binCount=s-i}else{const[[i,s],[o,l]]=n;this.binCount=(s-i)*(l-o)}this.binSorter.setDimensions(this.binCount,n),this.aggregationTransform.setDimensions(this.binCount,n),this.setNeedsUpdate()}if(e.operations)for(let n=0;n<this.channelCount;n++)e.operations[n]!==t.operations[n]&&this.setNeedsUpdate(n);if(e.pointCount!==void 0&&e.pointCount!==t.pointCount&&(this.binSorter.setModelProps({vertexCount:e.pointCount}),this.setNeedsUpdate()),e.binOptions&&(rs(e.binOptions,t.binOptions,2)||this.setNeedsUpdate(),this.binSorter.model.shaderInputs.setProps({binOptions:e.binOptions})),e.attributes){const n={},i={};for(const s of Object.values(e.attributes))for(const[o,l]of Object.entries(s.getValue()))ArrayBuffer.isView(l)?i[o]=l:l&&(n[o]=l);this.binSorter.setModelProps({attributes:n,constantAttributes:i})}e.shaderModuleProps&&this.binSorter.setModelProps({shaderModuleProps:e.shaderModuleProps}),Object.assign(this.props,e)}setNeedsUpdate(e){e===void 0?this.needsUpdate.fill(!0):this.needsUpdate[e]=!0}update(){}preDraw(){if(!this.needsUpdate.some(Boolean))return;const{operations:e}=this.props,t=this.needsUpdate.map((n,i)=>n?e[i]:null);this.binSorter.update(t),this.aggregationTransform.update(this.binSorter.texture,e);for(let n=0;n<this.channelCount;n++)this.needsUpdate[n]&&(this.needsUpdate[n]=!1,this.props.onUpdate?.({channel:n}))}}let Pp=class extends Ss{get isDrawable(){return!0}initializeState(){this.getAttributeManager().remove(["instancePickingColors"])}updateState(e){super.updateState(e);const t=this.getAggregatorType();if(e.changeFlags.extensionsChanged||this.state.aggregatorType!==t){this.state.aggregator?.destroy();const n=this.createAggregator(t);return n.setProps({attributes:this.getAttributeManager()?.attributes}),this.setState({aggregator:n,aggregatorType:t}),!0}return!1}finalizeState(e){super.finalizeState(e),this.state.aggregator.destroy()}updateAttributes(e){const{aggregator:t}=this.state;t.setProps({attributes:e});for(const n in e)this.onAttributeChange(n);t.update()}draw({shaderModuleProps:e}){const{aggregator:t}=this.state;t.setProps({shaderModuleProps:e}),t.preDraw()}_getAttributeManager(){return new k_(this.context.device,{id:this.props.id,stats:this.context.stats})}};Pp.layerName="AggregationLayer";const hy=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]];function nk(r,e=!1,t=Float32Array){let n;if(Number.isFinite(r[0]))n=new t(r);else{n=new t(r.length*4);let i=0;for(let s=0;s<r.length;s++){const o=r[s];n[i++]=o[0],n[i++]=o[1],n[i++]=o[2],n[i++]=Number.isFinite(o[3])?o[3]:255}}if(e)for(let i=0;i<n.length;i++)n[i]/=255;return n}const w_={linear:"linear",quantile:"nearest",quantize:"nearest",ordinal:"nearest"};function tT(r,e){r.setSampler({minFilter:w_[e],magFilter:w_[e]})}function rT(r,e,t="linear"){const n=nk(e,!1,Uint8Array);return r.createTexture({format:"rgba8unorm",mipmaps:!1,sampler:{minFilter:w_[t],magFilter:w_[t],addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"},data:n,width:n.length/4,height:1})}const D0e=`#version 300 es 4810#define SHADER_NAME screen-grid-layer-vertex-shader 4811#define RANGE_COUNT 6 4812in vec2 positions; 4813in vec2 instancePositions; 4814in float instanceWeights; 4815in vec3 instancePickingColors; 4816uniform sampler2D colorRange; 4817out vec4 vColor; 4818vec4 interp(float value, vec2 domain, sampler2D range) { 4819float r = (value - domain.x) / (domain.y - domain.x); 4820return texture(range, vec2(r, 0.5)); 4821} 4822void main(void) { 4823if (isnan(instanceWeights)) { 4824gl_Position = vec4(0.); 4825return; 4826} 4827vec2 pos = instancePositions * screenGrid.gridSizeClipspace + positions * screenGrid.cellSizeClipspace; 4828pos.x = pos.x - 1.0; 4829pos.y = 1.0 - pos.y; 4830gl_Position = vec4(pos, 0., 1.); 4831vColor = interp(instanceWeights, screenGrid.colorDomain, colorRange); 4832vColor.a *= layer.opacity; 4833picking_setPickingColor(instancePickingColors); 4834} 4835`,F0e=`#version 300 es 4836#define SHADER_NAME screen-grid-layer-fragment-shader 4837precision highp float; 4838in vec4 vColor; 4839out vec4 fragColor; 4840void main(void) { 4841fragColor = vColor; 4842DECKGL_FILTER_COLOR(fragColor, geometry); 4843} 4844`,L0e=`uniform screenGridUniforms { 4845 vec2 cellSizeClipspace; 4846 vec2 gridSizeClipspace; 4847 vec2 colorDomain; 4848} screenGrid; 4849`,k0e={name:"screenGrid",vs:L0e,uniformTypes:{cellSizeClipspace:"vec2<f32>",gridSizeClipspace:"vec2<f32>",colorDomain:"vec2<f32>"}};class ik extends Cs{getShaders(){return super.getShaders({vs:D0e,fs:
4849F0e,modules:[ma,k0e]})}initializeState(){this.getAttributeManager().addInstanced({instancePositions:{size:2,type:"float32",accessor:"getBin"},instanceWeights:{size:1,type:"float32",accessor:"getWeight"}}),this.state.model=this._getModel()}updateState(e){super.updateState(e);const{props:t,oldProps:n,changeFlags:i}=e,s=this.state.model;if(n.colorRange!==t.colorRange){this.state.colorTexture?.destroy(),this.state.colorTexture=rT(this.context.device,t.colorRange,t.colorScaleType);const o={colorRange:this.state.colorTexture};s.shaderInputs.setProps({screenGrid:o})}else n.colorScaleType!==t.colorScaleType&&tT(this.state.colorTexture,t.colorScaleType);if(n.cellMarginPixels!==t.cellMarginPixels||n.cellSizePixels!==t.cellSizePixels||i.viewportChanged){const{width:o,height:l}=this.context.viewport,{cellSizePixels:f,cellMarginPixels:A}=this.props,v=Math.max(f-A,0),T={gridSizeClipspace:[f/o*2,f/l*2],cellSizeClipspace:[v/o*2,v/l*2]};s.shaderInputs.setProps({screenGrid:T})}}finalizeState(e){super.finalizeState(e),this.state.colorTexture?.destroy()}draw({uniforms:e}){const t=this.props.colorDomain(),n=this.state.model,i={colorDomain:t};n.shaderInputs.setProps({screenGrid:i}),n.draw(this.context.renderPass)}_getModel(){return new Di(this.context.device,{...this.getShaders(),id:this.props.id,bufferLayout:this.getAttributeManager().getBufferLayouts(),geometry:new Zs({topology:"triangle-strip",attributes:{positions:{value:new Float32Array([0,0,1,0,0,1,1,1]),size:2}}}),isInstanced:!0})}}ik.layerName="ScreenGridCellLayer";const N0e=`uniform binOptionsUniforms { 4850 float cellSizePixels; 4851} binOptions; 4852`,U0e={name:"binOptions",vs:N0e,uniformTypes:{cellSizePixels:"f32"}},z0e={cellSizePixels:{type:"number",value:100,min:1},cellMarginPixels:{type:"number",value:2,min:0},colorRange:hy,colorScaleType:"linear",getPosition:{type:"accessor",value:r=>r.position},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM"};class nT extends Pp{getAggregatorType(){return this.props.gpuAggregation&&Ua.isSupported(this.context.device)?"gpu":"cpu"}createAggregator(e){return e==="cpu"||!Ua.isSupported(this.context.device)?new Bp({dimensions:2,getBin:{sources:["positions"],getValue:({positions:t},n,i)=>{const s=this.context.viewport,o=s.project(t),l=i.cellSizePixels;return o[0]<0||o[0]>=s.width||o[1]<0||o[1]>=s.height?null:[Math.floor(o[0]/l),Math.floor(o[1]/l)]}},getValue:[{sources:["counts"],getValue:({counts:t})=>t}]}):new Ua(this.context.device,{dimensions:2,channelCount:1,bufferLayout:this.getAttributeManager().getBufferLayouts({isInstanced:!1}),...super.getShaders({modules:[Ls,U0e],vs:` 4853 in vec3 positions; 4854 in vec3 positions64Low; 4855 in float counts; 4856 4857 void getBin(out ivec2 binId) { 4858 vec4 pos = project_position_to_clipspace(positions, positions64Low, vec3(0.0)); 4859 vec2 screenCoords = vec2(pos.x / pos.w + 1.0, 1.0 - pos.y / pos.w) / 2.0 * project.viewportSize / project.devicePixelRatio; 4860 vec2 gridCoords = floor(screenCoords / binOptions.cellSizePixels); 4861 binId = ivec2(gridCoords); 4862 } 4863 void getValue(out float weight) { 4864 weight = counts; 4865 } 4866 `})})}initializeState(){super.initializeState(),this.getAttributeManager().add({positions:{size:3,accessor:"getPosition",type:"float64",fp64:this.use64bitPositions()},counts:{size:1,accessor:"getWeight"}})}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState(e){const t=super.updateState(e),{props:n,oldProps:i,changeFlags:s}=e,{cellSizePixels:o,aggregation:l}=n;if(t||s.dataChanged||s.updateTriggersChanged||s.viewportChanged||l!==i.aggregation||o!==i.cellSizePixels){const{width:f,height:A}=this.context.viewport,{aggregator:v}=this.state;v instanceof Ua&&v.setProps({binIdRange:[[0,Math.ceil(f/o)],[0,Math.ceil(A/o)]]}),v.setProps({pointCount:this.getNumInstances(),operations:[l],binOptions:{cellSizePixels:o}})}return s.viewportChanged&&this.state.aggregator.setNeedsUpdate(),t}onAttributeChange(e){const{aggregator:t}=this.state;switch(e){case"positions":t.setNeedsUpdate();break;
4866case"counts":t.setNeedsUpdate(0);break}}renderLayers(){const{aggregator:e}=this.state,t=this.getSubLayerClass("cells",ik),n=e.getBins(),i=e.getResult(0);return new t(this.props,this.getSubLayerProps({id:"cell-layer"}),{data:{length:e.binCount,attributes:{getBin:n,getWeight:i}},dataComparator:(s,o)=>s.length===o.length,updateTriggers:{getBin:[n],getWeight:[i]},parameters:{depthWriteEnabled:!1,...this.props.parameters},colorDomain:()=>this.props.colorDomain||e.getResultDomain(0),extensions:[]})}getPickingInfo(e){const t=e.info,{index:n}=t;if(n>=0){const i=this.state.aggregator.getBin(n);let s;i&&(s={col:i.id[0],row:i.id[1],value:i.value[0],count:i.count},i.pointIndices&&(s.pointIndices=i.pointIndices,s.points=Array.isArray(this.props.data)?i.pointIndices.map(o=>this.props.data[o]):[])),t.object=s}return t}}nT.layerName="ScreenGridLayer";nT.defaultProps=z0e;class T_{constructor(e,t){this.props={scaleType:"linear",lowerPercentile:0,upperPercentile:100},this.domain=null,this.cutoff=null,this.input=e,this.inputLength=t,this.attribute=e}getScalePercentile(){if(!this._percentile){const e=qM(this.input,this.inputLength);this._percentile=j0e(e)}return this._percentile}getScaleOrdinal(){if(!this._ordinal){const e=qM(this.input,this.inputLength);this._ordinal=V0e(e)}return this._ordinal}getCutoff({scaleType:e,lowerPercentile:t,upperPercentile:n}){if(e==="quantile")return[t,n-1];if(t>0||n<100){const{domain:i}=this.getScalePercentile();let s=i[Math.floor(t)-1]??-1/0,o=i[Math.floor(n)-1]??1/0;if(e==="ordinal"){const{domain:l}=this.getScaleOrdinal();s=l.findIndex(f=>f>=s),o=l.findIndex(f=>f>o)-1,o===-2&&(o=l.length-1)}return[s,o]}return null}update(e){const t=this.props;if(e.scaleType!==t.scaleType)switch(e.scaleType){case"quantile":{const{attribute:n}=this.getScalePercentile();this.attribute=n,this.domain=[0,99];break}case"ordinal":{const{attribute:n,domain:i}=this.getScaleOrdinal();this.attribute=n,this.domain=[0,i.length-1];break}default:this.attribute=this.input,this.domain=null}return(e.scaleType!==t.scaleType||e.lowerPercentile!==t.lowerPercentile||e.upperPercentile!==t.upperPercentile)&&(this.cutoff=this.getCutoff(e)),this.props=e,this}}function V0e(r){const e=new Set;for(const i of r)Number.isFinite(i)&&e.add(i);const t=Array.from(e).sort(),n=new Map;for(let i=0;i<t.length;i++)n.set(t[i],i);return{attribute:{value:r.map(i=>Number.isFinite(i)?n.get(i):NaN),type:"float32",size:1},domain:t}}function j0e(r,e=100){const t=Array.from(r).filter(Number.isFinite).sort(G0e);let n=0;const i=Math.max(1,e),s=new Array(i-1);for(;++n<i;)s[n-1]=H0e(t,n/i);return{attribute:{value:r.map(o=>Number.isFinite(o)?W0e(s,o):NaN),type:"float32",size:1},domain:s}}function qM(r,e){const t=(r.stride??4)/4,n=(r.offset??0)/4;let i=r.value;if(!i){const o=r.buffer?.readSyncWebGL(0,t*4*e);o&&(i=new Float32Array(o.buffer),r.value=i)}if(t===1)return i.subarray(0,e);const s=new Float32Array(e);for(let o=0;o<e;o++)s[o]=i[o*t+n];return s}function G0e(r,e){return r-e}function H0e(r,e){const t=r.length;if(e<=0||t<2)return r[0];if(e>=1)return r[t-1];const n=(t-1)*e,i=Math.floor(n),s=r[i],o=r[i+1];return s+(o-s)*(n-i)}function W0e(r,e){let t=0,n=r.length;for(;t<n;){const i=t+n>>>1;r[i]>e?n=i:t=i+1}return t}function iT({dataBounds:r,getBinId:e,padding:t=0}){const n=[r[0],r[1],[r[0][0],r[1][1]],[r[1][0],r[0][1]]].map(f=>e(f)),i=Math.min(...n.map(f=>
4866f[0]))-t,s=Math.min(...n.map(f=>f[1]))-t,o=Math.max(...n.map(f=>f[0]))+t+1,l=Math.max(...n.map(f=>f[1]))+t+1;return[[i,o],[s,l]]}const sk=Math.PI/3,dy=2*Math.sin(sk),py=1.5,$0e=Array.from({length:6},(r,e)=>{const t=e*sk;return[Math.sin(t),-Math.cos(t)]});function a1([r,e],t){let n=Math.round(e=e/t/py),i=Math.round(r=r/t/dy-(n&1)/2);const s=e-n;if(Math.abs(s)*3>1){const o=r-i,l=i+(r<i?-1:1)/2,f=n+(e<n?-1:1),A=r-l,v=e-f;o*o+s*s>A*A+v*v&&(i=l+(n&1?1:-1)/2,n=f)}return[i,n]}const X0e=` 4867const vec2 DIST = vec2(${dy}, ${py}); 4868 4869ivec2 pointToHexbin(vec2 p, float radius) { 4870 p /= radius * DIST; 4871 float pj = round(p.y); 4872 float pjm2 = mod(pj, 2.0); 4873 p.x -= pjm2 * 0.5; 4874 float pi = round(p.x); 4875 vec2 d1 = p - vec2(pi, pj); 4876 4877 if (abs(d1.y) * 3. > 1.) { 4878 vec2 v2 = step(0.0, d1) - 0.5; 4879 v2.y *= 2.0; 4880 vec2 d2 = d1 - v2; 4881 if (dot(d1, d1) > dot(d2, d2)) { 4882 pi += v2.x + pjm2 - 0.5; 4883 pj += v2.y; 4884 } 4885 } 4886 return ivec2(pi, pj); 4887} 4888`;function JM([r,e],t){return[(r+(e&1)/2)*t*dy,e*t*py]}const q0e=` 4889const vec2 DIST = vec2(${dy}, ${py}); 4890 4891vec2 hexbinCentroid(vec2 binId, float radius) { 4892 binId.x += fract(binId.y * 0.5); 4893 return binId * DIST * radius; 4894} 4895`,J0e=`#version 300 es 4896#define SHADER_NAME hexagon-cell-layer-vertex-shader 4897in vec3 positions; 4898in vec3 normals; 4899in vec2 instancePositions; 4900in float instanceElevationValues; 4901in float instanceColorValues; 4902in vec3 instancePickingColors; 4903uniform sampler2D colorRange; 4904out vec4 vColor; 4905${q0e} 4906float interp(float value, vec2 domain, vec2 range) { 4907float r = min(max((value - domain.x) / (domain.y - domain.x), 0.), 1.); 4908return mix(range.x, range.y, r); 4909} 4910vec4 interp(float value, vec2 domain, sampler2D range) { 4911float r = (value - domain.x) / (domain.y - domain.x); 4912return texture(range, vec2(r, 0.5)); 4913} 4914void main(void) { 4915geometry.pickingColor = instancePickingColors; 4916if (isnan(instanceColorValues) || 4917instanceColorValues < hexagon.colorDomain.z || 4918instanceColorValues > hexagon.colorDomain.w || 4919instanceElevationValues < hexagon.elevationDomain.z || 4920instanceElevationValues > hexagon.elevationDomain.w 4921) { 4922gl_Position = vec4(0.); 4923return; 4924} 4925vec2 commonPosition = hexbinCentroid(instancePositions, column.radius) + (hexagon.originCommon - project.commonOrigin.xy); 4926commonPosition += positions.xy * column.radius * column.coverage; 4927geometry.position = vec4(commonPosition, 0.0, 1.0); 4928geometry.normal = project_normal(normals); 4929float elevation = 0.0; 4930if (column.extruded) { 4931elevation = interp(instanceElevationValues, hexagon.elevationDomain.xy, hexagon.elevationRange); 4932elevation = project_size(elevation); 4933geometry.position.z = (positions.z + 1.0) / 2.0 * elevation; 4934} 4935gl_Position = project_common_position_to_clipspace(geometry.position); 4936DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 4937vColor = interp(instanceColorValues, hexagon.colorDomain.xy, colorRange); 4938vColor.a *= layer.opacity; 4939if (column.extruded) { 4940vColor.rgb = lighting_getLightColor(vColor.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal); 4941} 4942DECKGL_FILTER_COLOR(vColor, geometry); 4943} 4944`,K0e=`uniform hexagonUniforms { 4945 vec4 colorDomain; 4946 vec4 elevationDomain; 4947 vec2 elevationRange; 4948 vec2 originCommon; 4949} hexagon; 4950`,Z0e={name:"hexagon",vs:K0e,uniformTypes:{colorDomain:"vec4<f32>",elevationDomain:"vec4<f32>",elevationRange:"vec2<f32>",originCommon:"vec2<f32>"}};class ok extends pc{getShaders(){const e=super.getShaders();return e.modules.push(Z0e),{...e,vs:J0e}}initializeState(){super.initializeState();const e=this.getAttributeManager();e.remove(["instanceElevations","instanceFillColors","instanceLineColors","instanceStrokeWidths"]),e.addInstanced({instancePositions:{size:2,type:"float32",accessor:"getBin"},instanceColorValues:{size:1,type:"float32",accessor:"getColorValue"},instanceElevationValues:{size:1,type:"float32",accessor:"getElevationValue"}})}updateState(e){super.updateState(e);const{props:t,oldProps:n}=e,i=this.state.fillModel;if(n.colorRange!==t.colorRange){this.state.colorTexture?.destroy(),this.state.colorTexture=rT(this.context.device,t.colorRange,t.colorScaleType);const s={colorRange:this.state.colorTexture};i.shaderInputs.setProps({hexagon:s})}else n.colorScaleType!==t.colorScaleType&&tT(this.state.colorTexture,t.colorScaleType)}finalizeState(e){super.finalizeState(e),this.state.colorTexture?.destroy()}draw({uniforms:e}){const{radius:t,hexOriginCommon:n,elevationRange:i,elevationScale:s,extruded:o,coverage:l,colorDomain:f,elevationDomain:A}=this.props,v=this.props.colorCutoff||[-1/0,1/0],T=this.props.elevationCutoff||[-1/0,1/0],I=this.state.fillModel;I.vertexArray.indexBuffer&&I.setIndexBuffer(null),I.setVertexCount(this.state.fillVertexCount);const F={colorDomain:[Math.max(f[0],v[0]),Math.min(f[1],v[1]),Math.max(f[0]-1,v[0]),Math.min(f[1]+1,v[1])],elevationDomain:[Math.max(A[0],T[0]),Math.min(A[1],T[1]),Math.max(A[0]-1,T[0]),Math.min(A[1]+1,T[1])],elevationRange:[i[0]*s,i[1]*s],originCommon:n};I.shaderInputs.setProps({column:{extruded:o,coverage:l,radius:t},hexagon:F}),I.draw(this.context.renderPass)}}ok.layerName="HexagonCellLayer";const Y0e=`uniform binOptionsUniforms { 4951 vec2 hexOriginCommon; 4952 float radiusCommon; 4953} binOptions; 4954`,Q0e={name:"binOptions",vs:Y0e,uniformTypes:{hexOriginCommon:"vec2<f32>",radiusCommon:"f32"}};function KM(){}const eme={gpuAggregation:!0,colorDomain:null,colorRange:hy,getColorValue:{type:"accessor",value:null},getColorWeight:{type:"accessor",value:1},colorAggregation:"SUM",lowerPercentile:{type:"number",min:0,max:100,value:0},upperPercentile:{type:"number",min:0,max:100,value:100},colorScaleType:"quantize",onSetColorDomain:KM,elevationDomain:null,elevationRange:[0,1e3],getElevationValue:{type:"accessor",value:null},getElevationWeight:{type:"accessor",value:1},elevationAggregation:"SUM",elevationScale:{type:"number",min:0,value:1},elevationLowerPercentile:{type:"number",min:0,max:100,value:0},elevationUpperPercentile:{type:"number",min:0,max:100,value:100},elevationScaleType:"linear",onSetElevationDomain:KM,radius:{type:"number",min:1,value:1e3},coverage:{type:"number",min:0,max:1,value:1},getPosition:{type:"accessor",value:r=>r.position},hexagonAggregator:{type:"function",optional:!0,value:null},extruded:!1,material:!0};class sT extends Pp{getAggregatorType(){const{gpuAggregation:e,hexagonAggregator:t,getColorValue:n,getElevationValue:i}=this.props;return e&&(t||n||i)?(Zr.warn("Features not supported by GPU aggregation, falling back to CPU")(),"cpu"):e&&Ua.isSupported(this.context.device)?"gpu":"cpu"}createAggregator(e){if(e==="cpu"){const{hexagonAggregator:t,radius:n}=this.props;return new Bp({dimensions:2,getBin:{sources:["positions"],getValue:({positions:i},s,o)=>
4954{if(t)return t(i,n);const f=this.state.aggregatorViewport.projectPosition(i),{radiusCommon:A,hexOriginCommon:v}=o;return a1([f[0]-v[0],f[1]-v[1]],A)}},getValue:[{sources:["colorWeights"],getValue:({colorWeights:i})=>i},{sources:["elevationWeights"],getValue:({elevationWeights:i})=>i}]})}return new Ua(this.context.device,{dimensions:2,channelCount:2,bufferLayout:this.getAttributeManager().getBufferLayouts({isInstanced:!1}),...super.getShaders({modules:[Ls,Q0e],vs:` 4955 in vec3 positions; 4956 in vec3 positions64Low; 4957 in float colorWeights; 4958 in float elevationWeights; 4959 4960 ${X0e} 4961 4962 void getBin(out ivec2 binId) { 4963 vec3 positionCommon = project_position(positions, positions64Low); 4964 binId = pointToHexbin(positionCommon.xy, binOptions.radiusCommon); 4965 } 4966 void getValue(out vec2 value) { 4967 value = vec2(colorWeights, elevationWeights); 4968 } 4969 `})})}initializeState(){super.initializeState(),this.getAttributeManager().add({positions:{size:3,accessor:"getPosition",type:"float64",fp64:this.use64bitPositions()},colorWeights:{size:1,accessor:"getColorWeight"},elevationWeights:{size:1,accessor:"getElevationWeight"}})}updateState(e){const t=super.updateState(e),{props:n,oldProps:i,changeFlags:s}=e,{aggregator:o}=this.state;if((s.dataChanged||!this.state.dataAsArray)&&(n.getColorValue||n.getElevationValue)&&(this.state.dataAsArray=Array.from(dc(n.data).iterable)),t||s.dataChanged||n.radius!==i.radius||n.getColorValue!==i.getColorValue||n.getElevationValue!==i.getElevationValue||n.colorAggregation!==i.colorAggregation||n.elevationAggregation!==i.elevationAggregation){this._updateBinOptions();const{radiusCommon:l,hexOriginCommon:f,binIdRange:A,dataAsArray:v}=this.state;if(o.setProps({binIdRange:A,pointCount:this.getNumInstances(),operations:[n.colorAggregation,n.elevationAggregation],binOptions:{radiusCommon:l,hexOriginCommon:f},onUpdate:this._onAggregationUpdate.bind(this)}),v){const{getColorValue:T,getElevationValue:I}=this.props;o.setProps({customOperations:[T&&(F=>T(F.map(N=>v[N]),{indices:F,data:n.data})),I&&(F=>I(F.map(N=>v[N]),{indices:F,data:n.data}))]})}}return s.updateTriggersChanged&&s.updateTriggersChanged.getColorValue&&o.setNeedsUpdate(0),s.updateTriggersChanged&&s.updateTriggersChanged.getElevationValue&&o.setNeedsUpdate(1),t}_updateBinOptions(){const e=this.getBounds();let t=1,n=[0,0],i=[[0,1],[0,1]],s=this.context.viewport;if(e&&Number.isFinite(e[0][0])){let o=[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2];const{radius:l}=this.props,{unitsPerMeter:f}=s.getDistanceScales(o);t=f[0]*l;const A=a1(s.projectFlat(o),t);o=s.unprojectFlat(JM(A,t));const v=s.constructor;s=s.isGeospatial?new v({longitude:o[0],latitude:o[1],zoom:12}):new eu({position:[o[0],o[1],0],zoom:12}),n=[Math.fround(s.center[0]),Math.fround(s.center[1])],i=iT({dataBounds:e,getBinId:T=>{const I=s.projectFlat(T);return I[0]-=n[0],I[1]-=n[1],a1(I,t)},padding:1})}this.setState({radiusCommon:t,hexOriginCommon:n,binIdRange:i,aggregatorViewport:s})}draw(e){e.shaderModuleProps.project&&(e.shaderModuleProps.project.viewport=this.state.aggregatorViewport),super.draw(e)}_onAggregationUpdate({channel:e}){const t=this.getCurrentLayer().props,{aggregator:n}=this.state;if(e===0){const i=n.getResult(0);this.setState({colors:new T_(i,n.binCount)}),t.onSetColorDomain(n.getResultDomain(0))}else if(e===1){const i=n.getResult(1);this.setState({elevations:new T_(i,n.binCount)}),t.onSetElevationDomain(n.getResultDomain(1))}}onAttributeChange(e){const{aggregator:t}=this.state;switch(e){case"positions":t.setNeedsUpdate(),this._updateBinOptions();const{radiusCommon:n,hexOriginCommon:i,binIdRange:s}=this.state;t.setProps({binIdRange:s,binOptions:{radiusCommon:n,hexOriginCommon:i}});break;case"colorWeights":t.setNeedsUpdate(0);break;case"elevationWeights":t.setNeedsUpdate(1);break}}renderLayers(){const{aggregator:e,radiusCommon:t,hexOriginCommon:n}=this.state,{elevationScale:i,colorRange:s,elevationRange:o,extruded:l,coverage:f,material:A,transitions:v,colorScaleType:T,lowerPercentile:I,upperPercentile:F,colorDomain:N,elevationScaleType:U,elevationLowerPercentile:$,elevationUpperPercentile:V,elevationDomain:G}
4969=this.props,X=this.getSubLayerClass("cells",ok),ue=e.getBins(),K=this.state.colors?.update({scaleType:T,lowerPercentile:I,upperPercentile:F}),se=this.state.elevations?.update({scaleType:U,lowerPercentile:$,upperPercentile:V});return!K||!se?null:new X(this.getSubLayerProps({id:"cells"}),{data:{length:e.binCount,attributes:{getBin:ue,getColorValue:K.attribute,getElevationValue:se.attribute}},dataComparator:(Ee,Ue)=>Ee.length===Ue.length,updateTriggers:{getBin:[ue],getColorValue:[K.attribute],getElevationValue:[se.attribute]},diskResolution:6,vertices:$0e,radius:t,hexOriginCommon:n,elevationScale:i,colorRange:s,colorScaleType:T,elevationRange:o,extruded:l,coverage:f,material:A,colorDomain:K.domain||N||e.getResultDomain(0),elevationDomain:se.domain||G||e.getResultDomain(1),colorCutoff:K.cutoff,elevationCutoff:se.cutoff,transitions:v&&{getFillColor:v.getColorValue||v.getColorWeight,getElevation:v.getElevationValue||v.getElevationWeight},extensions:[]})}getPickingInfo(e){const t=e.info,{index:n}=t;if(n>=0){const i=this.state.aggregator.getBin(n);let s;if(i){const o=JM(i.id,this.state.radiusCommon),l=this.context.viewport.unprojectFlat(o);s={col:i.id[0],row:i.id[1],position:l,colorValue:i.value[0],elevationValue:i.value[1],count:i.count},i.pointIndices&&(s.pointIndices=i.pointIndices,s.points=Array.isArray(this.props.data)?i.pointIndices.map(f=>this.props.data[f]):[])}t.object=s}return t}}sT.layerName="HexagonLayer";sT.defaultProps=eme;const lr=.5,Tr=1/6,wt={N:[0,lr],E:[lr,0],S:[0,-lr],W:[-lr,0],NE:[lr,lr],NW:[-lr,lr],SE:[lr,-lr],SW:[-lr,-lr]},wd=[wt.W,wt.SW,wt.S],Td=[wt.S,wt.SE,wt.E],Ed=[wt.E,wt.NE,wt.N],Cd=[wt.NW,wt.W,wt.N],Sd=[[-lr,Tr],[-lr,-Tr],[-Tr,-lr],[Tr,-lr]],Id=[[-Tr,-lr],[Tr,-lr],[lr,-Tr],[lr,Tr]],Bd=[[lr,-Tr],[lr,Tr],[Tr,lr],[-Tr,lr]],Pd=[[-lr,Tr],[-lr,-Tr],[Tr,lr],[-Tr,lr]],ZM=[wt.W,wt.SW,wt.SE,wt.E],YM=[wt.S,wt.SE,wt.NE,wt.N],QM=[wt.NW,wt.W,wt.E,wt.NE],eR=[wt.NW,wt.SW,wt.S,wt.N],tR=[[-lr,Tr],[-lr,-Tr],[lr,-Tr],[lr,Tr]],rR=[[-Tr,-lr],[Tr,-lr],[Tr,lr],[-Tr,lr]],tme=[wt.NW,wt.SW,wt.SE,wt.NE],nR=[wt.NW,wt.SW,wt.SE,wt.E,wt.N],iR=[wt.W,wt.SW,wt.SE,wt.NE,wt.N],sR=[wt.NW,wt.W,wt.S,wt.SE,wt.NE],oR=[wt.NW,wt.SW,wt.S,wt.E,wt.NE],aR=[wt.NW,wt.W,[lr,-Tr],[lr,Tr],wt.N],lR=[[-Tr,-lr],[Tr,-lr],wt.E,wt.NE,wt.N],cR=[[-lr,Tr],[-lr,-Tr],wt.S,wt.SE,wt.E],uR=[wt.W,wt.SW,wt.S,[Tr,lr],[-Tr,lr]],fR=[wt.NW,wt.W,[-Tr,-lr],[Tr,-lr],wt.N],hR=[[-lr,Tr],[-lr,-Tr],wt.E,wt.NE,wt.N],dR=[wt.S,wt.SE,wt.E,[Tr,lr],[-Tr,lr]],pR=[wt.W,wt.SW,wt.S,[lr,-Tr],[lr,Tr]],AR=[wt.W,wt.SW,wt.SE,wt.E,[Tr,lr],[-Tr,lr]],gR=[[-lr,Tr],[-lr,-Tr],wt.S,wt.SE,wt.NE,wt.N],mR=[wt.NW,wt.W,[-Tr,-lr],[Tr,-lr],wt.E,wt.NE],_R=[wt.NW,wt.SW,wt.S,[lr,-Tr],[lr,Tr],wt.N],Md=[wt.W,wt.SW,wt.S,wt.E,wt.NE,wt.N],Rd=[wt.NW,wt.W,wt.S,wt.SE,wt.E,wt.N],tm=[[-lr,Tr],[-lr,-Tr],[-Tr,-lr],[Tr,-lr],wt.E,wt.NE,wt.N],rm=[wt.W,wt.SW,wt.S,[lr,-Tr],[lr,Tr],[Tr,lr],[-Tr,lr]],nm=[wt.NW,wt.W,[-Tr,-lr],[Tr,-lr],[lr,-Tr],[lr,Tr],wt.N],im=[[-lr,Tr],[-lr,-Tr],wt.S,wt.SE,wt.E,[Tr,lr],[-Tr,lr]],yR=[[-lr,Tr],[-lr,-Tr],[-Tr,-lr],[Tr,-lr],[lr,-Tr],[lr,Tr],[Tr,lr],[-Tr,lr]],rme={0:[],1:[[wt.W,wt.S]],2:[[wt.S,wt.E]],3:[[wt.W,wt.E]],4:[[wt.N,wt.E]],5:{0:[[wt.W,wt.S],[wt.N,wt.E]],1:[[wt.W,wt.N],[wt.S,wt.E]]},6:[[wt.N,wt.S]],7:[[wt.W,wt.N]],8:[[wt.W,wt.N]],9:[[wt.N,wt.S]],10:{0:[[wt.W,wt.N],[wt.S,wt.E]],1:[[wt.W,wt.S],[wt.N,wt.E]]},11:[[wt.N,wt.E]],12:[[wt.W,wt.E]],13:[[wt.S,wt.E]],14:[[wt.W,wt.S]],15:[]};function fr(r){return parseInt(r,4)}const nme={[fr("0000")]:[],[fr("2222")]:[],[fr("2221")]:[wd],[fr("2212")]:[Td],[fr("2122")]:[Ed],[fr("1222")]:[Cd],[fr("0001")]:[wd],[fr("0010")]:[Td],[fr("0100")]:[Ed],[fr("1000")]:[Cd],[fr("2220")]:[Sd],[fr("2202")]:[Id],[fr("2022")]:[Bd],[fr("0222")]:[Pd],[fr("0002")]:[Sd],[fr("0020")]:[Id],[fr("0200")]:[Bd],[fr("2000")]:[Pd],[fr("0011")]:[ZM],[fr("0110")]:[YM],[fr("1100")]:[QM],[fr("1001")]:[eR],[fr("2211")]:[ZM],[fr("2112")]:[YM],[fr("1122")]:[QM],[fr("1221")]:[eR],[fr("2200")]:[tR],[fr("2002")]:[rR],[fr("0022")]:[tR],[fr("0220")]:[rR],[fr("1111")]:[tme],[fr("1211")]:[nR],[fr("2111")]:[iR],[fr("1112")]:[sR],[fr("1121")]:[oR],[fr("1011")]:[nR],[fr("0111")]:[iR],[fr("1110")]:[sR],[fr("1101")]:[oR],[fr("12
496900")]:[aR],[fr("0120")]:[lR],[fr("0012")]:[cR],[fr("2001")]:[uR],[fr("1022")]:[aR],[fr("2102")]:[lR],[fr("2210")]:[cR],[fr("0221")]:[uR],[fr("1002")]:[fR],[fr("2100")]:[hR],[fr("0210")]:[dR],[fr("0021")]:[pR],[fr("1220")]:[fR],[fr("0122")]:[hR],[fr("2012")]:[dR],[fr("2201")]:[pR],[fr("0211")]:[AR],[fr("2110")]:[gR],[fr("1102")]:[mR],[fr("1021")]:[_R],[fr("2011")]:[AR],[fr("0112")]:[gR],[fr("1120")]:[mR],[fr("1201")]:[_R],[fr("2101")]:[Md],[fr("0121")]:[Md],[fr("1012")]:[Rd],[fr("1210")]:[Rd],[fr("0101")]:{0:[wd,Ed],1:[Md],2:[Md]},[fr("1010")]:{0:[Cd,Td],1:[Rd],2:[Rd]},[fr("2121")]:{0:[Md],1:[Md],2:[wd,Ed]},[fr("1212")]:{0:[Rd],1:[Rd],2:[Cd,Td]},[fr("2120")]:{0:[tm],1:[tm],2:[Sd,Ed]},[fr("2021")]:{0:[rm],1:[rm],2:[wd,Bd]},[fr("1202")]:{0:[nm],1:[nm],2:[Cd,Id]},[fr("0212")]:{0:[im],1:[im],2:[Td,Pd]},[fr("0102")]:{0:[Sd,Ed],1:[tm],2:[tm]},[fr("0201")]:{0:[wd,Bd],1:[rm],2:[rm]},[fr("1020")]:{0:[Cd,Id],1:[nm],2:[nm]},[fr("2010")]:{0:[Td,Pd],1:[im],2:[im]},[fr("2020")]:{0:[Pd,Id],1:[yR],2:[Sd,Bd]},[fr("0202")]:{0:[Bd,Sd],1:[yR],2:[Pd,Id]}};function bA(r,e){return Number.isNaN(r)?0:Array.isArray(e)?r<e[0]?0:r<e[1]?1:2:r>=e?1:0}function ime(r){const{x:e,y:t,xRange:n,yRange:i,getValue:s,threshold:o}=r,l=e<n[0],f=e>=n[1]-1,A=t<i[0],v=t>=i[1]-1,T=l||f||A||v;let I=0,F,N,U,$;if(l||v)U=0;else{const X=s(e,t+1);U=bA(X,o),I+=X}if(f||v)$=0;else{const X=s(e+1,t+1);$=bA(X,o),I+=X}if(f||A)N=0;else{const X=s(e+1,t);N=bA(X,o),I+=X}if(l||A)F=0;else{const X=s(e,t);F=bA(X,o),I+=X}let V=-1;Number.isFinite(o)&&(V=U<<3|$<<2|N<<1|F),Array.isArray(o)&&(V=U<<6|$<<4|N<<2|F);let G=0;return T||(G=bA(I/4,o)),{code:V,meanCode:G}}function sme(r){const{x:e,y:t,z:n,code:i,meanCode:s}=r;let o=nme[i];Array.isArray(o)||(o=o[s]);const l=e+1,f=t+1,A=[];return o.forEach(v=>{const T=[];v.forEach(I=>{const F=l+I[0],N=f+I[1];T.push([F,N,n])}),A.push(T)}),A}function ome(r){const{x:e,y:t,z:n,code:i,meanCode:s}=r;let o=rme[i];Array.isArray(o)||(o=o[s]);const l=e+1,f=t+1,A=[];return o.forEach(v=>{v.forEach(T=>{const I=l+T[0],F=f+T[1];A.push([I,F,n])})}),A}function ame({contours:r,getValue:e,xRange:t,yRange:n}){const i=[],s=[];let o=0,l=0;for(let f=0;f<r.length;f++){const A=r[f],v=A.zIndex??f,{threshold:T}=A;for(let I=t[0]-1;I<t[1];I++)for(let F=n[0]-1;F<n[1];F++){const{code:N,meanCode:U}=ime({getValue:e,threshold:T,x:I,y:F,xRange:t,yRange:n}),$={x:I,y:F,z:v,code:N,meanCode:U};if(Array.isArray(T)){const V=sme($);for(const G of V)s[l++]={vertices:G,contour:A}}else{const V=ome($);V.length>0&&(i[o++]={vertices:V,contour:A})}}}return{lines:i,polygons:s}}function lme(r){const{aggregator:e,binIdRange:t,channel:n}=r;if(e instanceof Ua){const i=e.getResult(n)?.buffer;if(i){const s=new Float32Array(i.readSyncWebGL().buffer);return cme(s,t)}}if(e instanceof Bp){const i=e.getResult(n)?.value,s=e.getBins()?.value;if(s&&i)return ume(i,s,e.binCount)}return null}function cme(r,e){const[[t,n],[i,s]]=e,o=n-t,l=s-i;return(f,A)=>(f-=t,A-=i,f<0||f>=o||A<0||A>=l?NaN:r[A*o+f])}function ume(r,e,t){const n={};for(let i=0;i<t;i++){const s=e[i*2],o=e[i*2+1];n[s]=n[s]||{},n[s][o]=r[i]}return(i,s)=>n[i]?.[s]??NaN}const fme=`uniform binOptionsUniforms { 4970 vec2 cellOriginCommon; 4971 vec2 cellSizeCommon; 4972} binOptions; 4973`,hme={name:"binOptions",vs:fme,uniformTypes:{cellOriginCommon:"vec2<f32>",cellSizeCommon:"vec2<f32>"}},vR=[255,255,255,255],dme=1,pme={cellSize:{type:"number",min:1,value:1e3},gridOrigin:{type:"array",compare:!0,value:[0,0]},getPosition:{type:"accessor",value:r=>r.position},getWeight:{type:"accessor",value:1},gpuAggregation:!0,aggregation:"SUM",contours:{type:"object",value:[{threshold:1}],optional:!0,compare:3},zOffset:.005};let oT=class extends Pp{getAggregatorType(){return this.props.gpuAggregation&&Ua.isSupported(this.context.device)?"gpu":"cpu"}createAggregator(e){return e==="cpu"?new Bp({dimensions:2,getBin:{sources:["positions"],getValue:({positions:t},n,i)=>{const o=this.state.aggregatorViewport.projectPosition(t),{cellSizeCommon:l,cellOriginCommon:f}=i;return[Math.floor((o[0]-f[0])/l[0]),Math.floor((o[1]-f[1])/l[1])]}},getValue:[{sources:["counts"],getValue:({counts:t})=>t}],onUpdate:this._onAggregationUpdate.bind(this)}):new Ua(this.context.device,{dimensions:2,channelCount:1,bufferLayout:this.getAttributeManager().getBufferLayouts({isInstanced:!1}),...super.getShaders({modules:[Ls,hme],vs:` 4974 in vec3 positions; 4975 in vec3 positions64Low; 4976 in float counts; 4977 4978 void getBin(out ivec2 binId) { 4979 vec3 positionCommon = project_position(positions, positions64Low); 4980 vec2 gridCoords = floor(positionCommon.xy / binOptions.cellSizeCommon); 4981 binId = ivec2(gridCoords); 4982 } 4983 void getValue(out float value) { 4984 value = counts; 4985 } 4986 `}),onUpdate:this._onAggregationUpdate.bind(this)})}initializeState(){super.initializeState(),this.getAttributeManager().add({positions:{size:3,accessor:"getPosition",type:"float64",fp64:this.use64bitPositions()},counts:{size:1,accessor:"getWeight"}})}updateState(e){const t=super.updateState(e),{props:n,oldProps:i,changeFlags:s}=e,{aggregator:o}=this.state;if(t||s.dataChanged||n.cellSize!==i.cellSize||!rs(n.gridOrigin,i.gridOrigin,1)||n.aggregation!==i.aggregation){this._updateBinOptions();const{cellSizeCommon:l,cellOriginCommon:f,binIdRange:A}=this.state;o.setProps({binIdRange:A,pointCount:this.getNumInstances(),operations:[n.aggregation],binOptions:{cellSizeCommon:l,cellOriginCommon:f}})}return rs(i.contours,n.contours,2)||this.setState({contourData:null}),t}_updateBinOptions(){const e=this.getBounds(),t=[1,1];let n=[0,0],i=[[0,1],[0,1]],s=this.context.viewport;if(e&&Number.isFinite(e[0][0])){let o=[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2];const{cellSize:l,gridOrigin:f}=this.props,{unitsPerMeter:A}=s.getDistanceScales(o);t[0]=A[0]*l,t[1]=A[1]*l;const v=s.projectFlat(o);n=[Math.floor((v[0]-f[0])/t[0])*t[0]+f[0],Math.floor((v[1]-f[1])/t[1])*t[1]+f[1]],o=s.unprojectFlat(n);const T=s.constructor;s=s.isGeospatial?new T({longitude:o[0],latitude:o[1],zoom:12}):new eu({position:[o[0],o[1],0],zoom:12}),n=[Math.fround(s.center[0]),Math.fround(s.center[1])],i=iT({dataBounds:e,getBinId:I=>{const F=s.projectFlat(I);return[Math.floor((F[0]-n[0])/t[0]),Math.floor((F[1]-n[1])/t[1])]}})}this.setState({cellSizeCommon:t,cellOriginCommon:n,binIdRange:i,aggregatorViewport:s})}draw(e){e.shaderModuleProps.project&&(e.shaderModuleProps.project.viewport=this.state.aggregatorViewport),super.draw(e)}
4986_onAggregationUpdate(){const{aggregator:e,binIdRange:t}=this.state;this.setState({aggregatedValueReader:lme({aggregator:e,binIdRange:t,channel:0}),contourData:null})}_getContours(){const{aggregatedValueReader:e}=this.state;if(!e)return null;if(!this.state.contourData){const{binIdRange:t}=this.state,{contours:n}=this.props,i=ame({contours:n,getValue:e,xRange:t[0],yRange:t[1]});this.state.contourData=i}return this.state.contourData}onAttributeChange(e){const{aggregator:t}=this.state;switch(e){case"positions":t.setNeedsUpdate(),this._updateBinOptions();const{cellSizeCommon:n,cellOriginCommon:i,binIdRange:s}=this.state;t.setProps({binIdRange:s,binOptions:{cellSizeCommon:n,cellOriginCommon:i}});break;case"counts":t.setNeedsUpdate(0);break}}renderLayers(){const e=this._getContours();if(!e)return null;const{lines:t,polygons:n}=e,{zOffset:i}=this.props,{cellOriginCommon:s,cellSizeCommon:o}=this.state,l=this.getSubLayerClass("lines",sf),f=this.getSubLayerClass("bands",of),A=new vn().translate([s[0],s[1],0]).scale([o[0],o[1],i]),v=t&&t.length>0&&new l(this.getSubLayerProps({id:"lines"}),{data:t,coordinateSystem:Qr.CARTESIAN,modelMatrix:A,getPath:I=>I.vertices,getColor:I=>I.contour.color??vR,getWidth:I=>I.contour.strokeWidth??dme,widthUnits:"pixels"}),T=n&&n.length>0&&new f(this.getSubLayerProps({id:"bands"}),{data:n,coordinateSystem:Qr.CARTESIAN,modelMatrix:A,getPolygon:I=>I.vertices,getFillColor:I=>I.contour.color??vR});return[v,T]}getPickingInfo(e){const t=e.info,{object:n}=t;return n&&(t.object={contour:n.contour}),t}};oT.layerName="ContourLayer";oT.defaultProps=pme;const Ame=`#version 300 es 4987#define SHADER_NAME grid-cell-layer-vertex-shader 4988in vec3 positions; 4989in vec3 normals; 4990in vec2 instancePositions; 4991in float instanceElevationValues; 4992in float instanceColorValues; 4993in vec3 instancePickingColors; 4994uniform sampler2D colorRange; 4995out vec4 vColor; 4996float interp(float value, vec2 domain, vec2 range) { 4997float r = min(max((value - domain.x) / (domain.y - domain.x), 0.), 1.); 4998return mix(range.x, range.y, r); 4999} 5000vec4 interp(float value, vec2 domain, sampler2D range) { 5001float r = (value - domain.x) / (domain.y - domain.x); 5002return texture(range, vec2(r, 0.5)); 5003} 5004void main(void) { 5005geometry.pickingColor = instancePickingColors; 5006if (isnan(instanceColorValues) || 5007instanceColorValues < grid.colorDomain.z || 5008instanceColorValues > grid.colorDomain.w || 5009instanceElevationValues < grid.elevationDomain.z || 5010instanceElevationValues > grid.elevationDomain.w 5011) { 5012gl_Position = vec4(0.); 5013return; 5014} 5015vec2 commonPosition = (instancePositions + (positions.xy + 1.0) / 2.0 * column.coverage) * grid.sizeCommon + grid.originCommon - project.commonOrigin.xy; 5016geometry.position = vec4(commonPosition, 0.0, 1.0); 5017geometry.normal = project_normal(normals); 5018float elevation = 0.0; 5019if (column.extruded) { 5020elevation = interp(instanceElevationValues, grid.elevationDomain.xy, grid.elevationRange); 5021elevation = project_size(elevation); 5022geometry.position.z = (positions.z + 1.0) / 2.0 * elevation; 5023} 5024gl_Position = project_common_position_to_clipspace(geometry.position); 5025DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 5026vColor = interp(instanceColorValues, grid.colorDomain.xy, colorRange); 5027vColor.a *= layer.opacity; 5028if (column.extruded) { 5029vColor.rgb = lighting_getLightColor(vColor.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal); 5030} 5031DECKGL_FILTER_COLOR(vColor, geometry); 5032} 5033`,gme=`uniform gridUniforms { 5034 vec4 colorDomain; 5035 vec4 elevationDomain; 5036 vec2 elevationRange; 5037 vec2 originCommon; 5038 vec2 sizeCommon; 5039} grid; 5040`,mme={name:"grid",vs:gme,uniformTypes:{colorDomain:"vec4<f32>",elevationDomain:"vec4<f32>",elevationRange:"vec2<f32>",originCommon:"vec2<f32>",sizeCommon:"vec2<f32>"}};class ak extends pc{getShaders(){const e=super.getShaders();return e.modules.push(mme),{...e,vs:Ame}}initializeState(){super.initializeState();const e=this.getAttributeManager();e.remove(["instanceElevations","instanceFillColors","instanceLineColors","instanceStrokeWidths"]),e.addInstanced({instancePositions:{size:2,type:"float32",accessor:"getBin"},instanceColorValues:{size:1,type:"float32",accessor:"getColorValue"},instanceElevationValues:{size:1,type:"float32",accessor:"getElevationValue"}})}updateState(e){super.updateState(e);const{props:t,oldProps:n}=e,i=this.state.fillModel;if(n.colorRange!==t.colorRange){this.state.colorTexture?.destroy(),this.state.colorTexture=rT(this.context.device,t.colorRange,t.colorScaleType);const s={colorRange:this.state.colorTexture};i.shaderInputs.setProps({grid:s})}else n.colorScaleType!==t.colorScaleType&&tT(this.state.colorTexture,t.colorScaleType)}finalizeState(e){super.finalizeState(e),this.state.colorTexture?.destroy()}_updateGeometry(){const e=new dD;this.state.fillModel.setGeometry(e)}draw({uniforms:e}){const{cellOriginCommon:t,cellSizeCommon:n,elevationRange:i,elevationScale:s,extruded:o,coverage:l,colorDomain:f,elevationDomain:A}=this.props,v=this.props.colorCutoff||[-1/0,1/0],T=this.props.elevationCutoff||[-1/0,1/0],I=this.state.fillModel,F={colorDomain:[Math.max(f[0],v[0]),Math.min(f[1],v[1]),Math.max(f[0]-1,v[0]),Math.min(f[1]+1,v[1])],elevationDomain:[Math.max(A[0],T[0]),Math.min(A[1],T[1]),Math.max(A[0]-1,T[0]),Math.min(A[1]+1,T[1])],elevationRange:[i[0]*s,i[1]*s],originCommon:t,sizeCommon:n};I.shaderInputs.setProps({column:{extruded:o,coverage:l},grid:F}),I.draw(this.context.renderPass)}}ak.layerName="GridCellLayer";const _me=`uniform binOptionsUniforms { 5041 vec2 cellOriginCommon; 5042 vec2 cellSizeCommon; 5043} binOptions; 5044`,yme={name:"binOptions",vs:_me,uniformTypes:{cellOriginCommon:"vec2<f32>",cellSizeCommon:"vec2<f32>"}};function bR(){}const vme={gpuAggregation:!0,colorDomain:null,colorRange:hy,getColorValue:{type:"accessor",value:null},getColorWeight:{type:"accessor",value:1},colorAggregation:"SUM",lowerPercentile:{type:"number",min:0,max:100,value:0},upperPercentile:{type:"number",min:0,max:100,value:100},colorScaleType:"quantize",onSetColorDomain:bR,elevationDomain:null,elevationRange:[0,1e3],getElevationValue:{type:"accessor",value:null},getElevationWeight:{type:"accessor",value:1},elevationAggregation:"SUM",elevationScale:{type:"number",min:0,value:1},elevationLowerPercentile:{type:"number",min:0,max:100,value:0},elevationUpperPercentile:{type:"number",min:0,max:100,value:100},elevationScaleType:"linear",onSetElevationDomain:bR,cellSize:{type:"number",min:0,value:1e3},coverage:{type:"number",min:0,max:1,value:1},getPosition:{type:"accessor",value:r=>r.position},gridAggregator:{type:"function",optional:!0,value:null},extruded:!1,material:!0};class aT extends Pp{getAggregatorType(){const{gpuAggregation:e,gridAggregator:t,getColorValue:n,getElevationValue:i}=this.props;return e&&(t||n||i)?(Zr.warn("Features not supported by GPU aggregation, falling back to CPU")(),"cpu"):e&&Ua.isSupported(this.context.device)?"gpu":"cpu"}createAggregator(e){if(e==="cpu"){const{gridAggregator:t,cellSize:n}=this.props;return new Bp({dimensions:2,getBin:{sources:["positions"],getValue:({positions:i},s,o)=>
5044{if(t)return t(i,n);const f=this.state.aggregatorViewport.projectPosition(i),{cellSizeCommon:A,cellOriginCommon:v}=o;return[Math.floor((f[0]-v[0])/A[0]),Math.floor((f[1]-v[1])/A[1])]}},getValue:[{sources:["colorWeights"],getValue:({colorWeights:i})=>i},{sources:["elevationWeights"],getValue:({elevationWeights:i})=>i}]})}return new Ua(this.context.device,{dimensions:2,channelCount:2,bufferLayout:this.getAttributeManager().getBufferLayouts({isInstanced:!1}),...super.getShaders({modules:[Ls,yme],vs:` 5045 in vec3 positions; 5046 in vec3 positions64Low; 5047 in float colorWeights; 5048 in float elevationWeights; 5049 5050 void getBin(out ivec2 binId) { 5051 vec3 positionCommon = project_position(positions, positions64Low); 5052 vec2 gridCoords = floor(positionCommon.xy / binOptions.cellSizeCommon); 5053 binId = ivec2(gridCoords); 5054 } 5055 void getValue(out vec2 value) { 5056 value = vec2(colorWeights, elevationWeights); 5057 } 5058 `})})}initializeState(){super.initializeState(),this.getAttributeManager().add({positions:{size:3,accessor:"getPosition",type:"float64",fp64:this.use64bitPositions()},colorWeights:{size:1,accessor:"getColorWeight"},elevationWeights:{size:1,accessor:"getElevationWeight"}})}updateState(e){const t=super.updateState(e),{props:n,oldProps:i,changeFlags:s}=e,{aggregator:o}=this.state;if((s.dataChanged||!this.state.dataAsArray)&&(n.getColorValue||n.getElevationValue)&&(this.state.dataAsArray=Array.from(dc(n.data).iterable)),t||s.dataChanged||n.cellSize!==i.cellSize||n.getColorValue!==i.getColorValue||n.getElevationValue!==i.getElevationValue||n.colorAggregation!==i.colorAggregation||n.elevationAggregation!==i.elevationAggregation){this._updateBinOptions();const{cellSizeCommon:l,cellOriginCommon:f,binIdRange:A,dataAsArray:v}=this.state;if(o.setProps({binIdRange:A,pointCount:this.getNumInstances(),operations:[n.colorAggregation,n.elevationAggregation],binOptions:{cellSizeCommon:l,cellOriginCommon:f},onUpdate:this._onAggregationUpdate.bind(this)}),v){const{getColorValue:T,getElevationValue:I}=this.props;o.setProps({customOperations:[T&&(F=>T(F.map(N=>v[N]),{indices:F,data:n.data})),I&&(F=>I(F.map(N=>v[N]),{indices:F,data:n.data}))]})}}return s.updateTriggersChanged&&s.updateTriggersChanged.getColorValue&&o.setNeedsUpdate(0),s.updateTriggersChanged&&s.updateTriggersChanged.getElevationValue&&o.setNeedsUpdate(1),t}_updateBinOptions(){const e=this.getBounds(),t=[1,1];let n=[0,0],i=[[0,1],[0,1]],s=this.context.viewport;if(e&&Number.isFinite(e[0][0])){let o=[(e[0][0]+e[1][0])/2,(e[0][1]+e[1][1])/2];const{cellSize:l}=this.props,{unitsPerMeter:f}=s.getDistanceScales(o);t[0]=f[0]*l,t[1]=f[1]*l;const A=s.projectFlat(o);n=[Math.floor(A[0]/t[0])*t[0],Math.floor(A[1]/t[1])*t[1]],o=s.unprojectFlat(n);const v=s.constructor;s=s.isGeospatial?new v({longitude:o[0],latitude:o[1],zoom:12}):new eu({position:[o[0],o[1],0],zoom:12}),n=[Math.fround(s.center[0]),Math.fround(s.center[1])],i=iT({dataBounds:e,getBinId:T=>{const I=s.projectFlat(T);return[Math.floor((I[0]-n[0])/t[0]),Math.floor((I[1]-n[1])/t[1])]}})}this.setState({cellSizeCommon:t,cellOriginCommon:n,binIdRange:i,aggregatorViewport:s})}draw(e){e.shaderModuleProps.project&&(e.shaderModuleProps.project.viewport=this.state.aggregatorViewport),super.draw(e)}_onAggregationUpdate({channel:e}){const t=this.getCurrentLayer().props,{aggregator:n}=this.state;if(e===0){const i=n.getResult(0);this.setState({colors:new T_(i,n.binCount)}),t.onSetColorDomain(n.getResultDomain(0))}else if(e===1){const i=n.getResult(1);this.setState({elevations:new T_(i,n.binCount)}),t.onSetElevationDomain(n.getResultDomain(1))}}onAttributeChange(e){const{aggregator:t}=this.state;switch(e){case"positions":t.setNeedsUpdate(),this._updateBinOptions();const{cellSizeCommon:n,cellOriginCommon:i,binIdRange:s}=this.state;t.setProps({binIdRange:s,binOptions:{cellSizeCommon:n,cellOriginCommon:i}});break;case"colorWeights":t.setNeedsUpdate(0);break;case"elevationWeights":t.setNeedsUpdate(1);break}}renderLayers(){const{aggregator:e,cellOriginCommon:t,cellSizeCommon:n}=this.state,{elevationScale:i,colorRange:s,elevationRange:o,extruded:l,coverage:f,material:A,transitions:v,colorScaleType:T,lowerPercentile:I,upperPercentile:F,colorDomain:N,elevationScaleType:U,elevationLowerPercentile:$,elevationUpperPercentile:V,elevationDomain:G}
5058=this.props,X=this.getSubLayerClass("cells",ak),ue=e.getBins(),K=this.state.colors?.update({scaleType:T,lowerPercentile:I,upperPercentile:F}),se=this.state.elevations?.update({scaleType:U,lowerPercentile:$,upperPercentile:V});return!K||!se?null:new X(this.getSubLayerProps({id:"cells"}),{data:{length:e.binCount,attributes:{getBin:ue,getColorValue:K.attribute,getElevationValue:se.attribute}},dataComparator:(Ee,Ue)=>Ee.length===Ue.length,updateTriggers:{getBin:[ue],getColorValue:[K.attribute],getElevationValue:[se.attribute]},cellOriginCommon:t,cellSizeCommon:n,elevationScale:i,colorRange:s,colorScaleType:T,elevationRange:o,extruded:l,coverage:f,material:A,colorDomain:K.domain||N||e.getResultDomain(0),elevationDomain:se.domain||G||e.getResultDomain(1),colorCutoff:K.cutoff,elevationCutoff:se.cutoff,transitions:v&&{getFillColor:v.getColorValue||v.getColorWeight,getElevation:v.getElevationValue||v.getElevationWeight},extensions:[]})}getPickingInfo(e){const t=e.info,{index:n}=t;if(n>=0){const i=this.state.aggregator.getBin(n);let s;i&&(s={col:i.id[0],row:i.id[1],colorValue:i.value[0],elevationValue:i.value[1],count:i.count},i.pointIndices&&(s.pointIndices=i.pointIndices,s.points=Array.isArray(this.props.data)?i.pointIndices.map(o=>this.props.data[o]):[])),t.object=s}return t}}aT.layerName="GridLayer";aT.defaultProps=vme;function bme(r){const e=r.map(l=>l[0]),t=r.map(l=>l[1]),n=Math.min.apply(null,e),i=Math.max.apply(null,e),s=Math.min.apply(null,t),o=Math.max.apply(null,t);return[n,s,i,o]}function xme(r,e){return e[0]>=r[0]&&e[2]<=r[2]&&e[1]>=r[1]&&e[3]<=r[3]}const xR=new Float32Array(12);function wR(r,e=2){let t=0;for(const n of r)for(let i=0;i<e;i++)xR[t++]=n[i]||0;return xR}function wme(r,e,t){const[n,i,s,o]=r,l=s-n,f=o-i;let A=l,v=f;l/f<e/t?A=e/t*f:v=t/e*l,A<e&&(A=e,v=t);const T=(s+n)/2,I=(o+i)/2;return[T-A/2,I-v/2,T+A/2,I+v/2]}function Tme(r,e){const[t,n,i,s]=e;return[(r[0]-t)/(i-t),(r[1]-n)/(s-n)]}const Eme=`#version 300 es 5059#define SHADER_NAME heatp-map-layer-vertex-shader 5060uniform sampler2D maxTexture; 5061in vec3 positions; 5062in vec2 texCoords; 5063out vec2 vTexCoords; 5064out float vIntensityMin; 5065out float vIntensityMax; 5066void main(void) { 5067gl_Position = project_position_to_clipspace(positions, vec3(0.0), vec3(0.0)); 5068vTexCoords = texCoords; 5069vec4 maxTexture = texture(maxTexture, vec2(0.5)); 5070float maxValue = triangle.aggregationMode < 0.5 ? maxTexture.r : maxTexture.g; 5071float minValue = maxValue * triangle.threshold; 5072if (triangle.colorDomain[1] > 0.) { 5073maxValue = triangle.colorDomain[1]; 5074minValue = triangle.colorDomain[0]; 5075} 5076vIntensityMax = triangle.intensity / maxValue; 5077vIntensityMin = triangle.intensity / minValue; 5078} 5079`,Cme=`#version 300 es 5080#define SHADER_NAME triangle-layer-fragment-shader 5081precision highp float; 5082uniform sampler2D weightsTexture; 5083uniform sampler2D colorTexture; 5084in vec2 vTexCoords; 5085in float vIntensityMin; 5086in float vIntensityMax; 5087out vec4 fragColor; 5088vec4 getLinearColor(float value) { 5089float factor = clamp(value * vIntensityMax, 0., 1.); 5090vec4 color = texture(colorTexture, vec2(factor, 0.5)); 5091color.a *= min(value * vIntensityMin, 1.0); 5092return color; 5093} 5094void main(void) { 5095vec4 weights = texture(weightsTexture, vTexCoords); 5096float weight = weights.r; 5097if (triangle.aggregationMode > 0.5) { 5098weight /= max(1.0, weights.a); 5099} 5100if (weight <= 0.) { 5101discard; 5102} 5103vec4 linearColor = getLinearColor(weight); 5104linearColor.a *= layer.opacity; 5105fragColor = linearColor; 5106} 5107`,TR=`uniform triangleUniforms { 5108 float aggregationMode; 5109 vec2 colorDomain; 5110 float intensity; 5111 float threshold; 5112} triangle; 5113`,Sme={name:"triangle",vs:TR,fs:TR,uniformTypes:{aggregationMode:"f32",colorDomain:"vec2<f32>",intensity:"f32",threshold:"f32"}};class lk extends Cs{getShaders(){return super.getShaders({vs:Eme,fs:Cme,modules:[Ls,Sme]})}initializeState({device:e}){this.setState({model:this._getModel(e)})}_getModel(e){const{vertexCount:t,data:n}=this.props;return new Di(e,{...this.getShaders(),id:this.props.id,attributes:n.attributes,bufferLayout:[{name:"positions",format:"float32x3"},{name:"texCoords",format:"float32x2"}],topology:"triangle-strip",vertexCount:t})}draw(){const{model:e}=this.state,{aggregationMode:t,colorDomain:n,intensity:i,threshold:s,colorTexture:o,maxTexture:l,weightsTexture:f}=this.props,A={aggregationMode:t,colorDomain:n,intensity:i,threshold:s,colorTexture:o,maxTexture:l,weightsTexture:f};e.shaderInputs.setProps({triangle:A}),e.draw(this.context.renderPass)}}lk.layerName="TriangleLayer";function Ime(r,e){const t={};for(const n in r)e.includes(n)||(t[n]=r[n]);return t}class ck extends Ss{initializeAggregationLayer(e){super.initializeState(this.context),this.setState({ignoreProps:Ime(this.constructor._propTypes,e.data.props),dimensions:e})}updateState(e){super.updateState(e);const{changeFlags:t}=e;if(t.extensionsChanged){const n=this.getShaders({});n&&n.defines&&(n.defines.NON_INSTANCED_MODEL=1),this.updateShaders(n)}this._updateAttributes()}updateAttributes(e){this.setState({changedAttributes:e})}getAttributes(){return this.getAttributeManager().getAttributes()}getModuleSettings(){const{viewport:e,mousePosition:t,device:n}=this.context;return Object.assign(Object.create(this.props),{viewport:e,mousePosition:t,picking:{isActive:0},devicePixelRatio:n.canvasContext.cssToDeviceRatio()})}updateShaders(e){}isAggregationDirty(e,t={}){const{props:n,oldProps:i,changeFlags:s}=e,{compareAll:o=!1,dimension:l}=t,{ignoreProps:f}=this.state,{props:A,accessors:v=[]}=l,{updateTriggersChanged:T}=s;if(s.dataChanged)return!0;
5113if(T){if(T.all)return!0;for(const I of v)if(T[I])return!0}if(o)return s.extensionsChanged?!0:kx({oldProps:i,newProps:n,ignoreProps:f,propTypes:this.constructor._propTypes});for(const I of A)if(n[I]!==i[I])return!0;return!1}isAttributeChanged(e){const{changedAttributes:t}=this.state;return e?t&&t[e]!==void 0:!Bme(t)}_getAttributeManager(){return new k_(this.context.device,{id:this.props.id,stats:this.context.stats})}}ck.layerName="AggregationLayer";function Bme(r){let e=!0;for(const t in r){e=!1;break}return e}const ER=`#version 300 es 5114in vec3 positions; 5115in vec3 positions64Low; 5116in float weights; 5117out vec4 weightsTexture; 5118void main() 5119{ 5120weightsTexture = vec4(weights * weight.weightsScale, 0., 0., 1.); 5121float radiusTexels = project_pixel_size(weight.radiusPixels) * weight.textureWidth / (weight.commonBounds.z - weight.commonBounds.x); 5122gl_PointSize = radiusTexels * 2.; 5123vec3 commonPosition = project_position(positions, positions64Low); 5124gl_Position.xy = (commonPosition.xy - weight.commonBounds.xy) / (weight.commonBounds.zw - weight.commonBounds.xy) ; 5125gl_Position.xy = (gl_Position.xy * 2.) - (1.); 5126gl_Position.w = 1.0; 5127} 5128`,CR=`#version 300 es 5129in vec4 weightsTexture; 5130out vec4 fragColor; 5131float gaussianKDE(float u){ 5132return pow(2.71828, -u*u/0.05555)/(1.77245385*0.166666); 5133} 5134void main() 5135{ 5136float dist = length(gl_PointCoord - vec2(0.5, 0.5)); 5137if (dist > 0.5) { 5138discard; 5139} 5140fragColor = weightsTexture * gaussianKDE(2. * dist); 5141DECKGL_FILTER_COLOR(fragColor, geometry); 5142} 5143`,Pme=`#version 300 es 5144uniform sampler2D inTexture; 5145out vec4 outTexture; 5146void main() 5147{ 5148int yIndex = gl_VertexID / int(maxWeight.textureSize); 5149int xIndex = gl_VertexID - (yIndex * int(maxWeight.textureSize)); 5150vec2 uv = (0.5 + vec2(float(xIndex), float(yIndex))) / maxWeight.textureSize; 5151outTexture = texture(inTexture, uv); 5152gl_Position = vec4(0.0, 0.0, 0.0, 1.0); 5153gl_PointSize = 1.0; 5154} 5155`,Mme=`#version 300 es 5156in vec4 outTexture; 5157out vec4 fragColor; 5158void main() { 5159fragColor = outTexture; 5160fragColor.g = outTexture.r / max(1.0, outTexture.a); 5161} 5162`,Rme=`uniform weightUniforms { 5163 vec4 commonBounds; 5164 float radiusPixels; 5165 float textureWidth; 5166 float weightsScale; 5167} weight; 5168`,Ome={name:"weight",vs:Rme,uniformTypes:{commonBounds:"vec4<f32>",radiusPixels:"f32",textureWidth:"f32",weightsScale:"f32"}},Dme={name:"maxWeight",vs:`uniform maxWeightUniforms { 5169 float textureSize; 5170} maxWeight; 5171`,uniformTypes:{textureSize:"f32"}},Fme=2,l1={format:"rgba8unorm",mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}},SR=[0,0],Lme={SUM:0,MEAN:1},kme={getPosition:{type:"accessor",value:r=>r.position},getWeight:{type:"accessor",value:1},intensity:{type:"number",min:0,value:1},radiusPixels:{type:"number",min:1,max:100,value:50}
5171,colorRange:hy,threshold:{type:"number",min:0,max:1,value:.05},colorDomain:{type:"array",value:null,optional:!0},aggregation:"SUM",weightsTextureSize:{type:"number",min:128,max:2048,value:2048},debounceTimeout:{type:"number",min:0,max:1e3,value:500}},Nme=["float32-renderable-webgl","texture-blend-float-webgl"],Ume={data:{props:["radiusPixels"]}};class lT extends ck{getShaders(e){let t=[Ls];return e.modules&&(t=[...t,...e.modules]),super.getShaders({...e,modules:t})}initializeState(){super.initializeAggregationLayer(Ume),this.setState({colorDomain:SR}),this._setupTextureParams(),this._setupAttributes(),this._setupResources()}shouldUpdateState({changeFlags:e}){return e.somethingChanged}updateState(e){super.updateState(e),this._updateHeatmapState(e)}_updateHeatmapState(e){const{props:t,oldProps:n}=e,i=this._getChangeFlags(e);(i.dataChanged||i.viewportChanged)&&(i.boundsChanged=this._updateBounds(i.dataChanged),this._updateTextureRenderingBounds()),i.dataChanged||i.boundsChanged?(clearTimeout(this.state.updateTimer),this.setState({isWeightMapDirty:!0})):i.viewportZoomChanged&&this._debouncedUpdateWeightmap(),t.colorRange!==n.colorRange&&this._updateColorTexture(e),this.state.isWeightMapDirty&&this._updateWeightmap(),this.setState({zoom:e.context.viewport.zoom})}renderLayers(){const{weightsTexture:e,triPositionBuffer:t,triTexCoordBuffer:n,maxWeightsTexture:i,colorTexture:s,colorDomain:o}=this.state,{updateTriggers:l,intensity:f,threshold:A,aggregation:v}=this.props,T=this.getSubLayerClass("triangle",lk);return new T(this.getSubLayerProps({id:"triangle-layer",updateTriggers:l}),{coordinateSystem:Qr.DEFAULT,data:{attributes:{positions:t,texCoords:n}},vertexCount:4,maxTexture:i,colorTexture:s,aggregationMode:Lme[v]||0,weightsTexture:e,intensity:f,threshold:A,colorDomain:o})}finalizeState(e){super.finalizeState(e);const{weightsTransform:t,weightsTexture:n,maxWeightTransform:i,maxWeightsTexture:s,triPositionBuffer:o,triTexCoordBuffer:l,colorTexture:f,updateTimer:A}=this.state;t?.destroy(),n?.destroy(),i?.destroy(),s?.destroy(),o?.destroy(),l?.destroy(),f?.destroy(),A&&clearTimeout(A)}_getAttributeManager(){return new k_(this.context.device,{id:this.props.id,stats:this.context.stats})}_getChangeFlags(e){const t={},{dimensions:n}=this.state;t.dataChanged=this.isAttributeChanged()&&"attribute changed"||this.isAggregationDirty(e,{compareAll:!0,dimension:n.data})&&"aggregation is dirty",t.viewportChanged=e.changeFlags.viewportChanged;const{zoom:i}=this.state;return(!e.context.viewport||e.context.viewport.zoom!==i)&&(t.viewportZoomChanged=!0),t}_createTextures(){const{textureSize:e,format:t}=this.state;this.setState({weightsTexture:this.context.device.createTexture({...l1,width:e,height:e,format:t}),maxWeightsTexture:this.context.device.createTexture({...l1,width:1,height:1,format:t})})}_setupAttributes(){this.getAttributeManager().add({positions:{size:3,type:"float64",accessor:"getPosition"},weights:{size:1,accessor:"getWeight"}}),this.setState({positionAttributeName:"positions"})}_setupTextureParams(){const{device:e}=this.context,{weightsTextureSize:t}=this.props,n=Math.min(t,e.limits.maxTextureDimension2D),i=Nme.every(l=>e.features.has(l)),s=i?"rgba32float":"rgba8unorm",o=i?1:1/255;this.setState({textureSize:n,format:s,weightsScale:o}),i||Zr.warn(`HeatmapLayer: ${this.id} rendering to float texture not supported, falling back to low precision format`)()}_createWeightsTransform(e){let{weightsTransform:t}=this.state;const{weightsTexture:n}=this.state,i=this.getAttributeManager();t?.destroy(),t=new U3(this.context.device,{id:`${this.id}-weights-transform`,bufferLayout:i.getBufferLayouts(),vertexCount:1,targetTexture:n,parameters:{depthWriteEnabled:!1,blendColorOperation:"add",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"},topology:"point-list",...e,modules:[...e.modules,Ome]}),this.setState({weightsTransform:t})}_setupResources(){this._createTextures();const{device:e}=this.context,{textureSize:t,weightsTexture:n,maxWeightsTexture:i}=this.state,s=this.getShaders({vs:ER,fs:CR});this._createWeightsTransform(s);const o=this.getShaders({vs:Pme,fs:Mme,modules:[Dme]}
5171),l=new U3(e,{id:`${this.id}-max-weights-transform`,targetTexture:i,...o,vertexCount:t*t,topology:"point-list",parameters:{depthWriteEnabled:!1,blendColorOperation:"max",blendAlphaOperation:"max",blendColorSrcFactor:"one",blendColorDstFactor:"one",blendAlphaSrcFactor:"one",blendAlphaDstFactor:"one"}}),f={inTexture:n,textureSize:t};l.model.shaderInputs.setProps({maxWeight:f}),this.setState({weightsTexture:n,maxWeightsTexture:i,maxWeightTransform:l,zoom:null,triPositionBuffer:e.createBuffer({byteLength:48}),triTexCoordBuffer:e.createBuffer({byteLength:48})})}updateShaders(e){this._createWeightsTransform({vs:ER,fs:CR,...e})}_updateMaxWeightValue(){const{maxWeightTransform:e}=this.state;e.run({parameters:{viewport:[0,0,1,1]},clearColor:[0,0,0,0]})}_updateBounds(e=!1){const{viewport:t}=this.context,n=[t.unproject([0,0]),t.unproject([t.width,0]),t.unproject([0,t.height]),t.unproject([t.width,t.height])].map(l=>l.map(Math.fround)),i=bme(n),s={visibleWorldBounds:i,viewportCorners:n};let o=!1;if(e||!this.state.worldBounds||!xme(this.state.worldBounds,i)){const l=this._worldToCommonBounds(i),f=this._commonToWorldBounds(l);this.props.coordinateSystem===Qr.LNGLAT&&(f[1]=Math.max(f[1],-85.051129),f[3]=Math.min(f[3],85.051129),f[0]=Math.max(f[0],-360),f[2]=Math.min(f[2],360));const A=this._worldToCommonBounds(f);s.worldBounds=f,s.normalizedCommonBounds=A,o=!0}return this.setState(s),o}_updateTextureRenderingBounds(){const{triPositionBuffer:e,triTexCoordBuffer:t,normalizedCommonBounds:n,viewportCorners:i}=this.state,{viewport:s}=this.context;e.write(wR(i,3));const o=i.map(l=>Tme(s.projectPosition(l),n));t.write(wR(o,2))}_updateColorTexture(e){const{colorRange:t}=e.props;let{colorTexture:n}=this.state;const i=nk(t,!1,Uint8Array);n&&n?.width===t.length?n.setTexture2DData({data:i}):(n?.destroy(),n=this.context.device.createTexture({...l1,data:i,width:t.length,height:1})),this.setState({colorTexture:n})}_updateWeightmap(){const{radiusPixels:e,colorDomain:t,aggregation:n}=this.props,{worldBounds:i,textureSize:s,weightsScale:o,weightsTexture:l}=this.state,f=this.state.weightsTransform;this.state.isWeightMapDirty=!1;const A=this._worldToCommonBounds(i,{useLayerCoordinateSystem:!0});if(t&&n==="SUM"){const{viewport:X}=this.context,ue=X.distanceScales.metersPerUnit[2]*(A[2]-A[0])/s;this.state.colorDomain=t.map(K=>K*ue*o)}else this.state.colorDomain=t||SR;const T=this.getAttributeManager().getAttributes(),I=this.getModuleSettings();this._setModelAttributes(f.model,T),f.model.setVertexCount(this.getNumInstances());const F={radiusPixels:e,commonBounds:A,textureWidth:s,weightsScale:o,weightsTexture:l},{viewport:N,devicePixelRatio:U,coordinateSystem:$,coordinateOrigin:V}=I,{modelMatrix:G}=this.props;f.model.shaderInputs.setProps({project:{viewport:N,devicePixelRatio:U,modelMatrix:G,coordinateSystem:$,coordinateOrigin:V},weight:F}),f.run({parameters:{viewport:[0,0,s,s]},clearColor:[0,0,0,0]}),this._updateMaxWeightValue()}_debouncedUpdateWeightmap(e=!1){let{updateTimer:t}=this.state;const{debounceTimeout:n}=this.props;e?(t=null,this._updateBounds(!0),this._updateTextureRenderingBounds(),this.setState({isWeightMapDirty:!0})):(this.setState({isWeightMapDirty:!1}),clearTimeout(t),t=setTimeout(this._debouncedUpdateWeightmap.bind(this,!0),n)),this.setState({updateTimer:t})}_worldToCommonBounds(e,t={}){const{useLayerCoordinateSystem:n=!1}=t,[i,s,o,l]=e,{viewport:f}=this.context,{textureSize:A}=this.state,{coordinateSystem:v}=this.props,T=n&&(v===Qr.LNGLAT_OFFSETS||v===Qr.METER_OFFSETS),I=T?f.projectPosition(this.props.coordinateOrigin):[0,0],F=A*Fme/f.scale;let N,U;return n&&!T?(N=this.projectPosition([i,s,0]),U=this.projectPosition([o,l,0])):(N=f.projectPosition([i,s,0]),U=f.projectPosition([o,l,0])),wme([N[0]-I[0],N[1]-I[1],U[0]-I[0],U[1]-I[1]],F,F)}_commonToWorldBounds(e){const[t,n,i,s]=e,{viewport:o}=this.context,l=o.unprojectPosition([t,n]),f=o.unprojectPosition([i,s]);return l.slice(0,2).concat(f.slice(0,2))}}lT.layerName="HeatmapLayer";lT.defaultProps=kme;const zme=Object.freeze(Object.defineProperty({__proto__:null,CPUAggregator:Bp,ContourLayer:oT,GridLayer:aT,HeatmapLayer:lT,HexagonLayer:sT,ScreenGridLayer:nT,WebGLAggregator:Ua,_AggregationLayer:Pp},Symbol.toStringTag,{value:"Module"}));var xA={},c1,IR;function Vme(){if(IR)return c1;IR=1;var r=Math.PI/180,e=180/Math.PI;function t(G){var X=i(G[0]+1,G[2]),ue=i(G[0],G[2]),K=s(G[1]+1,G[2]),se=s(G[1],G[2]);return[ue,K,X,se]}function n(G){var X=t(G),ue={type:"Polygon",coordinates:[[[X[0],X[1]],[X[0],X[3]],[X[2],X[3]],[X[2],X[1]],[X[0],X[1]]]]};return ue}function i(G,X){return G/Math.pow(2,X)*360-180}function s(G,X){var ue=Math.PI-2*Math.PI*G/Math.pow(2,X);return e*Math.atan(.5*(Math.exp(ue)-Math.exp(-ue)))}function o(G,X,ue){var K=V(G,X,ue);return K[0]=Math.floor(K[0]),K[1]=Math.floor(K[1]),K}function l(G){return[[G[0]*2,G[1]*2,G[2]+1],[G[0]*2+1,G[1]*2,G[2]+1],[G[0]*2+1,G[1]*2+1,G[2]+1],[G[0]*2,G[1]*2+1,G[2]+1]]}function f(G){return G[0]%2===0&&G[1]%2===0?[G[0]/2,G[1]/2,G[2]-1]:G[0]%2===0&&!G[1]%2===0?[G[0]/2,(G[1]-1)/2,G[2]-1]:!G[0]%2===0&&G[1]%2===0?[(G[0]-1)/2,G[1]/2,G[2]-1]:[(G[0]-1)/2,(G[1]-1)/2,G[2]-1]}function A(G){return l(f(G))}function v(G,X){for(var ue=A(G),K=0;K<ue.length;K++)if(!T(X,ue[K]))return!1;return!0}function T(G,X){for(var ue=0;ue<G.length;ue++)if(I(G[ue],X))return!0;return!1}function I(G,X){return G[0]===X[0]&&G[1]===X[1]&&G[2]===X[2]}function F(G){for(var X="",ue=G[2];ue>0;ue--){var K=0,se=1<<ue-1;(G[0]&se)!==0&&K++,(G[1]&se)!==0&&(K+=2),X+=K.toString()}return X}function N(G){for(var X=0,ue=0,K=G.length,se=K;se>0;se--){var Ee=1<<se-1;switch(G[K-se]){case"0":break;case"1":X|=Ee;break;case"2":ue|=Ee;break;case"3":X|=Ee,ue|=Ee;break}}return[X,ue,K]}function U(G){var X=o(G[0],G[1],32),ue=o(G[2],G[3],32),K=[X[0],X[1],ue[0],ue[1]],se=$(K);if(se===0)return[0,0,0];var Ee=K[0]>>>32-se,Ue=K[1]>>>32-se;return[Ee,Ue,se]}function $(G){for(var X=28,ue=0;ue<X;ue++){var K=1<<32-(ue+1);if((G[0]&K)!=(G[2]&K)||(G[1]&K)!=(G[3]&K))return ue}return X}function V(G,X,ue){var K=Math.sin(X*r),se=Math.pow(2,ue),Ee=se*(G/360+.5),Ue=se*(.5-.25*Math.log((1+K)/(1-K))/Math.PI);return[Ee,Ue,ue]}return c1={tileToGeoJSON:n,tileToBBOX:t,getChildren:l,getParent:f,getSiblings:A,hasTile:T,hasSiblings:v,tilesEqual:I,tileToQuadkey:F,quadkeyToT
5171ile:N,pointToTile:o,bboxToTile:U,pointToTileFraction:V},c1}var BR;function jme(){if(BR)return xA;BR=1;var r=Vme();xA.geojson=function(v,T){return{type:"FeatureCollection",features:t(v,T).map(e)}};function e(v){return{type:"Feature",geometry:r.tileToGeoJSON(v),properties:{}}}xA.tiles=t,xA.indexes=function(v,T){return t(v,T).map(r.tileToQuadkey)};function t(v,T){var I,F,N=v.coordinates,U=T.max_zoom,$={},V=[];if(v.type==="Point")return[r.pointToTile(N[0],N[1],U)];if(v.type==="MultiPoint")for(I=0;I<N.length;I++)F=r.pointToTile(N[I][0],N[I][1],U),$[f(F[0],F[1],F[2])]=!0;else if(v.type==="LineString")o($,N,U);else if(v.type==="MultiLineString")for(I=0;I<N.length;I++)o($,N[I],U);else if(v.type==="Polygon")i($,V,N,U);else if(v.type==="MultiPolygon")for(I=0;I<N.length;I++)i($,V,N[I],U);else throw new Error("Geometry type not implemented");if(T.min_zoom!==U){var G=V.length;for(l($,V),I=0;I<G;I++){var X=V[I];$[f(X[0],X[1],X[2])]=!0}return n($,V,T)}return l($,V),V}function n(v,T,I){for(var F=[],N=I.max_zoom;N>I.min_zoom;N--){for(var U={},$=[],V=0;V<T.length;V++){var G=T[V];if(G[0]%2===0&&G[1]%2===0){var X=f(G[0]+1,G[1],N),ue=f(G[0],G[1]+1,N),K=f(G[0]+1,G[1]+1,N);if(v[X]&&v[ue]&&v[K]){v[f(G[0],G[1],G[2])]=!1,v[X]=!1,v[ue]=!1,v[K]=!1;var se=[G[0]/2,G[1]/2,N-1];N-1===I.min_zoom?F.push(se):(U[f(G[0]/2,G[1]/2,N-1)]=!0,$.push(se))}}}for(V=0;V<T.length;V++)G=T[V],v[f(G[0],G[1],G[2])]&&F.push(G);v=U,T=$}return F}function i(v,T,I,F){for(var N=[],U=0;U<I.length;U++){var $=[];o(v,I[U],F,$);for(var V=0,G=$.length,X=G-1;V<G;X=V++){var ue=(V+1)%G,K=$[V][1];(K>$[X][1]||K>$[ue][1])&&(K<$[X][1]||K<$[ue][1])&&K!==$[ue][1]&&N.push($[V])}}for(N.sort(s),U=0;U<N.length;U+=2){K=N[U][1];for(var se=N[U][0]+1;se<N[U+1][0];se++){var Ee=f(se,K,F);v[Ee]||T.push([se,K,F])}}}function s(v,T){return v[1]-T[1]||v[0]-T[0]}function o(v,T,I,F){for(var N,U,$=0;$<T.length-1;$++){var V=r.pointToTileFraction(T[$][0],T[$][1],I),G=r.pointToTileFraction(T[$+1][0],T[$+1][1],I),X=V[0],ue=V[1],K=G[0],se=G[1],Ee=K-X,Ue=se-ue;if(!(Ue===0&&Ee===0)){var de=Ee>0?1:-1,me=Ue>0?1:-1,pe=Math.floor(X),W=Math.floor(ue),te=Ee===0?1/0:Math.abs(((Ee>0?1:0)+pe-X)/Ee),Ce=Ue===0?1/0:Math.abs(((Ue>0?1:0)+W-ue)/Ue),Qe=Math.abs(de/Ee),we=Math.abs(me/Ue);for((pe!==N||W!==U)&&(v[f(pe,W,I)]=!0,F&&W!==U&&F.push([pe,W]),N=pe,U=W);te<1||Ce<1;)te<Ce?(te+=Qe,pe+=de):(Ce+=we,W+=me),v[f(pe,W,I)]=!0,F&&W!==U&&F.push([pe,W]),N=pe,U=W}}F&&W===F[0][1]&&F.pop()}function l(v,T){for(var I=Object.keys(v),F=0;F<I.length;F++)T.push(A(+I[F]))}function f(v,T,I){var F=2*(1<<I);return(F*T+v)*32+I}function A(v){var T=v%32,I=2*(1<<T),F=(v-T)/32,N=F%I,U=(F-N)/I%I;return[N,U,T]}return xA}jme();const uk=[0x5555555555555555n,0x3333333333333333n,0x0f0f0f0f0f0f0f0fn,0x00ff00ff00ff00ffn,0x0000ffff0000ffffn,0x00000000ffffffffn],fk=[0n,1n,2n,4n,8n,16n];function Gme(r){return BigInt(`0x${r}`)}function L2(r){return r.toString(16)}function Hme(r){if(r.z<0||r.z>26)throw new Error("Wrong zoom");const e=BigInt(r.z);let t=BigInt(r.x)<<32n-e,n=BigInt(r.y)<<32n-e;for(let s=0;s<5;s++){const o=fk[5-s],l=uk[4-s];t=(t|t<<o)&l,n=(n|n<<o)&l}return 0x4000000000000000n|1n<<59n|e<<52n|(t|n<<1n)>>12n|0xfffffffffffffn>>e*2n}function hk(r){const e=r>>59n&7n,t=r>>57n&3n,n=r>>52n&0x1fn,i=(r&0xfffffffffffffn)<<12n;if(e!==1n&&t!==0n)throw new Error("Wrong mode");let s=i,o=i>>1n;for(let l=0;l<6;l++){const f=fk[l],A=uk[l];s=(s|s>>f)&A,o=(o|o>>f)&A}return s=s>>32n-n,o=o>>32n-n,{z:Number(n),x:Number(s),y:Number(o)}}function cT(r){return r>>52n&0x1fn}function dk(r){const e=cT(r)-1n;return r&~(0x1fn<<52n)|e<<52n|0xfffffffffffffn>>e*2n}function lh(r,e){Zr.assert(r,e)}function Wme(r,e){const{properties:t,numericProps:n}=r;return new Proxy(t[e]||{},{get(i,s){return s in n?n[s].value[e]:i[s]},has(i,s){return s in n||s in i},ownKeys(i){return[...Object.keys(n),...Reflect.ownKeys(i)]},getOwnPropertyDescriptor(i,s){return{enumerable:!0,configurable:!0}}})}function Ay(r,e){return`https://unpkg.com/@deck.gl/carto@${e}/dist/${r}-worker.js`}const JA=new Uint16Array,u1={positions:{value:new Float32Array,size:2},properties:[],numericProps:{},featureIds:{value:JA,size:1},globalFeatureIds:{value:JA,size:1}};function pk(){return{shape:"binary-feature-collection",points:{type:"Point",...u1},lines:{type:"LineString",pathIndices:{value:JA,size:1},...u1},polygons:{type:"Polygon",polygonIndices:{value:JA,size:1},primitivePolygonIndices:{value:JA,size:1},...u1}}}function uT(r,e,t,n,i,s=2){return{type:"Point",positions:{value:new Float32Array(r),size:s},featureIds:{value:new Uint16Array(e),size:1},globalFeatureIds:{value:new Uint32Array(t),size:1},numericProps:n,properties:i}}function Ak(r,e){const t={};return e&&Object.keys(e).forEach(n=>{t[n]={value:new Float32Array(r),size:1}}),t}function gk(r,e,t,n){Object.keys(r).forEach(i=>
5171{e[i].value[n]=r[i].value[t]})}function $me(r,e,t,n=[],i,s){if(!r.content)return!1;r.userData||(r.userData={});const o=e.get(t)?.[0];if(o){if(n.every(f=>f.name in o))return!1;e.clear()}const l={};for(const f of r.content){let A=f.id;const v=typeof i=="function"?i(f,{}):i;for(let U=0;U<t-1;U++)A=dk(A);const T=Number(A);if(!(T in l)){l[T]={id:A,count:0,position:[0,0]};for(const{name:U,aggregation:$}of n)$==="any"?l[T][U]=f.properties[U]:l[T][U]=0}const I=l[T].count;l[T].count+=typeof s=="function"?s(f,{}):s;const F=l[T].count,N=F-I;l[T].position[0]=(I*l[T].position[0]+N*v[0])/F,l[T].position[1]=(I*l[T].position[1]+N*v[1])/F;for(const{name:U,aggregation:$}of n){const V=l[T][U],G=f.properties[U];$==="average"?l[T][U]=(I*V+N*G)/F:$==="count"||$==="sum"?l[T][U]=V+G:$==="max"?l[T][U]=Math.max(V,G):$==="min"&&(l[T][U]=Math.min(V,G))}}return e.set(t,Object.values(l)),!0}function Xme(r){const e=[],t=["any","average","count","min","max","sum"];for(const n of Object.keys(r.content[0].properties)){let i=n.split("_").pop().toLowerCase();t.includes(i)||(Zr.warn(`No valid aggregation present in ${n} property`)(),i="any"),e.push({name:n,aggregation:i})}return e}function qme(r,e){const t={};for(const{name:n,aggregation:i}of e)if(t[n]={min:1/0,max:-1/0},i!=="any")for(const s of r)t[n].min=Math.min(t[n].min,s[n]),t[n].max=Math.max(t[n].max,s[n]);return t}function Jme(r){const e=new Float32Array(r.length*2),t=new Uint16Array(r.length);for(let n=0;n<r.length;n++)e.set(r[n].position,2*n),t[n]=n;return{...pk(),points:uT(e,t,t,{},r)}}const Mp=512;class fT extends Q_{getTileIndices(e){return super.getTileIndices(e).map(Hme).map(t=>({q:t,i:L2(t)}))}getTileId({q:e,i:t}){return t||L2(e)}getTileMetadata({q:e}){return super.getTileMetadata(hk(e))}getTileZoom({q:e}){return Number(cT(e))}getParentIndex({q:e}){return{q:dk(e)}}}const PR=512;function mk(r){const{x:e,y:t,z:n}=hk(r),i=PR/(1<<n);return[e*i,PR-t*i,i]}function Kme(r,e){const[t,n,i]=mk(r);return[[t,n],[t+e*i,n-e*i]]}function _k(r,e=1){const[t,n]=Kme(r,e),[i,s]=uc(t),[o,l]=uc(n);return[o,s,o,l,i,l,i,s,o,s]}const sm=!!(typeof process!="object"||String(process)!=="[object process]"||process.browser),MR=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version);MR&&parseFloat(MR[1]);function Zme(r){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,r)}function Yme(...r){return Qme(r)}function Qme(r){const e=r.map(s=>s instanceof ArrayBuffer?new Uint8Array(s):s),t=e.reduce((s,o)=>s+o.byteLength,0),n=new Uint8Array(t);let i=0;for(const s of e)n.set(s,i),i+=s.byteLength;return n.buffer}async function e_e(r){const e=[];for await(const t of r)e.push(t);return Yme(...e)}function t_e(r){return r&&typeof r=="object"&&r.isBuffer}function om(r){if(t_e(r))return r;if(r instanceof ArrayBuffer)return r;if(ArrayBuffer.isView(r))return r.byteOffset===0&&r.byteLength===r.buffer.byteLength?r.buffer:r.buffer.slice(r.byteOffset,r.byteOffset+r.byteLength);if(typeof r=="string"){const e=r;return new TextEncoder().encode(e).buffer}if(r&&typeof r=="object"&&r._toArrayBuffer)return r._toArrayBuffer();throw new Error("toArrayBuffer")}function am(r){return e=>new Promise((t,n)=>r(e,(i,s)=>i?n(i):t(s)))}class r_e{constructor(e){this.compressBatches=this.compressBatches.bind(this),this.decompressBatches=this.decompressBatches.bind(this)}async preload(e={}){Zme(e)}async compress(e){return await this.preload(),this.compressSync(e)}async decompress(e,t){return await this.preload(),this.decompressSync(e,t)}compressSync(e){throw new Error(`${this.name}: sync compression not supported`)}decompressSync(e,t){throw new Error(`${this.name}: sync decompression not supported`)}async*compressBatches(e){const t=await this.concatenate(e);yield this.compress(t)}async*decompressBatches(e){const t=await this.concatenate(e);yield this.decompress(t)}concatenate(e){return e_e(e)}improveError(e){return e.message.includes(this.name)||(e.message=`${this.name} ${e.message}`),e}}class n_e extends r_e{name="deflate";extensions=[];contentEncodings=["deflate"];isSupported=!0;options;_chunks=[];constructor(e={}){super(e),this.options=e}async compress(e){if(!sm&&this.options.deflate?.useZlib){const t=this.options.deflate?.gzip?await am(Pu.gzip)(e):await am(Pu.deflate)(e);return om(t)}return this.compressSync(e)}async decompress(e){if(!sm&&this.options.deflate?.useZlib){const t=this.options.deflate?.gzip?await am(Pu.gunzip)(e):await am(Pu.inflate)(e);return om(t)}return this.decompressSync(e)}compressSync(e){if(!sm&&this.options.deflate?.useZlib){const s=this.options.deflate?.gzip?Pu.gzipSync(e):Pu.deflateSync(e);return om(s)}const t=this.options?.deflate||{},n=new Uint8Array(e);return(this.options?.raw?xd.deflateRaw:xd.deflate)(n,t).buffer}decompressSync(e){if(!sm&&this.options.deflate?.useZlib){const s=this.options.deflate?.gzip?Pu.gunzipSync(e):Pu.inflateSync(e);return om(s)}const t=this.options?.deflate||{},n=new Uint8Array(e);return(this.options?.raw?xd.inflateRaw:xd.inflate)(n,t).buffer}async*compressBatches(e){const t=this.options?.deflate||{},n=new xd.Deflate(t);yield*this.transformBatches(n,e)}async*decompressBatches(e){const t=this.options?.deflate||{},n=new xd.Inflate(t);yield*this.transformBatches(n,e)}async*transformBatches(e,t){e.onData=this._onData.bind(this),e.onEnd=this._onEnd.bind(this);for await(const s of t){const o=new Uint8Array(s);if(!e.push(o,!1))throw new Error(`${this._getError()}write`);yield*this._getChunks()}const n=new Uint8Array(0);e.push(n,!0),yield*this._getChunks()}_onData(e){this._chunks.push(e)}_onEnd(e){if(e!==0)throw new Error(this._getError(e)+this._chunks.length)}_getChunks(){const e=this._chunks;return this._chunks=[],e}_getError(e=0){const t={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"};return`${this.name}: ${t[e]}`}}class i_e extends n_e{name="gzip";extensions=["gz","gzip"];contentEncodings=["gzip","x-gzip"];isSupported=!0;constructor(e){super({...e,deflate:{...e?.gzip,gzip:!0}})}}function gy(r,e,t,n){const i=e.type===2?e.readVarint()+e.pos:e.pos+1,s=e.buf.buffer.slice(e.pos,i);if(n?.compression==="gzip"){const l=new i_e().decompressSync(s);t.value=new r(l)}else t.value=new r(s);return e.pos=i,t.value}class hT{static read(e,t){return e.readFields(hT._readField,{key:"",value:null},t)}static _readField(e,t,n){e===1?t.key=n.readString():e===2&&(t.value=n.readString())}}class vh{static read(e,t){return e.readFields(vh._readField,{},t)}static _readField(e,t,n){if(e===1){const{key:i,value:s}=hT.read(n,n.readVarint()+n.pos);t[i]=s}}}class Pg{static read(e,t){const{value:n,size:i}=e.readFields(Pg._readField,{value:[],size:0},t);return{value:n,size:i}}static _readField(e,t,n){e===1?gy(Float64Array,n,t):e===2&&(t.size=n.readVarint(!0))}}class Fa{static read(e,t){const{value:n,size:i}=e.readFields(Fa._readField,{value:[],size:0},t);return{value:new Uint32Array(n),size:i}}static _readField(e,t,n){e===1?n.readPackedVarint(t.value):e===2&&(t.size=n.readVarint(!0))}}class Mg{static read(e,t){return e.readFields(Mg._readField,{id:0},t)}static _readField(e,t,n){e===1&&(t.id=n.readVarint())}}class dT{static read(e,t){return e.readFields(dT._readField,{value:[]},t)}static _readField(e,t,n){e===1&&gy(Float64Array,n,t)}}class bh{static read(e,t){return e.readFields(bh._readField,{key:"",value:null},t)}static _readField(e,t,n){e===1?t.key=n.readString():e===2&&(t.value=dT.read(n,n.readVarint()+n.pos))}}class pT{static read(e,t){return e.readFields(pT._readField,{positions:null,globalFeatureIds:null,featureIds:null,properties:[],numericProps:{},fields:[]},t)}static _readField(e,t,n){if(e===1)t.positions=Pg.read(n,n.readVarint()+n.pos);else if(e===2)t.globalFeatureIds=Fa.read(n,n.readVarint()+n.pos);else if(e===3)t.featureIds=Fa.read(n,n.readVarint()+n.pos);else if(e===4)t.properties.push(vh.read(n,n.readVarint()+n.pos));else if(e===5){const i=bh.read(n,n.readVarint()+n.pos);t.numericProps[i.key]=i.value}else e===6&&t.fields.push(Mg.read(n,n.readVarint()+n.pos))}}class AT{static read(e,t){return e.readFields(AT._readField,{positions:null,pathIndices:null,globalFeatureIds:null,featureIds:null,properties:[],numericProps:{},fields:[]},t)}static _readField(e,t,n){if(e===1)t.positions=Pg.read(n,n.readVarint()+n.pos);else if(e===2)t.pathIndices=Fa.read(n,n.readVarint()+n.pos);else if(e===3)t.globalFeatureIds=Fa.read(n,n.readVarint()+n.pos);else if(e===4)t.featureIds=Fa.read(n,n.readVarint()+n.pos);else if(e===5)t.properties.push(vh.read(n,n.readVarint()+n.pos));else if(e===6){const i=bh.read(n,n.readVarint()+n.pos);t.numericProps[i.key]=i.value}else e===7&&t.fields.push(Mg.read(n,n.readVarint()+n.pos))}}class gT{static read(e,t){return e.readFields(gT._readField,{positions:null,polygonIndices:null,globalFeatureIds:null,featureIds:null,primitivePolygonIndices:null,triangles:null,properties:[],numericProps:{},fields:[]},t)}static _readField(e,t,n){if(e===1)t.positions=Pg.read(n,n.readVarint()+n.pos);else if(e===2)t.polygonIndices=Fa.read(n,n.readVarint()+n.pos);else if(e===3)t.globalFeatureIds=Fa.read(n,n.readVarint()+n.pos);else if(e===4)t.featureIds=Fa.read(n,n.readVarint()+n.pos);else if(e===5)t.primitivePolygonIndices=Fa.read(n,n.readVarint()+n.pos);else if(e===6)t.triangles=Fa.read(n,n.readVarint()+n.pos);else if(e===7)t.properties.push(vh.read(n,n.readVarint()+n.pos));else if(e===8){const i=bh.read(n,n.readVarint()+n.pos);t.numericProps[i.key]=i.value}else e===9&&t.fields.push(Mg.read(n,n.readVarint()+n.pos))}}let s_e=class yk{static read(e,t){return e.readFields(yk._readField,{points:null,lines:null,polygons:null},t)}static _readField(e,t,n){e===1?t.points=pT.read(n,n.readVarint()+n.pos):e===2?t.lines=AT.read(n,n.readVarint()+n.pos):e===3&&(t.polygons=gT.read(n,n.readVarint()+n.pos))}};class mT{static read(e,t){return e.readFields(mT._readField,{value:[]},t)}static _readField(e,t,n){e===1&&gy(BigUint64Array,n,t)}}class _T{static read(e,t){return e.readFields(_T._readField,{indices:null,properties:[],numericProps:{}},t)}static _readField(e,t,n){if(e===1)t.indices=mT.read(n,n.readVarint()+n.pos);else if(e===2)t.properties.push(vh.read(n,n.readVarint()+n.pos));else if(e===3){const i=bh.read(n,n.readVarint()+n.pos);t.numericProps[i.key]=i.value}}}let o_e=class vk{static read(e,t){return e.readFields(vk._readField,{scheme:0,cells:null},t)}static _readField(e,t,n){e===1?t.scheme=n.readVarint():e===2&&(t.cells=_T.read(n,n.readVarint()+n.pos))}};function my(r,e){const t=new qge(r);return e.read(t)}function a_e(r){const{cells:e,scheme:t}=r,n=e.indices.value.length,i=[];for(let s=0;s<n;s++){const o=t==="h3"?L2(e.indices.value[s]):e.indices.value[s],l={...e.properties[s]};for(const f of Object.keys(e.numericProps))l[f]=e.numericProps[f].value[s];i.push({id:o,properties:l})}return i}const bk="9.1.14",xk="cartoSpatialTile",l_e={cartoSpatialTile:{scheme:"quadbin",workerUrl:Ay(xk,bk)}},wk={name:"CARTO Spatial Tile",version:bk,id:xk,module:"carto",extensions:["pbf"],mimeTypes:["application/vnd.c
5171arto-spatial-tile"],category:"geometry",parse:async(r,e)=>RR(r,e),parseSync:RR,worker:!0,options:l_e};function RR(r,e){if(!r)return null;const t=my(r,o_e),{cells:n}=t,i=e?.cartoSpatialTile?.scheme;return a_e({cells:n,scheme:i})}function Rp(r,e,t=0){if(!r)return e;if(!e)return r;if(t>10)return e;const n={...r};for(const i in e){const s=e[i];s===r||s===e||(typeof s=="object"&&s!==null?n[i]=Rp(r[i],s,t+1):n[i]=s)}return n}function c_e(r,e){const t={};for(const{geoid:n,...i}of e.properties)n in t?Zr.warn("Duplicate geoid key in boundary mapping, using first occurance")():t[n]=i;for(const n of["points","lines","polygons"]){const i=r[n];if(i.positions.value.length===0)continue;i.properties=i.properties.map(({geoid:A})=>t[A]);const{positions:s,globalFeatureIds:o}=i;let l=null;n==="lines"&&(l=i.pathIndices.value),n==="polygons"&&(l=i.polygonIndices.value);const f=s.value.length/s.size;for(const A in e.numericProps){const v=e.numericProps[A].value,T=v.constructor,I=new T(f);if(i.numericProps[A]={value:I,size:1},l)for(let F=0;F<l.length-1;F++){const N=l[F],U=l[F+1],$=o.value[N];I.fill(v[$],N,U)}else for(let F=0;F<f;F++){const N=o.value[F];I[F]=v[N]}}}return r}const ch={type:"object",value:null,validate:(r,e)=>e.optional&&r===null||typeof r=="object"&&Array.isArray(r.tiles)&&r.tiles.every(t=>typeof t=="string"),equal:(r,e)=>rs(r,e,2),async:!0};Tp([wk]);const Tk={data:ch,clusterLevel:{type:"number",value:5,min:1},getPosition:{type:"accessor",value:({id:r})=>_k(r,.5).slice(2,4)},getWeight:{type:"accessor",value:1},refinementStrategy:"no-overlap",tileSize:Mp};class yT extends nu{initializeState(){super.initializeState(),this.state.aggregationCache=new WeakMap}renderLayers(){const e=this.state.tileset?.tiles.filter(I=>I.isLoaded&&I.content&&this.state.tileset.isTileVisible(I));if(!e?.length)return null;e.sort((I,F)=>F.zoom-I.zoom);const{zoom:t}=this.context.viewport,{clusterLevel:n,getPosition:i,getWeight:s}=this.props,{aggregationCache:o}=this.state,l=Xme(e[0]),f=[];let A=!1;for(const I of e){const F=Math.round(t-I.zoom),N=Math.round(n)-F;let U=o.get(I.content);U||(U=new Map,o.set(I.content,U));const $=$me(I,U,N,l,i,s);A||(A=$),f.push(...U.get(N))}f.sort((I,F)=>Number(F.count-I.count));const v=f?.map(I=>I.id);if(A||(A=!rs(v,this.state.clusterIds,1)),this.setState({clusterIds:v}),A){const I=qme(f,l),F=Jme(f);F.points.attributes={stats:I},this.setState({data:F})}const T={...this.props,id:"clusters",data:this.state.data,dataComparator:(I,F)=>{const N=I?.points?.properties?.map($=>$.id),U=F?.points?.properties?.map($=>$.id);return rs(N,U,1)}};return new ru(this.getSubLayerProps(T))}getPickingInfo(e){const t=e.info;if(t.index!==-1){const{data:n}=e.sourceLayer.props;t.object=F2(n,{globalFeatureId:t.index})}return t}_updateAutoHighlight(e){for(const t of this.getSubLayers())t.updateAutoHighlight(e)}filterSubLayer(){return!0}}yT.layerName="ClusterGeoJsonLayer";yT.defaultProps=Tk;class vT extends Ss{getLoadOptions(){const e=this.props.data;return Rp(super.getLoadOptions(),{fetch:{headers:{Authorization:`Bearer ${e.accessToken}`}},cartoSpatialTile:{scheme:"quadbin"}})}renderLayers(){const e=this.props.data;if(!e)return null;const{tiles:t,maxresolution:n}=e;return[new yT(this.props,{id:`cluster-geojson-layer-${this.props.id}`,data:t,TilesetClass:fT,maxZoom:n,loadOptions:this.getLoadOptions()})]}}vT.layerName="ClusterTileLayer";vT.defaultProps=Tk;const OR=85.051128;function Ek({west:r,north:e,east:t,south:n},i,s=1){const f=[[e,t],[n,t],[n,r],[e,r]].map(T=>Rw(T[0],T[1],i)).map(T=>Math.max(...Uce(T).map(I=>Vce(I,op.rads)))*180/Math.PI),A=Math.max(...f)*s,v=Math.min(180,A/Math.cos((e+n)/2*Math.PI/180));return{north:Math.min(e+A,OR),east:t+v,south:Math.max(n-A,-OR),west:r-v}}function Ck({west:r,north:e,east:t,south:n},i){const s=Math.abs(t-r);if(s>180){const l=Math.ceil(s/180);let f=[];for(let A=0;A<l;A++){const v=r+A*180,T=Math.min(v+179.9999999,t);f=f.concat(Ck({west:v,north:e,east:T,south:n},i))}return[...new Set(f)]}return kce([[e,t],[n,t],[n,r],[e,r],[e,t]],i)}function u_e(r){const e=NL(r),t=e.map(A=>A[0]),n=e.map(A=>A[1]),i=Math.min(...n),s=Math.min(...t),o=Math.max(...n),l=Math.max(...t);return Ek({west:i,south:s,east:o,north:l},A_(r),.12)}const f_e=2;function k2(r,e){const t=Math.log2(e/512),n=2/3*(r.zoom-t),i=Math.log(1/Math.cos(Math.PI*r.latitude/180));return Math.max(0,Math.floor(n+i-f_e))}class h_e extends Q_{getTileIndices({viewport:e,minZoom:t,maxZoom:n}){if(e.latitude===void 0)return[];const[i,s,o,l]=e.getBounds(),{tileSize:f}=this.opts;let A=k2(e,f),v;if(typeof t=="number"&&Number.isFinite(t)&&A<t)return[];if(typeof n=="number"&&Number.isFinite(n)&&A>n){A=n;const T=Rw(e.latitude,e.longitude,n);v=Lce(T,1)}else{const T=Ek({west:i,north:l,east:o,south:s},A);v=Ck(T,A)}return v.map(T=>({i:T}))}getTileId({i:e}){return e}getTileMetadata({i:e}){return{bbox:u_e(e)}}getTileZoom({i:e}){return A_(e)}getParentIndex(e){const t=A_(e.i);
5171return{i:Fce(e.i,t-1)}}}Tp([wk]);function d_e(r){return r!=null&&r!==""}const p_e={tileSize:Mp};class _y extends nu{_updateAutoHighlight(e){const{hoveredFeatureId:t}=this.state,n=e.object;let i=null;if(n&&(i=n.id),t!==i){let{highlightColor:s}=this.props;typeof s=="function"&&(s=s(e)),this.setState({highlightColor:s,hoveredFeatureId:i})}}getSubLayerPropsByTile(e){return{highlightedObjectIndex:this.getHighlightedObjectIndex(e),highlightColor:this.state.highlightColor}}getHighlightedObjectIndex(e){const{hoveredFeatureId:t}=this.state,n=e.content;return!d_e(t)||!Array.isArray(n)||!this._featureInTile(e,t)?-1:n.findIndex(s=>s.id===t)}_featureInTile(e,t){const n=this.state.tileset,i=n.getTileZoom(e.index),s=e.index.q?"q":"i";let o={[s]:t},l=n.getTileZoom(o);for(;!(l<=i);)o=n.getParentIndex(o),l=n.getTileZoom(o);return o[s]===e.index[s]}}_y.layerName="SpatialIndexTileLayer";_y.defaultProps=p_e;const A_e=r=>{const{data:e}=r,{index:t}=r.tile;return!e||!e.length?null:new Ac(r,{getHexagon:n=>n.id,centerHexagon:t,highPrecision:!0})},g_e={data:ch,tileSize:Mp};class bT extends Ss{initializeState(){Ac._checkH3Lib()}getLoadOptions(){const e=this.props.data;return Rp(super.getLoadOptions(),{fetch:{headers:{Authorization:`Bearer ${e.accessToken}`}},cartoSpatialTile:{scheme:"h3"}})}renderLayers(){const e=this.props.data;if(!e)return null;const{tiles:t}=e;let{minresolution:n,maxresolution:i}=e;this.props.minZoom&&(n=Math.max(n,k2({zoom:this.props.minZoom,latitude:0},this.props.tileSize))),this.props.maxZoom&&(i=Math.min(i,k2({zoom:this.props.maxZoom,latitude:0},this.props.tileSize)));const s=this.getSubLayerClass("spatial-index-tile",_y);return new s(this.props,{id:`h3-tile-layer-${this.props.id}`,data:t,TilesetClass:h_e,renderSubLayers:A_e,minZoom:n,maxZoom:i,loadOptions:this.getLoadOptions()})}}bT.layerName="H3TileLayer";bT.defaultProps=g_e;const m_e=`uniform heatmapUniforms { 5172 vec2 colorDomain; 5173 vec2 delta; 5174 float intensity; 5175 float opacity; 5176 float radiusPixels; 5177} heatmap; 5178 5179uniform sampler2D colorTexture; 5180 5181vec3 colorGradient(float value) { 5182 return texture(colorTexture, vec2(value, 0.5)).rgb; 5183} 5184 5185const vec3 SHIFT = vec3(1.0, 256.0, 256.0 * 256.0); 5186const float MAX_VAL = SHIFT.z * 255.0; 5187const float SCALE = MAX_VAL / 8.0; 5188vec4 pack(float value) { 5189 return vec4(mod(vec3(value, floor(value / SHIFT.yz)), 256.0), 255.0) / 255.0; 5190} 5191float unpack(vec3 color) { 5192 return 255.0 * dot(color, SHIFT); 5193} 5194 5195vec4 heatmap_sampleColor(sampler2D source, vec2 texSize, vec2 texCoord) { 5196 bool firstPass = (heatmap.delta.y < 0.5); 5197 float accumulator = 0.0; 5198 5199 // Controls quality of heatmap, larger values increase quality at expense of performance 5200 float SUPPORT = clamp(heatmap.radiusPixels / 2.0, 8.0, 32.0); 5201 5202 // Gaussian normalization parameters 5203 float sigma = SUPPORT / 3.0; 5204 float a = -0.5 / (sigma * sigma); 5205 float w0 = 0.3989422804014327 / sigma; // 1D normalization 5206 for (float t = -SUPPORT; t <= SUPPORT; t++) { 5207 vec2 percent = (t * heatmap.delta - 0.5) / SUPPORT; 5208 vec2 delta = percent * heatmap.radiusPixels / texSize; 5209 vec4 offsetColor = texture(source, texCoord + delta); 5210 5211 // Unpack float 5212 float value = unpack(offsetColor.rgb); 5213 5214 // Gaussian 5215 float weight = w0 * exp(a * t * t); 5216 5217 accumulator += value * weight; 5218 } 5219 5220 if (firstPass) { 5221 return pack(accumulator); 5222 } 5223 5224 // Undo scaling to obtain normalized density 5225 float density = 10.0 * heatmap.intensity * accumulator / SCALE; 5226 5227 // Domain also in normalized density units 5228 vec2 domain = heatmap.colorDomain; 5229 5230 // Apply domain 5231 float f = (density - domain[0]) / (domain[1] - domain[0]); 5232 5233 // sqrt/log scaling?? 5234 // float f = (log(density) - log(domain[0] + 1.0)) / (log(domain[1] + 1.0) - log(domain[0] + 1.0)); 5235 // f = sqrt(f); 5236 5237 // Color map 5238 vec4 color = vec4(0.0); 5239 color.rgb = colorGradient(f); 5240 5241 color.a = smoothstep(0.0, 0.1, f); 5242 color.a = pow(color.a, 1.0 / 2.2); 5243 color.a *= heatmap.opacity; 5244 5245 return color; 5246} 5247`,__e={name:"heatmap",uniformPropTypes:{colorDomain:{value:[0,1]},delta:{value:[0,1]},intensity:{value:1,min:.1,max:10},opacity:{value:1,min:0,max:1},radiusPixels:{value:20,min:0,softMax:100}},uniformTypes:{colorDomain:"vec2<f32>",delta:"vec2<f32>
5247",intensity:"f32",opacity:"f32",radiusPixels:"f32"},getUniforms:r=>{if(!r)return{};const{colorDomain:e=[0,1],colorTexture:t,delta:n=[1,0],intensity:i=1,opacity:s=1,radiusPixels:o=20}=r;return{colorDomain:e,colorTexture:t,delta:n,intensity:i,opacity:s,radiusPixels:o}},fs:m_e,passes:[{sampler:!0,uniforms:{delta:[1,0]}},{sampler:!0,uniforms:{delta:[0,1]}}]},y_e={format:"rgba8unorm",mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}};function N2(r){for(;r.parent&&!r.applyPostProcess;)r=r.parent;return r}class Sk extends Cs{initializeState(){this.id=`draw-callback-${N2(this).props.id}`}_drawLayer(){N2(this).applyPostProcess()}}Sk.layerName="DrawCallbackLayer";function Ik(r){var e;return e=class extends r{draw(n){const{shaderModuleProps:i}=n,{picking:s}=i,o=N2(this);s.isActive||o.enableRTT(n),super.draw(n),s.isActive||o.disableRTT()}},e.layerName=`RTT-${r.layerName}`,e}function Bk(r,e){var t;return t=class extends r{initializeState(i){super.initializeState(i),this._createTextures(),this.internalState.postProcess=new hW(e,this.props),this.internalState.postProcess.setup(i)}updateState(i){super.updateState(i),this.internalState.postProcess.setProps(this.props)}renderLayers(){let i=super.renderLayers();return i?(i=Array.isArray(i)?i:[i],[...i,new Sk]):null}_createTextures(){const{device:i}=this.context;this.internalState.renderBuffers=[0,1].map(s=>i.createFramebuffer({id:`layer-fbo-${s}`,colorAttachments:[i.createTexture(y_e)],depthStencilAttachment:"depth16unorm"}))}_resizeBuffers(i){const{shaderModuleProps:s}=i,{viewport:o}=this.context,{devicePixelRatio:l}=s.project,f=l*o.width,A=l*o.height;this.internalState.renderBuffers.forEach(v=>v.resize({width:f,height:A}))}enableRTT(i){this._resizeBuffers(i),this.internalState.originalRenderPass=this.context.renderPass;const[s]=this.internalState.renderBuffers;this.internalState.internalRenderPass=this.context.device.beginRenderPass({framebuffer:s,parameters:{viewport:[0,0,s.width,s.height]},clearColor:this.internalState.renderInProgress?!1:[0,0,0,0]}),this.internalState.renderInProgress=!0,this.context.renderPass=this.internalState.internalRenderPass}disableRTT(){this.internalState.internalRenderPass.end(),this.context.renderPass=this.internalState.originalRenderPass}applyPostProcess(){if(!this.internalState.renderInProgress)return;const[i,s]=this.internalState.renderBuffers,{framebuffer:o}=this.context.renderPass.props;this.internalState.postProcess.postRender({inputBuffer:i,swapBuffer:s,target:o}),this.internalState.renderInProgress=!1}_finalize(){this.internalState.renderBuffers.forEach(i=>{i.destroy()}),this.internalState.renderBuffers=null,this.internalState.postProcess.cleanup()}},t.layerName=`PostProcess${r.layerName}`,t}const v_e=`vec4 copy_filterColor_ext(vec4 color, vec2 texSize, vec2 texCoord) { 5248 return color; 5249} 5250`,b_e={name:"copy",fs:v_e,getUniforms:()=>({}),passes:[{filter:!0}]},x_e={getQuadbin:{type:"accessor",value:r=>r.quadbin}};class xT extends lf{indexToBounds(){const{data:e,extruded:t,getQuadbin:n}=this.props,i=t?.99:1;return{data:e,_normalize:!1,positionFormat:"XY",getPolygon:(s,o)=>_k(n(s,o),i),updateTriggers:{getPolygon:i}}}}xT.layerName="QuadbinLayer";xT.defaultProps=x_e;const w_e=r=>{const{data:e}=r;if(!e||!e.length)return null;const t=typeof e[0].id=="bigint";return new xT(r,{getQuadbin:t?n=>n.id:n=>Gme(n.id)})},T_e={data:ch,tileSize:Mp};class yy extends Ss{getLoadOptions(){const e=this.props.data;return Rp(super.getLoadOptions(),{fetch:{headers:{Authorization:`Bearer ${e.accessToken}`}},cartoSpatialTile:{scheme:"quadbin"}})}renderLayers(){const e=this.props.data;if(!e)return null;const{tiles:t,maxresolution:n}=e,i=this.getSubLayerClass("spatial-index-tile",_y);return new i(this.props,{id:`quadbin-tile-layer-${this.props.id}`,data:t,TilesetClass:fT,renderSubLayers:w_e,maxZoom:n,loadOptions:this.getLoadOptions()})}}yy.layerName="QuadbinTileLayer";yy.defaultProps=T_e;const E_e=[[255,255,178],[254,217,118],[254,178,76],[253,141,60],[240,59,32],[189,0,38]],C_e={format:"rgba8unorm",mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}};function Pk(r){const e=Number(cT(r));return Math.pow(4,e)}function S_e(r){const e=new Uint8Array(r.length*4);let t=0;for(let n=0;n<r.length;n++){const i=r[n];e[t++]=i[0],e[t++]=i[1],e[t++]=i[2],e[t++]=Number.isFinite(i[3])?i[3]:255}return e}const I_e=`uniform densityUniforms { 5251 float factor; 5252} density; 5253`,B_e={name:"density",vs:I_e,uniformTypes:{factor:"f32"}};class Mk extends Ik(of){getShaders(e){const t=super.getShaders(e);return t.inject={"vs:#main-end":` 5254 // Value from getWeight accessor 5255 float weight = elevations; 5256 5257 // Keep "power" delivered to screen constant when tiles update 5258 // by outputting normalized density 5259 weight *= density.factor; 5260 5261 // Pack float into 3 channels to pass to heatmap shader 5262 // SCALE value important, as we don't want to saturate 5263 // but also want enough definition to avoid banding
5264 const vec3 SHIFT = vec3(1.0, 256.0, 256.0 * 256.0); 5265 const float MAX_VAL = SHIFT.z * 255.0; 5266 const float SCALE = MAX_VAL / 8.0; 5267 weight *= SCALE; 5268 weight = clamp(weight, 0.0, MAX_VAL); 5269 vColor = vec4(mod(vec3(weight, floor(weight / SHIFT.yz)), 256.0), 255.0) / 255.0; 5270`},t.modules=[...t.modules,B_e],t}draw(e){const t=this.props.data[0],n=this.props.elevationScale,i={factor:Pk(t.id)/n};for(const s of this.state.models)s.shaderInputs.setProps({density:i});super.draw(e)}}Mk.layerName="RTTSolidPolygonLayer";const P_e=Bk(yy,__e),M_e={data:ch,getWeight:{type:"accessor",value:1},onMaxDensityChange:{type:"function",optional:!0,value:null},colorDomain:{type:"array",value:[0,1]},colorRange:E_e,intensity:{type:"number",value:1},radiusPixels:{type:"number",min:0,max:100,value:20}};class wT extends Ss{initializeState(){this.state={isLoaded:!1,tiles:new Set,viewportChanged:!1}}shouldUpdateState({changeFlags:e}){const{viewportChanged:t}=e;return this.setState({viewportChanged:t}),e.somethingChanged}updateState(e){const{props:t,oldProps:n}=e;super.updateState(e),t.colorRange!==n.colorRange&&this._updateColorTexture(e)}renderLayers(){const{data:e,getWeight:t,colorDomain:n,intensity:i,radiusPixels:s,_subLayerProps:o,updateTriggers:l,onMaxDensityChange:f,onViewportLoad:A,onTileLoad:v,onTileUnload:T,...I}=this.props,F={...o,cell:{...o?.cell,_subLayerProps:{...o?.cell?._subLayerProps,fill:{...o?.cell?._subLayerProps?.fill,type:Mk}}}};let N=0,U=0;const $=[...this.state.tiles].filter(K=>K.content),V=$.filter(K=>K.isVisible),G=V.length?V:$;for(const K of G){const se=K.content[0],Ee=Pk(se.id);U=Math.max(K.userData.maxWeight*Ee,U),N=Math.max(K.zoom,N)}const X=this.context.viewport.zoom-N;return U=U*Math.pow(2,X),typeof f=="function"&&f(U),new P_e(I,this.getSubLayerProps({id:"heatmap",data:e,getFillColor:0,getElevation:t,elevationScale:U,colorDomain:n,radiusPixels:s,intensity:i,_subLayerProps:F,refinementStrategy:"no-overlap",colorTexture:this.state.colorTexture,extruded:!1,stroked:!1,updateTriggers:{getElevation:l.getWeight},onViewportLoad:K=>{this.setState({isLoaded:!0}),typeof A=="function"&&A(K)},onTileLoad:K=>{let se=-1/0;if(typeof t!="function")se=t;else if(K.content)for(const Ee of K.content)se=Math.max(t(Ee,{}),se);K.userData={maxWeight:se},this.state.tiles.add(K),typeof v=="function"&&v(K)},onTileUnload:K=>{this.state.tiles.delete(K),typeof T=="function"&&T(K)},transitions:{elevationScale:{type:"spring",stiffness:.3,damping:.5}}}))}_updateColorTexture(e){const{colorRange:t}=e.props;let{colorTexture:n}=this.state;const i=S_e(t);n&&n?.width===t.length?n.setTexture2DData({data:i}):(n?.destroy(),n=this.context.device.createTexture({...C_e,data:i,width:t.length,height:1})),this.setState({colorTexture:n})}}wT.layerName="HeatmapTileLayer";wT.defaultProps=M_e;const[DR,FR,LR,kR]=[0,1,2,3];class Rk extends xg{getShaders(){const e=super.getShaders();let t=e.vs;return t=t.replaceAll("textBackground.padding.","_padding."),t=t.replace("void main(void) {",`void main(void) { 5271 vec4 _padding = textBackground.padding + instancePixelOffsets.xyxy * vec4(1.0, 1.0, -1.0, -1.0);`),{...e,vs:t}}}Rk.layerName="EnhancedTextBackgroundLayer";class Ok extends _h{filterSubLayer({layer:e,renderPass:t}){const n=e.id.includes("primary-background");return t==="collision"?n:!n}}Ok.layerName="EnhancedTextLayer";const R_e={..._h.defaultProps,getRadius:{type:"accessor",value:1},radiusScale:{type:"number",min:0,value:1}};class vy extends Ss{calculatePixelOffset(e){const{getTextAnchor:t,getAlignmentBaseline:n,getRadius:i,getSecondaryText:s,radiusScale:o,secondarySizeScale:l,sizeScale:f}=this.props,A=t==="middle"?0:t==="start"?1:-1,v=n==="center"?0:n==="bottom"?1:-1,T=f/4,I=f*(1+1/4),F=.6*(1-v)*f;let N=e?F:0;t==="middle"&&n==="top"&&s&&(N-=F,N-=l,N+=f);const U=1+1/4;return typeof i=="function"?($,V)=>{const G=(V?i($,V):1)*o*U;return[A*(G+T),v*(G+I)+N]}:[A*(i*o*U+T),v*(i*o*U+I)+N]}calculateBackgroundPadding(){const{getTextAnchor:e,getAlignmentBaseline:t,sizeScale:n}=this.props,i=12*n,s=3*n,o=[0,0,0,0];return t==="top"?o[FR]=s:t==="bottom"?o[kR]=s:(o[FR]=.5*s,o[kR]=.5*s),e==="start"?o[DR]=i:e==="end"?o[LR]=i:(o[DR]=.5*i,o[LR]=.5*i),o}renderTextLayer(e,{updateTriggers:t={},...n}){const{data:i,characterSet:s,fontFamily:o,fontSettings:l,fontWeight:f,outlineColor:A,outlineWidth:v,sizeScale:T,radiusScale:I,getAlignmentBaseline:F,getColor:N,getPosition:U,getTextAnchor:$,updateTriggers:V}=this.props;if(T<2){const G=this.parent?.props?.textSizeScale?"textSizeScale":"sizeScale";Zr.warn(`${G} has small value (${T}). Note getTextSize is not supported on PointLabelLayer`)()}return new Ok(this.getSubLayerProps({id:e,data:i,characterSet:s,fontFamily:o,fontSettings:l,fontWeight:f,outlineColor:A,outlineWidth:v,sizeScale:T,getAlignmentBaseline:F,getColor:N,getPosition:U,getTextAnchor:$,updateTriggers:{...V,...t,getPixelOffset:[V.getRadius,V.getTextAnchor,V.getAlignmentBaseline,I,T]}}),{getSize:1,_subLayerProps:{background:{type:Rk}}},n)}renderLayers(){const{getText:e,getSecondaryColor:t,getSecondaryText:n,secondaryOutlineColor:i,secondarySizeScale:s,updateTriggers:o}=this.props,l=this.calculatePixelOffset(!1),f=this.calculateBackgroun
5271dPadding();return[this.renderTextLayer(`${o.getText}-primary`,{backgroundPadding:f,getText:e,getPixelOffset:l,background:!0}),!!n&&this.renderTextLayer(`${o.getSecondaryText}-secondary`,{getText:n,getPixelOffset:this.calculatePixelOffset(!0),getAlignmentBaseline:"top",...t&&{getColor:t},...s&&{sizeScale:s},...i&&{outlineColor:i}})]}}vy.layerName="PointLabelLayer";vy.defaultProps=R_e;const O_e=`#version 300 es 5272#define SHADER_NAME raster-layer-vertex-shader 5273in vec3 positions; 5274in vec3 normals; 5275in float instanceElevations; 5276in vec4 instanceFillColors; 5277in vec4 instanceLineColors; 5278in vec3 instancePickingColors; 5279out vec4 vColor; 5280#ifdef FLAT_SHADING 5281out vec4 position_commonspace; 5282#endif 5283void main(void) { 5284vec2 tileOrigin = column.offset.xy; 5285float scale = column.widthScale; 5286int yIndex = - (gl_InstanceID / BLOCK_WIDTH); 5287int xIndex = gl_InstanceID + (yIndex * BLOCK_WIDTH); 5288vec2 cellCenter = scale * vec2(float(xIndex) + 0.5, float(yIndex) - 0.5); 5289vec4 color = column.isStroke ? instanceLineColors : instanceFillColors; 5290float shouldRender = float(color.a > 0.0 && instanceElevations >= 0.0); 5291float cellWidth = column.coverage * scale; 5292geometry.position = vec4(tileOrigin, 0.0, 1.0); 5293if (project.projectionMode == PROJECTION_MODE_WEB_MERCATOR_AUTO_OFFSET) { 5294geometry.position.xyz -= project.commonOrigin; 5295} 5296geometry.position.xy += cellCenter; 5297float elevation = 0.0; 5298float strokeOffsetRatio = 1.0; 5299if (column.extruded) { 5300elevation = instanceElevations * (positions.z + 1.0) / 2.0 * column.elevationScale; 5301} else if (column.stroked) { 5302float halfOffset = project_pixel_size(column.widthScale) / cellWidth; 5303if (column.isStroke) { 5304strokeOffsetRatio -= sign(positions.z) * halfOffset; 5305} else { 5306strokeOffsetRatio -= halfOffset; 5307} 5308} 5309geometry.pickingColor = instancePickingColors; 5310vec2 base = positions.xy * scale * strokeOffsetRatio * column.coverage * shouldRender; 5311vec3 cell = vec3(base, project_size(elevation)); 5312DECKGL_FILTER_SIZE(cell, geometry); 5313geometry.position.xyz += cell; 5314gl_Position = project_common_position_to_clipspace(geometry.position); 5315geometry.normal = project_normal(normals); 5316DECKGL_FILTER_GL_POSITION(gl_Position, geometry); 5317if (column.extruded && !column.isStroke) { 5318#ifdef FLAT_SHADING 5319position_commonspace = geometry.position; 5320vColor = vec4(color.rgb, color.a * layer.opacity); 5321#else 5322vec3 lightColor = lighting_getLightColor(color.rgb, project.cameraPosition, geometry.position.xyz, geometry.normal); 5323vColor = vec4(lightColor, color.a * layer.opacity); 5324#endif 5325} else { 5326vColor = vec4(color.rgb, color.a * layer.opacity); 5327} 5328DECKGL_FILTER_COLOR(vColor, geometry); 5329} 5330`,D_e={...pc.defaultProps,extruded:!1,diskResolution:4,vertices:[[-.5,-.5],[.5,-.5],[.5,.5],[-.5,.5]]};class Dk extends Ik(pc){getShaders(){const e=super.getShaders(),t=this.props.data,n=t.data.blockSize??Math.sqrt(t.length);return{...e,defines:{...e.defines,BLOCK_WIDTH:n},vs:O_e}}initializeState(){this.getAttributeManager().addInstanced({instanceElevations:{size:1,transition:!0,accessor:"getElevation"},instanceFillColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getFillColor",defaultValue:[0,0,0,255]},instanceLineColors:{size:this.props.colorFormat.length,type:"unorm8",transition:!0,accessor:"getLineColor",defaultValue:[255,255,255,255]}})}}Dk.layerName="RasterColumnLayer";function F_e(r,e){return r.data===e.data&&r.length===e.length}class TT extends Ss{renderLayers(){const{data:e,getElevation:t,getFillColor:n,getLineColor:i,getLineWidth:s,tileIndex:o,updateTriggers:l}=this.props;if(!e||!o)return null;const f=e.blockSize??0,[A,v,T]=mk(o),I=[A,v],F=T/f,N=this.getSubLayerClass("column",Dk),{highlightedObjectIndex:U,highlightColor:$}=this.state;return new N(this.props,this.getSubLayerProps({id:"cell",updateTriggers:l,getElevation:this.getSubLayerAccessor(t),getFillColor:this.getSubLayerAccessor(n),getLineColor:this.getSubLayerAccessor(i),getLineWidth:this.getSubLayerAccessor(s)}),{data:{data:e,length:f*f},dataComparator:F_e,offset:I,lineWidthScale:F,highlightedObjectIndex:U,highlightColor:$,parameters:{blendColorSrcFactor:"one",blendAlphaSrcFactor:"one",blendColorDstFactor:"zero",blendAlphaDstFactor:"zero",blendColorOperation:"add",blendAlphaOperation:"add"}})}getSubLayerAccessor(e){return typeof e!="function"?super.getSubLayerAccessor(e):(t,n)=>{const{data:i,index:s}=n,o=i.data,l=Wme(o.cells,s);return e({properties:l},n)}}getPickingInfo(e){const t=super.getPickingInfo(e);return t.index!==-1&&(t.object=this.getSubLayerAccessor(n=>n)(void 0,{data:this.props,index:t.index})),t}_updateAutoHighlight(e){const{highlightedObjectIndex:t}=this.state;let n=-1;if(e.index!==-1&&(n=e.index),t!==n){let{highlightColor:i}=this.props;typeof i=="function"&&(i=i(e)),this.setState({highlightColor:i,highlightedObjectIndex:n})}}}TT.layerName="RasterLayer";TT.defaultProps=D_e;const L_e={uint8:Uint8Array,uint16:Uint16Array,uint32:Uint32Array,uint64:BigUint64Array,int8:
5330Int8Array,int16:Int16Array,int32:Int32Array,int64:BigInt64Array,float32:Float32Array,float64:Float64Array};class ET{static read(e,t){return e.readFields(ET._readField,{name:"",type:"",data:null},t)}static _readField(e,t,n){if(e===1)t.name=n.readString();else if(e===2)t.type=n.readString();else if(e===3){const i=L_e[t.type];if(!i)throw Error(`Invalid data type: ${t.type}`);t.data={};const{compression:s}=U2;gy(i,n,t.data,{compression:s})}}}let U2=class Fk{static read(e,t){return e.readFields(Fk._readField,{blockSize:0,bands:[]},t)}static _readField(e,t,n){e===1?t.blockSize=n.readVarint():e===2&&t.bands.push(ET.read(n,n.readVarint()+n.pos))}};const Lk="9.1.14",kk="cartoRasterTile",k_e={cartoRasterTile:{metadata:null,workerUrl:Ay(kk,Lk)}},N_e={name:"CARTO Raster Tile",version:Lk,id:kk,module:"carto",extensions:["pbf"],mimeTypes:["application/vnd.carto-raster-tile"],category:"geometry",parse:async(r,e)=>NR(r,e),parseSync:NR,worker:!0,options:k_e};function NR(r,e){const t=e?.cartoRasterTile?.metadata;if(!r||!t)return null;U2.compression=t.compression;const n=my(r,U2),{bands:i,blockSize:s}=n,o={};for(let l=0;l<i.length;l++){const{name:f,data:A}=i[l];o[f]=A}return{blockSize:s,cells:{numericProps:o,properties:[]}}}Tp([N_e]);const U_e=r=>{const e=r.tile?.index?.q;return e?new TT(r,{tileIndex:e}):null},z_e={data:ch,refinementStrategy:"no-overlap",tileSize:Mp};class V_e extends Bk(nu,b_e){filterSubLayer(e){const{tile:t}=e.layer.props;return t?super.filterSubLayer(e):!0}}class CT extends Ss{getLoadOptions(){const e=this.props.data;return Rp(super.getLoadOptions(),{fetch:{headers:{Authorization:`Bearer ${e.accessToken}`}}})}renderLayers(){const e=this.props.data;if(!e)return null;const{tiles:t,minzoom:n,maxzoom:i,raster_metadata:s}=e,o=this.getSubLayerClass("tile",V_e),l=this.getLoadOptions();return new o(this.props,{id:`raster-tile-layer-${this.props.id}`,data:t,TilesetClass:fT,renderSubLayers:U_e,minZoom:n,maxZoom:i,loadOptions:{...l,cartoRasterTile:{...l?.cartoRasterTile,metadata:s}}})}}CT.layerName="RasterTileLayer";CT.defaultProps=z_e;class ST{static read(e,t){return e.readFields(ST._readField,{properties:[],numericProps:{}},t)}static _readField(e,t,n){if(e===1)t.properties.push(vh.read(n,n.readVarint()+n.pos));else if(e===2){const i=bh.read(n,n.readVarint()+n.pos);t.numericProps[i.key]=i.value}}}const Nk="9.1.14",Uk="cartoPropertiesTile",j_e={cartoPropertiesTile:{workerUrl:Ay(Uk,Nk)}},G_e={name:"CARTO Properties Tile",version:Nk,id:Uk,module:"carto",extensions:["pbf"],mimeTypes:["application/vnd.carto-properties-tile"],category:"geometry",worker:!0,parse:async(r,e)=>UR(r),parseSync:UR,options:j_e};function UR(r,e){return r?my(r,ST):null}const zk="9.1.14",Vk="cartoVectorTile",H_e={cartoVectorTile:{workerUrl:Ay(Vk,zk)}},W_e={name:"CARTO Vector Tile",version:zk,id:Vk,module:"carto",extensions:["pbf"],mimeTypes:["application/vnd.carto-vector-tile"],category:"geometry",parse:async(r,e)=>zR(r),parseSync:zR,worker:!0,options:H_e};function $_e(r,e,{startPosition:t,endPosition:n,indices:i}){const s=r.positions.size,o=t*s,l=n*s,f=r.positions.value.subarray(o,l),A=i.slice(1).map(T=>T-t),v=eL(f,A,s);for(let T=0,I=v.length;T<I;++T)e.push(t+v[T])}function X_e(r){const{polygonIndices:e,primitivePolygonIndices:t}=r,n=[];let i=0;for(let s=0;s<e.value.length-1;s++){const o=e.value[s],l=e.value[s+1],f=t.value.indexOf(l),A=t.value.subarray(i,f);i=f,$_e(r,n,{startPosition:o,endPosition:l,indices:A})}r.triangles={value:new Uint32Array(n),size:1}}function zR(r,e){if(!r)return null;const t=my(r,s_e);return t.polygons&&!t.polygons.triangles&&X_e(t.polygons),t}function q_e(r,e){const t=e?e in r.numericProps:!1,n=new Map;for(let v=0;v<r.pathIndices.value.length-1;v++){const T=r.pathIndices.value[v],I=r.featureIds.value[T];let F;e===void 0?F=I:t?F=r.numericProps[e].value[T]:r.properties[I]&&e in r.properties[I]?F=r.properties[I][e]:F=void 0;const N=tye(r,v);(!n.has(F)||N>n.get(F).length)&&n.set(F,{index:v,length:N})}const i=[],s=[],o=[],l=[],f=Ak(n.size,r.numericProps);let A=0;for(const[v,{index:T}]of n){const I=rye(r,T);i.push(...I);const F=r.pathIndices.value[T],N=r.featureIds.value[F];o.push(A),s.push(r.properties[N]),l.push(r.globalFeatureIds.value[F]),gk(r.numericProps,f,F,A),A++}return uT(i,o,l,f,s)}function J_e(r,e,t){const{west:n,south:i,east:s,north:o}=e,f=(s-n)*(o-i)*1e-4,A=[],v=[],T=[],I=[],F=Ak(r.polygonIndices.value.length-1,r.numericProps);let N=0,U=0;const{extruded:$}=t;for(let V=0;V<r.polygonIndices.value.length-1;V++){const G=r.polygonIndices.value[V],X=r.polygonIndices.value[V+1];if(K_e(r,V)<f)continue;const ue=Q_e(r,V);let K=-1,se=[0,0],Ee=!1;for(;U<r.triangles.value.length;){const de=r.triangles.value[U];if(de>=X)break;if(Ee){U+=3;continue}const me=r.triangles.value[U+1],pe=r.triangles.value[U+2],W=r.positions.value.subarray(de*r.positions.size,de*r.positions.size+r.positions.size),te=r.positions.value.subarray(me*r.positions.size,me*r.positions.size+r.positions.size),Ce=r.positions.value.subarray(pe*r.positions.size,pe*r.positions.size+r.positions.size);if(Y_e(ue,W,te,Ce))Ee=!0;else{const Qe=jk(W,te,Ce);Qe>K&&(K=Qe,se=[(W[0]+te[0]+Ce[0])/3,(W[1]+te[1]+Ce[1])/3])}U+=3}const Ue=Ee?ue:se;if(Z_e(Ue,e)){A.push(...Ue);const de=r.featureIds.value[G];if($){const me=t.getElevation(void 0,{data:r,index:de});A.push(me*t.elevationScale)}v.push(r.properties[de]),T.push(N),I.push(r.globalFeatureIds.value[G]),gk(r.
5330numericProps,F,G,N),N++}}return r.numericProps&&Object.keys(F).forEach(V=>{F[V].value=F[V].value.slice(0,N)}),uT(A,T,I,F,v,$?3:2)}function K_e(r,e){const{positions:{value:t,size:n},polygonIndices:{value:i},triangles:{value:s}}=r,o=i[e],l=i[e+1];let f=0,A=0;for(;A<s.length&&!(s[A]>=o);)A+=3;for(;A<s.length;){const v=s[A];if(v>=l)break;const T=s[A+1],I=s[A+2],F=t.subarray(v*n,v*n+n),N=t.subarray(T*n,T*n+n),U=t.subarray(I*n,I*n+n);f+=jk(F,N,U),A+=3}return f}function Z_e([r,e],{west:t,east:n,south:i,north:s}){return r>=t&&r<n&&e>=i&&e<s}function Y_e(r,e,t,n){const i=Math.abs((t[0]-e[0])*(n[1]-e[1])-(n[0]-e[0])*(t[1]-e[1]))/2,s=Math.abs((e[0]-r[0])*(t[1]-r[1])-(t[0]-r[0])*(e[1]-r[1]))/2,o=Math.abs((t[0]-r[0])*(n[1]-r[1])-(n[0]-r[0])*(t[1]-r[1]))/2,l=Math.abs((n[0]-r[0])*(e[1]-r[1])-(e[0]-r[0])*(n[1]-r[1]))/2;return Math.abs(i-(s+o+l))<1e-10}function jk([r,e],[t,n],[i,s]){return Math.abs((r*(n-s)+t*(s-e)+i*(e-n))/2)}function Q_e(r,e){const{positions:{value:t,size:n}}=r,i=n*r.polygonIndices.value[e],s=n*r.polygonIndices.value[e+1];let o=1/0,l=1/0,f=-1/0,A=-1/0;for(let v=i;v<s;v+=n){const[T,I]=t.subarray(v,v+2);o=Math.min(o,T),l=Math.min(l,I),f=Math.max(f,T),A=Math.max(A,I)}return[(o+f)/2,(l+A)/2]}function eye(r,e){const{positions:{value:t}}=r,[n,i,s,o]=t.subarray(e,e+4);return Math.sqrt(Math.pow(s-n,2)+Math.pow(o-i,2))}function tye(r,e){const{positions:{size:t}}=r,n=t*r.pathIndices.value[e],i=t*r.pathIndices.value[e+1];let s=0;for(let o=n;o<i;o+=t)s+=eye(r,o);return s}function rye(r,e){const{positions:{value:t},pathIndices:{value:n}}=r,i=n[e]*2,o=(n[e+1]*2-i)/2;if(o===2){const[f,A,v,T]=t.subarray(i,i+4);return[(f+v)/2,(A+T)/2]}const l=i+Math.floor(o/2)*2;return[t[l],t[l+1]]}Tp([G_e,W_e]);const nye={...Ip.defaultProps,autoLabels:!1,data:ch,dataComparator:ch.equal,tileSize:Mp};class IT extends Ip{constructor(...e){super(...e)}initializeState(){super.initializeState(),this.setState({binary:!0})}updateState(e){const{props:t}=e;if(t.data){super.updateState(e);const i=new URL(t.data.tiles[0]).searchParams.get("formatTiles")==="mvt";this.setState({mvt:i})}}getLoadOptions(){const e=this.props.data;return Rp(super.getLoadOptions(),{fetch:{headers:{Authorization:`Bearer ${e.accessToken}`}},gis:{format:"binary"}})}async getTileData(e){const t=this.props.data,{tiles:n,properties_tiles:i}=t,s=oh(n,e);if(!s)return Promise.reject("Invalid URL");const o=this.getLoadOptions(),{fetch:l}=this.props,{signal:f}=e,A=l(s,{propName:"data",layer:this,loadOptions:o,signal:f});if(!i)return await A;const v=oh(i,e);if(!v)return Promise.reject("Invalid properties URL");const T=l(v,{propName:"data",layer:this,loadOptions:o,signal:f}),[I,F]=await Promise.all([A,T]);return I?F?c_e(I,F):I:null}renderSubLayers(e){if(e.data===null)return null;const t=e.tile.bbox,n=[],i={"points-text":{type:vy,...e?._subLayerProps?.["points-text"],extensions:[new Qw,...e.extensions||[],...e?._subLayerProps?.["points-text"]?.extensions||[]]}};if(this.state.mvt)n.push(super.renderSubLayers(e));else{const{west:s,south:o,east:l,north:f}=t,A=[new uy,...e.extensions||[]],v={clipBounds:[s,o,l,f]},T=F=>({[F]:{...v,...e?._subLayerProps?.[F],extensions:[...A,...e?._subLayerProps?.[F]?.extensions||[]]}}),I={...e,data:{...e.data,tileBbox:t},autoHighlight:!1,_subLayerProps:{...e._subLayerProps,...i,...T("polygons-fill"),...T("polygons-stroke"),...T("linestrings")}};n.push(new ru(I))}if(n[0]&&e.autoLabels){const s=pk();e.data.lines&&e.data.lines.positions.value.length>0&&(s.points=q_e(e.data.lines,typeof e.autoLabels=="object"?e.autoLabels.uniqueIdProperty:void 0)),e.data.polygons&&e.data.polygons.positions.value.length>0&&(s.points=J_e(e.data.polygons,t,e)),n.push(n[0].clone({id:`${e.id}-labels`,data:s,pickable:!1,autoHighlight:!1}))}return n}renderLayers(){const e=super.renderLayers();if(!this.props.autoLabels)return e;const t=e.flat().filter(Boolean);return t.sort((n,i)=>{const s=n.id.includes("labels"),o=i.id.includes("labels");return s&&!o?1:!s&&o?-1:0}),t.map(n=>n.id.includes("labels")?n.clone({highlightedObjectIndex:-1}):n)}_isWGS84(){return this.state.mvt?super._isWGS84():!0}}IT.layerName="VectorTileLayer";IT.defaultProps=nye;var Mn
vendor: 1,823 bytes, line 5330
5330={YlGn:{3:["#f7fcb9","#addd8e","#31a354"],4:["#ffffcc","#c2e699","#78c679","#238443"],5:["#ffffcc","#c2e699","#78c679","#31a354","#006837"],6:["#ffffcc","#d9f0a3","#addd8e","#78c679","#31a354","#006837"],7:["#ffffcc","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],8:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#005a32"],9:["#ffffe5","#f7fcb9","#d9f0a3","#addd8e","#78c679","#41ab5d","#238443","#006837","#004529"]},YlGnBu:{3:["#edf8b1","#7fcdbb","#2c7fb8"],4:["#ffffcc","#a1dab4","#41b6c4","#225ea8"],5:["#ffffcc","#a1dab4","#41b6c4","#2c7fb8","#253494"],6:["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#2c7fb8","#253494"],7:["#ffffcc","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],8:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#0c2c84"],9:["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb","#41b6c4","#1d91c0","#225ea8","#253494","#081d58"]},GnBu:{3:["#e0f3db","#a8ddb5","#43a2ca"],4:["#f0f9e8","#bae4bc","#7bccc4","#2b8cbe"],5:["#f0f9e8","#bae4bc","#7bccc4","#43a2ca","#0868ac"],6:["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#43a2ca","#0868ac"],7:["#f0f9e8","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],8:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#08589e"],9:["#f7fcf0","#e0f3db","#ccebc5","#a8ddb5","#7bccc4","#4eb3d3","#2b8cbe","#0868ac","#084081"]},BuGn:{3:["#e5f5f9","#99d8c9","#2ca25f"],4:["#edf8fb","#b2e2e2","#66c2a4","#238b45"],5:["#edf8fb","#b2e2e2","#66c2a4","#2ca25f","#006d2c"],6:["#edf8fb","#ccece6","#99d8c9","#66c2a4","#2ca25f","#006d2c"],7:["#edf8fb","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],8:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#005824"],9:["#f7fcfd","#e5f5f9","#ccece6","#99d8c9","#66c2a4","#41ae76","#238b45","#006d2c","#00441b"]}
vendor: 16,436 bytes, line 5330
5330,PuBuGn:{3:["#ece2f0","#a6bddb","#1c9099"],4:["#f6eff7","#bdc9e1","#67a9cf","#02818a"],5:["#f6eff7","#bdc9e1","#67a9cf","#1c9099","#016c59"],6:["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#1c9099","#016c59"],7:["#f6eff7","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],8:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016450"],9:["#fff7fb","#ece2f0","#d0d1e6","#a6bddb","#67a9cf","#3690c0","#02818a","#016c59","#014636"]},PuBu:{3:["#ece7f2","#a6bddb","#2b8cbe"],4:["#f1eef6","#bdc9e1","#74a9cf","#0570b0"],5:["#f1eef6","#bdc9e1","#74a9cf","#2b8cbe","#045a8d"],6:["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#2b8cbe","#045a8d"],7:["#f1eef6","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],8:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#034e7b"],9:["#fff7fb","#ece7f2","#d0d1e6","#a6bddb","#74a9cf","#3690c0","#0570b0","#045a8d","#023858"]},BuPu:{3:["#e0ecf4","#9ebcda","#8856a7"],4:["#edf8fb","#b3cde3","#8c96c6","#88419d"],5:["#edf8fb","#b3cde3","#8c96c6","#8856a7","#810f7c"],6:["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8856a7","#810f7c"],7:["#edf8fb","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],8:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#6e016b"],9:["#f7fcfd","#e0ecf4","#bfd3e6","#9ebcda","#8c96c6","#8c6bb1","#88419d","#810f7c","#4d004b"]},RdPu:{3:["#fde0dd","#fa9fb5","#c51b8a"],4:["#feebe2","#fbb4b9","#f768a1","#ae017e"],5:["#feebe2","#fbb4b9","#f768a1","#c51b8a","#7a0177"],6:["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#c51b8a","#7a0177"],7:["#feebe2","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],8:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177"],9:["#fff7f3","#fde0dd","#fcc5c0","#fa9fb5","#f768a1","#dd3497","#ae017e","#7a0177","#49006a"]},PuRd:{3:["#e7e1ef","#c994c7","#dd1c77"],4:["#f1eef6","#d7b5d8","#df65b0","#ce1256"],5:["#f1eef6","#d7b5d8","#df65b0","#dd1c77","#980043"],6:["#f1eef6","#d4b9da","#c994c7","#df65b0","#dd1c77","#980043"],7:["#f1eef6","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],8:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#91003f"],9:["#f7f4f9","#e7e1ef","#d4b9da","#c994c7","#df65b0","#e7298a","#ce1256","#980043","#67001f"]},OrRd:{3:["#fee8c8","#fdbb84","#e34a33"],4:["#fef0d9","#fdcc8a","#fc8d59","#d7301f"],5:["#fef0d9","#fdcc8a","#fc8d59","#e34a33","#b30000"],6:["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#e34a33","#b30000"],7:["#fef0d9","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],8:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#990000"],9:["#fff7ec","#fee8c8","#fdd49e","#fdbb84","#fc8d59","#ef6548","#d7301f","#b30000","#7f0000"]},YlOrRd:{3:["#ffeda0","#feb24c","#f03b20"],4:["#ffffb2","#fecc5c","#fd8d3c","#e31a1c"],5:["#ffffb2","#fecc5c","#fd8d3c","#f03b20","#bd0026"],6:["#ffffb2","#fed976","#feb24c","#fd8d3c","#f03b20","#bd0026"],7:["#ffffb2","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],8:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#b10026"],9:["#ffffcc","#ffeda0","#fed976","#feb24c","#fd8d3c","#fc4e2a","#e31a1c","#bd0026","#800026"]},YlOrBr:{3:["#fff7bc","#fec44f","#d95f0e"],4:["#ffffd4","#fed98e","#fe9929","#cc4c02"],5:["#ffffd4","#fed98e","#fe9929","#d95f0e","#993404"],6:["#ffffd4","#fee391","#fec44f","#fe9929","#d95f0e","#993404"],7:["#ffffd4","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],8:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#8c2d04"],9:["#ffffe5","#fff7bc","#fee391","#fec44f","#fe9929","#ec7014","#cc4c02","#993404","#662506"]},Purples:{3:["#efedf5","#bcbddc","#756bb1"],4:["#f2f0f7","#cbc9e2","#9e9ac8","#6a51a3"],5:["#f2f0f7","#cbc9e2","#9e9ac8","#756bb1","#54278f"],6:["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#756bb1","#54278f"],7:["#f2f0f7","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],8:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#4a1486"],9:["#fcfbfd","#efedf5","#dadaeb","#bcbddc","#9e9ac8","#807dba","#6a51a3","#54278f","#3f007d"]},Blues:{3:["#deebf7","#9ecae1","#3182bd"],4:["#eff3ff","#bdd7e7","#6baed6","#2171b5"],5:["#eff3ff","#bdd7e7","#6baed6","#3182bd","#08519c"],6:["#eff3ff","#c6dbef","#9ecae1","#6baed6","#3182bd","#08519c"],7:["#eff3ff","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],8:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#084594"],9:["#f7fbff","#deebf7","#c6dbef","#9ecae1","#6baed6","#4292c6","#2171b5","#08519c","#08306b"]},Greens:{3:["#e5f5e0","#a1d99b","#31a354"],4:["#edf8e9","#bae4b3","#74c476","#238b45"],5:["#edf8e9","#bae4b3","#74c476","#31a354","#006d2c"],6:["#edf8e9","#c7e9c0","#a1d99b","#74c476","#31a354","#006d2c"],7:["#edf8e9","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],8:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#005a32"],9:["#f7fcf5","#e5f5e0","#c7e9c0","#a1d99b","#74c476","#41ab5d","#238b45","#006d2c","#00441b"]},Oranges:{3:["#fee6ce","#fdae6b","#e6550d"],4:["#feedde","#fdbe85","#fd8d3c","#d94701"],5:["#feedde","#fdbe85","#fd8d3c","#e6550d","#a63603"],6:["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#e6550d","#a63603"],7:["#feedde","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],8:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#8c2d04"],9:["#fff5eb","#fee6ce","#fdd0a2","#fdae6b","#fd8d3c","#f16913","#d94801","#a63603","#7f2704"]},Reds:{3:["#fee0d2","#fc9272","#de2d26"],4:["#fee5d9","#fcae91","#fb6a4a","#cb181d"],5:["#fee5d9","#fcae91","#fb6a4a","#de2d26","#a50f15"],6:["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#de2d26","#a50f15"],7:["#fee5d9","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],8:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#99000d"],9:["#fff5f0","#fee0d2","#fcbba1","#fc9272","#fb6a4a","#ef3b2c","#cb181d","#a50f15","#67000d"]},Greys:{3:["#f0f0f0","#bdbdbd","#636363"],4:["#f7f7f7","#cccccc","#969696","#525252"],5:["#f7f7f7","#cccccc","#969696","#636363","#252525"],6:["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#636363","#252525"],7:["#f7f7f7","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],8:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525"],9:["#ffffff","#f0f0f0","#d9d9d9","#bdbdbd","#969696","#737373","#525252","#252525","#000000"]},PuOr:{3:["#f1a340","#f7f7f7","#998ec3"],4:["#e66101","#fdb863","#b2abd2","#5e3c99"],5:["#e66101","#fdb863","#f7f7f7","#b2abd2","#5e3c99"],6:["#b35806","#f1a340","#fee0b6","#d8daeb","#998ec3","#542788"],7:["#b35806","#f1a340","#fee0b6","#f7f7f7","#d8daeb","#998ec3","#542788"],8:["#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788"],9:["#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788"],10:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"],11:["#7f3b08","#b35806","#e08214","#fdb863","#fee0b6","#f7f7f7","#d8daeb","#b2abd2","#8073ac","#542788","#2d004b"]},BrBG:{3:["#d8b365","#f5f5f5","#5ab4ac"],4:["#a6611a","#dfc27d","#80cdc1","#018571"],5:["#a6611a","#dfc27d","#f5f5f5","#80cdc1","#018571"],6:["#8c510a","#d8b365","#f6e8c3","#c7eae5","#5ab4ac","#01665e"],7:["#8c510a","#d8b365","#f6e8c3","#f5f5f5","#c7eae5","#5ab4ac","#01665e"],8:["#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e"],9:["#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e"],10:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"],11:["#543005","#8c510a","#bf812d","#dfc27d","#f6e8c3","#f5f5f5","#c7eae5","#80cdc1","#35978f","#01665e","#003c30"]},PRGn:{3:["#af8dc3","#f7f7f7","#7fbf7b"],4:["#7b3294","#c2a5cf","#a6dba0","#008837"],5:["#7b3294","#c2a5cf","#f7f7f7","#a6dba0","#008837"],6:["#762a83","#af8dc3","#e7d4e8","#d9f0d3","#7fbf7b","#1b7837"],7:["#762a83","#af8dc3","#e7d4e8","#f7f7f7","#d9f0d3","#7fbf7b","#1b7837"],8:["#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837"],9:["#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837"],10:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"],11:["#40004b","#762a83","#9970ab","#c2a5cf","#e7d4e8","#f7f7f7","#d9f0d3","#a6dba0","#5aae61","#1b7837","#00441b"]},PiYG:{3:["#e9a3c9","#f7f7f7","#a1d76a"],4:["#d01c8b","#f1b6da","#b8e186","#4dac26"],5:["#d01c8b","#f1b6da","#f7f7f7","#b8e186","#4dac26"],6:["#c51b7d","#e9a3c9","#fde0ef","#e6f5d0","#a1d76a","#4d9221"],7:["#c51b7d","#e9a3c9","#fde0ef","#f7f7f7","#e6f5d0","#a1d76a","#4d9221"],8:["#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221"],9:["#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221"],10:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"],11:["#8e0152","#c51b7d","#de77ae","#f1b6da","#fde0ef","#f7f7f7","#e6f5d0","#b8e186","#7fbc41","#4d9221","#276419"]},RdBu:{3:["#ef8a62","#f7f7f7","#67a9cf"],4:["#ca0020","#f4a582","#92c5de","#0571b0"],5:["#ca0020","#f4a582","#f7f7f7","#92c5de","#0571b0"],6:["#b2182b","#ef8a62","#fddbc7","#d1e5f0","#67a9cf","#2166ac"],7:["#b2182b","#ef8a62","#fddbc7","#f7f7f7","#d1e5f0","#67a9cf","#2166ac"],8:["#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac"],9:["#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac"],10:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"],11:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#f7f7f7","#d1e5f0","#92c5de","#4393c3","#2166ac","#053061"]},RdGy:{3:["#ef8a62","#ffffff","#999999"],4:["#ca0020","#f4a582","#bababa","#404040"],5:["#ca0020","#f4a582","#ffffff","#bababa","#404040"],6:["#b2182b","#ef8a62","#fddbc7","#e0e0e0","#999999","#4d4d4d"],7:["#b2182b","#ef8a62","#fddbc7","#ffffff","#e0e0e0","#999999","#4d4d4d"],8:["#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d"],9:["#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d"],10:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"],11:["#67001f","#b2182b","#d6604d","#f4a582","#fddbc7","#ffffff","#e0e0e0","#bababa","#878787","#4d4d4d","#1a1a1a"]},RdYlBu:{3:["#fc8d59","#ffffbf","#91bfdb"],4:["#d7191c","#fdae61","#abd9e9","#2c7bb6"],5:["#d7191c","#fdae61","#ffffbf","#abd9e9","#2c7bb6"],6:["#d73027","#fc8d59","#fee090","#e0f3f8","#91bfdb","#4575b4"],7:["#d73027","#fc8d59","#fee090","#ffffbf","#e0f3f8","#91bfdb","#4575b4"],8:["#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4"],9:["#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4"],10:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"],11:["#a50026","#d73027","#f46d43","#fdae61","#fee090","#ffffbf","#e0f3f8","#abd9e9","#74add1","#4575b4","#313695"]},Spectral:{3:["#fc8d59","#ffffbf","#99d594"],4:["#d7191c","#fdae61","#abdda4","#2b83ba"],5:["#d7191c","#fdae61","#ffffbf","#abdda4","#2b83ba"],6:["#d53e4f","#fc8d59","#fee08b","#e6f598","#99d594","#3288bd"],7:["#d53e4f","#fc8d59","#fee08b","#ffffbf","#e6f598","#99d594","#3288bd"],8:["#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd"],9:["#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd"],10:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"],11:["#9e0142","#d53e4f","#f46d43","#fdae61","#fee08b","#ffffbf","#e6f598","#abdda4","#66c2a5","#3288bd","#5e4fa2"]},RdYlGn:{3:["#fc8d59","#ffffbf","#91cf60"],4:["#d7191c","#fdae61","#a6d96a","#1a9641"],5:["#d7191c","#fdae61","#ffffbf","#a6d96a","#1a9641"],6:["#d73027","#fc8d59","#fee08b","#d9ef8b","#91cf60","#1a9850"],7:["#d73027","#fc8d59","#fee08b","#ffffbf","#d9ef8b","#91cf60","#1a9850"],8:["#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850"],9:["#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850"],10:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"],11:["#a50026","#d73027","#f46d43","#fdae61","#fee08b","#ffffbf","#d9ef8b","#a6d96a","#66bd63","#1a9850","#006837"]},Accent:{3:["#7fc97f","#beaed4","#fdc086"],4:["#7fc97f","#beaed4","#fdc086","#ffff99"],5:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0"],6:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f"],7:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17"],8:["#7fc97f","#beaed4","#fdc086","#ffff99","#386cb0","#f0027f","#bf5b17","#666666"]},Dark2:{3:["#1b9e77","#d95f02","#7570b3"],4:["#1b9e77","#d95f02","#7570b3","#e7298a"],5:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e"],6:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02"],7:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d"],8:["#1b9e77","#d95f02","#7570b3","#e7298a","#66a61e","#e6ab02","#a6761d","#666666"]},Paired:{3:["#a6cee3","#1f78b4","#b2df8a"],4:["#a6cee3","#1f78b4","#b2df8a","#33a02c"],5:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99"],6:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c"],7:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f"],8:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00"],9:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6"],10:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a"],11:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99"],12:["#a6cee3","#1f78b4","#b2df8a","#33a02c","#fb9a99","#e31a1c","#fdbf6f","#ff7f00","#cab2d6","#6a3d9a","#ffff99","#b15928"]},Pastel1:{3:["#fbb4ae","#b3cde3","#ccebc5"],4:["#fbb4ae","#b3cde3","#ccebc5","#decbe4"],5:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6"],6:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc"],7:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd"],8:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec"],9:["#fbb4ae","#b3cde3","#ccebc5","#decbe4","#fed9a6","#ffffcc","#e5d8bd","#fddaec","#f2f2f2"]},Pastel2:{3:["#b3e2cd","#fdcdac","#cbd5e8"],4:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4"],5:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9"],6:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae"],7:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc"],8:["#b3e2cd","#fdcdac","#cbd5e8","#f4cae4","#e6f5c9","#fff2ae","#f1e2cc","#cccccc"]},Set1:{3:["#e41a1c","#377eb8","#4daf4a"],4:["#e41a1c","#377eb8","#4daf4a","#984ea3"],5:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00"],6:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33"],7:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628"],8:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf"],9:["#e41a1c","#377eb8","#4daf4a","#984ea3","#ff7f00","#ffff33","#a65628","#f781bf","#999999"]},Set2:{3:["#66c2a5","#fc8d62","#8da0cb"],4:["#66c2a5","#fc8d62","#8da0cb","#e78ac3"],5:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854"],6:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f"],7:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494"],8:["#66c2a5","#fc8d62","#8da0cb","#e78ac3","#a6d854","#ffd92f","#e5c494","#b3b3b3"]},Set3:{3:["#8dd3c7","#ffffb3","#bebada"],4:["#8dd3c7","#ffffb3","#bebada","#fb8072"],5:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3"],6:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462"],7:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69"],8:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5"],9:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9"],10:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd"],11:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5"],12:["#8dd3c7","#ffffb3","#bebada","#fb8072","#80b1d3","#fdb462","#b3de69","#fccde5","#d9d9d9","#bc80bd","#ccebc5","#ffed6f"]}},
5330iye={2:["#ffc6c4","#672044"],3:["#ffc6c4","#cc607d","#672044"],4:["#ffc6c4","#e38191","#ad466c","#672044"],5:["#ffc6c4","#ee919b","#cc607d","#9e3963","#672044"],6:["#ffc6c4","#f29ca3","#da7489","#b95073","#93345d","#672044"],7:["#ffc6c4","#f4a3a8","#e38191","#cc607d","#ad466c","#8b3058","#672044"],tags:["quantitative"]},sye={2:["#fbe6c5","#70284a"],3:["#fbe6c5","#dc7176","#70284a"],4:["#fbe6c5","#ee8a82","#c8586c","#70284a"],5:["#fbe6c5","#f2a28a","#dc7176","#b24b65","#70284a"],6:["#fbe6c5","#f4b191","#e7807d","#d06270","#a44360","#70284a"],7:["#fbe6c5","#f5ba98","#ee8a82","#dc7176","#c8586c","#9c3f5d","#70284a"],tags:["quantitative"]},oye={2:["#f6d2a9","#b13f64"],3:["#f6d2a9","#ea8171","#b13f64"],4:["#f6d2a9","#f19c7c","#dd686c","#b13f64"],5:["#f6d2a9","#f3aa84","#ea8171","#d55d6a","#b13f64"],6:["#f6d2a9","#f4b28a","#ef9177","#e3726d","#cf5669","#b13f64"],7:["#f6d2a9","#f5b78e","#f19c7c","#ea8171","#dd686c","#ca5268","#b13f64"],tags:["quantitative"]},aye={2:["#ecda9a","#ee4d5a"],3:["#ecda9a","#f7945d","#ee4d5a"],4:["#ecda9a","#f3ad6a","#f97b57","#ee4d5a"],5:["#ecda9a","#f1b973","#f7945d","#f86f56","#ee4d5a"],6:["#ecda9a","#f0c079","#f5a363","#f98558","#f76856","#ee4d5a"],7:["#ecda9a","#efc47e","#f3ad6a","#f7945d","#f97b57","#f66356","#ee4d5a"],tags:["quantitative"]},lye={2:["#fde0c5","#eb4a40"],3:["#fde0c5","#f59e72","#eb4a40"],4:["#fde0c5","#f8b58b","#f2855d","#eb4a40"],5:["#fde0c5","#f9c098","#f59e72","#f17854","#eb4a40"],6:["#fde0c5","#fac7a1","#f7ac80","#f38f65","#f0704f","#eb4a40"],7:["#fde0c5","#facba6","#f8b58b","#f59e72","#f2855d","#ef6a4c","#eb4a40"],tags:["quantitative"]},cye={2:["#fef6b5","#e15383"],3:["#fef6b5","#ffa679","#e15383"],4:["#fef6b5","#ffc285","#fa8a76","#e15383"],5:["#fef6b5","#ffd08e","#ffa679","#f67b77","#e15383"],6:["#fef6b5","#ffd795","#ffb77f","#fd9576","#f37378","#e15383"],7:["#fef6b5","#ffdd9a","#ffc285","#ffa679","#fa8a76","#f16d7a","#e15383"],tags:["quantitative"]},uye={2:["#e4f1e1","#0d585f"],3:["#e4f1e1","#63a6a0","#0d585f"],4:["#e4f1e1","#89c0b6","#448c8a","#0d585f"],5:["#E4F1E1","#9CCDC1","#63A6A0","#337F7F","#0D585F"],6:["#e4f1e1","#abd4c7","#7ab5ad","#509693","#2c7778","#0d585f"],7:["#e4f1e1","#b4d9cc","#89c0b6","#63a6a0","#448c8a","#287274","#0d585f"],tags:["quantitative"]},fye={2:["#c4e6c3","#1d4f60"],3:["#c4e6c3","#4da284","#1d4f60"],4:["#c4e6c3","#6dbc90","#36877a","#1d4f60"],5:["#c4e6c3","#80c799","#4da284","#2d7974","#1d4f60"],6:["#c4e6c3","#8dce9f","#5fb28b","#3e927e","#297071","#1d4f60"],7:["#c4e6c3","#96d2a4","#6dbc90","#4da284","#36877a","#266b6e","#1d4f60"],tags:["quantitative"]},hye={2:["#d2fbd4","#123f5a"],3:["#d2fbd4","#559c9e","#123f5a"],4:["#d2fbd4","#7bbcb0","#3a7c89","#123f5a"],5:["#d2fbd4","#8eccb9","#559c9e","#2b6c7f","#123f5a"],6:["#d2fbd4","#9cd5be","#6cafa9","#458892","#266377","#123f5a"],7:["#d2fbd4","#a5dbc2","#7bbcb0","#559c9e","#3a7c89","#235d72","#123f5a"],tags:["quantitative"]},dye={2:["#d3f2a3","#074050"],3:["#d3f2a3","#4c9b82","#074050"],4:["#d3f2a3","#6cc08b","#217a79","#074050"],5:["#d3f2a3","#82d091","#4c9b82","#19696f","#074050"],6:["#d3f2a3","#8fda94","#60b187","#35877d","#145f69","#074050"],7:["#d3f2a3","#97e196","#6cc08b","#4c9b82","#217a79","#105965","#074050"],tags:["quantitative"]},pye={2:["#245668","#EDEF5D"],3:["#245668","#39AB7E","#EDEF5D"],4:["#245668","#0D8F81","#6EC574","#EDEF5D"],5:["#245668","#04817E","#39AB7E","#8BD16D","#EDEF5D"],6:["#245668","#09787C","#1D9A81","#58BB79","#9DD869","#EDEF5D"],7:["#245668","#0F7279","#0D8F81","#39AB7E","#6EC574","#A9DC67","#EDEF5D"],tags:["aggregation"]},Aye={2:["#f7feae","#045275"],3:["#f7feae","#46aea0","#045275"],4:["#f7feae","#7ccba2","#089099","#045275"],5:["#f7feae","#9bd8a4","#46aea0","#058092","#045275"],6:["#f7feae","#ace1a4","#68bfa1","#2a9c9c","#02778e","#045275"],7:["#f7feae","#b7e6a5","#7ccba2","#46aea0","#089099","#00718b","#045275"],tags:["quantitative"]},gye={2:["#d1eeea","#2a5674"],3:["#d1eeea","#68abb8","#2a5674"],4:["#d1eeea","#85c4c9","#4f90a6","#2a5674"],5:["#d1eeea","#96d0d1","#68abb8","#45829b","#2a5674"],6:["#d1eeea","#a1d7d6","#79bbc3","#599bae","#3f7994","#2a5674"],7:["#d1eeea","#a8dbd9","#85c4c9","#68abb8","#4f90a6","#3b738f","#2a5674"],tags:["quantitative"]},mye={2:["#b0f2bc","#257d98"],3:["#b0f2bc","#4cc8a3","#257d98"],4:["#b0f2bc","#67dba5","#38b2a3","#257d98"],5:["#b0f2bc","#77e2a8","#4cc8a3","#31a6a2","#257d98"],6:["#b0f2bc","#82e6aa","#5bd4a4","#3fbba3","#2e9ea1","#257d98"],7:["#b0f2bc","#89e8ac","#67dba5","#4cc8a3","#38b2a3","#2c98a0","#257d98"],tags:["quantitative"]},_ye={2:["#f3e0f7","#63589f"],3:["#f3e0f7","#b998dd","#63589f"],4:["#f3e0f7","#d1afe8","#9f82ce","#63589f"],5:["#f3e0f7","#dbbaed","#b998dd","#9178c4","#63589f"],6:["#f3e0f7","#e0c2ef","#c8a5e4","#aa8bd4","#8871be","#63589f"],7:["#f3e0f7","#e4c7f1","#d1afe8","#b998dd","#9f82ce","#826dba","#63589f"],tags:["quantitative"]},yye={2:["#f9ddda","#573b88"],3:["#f9ddda","#ce78b3","#573b88"],4:["#f9ddda","#e597b9","#ad5fad","#573b88"],5:["#f9ddda","#eda8bd","#ce78b3","#9955a8","#573b88"],6:["#f9ddda","#f0b2c1","#dd8ab6","#bb69b0","#8c4fa4","#573b88"],7:["#f9ddda","#f2b9c4","#e597b9","#ce78b3","#ad5fad","#834ba0","#573b88"],tags:["quantitative"]},vye={2:["#f3e79b","#5c53a5"],3:["#f3e79b","#eb7f86","#5c53a5"],4:["#f3e79b","#f8a07e","#ce6693","#5c53a5"],5:["#f3e79b","#fab27f","#eb7f86","#b95e9a","#5c53a5"],6:["#f3e79b","#fabc82","#f59280","#dc6f8e","#ab5b9e","#5c53a5"],7:["#f3e79b","#fac484","#f8a07e","#eb7f86","#ce6693","#a059a0","#5c53a5"],tags:["quantitative"]},bye={2:["#f3cbd3","#6c2167"],3:["#f3cbd3","#ca699d","#6c2167"],4:["#f3cbd3","#dd88ac","#b14d8e","#6c2167"],5:["#f3cbd3","#e498b4","#ca699d","#a24186","#6c2167"],6:["#f3cbd3","#e7a2b9","#d67ba5","#bc5894","#983a81","#6c2167"],7:["#f3cbd3","#eaa9bd","#dd88ac","#ca699d","#b14d8e","#91357d","#6c2167"],tags:["quantitative"]},xye={2:["#fcde9c","#7c1d6f"],3:["#fcde9c","#e34f6f","#7c1d6f"],4:["#fcde9c","#f0746e","#dc3977","#7c1d6f"],5:["#fcde9c","#f58670","#e34f6f","#d72d7c","#7c1d6f"],6:["#fcde9c","#f89872","#ec666d","#df4273","#c5287b","#7c1d6f"],7:["#fcde9c","#faa476","#f0746e","#e34f6f","#dc3977","#b9257a","#7c1d6f"],tags:["quantitative"]},wye={2:["#4b2991","#edd9a3"],3:["#4b2991","#ea4f88","#edd9a3"],4:["#4b2991","#c0369d","#fa7876","#edd9a3"],5:["#4b2991","#a52fa2","#ea4f88","#fa9074","#edd9a3"],6:["#4b2991","#932da3","#d43f96","#f7667c","#f89f77","#edd9a3"],7:["#4b2991","#872ca2","#c0369d","#ea4f88","#fa7876","#f6a97a","#edd9a3"],tags:["aggregation"]},Tye={2:["#ede5cf","#541f3f"],3:["#ede5cf","#c1766f","#541f3f"],4:["#ede5cf","#d39c83","#a65461","#541f3f"],5:["#ede5cf","#daaf91","#c1766f","#95455a","#541f3f"],6:["#ede5cf","#ddba9b","#cd8c7a","#b26166","#8a3c56","#541f3f"],7:["#ede5cf","#e0c2a2","#d39c83","#c1766f","#a65461","#813753","#541f3f"],tags:["quantitative"]},Eye={2:["#929b4f","#db8195"],3:["#a3ad62","#fdfbe4","#df91a3"],4:["#929b4f","#d9dbaf","#f3d1ca","#db8195"],5:["#879043","#c1c68c","#fdfbe4","#ebb4b8","#d8758b"],6:["#7f883b","#b0b874","#e3e4be","#f6ddd1","#e4a0ac","#d66d85"],7:["#798234","#a3ad62","#d0d3a2","#fdfbe4","#f0c6c3","#df91a3","#d46780"],tags:["diverging"]}
5330,Cye={2:["#3d5941","#ca562c"],3:["#3d5941","#f6edbd","#ca562c"],4:["#3d5941","#b5b991","#edbb8a","#ca562c"],5:["#3d5941","#96a07c","#f6edbd","#e6a272","#ca562c"],6:["#3d5941","#839170","#cecea2","#f1cf9e","#e19464","#ca562c"],7:["#3d5941","#778868","#b5b991","#f6edbd","#edbb8a","#de8a5a","#ca562c"],tags:["diverging"]},Sye={2:["#008080","#ca562c"],3:["#008080","#f6edbd","#ca562c"],4:["#008080","#b4c8a8","#edbb8a","#ca562c"],5:["#008080","#92b69e","#f6edbd","#e6a272","#ca562c"],6:["#008080","#7eab98","#ced7b1","#f1cf9e","#e19464","#ca562c"],7:["#008080","#70a494","#b4c8a8","#f6edbd","#edbb8a","#de8a5a","#ca562c"],tags:["diverging"]},Iye={2:["#009392","#cf597e"],3:["#009392","#e9e29c","#cf597e"],4:["#009392","#9ccb86","#eeb479","#cf597e"],5:["#009392","#71be83","#e9e29c","#ed9c72","#cf597e"],6:["#009392","#52b684","#bcd48c","#edc783","#eb8d71","#cf597e"],7:["#009392","#39b185","#9ccb86","#e9e29c","#eeb479","#e88471","#cf597e"],tags:["diverging"]},Bye={2:["#009392","#d0587e"],3:["#009392","#f1eac8","#d0587e"],4:["#009392","#91b8aa","#f1eac8","#dfa0a0","#d0587e"],5:["#009392","#91b8aa","#f1eac8","#dfa0a0","#d0587e"],6:["#009392","#72aaa1","#b1c7b3","#e5b9ad","#d98994","#d0587e"],7:["#009392","#72aaa1","#b1c7b3","#f1eac8","#e5b9ad","#d98994","#d0587e"],tags:["diverging"]},Pye={2:["#009B9E","#C75DAB"],3:["#009B9E","#F1F1F1","#C75DAB"],4:["#009B9E","#A7D3D4","#E4C1D9","#C75DAB"],5:["#009B9E","#7CC5C6","#F1F1F1","#DDA9CD","#C75DAB"],6:["#009B9E","#5DBCBE","#C6DFDF","#E9D4E2","#D99BC6","#C75DAB"],7:["#009B9E","#42B7B9","#A7D3D4","#F1F1F1","#E4C1D9","#D691C1","#C75DAB"],tags:["diverging"]},Mye={2:["#A16928","#2887a1"],3:["#A16928","#edeac2","#2887a1"],4:["#A16928","#d6bd8d","#b5c8b8","#2887a1"],5:["#A16928","#caa873","#edeac2","#98b7b2","#2887a1"],6:["#A16928","#c29b64","#e0cfa2","#cbd5bc","#85adaf","#2887a1"],7:["#A16928","#bd925a","#d6bd8d","#edeac2","#b5c8b8","#79a7ac","#2887a1"],tags:["diverging"]},Rye={2:["#855C75","#D9AF6B","#7C7C7C"],3:["#855C75","#D9AF6B","#AF6458","#7C7C7C"],4:["#855C75","#D9AF6B","#AF6458","#736F4C","#7C7C7C"],5:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#7C7C7C"],6:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#7C7C7C"],7:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#68855C","#7C7C7C"],8:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#68855C","#9C9C5E","#7C7C7C"],9:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#68855C","#9C9C5E","#A06177","#7C7C7C"],10:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#68855C","#9C9C5E","#A06177","#8C785D","#7C7C7C"],11:["#855C75","#D9AF6B","#AF6458","#736F4C","#526A83","#625377","#68855C","#9C9C5E","#A06177","#8C785D","#467378","#7C7C7C"],tags:["qualitative"]},Oye={2:["#7F3C8D","#11A579","#A5AA99"],3:["#7F3C8D","#11A579","#3969AC","#A5AA99"],4:["#7F3C8D","#11A579","#3969AC","#F2B701","#A5AA99"],5:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#A5AA99"],6:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#A5AA99"],7:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#E68310","#A5AA99"],8:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#E68310","#008695","#A5AA99"],9:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#E68310","#008695","#CF1C90","#A5AA99"],10:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#E68310","#008695","#CF1C90","#f97b72","#A5AA99"],11:["#7F3C8D","#11A579","#3969AC","#F2B701","#E73F74","#80BA5A","#E68310","#008695","#CF1C90","#f97b72","#4b4b8f","#A5AA99"],tags:["qualitative"]},Dye={2:["#66C5CC","#F6CF71","#B3B3B3"],3:["#66C5CC","#F6CF71","#F89C74","#B3B3B3"],4:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#B3B3B3"],5:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#B3B3B3"],6:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#B3B3B3"],7:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#FE88B1","#B3B3B3"],8:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#FE88B1","#C9DB74","#B3B3B3"],9:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#FE88B1","#C9DB74","#8BE0A4","#B3B3B3"],10:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#FE88B1","#C9DB74","#8BE0A4","#B497E7","#B3B3B3"],11:["#66C5CC","#F6CF71","#F89C74","#DCB0F2","#87C55F","#9EB9F3","#FE88B1","#C9DB74","#8BE0A4","#B497E7","#D3B484","#B3B3B3"],tags:["qualitative"]},Fye={2:["#5F4690","#1D6996","#666666"],3:["#5F4690","#1D6996","#38A6A5","#666666"],4:["#5F4690","#1D6996","#38A6A5","#0F8554","#666666"],5:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#666666"],6:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#666666"],7:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#E17C05","#666666"],8:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#E17C05","#CC503E","#666666"],9:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#E17C05","#CC503E","#94346E","#666666"],10:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#E17C05","#CC503E","#94346E","#6F4070","#666666"],11:["#5F4690","#1D6996","#38A6A5","#0F8554","#73AF48","#EDAD08","#E17C05","#CC503E","#94346E","#6F4070","#994E95","#666666"],tags:["qualitative"]},Lye={2:["#88CCEE","#CC6677","#888888"],3:["#88CCEE","#CC6677","#DDCC77","#888888"],4
5330:["#88CCEE","#CC6677","#DDCC77","#117733","#888888"],5:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#888888"],6:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#888888"],7:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#44AA99","#888888"],8:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#44AA99","#999933","#888888"],9:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#44AA99","#999933","#882255","#888888"],10:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#44AA99","#999933","#882255","#661100","#888888"],11:["#88CCEE","#CC6677","#DDCC77","#117733","#332288","#AA4499","#44AA99","#999933","#882255","#661100","#6699CC","#888888"],tags:["qualitative","colorblind"]},kye={2:["#E58606","#5D69B1","#A5AA99"],3:["#E58606","#5D69B1","#52BCA3","#A5AA99"],4:["#E58606","#5D69B1","#52BCA3","#99C945","#A5AA99"],5:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#A5AA99"],6:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#A5AA99"],7:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#DAA51B","#A5AA99"],8:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#DAA51B","#2F8AC4","#A5AA99"],9:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#DAA51B","#2F8AC4","#764E9F","#A5AA99"],10:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#DAA51B","#2F8AC4","#764E9F","#ED645A","#A5AA99"],11:["#E58606","#5D69B1","#52BCA3","#99C945","#CC61B0","#24796C","#DAA51B","#2F8AC4","#764E9F","#ED645A","#CC3A8E","#A5AA99"],tags:["qualitative"]},Nye={...Mn.BuGn,tags:["quantitative"]},Uye={...Mn.BuPu,tags:["quantitative"]},zye={...Mn.GnBu,tags:["quantitative"]},Vye={...Mn.OrRd,tags:["quantitative"]},jye={...Mn.PuBu,tags:["quantitative"]},Gye={...Mn.PuBuGn,tags:["quantitative"]},Hye={...Mn.PuRd,tags:["quantitative"]},Wye={...Mn.RdPu,tags:["quantitative"]},$ye={...Mn.YlGn,tags:["quantitative"]},Xye={...Mn.YlGnBu,tags:["quantitative"]},qye={...Mn.YlOrBr,tags:["quantitative"]},Jye={...Mn.YlOrRd,tags:["quantitative"]},Kye={...Mn.Accent,tags:["qualitative"]},Zye={...Mn.Dark2,tags:["qualitative"]},Yye={...Mn.Paired,tags:["qualitative"]},Qye={...Mn.Pastel1,tags:["qualitative"]},eve={...Mn.Pastel2,tags:["qualitative"]},tve={...Mn.Set1,tags:["qualitative"]},rve={...Mn.Set2,tags:["qualitative"]},nve={...Mn.Set3,tags:["qualitative"]},ive={...Mn.Blues,tags:["quantitative"]},sve={...Mn.Greens,tags:["quantitative"]},ove={...Mn.Greys,tags:["quantitative"]},ave={...Mn.Oranges,tags:["quantitative"]},lve={...Mn.Purples,tags:["quantitative"]},cve={...Mn.Reds,tags:["quantitative"]},uve={...Mn.BrBG,tags:["diverging"]},fve={...Mn.PiYG,tags:["diverging"]},hve={...Mn.PRGn,tags:["diverging"]},dve={...Mn.PuOr,tags:["diverging"]},pve={...Mn.RdBu,tags:["diverging"]},Ave={...Mn.RdGy,tags:["diverging"]},gve={...Mn.RdYlBu,tags:["diverging"]},mve={...Mn.RdYlGn,tags:["diverging"]},_ve={...Mn.Spectral,tags:["diverging"]};const yve=Object.freeze(Object.defineProperty({__proto__:null,Antique:Rye,ArmyRose:Eye,BluGrn:fye,BluYl:Aye,Bold:Oye,BrwnYl:Tye,Burg:iye,BurgYl:sye,DarkMint:hye,Earth:Mye,Emrld:dye,Fall:Cye,Geyser:Sye,Magenta:bye,Mint:uye,OrYel:aye,Pastel:Dye,Peach:lye,PinkYl:cye,Prism:Fye,Purp:_ye,PurpOr:yye,RedOr:oye,Safe:Lye,Sunset:vye,SunsetDark:xye,Teal:gye,TealGrn:mye,TealRose:Bye,Temps:Iye,Tropic:Pye,Vivid:kye,ag_GrnYl:pye,ag_Sunset:wye,cb_Accent:Kye,cb_Blues:ive,cb_BrBG:uve,cb_BuGn:Nye,cb_BuPu:Uye,cb_Dark2:Zye,cb_GnBu:zye,cb_Greens:sve,cb_Greys:ove,cb_OrRd:Vye,cb_Oranges:ave,cb_PRGn:hve,cb_Paired:Yye,cb_Pastel1:Qye,cb_Pastel2:eve,cb_PiYG:fve,cb_PuBu:jye,cb_PuBuGn:Gye,cb_PuOr:dve,cb_PuRd:Hye,cb_Purples:lve,cb_RdBu:pve,cb_RdGy:Ave,cb_RdPu:Wye,cb_RdYlBu:gve,cb_RdYlGn:mve,cb_Reds:cve,cb_Set1:tve,cb_Set2:rve,cb_Set3:nve,cb_Spectral:_ve,cb_YlGn:$ye,cb_YlGnBu:Xye,cb_YlOrBr:qye,cb_YlOrRd:Jye},Symbol.toStringTag,{value:"Module"})),BT="PurpOr",PT=[204,204,204],vve=[119,119,119];function MT(r,e){const t=yve[r];let n=e;lh(t,`Palette "${r}" not found. Expected a CARTOColors string`);const i=Object.keys(t).filter(f=>f!=="tags").map(Number),s=Math.max(...i),o=Math.min(...i);!Number.isInteger(e)||e>s?n=s:e<o&&(n=o);let l=t[n];return t.tags&&t.tags.includes("qualitative")&&(l=l.slice(0,-1)),l.map(f=>bve(f))}function bve(r){let e=/^#?([a-f\d]{1})([a-f\d]{1})([a-f\d]{1})$/i.exec(r);return e?[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16),255]:(e=/^#?([a-f\d]{1})([a-f\d]{1})([a-f\d]{1})([a-f\d]{1})$/i.exec(r),e?[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16),parseInt(e[4]+e[4],16)]:(e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(r),e?[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16),255]:(e=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(r),lh(e,`Hexadecimal color "${r}" was not parsed correctly`),[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16),parseInt(e[4],16)])))}const xve=Object.freeze(["function","string"]);function RT(r,e,t){return lh(typeof e=="object",'Expected "data" to be an object'),lh(xve.includes(typeof r),'Expected "attr" to be a function or string'),typeof r=="function"?r(e,t):e?.properties?.[r]}function wve({attr:r,domain:e,colors:t=BT,nullColor:n=PT}){lh(Array.isArray(e),'Expected "domain" to be an array of numbers');const i=typeof t=="string"?MT(t,e.length+1):t,s=NN().domain(e).range(i);return(o,l)=>{const f=RT(r,o,l);return typeof f=="number"&&Number.isFinite(f)?s(f):n}}function Tve({attr:r,domain:e,colors:t=BT,nullColor:n=PT,othersColor:i=vve}){lh(Array.isArray(e),'Expected "domain" to be an array of numbers or strings');const s={},o=typeof t=="string"?MT(t,e.length):t;for(const[l,f]of e.entries())s[f]=o[l];return(l,f)=>{const A=RT(r,l,f);return typeof A=="number"&&Number.isFinite(A)||typeof A=="string"?s[A]||i:n}}function Eve({attr:r,domain:e,colors:t=BT,nullColor:n=PT}){lh(Array.isArray(e),'Expected "domain" to be an array of numbers');const i=typeof t=="string"?MT(t,e.length):t,s=UN().domain(e).range(i);return(o,l)=>{const f=RT(r,o,l);return typeof f=="number"&&Number.isFinite(f)?s(f):n}}const Cve={ClusterTileLayer:vT,H3TileLayer:bT,HeatmapTileLayer:wT,PointLabelLayer:vy,QuadbinTileLayer:yy,RasterTileLayer:CT,VectorTileLayer:IT};function z2(r,e=""){if(!r)throw new Error(`JSON conversion error ${e}`)}function Sve(r,e){const t=Bve(e);let n=r;for(const i of t)n=Ive(n)?n[i]:void 0;return n}function Ive(r){return r!==null&&typeof r=="object"}const VR={};function Bve(r){if(typeof r=="string"){let e=VR[r];return e||(e=r.split("."),VR[r]=e),e}return Array.isArray(r)?r:[r]}var lm={exports:{}},jR;function Pve(){return jR||(jR=1,(function(r,e){(function(t){var n="Compound",i="Identifier",s="MemberExpression",o="Literal",l="ThisExpression",f="CallExpression",A="UnaryExpression",v="BinaryExpression",T="LogicalExpression",I="ConditionalExpression",F="ArrayExpression",N=46,U=44,$=39,V=34,G=40,X=41,ue=91,K=93,se=63,Ee=59,Ue=58,de=function(It,st){var pr=new Error(It+" at character "+st);throw pr.index=st,pr.description=It,pr},me=!0,pe={"-":me,"!":me,"~":me,"+":me},W={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},te=function(It){var st=0,pr;for(var Qt in It)(pr=Qt.length)>st&&It.hasOwnProperty(Qt)&&(st=pr);return st},Ce=te(pe),Qe=te(W),we={true:!0,false:!1,null:null}
5330,De="this",ze=function(It){return W[It]||0},Ze=function(It,st,pr){var Qt=It==="||"||It==="&&"?T:v;return{type:Qt,operator:It,left:st,right:pr}},tt=function(It){return It>=48&&It<=57},rt=function(It){return It===36||It===95||It>=65&&It<=90||It>=97&&It<=122||It>=128&&!W[String.fromCharCode(It)]},ct=function(It){return It===36||It===95||It>=65&&It<=90||It>=97&&It<=122||It>=48&&It<=57||It>=128&&!W[String.fromCharCode(It)]},bt=function(It){for(var st=0,pr=It.charAt,Qt=It.charCodeAt,Jt=function(jt){return pr.call(It,jt)},Nt=function(jt){return Qt.call(It,jt)},Ar=It.length,cn=function(){for(var jt=Nt(st);jt===32||jt===9||jt===10||jt===13;)jt=Nt(++st)},Mr=function(){var jt=Gn(),mr,Rr;if(cn(),Nt(st)===se){if(st++,mr=Mr(),mr||de("Expected expression",st),cn(),Nt(st)===Ue)return st++,Rr=Mr(),Rr||de("Expected expression",st),{type:I,test:jt,consequent:mr,alternate:Rr};de("Expected :",st)}else return jt},_r=function(){cn();for(var jt=It.substr(st,Qe),mr=jt.length;mr>0;){if(W.hasOwnProperty(jt)&&(!rt(Nt(st))||st+jt.length<It.length&&!ct(Nt(st+jt.length))))return st+=mr,jt;jt=jt.substr(0,--mr)}return!1},Gn=function(){var jt,mr,Rr,nn,gi,Pe,kt,Wt,cr;if(Pe=yr(),mr=_r(),!mr)return Pe;for(gi={value:mr,prec:ze(mr)},kt=yr(),kt||de("Expected expression after "+mr,st),nn=[Pe,gi,kt];(mr=_r())&&(Rr=ze(mr),Rr!==0);){for(gi={value:mr,prec:Rr},cr=mr;nn.length>2&&Rr<=nn[nn.length-2].prec;)kt=nn.pop(),mr=nn.pop().value,Pe=nn.pop(),jt=Ze(mr,Pe,kt),nn.push(jt);jt=yr(),jt||de("Expected expression after "+cr,st),nn.push(gi,jt)}for(Wt=nn.length-1,jt=nn[Wt];Wt>1;)jt=Ze(nn[Wt-1].value,nn[Wt-2],jt),Wt-=2;return jt},yr=function(){var jt,mr,Rr;if(cn(),jt=Nt(st),tt(jt)||jt===N)return vr();if(jt===$||jt===V)return un();if(jt===ue)return ri();for(mr=It.substr(st,Ce),Rr=mr.length;Rr>0;){if(pe.hasOwnProperty(mr)&&(!rt(Nt(st))||st+mr.length<It.length&&!ct(Nt(st+mr.length))))return st+=Rr,{type:A,operator:mr,argument:yr(),prefix:!0};mr=mr.substr(0,--Rr)}return rt(jt)||jt===G?Yn():!1},vr=function(){for(var jt="",mr,Rr;tt(Nt(st));)jt+=Jt(st++);if(Nt(st)===N)for(jt+=Jt(st++);tt(Nt(st));)jt+=Jt(st++);if(mr=Jt(st),mr==="e"||mr==="E"){for(jt+=Jt(st++),mr=Jt(st),(mr==="+"||mr==="-")&&(jt+=Jt(st++));tt(Nt(st));)jt+=Jt(st++);tt(Nt(st-1))||de("Expected exponent ("+jt+Jt(st)+")",st)}return Rr=Nt(st),rt(Rr)?de("Variable names cannot start with a number ("+jt+Jt(st)+")",st):Rr===N&&de("Unexpected period",st),{type:o,value:parseFloat(jt),raw:jt}},un=function(){for(var jt="",mr=Jt(st++),Rr=!1,nn;st<Ar;)if(nn=Jt(st++),nn===mr){Rr=!0;break}else if(nn==="\\")switch(nn=Jt(st++),nn){case"n":jt+=` 5331`;break;case"r":jt+="\r";break;case"t":jt+=" ";break;case"b":jt+="\b";break;case"f":jt+="\f";break;case"v":jt+="\v";break;default:jt+=nn}else jt+=nn;return Rr||de('Unclosed quote after "'+jt+'"',st),{type:o,value:jt,raw:mr+jt+mr}},Dr=function(){var jt=Nt(st),mr=st,Rr;for(rt(jt)?st++:de("Unexpected "+Jt(st),st);st<Ar&&(jt=Nt(st),ct(jt));)st++;return Rr=It.slice(mr,st),we.hasOwnProperty(Rr)?{type:o,value:we[Rr],raw:Rr}:Rr===De?{type:l}:{type:i,name:Rr}},li=function(jt){for(var mr,Rr=[],nn,gi=!1,Pe=0;st<Ar;)if(cn(),mr=Nt(st),mr===jt){gi=!0,st++,jt===X&&Pe&&Pe>=Rr.length&&de("Unexpected token "+String.fromCharCode(jt),st);break}else if(mr===U){if(st++,Pe++,Pe!==Rr.length){if(jt===X)de("Unexpected token ,",st);else if(jt===K)for(var kt=Rr.length;kt<Pe;kt++)Rr.push(null)}}else nn=Mr(),(!nn||nn.type===n)&&de("Expected comma",st),Rr.push(nn);return gi||de("Expected "+String.fromCharCode(jt),st),Rr},Yn=function(){var jt,mr;for(jt=Nt(st),jt===G?mr=mn():mr=Dr(),cn(),jt=Nt(st);jt===N||jt===ue||jt===G;)st++,jt===N?(cn(),mr={type:s,computed:!1,object:mr,property:Dr()}):jt===ue?(mr={type:s,computed:!0,object:mr,property:Mr()},cn(),jt=Nt(st),jt!==K&&de("Unclosed [",st),st++):jt===G&&(mr={type:f,arguments:li(X),callee:mr}),cn(),jt=Nt(st);return mr},mn=function(){st++;var jt=Mr();if(cn(),Nt(st)===X)return st++,jt;de("Unclosed (",st)},ri=function(){return st++,{type:F,elements:li(K)}},Hn=[],Sn,Qn;st<Ar;)Sn=Nt(st),Sn===Ee||Sn===U?st++:(Qn=Mr())?Hn.push(Qn):st<Ar&&de('Unexpected "'+Jt(st)+'"',st);return Hn.length===1?Hn[0]:{type:n,body:Hn}};bt.version="0.3.5",bt.toString=function(){return"JavaScript Expression Parser (JSEP) v"+bt.version},bt.addUnaryOp=function(It){return Ce=Math.max(It.length,Ce),pe[It]=me,this},bt.addBinaryOp=function(It,st){return Qe=Math.max(It.length,Qe),W[It]=st,this},bt.addLiteral=function(It,st){return we[It]=st,this},bt.removeUnaryOp=function(It){return delete pe[It],It.length===Ce&&(Ce=te(pe)),this},bt.removeAllUnaryOps=function(){return pe={},Ce=0,this},bt.removeBinaryOp=function(It){return delete W[It],It.length===Qe&&(Qe=te(W)),this},bt.removeAllBinaryOps=function(){return W={},Qe=0,this},bt.removeLiteral=function(It){return delete we[It],this},bt.removeAllLiterals=function(){return we={},this},r.exports?e=r.exports=bt:e.parse=bt})()})(lm,lm.exports)),lm.exports}var Mve=Pve();const Rve=uh(Mve),GR={"||":(r,e)=>r||e,"&&":(r,e)=>r&&e,"|":(r,e)=>r|e,"^":(r,e)=>r^e,"&":(r,e)=>r&e,"==":(r,e)=>r==e,"!=":(r,e)=>r!=e,"===":(r,e)=>r===e,"!==":(r,e)=>r!==e,"<":(r,e)=>r<e,">":(r,e)=>r>e,"<=":(r,e)=>r<=e,">=":(r,e)=>r>=e,"<<":(r,e)=>r<<e,">>":(r,e)=>r>>e,">>>":(r,e)=>r>>>e,"+":(r,e)=>r+e,"-":(r,e)=>r-e,"*":(r,e)=>r*e,"/":(r,e)=>r/e,"%":(r,e)=>r%e},Ove={"-":r=>-r,"+":r=>+r,"~":r=>~r,"!":r=>!r};function HR(r,e){return r.map(function(t){return Js(t,e)})}function WR(r,e){const t=Js(r.object,e);let n;if(r.computed?n=Js(r.property,e):n=r.property.name,/^__proto__|prototype|constructor$/.test(n))throw Error(`Access to member "${n}" disallowed.`);return[t,t[n]]}function Js(r,e){const t=r;switch(t.type){case"ArrayExpression":return HR(t.elements,e);case"BinaryExpression":return GR[t.operator](Js(t.left,e),Js(t.right,e));case"CallExpression":let n,i,s;return t.callee.type==="MemberExpression"?(s=WR(t.callee,e),n=s[0],i=s[1]):i=Js(t.callee,e),typeof i!="function"?void 0:i.apply(n,HR(t.arguments,e));case"ConditionalExpression":return Js(t.test,e)?Js(t.consequent,e):Js(t.alternate,e);case"Identifier":return e[t.name];case"Literal":return t.value;case"LogicalExpression":return t.operator==="||"?Js(t.left,e)||Js(t.right,e):t.operator==="&&"?Js(t.left,e)&&Js(t.right,e):GR[t.operator](Js(t.left,e),Js(t.right,e));case"MemberExpression":return WR(t,e)[1];case"ThisExpression":return e;case"UnaryExpression":return Ove[t.operator](Js(t.argument,e));default:return}}const f1={"-":r=>r};function Gk(r,e){if(r in f1)return f1[r];let t;const n=Rve(r);return n.type==="Identifier"?t=i=>Sve(i,r):(V2(n,i=>
5331{if(i.type==="CallExpression")throw new Error("Function calls not allowed in JSON expressions")}),t=i=>Js(n,i)),f1[r]=t,t}function V2(r,e){if(Array.isArray(r))r.forEach(t=>V2(t,e));else if(r&&typeof r=="object"){r.type&&e(r);for(const t in r)V2(r[t],e)}}const E_="@@=",$R="@@#",Dve="@@type",Hk="@@function",XR=r=>r&&typeof r=="object";class j2{constructor(...e){this.typeKey=Dve,this.functionKey=Hk,this.log=console,this.classes={},this.reactComponents={},this.enumerations={},this.constants={},this.functions={},this.React=null,this.convertFunction=Gk,this.preProcessClassProps=(t,n)=>n,this.postProcessConvertedJson=t=>t;for(const t of e)this.merge(t)}merge(e){for(const t in e)switch(t){case"layers":case"views":Object.assign(this.classes,e[t]);break;default:if(t in this){const n=e[t];this[t]=XR(this[t])?Object.assign(this[t],n):n}}}validate(e){return z2(!this.typeKey||typeof this.typeKey=="string"),z2(XR(this.classes)),!0}}function Fve(r){return typeof r=="string"&&r.startsWith(E_)}function Lve(r){return r.replace(E_,"")}function Wk(r,e){const t={};for(const n in r){let i=r[n];Fve(i)&&(i=Lve(i),i=Gk(i)),t[n]=i}return t}function kve(r,e,t){const n=t.classes[r],i=t.reactComponents[r];if(!n&&!i){const{log:s}=t;if(s){const o=JSON.stringify(e,null,0).slice(0,40);s.warn(`JSON converter: No registered class of type ${r}(${o}...) `)}return null}return n?Nve(n,e,t):Uve(i,e,t)}function Nve(r,e,t){return t.preProcessClassProps&&(e=t.preProcessClassProps(r,e,t)),e=Wk(e),new r(e)}function Uve(r,e,t){const{React:n}=t,{children:i=[]}=e;return delete e.children,t.preProcessClassProps&&(e=t.preProcessClassProps(r,e,t)),e=Wk(e),n.createElement(r,e,i)}function zve(r,e,t){const n=t.functions[r];if(!n){const{log:i}=t;if(i){const s=JSON.stringify(e,null,0).slice(0,40);i.warn(`JSON converter: No registered function ${r}(${s}...) `)}return null}return n(e)}function Vve(r){return typeof r=="string"?JSON.parse(r):r}const OT=r=>r&&typeof r=="object";class jve{constructor(e){this.log=console,this.onJSONChange=()=>{},this.json=null,this.convertedJson=null,this.setProps(e)}finalize(){}setProps(e){"configuration"in e&&(this.configuration=e.configuration instanceof j2?e.configuration:new j2(e.configuration)),"onJSONChange"in e&&(this.onJSONChange=e.onJSONChange)}mergeConfiguration(e){this.configuration.merge(e)}convert(e){if(!e||e===this.json)return this.convertedJson;this.json=e;const t=Vve(e);let n=Gve(t,this.configuration);return n=this.configuration.postProcessConvertedJson(n),this.convertedJson=n,n}convertJson(e){return this.convert(e)}}function Gve(r,e){return e=new j2(e),DT(r,"",e)}function DT(r,e,t){return Array.isArray(r)?r.map((n,i)=>DT(n,String(i),t)):Hve(r,t)?Wve(r,t):OT(r)?Hk in r?$ve(r,t):FT(r,t):typeof r=="string"?Xve(r,e,t):r}function Hve(r,e){const{typeKey:t}=e;return OT(r)&&!!r[t]}function Wve(r,e){const{typeKey:t}=e,n=r[t];let i={...r};return delete i[t],i=FT(i,e),kve(n,i,e)}function $ve(r,e){const{functionKey:t}=e,n=r[t];let i={...r};return delete i[t],i=FT(i,e),zve(n,i,e)}function FT(r,e){z2(OT(r));const t={};for(const n in r){const i=r[n];t[n]=DT(i,n,e)}return t}function Xve(r,e,t){if(r.startsWith(E_)&&t.convertFunction)return r=r.replace(E_,""),t.convertFunction(r,t);if(r.startsWith($R)){if(r=r.replace($R,""),t.constants[r])return t.constants[r];const[n,i]=r.split(".");return t.enumerations[n][i]}return r}const qve={classes:{...jse,...zme,...p0e,...Iue,...Cve},functions:{colorBins:wve,colorCategories:Tve,colorContinuous:Eve}},$k=new jve({configuration:qve}),Jve={[fy.layerName]:["getFillColor"],[ny.layerName]:["getFillColor"],[Ac.layerName]:["getFillColor"],[Ip.layerName]:["getFillColor"],[Z_.layerName]:["getFillColor"],[K_.layerName]:["getFillColor"],[ey.layerName]:["getColor"],[yg.layerName]:["getTargetColor","getSourceColor"],[pc.layerName]:["getFillColor"],[ru.layerName]:["getFillColor"],[Sp.layerName]:["getColor"],[X_.layerName]:["getColor"],[sf.layerName]:["getColor"],[vg.layerName]:["getColor"],[af.layerName]:["getFillColor"],[bg.layerName]:["getFillColor","getColor","getLineColor"],[of.layerName]:["getFillColor"],[_h.layerName]:["getColor"],[Bg.layerName]:["getColor"],[ah.layerName]:["getColor"]},Kve=({object:r,objectInfo:e,originalFillFunction:t})=>{const n=typeof t=="function"?t(r,e):t;if(Array.isArray(n))return[n[0]||0,n[1]||0,n[2]||0,n[3]||255];if(typeof n=="string"&&n.startsWith("@@=")){const i=$k.convert({originalColor:n}).originalColor(r);return[i[0]||0,i[1]||0,i[2]||0,i[3]||255]}return null},qR=({isSelected:r,object:e,objectInfo:t,opacity:n,originalFillFunction:i})=>{const s=Kve({object:e,objectInfo:t,originalFillFunction:i});if(!s)return null;let o=0;return r?o=Math.max(typeof s[3]=="number"?s[3]:n,n):o=Math.min(typeof s[3]=="number"?s[3]:n,n),[s[0]||0,s[1]||0,s[2]||0,o]},Zve=({isSelected:r,object:e,objectInfo:t,originalFillFunction:n,selectedColor:i,selectedOpacity:s=255,unselectedColor:o,unselectedOpacity:l=Math.floor(255*.4)})=>r?qR({opacity:s,isSelected:!0,object:e,objectInfo:t,originalFillFunction:n})||i:qR({opacity:l,isSelected:!1,object:e,objectInfo:t,originalFillFunction:n})||o,ug={selection:{indices:{},objects:{}}
5331},JR=(r,e)=>{const t=e.match(/{(.*?)}/g);return t&&t.forEach(n=>{const i=n.substring(1,n.length-1);Object.hasOwn(r.object,i)?e=e.replace(n,r.object[i]):Object.hasOwn(r.object,"properties")&&Object.hasOwn(r.object.properties,i)&&(e=e.replace(n,r.object.properties[i]))}),e};function Yve(r,e){return e.id?r.getElementState(e.id,"selection")??ug:ug}function Qve(r,e){if(!e.id)return ug;const t=r.getStringValue(e);return(t?d1.parse(t):null)??ug}function ebe(r,e,t,n){r.id&&e.setStringValue(r,JSON.stringify(t.value),{fromUi:t.fromUi},n)}const KR=r=>{const e=new Map;let t=!1;if(!r)return{layerData:e,hasUnknownLayerId:t};for(const n of r)if(n&&!Array.isArray(n)){if(t4(n.id)){t=!0;continue}const i=`${n.id}`;e.set(i,Array.isArray(n.data)?n.data:void 0)}return{layerData:e,hasUnknownLayerId:t}},tbe=(r,e,t)=>{const n=[],i=[];let s=!1;return r.forEach((o,l)=>{if(o<t.length){const f=t[o];f!==e[l]&&(s=!0),n.push(o),i.push(f??e[l]??{})}else s=!0}),{validIndices:n,validObjects:i,changed:s}},rbe=(r,e)=>{const{layerData:t,hasUnknownLayerId:n}=e,i={},s={};let o=!1;for(const[l,f]of Object.entries(r.indices)){const A=t.get(l);if(A===void 0){if(!t.has(l)){if(n&&t.size===0){i[l]=f,s[l]=r.objects[l]||[];continue}o=!0;continue}i[l]=f,s[l]=r.objects[l]||[];continue}const v=r.objects[l]||[],T=tbe(f,v,A);T.changed&&(o=!0),T.validIndices.length>0&&(i[l]=T.validIndices,s[l]=T.validObjects)}return{indices:i,objects:s,changed:o}},nbe=r=>{const{height:e,width:t,expanded:n}=e4(r4),{element:i,fragmentId:s,isLightTheme:o,theme:l,widgetMgr:f}=r,{selectionMode:A,tooltip:v,useContainerWidth:T}=i,I=n??!1,[F,N]=kN({element:i,getDefaultState:Yve,getStateFromWidgetMgr:Qve,updateWidgetMgrState:ebe,widgetMgr:f,fragmentId:s}),[U,$]=Bt.useState(null),{height:V,width:G}=Ine({element:i,isFullScreen:I,shouldUseContainerWidth:T,container:{height:e,width:t},heightFallback:U?.initialViewState?.height||l.sizes.defaultMapHeight}),[X,ue]=Bt.useState(null),K=A[0],se=K!==void 0,Ee=se&&Object.keys(F.selection.indices).length>0,Ue=Bt.useMemo(()=>Object.freeze(d1.parse(i.json)),[I,o,i.json]);SN(()=>{if(!se||!Ue.layers)return;const W=KR(Ue.layers),te=rbe(F.selection,W);te.changed&&N({fromUi:!1,value:{selection:{indices:te.indices,objects:te.objects}}})},[Ue,se]);const de=Bt.useMemo(()=>{const W={...Ue};if(W.mapStyle||(W.mapStyle=o?"https://basemaps.cartocdn.com/gl/positron-gl-style/style.json":"https://basemaps.cartocdn.com/gl/dark-matter-gl-style/style.json"),(W?.mapProvider=="carto"||W?.mapStyle&&W.mapStyle?.indexOf("cartocdn")>=0)&&!W.cartoKey&&(W.cartoKey="x7g2plm9yq8vfrc"),W.layers){const{layerData:Ce}=KR(W.layers),Qe=Object.entries(F.selection.indices).some(([De,ze])=>{const Ze=Ce.get(De);return Ze===void 0?Ce.has(De)&&ze?.length>0:ze?.some(tt=>tt<Ze.length)}),we=W.layers.some(De=>Object.hasOwn(De,"pickable"));W.layers=W.layers.map(De=>{if(!De||Array.isArray(De)||!se)return De;we||(De.pickable=!0);const ze=t4(De.id)?void 0:`${De.id}`,Ze=ze!==void 0?F?.selection?.indices?.[ze]||[]:[],tt=Jve[De["@@type"]];if(!tt)return De;const rt={...De};return tt.forEach(ct=>{rt.updateTriggers={[ct]:[...rt.updateTriggers?.[ct]||[],Ze,Qe]};const bt=!Qe,It=De[ct];if(bt||!It)return rt;const st=255,pr=Math.floor(255*.4),Qt=rC(l.colors.primary),Jt=[Qt[0],Qt[1],Qt[2],st],Nt=rC(l.colors.gray20),Ar=[Nt[0],Nt[1],Nt[2],pr],cn=(Mr,_r)=>Zve({isSelected:Ze.includes(_r.index),object:Mr,objectInfo:_r,originalFillFunction:It,selectedColor:Jt,unselectedColor:Ar,selectedOpacity:st,unselectedOpacity:pr});rt[ct]=cn}),rt})}return delete W?.views,$k.convert(W)},[F.selection.indices,o,se,Ue,l.colors.gray20,l.colors.primary]);Bt.useEffect(()=>{if(!IN(de.initialViewState,X)){const W=Object.keys(de.initialViewState).reduce((te,Ce)=>de.initialViewState[Ce]===X?.[Ce]?te:{...te,[Ce]:de.initialViewState[Ce]},{});$(te=>({...te,...W})),ue(de.initialViewState)}},[de.initialViewState,X,U]);const me=Bt.useCallback(W=>{if(!W?.object||!v)return null;const te=d1.parse(v);return te.html?te.html=JR(W,te.html):te.text=JR(W,te.text),te},[v]),pe=Bt.useCallback(({viewState:W})=>{$(W)},[$]);return{createTooltip:me,data:F,deck:de,hasActiveSelection:Ee,height:V,isSelectionModeActivated:se,onViewStateChange:pe,selectionMode:K,setSelection:N,viewState:U,width:G}};Tp([zx,i_]);const h1=ug.selection,ibe=[],sbe=r=>{const{disabled:e,disableFullscreenMode:t,element:n,fragmentId:i,heightConfig:s,widgetMgr:o}=r,{mapboxToken:l}=Bt.useContext(BN),f=PN(),{expanded:A,expand:v,collapse:T}=e4(r4),I=!!s?.useStretch,{createTooltip:F,data:N,deck:U,hasActiveSelection:$,isSelectionModeActivated:V,onViewStateChange:G,selectionMode:X,setSelection:ue,viewState:K}=nbe({element:n,fragmentId:i,isLightTheme:QR(f),theme:f,widgetMgr:o}),se=n.mapboxToken||l,Ee=U.mapProvider=="mapbox"||U?.mapStyle&&U.mapStyle?.indexOf("mapbox")>=0,[Ue,de]=Bt.useState(!1);Bt.useEffect(()=>{de(!0)},[]);const me=Bt.useCallback(W=>{if(X===void 0)return;const{index:te,object:Ce}=W,Qe=`${W.layer?.id||null}`,we=N,De=te===-1,Ze=(()=>
5331{if(De)return h1;switch(X){case iC.SelectionMode.SINGLE_OBJECT:return we.selection.indices[Qe]?.[0]===te?h1:{indices:{[`${Qe}`]:[te]},objects:{[`${Qe}`]:[Ce]}};case iC.SelectionMode.MULTI_OBJECT:{const tt=new Map((we?.selection?.indices?.[Qe]||[]).map((ct,bt)=>[ct,we.selection?.objects?.[Qe]?.[bt]]));if(tt.has(te)?tt.delete(te):tt.set(te,Ce),tt.size===0){const{[Qe]:rt,...ct}=we.selection.indices,{[Qe]:bt,...It}=we.selection.objects;return{indices:ct,objects:It}}return{indices:{...we.selection.indices,[`${Qe}`]:Array.from(tt.keys())},objects:{...we.selection.objects,[`${Qe}`]:Array.from(tt.values())}}}default:throw MN(X),new Error("Invalid selection mode")}})();JSON.stringify(Ze)!==JSON.stringify(we.selection)&&ue({fromUi:!0,value:{selection:Ze}})},[X,N,ue]),pe=Bt.useCallback(()=>{ue({value:{selection:h1},fromUi:!0})},[ue]);return nC(kI,{className:"stDeckGlJsonChart","data-testid":"stDeckGlJsonChart",isStretchHeight:I,children:[Ee?jf(Cne,{}):null,jf(LN,{isFullScreen:A,disableFullscreenMode:t,onExpand:v,onCollapse:T,target:kI,locked:$&&!e?!0:void 0,children:$&&!e&&jf(FN,{label:"Clear selection",onClick:pe,icon:ON})}),K&&nC(FJ,{viewState:K,onViewStateChange:G,layers:Ue?U.layers:ibe,getTooltip:F,ContextProvider:mh.Provider,controller:!0,onClick:V&&!e?me:void 0,children:[jf(tu,{mapStyle:U.mapStyle&&(typeof U.mapStyle=="string"?U.mapStyle:U.mapStyle[0]),mapboxApiAccessToken:se}),jf(Sne,{children:jf(xne,{"data-testid":"stDeckGlJsonChartZoomButton",showCompass:!1})})]})]})},obe=DN(sbe),Kbe=Bt.memo(obe);export{Kbe as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.