@maptalks/vt 0.88.0 → 0.89.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * @maptalks/vt v0.88.0
2
+ * @maptalks/vt v0.89.0
3
3
  * LICENSE : undefined
4
4
  * (c) 2016-2023 maptalks.org
5
5
  */
@@ -22,7 +22,7 @@
22
22
  })), e.default = t, Object.freeze(e);
23
23
  }
24
24
  var r = i(e), s = i(n);
25
- const o = 'function(t){let n;const e={width:100,height:10};function r(){if(!n){const{width:t,height:r}=e;OffscreenCanvas?n=new OffscreenCanvas(t,r):(n=document.createElement("canvas"),n.width=t,n.height=r)}return n}class i{constructor(t,n={}){if(!Array.isArray(t))return void console.error("colors is not array");if(t.length<2)return void console.error("colors.length should >1");this.colors=t;let r=1/0,i=-1/0;for(let n=0,e=t.length;n<e;n++){const e=t[n][0];r=Math.min(e,r),i=Math.max(e,i)}this.min=r,this.max=i,this.valueOffset=this.max-this.min,this.options=Object.assign({},e,n),this.t()}getImageData(){return this.imgData}t(){const t=r(),{width:n,height:e}=this.options;t.width=n,t.height=e;const i=t.getContext("2d");i.clearRect(0,0,t.width,t.height);const s=i.createLinearGradient(0,0,t.width,0),{colors:o,valueOffset:a}=this;for(let t=0,n=o.length;t<n;t++){const[n,e]=o[t],r=(n-this.min)/a;s.addColorStop(r,e)}i.fillStyle=s,i.fillRect(0,0,t.width,t.height),this.imgData=i.getImageData(0,0,t.width,t.height)}getColor(t){t=Math.max(this.min,t);const n=((t=Math.min(t,this.max))-this.min)/this.valueOffset;let e=Math.round(n*this.imgData.width);e=Math.min(e,this.imgData.width-1);const r=4*e;return[this.imgData.data[r],this.imgData.data[r+1],this.imgData.data[r+2],this.imgData.data[r+3]]}}var s;function o(t,n){for(let e=0;e<t.stops.length;e++)if(n===t.stops[e][0])return t.stops[e][1];return t.default}function a(t,n){for(var e=0;e<t.stops.length&&!(n<t.stops[e][0]);e++);return t.stops[Math.max(e-1,0)][1]}function u(t,n){for(var e=void 0!==t.base?t.base:1,r=0;!(r>=t.stops.length||n<=t.stops[r][0]);)r++;return 0===r?t.stops[r][1]:r===t.stops.length?t.stops[r-1][1]:function t(n,e,r,i,s,o){return"function"==typeof s?function(){var a=s.apply(void 0,arguments),u=o.apply(void 0,arguments);return t(n,e,r,i,a,u)}:s.length?function(t,n,e,r,i,s){var o=[];for(let a=0;a<i.length;a++)o[a]=f(t,n,e,r,i[a],s[a]);return o}(n,e,r,i,s,o):f(n,e,r,i,s,o)}(n,e,t.stops[r-1][0],t.stops[r][0],t.stops[r-1][1],t.stops[r][1])}"function"==typeof Map&&(s=new Map);const h={width:100,height:1};function l(t,n){const e=t.stops;if(e&&e.length>1){let t;if(s){const n=JSON.stringify(e);if(!s.has(n)){const t=new i(e,h);s.set(n,t)}t=s.get(n)}else t=new i(e,h);const[r,o,a,u]=t.getColor(n);return[r/255,o/255,a/255,u/255]}return e&&1===e.length?e[0][1]:null}function c(t,n){return function(t,n,e){return void 0!==t?t:void 0!==n?n:void 0!==e?e:null}(n,t.default)}function f(t,n,e,r,i,s){var o,a=r-e,u=t-e;return i*(1-(o=1===n?u/a:(Math.pow(n,u)-1)/(Math.pow(n,a)-1)))+s*o}function d(t){return t&&"object"==typeof t&&(t.stops||t.property&&"identity"===t.type)}function p(t){return g(t,"exponential")}function y(t){return g(t,"interval")}function m(t,n){if(!t)return null;var e=!1;if(Array.isArray(t)){var r,i=[];for(let s=0;s<t.length;s++)(r=m(t[s],n))?(i.push(r),e=!0):i.push(t[s]);return e?i:t}var s,o={__fn_types_loaded:!0},a=[];for(s in t)t.hasOwnProperty(s)&&a.push(s);const u=function(t){Object.defineProperty(o,t,{get:function(){return this["__fn_"+t]||(this["__fn_"+t]=p(this["_"+t])),this["__fn_"+t].apply(this,n())},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})};for(let n=0,r=a.length;n<r;n++)d(t[s=a[n]])?(e=!0,o["_"+s]=t[s],u(s)):o[s]=t[s];return e?o:t}function g(t,n){if(!d(t))return function(){return t};let e=!0,r=!0;const i=(t=JSON.parse(JSON.stringify(t))).stops;if(i)for(let t=0;t<i.length;t++)if(d(i[t][1])){const s=g(i[t][1],n);e=e&&s.isZoomConstant,r=r&&s.isFeatureConstant,i[t]=[i[t][0],s]}const s=function t(n,e){var r,i,s;if(d(n)){var h,f=n.stops&&"object"==typeof n.stops[0][0],p=f||void 0!==n.property,y=f||!p,m=n.type||e||"exponential";if("exponential"===m)h=u;else if("interval"===m)h=a;else if("categorical"===m)h=o;else if("identity"===m)h=c;else{if("color-interpolate"!==m)throw new Error(\'Unknown function type "\'+m+\'"\');h=l}if(f){var g={},v=[];for(let t=0;t<n.stops.length;t++){var b=n.stops[t];void 0===g[b[0].zoom]&&(g[b[0].zoom]={zoom:b[0].zoom,type:n.type,property:n.property,default:n.default,stops:[]}),g[b[0].zoom].stops.push([b[0].value,b[1]])}for(let n in g)v.push([g[n].zoom,t(g[n])]);r=function(t,e){const r=u({stops:v,base:n.base},t)(t,e);return"function"==typeof r?r(t,e):r},i=!1,s=!1}else y?(r=function(t){const e=h(n,t);return"function"==typeof e?e(t):e},i=!0,s=!1):(r=function(t,e){const r=h(n,e?e[n.property]:null);return"function"==typeof r?r(t,e):r},i=!1,s=!0)}else r=function(){return n},i=!0,s=!0;return r.isZoomConstant=s,r.isFeatureConstant=i,r}(t,n);return s.isZoomConstant=e&&s.isZoomConstant,s.isFeatureConstant=r&&s.isFeatureConstant,s}let v=0;const b="function"==typeof Object.assign;function w(t,...n){if(b)return Object.assign(t,...n),t;for(let e=0;e<n.length;e++){const r=n[e];for(const n in r)t[n]=r[n]}return t}function M(t){return!k(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function x(t){return"number"==typeof t&&!isNaN(t)}function F(t){return!k(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}function A(t){return!Array.isArray(t)&&"object"==typeof t&&!!t}function k(t){return null==t}function P(t){for(let n=1;n<arguments.length;n++){const e=arguments[n];if(e)for(let n=0,r=e.length;n<r;n++)t.push(e[n])}return t.length}function S(t){return d(t)&&t.property}const _="function"==typeof fetch&&"function"==typeof AbortController,O={jsonp:function(t,n){const e="_maptalks_jsonp_"+v++;t.match(/\\?/)?t+="&callback="+e:t+="?callback="+e;let r=document.createElement("script");return r.type="text/javascript",r.src=t,window[e]=function(t){n(null,t),document.getElementsByTagName("head")[0].removeChild(r),r=null,delete window[e]},document.getElementsByTagName("head")[0].appendChild(r),this},get:function(t,n,e){if(F(n)){const t=e;e=n,n=t}(n=n||{}).method&&(n.method=n.method.toUpperCase());const r="POST"===n.method;if(_){const r=new AbortController,i=n;return i.signal=r.signal,i.referrerPolicy=i.referrerPolicy||"origin",i.method=i.method||"GET",fetch(t,i).then(r=>{const i=this.s(r,n.returnJSON,n.responseType);i.message?(i.url=t,e(i)):i.then(t=>{"arraybuffer"===n.responseType?e(null,{data:t,cacheControl:r.headers.get("Cache-Control"),expires:r.headers.get("Expires"),contentType:r.headers.get("Content-Type")}):e(null,t)}).catch(n=>{n.code&&n.code===DOMException.ABORT_ERR||(console.error("Fetch error:",t,n),e(n))})}).catch(n=>{n.code&&n.code===DOMException.ABORT_ERR||(console.error("Fetch error:",t,n),e(n))}),r}{const i=O.o(e);if(i.open(n.method||"GET",t,!0),n){for(const t in n.headers)i.setRequestHeader(t,n.headers[t]);i.withCredentials="include"===n.credentials,n.responseType&&(i.responseType=n.responseType)}return i.send(r?n.body:null),i}},s:(t,n,e)=>200!==t.status?{status:t.status,statusText:t.statusText,message:`incorrect http request with status code(${t.status}): ${t.statusText}`}:"arraybuffer"===e?t.arrayBuffer():n?t.json():t.text(),u:function(t,n){return function(){if(4===t.readyState)if(200===t.status)if("arraybuffer"===t.responseType){0===t.response.byteLength?n({status:200,statusText:t.statusText,message:"http status 200 returned without content."}):n(null,{data:t.response,cacheControl:t.getResponseHeader("Cache-Control"),expires:t.getResponseHeader("Expires"),contentType:t.getResponseHeader("Content-Type")})}else n(null,t.responseText);else n({status:t.status,statusText:t.statusText,message:`incorrect http request with status code(${t.status}): ${t.statusText}`})}},o:function(t){let n;try{n=new XMLHttpRequest}catch(t){try{n=new ActiveXObject("Msxml2.XMLHTTP")}catch(t){try{n=new ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}}return n.onreadystatechange=O.u(n,t),n},getArrayBuffer(t,n,e){if(F(n)){const t=e;e=n,n=t}return n||(n={}),n.responseType="arraybuffer",O.get(t,n,e)}};function E(t,n,e,r,i,s){let o=i-e,a=s-r;if(0!==o||0!==a){const u=((t-e)*o+(n-r)*a)/(o*o+a*a);u>1?(e=i,r=s):u>0&&(e+=o*u,r+=a*u)}return o=t-e,a=n-r,o*o+a*a}function I(t,n,e,r,i,s){const o={id:null==t?null:t,type:n,geometry:e,tags:r,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};i&&(o.layer=i);return function(t,n){const e=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)$(t,e,n);else if("Polygon"===r)$(t,e[0],n);else if("MultiLineString"===r)for(const r of e)$(t,r,n);else if("MultiPolygon"===r)for(const r of e)$(t,r[0],n)}(o,s?4:3),o}function $(t,n,e){for(let r=0;r<n.length;r+=e)t.minX=Math.min(t.minX,n[r]),t.minY=Math.min(t.minY,n[r+1]),t.maxX=Math.max(t.maxX,n[r]),t.maxY=Math.max(t.maxY,n[r+1])}function z(t,n,e,r){if(r.layer=n,"FeatureCollection"===e.type)for(let n=0;n<e.features.length;n++)C(t,e.features[n],r,n);else"Feature"===e.type?C(t,e,r):C(t,{geometry:e},r)}function C(t,n,e,r){if(!n.geometry)return;const i=n.geometry.coordinates,s=n.geometry.type,o=Math.pow(e.tolerance/((1<<e.maxZoom)*e.extent),2);let a=[],u=n.id;if(e.promoteId?u=n.properties[e.promoteId]:e.generateId&&(u=r||0),"Point"===s)T(i,a,e);else if("MultiPoint"===s)for(const t of i)T(t,a,e);else if("LineString"===s)D(i,a,o,!1,e);else if("MultiLineString"===s){if(e.lineMetrics){for(const r of i)a=[],D(r,a,o,!1,e),t.push(I(u,"LineString",a,n.properties,e.layer,e.hasAltitude));return}j(i,a,o,!1,e)}else if("Polygon"===s)j(i,a,o,!0,e);else{if("MultiPolygon"!==s){if("GeometryCollection"===s){for(const i of n.geometry.geometries)C(t,{id:u,geometry:i,properties:n.properties},e,r);return}throw new Error("Input data is not a valid GeoJSON object.")}for(const t of i){const n=[];j(t,n,o,!0,e),a.push(n)}}t.push(I(u,s,a,n.properties,e.layer,e.hasAltitude))}function T(t,n,e){n.push(U(t[0]),N(t[1],e.projection),0),e.hasAltitude&&(t.length>2?n.push(t[2]):n.push(0))}function D(t,n,e,r,i){let s,o,a=0;for(let e=0;e<t.length;e++){const u=U(t[e][0]),h=N(t[e][1],i.projection);n.push(u,h,0),i.hasAltitude&&(t[e].length>2?n.push(t[e][2]):n.push(0)),e>0&&(a+=r?(s*h-u*o)/2:Math.sqrt(Math.pow(u-s,2)+Math.pow(h-o,2))),s=u,o=h}const u=i.hasAltitude?4:3,h=n.length-u;n[2]=1,function t(n,e,r,i,s=3){let o=i;const a=r-e>>1;let u,h=r-e;const l=n[e],c=n[e+1],f=n[r],d=n[r+1];for(let t=e+s;t<r;t+=s){const e=E(n[t],n[t+1],l,c,f,d);if(e>o)u=t,o=e;else if(e===o){const n=Math.abs(t-a);n<h&&(u=t,h=n)}}o>i&&(u-e>s&&t(n,e,u,i,s),n[u+2]=o,r-u>s&&t(n,u,r,i,s))}(n,0,h,e,u),n[h+2]=1,n.size=Math.abs(a),n.start=0,n.end=n.size}function j(t,n,e,r,i){for(let s=0;s<t.length;s++){const o=[];D(t[s],o,e,r,i),n.push(o)}}function U(t){return t/360+.5}function N(t,n){switch(n){case"EPSG:4326":return(90-t)/360}const e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function L(t,n,e,r,i,s,o,a){if(r/=n,s>=(e/=n)&&o<r)return t;if(o<e||s>=r)return null;const u=[];for(const n of t){const t=n.geometry;let s=n.type;const o=0===i?n.minX:n.minY,h=0===i?n.maxX:n.maxY;if(o>=e&&h<r){u.push(n);continue}if(h<e||o>=r)continue;let l=[];if("Point"===s||"MultiPoint"===s)V(t,l,e,r,i,a.hasAltitude);else if("LineString"===s)R(t,l,e,r,i,!1,a.lineMetrics,a.hasAltitude);else if("MultiLineString"===s)W(t,l,e,r,i,!1,a.hasAltitude);else if("Polygon"===s)W(t,l,e,r,i,!0,a.hasAltitude);else if("MultiPolygon"===s)for(const n of t){const t=[];W(n,t,e,r,i,!0,a.hasAltitude),t.length&&l.push(t)}if(l.length){if(a.lineMetrics&&"LineString"===s){for(const t of l)u.push(I(n.id,s,t,n.tags,n.layer,a.hasAltitude));continue}"LineString"!==s&&"MultiLineString"!==s||(1===l.length?(s="LineString",l=l[0]):s="MultiLineString"),"Point"!==s&&"MultiPoint"!==s||(s=3===l.length?"Point":"MultiPoint"),u.push(I(n.id,s,l,n.tags,n.layer,a.hasAltitude))}}return u.length?u:null}function V(t,n,e,r,i,s){const o=s?4:3;for(let a=0;a<t.length;a+=o){const o=t[a+i];o>=e&&o<=r&&(q(n,t[a],t[a+1],t[a+2]),s&&n.push(t[a+3]))}}function R(t,n,e,r,i,s,o,a){let u=H(t);const h=0===i?G:B;let l,c,f=t.start;const d=a?4:3,p=s?t.length:t.length-d;for(let y=0;y<p;y+=d){const m=t[y],g=t[y+1],v=t[y+2];let b,w,M,x;s&&y===p-d?(b=t[0],w=t[1]):(b=t[y+d],w=t[y+d+1]),a&&(M=t[y+3],x=s&&y===p-d?t[3]:t[y+d+3]);const F=0===i?m:g,A=0===i?b:w;let k=!1;o&&(l=Math.sqrt(Math.pow(m-b,2)+Math.pow(g-w,2))),F<e?A>e&&(c=h(u,m,g,b,w,e),a&&u.push(J(M,x,c)),o&&(u.start=f+l*c)):F>r?A<r&&(c=h(u,m,g,b,w,r),a&&u.push(J(M,x,c)),o&&(u.start=f+l*c)):(q(u,m,g,v),a&&u.push(M)),A<e&&F>=e&&(c=h(u,m,g,b,w,e),a&&u.push(J(M,x,c)),k=!0),A>r&&F<=r&&(c=h(u,m,g,b,w,r),a&&u.push(J(M,x,c)),k=!0),!s&&k&&(o&&(u.end=f+l*c),n.push(u),u=H(t)),o&&(f+=l)}let y=t.length-d;if(!s){const n=t[y],s=t[y+1],o=t[y+2],h=0===i?n:s;if(h>=e&&h<=r&&q(u,n,s,o),h>=e&&h<=r&&a){const n=t[y+3];u.push(n)}}y=u.length-d,s&&y>=d&&(u[y]!==u[0]||u[y+1]!==u[1])&&(q(u,u[0],u[1],u[2]),a&&u.push(u[3])),u.length&&n.push(u)}function H(t){const n=[];return n.size=t.size,n.start=t.start,n.end=t.end,n}function W(t,n,e,r,i,s,o){for(const a of t)R(a,n,e,r,i,s,!1,o)}function q(t,n,e,r){t.push(n,e,r)}function G(t,n,e,r,i,s){const o=(s-n)/(r-n);return q(t,s,e+(i-e)*o,1),o}function B(t,n,e,r,i,s){const o=(s-e)/(i-e);return q(t,n+(r-n)*o,s,1),o}function J(t,n,e){return t+(n-t)*e}function X(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=t[i],o=s.type;let a;if("Point"===o||"MultiPoint"===o||"LineString"===o)a=Y(s.geometry,n,e);else if("MultiLineString"===o||"Polygon"===o){a=[];for(const t of s.geometry)a.push(Y(t,n,e))}else if("MultiPolygon"===o){a=[];for(const t of s.geometry){const r=[];for(const i of t)r.push(Y(i,n,e));a.push(r)}}r.push(I(s.id,o,a,s.tags,s.layer,e))}return r}function Y(t,n,e){const r=[];r.size=t.size,void 0!==t.start&&(r.start=t.start,r.end=t.end);const i=e?4:3;for(let s=0;s<t.length;s+=i)r.push(t[s]+n,t[s+1],t[s+2]),e&&r.push(t[s+3]);return r}function Z(t,n,e){if(t.transformed)return t;const r=1<<t.z,i=t.x,s=t.y,o=e?3:2;for(const a of t.features){const t=a.geometry,u=a.type;if(a.geometry=[],1===u)for(let u=0;u<t.length;u+=o)a.geometry.push(K(t[u],t[u+1],n,r,i,s)),e&&a.geometry[a.geometry.length-1].push(t[u+2]);else for(let u=0;u<t.length;u++){const h=[];for(let a=0;a<t[u].length;a+=o)h.push(K(t[u][a],t[u][a+1],n,r,i,s)),e&&h[h.length-1].push(t[u][a+2]);a.geometry.push(h)}}return t.transformed=!0,t}function K(t,n,e,r,i,s){return[Math.round(e*(t*r-i)),Math.round(e*(n*r-s))]}function Q(t,n,e,r,i){const s=n===i.maxZoom?0:i.tolerance/((1<<n)*i.extent),o={features:[],numPoints:0,numSimplified:0,numFeatures:t.length,source:null,x:e,y:r,z:n,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(const n of t)tt(o,n,s,i);return o}function tt(t,n,e,r){const i=n.geometry,s=n.type,o=[],a=r.hasAltitude?4:3;if(t.minX=Math.min(t.minX,n.minX),t.minY=Math.min(t.minY,n.minY),t.maxX=Math.max(t.maxX,n.maxX),t.maxY=Math.max(t.maxY,n.maxY),"Point"===s||"MultiPoint"===s)for(let n=0;n<i.length;n+=a)o.push(i[n],i[n+1]),r.hasAltitude&&o.push(i[n+3]),t.numPoints++,t.numSimplified++;else if("LineString"===s)et(o,i,t,e,!1,!1,r);else if("MultiLineString"===s||"Polygon"===s)for(let n=0;n<i.length;n++)et(o,i[n],t,e,"Polygon"===s,0===n,r);else if("MultiPolygon"===s)for(let n=0;n<i.length;n++){const s=i[n];for(let n=0;n<s.length;n++)et(o,s[n],t,e,!0,0===n,r)}if(o.length){let e=n.tags||null;if("LineString"===s&&r.lineMetrics){e={};for(const t in n.tags)e[t]=n.tags[t];e.mapbox_clip_start=i.start/i.size,e.mapbox_clip_end=i.end/i.size}const a={geometry:o,type:"Polygon"===s||"MultiPolygon"===s?3:"LineString"===s||"MultiLineString"===s?2:1,tags:e};n.layer&&(a.layer=n.layer),null!==n.id&&(a.id=n.id),t.features.push(a)}}function nt(t,n,e){return 0===t[n+2]&&t[n+3]>0&&e}function et(t,n,e,r,i,s,o){const a=r*r,{hasAltitude:u,disableFilter:h}=o,l=u?4:3;if(!h&&r>0&&n.size<(i?a:r))return void(e.numPoints+=n.length/l);const c=[];for(let t=0;t<n.length;t+=l)(0===r||n[t+2]>a||nt(n,t,u))&&(e.numSimplified++,c.push(n[t],n[t+1]),u&&c.push(n[t+3])),e.numPoints++;i&&function(t,n,e){const r=e?3:2;let i=0;for(let n=0,e=t.length,s=e-r;n<e;s=n,n+=r)i+=(t[n]-t[s])*(t[n+1]+t[s+1]);if(i>0===n){const n=r,i=r-1,s=r-2;for(let o=0,a=t.length;o<a/2;o+=r){const r=t[o],u=t[o+1];let h;e&&(h=t[o+2]),t[o]=t[a-n-o],t[o+1]=t[a-i-o],e&&(t[o+2]=t[a-s-o]),t[a-n-o]=r,t[a-i-o]=u,e&&(t[a-s-o]=h)}}}(c,s,u),t.push(c)}O.getJSON=function(t,n,e){if(F(n)){const t=e;e=n,n=t}const r=function(t,n){const r="string"==typeof n?JSON.parse(n):n||null;e(t,r)};return n&&n.jsonp?O.jsonp(t,r):((n=n||{}).returnJSON=!0,O.get(t,n,r))};const rt={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,hasAltitude:!1,disableFilter:!1,debug:0};class it{constructor(t,n){const e=(n=this.options=function(t,n){for(const e in n)t[e]=n[e];return t}(Object.create(rt),n)).debug;if(e&&console.time("preprocess data"),n.maxZoom<0||n.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(n.promoteId&&n.generateId)throw new Error("promoteId and generateId cannot be used together.");let r=function(t,n){const e=[];if(Array.isArray(t)){for(let r=0;r<t.length;r++)z(e,t[r].layer,t[r].data,n);return e}if("FeatureCollection"===t.type)for(let r=0;r<t.features.length;r++)C(e,t.features[r],n,r);else"Feature"===t.type?C(e,t,n):C(e,{geometry:t},n);return e}(t,n);this.tiles={},this.tileCoords=[],e&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",n.indexMaxZoom,n.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),r=function(t,n){const e=n.buffer/n.extent;let r=t;const i=L(t,1,-1-e,e,0,-1,2,n),s=L(t,1,1-e,2+e,0,-1,2,n);return(i||s)&&(r=L(t,1,-e,1+e,0,-1,2,n)||[],i&&(r=X(i,1,n.hasAltitude).concat(r)),s&&(r=r.concat(X(s,-1,n.hasAltitude)))),r}(r,n),r.length&&this.splitTile(r,0,0,0),e&&(r.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)))}splitTile(t,n,e,r,i,s,o){const a=[t,n,e,r],u=this.options,h=u.debug;for(;a.length;){r=a.pop(),e=a.pop(),n=a.pop(),t=a.pop();const l=1<<n,c=st(n,e,r);let f=this.tiles[c];if(!f&&(h>1&&console.time("creation"),f=this.tiles[c]=Q(t,n,e,r,u),this.tileCoords.push({z:n,x:e,y:r}),h)){h>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",n,e,r,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));const t="z"+n;this.stats[t]=(this.stats[t]||0)+1,this.total++}if(f.source=t,null==i){if(n===u.indexMaxZoom||f.numPoints<=u.indexMaxPoints)continue}else{if(n===u.maxZoom||n===i)continue;if(null!=i){const t=i-n;if(e!==s>>t||r!==o>>t)continue}}if(f.source=null,0===t.length)continue;h>1&&console.time("clipping");const d=.5*u.buffer/u.extent,p=.5-d,y=.5+d,m=1+d;let g=null,v=null,b=null,w=null,M=L(t,l,e-d,e+y,0,f.minX,f.maxX,u),x=L(t,l,e+p,e+m,0,f.minX,f.maxX,u);t=null,M&&(g=L(M,l,r-d,r+y,1,f.minY,f.maxY,u),v=L(M,l,r+p,r+m,1,f.minY,f.maxY,u),M=null),x&&(b=L(x,l,r-d,r+y,1,f.minY,f.maxY,u),w=L(x,l,r+p,r+m,1,f.minY,f.maxY,u),x=null),h>1&&console.timeEnd("clipping"),a.push(g||[],n+1,2*e,2*r),a.push(v||[],n+1,2*e,2*r+1),a.push(b||[],n+1,2*e+1,2*r),a.push(w||[],n+1,2*e+1,2*r+1)}}getTile(t,n,e){t=+t,n=+n,e=+e;const r=this.options,{extent:i,debug:s}=r,{hasAltitude:o}=r;if(t<0||t>24)return null;const a=1<<t,u=st(t,n=n+a&a-1,e);if(this.tiles[u])return Z(this.tiles[u],i,o);s>1&&console.log("drilling down to z%d-%d-%d",t,n,e);let h,l=t,c=n,f=e;for(;!h&&l>0;)l--,c>>=1,f>>=1,h=this.tiles[st(l,c,f)];return h&&h.source?(s>1&&(console.log("found parent tile z%d-%d-%d",l,c,f),console.time("drilling down")),this.splitTile(h.source,l,c,f,t,n,e),s>1&&console.timeEnd("drilling down"),this.tiles[u]?Z(this.tiles[u],i,o):null):null}}function st(t,n,e){return 32*((1<<t)*e+n)+t}function ot(t,n,e,r,i,s,o){const a=e&&Array.isArray(e[0]);for(let u=0,h=e.length;u<h;u++){t[n]=(a?e[u][0]:e[u].x)*r,t[n+1]=(a?e[u][1]:e[u].y)*r,o!==Float32Array&&(t[n]=Math.round(t[n]),t[n+1]=Math.round(t[n+1]));let l=i||0;Array.isArray(i)&&(l=i[u]),l=l?Math.round(r*l):0,t[n+2]=l,n+=3,s&&0!==u&&u!==h-1&&(t[n]=t[n-3],t[n+1]=t[n-2],t[n+2]=t[n-1],n+=3)}return t.trySetLength&&t.trySetLength(n),n}function at(t,n,e,r){const i=t[3*n],s=t[3*n+1],o=t[3*e],a=t[3*e+1];return i===o&&(i<0||i>r)||s===a&&(s<0||s>r)}var ut="undefined"!=typeof Float32Array?Float32Array:Array;function ht(){var t=new ut(3);return ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function lt(t,n,e){var r=new ut(3);return r[0]=t,r[1]=n,r[2]=e,r}function ct(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t}function ft(t,n,e,r){return t[0]=n,t[1]=e,t[2]=r,t}function dt(t,n,e){return t[0]=n[0]+e[0],t[1]=n[1]+e[1],t[2]=n[2]+e[2],t}function pt(t,n){var e=n[0],r=n[1],i=n[2],s=e*e+r*r+i*i;return s>0&&(s=1/Math.sqrt(s),t[0]=n[0]*s,t[1]=n[1]*s,t[2]=n[2]*s),t}function yt(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function mt(t,n,e){var r=n[0],i=n[1],s=n[2],o=e[0],a=e[1],u=e[2];return t[0]=i*u-s*a,t[1]=s*o-r*u,t[2]=r*a-i*o,t}var gt=function(t,n,e){return t[0]=n[0]-e[0],t[1]=n[1]-e[1],t[2]=n[2]-e[2],t};function vt(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function bt(t,n,e,r,i){return t[0]=n,t[1]=e,t[2]=r,t[3]=i,t}function wt(t,n,e){return t[0]=n[0]/e[0],t[1]=n[1]/e[1],t[2]=n[2]/e[2],t[3]=n[3]/e[3],t}function Mt(t,n,e){return t[0]=n[0]*e,t[1]=n[1]*e,t[2]=n[2]*e,t[3]=n[3]*e,t}function xt(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]}function Ft(){var t=new ut(4);return ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function At(t,n){var e=n[0]+n[4]+n[8],r=void 0;if(e>0)r=Math.sqrt(e+1),t[3]=.5*r,r=.5/r,t[0]=(n[5]-n[7])*r,t[1]=(n[6]-n[2])*r,t[2]=(n[1]-n[3])*r;else{var i=0;n[4]>n[0]&&(i=1),n[8]>n[3*i+i]&&(i=2);var s=(i+1)%3,o=(i+2)%3;r=Math.sqrt(n[3*i+i]-n[3*s+s]-n[3*o+o]+1),t[i]=.5*r,r=.5/r,t[3]=(n[3*s+o]-n[3*o+s])*r,t[s]=(n[3*s+i]+n[3*i+s])*r,t[o]=(n[3*o+i]+n[3*i+o])*r}return t}!function(){var t=ht()}(),function(){var t,n=(t=new ut(4),ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t)}();var kt,Pt=Mt,St=function(t,n){var e=n[0],r=n[1],i=n[2],s=n[3],o=e*e+r*r+i*i+s*s;return o>0&&(o=1/Math.sqrt(o),t[0]=e*o,t[1]=r*o,t[2]=i*o,t[3]=s*o),t};function _t(t,n,e){return t[0]=n,t[1]=e,t}function Ot(t,n){var e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}ht(),lt(1,0,0),lt(0,1,0),Ft(),Ft(),kt=new ut(9),ut!=Float32Array&&(kt[1]=0,kt[2]=0,kt[3]=0,kt[5]=0,kt[6]=0,kt[7]=0),kt[0]=1,kt[4]=1,kt[8]=1;var Et=function(t){var n=t[0],e=t[1];return Math.sqrt(n*n+e*e)};!function(){var t=function(){var t=new ut(2);return ut!=Float32Array&&(t[0]=0,t[1]=0),t}()}();const It=Math.PI/180,$t=6378137*Math.PI/180;function zt(t,n,e){if("EPSG:3857"===e)return function(t,n){const e=85.0511287798,r=n[0],i=Math.max(Math.min(e,n[1]),-e);let s;s=0===i?0:Math.log(Math.tan((90+i)*It/2))/It;return t[0]=r*$t,t[1]=s*$t,t}(t,n);if("EPSG:4326"===e||"EPSG:4490"===e||"identity"===e)return Ct(t,n);if("baidu"===e)return Ct(t,n);throw new Error("unsupported projection:"+e)}function Ct(t,n){return t[0]=n[0],t[1]=n[1],t}function Tt(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p){0===t?function(t,n,e,r,i,s,o,a,u,h){const l=1/(100*s),c=h&&h[0]||0,f=h&&h[1]||0,d=[0,0];for(let i=t;i<n;i+=3){const t=i/3*2,n=r[i]-c,s=r[i+1]-f;e[t]=d[0]+n*l/46.5*o/a,e[t+1]=d[1]-s*l/46.5*o/u}}(n,e,r,i,0,o,a,u,h,p):1===t&&function(t,n,e,r,i,s,o,a,u,h,l){if(!t)return;let c,f,d,p;0===t[4]?(c=t[0],f=t[1],d=t[2],p=t[3]):(c=t[1],f=t[2],d=t[3],p=t[0]);const y=Ot(c,f),m=Ot(f,d),g=[],v=[],b=[];for(let t=n;t<e;t+=3){const n=t/3*2,e=(s.x/u+i[t]*o)*a,d=s.y/u*a+(l?i[t+1]:-i[t+1])*o*a;_t(g,e,d),"EPSG:4326"!==h&&"EPSG:4490"!==h||zt(g,g,"EPSG:3857"),Dt(v,g,c,f),Dt(b,g,p,c),r[n]=Ot(c,v)/y,r[n+1]=Ot(c,b)/m}}(l,n,e,r,i,s,a,c,f,d,!!p)}function Dt(t,n,e,r){const i=e[0]-r[0],s=e[1]-r[1];let o=(n[0]-e[0])*(e[0]-r[0])+(n[1]-e[1])*(e[1]-r[1]);return o/=i*i+s*s,t[0]=e[0]+o*i,t[1]=e[1]+o*s,t}function jt(t,n,e,r,i){const s=3*n[e-1],o=3*n[e-1]+1,a=t[s],u=t[o];return h=r,l=i,c=a,f=u,Math.sqrt((c-h)*(c-h)+(f-l)*(f-l));var h,l,c,f}"undefined"!=typeof undefinedThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof undefined?global:"undefined"!=typeof self&&self;var Ut=Nt;function Nt(t,n){this.x=t,this.y=n}function Lt(t,n,e){e=e||{},this.w=t||64,this.h=n||64,this.autoResize=!!e.autoResize,this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0}function Vt(t,n,e){this.x=0,this.y=t,this.w=this.free=n,this.h=e}function Rt(t,n,e,r,i,s,o){this.id=t,this.x=n,this.y=e,this.w=r,this.h=i,this.maxw=s||r,this.maxh=o||i,this.refcount=0}Nt.prototype={clone:function(){return new Nt(this.x,this.y)},add:function(t){return this.clone().m(t)},sub:function(t){return this.clone().M(t)},multByPoint:function(t){return this.clone().F(t)},divByPoint:function(t){return this.clone().A(t)},mult:function(t){return this.clone().k(t)},div:function(t){return this.clone().P(t)},rotate:function(t){return this.clone().S(t)},rotateAround:function(t,n){return this.clone()._(t,n)},matMult:function(t){return this.clone().O(t)},unit:function(){return this.clone().I()},perp:function(){return this.clone().C()},round:function(){return this.clone().T()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var n=t.x-this.x,e=t.y-this.y;return n*n+e*e},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,n){return Math.atan2(this.x*n-this.y*t,this.x*t+this.y*n)},O:function(t){var n=t[0]*this.x+t[1]*this.y,e=t[2]*this.x+t[3]*this.y;return this.x=n,this.y=e,this},m:function(t){return this.x+=t.x,this.y+=t.y,this},M:function(t){return this.x-=t.x,this.y-=t.y,this},k:function(t){return this.x*=t,this.y*=t,this},P:function(t){return this.x/=t,this.y/=t,this},F:function(t){return this.x*=t.x,this.y*=t.y,this},A:function(t){return this.x/=t.x,this.y/=t.y,this},I:function(){return this.P(this.mag()),this},C:function(){var t=this.y;return this.y=this.x,this.x=-t,this},S:function(t){var n=Math.cos(t),e=Math.sin(t),r=n*this.x-e*this.y,i=e*this.x+n*this.y;return this.x=r,this.y=i,this},_:function(t,n){var e=Math.cos(t),r=Math.sin(t),i=n.x+e*(this.x-n.x)-r*(this.y-n.y),s=n.y+r*(this.x-n.x)+e*(this.y-n.y);return this.x=i,this.y=s,this},T:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Nt.convert=function(t){return t instanceof Nt?t:Array.isArray(t)?new Nt(t[0],t[1]):t},Lt.prototype.pack=function(t,n){t=[].concat(t),n=n||{};for(var e,r,i,s,o=[],a=0;a<t.length;a++)if(e=t[a].w||t[a].width,r=t[a].h||t[a].height,i=t[a].id,e&&r){if(!(s=this.packOne(e,r,i)))continue;n.inPlace&&(t[a].x=s.x,t[a].y=s.y,t[a].id=s.id),o.push(s)}return this.shrink(),o},Lt.prototype.packOne=function(t,n,e){var r,i,s,o,a,u,h,l,c={freebin:-1,shelf:-1,waste:1/0},f=0;if("string"==typeof e||"number"==typeof e){if(r=this.getBin(e))return this.ref(r),r;"number"==typeof e&&(this.maxId=Math.max(e,this.maxId))}else e=++this.maxId;for(o=0;o<this.freebins.length;o++){if(n===(r=this.freebins[o]).maxh&&t===r.maxw)return this.allocFreebin(o,t,n,e);n>r.maxh||t>r.maxw||n<=r.maxh&&t<=r.maxw&&(s=r.maxw*r.maxh-t*n)<c.waste&&(c.waste=s,c.freebin=o)}for(o=0;o<this.shelves.length;o++)if(f+=(i=this.shelves[o]).h,!(t>i.free)){if(n===i.h)return this.allocShelf(o,t,n,e);n>i.h||n<i.h&&(s=(i.h-n)*t)<c.waste&&(c.freebin=-1,c.waste=s,c.shelf=o)}return-1!==c.freebin?this.allocFreebin(c.freebin,t,n,e):-1!==c.shelf?this.allocShelf(c.shelf,t,n,e):n<=this.h-f&&t<=this.w?(i=new Vt(f,this.w,n),this.allocShelf(this.shelves.push(i)-1,t,n,e)):this.autoResize?(a=u=this.h,((h=l=this.w)<=a||t>h)&&(l=2*Math.max(t,h)),(a<h||n>a)&&(u=2*Math.max(n,a)),this.resize(l,u),this.packOne(t,n,e)):null},Lt.prototype.allocFreebin=function(t,n,e,r){var i=this.freebins.splice(t,1)[0];return i.id=r,i.w=n,i.h=e,i.refcount=0,this.bins[r]=i,this.ref(i),i},Lt.prototype.allocShelf=function(t,n,e,r){var i=this.shelves[t].alloc(n,e,r);return this.bins[r]=i,this.ref(i),i},Lt.prototype.shrink=function(){if(this.shelves.length>0){for(var t=0,n=0,e=0;e<this.shelves.length;e++){var r=this.shelves[e];n+=r.h,t=Math.max(r.w-r.free,t)}this.resize(t,n)}},Lt.prototype.getBin=function(t){return this.bins[t]},Lt.prototype.ref=function(t){if(1==++t.refcount){var n=t.h;this.stats[n]=1+(0|this.stats[n])}return t.refcount},Lt.prototype.unref=function(t){return 0===t.refcount?0:(0==--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},Lt.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},Lt.prototype.resize=function(t,n){this.w=t,this.h=n;for(var e=0;e<this.shelves.length;e++)this.shelves[e].resize(t);return!0},Vt.prototype.alloc=function(t,n,e){if(t>this.free||n>this.h)return null;var r=this.x;return this.x+=t,this.free-=t,new Rt(e,r,this.y,t,n,t,this.h)},Vt.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0};var Ht={exports:{}},Wt={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},qt={exports:{}},Gt=function(t){return!(!t||"string"==typeof t)&&(t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&"String"!==t.constructor.name))},Bt=Array.prototype.concat,Jt=Array.prototype.slice,Xt=qt.exports=function(t){for(var n=[],e=0,r=t.length;e<r;e++){var i=t[e];Gt(i)?n=Bt.call(n,Jt.call(i)):n.push(i)}return n};Xt.wrap=function(t){return function(){return t(Xt(arguments))}};var Yt=Wt,Zt=qt.exports,Kt=Object.hasOwnProperty,Qt=Object.create(null);for(var tn in Yt)Kt.call(Yt,tn)&&(Qt[Yt[tn]]=tn);var nn=Ht.exports={to:{},get:{}};function en(t,n,e){return Math.min(Math.max(n,t),e)}function rn(t){var n=Math.round(t).toString(16).toUpperCase();return n.length<2?"0"+n:n}nn.get=function(t){var n,e;switch(t.substring(0,3).toLowerCase()){case"hsl":n=nn.get.hsl(t),e="hsl";break;case"hwb":n=nn.get.hwb(t),e="hwb";break;default:n=nn.get.rgb(t),e="rgb"}return n?{model:e,value:n}:null},nn.get.rgb=function(t){if(!t)return null;var n,e,r,i=[0,0,0,1];if(n=t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(r=n[2],n=n[1],e=0;e<3;e++){var s=2*e;i[e]=parseInt(n.slice(s,s+2),16)}r&&(i[3]=parseInt(r,16)/255)}else if(n=t.match(/^#([a-f0-9]{3,4})$/i)){for(r=(n=n[1])[3],e=0;e<3;e++)i[e]=parseInt(n[e]+n[e],16);r&&(i[3]=parseInt(r+r,16)/255)}else if(n=t.match(/^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/)){for(e=0;e<3;e++)i[e]=parseInt(n[e+1],0);n[4]&&(n[5]?i[3]=.01*parseFloat(n[4]):i[3]=parseFloat(n[4]))}else{if(!(n=t.match(/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/)))return(n=t.match(/^(\\w+)$/))?"transparent"===n[1]?[0,0,0,0]:Kt.call(Yt,n[1])?((i=Yt[n[1]])[3]=1,i):null:null;for(e=0;e<3;e++)i[e]=Math.round(2.55*parseFloat(n[e+1]));n[4]&&(n[5]?i[3]=.01*parseFloat(n[4]):i[3]=parseFloat(n[4]))}for(e=0;e<3;e++)i[e]=en(i[e],0,255);return i[3]=en(i[3],0,1),i},nn.get.hsl=function(t){if(!t)return null;var n=t.match(/^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/);if(n){var e=parseFloat(n[4]);return[(parseFloat(n[1])%360+360)%360,en(parseFloat(n[2]),0,100),en(parseFloat(n[3]),0,100),en(isNaN(e)?1:e,0,1)]}return null},nn.get.hwb=function(t){if(!t)return null;var n=t.match(/^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/);if(n){var e=parseFloat(n[4]);return[(parseFloat(n[1])%360+360)%360,en(parseFloat(n[2]),0,100),en(parseFloat(n[3]),0,100),en(isNaN(e)?1:e,0,1)]}return null},nn.to.hex=function(){var t=Zt(arguments);return"#"+rn(t[0])+rn(t[1])+rn(t[2])+(t[3]<1?rn(Math.round(255*t[3])):"")},nn.to.rgb=function(){var t=Zt(arguments);return t.length<4||1===t[3]?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"},nn.to.rgb.percent=function(){var t=Zt(arguments),n=Math.round(t[0]/255*100),e=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return t.length<4||1===t[3]?"rgb("+n+"%, "+e+"%, "+r+"%)":"rgba("+n+"%, "+e+"%, "+r+"%, "+t[3]+")"},nn.to.hsl=function(){var t=Zt(arguments);return t.length<4||1===t[3]?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"},nn.to.hwb=function(){var t=Zt(arguments),n="";return t.length>=4&&1!==t[3]&&(n=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+n+")"},nn.to.keyword=function(t){return Qt[t.slice(0,3)]};var sn={exports:{}},on=Wt,an={};for(var un in on)on.hasOwnProperty(un)&&(an[on[un]]=un);var hn=sn.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var ln in hn)if(hn.hasOwnProperty(ln)){if(!("channels"in hn[ln]))throw new Error("missing channels property: "+ln);if(!("labels"in hn[ln]))throw new Error("missing channel labels property: "+ln);if(hn[ln].labels.length!==hn[ln].channels)throw new Error("channel and label counts mismatch: "+ln);var cn=hn[ln].channels,fn=hn[ln].labels;delete hn[ln].channels,delete hn[ln].labels,Object.defineProperty(hn[ln],"channels",{value:cn}),Object.defineProperty(hn[ln],"labels",{value:fn})}function dn(t,n){return Math.pow(t[0]-n[0],2)+Math.pow(t[1]-n[1],2)+Math.pow(t[2]-n[2],2)}hn.rgb.hsl=function(t){var n,e,r=t[0]/255,i=t[1]/255,s=t[2]/255,o=Math.min(r,i,s),a=Math.max(r,i,s),u=a-o;return a===o?n=0:r===a?n=(i-s)/u:i===a?n=2+(s-r)/u:s===a&&(n=4+(r-i)/u),(n=Math.min(60*n,360))<0&&(n+=360),e=(o+a)/2,[n,100*(a===o?0:e<=.5?u/(a+o):u/(2-a-o)),100*e]},hn.rgb.hsv=function(t){var n,e,r,i,s,o=t[0]/255,a=t[1]/255,u=t[2]/255,h=Math.max(o,a,u),l=h-Math.min(o,a,u),c=function(t){return(h-t)/6/l+.5};return 0===l?i=s=0:(s=l/h,n=c(o),e=c(a),r=c(u),o===h?i=r-e:a===h?i=1/3+n-r:u===h&&(i=2/3+e-n),i<0?i+=1:i>1&&(i-=1)),[360*i,100*s,100*h]},hn.rgb.hwb=function(t){var n=t[0],e=t[1],r=t[2];return[hn.rgb.hsl(t)[0],100*(1/255*Math.min(n,Math.min(e,r))),100*(r=1-1/255*Math.max(n,Math.max(e,r)))]},hn.rgb.cmyk=function(t){var n,e=t[0]/255,r=t[1]/255,i=t[2]/255;return[100*((1-e-(n=Math.min(1-e,1-r,1-i)))/(1-n)||0),100*((1-r-n)/(1-n)||0),100*((1-i-n)/(1-n)||0),100*n]},hn.rgb.keyword=function(t){var n=an[t];if(n)return n;var e,r=1/0;for(var i in on)if(on.hasOwnProperty(i)){var s=dn(t,on[i]);s<r&&(r=s,e=i)}return e},hn.keyword.rgb=function(t){return on[t]},hn.rgb.xyz=function(t){var n=t[0]/255,e=t[1]/255,r=t[2]/255;return[100*(.4124*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.3576*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*n+.7152*e+.0722*r),100*(.0193*n+.1192*e+.9505*r)]},hn.rgb.lab=function(t){var n=hn.rgb.xyz(t),e=n[0],r=n[1],i=n[2];return r/=100,i/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(e-r),200*(r-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},hn.hsl.rgb=function(t){var n,e,r,i,s,o=t[0]/360,a=t[1]/100,u=t[2]/100;if(0===a)return[s=255*u,s,s];n=2*u-(e=u<.5?u*(1+a):u+a-u*a),i=[0,0,0];for(var h=0;h<3;h++)(r=o+1/3*-(h-1))<0&&r++,r>1&&r--,s=6*r<1?n+6*(e-n)*r:2*r<1?e:3*r<2?n+(e-n)*(2/3-r)*6:n,i[h]=255*s;return i},hn.hsl.hsv=function(t){var n=t[0],e=t[1]/100,r=t[2]/100,i=e,s=Math.max(r,.01);return e*=(r*=2)<=1?r:2-r,i*=s<=1?s:2-s,[n,100*(0===r?2*i/(s+i):2*e/(r+e)),100*((r+e)/2)]},hn.hsv.rgb=function(t){var n=t[0]/60,e=t[1]/100,r=t[2]/100,i=Math.floor(n)%6,s=n-Math.floor(n),o=255*r*(1-e),a=255*r*(1-e*s),u=255*r*(1-e*(1-s));switch(r*=255,i){case 0:return[r,u,o];case 1:return[a,r,o];case 2:return[o,r,u];case 3:return[o,a,r];case 4:return[u,o,r];case 5:return[r,o,a]}},hn.hsv.hsl=function(t){var n,e,r,i=t[0],s=t[1]/100,o=t[2]/100,a=Math.max(o,.01);return r=(2-s)*o,e=s*a,[i,100*(e=(e/=(n=(2-s)*a)<=1?n:2-n)||0),100*(r/=2)]},hn.hwb.rgb=function(t){var n,e,r,i,s,o,a,u=t[0]/360,h=t[1]/100,l=t[2]/100,c=h+l;switch(c>1&&(h/=c,l/=c),r=6*u-(n=Math.floor(6*u)),0!=(1&n)&&(r=1-r),i=h+r*((e=1-l)-h),n){default:case 6:case 0:s=e,o=i,a=h;break;case 1:s=i,o=e,a=h;break;case 2:s=h,o=e,a=i;break;case 3:s=h,o=i,a=e;break;case 4:s=i,o=h,a=e;break;case 5:s=e,o=h,a=i}return[255*s,255*o,255*a]},hn.cmyk.rgb=function(t){var n=t[0]/100,e=t[1]/100,r=t[2]/100,i=t[3]/100;return[255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,e*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},hn.xyz.rgb=function(t){var n,e,r,i=t[0]/100,s=t[1]/100,o=t[2]/100;return e=-.9689*i+1.8758*s+.0415*o,r=.0557*i+-.204*s+1.057*o,n=(n=3.2406*i+-1.5372*s+-.4986*o)>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(n=Math.min(Math.max(0,n),1)),255*(e=Math.min(Math.max(0,e),1)),255*(r=Math.min(Math.max(0,r),1))]},hn.xyz.lab=function(t){var n=t[0],e=t[1],r=t[2];return e/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(e=e>.008856?Math.pow(e,1/3):7.787*e+16/116)-16,500*(n-e),200*(e-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},hn.lab.xyz=function(t){var n,e,r,i=t[0];n=t[1]/500+(e=(i+16)/116),r=e-t[2]/200;var s=Math.pow(e,3),o=Math.pow(n,3),a=Math.pow(r,3);return e=s>.008856?s:(e-16/116)/7.787,n=o>.008856?o:(n-16/116)/7.787,r=a>.008856?a:(r-16/116)/7.787,[n*=95.047,e*=100,r*=108.883]},hn.lab.lch=function(t){var n,e=t[0],r=t[1],i=t[2];return(n=360*Math.atan2(i,r)/2/Math.PI)<0&&(n+=360),[e,Math.sqrt(r*r+i*i),n]},hn.lch.lab=function(t){var n,e=t[0],r=t[1];return n=t[2]/360*2*Math.PI,[e,r*Math.cos(n),r*Math.sin(n)]},hn.rgb.ansi16=function(t){var n=t[0],e=t[1],r=t[2],i=1 in arguments?arguments[1]:hn.rgb.hsv(t)[2];if(0===(i=Math.round(i/50)))return 30;var s=30+(Math.round(r/255)<<2|Math.round(e/255)<<1|Math.round(n/255));return 2===i&&(s+=60),s},hn.hsv.ansi16=function(t){return hn.rgb.ansi16(hn.hsv.rgb(t),t[2])},hn.rgb.ansi256=function(t){var n=t[0],e=t[1],r=t[2];return n===e&&e===r?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(e/255*5)+Math.round(r/255*5)},hn.ansi16.rgb=function(t){var n=t%10;if(0===n||7===n)return t>50&&(n+=3.5),[n=n/10.5*255,n,n];var e=.5*(1+~~(t>50));return[(1&n)*e*255,(n>>1&1)*e*255,(n>>2&1)*e*255]},hn.ansi256.rgb=function(t){if(t>=232){var n=10*(t-232)+8;return[n,n,n]}var e;return t-=16,[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},hn.rgb.hex=function(t){var n=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(n.length)+n},hn.hex.rgb=function(t){var n=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!n)return[0,0,0];var e=n[0];3===n[0].length&&(e=e.split("").map((function(t){return t+t})).join(""));var r=parseInt(e,16);return[r>>16&255,r>>8&255,255&r]},hn.rgb.hcg=function(t){var n,e=t[0]/255,r=t[1]/255,i=t[2]/255,s=Math.max(Math.max(e,r),i),o=Math.min(Math.min(e,r),i),a=s-o;return n=a<=0?0:s===e?(r-i)/a%6:s===r?2+(i-e)/a:4+(e-r)/a+4,n/=6,[360*(n%=1),100*a,100*(a<1?o/(1-a):0)]},hn.hsl.hcg=function(t){var n=t[1]/100,e=t[2]/100,r=1,i=0;return(r=e<.5?2*n*e:2*n*(1-e))<1&&(i=(e-.5*r)/(1-r)),[t[0],100*r,100*i]},hn.hsv.hcg=function(t){var n=t[1]/100,e=t[2]/100,r=n*e,i=0;return r<1&&(i=(e-r)/(1-r)),[t[0],100*r,100*i]},hn.hcg.rgb=function(t){var n=t[0]/360,e=t[1]/100,r=t[2]/100;if(0===e)return[255*r,255*r,255*r];var i,s=[0,0,0],o=n%1*6,a=o%1,u=1-a;switch(Math.floor(o)){case 0:s[0]=1,s[1]=a,s[2]=0;break;case 1:s[0]=u,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=a;break;case 3:s[0]=0,s[1]=u,s[2]=1;break;case 4:s[0]=a,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=u}return i=(1-e)*r,[255*(e*s[0]+i),255*(e*s[1]+i),255*(e*s[2]+i)]},hn.hcg.hsv=function(t){var n=t[1]/100,e=n+t[2]/100*(1-n),r=0;return e>0&&(r=n/e),[t[0],100*r,100*e]},hn.hcg.hsl=function(t){var n=t[1]/100,e=t[2]/100*(1-n)+.5*n,r=0;return e>0&&e<.5?r=n/(2*e):e>=.5&&e<1&&(r=n/(2*(1-e))),[t[0],100*r,100*e]},hn.hcg.hwb=function(t){var n=t[1]/100,e=n+t[2]/100*(1-n);return[t[0],100*(e-n),100*(1-e)]},hn.hwb.hcg=function(t){var n=t[1]/100,e=1-t[2]/100,r=e-n,i=0;return r<1&&(i=(e-r)/(1-r)),[t[0],100*r,100*i]},hn.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},hn.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},hn.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},hn.gray.hsl=hn.gray.hsv=function(t){return[0,0,t[0]]},hn.gray.hwb=function(t){return[0,100,t[0]]},hn.gray.cmyk=function(t){return[0,0,0,t[0]]},hn.gray.lab=function(t){return[t[0],0,0]},hn.gray.hex=function(t){var n=255&Math.round(t[0]/100*255),e=((n<<16)+(n<<8)+n).toString(16).toUpperCase();return"000000".substring(e.length)+e},hn.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]};var pn=sn.exports;function yn(t){var n=function(){for(var t={},n=Object.keys(pn),e=n.length,r=0;r<e;r++)t[n[r]]={distance:-1,parent:null};return t}(),e=[t];for(n[t].distance=0;e.length;)for(var r=e.pop(),i=Object.keys(pn[r]),s=i.length,o=0;o<s;o++){var a=i[o],u=n[a];-1===u.distance&&(u.distance=n[r].distance+1,u.parent=r,e.unshift(a))}return n}function mn(t,n){return function(e){return n(t(e))}}function gn(t,n){for(var e=[n[t].parent,t],r=pn[n[t].parent][t],i=n[t].parent;n[i].parent;)e.unshift(n[i].parent),r=mn(pn[n[i].parent][i],r),i=n[i].parent;return r.conversion=e,r}var vn=sn.exports,bn=function(t){for(var n=yn(t),e={},r=Object.keys(n),i=r.length,s=0;s<i;s++){var o=r[s];null!==n[o].parent&&(e[o]=gn(o,n))}return e},wn={};Object.keys(vn).forEach((function(t){wn[t]={},Object.defineProperty(wn[t],"channels",{value:vn[t].channels}),Object.defineProperty(wn[t],"labels",{value:vn[t].labels});var n=bn(t);Object.keys(n).forEach((function(e){var r=n[e];wn[t][e]=function(t){var n=function(n){if(null==n)return n;arguments.length>1&&(n=Array.prototype.slice.call(arguments));var e=t(n);if("object"==typeof e)for(var r=e.length,i=0;i<r;i++)e[i]=Math.round(e[i]);return e};return"conversion"in t&&(n.conversion=t.conversion),n}(r),wn[t][e].raw=function(t){var n=function(n){return null==n?n:(arguments.length>1&&(n=Array.prototype.slice.call(arguments)),t(n))};return"conversion"in t&&(n.conversion=t.conversion),n}(r)}))}));var Mn=wn,xn=Ht.exports,Fn=Mn,An=[].slice,kn=["keyword","gray","hex"],Pn={};Object.keys(Fn).forEach((function(t){Pn[An.call(Fn[t].labels).sort().join("")]=t}));var Sn={};function _n(t,n){if(!(this instanceof _n))return new _n(t,n);if(n&&n in kn&&(n=null),n&&!(n in Fn))throw new Error("Unknown model: "+n);var e,r;if(null==t)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof _n)this.model=t.model,this.color=t.color.slice(),this.valpha=t.valpha;else if("string"==typeof t){var i=xn.get(t);if(null===i)throw new Error("Unable to parse color from string: "+t);this.model=i.model,r=Fn[this.model].channels,this.color=i.value.slice(0,r),this.valpha="number"==typeof i.value[r]?i.value[r]:1}else if(t.length){this.model=n||"rgb",r=Fn[this.model].channels;var s=An.call(t,0,r);this.color=$n(s,r),this.valpha="number"==typeof t[r]?t[r]:1}else if("number"==typeof t)t&=16777215,this.model="rgb",this.color=[t>>16&255,t>>8&255,255&t],this.valpha=1;else{this.valpha=1;var o=Object.keys(t);"alpha"in t&&(o.splice(o.indexOf("alpha"),1),this.valpha="number"==typeof t.alpha?t.alpha:0);var a=o.sort().join("");if(!(a in Pn))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=Pn[a];var u=Fn[this.model].labels,h=[];for(e=0;e<u.length;e++)h.push(t[u[e]]);this.color=$n(h)}if(Sn[this.model])for(r=Fn[this.model].channels,e=0;e<r;e++){var l=Sn[this.model][e];l&&(this.color[e]=l(this.color[e]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}function On(t,n,e){return(t=Array.isArray(t)?t:[t]).forEach((function(t){(Sn[t]||(Sn[t]=[]))[n]=e})),t=t[0],function(r){var i;return arguments.length?(e&&(r=e(r)),(i=this[t]()).color[n]=r,i):(i=this[t]().color[n],e&&(i=e(i)),i)}}function En(t){return function(n){return Math.max(0,Math.min(t,n))}}function In(t){return Array.isArray(t)?t:[t]}function $n(t,n){for(var e=0;e<n;e++)"number"!=typeof t[e]&&(t[e]=0);return t}_n.prototype={toString:function(){return this.string()},toJSON:function(){return this[this.model]()},string:function(t){var n=this.model in xn.to?this:this.rgb(),e=1===(n=n.round("number"==typeof t?t:1)).valpha?n.color:n.color.concat(this.valpha);return xn.to[n.model](e)},percentString:function(t){var n=this.rgb().round("number"==typeof t?t:1),e=1===n.valpha?n.color:n.color.concat(this.valpha);return xn.to.rgb.percent(e)},array:function(){return 1===this.valpha?this.color.slice():this.color.concat(this.valpha)},object:function(){for(var t={},n=Fn[this.model].channels,e=Fn[this.model].labels,r=0;r<n;r++)t[e[r]]=this.color[r];return 1!==this.valpha&&(t.alpha=this.valpha),t},unitArray:function(){var t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,1!==this.valpha&&t.push(this.valpha),t},unitObject:function(){var t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,1!==this.valpha&&(t.alpha=this.valpha),t},round:function(t){return t=Math.max(t||0,0),new _n(this.color.map(function(t){return function(n){return function(t,n){return Number(t.toFixed(n))}(n,t)}}(t)).concat(this.valpha),this.model)},alpha:function(t){return arguments.length?new _n(this.color.concat(Math.max(0,Math.min(1,t))),this.model):this.valpha},red:On("rgb",0,En(255)),green:On("rgb",1,En(255)),blue:On("rgb",2,En(255)),hue:On(["hsl","hsv","hsl","hwb","hcg"],0,(function(t){return(t%360+360)%360})),saturationl:On("hsl",1,En(100)),lightness:On("hsl",2,En(100)),saturationv:On("hsv",1,En(100)),value:On("hsv",2,En(100)),chroma:On("hcg",1,En(100)),gray:On("hcg",2,En(100)),white:On("hwb",1,En(100)),wblack:On("hwb",2,En(100)),cyan:On("cmyk",0,En(100)),magenta:On("cmyk",1,En(100)),yellow:On("cmyk",2,En(100)),black:On("cmyk",3,En(100)),x:On("xyz",0,En(100)),y:On("xyz",1,En(100)),z:On("xyz",2,En(100)),l:On("lab",0,En(100)),a:On("lab",1),b:On("lab",2),keyword:function(t){return arguments.length?new _n(t):Fn[this.model].keyword(this.color)},hex:function(t){return arguments.length?new _n(t):xn.to.hex(this.rgb().round().color)},rgbNumber:function(){var t=this.rgb().color;return(255&t[0])<<16|(255&t[1])<<8|255&t[2]},luminosity:function(){for(var t=this.rgb().color,n=[],e=0;e<t.length;e++){var r=t[e]/255;n[e]=r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4)}return.2126*n[0]+.7152*n[1]+.0722*n[2]},contrast:function(t){var n=this.luminosity(),e=t.luminosity();return n>e?(n+.05)/(e+.05):(e+.05)/(n+.05)},level:function(t){var n=this.contrast(t);return n>=7.1?"AAA":n>=4.5?"AA":""},isDark:function(){var t=this.rgb().color;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var t=this.rgb(),n=0;n<3;n++)t.color[n]=255-t.color[n];return t},lighten:function(t){var n=this.hsl();return n.color[2]+=n.color[2]*t,n},darken:function(t){var n=this.hsl();return n.color[2]-=n.color[2]*t,n},saturate:function(t){var n=this.hsl();return n.color[1]+=n.color[1]*t,n},desaturate:function(t){var n=this.hsl();return n.color[1]-=n.color[1]*t,n},whiten:function(t){var n=this.hwb();return n.color[1]+=n.color[1]*t,n},blacken:function(t){var n=this.hwb();return n.color[2]+=n.color[2]*t,n},grayscale:function(){var t=this.rgb().color,n=.3*t[0]+.59*t[1]+.11*t[2];return _n.rgb(n,n,n)},fade:function(t){return this.alpha(this.valpha-this.valpha*t)},opaquer:function(t){return this.alpha(this.valpha+this.valpha*t)},rotate:function(t){var n=this.hsl(),e=n.color[0];return e=(e=(e+t)%360)<0?360+e:e,n.color[0]=e,n},mix:function(t,n){if(!t||!t.rgb)throw new Error(\'Argument to "mix" was not a Color instance, but rather an instance of \'+typeof t);var e=t.rgb(),r=this.rgb(),i=void 0===n?.5:n,s=2*i-1,o=e.alpha()-r.alpha(),a=((s*o==-1?s:(s+o)/(1+s*o))+1)/2,u=1-a;return _n.rgb(a*e.red()+u*r.red(),a*e.green()+u*r.green(),a*e.blue()+u*r.blue(),e.alpha()*i+r.alpha()*(1-i))}},Object.keys(Fn).forEach((function(t){if(-1===kn.indexOf(t)){var n=Fn[t].channels;_n.prototype[t]=function(){if(this.model===t)return new _n(this);if(arguments.length)return new _n(arguments,t);var e="number"==typeof arguments[n]?n:this.valpha;return new _n(In(Fn[this.model][t].raw(this.color)).concat(e),t)},_n[t]=function(e){return"number"==typeof e&&(e=$n(An.call(arguments),n)),new _n(e,t)}}}));var zn=_n;\n/*!\n Feature Filter by\n\n (c) mapbox 2016 and maptalks 2018\n www.mapbox.com | www.maptalks.org\n License: MIT, header required.\n */const Cn=["Unknown","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];function Tn(t){return new Function("f","var p = (f && f.properties || {}); return "+Dn(t))}function Dn(t){if(!t)return"true";const n=t[0];if(t.length<=1)return"any"===n?"false":"true";return`(${"=="===n?Un(t[1],t[2],"===",!1):"!="===n?Un(t[1],t[2],"!==",!1):"<"===n||">"===n||"<="===n||">="===n?Un(t[1],t[2],n,!0):"any"===n?Ln(t.slice(1),"||"):"all"===n?Ln(t.slice(1),"&&"):"none"===n?Hn(Ln(t.slice(1),"||")):"in"===n?Vn(t[1],t.slice(2)):"!in"===n?Hn(Vn(t[1],t.slice(2))):"has"===n?Rn(t[1]):"!has"===n?Hn(Rn(t[1])):"contains"===n?function(t,n,e){const r=jn(t);return void 0!==e?`(${r} + \'\').indexOf("${n}") === ${e}`:`(${r} + \'\').indexOf("${n}") >= 0`}(t[1],t[2],t[3]):"true"})`}function jn(t){return"$"===t[0]?"f."+t.substring(1):"p["+JSON.stringify(t)+"]"}function Un(t,n,e,r){if("object"==typeof(i=t)&&i&&t.op)return function(t,n,e,r){const i=t.property,s=t.op;let o=jn(i);return"length"!==s?(console.error(`not support ${s} op`),"false"):(o=`((${o}+=\'\').length)`,Nn(o,i,n,e,r))}(t,n,e,r);var i;return Nn(jn(t),t,n,e,r)}function Nn(t,n,e,r,i){const s="$type"===n?Cn.indexOf(e):JSON.stringify(e);return(i?`typeof ${t}=== typeof ${s}&&`:"")+t+r+s}function Ln(t,n){return t.map(Dn).join(n)}function Vn(t,n){"$type"===t&&(n=n.map(t=>Cn.indexOf(t)));const e=JSON.stringify(n.sort(Wn)),r=jn(t);return n.length<=200?`${e}.indexOf(${r}) !== -1`:`function(v, a, i, j) {\\n while (i <= j) { var m = (i + j) >> 1;\\n if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;\\n }\\n return false; }(${r}, ${e},0,${n.length-1})`}function Rn(t){return"$id"===t?\'"id" in f\':JSON.stringify(t)+" in p"}function Hn(t){return`!(${t})`}function Wn(t,n){return t<n?-1:t>n?1:0}var qn={exports:{}};qn.exports=function(){function t(t,n,e){var r=t[n];t[n]=t[e],t[e]=r}function n(t,n){return t<n?-1:t>n?1:0}return function(e,r,i,s,o){!function n(e,r,i,s,o){for(;s>i;){if(s-i>600){var a=s-i+1,u=r-i+1,h=Math.log(a),l=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*l*(a-l)/a)*(u-a/2<0?-1:1),f=Math.max(i,Math.floor(r-u*l/a+c)),d=Math.min(s,Math.floor(r+(a-u)*l/a+c));n(e,r,f,d,o)}var p=e[r],y=i,m=s;for(t(e,i,r),o(e[s],p)>0&&t(e,i,s);y<m;){for(t(e,y,m),y++,m--;o(e[y],p)<0;)y++;for(;o(e[m],p)>0;)m--}0===o(e[i],p)?t(e,i,m):(m++,t(e,m,s)),m<=r&&(i=m+1),r<=m&&(s=m-1)}}(e,r,i||0,s||e.length-1,o||n)}}();var Gn=qn.exports,Bn={exports:{}};function Jn(t,n){if(!(this instanceof Jn))return new Jn(t,n);if(this.data=t||[],this.length=this.data.length,this.compare=n||Xn,this.length>0)for(var e=(this.length>>1)-1;e>=0;e--)this.D(e)}function Xn(t,n){return t<n?-1:t>n?1:0}Bn.exports=Jn,Bn.exports.default=Jn,Jn.prototype={push:function(t){this.data.push(t),this.length++,this.j(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this.D(0)),this.data.pop(),t}},peek:function(){return this.data[0]},j:function(t){for(var n=this.data,e=this.compare,r=n[t];t>0;){var i=t-1>>1,s=n[i];if(e(r,s)>=0)break;n[t]=s,t=i}n[t]=r},D:function(t){for(var n=this.data,e=this.compare,r=this.length>>1,i=n[t];t<r;){var s=1+(t<<1),o=s+1,a=n[s];if(o<this.length&&e(n[o],a)<0&&(s=o,a=n[o]),e(a,i)>=0)break;n[t]=a,t=s}n[t]=i}};var Yn=Bn.exports;\n/*!\n * Contains code from google filament\n * https://github.com/google/filament/\n * License Apache-2.0\n */const Zn=[],Kn=[],Qn=[],te=[];function ne(t,n,e){const r=mt(Kn,n,e);t=At(t,function(t,n,e,r,i,s,o,a,u,h){return t[0]=n,t[1]=e,t[2]=r,t[3]=i,t[4]=s,t[5]=o,t[6]=a,t[7]=u,t[8]=h,t}(Zn,e[0],e[1],e[2],...r,...n));if((t=function(t){return t[3]<0?Pt(t,t,-1):t}(t=St(t,t)))[3]<1/32767){t[3]=1/32767;const n=Math.sqrt(.9999999990686206);t[0]*=n,t[1]*=n,t[2]*=n}const i=e[3]>0?mt(Qn,e,n):mt(Qn,n,e);return yt(mt(te,e,n),i)<0&&Pt(t,t,-1),t}const ee=[];function re(t,n,e){const r=e||[];r.setLength&&r.setLength(t.length);const i=ee;i.length<t.length/3&&(i.length=t.length/3),i.fill(0,0,t.length/3),r.fill(0,0,t.length);for(let e=0;e<n.length/3;e++)ce(t,n[3*e],n[3*e+1],n[3*e+2],r,i);for(let t=0;t<r.length;t+=3){const n=i[t/3];0!==n&&(r[t]/=n,r[t+1]/=n,r[t+2]/=n)}return r}const ie=[],se=[],oe=[],ae=[],ue=[],he=[],le=[];function ce(t,n,e,r,i,s){ft(ae,t[3*n],t[3*n+1],t[3*n+2]),ft(ue,t[3*e],t[3*e+1],t[3*e+2]),ft(he,t[3*r],t[3*r+1],t[3*r+2]);const o=gt(ie,he,ue),a=gt(se,ae,ue),u=mt(oe,o,a);pt(le,u),i[3*n]+=le[0],i[3*e]+=le[0],i[3*r]+=le[0],i[3*n+1]+=le[1],i[3*e+1]+=le[1],i[3*r+1]+=le[1],i[3*n+2]+=le[2],i[3*e+2]+=le[2],i[3*r+2]+=le[2],s[n]+=1,s[e]+=1,s[r]+=1}\n/*!\n * Contains code from THREE.JS\n * https://github.com/mrdoob/three.js/\n * License MIT\n * \n * Generate tangents per vertex.\n */function fe(t,n,e){return t[0]=n[e],t[1]=n[e+1],t[2]=n[e+2],t}function de(t,n,e){return t[0]=n[e],t[1]=n[e+1],t}var pe={exports:{}};function ye(t,n,e){e=e||2;var r,i,s,o,a,u,h,l=n&&n.length,c=l?n[0]*e:t.length,f=me(t,0,c,e,!0),d=[];if(!f||f.next===f.prev)return d;if(l&&(f=function(t,n,e,r){var i,s,o,a,u,h=[];for(i=0,s=n.length;i<s;i++)o=n[i]*r,a=i<s-1?n[i+1]*r:t.length,(u=me(t,o,a,r,!1))===u.next&&(u.steiner=!0),h.push(Se(u));for(h.sort(Fe),i=0;i<h.length;i++)e=Ae(h[i],e);return e}(t,n,f,e)),t.length>80*e){r=s=t[0],i=o=t[1];for(var p=e;p<c;p+=e)(a=t[p])<r&&(r=a),(u=t[p+1])<i&&(i=u),a>s&&(s=a),u>o&&(o=u);h=0!==(h=Math.max(s-r,o-i))?32767/h:0}return ve(f,d,e,r,i,h,0),d}function me(t,n,e,r,i){var s,o;if(i===Le(t,n,e,r)>0)for(s=n;s<e;s+=r)o=je(s,t[s],t[s+1],o);else for(s=e-r;s>=n;s-=r)o=je(s,t[s],t[s+1],o);return o&&Ie(o,o.next)&&(Ue(o),o=o.next),o}function ge(t,n){if(!t)return t;n||(n=t);var e,r=t;do{if(e=!1,r.steiner||!Ie(r,r.next)&&0!==Ee(r.prev,r,r.next))r=r.next;else{if(Ue(r),(r=n=r.prev)===r.next)break;e=!0}}while(e||r!==n);return n}function ve(t,n,e,r,i,s,o){if(t){!o&&s&&function(t,n,e,r){var i=t;do{0===i.z&&(i.z=Pe(i.x,i.y,n,e,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var n,e,r,i,s,o,a,u,h=1;do{for(e=t,t=null,s=null,o=0;e;){for(o++,r=e,a=0,n=0;n<h&&(a++,r=r.nextZ);n++);for(u=h;a>0||u>0&&r;)0!==a&&(0===u||!r||e.z<=r.z)?(i=e,e=e.nextZ,a--):(i=r,r=r.nextZ,u--),s?s.nextZ=i:t=i,i.prevZ=s,s=i;e=r}s.nextZ=null,h*=2}while(o>1)}(i)}(t,r,i,s);for(var a,u,h=t;t.prev!==t.next;)if(a=t.prev,u=t.next,s?we(t,r,i,s):be(t))n.push(a.i/e|0),n.push(t.i/e|0),n.push(u.i/e|0),Ue(t),t=u.next,h=u.next;else if((t=u)===h){o?1===o?ve(t=Me(ge(t),n,e),n,e,r,i,s,2):2===o&&xe(t,n,e,r,i,s):ve(ge(t),n,e,r,i,s,1);break}}}function be(t){var n=t.prev,e=t,r=t.next;if(Ee(n,e,r)>=0)return!1;for(var i=n.x,s=e.x,o=r.x,a=n.y,u=e.y,h=r.y,l=i<s?i<o?i:o:s<o?s:o,c=a<u?a<h?a:h:u<h?u:h,f=i>s?i>o?i:o:s>o?s:o,d=a>u?a>h?a:h:u>h?u:h,p=r.next;p!==n;){if(p.x>=l&&p.x<=f&&p.y>=c&&p.y<=d&&_e(i,a,s,u,o,h,p.x,p.y)&&Ee(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function we(t,n,e,r){var i=t.prev,s=t,o=t.next;if(Ee(i,s,o)>=0)return!1;for(var a=i.x,u=s.x,h=o.x,l=i.y,c=s.y,f=o.y,d=a<u?a<h?a:h:u<h?u:h,p=l<c?l<f?l:f:c<f?c:f,y=a>u?a>h?a:h:u>h?u:h,m=l>c?l>f?l:f:c>f?c:f,g=Pe(d,p,n,e,r),v=Pe(y,m,n,e,r),b=t.prevZ,w=t.nextZ;b&&b.z>=g&&w&&w.z<=v;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&_e(a,l,u,c,h,f,b.x,b.y)&&Ee(b.prev,b,b.next)>=0)return!1;if(b=b.prevZ,w.x>=d&&w.x<=y&&w.y>=p&&w.y<=m&&w!==i&&w!==o&&_e(a,l,u,c,h,f,w.x,w.y)&&Ee(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;b&&b.z>=g;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&_e(a,l,u,c,h,f,b.x,b.y)&&Ee(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;w&&w.z<=v;){if(w.x>=d&&w.x<=y&&w.y>=p&&w.y<=m&&w!==i&&w!==o&&_e(a,l,u,c,h,f,w.x,w.y)&&Ee(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function Me(t,n,e){var r=t;do{var i=r.prev,s=r.next.next;!Ie(i,s)&&$e(i,r,r.next,s)&&Te(i,s)&&Te(s,i)&&(n.push(i.i/e|0),n.push(r.i/e|0),n.push(s.i/e|0),Ue(r),Ue(r.next),r=t=s),r=r.next}while(r!==t);return ge(r)}function xe(t,n,e,r,i,s){var o=t;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&Oe(o,a)){var u=De(o,a);return o=ge(o,o.next),u=ge(u,u.next),ve(o,n,e,r,i,s,0),void ve(u,n,e,r,i,s,0)}a=a.next}o=o.next}while(o!==t)}function Fe(t,n){return t.x-n.x}function Ae(t,n){var e=function(t,n){var e,r=n,i=t.x,s=t.y,o=-1/0;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){var a=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=i&&a>o&&(o=a,e=r.x<r.next.x?r:r.next,a===i))return e}r=r.next}while(r!==n);if(!e)return null;var u,h=e,l=e.x,c=e.y,f=1/0;r=e;do{i>=r.x&&r.x>=l&&i!==r.x&&_e(s<c?i:o,s,l,c,s<c?o:i,s,r.x,r.y)&&(u=Math.abs(s-r.y)/(i-r.x),Te(r,t)&&(u<f||u===f&&(r.x>e.x||r.x===e.x&&ke(e,r)))&&(e=r,f=u)),r=r.next}while(r!==h);return e}(t,n);if(!e)return n;var r=De(e,t);return ge(r,r.next),ge(e,e.next)}function ke(t,n){return Ee(t.prev,t,n.prev)<0&&Ee(n.next,t,t.next)<0}function Pe(t,n,e,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-e)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-r)*i|0)|n<<8))|n<<4))|n<<2))|n<<1))<<1}function Se(t){var n=t,e=t;do{(n.x<e.x||n.x===e.x&&n.y<e.y)&&(e=n),n=n.next}while(n!==t);return e}function _e(t,n,e,r,i,s,o,a){return(i-o)*(n-a)>=(t-o)*(s-a)&&(t-o)*(r-a)>=(e-o)*(n-a)&&(e-o)*(s-a)>=(i-o)*(r-a)}function Oe(t,n){return t.next.i!==n.i&&t.prev.i!==n.i&&!function(t,n){var e=t;do{if(e.i!==t.i&&e.next.i!==t.i&&e.i!==n.i&&e.next.i!==n.i&&$e(e,e.next,t,n))return!0;e=e.next}while(e!==t);return!1}(t,n)&&(Te(t,n)&&Te(n,t)&&function(t,n){var e=t,r=!1,i=(t.x+n.x)/2,s=(t.y+n.y)/2;do{e.y>s!=e.next.y>s&&e.next.y!==e.y&&i<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(r=!r),e=e.next}while(e!==t);return r}(t,n)&&(Ee(t.prev,t,n.prev)||Ee(t,n.prev,n))||Ie(t,n)&&Ee(t.prev,t,t.next)>0&&Ee(n.prev,n,n.next)>0)}function Ee(t,n,e){return(n.y-t.y)*(e.x-n.x)-(n.x-t.x)*(e.y-n.y)}function Ie(t,n){return t.x===n.x&&t.y===n.y}function $e(t,n,e,r){var i=Ce(Ee(t,n,e)),s=Ce(Ee(t,n,r)),o=Ce(Ee(e,r,t)),a=Ce(Ee(e,r,n));return i!==s&&o!==a||(!(0!==i||!ze(t,e,n))||(!(0!==s||!ze(t,r,n))||(!(0!==o||!ze(e,t,r))||!(0!==a||!ze(e,n,r)))))}function ze(t,n,e){return n.x<=Math.max(t.x,e.x)&&n.x>=Math.min(t.x,e.x)&&n.y<=Math.max(t.y,e.y)&&n.y>=Math.min(t.y,e.y)}function Ce(t){return t>0?1:t<0?-1:0}function Te(t,n){return Ee(t.prev,t,t.next)<0?Ee(t,n,t.next)>=0&&Ee(t,t.prev,n)>=0:Ee(t,n,t.prev)<0||Ee(t,t.next,n)<0}function De(t,n){var e=new Ne(t.i,t.x,t.y),r=new Ne(n.i,n.x,n.y),i=t.next,s=n.prev;return t.next=n,n.prev=t,e.next=i,i.prev=e,r.next=e,e.prev=r,s.next=r,r.prev=s,r}function je(t,n,e,r){var i=new Ne(t,n,e);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Ue(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Ne(t,n,e){this.i=t,this.x=n,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Le(t,n,e,r){for(var i=0,s=n,o=e-r;s<e;s+=r)i+=(t[o]-t[s])*(t[s+1]+t[o+1]),o=s;return i}pe.exports=ye,pe.exports.default=ye,ye.deviation=function(t,n,e,r){var i=n&&n.length,s=i?n[0]*e:t.length,o=Math.abs(Le(t,0,s,e));if(i)for(var a=0,u=n.length;a<u;a++){var h=n[a]*e,l=a<u-1?n[a+1]*e:t.length;o-=Math.abs(Le(t,h,l,e))}var c=0;for(a=0;a<r.length;a+=3){var f=r[a]*e,d=r[a+1]*e,p=r[a+2]*e;c+=Math.abs((t[f]-t[p])*(t[d+1]-t[f+1])-(t[f]-t[d])*(t[p+1]-t[f+1]))}return 0===o&&0===c?0:Math.abs((c-o)/o)},ye.flatten=function(t){for(var n=t[0][0].length,e={vertices:[],holes:[],dimensions:n},r=0,i=0;i<t.length;i++){for(var s=0;s<t[i].length;s++)for(var o=0;o<n;o++)e.vertices.push(t[i][s][o]);i>0&&(r+=t[i-1].length,e.holes.push(r))}return e};var Ve=pe.exports;\n/*!\n * @maptalks/vector-packer v0.88.0\n * LICENSE : UNLICENSED\n * (c) 2016-2023 maptalks.com\n */const Re={Point:1,LineString:2,Polygon:3,MultiPoint:4,MultiLineString:5,MultiPolygon:6};function He(t,n={}){var e=[];if("FeatureCollection"===t.type)for(var r=0;r<t.features.length;r++)We(e,t.features[r],n,r);else We(e,"Feature"===t.type?t:{geometry:t},n);return e}function We(t,n,e,r){if(n.geometry&&n.geometry.geometry){var i=n.geometry.coordinates,s=n.geometry.type,o=[],a=n.id;if(e.promoteId?a=n.properties[e.promoteId]:e.generateId&&(a=r||0),"Point"===s)qe(i,o);else if("MultiPoint"===s)for(var u=0;u<i.length;u++)qe(i[u],o);else if("LineString"===s)Be([i],o);else if("MultiLineString"===s){if(e.lineMetrics){for(u=0;u<i.length;u++)Ge(i[u],o=[]),t.push(Je(a,"LineString",o,n.properties));return}Be(i,o)}else if("Polygon"===s)Be(i,o);else{if("MultiPolygon"!==s){if("GeometryCollection"===s){for(u=0;u<n.geometry.geometries.length;u++)We(t,{id:a,geometry:n.geometry.geometries[u],properties:n.properties},e,r);return}return void console.warn(`Input data type(${s}) is not a valid GeoJSON geometry type.`)}for(u=0;u<i.length;u++){var h=[];Be(i[u],h),o.push(h)}}t.push(Je(a,s,o,n.properties))}}function qe(t,n){const e=new Ut(t[0],t[1]);e.z=100*(t[2]||0),n.push([e])}function Ge(t,n){for(let e=0;e<t.length;e++){const r=new Ut(t[e][0],t[e][1]);r.z=100*(t[e][2]||0),n.push(r)}}function Be(t,n,e,r){for(var i=0;i<t.length;i++){var s=[];Ge(t[i],s),n.push(s)}}function Je(t,n,e,r){return{id:void 0===t?null:t,type:Re[n],geometry:e,properties:r}}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */function Xe(t,{width:n,height:e},r,i){if(i){if(i.length!==n*e*r)throw new RangeError("mismatched image size")}else i=new Uint8Array(n*e*r);return t.width=n,t.height=e,t.data=i,t}function Ye(t,{width:n,height:e},r){if(n===t.width&&e===t.height)return;const i=Xe({},{width:n,height:e},r);Ze(t,i,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,n),height:Math.min(t.height,e)},r),t.width=n,t.height=e,t.data=i.data}function Ze(t,n,e,r,i,s){if(0===i.width||0===i.height)return n;if(i.width>t.width||i.height>t.height||e.x>t.width-i.width||e.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>n.width||i.height>n.height||r.x>n.width-i.width||r.y>n.height-i.height)throw new RangeError("out of range destination coordinates for image copy");const o=t.data,a=n.data;if(o===a)return n;for(let u=0;u<i.height;u++){const h=((e.y+u)*t.width+e.x)*s,l=((r.y+u)*n.width+r.x)*s;for(let t=0;t<i.width*s;t++)a[l+t]=o[h+t]}return n}class Ke{constructor(t,n){Xe(this,t,1,n)}resize(t){Ye(this,t,1)}clone(){return new Ke({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Ze(t,n,e,r,i,1)}}class Qe{constructor(t,n){Xe(this,t,4,n)}resize(t){Ye(this,t,4)}clone(){return new Qe({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Ze(t,n,e,r,i,4)}}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */class tr{constructor(t,n,{pixelRatio:e}){this.paddedRect=t,this.pixelRatio=e||1,this.padding=n}get tl(){return[this.paddedRect.x+this.padding,this.paddedRect.y+this.padding]}get br(){return[this.paddedRect.x+this.paddedRect.w-this.padding,this.paddedRect.y+this.paddedRect.h-this.padding]}get displaySize(){return[(this.paddedRect.w-2*this.padding)/this.pixelRatio,(this.paddedRect.h-2*this.padding)/this.pixelRatio]}}class nr{constructor(t){this.glyphMap=t,this.build()}build(){const t=this.glyphMap,n=Object.keys(t).length,e={},r=new Lt(0,0,{autoResize:!0}),i=[],s=n>1?1:0;for(const n in t){const r=t[n],o={x:0,y:0,w:r.data.width+2*s,h:r.data.height+2*s};i.push(o),e[n]=new tr(o,s,r)}if(r.pack(i,{inPlace:!0}),!er(r.w)||!er(r.h)){const t=rr(r.w),n=rr(r.h);r.resize(t,n)}const o=new Qe({width:r.w,height:r.h});for(const n in t){const r=t[n],i=e[n].paddedRect;Qe.copy(r.data,o,{x:0,y:0},{x:i.x+s,y:i.y+s},r.data)}this.image=o,this.positions=e}}function er(t){return 0==(t&t-1)&&0!==t}function rr(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n * TODO 升级为potpack\n */class ir{constructor(t){this.glyphMap=t,this.build()}build(){const t=this.glyphMap,n={},e=new Lt(0,0,{autoResize:!0}),r=[];for(const e in t){const i=t[e],s=n[e]={};for(const t in i){const n=i[+t];if(!n||0===n.bitmap.width||0===n.bitmap.height)continue;const e={x:0,y:0,w:n.bitmap.width+2,h:n.bitmap.height+2};r.push(e),s[t]={rect:e,metrics:n.metrics}}}e.pack(r,{inPlace:!0});const i=new Ke({width:e.w,height:e.h});for(const e in t){const r=t[e];for(const t in r){const s=r[+t];if(!s||0===s.bitmap.width||0===s.bitmap.height)continue;const o=n[e][t].rect;Ke.copy(s.bitmap,i,{x:0,y:0},{x:o.x+1,y:o.y+1},s.bitmap)}}this.image=i,this.positions=n}}function sr(t){return t<65536?Uint16Array:Uint32Array}function or(t){return(t=Math.abs(t))<128?Int8Array:t<32768?Int16Array:Float32Array}function ar(t){return t<256?Uint8Array:t<65536?Uint16Array:t<Math.pow(2,32)?Uint32Array:Float64Array}function ur(t,n){const e=new n(t.length),r=e.length;for(let n=0;n<r;n++)e[n]=t[n];return e}function hr(t){const n=t.type,e=[];if(1===n||4===n)for(let n=0;n<t.geometry.length;n++)qe(t.geometry[n],e);else if(2===n)Be(t.geometry,e);else if(3===n)Be(t.geometry,e);else if(5===n)Be(t.geometry,e);else if(6===n)for(let n=0;n<t.geometry.length;n++){const r=[];Be(t.geometry[n],r),e.push(r)}return t.geometry=e,t}function lr(t){for(let n=1;n<arguments.length;n++){const e=arguments[n];for(const n in e)t[n]=e[n]}return t}function cr(t){return null==t}function fr(t){return"number"==typeof t&&!isNaN(t)}function dr(t){return"object"==typeof t&&!!t}function pr(t){return!cr(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function yr(t){return!cr(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}const mr=Object.prototype.hasOwnProperty;function gr(t,n){return mr.call(t,n)}const vr=Math.PI/180;function br(t){return t&&d(t)&&t.property}function wr(t){const{centimeterToPoint:n,tileRatio:e}=t;return n*e}function Mr(t){return"centimeter"===t||"cm"===t?1:"millimeter"===t||"mm"===t?.1:100}const xr={};function Fr(t,n){if(!Array.isArray(n)){if(n&&void 0!==n.r&&void 0!==n.g&&void 0!==n.b)return t[0]=255*n.r,t[1]=255*n.g,t[2]=255*n.b,t[3]=void 0!==n.a?255*n.a:255,t;n=xr[n]=xr[n]||zn(n).unitArray()}for(let e=0;e<n.length;e++)t[e]=255*n[e];return 3===n.length&&(t[3]=255),t}const Ar={textFill:1,textSize:1,textOpacity:1,markerWidth:1,markerHeight:1,markerOpacity:1,markerDx:1,markerDy:1,lineWidth:1,lineColor:1,lineOpacity:1,polygonFill:1,polygonOpacity:1},kr={textName:1,markerTextFitPadding:1,markerTextFit:1,lineGradientProperty:1};var Pr=Object.freeze({__proto__:null,now:function(){return Date.now()},extend:lr,isNil:cr,isNumber:fr,isInteger:function(t){return(0|t)===t},isObject:dr,isString:pr,isFunction:yr,hasOwn:gr,join:function(t,n){return t.join?t.join(n||","):Array.prototype.join.call(t,n||",")},toRadian:function(t){return t*vr},toDegree:function(t){return t/vr},evaluate:function(t,n,e){return yr(t)?t(void 0!==e?e:null,n):t},isFnTypeSymbol:br,getAltitudeToLocal:wr,getTubeSizeScale:Mr,normalizeColor:Fr,checkIfIdentityZoomDependent:function(t,n,e){if(Array.isArray(e)||(e=Object.values(e)),!e||!e.length)return!1;if(!Ar[t])return!1;for(let t=0;t<e.length;t++){const r=e[t]&&(e[t].feature||e[t]);if(!r)continue;const i=r.properties&&r.properties[n];if(i&&d(i)&&!p(i).isZoomConstant)return!0}return!1},checkIfZoomFnTypeSymbol:function(t){return!!Ar[t]||!!kr[t]}});function Sr(t){let n=0;for(let e,r,i=0,s=t.length,o=s-1;i<s;o=i++)if(e=t[i],r=t[o],void 0!==e.x){if(e.z||r.z)return 1;n+=(r.x-e.x)*(e.y+r.y)}else{if(e[2]||r[2])return 1;n+=(r[0]-e[0])*(e[1]+r[1])}return n}function _r(t,n,e,r,i){const s=t[n*r],o=t[n*r+1],a=t[e*r],u=t[e*r+1];return s===a&&(s<0||s>i)&&o!==u||o===u&&(o<0||o>i)&&s!==a}function Or(t,n,e){let r=e;return n&&t&&(r=+t[n]),isNaN(r)&&(r=e||0),100*r}function Er(t,n,e,r,i,s,o){n||0===n||(n=1);const a=Or(t.properties,e,r),u=a*n;let h=(s?100*s:0)||a;return i?h=Or(t.properties,i,s):o&&(h=a-Or(t.properties,o,s)),h*=n,{altitude:u,height:h}}function Ir(t,n){return n<1/0&&(t.x<0||t.x>n||t.y<0||t.y>n)}function $r(t){return null==t}function zr(t,n,e){if(t===e||t===n)return t;const r=e-n;return((t-n)%r+r)%r+n}function Cr(t,n){if(!n)return null;const e=new Map;for(let r=0;r<n.length;r++){const i=n[r],s=t[i];let o=e.get(s);o||(o=[],e.set(s,o)),o.push(i)}return e}class Tr{constructor(t,n,e,r){this.feature=t,this.symbol=n,this.fnTypes=e,this.options=r}getPolygonResource(){let t=this.symbol.polygonPatternFile;const{polygonPatternFileFn:n}=this.fnTypes;return this.U(t,n)}getLineResource(){let t=this.symbol.linePatternFile;const{linePatternFileFn:n}=this.fnTypes;return this.U(t,n)}U(t,n){return n&&(t=n(this.options.zoom,this.feature.properties)),t}}function Dr(t,n,e,r){const i=Math.abs(r)>>15,s=i>>1,o=i%2;let a=r%Math.pow(2,15);const u=n+(s<<14)*Math.sign(n),h=e+(o<<14)*Math.sign(e);return t[0]=u,t[1]=h,a=Math.round(a),t[2]=0===a?r<0?-1:0:a,t}const jr=Math.pow(2,14),Ur=Math.pow(2,15);\n/*!\n * a compact version of mapbox-gl-style-spec\n * based on mapbox-gl-style-spec@13.28.0\n * https://github.com/mapbox/mapbox-gl-js/tree/main/src/style-spec\n * LICENSE : ISC\n */var Nr,Lr,Vr="undefined"!=typeof undefinedThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof undefined?global:"undefined"!=typeof self?self:{},Rr={exports:{}};function Hr(t,...n){for(const e of n)for(const n in e)t[n]=e[n];return t}\n/*! https://mths.be/punycode v1.3.2 by @mathias */Nr=Rr,Lr=Rr.exports,function(t){var n=Lr&&!Lr.nodeType&&Lr,e=Nr&&!Nr.nodeType&&Nr,r="object"==typeof Vr&&Vr;r.global!==r&&r.window!==r&&r.self!==r||(t=r);var i,s,o=2147483647,a=/^xn--/,u=/[^\\x20-\\x7E]/,h=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,f=String.fromCharCode;function d(t){throw RangeError(l[t])}function p(t,n){for(var e=t.length,r=[];e--;)r[e]=n(t[e]);return r}function y(t,n){var e=t.split("@"),r="";return e.length>1&&(r=e[0]+"@",t=e[1]),r+p((t=t.replace(h,".")).split("."),n).join(".")}function m(t){for(var n,e,r=[],i=0,s=t.length;i<s;)(n=t.charCodeAt(i++))>=55296&&n<=56319&&i<s?56320==(64512&(e=t.charCodeAt(i++)))?r.push(((1023&n)<<10)+(1023&e)+65536):(r.push(n),i--):r.push(n);return r}function g(t){return p(t,(function(t){var n="";return t>65535&&(n+=f((t-=65536)>>>10&1023|55296),t=56320|1023&t),n+f(t)})).join("")}function v(t,n){return t+22+75*(t<26)-((0!=n)<<5)}function b(t,n,e){var r=0;for(t=e?c(t/700):t>>1,t+=c(t/n);t>455;r+=36)t=c(t/35);return c(r+36*t/(t+38))}function w(t){var n,e,r,i,s,a,u,h,l,f,p,y=[],m=t.length,v=0,w=128,M=72;for((e=t.lastIndexOf("-"))<0&&(e=0),r=0;r<e;++r)t.charCodeAt(r)>=128&&d("not-basic"),y.push(t.charCodeAt(r));for(i=e>0?e+1:0;i<m;){for(s=v,a=1,u=36;i>=m&&d("invalid-input"),((h=(p=t.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||h>c((o-v)/a))&&d("overflow"),v+=h*a,!(h<(l=u<=M?1:u>=M+26?26:u-M));u+=36)a>c(o/(f=36-l))&&d("overflow"),a*=f;M=b(v-s,n=y.length+1,0==s),c(v/n)>o-w&&d("overflow"),w+=c(v/n),v%=n,y.splice(v++,0,w)}return g(y)}function M(t){var n,e,r,i,s,a,u,h,l,p,y,g,w,M,x,F=[];for(g=(t=m(t)).length,n=128,e=0,s=72,a=0;a<g;++a)(y=t[a])<128&&F.push(f(y));for(r=i=F.length,i&&F.push("-");r<g;){for(u=o,a=0;a<g;++a)(y=t[a])>=n&&y<u&&(u=y);for(u-n>c((o-e)/(w=r+1))&&d("overflow"),e+=(u-n)*w,n=u,a=0;a<g;++a)if((y=t[a])<n&&++e>o&&d("overflow"),y==n){for(h=e,l=36;!(h<(p=l<=s?1:l>=s+26?26:l-s));l+=36)F.push(f(v(p+(x=h-p)%(M=36-p),0))),h=c(x/M);F.push(f(v(h,0))),s=b(e,w,r==i),e=0,++r}++e,++n}return F.join("")}if(i={version:"1.3.2",ucs2:{decode:m,encode:g},decode:w,encode:M,toASCII:function(t){return y(t,(function(t){return u.test(t)?"xn--"+M(t):t}))},toUnicode:function(t){return y(t,(function(t){return a.test(t)?w(t.slice(4).toLowerCase()):t}))}},n&&e)if(Nr.exports==n)e.exports=i;else for(s in i)i.hasOwnProperty(s)&&(n[s]=i[s]);else t.punycode=i}(Vr);class Wr extends Error{constructor(t,n){super(n),this.message=n,this.key=t}}var qr=Wr;class Gr{constructor(t,n=[]){this.parent=t,this.bindings={};for(const[t,e]of n)this.bindings[t]=e}concat(t){return new Gr(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(t+" not found in scope.")}has(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)}}var Br=Gr;const Jr={kind:"null"},Xr={kind:"number"},Yr={kind:"string"},Zr={kind:"boolean"},Kr={kind:"color"},Qr={kind:"object"},ti={kind:"value"},ni={kind:"collator"},ei={kind:"formatted"},ri={kind:"resolvedImage"};function ii(t,n){return{kind:"array",itemType:t,N:n}}function si(t){if("array"===t.kind){const n=si(t.itemType);return"number"==typeof t.N?`array<${n}, ${t.N}>`:"value"===t.itemType.kind?"array":`array<${n}>`}return t.kind}const oi=[Jr,Xr,Yr,Zr,Kr,ei,Qr,ii(ti),ri];function ai(t,n){if("error"===n.kind)return null;if("array"===t.kind){if("array"===n.kind&&(0===n.N&&"value"===n.itemType.kind||!ai(t.itemType,n.itemType))&&("number"!=typeof t.N||t.N===n.N))return null}else{if(t.kind===n.kind)return null;if("value"===t.kind)for(const t of oi)if(!ai(t,n))return null}return`Expected ${si(t)} but found ${si(n)} instead.`}function ui(t,n){return n.some(n=>n.kind===t.kind)}function hi(t,n){return n.some(n=>"null"===n?null===t:"array"===n?Array.isArray(t):"object"===n?t&&!Array.isArray(t)&&"object"==typeof t:n===typeof t)}var li,ci={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 fi(t){return(t=Math.round(t))<0?0:t>255?255:t}function di(t){return fi("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function pi(t){return function(t){return t<0?0:t>1?1:t}("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function yi(t,n,e){return e<0?e+=1:e>1&&(e-=1),6*e<1?t+(n-t)*e*6:2*e<1?n:3*e<2?t+(n-t)*(2/3-e)*6:t}try{li={}.parseCSSColor=function(t){var n,e=t.replace(/ /g,"").toLowerCase();if(e in ci)return ci[e].slice();if("#"===e[0])return 4===e.length?(n=parseInt(e.substr(1),16))>=0&&n<=4095?[(3840&n)>>4|(3840&n)>>8,240&n|(240&n)>>4,15&n|(15&n)<<4,1]:null:7===e.length&&(n=parseInt(e.substr(1),16))>=0&&n<=16777215?[(16711680&n)>>16,(65280&n)>>8,255&n,1]:null;var r=e.indexOf("("),i=e.indexOf(")");if(-1!==r&&i+1===e.length){var s=e.substr(0,r),o=e.substr(r+1,i-(r+1)).split(","),a=1;switch(s){case"rgba":if(4!==o.length)return null;a=pi(o.pop());case"rgb":return 3!==o.length?null:[di(o[0]),di(o[1]),di(o[2]),a];case"hsla":if(4!==o.length)return null;a=pi(o.pop());case"hsl":if(3!==o.length)return null;var u=(parseFloat(o[0])%360+360)%360/360,h=pi(o[1]),l=pi(o[2]),c=l<=.5?l*(h+1):l+h-l*h,f=2*l-c;return[fi(255*yi(f,c,u+1/3)),fi(255*yi(f,c,u)),fi(255*yi(f,c,u-1/3)),a];default:return null}}return null}}catch(t){}class mi{constructor(t,n,e,r=1){this.r=t,this.g=n,this.b=e,this.a=r}static parse(t){if(!t)return;if(t instanceof mi)return t;if("string"!=typeof t)return;const n=li(t);return n?new mi(n[0]/255*n[3],n[1]/255*n[3],n[2]/255*n[3],n[3]):void 0}toString(){const[t,n,e,r]=this.toArray();return`rgba(${Math.round(t)},${Math.round(n)},${Math.round(e)},${r})`}toArray(){const{r:t,g:n,b:e,a:r}=this;return 0===r?[0,0,0,0]:[255*t/r,255*n/r,255*e/r,r]}toArray01(){const{r:t,g:n,b:e,a:r}=this;return 0===r?[0,0,0,0]:[t/r,n/r,e/r,r]}toArray01PremultipliedAlpha(){const{r:t,g:n,b:e,a:r}=this;return[t,n,e,r]}}mi.black=new mi(0,0,0,1),mi.white=new mi(1,1,1,1),mi.transparent=new mi(0,0,0,0),mi.red=new mi(1,0,0,1),mi.blue=new mi(0,0,1,1);var gi=mi;class vi{constructor(t,n,e){this.sensitivity=t?n?"variant":"case":n?"accent":"base",this.locale=e,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,n){return this.collator.compare(t,n)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class bi{constructor(t,n,e,r,i){this.text=t.normalize?t.normalize():t,this.image=n,this.scale=e,this.fontStack=r,this.textColor=i}}class wi{constructor(t){this.sections=t}static fromString(t){return new wi([new bi(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(t=>0!==t.text.length||t.image&&0!==t.image.name.length)}static factory(t){return t instanceof wi?t:wi.fromString(t)}toString(){return 0===this.sections.length?"":this.sections.map(t=>t.text).join("")}serialize(){const t=["format"];for(const n of this.sections){if(n.image){t.push(["image",n.image.name]);continue}t.push(n.text);const e={};n.fontStack&&(e["text-font"]=["literal",n.fontStack.split(",")]),n.scale&&(e["font-scale"]=n.scale),n.textColor&&(e["text-color"]=["rgba"].concat(n.textColor.toArray())),t.push(e)}return t}}class Mi{constructor(t){this.name=t.name,this.available=t.available}toString(){return this.name}static fromString(t){return t?new Mi({name:t,available:!1}):null}serialize(){return["image",this.name]}}function xi(t,n,e,r){return"number"==typeof t&&t>=0&&t<=255&&"number"==typeof n&&n>=0&&n<=255&&"number"==typeof e&&e>=0&&e<=255?void 0===r||"number"==typeof r&&r>=0&&r<=1?null:`Invalid rgba value [${[t,n,e,r].join(", ")}]: \'a\' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof r?[t,n,e,r]:[t,n,e]).join(", ")}]: \'r\', \'g\', and \'b\' must be between 0 and 255.`}function Fi(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof gi)return!0;if(t instanceof vi)return!0;if(t instanceof wi)return!0;if(t instanceof Mi)return!0;if(Array.isArray(t)){for(const n of t)if(!Fi(n))return!1;return!0}if("object"==typeof t){for(const n in t)if(!Fi(t[n]))return!1;return!0}return!1}function Ai(t){if(null===t)return Jr;if("string"==typeof t)return Yr;if("boolean"==typeof t)return Zr;if("number"==typeof t)return Xr;if(t instanceof gi)return Kr;if(t instanceof vi)return ni;if(t instanceof wi)return ei;if(t instanceof Mi)return ri;if(Array.isArray(t)){const n=t.length;let e;for(const n of t){const t=Ai(n);if(e){if(e===t)continue;e=ti;break}e=t}return ii(e||ti,n)}return Qr}function ki(t){const n=typeof t;return null===t?"":"string"===n||"number"===n||"boolean"===n?String(t):t instanceof gi||t instanceof wi||t instanceof Mi?t.toString():JSON.stringify(t)}class Pi{constructor(t,n){this.type=t,this.value=n}static parse(t,n){if(2!==t.length)return n.error(`\'literal\' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Fi(t[1]))return n.error("invalid value");const e=t[1];let r=Ai(e);const i=n.expectedType;return"array"!==r.kind||0!==r.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(r=i),new Pi(r,e)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof gi?["rgba"].concat(this.value.toArray()):this.value instanceof wi?this.value.serialize():this.value}}var Si=Pi,_i=class{constructor(t){this.name="ExpressionEvaluationError",this.message=t}toJSON(){return this.message}};const Oi={string:Yr,number:Xr,boolean:Zr,object:Qr};class Ei{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");let e,r=1;const i=t[0];if("array"===i){let i,s;if(t.length>2){const e=t[1];if("string"!=typeof e||!(e in Oi)||"object"===e)return n.error(\'The item type argument of "array" must be one of string, number, boolean\',1);i=Oi[e],r++}else i=ti;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return n.error(\'The length argument to "array" must be a positive integer literal\',2);s=t[2],r++}e=ii(i,s)}else e=Oi[i];const s=[];for(;r<t.length;r++){const e=n.parse(t[r],r,ti);if(!e)return null;s.push(e)}return new Ei(e,s)}evaluate(t){for(let n=0;n<this.args.length;n++){const e=this.args[n].evaluate(t);if(!ai(this.type,Ai(e)))return e;if(n===this.args.length-1)throw new _i(`Expected value to be of type ${si(this.type)}, but found ${si(Ai(e))} instead.`)}return null}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){const t=this.type,n=[t.kind];if("array"===t.kind){const e=t.itemType;if("string"===e.kind||"number"===e.kind||"boolean"===e.kind){n.push(e.kind);const r=t.N;("number"==typeof r||this.args.length>1)&&n.push(r)}}return n.concat(this.args.map(t=>t.serialize()))}}var Ii=Ei;class $i{constructor(t){this.type=ei,this.sections=t}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");const e=t[1];if(!Array.isArray(e)&&"object"==typeof e)return n.error("First argument must be an image or text section.");const r=[];let i=!1;for(let e=1;e<=t.length-1;++e){const s=t[e];if(i&&"object"==typeof s&&!Array.isArray(s)){i=!1;let t=null;if(s["font-scale"]&&(t=n.parse(s["font-scale"],1,Xr),!t))return null;let e=null;if(s["text-font"]&&(e=n.parse(s["text-font"],1,ii(Yr)),!e))return null;let o=null;if(s["text-color"]&&(o=n.parse(s["text-color"],1,Kr),!o))return null;const a=r[r.length-1];a.scale=t,a.font=e,a.textColor=o}else{const s=n.parse(t[e],1,ti);if(!s)return null;const o=s.type.kind;if("string"!==o&&"value"!==o&&"null"!==o&&"resolvedImage"!==o)return n.error("Formatted text type must be \'string\', \'value\', \'image\' or \'null\'.");i=!0,r.push({content:s,scale:null,font:null,textColor:null})}}return new $i(r)}evaluate(t){return new wi(this.sections.map(n=>{const e=n.content.evaluate(t);return Ai(e)===ri?new bi("",e,null,null,null):new bi(ki(e),null,n.scale?n.scale.evaluate(t):null,n.font?n.font.evaluate(t).join(","):null,n.textColor?n.textColor.evaluate(t):null)}))}eachChild(t){for(const n of this.sections)t(n.content),n.scale&&t(n.scale),n.font&&t(n.font),n.textColor&&t(n.textColor)}outputDefined(){return!1}serialize(){const t=["format"];for(const n of this.sections){t.push(n.content.serialize());const e={};n.scale&&(e["font-scale"]=n.scale.serialize()),n.font&&(e["text-font"]=n.font.serialize()),n.textColor&&(e["text-color"]=n.textColor.serialize()),t.push(e)}return t}}class zi{constructor(t){this.type=ri,this.input=t}static parse(t,n){if(2!==t.length)return n.error("Expected two arguments.");const e=n.parse(t[1],1,Yr);return e?new zi(e):n.error("No image name provided.")}evaluate(t){const n=this.input.evaluate(t),e=Mi.fromString(n);return e&&t.availableImages&&(e.available=t.availableImages.indexOf(n)>-1),e}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const Ci={"to-boolean":Zr,"to-color":Kr,"to-number":Xr,"to-string":Yr};class Ti{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");const e=t[0];if(("to-boolean"===e||"to-string"===e)&&2!==t.length)return n.error("Expected one argument.");const r=Ci[e],i=[];for(let e=1;e<t.length;e++){const r=n.parse(t[e],e,ti);if(!r)return null;i.push(r)}return new Ti(r,i)}evaluate(t){if("boolean"===this.type.kind)return Boolean(this.args[0].evaluate(t));if("color"===this.type.kind){let n,e;for(const r of this.args){if(n=r.evaluate(t),e=null,n instanceof gi)return n;if("string"==typeof n){const e=t.parseColor(n);if(e)return e}else if(Array.isArray(n)&&(e=n.length<3||n.length>4?`Invalid rbga value ${JSON.stringify(n)}: expected an array containing either three or four numeric values.`:xi(n[0],n[1],n[2],n[3]),!e))return new gi(n[0]/255,n[1]/255,n[2]/255,n[3])}throw new _i(e||`Could not parse color from value \'${"string"==typeof n?n:String(JSON.stringify(n))}\'`)}if("number"===this.type.kind){let n=null;for(const e of this.args){if(n=e.evaluate(t),null===n)return 0;const r=Number(n);if(!isNaN(r))return r}throw new _i(`Could not convert ${JSON.stringify(n)} to number.`)}return"formatted"===this.type.kind?wi.fromString(ki(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?Mi.fromString(ki(this.args[0].evaluate(t))):ki(this.args[0].evaluate(t))}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){if("formatted"===this.type.kind)return new $i([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new zi(this.args[0]).serialize();const t=["to-"+this.type.kind];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Di=Ti;const ji=["Unknown","Point","LineString","Polygon"];var Ui=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this.L={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null}id(){return this.feature&&void 0!==this.feature.id?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?ji[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const t=this.featureDistanceData.center,n=this.featureDistanceData.scale,{x:e,y:r}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(e*n-t[0])+this.featureDistanceData.bearing[1]*(r*n-t[1])}return 0}parseColor(t){let n=this.L[t];return n||(n=this.L[t]=gi.parse(t)),n}};class Ni{constructor(t,n,e,r){this.name=t,this.type=n,this.V=e,this.args=r}evaluate(t){return this.V(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(t=>t.serialize()))}static parse(t,n){const e=t[0],r=Ni.definitions[e];if(!r)return n.error(`Unknown expression "${e}". If you wanted a literal array, use ["literal", [...]].`,0);const i=Array.isArray(r)?r[0]:r.type,s=Array.isArray(r)?[[r[1],r[2]]]:r.overloads,o=s.filter(([n])=>!Array.isArray(n)||n.length===t.length-1);let a=null;for(const[r,s]of o){a=new cs(n.registry,n.path,null,n.scope);const o=[];let u=!1;for(let n=1;n<t.length;n++){const e=t[n],i=Array.isArray(r)?r[n-1]:r.type,s=a.parse(e,1+o.length,i);if(!s){u=!0;break}o.push(s)}if(!u)if(Array.isArray(r)&&r.length!==o.length)a.error(`Expected ${r.length} arguments, but found ${o.length} instead.`);else{for(let t=0;t<o.length;t++){const n=Array.isArray(r)?r[t]:r.type,e=o[t];a.concat(t+1).checkSubtype(n,e.type)}if(0===a.errors.length)return new Ni(e,i,s,o)}}if(1===o.length)n.errors.push(...a.errors);else{const e=(o.length?o:s).map(([t])=>{return n=t,Array.isArray(n)?`(${n.map(si).join(", ")})`:`(${si(n.type)}...)`;var n}).join(" | "),r=[];for(let e=1;e<t.length;e++){const i=n.parse(t[e],1+r.length);if(!i)return null;r.push(si(i.type))}n.error(`Expected arguments of type ${e}, but found (${r.join(", ")}) instead.`)}return null}static register(t,n){Ni.definitions=n;for(const e in n)t[e]=Ni}}var Li=Ni;class Vi{constructor(t,n,e){this.type=ni,this.locale=e,this.caseSensitive=t,this.diacriticSensitive=n}static parse(t,n){if(2!==t.length)return n.error("Expected one argument.");const e=t[1];if("object"!=typeof e||Array.isArray(e))return n.error("Collator options argument must be an object.");const r=n.parse(void 0!==e["case-sensitive"]&&e["case-sensitive"],1,Zr);if(!r)return null;const i=n.parse(void 0!==e["diacritic-sensitive"]&&e["diacritic-sensitive"],1,Zr);if(!i)return null;let s=null;return e.locale&&(s=n.parse(e.locale,1,Yr),!s)?null:new Vi(r,i,s)}evaluate(t){return new vi(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}serialize(){const t={};return t["case-sensitive"]=this.caseSensitive.serialize(),t["diacritic-sensitive"]=this.diacriticSensitive.serialize(),this.locale&&(t.locale=this.locale.serialize()),["collator",t]}}function Ri(t,n){t[0]=Math.min(t[0],n[0]),t[1]=Math.min(t[1],n[1]),t[2]=Math.max(t[2],n[0]),t[3]=Math.max(t[3],n[1])}function Hi(t,n){return!(t[0]<=n[0]||t[2]>=n[2]||t[1]<=n[1]||t[3]>=n[3])}function Wi(t,n){const e=(180+t[0])/360,r=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,n.z);return[Math.round(e*i*8192),Math.round(r*i*8192)]}function qi(t,n,e){const r=t[0]-n[0],i=t[1]-n[1],s=t[0]-e[0],o=t[1]-e[1];return r*o-s*i==0&&r*s<=0&&i*o<=0}function Gi(t,n){let e=!1;for(let o=0,a=n.length;o<a;o++){const a=n[o];for(let n=0,o=a.length;n<o-1;n++){if(qi(t,a[n],a[n+1]))return!1;(i=a[n])[1]>(r=t)[1]!=(s=a[n+1])[1]>r[1]&&r[0]<(s[0]-i[0])*(r[1]-i[1])/(s[1]-i[1])+i[0]&&(e=!e)}}var r,i,s;return e}function Bi(t,n){for(let e=0;e<n.length;e++)if(Gi(t,n[e]))return!0;return!1}function Ji(t,n,e,r){const i=r[0]-e[0],s=r[1]-e[1],o=(t[0]-e[0])*s-i*(t[1]-e[1]),a=(n[0]-e[0])*s-i*(n[1]-e[1]);return o>0&&a<0||o<0&&a>0}function Xi(t,n,e){for(const h of e)for(let e=0;e<h.length-1;++e)if(void 0,void 0,0!=(a=[(o=h[e+1])[0]-(s=h[e])[0],o[1]-s[1]])[0]*(u=[(i=n)[0]-(r=t)[0],i[1]-r[1]])[1]-a[1]*u[0]&&Ji(r,i,s,o)&&Ji(s,o,r,i))return!0;var r,i,s,o,a,u;return!1}function Yi(t,n){for(let e=0;e<t.length;++e)if(!Gi(t[e],n))return!1;for(let e=0;e<t.length-1;++e)if(Xi(t[e],t[e+1],n))return!1;return!0}function Zi(t,n){for(let e=0;e<n.length;e++)if(Yi(t,n[e]))return!0;return!1}function Ki(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=[];for(let r=0;r<t[i].length;r++){const o=Wi(t[i][r],e);Ri(n,o),s.push(o)}r.push(s)}return r}function Qi(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=Ki(t[i],n,e);r.push(s)}return r}function ts(t,n,e,r){if(t[0]<e[0]||t[0]>e[2]){const n=.5*r;let i=t[0]-e[0]>n?-r:e[0]-t[0]>n?r:0;0===i&&(i=t[0]-e[2]>n?-r:e[2]-t[0]>n?r:0),t[0]+=i}Ri(n,t)}function ns(t,n,e,r){const i=8192*Math.pow(2,r.z),s=[8192*r.x,8192*r.y],o=[];if(!t)return o;for(const r of t)for(const t of r){const r=[t.x+s[0],t.y+s[1]];ts(r,n,e,i),o.push(r)}return o}function es(t,n,e,r){const i=8192*Math.pow(2,r.z),s=[8192*r.x,8192*r.y],o=[];if(!t)return o;for(const e of t){const t=[];for(const r of e){const e=[r.x+s[0],r.y+s[1]];Ri(n,e),t.push(e)}o.push(t)}if(n[2]-n[0]<=i/2){(a=n)[0]=a[1]=1/0,a[2]=a[3]=-1/0;for(const t of o)for(const r of t)ts(r,n,e,i)}var a;return o}class rs{constructor(t,n){this.type=Zr,this.geojson=t,this.geometries=n}static parse(t,n){if(2!==t.length)return n.error(`\'within\' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Fi(t[1])){const n=t[1];if("FeatureCollection"===n.type)for(let t=0;t<n.features.length;++t){const e=n.features[t].geometry.type;if("Polygon"===e||"MultiPolygon"===e)return new rs(n,n.features[t].geometry)}else if("Feature"===n.type){const t=n.geometry.type;if("Polygon"===t||"MultiPolygon"===t)return new rs(n,n.geometry)}else if("Polygon"===n.type||"MultiPolygon"===n.type)return new rs(n,n)}return n.error("\'within\' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,n){const e=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if(!i)return!1;if("Polygon"===n.type){const s=Ki(n.coordinates,r,i),o=ns(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Gi(t,s))return!1}if("MultiPolygon"===n.type){const s=Qi(n.coordinates,r,i),o=ns(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Bi(t,s))return!1}return!0}(t,this.geometries);if("LineString"===t.geometryType())return function(t,n){const e=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if(!i)return!1;if("Polygon"===n.type){const s=Ki(n.coordinates,r,i),o=es(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Yi(t,s))return!1}if("MultiPolygon"===n.type){const s=Qi(n.coordinates,r,i),o=es(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Zi(t,s))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}serialize(){return["within",this.geojson]}}var is=rs;function ss(t){if(t instanceof Li){if("get"===t.name&&1===t.args.length)return!1;if("feature-state"===t.name)return!1;if("has"===t.name&&1===t.args.length)return!1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return!1;if(/^filter-/.test(t.name))return!1}if(t instanceof is)return!1;let n=!0;return t.eachChild(t=>{n&&!ss(t)&&(n=!1)}),n}function os(t){if(t instanceof Li&&"feature-state"===t.name)return!1;let n=!0;return t.eachChild(t=>{n&&!os(t)&&(n=!1)}),n}function as(t,n){if(t instanceof Li&&n.indexOf(t.name)>=0)return!1;let e=!0;return t.eachChild(t=>{e&&!as(t,n)&&(e=!1)}),e}class us{constructor(t,n){this.type=n.type,this.name=t,this.boundExpression=n}static parse(t,n){if(2!==t.length||"string"!=typeof t[1])return n.error("\'var\' expression requires exactly one string literal argument.");const e=t[1];return n.scope.has(e)?new us(e,n.scope.get(e)):n.error(`Unknown variable "${e}". Make sure "${e}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}var hs=us;class ls{constructor(t,n=[],e,r=new Br,i=[]){this.registry=t,this.path=n,this.key=n.map(t=>`[${t}]`).join(""),this.scope=r,this.errors=i,this.expectedType=e}parse(t,n,e,r,i={}){return n?this.concat(n,e,r).R(t,i):this.R(t,i)}R(t,n){function e(t,n,e){return"assert"===e?new Ii(n,[t]):"coerce"===e?new Di(n,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error(\'Expected an array with at least one element. If you wanted a literal array, use ["literal", []].\');const r=t[0];if("string"!=typeof r)return this.error(`Expression name must be a string, but found ${typeof r} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const i=this.registry[r];if(i){let r=i.parse(t,this);if(!r)return null;if(this.expectedType){const t=this.expectedType,i=r.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==i.kind)if("color"!==t.kind&&"formatted"!==t.kind&&"resolvedImage"!==t.kind||"value"!==i.kind&&"string"!==i.kind){if(this.checkSubtype(t,i))return null}else r=e(r,t,n.typeAnnotation||"coerce");else r=e(r,t,n.typeAnnotation||"assert")}if(!(r instanceof Si)&&"resolvedImage"!==r.type.kind&&function t(n){if(n instanceof hs)return t(n.boundExpression);if(n instanceof Li&&"error"===n.name)return!1;if(n instanceof Vi)return!1;if(n instanceof is)return!1;const e=n instanceof Di||n instanceof Ii;let r=!0;return n.eachChild(n=>{r=e?r&&t(n):r&&n instanceof Si}),!!r&&(ss(n)&&as(n,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"]))}(r)){const n=new Ui;try{r=new Si(r.type,r.evaluate(n))}catch(t){return this.error(t.message),null}}return r}return this.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===t?"\'undefined\' value invalid. Use null instead.":"object"==typeof t?\'Bare objects invalid. Use ["literal", {...}] instead.\':`Expected an array, but found ${typeof t} instead.`)}concat(t,n,e){const r="number"==typeof t?this.path.concat(t):this.path,i=e?this.scope.concat(e):this.scope;return new ls(this.registry,r,n||null,i,this.errors)}error(t,...n){const e=`${this.key}${n.map(t=>`[${t}]`).join("")}`;this.errors.push(new qr(e,t))}checkSubtype(t,n){const e=ai(t,n);return e&&this.error(e),e}}var cs=ls;function fs(t,n){const e=t.length-1;let r,i,s=0,o=e,a=0;for(;s<=o;)if(a=Math.floor((s+o)/2),r=t[a],i=t[a+1],r<=n){if(a===e||n<i)return a;s=a+1}else{if(!(r>n))throw new _i("Input is not a number.");o=a-1}return 0}class ds{constructor(t,n,e){this.type=t,this.input=n,this.labels=[],this.outputs=[];for(const[t,n]of e)this.labels.push(t),this.outputs.push(n)}static parse(t,n){if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error("Expected an even number of arguments.");const e=n.parse(t[1],1,Xr);if(!e)return null;const r=[];let i=null;n.expectedType&&"value"!==n.expectedType.kind&&(i=n.expectedType);for(let e=1;e<t.length;e+=2){const s=1===e?-1/0:t[e],o=t[e+1],a=e,u=e+1;if("number"!=typeof s)return n.error(\'Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.\',a);if(r.length&&r[r.length-1][0]>=s)return n.error(\'Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.\',a);const h=n.parse(o,u,i);if(!h)return null;i=i||h.type,r.push([s,h])}return new ds(i,e,r)}evaluate(t){const n=this.labels,e=this.outputs;if(1===n.length)return e[0].evaluate(t);const r=this.input.evaluate(t);if(r<=n[0])return e[0].evaluate(t);const i=n.length;return r>=n[i-1]?e[i-1].evaluate(t):e[fs(n,r)].evaluate(t)}eachChild(t){t(this.input);for(const n of this.outputs)t(n)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){const t=["step",this.input.serialize()];for(let n=0;n<this.labels.length;n++)n>0&&t.push(this.labels[n]),t.push(this.outputs[n].serialize());return t}}var ps=ds,ys=ms;function ms(t,n,e,r){this.cx=3*t,this.bx=3*(e-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*n,this.by=3*(r-n)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=e,this.p2y=r}function gs(t,n,e){return t*(1-e)+n*e}ms.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,n){if(void 0===n&&(n=1e-6),t<0)return 0;if(t>1)return 1;for(var e=t,r=0;r<8;r++){var i=this.sampleCurveX(e)-t;if(Math.abs(i)<n)return e;var s=this.sampleCurveDerivativeX(e);if(Math.abs(s)<1e-6)break;e-=i/s}var o=0,a=1;for(e=t,r=0;r<20&&(i=this.sampleCurveX(e),!(Math.abs(i-t)<n));r++)t>i?o=e:a=e,e=.5*(a-o)+o;return e},solve:function(t,n){return this.sampleCurveY(this.solveCurveX(t,n))}};var vs=Object.freeze({__proto__:null,number:gs,color:function(t,n,e){return new gi(gs(t.r,n.r,e),gs(t.g,n.g,e),gs(t.b,n.b,e),gs(t.a,n.a,e))},array:function(t,n,e){return t.map((t,r)=>gs(t,n[r],e))}});const bs=6/29*3*(6/29),ws=Math.PI/180,Ms=180/Math.PI;function xs(t){return t>.008856451679035631?Math.pow(t,1/3):t/bs+4/29}function Fs(t){return t>6/29?t*t*t:bs*(t-4/29)}function As(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function ks(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ps(t){const n=ks(t.r),e=ks(t.g),r=ks(t.b),i=xs((.4124564*n+.3575761*e+.1804375*r)/.95047),s=xs((.2126729*n+.7151522*e+.072175*r)/1);return{l:116*s-16,a:500*(i-s),b:200*(s-xs((.0193339*n+.119192*e+.9503041*r)/1.08883)),alpha:t.a}}function Ss(t){let n=(t.l+16)/116,e=isNaN(t.a)?n:n+t.a/500,r=isNaN(t.b)?n:n-t.b/200;return n=1*Fs(n),e=.95047*Fs(e),r=1.08883*Fs(r),new gi(As(3.2404542*e-1.5371385*n-.4985314*r),As(-.969266*e+1.8760108*n+.041556*r),As(.0556434*e-.2040259*n+1.0572252*r),t.alpha)}function _s(t,n,e){const r=n-t;return t+e*(r>180||r<-180?r-360*Math.round(r/360):r)}const Os={forward:Ps,reverse:Ss,interpolate:function(t,n,e){return{l:gs(t.l,n.l,e),a:gs(t.a,n.a,e),b:gs(t.b,n.b,e),alpha:gs(t.alpha,n.alpha,e)}}},Es={forward:function(t){const{l:n,a:e,b:r}=Ps(t),i=Math.atan2(r,e)*Ms;return{h:i<0?i+360:i,c:Math.sqrt(e*e+r*r),l:n,alpha:t.a}},reverse:function(t){const n=t.h*ws,e=t.c;return Ss({l:t.l,a:Math.cos(n)*e,b:Math.sin(n)*e,alpha:t.alpha})},interpolate:function(t,n,e){return{h:_s(t.h,n.h,e),c:gs(t.c,n.c,e),l:gs(t.l,n.l,e),alpha:gs(t.alpha,n.alpha,e)}}};var Is=Object.freeze({__proto__:null,lab:Os,hcl:Es});class $s{constructor(t,n,e,r,i){this.type=t,this.operator=n,this.interpolation=e,this.input=r,this.labels=[],this.outputs=[];for(const[t,n]of i)this.labels.push(t),this.outputs.push(n)}static interpolationFactor(t,n,e,r){let i=0;if("exponential"===t.name)i=zs(n,t.base,e,r);else if("linear"===t.name)i=zs(n,1,e,r);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=new ys(s[0],s[1],s[2],s[3]).solve(zs(n,1,e,r))}return i}static parse(t,n){let[e,r,i,...s]=t;if(!Array.isArray(r)||0===r.length)return n.error("Expected an interpolation type expression.",1);if("linear"===r[0])r={name:"linear"};else if("exponential"===r[0]){const t=r[1];if("number"!=typeof t)return n.error("Exponential interpolation requires a numeric base.",1,1);r={name:"exponential",base:t}}else{if("cubic-bezier"!==r[0])return n.error("Unknown interpolation type "+String(r[0]),1,0);{const t=r.slice(1);if(4!==t.length||t.some(t=>"number"!=typeof t||t<0||t>1))return n.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);r={name:"cubic-bezier",controlPoints:t}}}if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error("Expected an even number of arguments.");if(i=n.parse(i,2,Xr),!i)return null;const o=[];let a=null;"interpolate-hcl"===e||"interpolate-lab"===e?a=Kr:n.expectedType&&"value"!==n.expectedType.kind&&(a=n.expectedType);for(let t=0;t<s.length;t+=2){const e=s[t],r=s[t+1],i=t+3,u=t+4;if("number"!=typeof e)return n.error(\'Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.\',i);if(o.length&&o[o.length-1][0]>=e)return n.error(\'Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.\',i);const h=n.parse(r,u,a);if(!h)return null;a=a||h.type,o.push([e,h])}return"number"===a.kind||"color"===a.kind||"array"===a.kind&&"number"===a.itemType.kind&&"number"==typeof a.N?new $s(a,e,r,i,o):n.error(`Type ${si(a)} is not interpolatable.`)}evaluate(t){const n=this.labels,e=this.outputs;if(1===n.length)return e[0].evaluate(t);const r=this.input.evaluate(t);if(r<=n[0])return e[0].evaluate(t);const i=n.length;if(r>=n[i-1])return e[i-1].evaluate(t);const s=fs(n,r),o=$s.interpolationFactor(this.interpolation,r,n[s],n[s+1]),a=e[s].evaluate(t),u=e[s+1].evaluate(t);return"interpolate"===this.operator?vs[this.type.kind.toLowerCase()](a,u,o):"interpolate-hcl"===this.operator?Es.reverse(Es.interpolate(Es.forward(a),Es.forward(u),o)):Os.reverse(Os.interpolate(Os.forward(a),Os.forward(u),o))}eachChild(t){t(this.input);for(const n of this.outputs)t(n)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){let t;t="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const n=[this.operator,t,this.input.serialize()];for(let t=0;t<this.labels.length;t++)n.push(this.labels[t],this.outputs[t].serialize());return n}}function zs(t,n,e,r){const i=r-e,s=t-e;return 0===i?0:1===n?s/i:(Math.pow(n,s)-1)/(Math.pow(n,i)-1)}var Cs=$s;class Ts{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expectected at least one argument.");let e=null;const r=n.expectedType;r&&"value"!==r.kind&&(e=r);const i=[];for(const r of t.slice(1)){const t=n.parse(r,1+i.length,e,void 0,{typeAnnotation:"omit"});if(!t)return null;e=e||t.type,i.push(t)}const s=r&&i.some(t=>ai(r,t.type));return new Ts(s?ti:e,i)}evaluate(t){let n,e=null,r=0;for(const i of this.args){if(r++,e=i.evaluate(t),e&&e instanceof Mi&&!e.available&&(n||(n=e),e=null,r===this.args.length))return n;if(null!==e)break}return e}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){const t=["coalesce"];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Ds=Ts;class js{constructor(t,n){this.type=n.type,this.bindings=[].concat(t),this.result=n}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const n of this.bindings)t(n[1]);t(this.result)}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const e=[];for(let r=1;r<t.length-1;r+=2){const i=t[r];if("string"!=typeof i)return n.error(`Expected string, but found ${typeof i} instead.`,r);if(/[^a-zA-Z0-9_]/.test(i))return n.error("Variable names must contain only alphanumeric characters or \'_\'.",r);const s=n.parse(t[r+1],r+1);if(!s)return null;e.push([i,s])}const r=n.parse(t[t.length-1],t.length-1,n.expectedType,e);return r?new js(e,r):null}outputDefined(){return this.result.outputDefined()}serialize(){const t=["let"];for(const[n,e]of this.bindings)t.push(n,e.serialize());return t.push(this.result.serialize()),t}}var Us=js;class Ns{constructor(t,n,e){this.type=t,this.index=n,this.input=e}static parse(t,n){if(3!==t.length)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,Xr),r=n.parse(t[2],2,ii(n.expectedType||ti));return e&&r?new Ns(r.type.itemType,e,r):null}evaluate(t){const n=this.index.evaluate(t),e=this.input.evaluate(t);if(n<0)throw new _i(`Array index out of bounds: ${n} < 0.`);if(n>=e.length)throw new _i(`Array index out of bounds: ${n} > ${e.length-1}.`);if(n!==Math.floor(n))throw new _i(`Array index must be an integer, but found ${n} instead.`);return e[n]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}var Ls=Ns;class Vs{constructor(t,n){this.type=Zr,this.needle=t,this.haystack=n}static parse(t,n){if(3!==t.length)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,ti);return e&&r?ui(e.type,[Zr,Yr,Xr,Jr,ti])?new Vs(e,r):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${si(e.type)} instead`):null}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(null==e)return!1;if(!hi(n,["boolean","string","number","null"]))throw new _i(`Expected first argument to be of type boolean, string, number or null, but found ${si(Ai(n))} instead.`);if(!hi(e,["string","array"]))throw new _i(`Expected second argument to be of type array or string, but found ${si(Ai(e))} instead.`);return e.indexOf(n)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}var Rs=Vs;class Hs{constructor(t,n,e){this.type=Xr,this.needle=t,this.haystack=n,this.fromIndex=e}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,ti);if(!e||!r)return null;if(!ui(e.type,[Zr,Yr,Xr,Jr,ti]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${si(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Xr);return i?new Hs(e,r,i):null}return new Hs(e,r)}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(!hi(n,["boolean","string","number","null"]))throw new _i(`Expected first argument to be of type boolean, string, number or null, but found ${si(Ai(n))} instead.`);if(!hi(e,["string","array"]))throw new _i(`Expected second argument to be of type array or string, but found ${si(Ai(e))} instead.`);if(this.fromIndex){const r=this.fromIndex.evaluate(t);return e.indexOf(n,r)}return e.indexOf(n)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){const t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}var Ws=Hs;class qs{constructor(t,n,e,r,i,s){this.inputType=t,this.type=n,this.input=e,this.cases=r,this.outputs=i,this.otherwise=s}static parse(t,n){if(t.length<5)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return n.error("Expected an even number of arguments.");let e,r;n.expectedType&&"value"!==n.expectedType.kind&&(r=n.expectedType);const i={},s=[];for(let o=2;o<t.length-1;o+=2){let a=t[o];const u=t[o+1];Array.isArray(a)||(a=[a]);const h=n.concat(o);if(0===a.length)return h.error("Expected at least one branch label.");for(const t of a){if("number"!=typeof t&&"string"!=typeof t)return h.error("Branch labels must be numbers or strings.");if("number"==typeof t&&Math.abs(t)>Number.MAX_SAFE_INTEGER)return h.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return h.error("Numeric branch labels must be integer values.");if(e){if(h.checkSubtype(e,Ai(t)))return null}else e=Ai(t);if(void 0!==i[String(t)])return h.error("Branch labels must be unique.");i[String(t)]=s.length}const l=n.parse(u,o,r);if(!l)return null;r=r||l.type,s.push(l)}const o=n.parse(t[1],1,ti);if(!o)return null;const a=n.parse(t[t.length-1],t.length-1,r);return a?"value"!==o.type.kind&&n.concat(1).checkSubtype(e,o.type)?null:new qs(e,r,o,i,s,a):null}evaluate(t){const n=this.input.evaluate(t);return(Ai(n)===this.inputType&&this.outputs[this.cases[n]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["match",this.input.serialize()],n=Object.keys(this.cases).sort(),e=[],r={};for(const t of n){const n=r[this.cases[t]];void 0===n?(r[this.cases[t]]=e.length,e.push([this.cases[t],[t]])):e[n][1].push(t)}const i=t=>"number"===this.inputType.kind?Number(t):t;for(const[n,r]of e)t.push(1===r.length?i(r[0]):r.map(i)),t.push(this.outputs[n].serialize());return t.push(this.otherwise.serialize()),t}}var Gs=qs;class Bs{constructor(t,n,e){this.type=t,this.branches=n,this.otherwise=e}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return n.error("Expected an odd number of arguments.");let e;n.expectedType&&"value"!==n.expectedType.kind&&(e=n.expectedType);const r=[];for(let i=1;i<t.length-1;i+=2){const s=n.parse(t[i],i,Zr);if(!s)return null;const o=n.parse(t[i+1],i+1,e);if(!o)return null;r.push([s,o]),e=e||o.type}const i=n.parse(t[t.length-1],t.length-1,e);return i?new Bs(e,r,i):null}evaluate(t){for(const[n,e]of this.branches)if(n.evaluate(t))return e.evaluate(t);return this.otherwise.evaluate(t)}eachChild(t){for(const[n,e]of this.branches)t(n),t(e);t(this.otherwise)}outputDefined(){return this.branches.every(([t,n])=>n.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["case"];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Js=Bs;class Xs{constructor(t,n,e,r){this.type=t,this.input=n,this.beginIndex=e,this.endIndex=r}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,Xr);if(!e||!r)return null;if(!ui(e.type,[ii(ti),Yr,ti]))return n.error(`Expected first argument to be of type array or string, but found ${si(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Xr);return i?new Xs(e.type,e,r,i):null}return new Xs(e.type,e,r)}evaluate(t){const n=this.input.evaluate(t),e=this.beginIndex.evaluate(t);if(!hi(n,["string","array"]))throw new _i(`Expected first argument to be of type array or string, but found ${si(Ai(n))} instead.`);if(this.endIndex){const r=this.endIndex.evaluate(t);return n.slice(e,r)}return n.slice(e)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){const t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}var Ys=Xs;function Zs(t,n){return"=="===t||"!="===t?"boolean"===n.kind||"string"===n.kind||"number"===n.kind||"null"===n.kind||"value"===n.kind:"string"===n.kind||"number"===n.kind||"value"===n.kind}function Ks(t,n,e,r){return 0===r.compare(n,e)}function Qs(t,n,e){const r="=="!==t&&"!="!==t;return class i{constructor(t,n,e){this.type=Zr,this.lhs=t,this.rhs=n,this.collator=e,this.hasUntypedArgument="value"===t.type.kind||"value"===n.type.kind}static parse(t,n){if(3!==t.length&&4!==t.length)return n.error("Expected two or three arguments.");const e=t[0];let s=n.parse(t[1],1,ti);if(!s)return null;if(!Zs(e,s.type))return n.concat(1).error(`"${e}" comparisons are not supported for type \'${si(s.type)}\'.`);let o=n.parse(t[2],2,ti);if(!o)return null;if(!Zs(e,o.type))return n.concat(2).error(`"${e}" comparisons are not supported for type \'${si(o.type)}\'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return n.error(`Cannot compare types \'${si(s.type)}\' and \'${si(o.type)}\'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new Ii(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new Ii(s.type,[o])));let a=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return n.error("Cannot use collator to compare non-string types.");if(a=n.parse(t[3],3,ni),!a)return null}return new i(s,o,a)}evaluate(i){const s=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){const n=Ai(s),e=Ai(o);if(n.kind!==e.kind||"string"!==n.kind&&"number"!==n.kind)throw new _i(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${n.kind}, ${e.kind}) instead.`)}if(this.collator&&!r&&this.hasUntypedArgument){const t=Ai(s),e=Ai(o);if("string"!==t.kind||"string"!==e.kind)return n(i,s,o)}return this.collator?e(i,s,o,this.collator.evaluate(i)):n(i,s,o)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)}outputDefined(){return!0}serialize(){const n=[t];return this.eachChild(t=>{n.push(t.serialize())}),n}}}const to=Qs("==",(function(t,n,e){return n===e}),Ks),no=Qs("!=",(function(t,n,e){return n!==e}),(function(t,n,e,r){return!Ks(0,n,e,r)})),eo=Qs("<",(function(t,n,e){return n<e}),(function(t,n,e,r){return r.compare(n,e)<0})),ro=Qs(">",(function(t,n,e){return n>e}),(function(t,n,e,r){return r.compare(n,e)>0})),io=Qs("<=",(function(t,n,e){return n<=e}),(function(t,n,e,r){return r.compare(n,e)<=0})),so=Qs(">=",(function(t,n,e){return n>=e}),(function(t,n,e,r){return r.compare(n,e)>=0}));class oo{constructor(t,n,e,r,i,s){this.type=Yr,this.number=t,this.locale=n,this.currency=e,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=s}static parse(t,n){if(3!==t.length)return n.error("Expected two arguments.");const e=n.parse(t[1],1,Xr);if(!e)return null;const r=t[2];if("object"!=typeof r||Array.isArray(r))return n.error("NumberFormat options argument must be an object.");let i=null;if(r.locale&&(i=n.parse(r.locale,1,Yr),!i))return null;let s=null;if(r.currency&&(s=n.parse(r.currency,1,Yr),!s))return null;let o=null;if(r.unit&&(o=n.parse(r.unit,1,Yr),!o))return null;let a=null;if(r["min-fraction-digits"]&&(a=n.parse(r["min-fraction-digits"],1,Xr),!a))return null;let u=null;return r["max-fraction-digits"]&&(u=n.parse(r["max-fraction-digits"],1,Xr),!u)?null:new oo(e,i,s,o,a,u)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}serialize(){const t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.unit&&(t.unit=this.unit.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]}}class ao{constructor(t){this.type=Xr,this.input=t}static parse(t,n){if(2!==t.length)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);const e=n.parse(t[1],1);return e?"array"!==e.type.kind&&"string"!==e.type.kind&&"value"!==e.type.kind?n.error(`Expected argument of type string or array, but found ${si(e.type)} instead.`):new ao(e):null}evaluate(t){const n=this.input.evaluate(t);if("string"==typeof n)return n.length;if(Array.isArray(n))return n.length;throw new _i(`Expected value to be of type string or array, but found ${si(Ai(n))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){const t=["length"];return this.eachChild(n=>{t.push(n.serialize())}),t}}const uo={"==":to,"!=":no,">":ro,"<":eo,">=":so,"<=":io,array:Ii,at:Ls,boolean:Ii,case:Js,coalesce:Ds,collator:Vi,format:$i,image:zi,in:Rs,"index-of":Ws,interpolate:Cs,"interpolate-hcl":Cs,"interpolate-lab":Cs,length:ao,let:Us,literal:Si,match:Gs,number:Ii,"number-format":oo,object:Ii,slice:Ys,step:ps,string:Ii,"to-boolean":Di,"to-color":Di,"to-number":Di,"to-string":Di,var:hs,within:is};function ho(t,[n,e,r,i]){n=n.evaluate(t),e=e.evaluate(t),r=r.evaluate(t);const s=i?i.evaluate(t):1,o=xi(n,e,r,s);if(o)throw new _i(o);return new gi(n/255*s,e/255*s,r/255*s,s)}function lo(t,n){return t in n}function co(t,n){const e=n[t];return void 0===e?null:e}function fo(t){return{type:t}}Li.register(uo,{error:[{kind:"error"},[Yr],(t,[n])=>{throw new _i(n.evaluate(t))}],typeof:[Yr,[ti],(t,[n])=>si(Ai(n.evaluate(t)))],"to-rgba":[ii(Xr,4),[Kr],(t,[n])=>n.evaluate(t).toArray()],rgb:[Kr,[Xr,Xr,Xr],ho],rgba:[Kr,[Xr,Xr,Xr,Xr],ho],has:{type:Zr,overloads:[[[Yr],(t,[n])=>lo(n.evaluate(t),t.properties())],[[Yr,Qr],(t,[n,e])=>lo(n.evaluate(t),e.evaluate(t))]]},get:{type:ti,overloads:[[[Yr],(t,[n])=>co(n.evaluate(t),t.properties())],[[Yr,Qr],(t,[n,e])=>co(n.evaluate(t),e.evaluate(t))]]},"feature-state":[ti,[Yr],(t,[n])=>co(n.evaluate(t),t.featureState||{})],properties:[Qr,[],t=>t.properties()],"geometry-type":[Yr,[],t=>t.geometryType()],id:[ti,[],t=>t.id()],zoom:[Xr,[],t=>t.globals.zoom],pitch:[Xr,[],t=>t.globals.pitch||0],"distance-from-center":[Xr,[],t=>t.distanceFromCenter()],"heatmap-density":[Xr,[],t=>t.globals.heatmapDensity||0],"line-progress":[Xr,[],t=>t.globals.lineProgress||0],"sky-radial-progress":[Xr,[],t=>t.globals.skyRadialProgress||0],accumulated:[ti,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[Xr,fo(Xr),(t,n)=>{let e=0;for(const r of n)e+=r.evaluate(t);return e}],"*":[Xr,fo(Xr),(t,n)=>{let e=1;for(const r of n)e*=r.evaluate(t);return e}],"-":{type:Xr,overloads:[[[Xr,Xr],(t,[n,e])=>n.evaluate(t)-e.evaluate(t)],[[Xr],(t,[n])=>-n.evaluate(t)]]},"/":[Xr,[Xr,Xr],(t,[n,e])=>n.evaluate(t)/e.evaluate(t)],"%":[Xr,[Xr,Xr],(t,[n,e])=>n.evaluate(t)%e.evaluate(t)],ln2:[Xr,[],()=>Math.LN2],pi:[Xr,[],()=>Math.PI],e:[Xr,[],()=>Math.E],"^":[Xr,[Xr,Xr],(t,[n,e])=>Math.pow(n.evaluate(t),e.evaluate(t))],sqrt:[Xr,[Xr],(t,[n])=>Math.sqrt(n.evaluate(t))],log10:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))/Math.LN10],ln:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))],log2:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))/Math.LN2],sin:[Xr,[Xr],(t,[n])=>Math.sin(n.evaluate(t))],cos:[Xr,[Xr],(t,[n])=>Math.cos(n.evaluate(t))],tan:[Xr,[Xr],(t,[n])=>Math.tan(n.evaluate(t))],asin:[Xr,[Xr],(t,[n])=>Math.asin(n.evaluate(t))],acos:[Xr,[Xr],(t,[n])=>Math.acos(n.evaluate(t))],atan:[Xr,[Xr],(t,[n])=>Math.atan(n.evaluate(t))],min:[Xr,fo(Xr),(t,n)=>Math.min(...n.map(n=>n.evaluate(t)))],max:[Xr,fo(Xr),(t,n)=>Math.max(...n.map(n=>n.evaluate(t)))],abs:[Xr,[Xr],(t,[n])=>Math.abs(n.evaluate(t))],round:[Xr,[Xr],(t,[n])=>{const e=n.evaluate(t);return e<0?-Math.round(-e):Math.round(e)}],floor:[Xr,[Xr],(t,[n])=>Math.floor(n.evaluate(t))],ceil:[Xr,[Xr],(t,[n])=>Math.ceil(n.evaluate(t))],"filter-==":[Zr,[Yr,ti],(t,[n,e])=>t.properties()[n.value]===e.value],"filter-id-==":[Zr,[ti],(t,[n])=>t.id()===n.value],"filter-type-==":[Zr,[Yr],(t,[n])=>t.geometryType()===n.value],"filter-<":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<i}],"filter-id-<":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<r}],"filter->":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>i}],"filter-id->":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>r}],"filter-<=":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<=r}],"filter->=":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>=r}],"filter-has":[Zr,[ti],(t,[n])=>n.value in t.properties()],"filter-has-id":[Zr,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[Zr,[ii(Yr)],(t,[n])=>n.value.indexOf(t.geometryType())>=0],"filter-id-in":[Zr,[ii(ti)],(t,[n])=>n.value.indexOf(t.id())>=0],"filter-in-small":[Zr,[Yr,ii(ti)],(t,[n,e])=>e.value.indexOf(t.properties()[n.value])>=0],"filter-in-large":[Zr,[Yr,ii(ti)],(t,[n,e])=>function(t,n,e,r){for(;e<=r;){const i=e+r>>1;if(n[i]===t)return!0;n[i]>t?r=i-1:e=i+1}return!1}(t.properties()[n.value],e.value,0,e.value.length-1)],all:{type:Zr,overloads:[[[Zr,Zr],(t,[n,e])=>n.evaluate(t)&&e.evaluate(t)],[fo(Zr),(t,n)=>{for(const e of n)if(!e.evaluate(t))return!1;return!0}]]},any:{type:Zr,overloads:[[[Zr,Zr],(t,[n,e])=>n.evaluate(t)||e.evaluate(t)],[fo(Zr),(t,n)=>{for(const e of n)if(e.evaluate(t))return!0;return!1}]]},"!":[Zr,[Zr],(t,[n])=>!n.evaluate(t)],"is-supported-script":[Zr,[Yr],(t,[n])=>{const e=t.globals&&t.globals.isSupportedScript;return!e||e(n.evaluate(t))}],upcase:[Yr,[Yr],(t,[n])=>n.evaluate(t).toUpperCase()],downcase:[Yr,[Yr],(t,[n])=>n.evaluate(t).toLowerCase()],concat:[Yr,fo(ti),(t,n)=>n.map(n=>ki(n.evaluate(t))).join("")],"resolved-locale":[Yr,[ni],(t,[n])=>n.evaluate(t).resolvedLocale()]});var po=uo;function yo(t){return{result:"success",value:t}}function mo(t){return{result:"error",value:t}}function go(t){return!!t.expression&&t.expression.interpolated}function vo(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function bo(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function wo(t){return t}function Mo(t,n,e){return void 0!==t?t:void 0!==n?n:void 0!==e?e:void 0}function xo(t,n,e,r,i){return Mo(typeof e===i?r[e]:void 0,t.default,n.default)}function Fo(t,n,e){if("number"!==vo(e))return Mo(t.default,n.default);const r=t.stops.length;if(1===r)return t.stops[0][1];if(e<=t.stops[0][0])return t.stops[0][1];if(e>=t.stops[r-1][0])return t.stops[r-1][1];const i=fs(t.stops.map(t=>t[0]),e);return t.stops[i][1]}function Ao(t,n,e){const r=void 0!==t.base?t.base:1;if("number"!==vo(e))return Mo(t.default,n.default);const i=t.stops.length;if(1===i)return t.stops[0][1];if(e<=t.stops[0][0])return t.stops[0][1];if(e>=t.stops[i-1][0])return t.stops[i-1][1];const s=fs(t.stops.map(t=>t[0]),e),o=function(t,n,e,r){const i=r-e,s=t-e;return 0===i?0:1===n?s/i:(Math.pow(n,s)-1)/(Math.pow(n,i)-1)}(e,r,t.stops[s][0],t.stops[s+1][0]),a=t.stops[s][1],u=t.stops[s+1][1];let h=vs[n.type]||wo;if(t.colorSpace&&"rgb"!==t.colorSpace){const n=Is[t.colorSpace];h=(t,e)=>n.reverse(n.interpolate(n.forward(t),n.forward(e),o))}return"function"==typeof a.evaluate?{evaluate(...t){const n=a.evaluate.apply(void 0,t),e=u.evaluate.apply(void 0,t);if(void 0!==n&&void 0!==e)return h(n,e,o)}}:h(a,u,o)}function ko(t,n,e){return"color"===n.type?e=gi.parse(e):"formatted"===n.type?e=wi.fromString(e.toString()):"resolvedImage"===n.type?e=Mi.fromString(e.toString()):vo(e)===n.type||"enum"===n.type&&n.values[e]||(e=void 0),Mo(e,t.default,n.default)}class Po{constructor(t,n){this.expression=t,this.H={},this.W=new Ui,this.q=n?function(t){return"color"===t.type&&(bo(t.default)||Array.isArray(t.default))?new gi(0,0,0,0):"color"===t.type?gi.parse(t.default)||null:void 0===t.default?null:t.default}(n):null,this.G=n&&"enum"===n.type?n.values:null}evaluateWithoutErrorHandling(t,n,e,r,i,s,o,a){return this.W.globals=t,this.W.feature=n,this.W.featureState=e,this.W.canonical=r||null,this.W.availableImages=i||null,this.W.formattedSection=s,this.W.featureTileCoord=o||null,this.W.featureDistanceData=a||null,this.expression.evaluate(this.W)}evaluate(t,n,e,r,i,s,o,a){this.W.globals=t,this.W.feature=n||null,this.W.featureState=e||null,this.W.canonical=r||null,this.W.availableImages=i||null,this.W.formattedSection=s||null,this.W.featureTileCoord=o||null,this.W.featureDistanceData=a||null;try{const t=this.expression.evaluate(this.W);if(null==t||"number"==typeof t&&t!=t)return this.q;if(this.G&&!(t in this.G))throw new _i(`Expected value to be one of ${Object.keys(this.G).map(t=>JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this.H[t.message]||(this.H[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this.q}}}function So(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in po}function _o(t,n){const e=new cs(po,[],n?function(t){const n={color:Kr,string:Yr,number:Xr,enum:Yr,boolean:Zr,formatted:ei,resolvedImage:ri};return"array"===t.type?ii(n[t.value]||ti,t.length):n[t.type]}(n):void 0),r=e.parse(t,void 0,void 0,void 0,n&&"string"===n.type?{typeAnnotation:"coerce"}:void 0);return r?yo(new Po(r,n)):mo(e.errors)}class Oo{constructor(t,n){this.kind=t,this.B=n,this.isStateDependent="constant"!==t&&!os(n.expression)}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.B.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.B.evaluate(t,n,e,r,i,s)}}class Eo{constructor(t,n,e,r){this.kind=t,this.zoomStops=e,this.B=n,this.isStateDependent="camera"!==t&&!os(n.expression),this.interpolationType=r}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.B.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.B.evaluate(t,n,e,r,i,s)}interpolationFactor(t,n,e){return this.interpolationType?Cs.interpolationFactor(this.interpolationType,t,n,e):0}}function Io(t,n){if("error"===(t=_o(t,n)).result)return t;const e=t.value.expression,r=ss(e);if(!r&&!function(t){return"data-driven"===t["property-type"]}(n))return mo([new qr("","data expressions not supported")]);const i=as(e,["zoom","pitch","distance-from-center"]);if(!i&&!function(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}(n))return mo([new qr("","zoom expressions not supported")]);const s=function t(n){let e=null;if(n instanceof Us)e=t(n.result);else if(n instanceof Ds){for(const r of n.args)if(e=t(r),e)break}else(n instanceof ps||n instanceof Cs)&&n.input instanceof Li&&"zoom"===n.input.name&&(e=n);return e instanceof qr||n.eachChild(n=>{const r=t(n);r instanceof qr?e=r:!e&&r?e=new qr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\'):e&&r&&e!==r&&(e=new qr("",\'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.\'))}),e}(e);if(!s&&!i)return mo([new qr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\')]);if(s instanceof qr)return mo([s]);if(s instanceof Cs&&!go(n))return mo([new qr("",\'"interpolate" expressions cannot be used with this property\')]);if(!s)return yo(new Oo(r?"constant":"source",t.value));const o=s instanceof Cs?s.interpolation:void 0;return yo(new Eo(r?"camera":"composite",t.value,s.labels,o))}class $o{constructor(t,n){this.J=t,this.X=n,Hr(this,function t(n,e){const r="color"===e.type,i=n.stops&&"object"==typeof n.stops[0][0],s=i||!(i||void 0!==n.property),o=n.type||(go(e)?"exponential":"interval");if(r&&((n=Hr({},n)).stops&&(n.stops=n.stops.map(t=>[t[0],gi.parse(t[1])])),n.default=gi.parse(n.default?n.default:e.default)),n.colorSpace&&"rgb"!==n.colorSpace&&!Is[n.colorSpace])throw new Error("Unknown color space: "+n.colorSpace);let a,u,h;if("exponential"===o)a=Ao;else if("interval"===o)a=Fo;else if("categorical"===o){a=xo,u=Object.create(null);for(const t of n.stops)u[t[0]]=t[1];h=typeof n.stops[0][0]}else{if("identity"!==o)throw new Error(`Unknown function type "${o}"`);a=ko}if(i){const r={},i=[];for(let t=0;t<n.stops.length;t++){const e=n.stops[t],s=e[0].zoom;void 0===r[s]&&(r[s]={zoom:s,type:n.type,property:n.property,default:n.default,stops:[]},i.push(s)),r[s].stops.push([e[0].value,e[1]])}const s=[];for(const n of i)s.push([r[n].zoom,t(r[n],e)]);const o={name:"linear"};return{kind:"composite",interpolationType:o,interpolationFactor:Cs.interpolationFactor.bind(void 0,o),zoomStops:s.map(t=>t[0]),evaluate:({zoom:t},r)=>Ao({stops:s,base:n.base},e,t).evaluate(t,r)}}if(s){const t="exponential"===o?{name:"exponential",base:void 0!==n.base?n.base:1}:null;return{kind:"camera",interpolationType:t,interpolationFactor:Cs.interpolationFactor.bind(void 0,t),zoomStops:n.stops.map(t=>t[0]),evaluate:({zoom:t})=>a(n,e,t,u,h)}}return{kind:"source",evaluate(t,r){const i=r&&r.properties?r.properties[n.property]:void 0;return void 0===i?Mo(n.default,e.default):a(n,e,i,u,h)}}}(this.J,this.X))}static deserialize(t){return new $o(t.J,t.X)}static serialize(t){return{J:t.J,X:t.X}}}function zo(t){if(Array.isArray(t))return t.map(zo);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){const n={};for(const e in t)n[e]=zo(t[e]);return n}return function(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}(t)}function Co(t){if(!Array.isArray(t))return!1;if(function(t){return"pitch"===t||"distance-from-center"===t}(t[0]))return!0;for(let n=1;n<t.length;n++)if(Co(t[n]))return!0;return!1}const To=new Set(["in","==","!=",">",">=","<","<=","to-boolean"]),Do={StyleExpression:Po,isExpression:So,isExpressionFilter:function t(n){if(!0===n||!1===n)return!0;if(!Array.isArray(n)||0===n.length)return!1;switch(n[0]){case"has":return n.length>=2&&"$id"!==n[1]&&"$type"!==n[1];case"in":return n.length>=3&&("string"!=typeof n[1]||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==n.length||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const e of n.slice(1))if(!t(e)&&"boolean"!=typeof e)return!1;return!0;default:return!0}},createExpression:_o,createPropertyExpression:Io,normalizePropertyExpression:function(t,n){if(bo(t))return new $o(t,n);if(So(t)){const e=Io(t,n);if("error"===e.result)throw new Error(e.value.map(t=>`${t.key}: ${t.message}`).join(", "));return e.value}{let e=t;return"string"==typeof t&&"color"===n.type&&(e=gi.parse(t)),{kind:"constant",evaluate:()=>e}}},ZoomConstantExpression:Oo,ZoomDependentExpression:Eo,StylePropertyFunction:$o},{isExpression:jo,createExpression:Uo}=Do,No={};function Lo(t){if(!0===t)return function(){return!0};if(t&&t.condition){if("any"===t.type){const n=t.condition,e=[];for(let t=0;t<n.length;t++)e.push(Lo(n[t]));return(t,n)=>{for(let r=0;r<e.length;r++)if(e[r](t,n))return!0;return!1}}const n=Lo(t.condition);if(cr(t.layer))return n;const e=n=>n.layer===t.layer;return(t,r)=>e(t)&&n(t,r)}if(function t(n){if(!0===n||!1===n)return!0;if(!Array.isArray(n)||0===n.length)return!1;switch(n[0]){case"has":case"!has":return 2===n.length&&("string"==typeof n[1]||n[1].property&&n[1].op);case"in":case"!in":return n.length>=2&&("string"==typeof n[1]||n[1].property&&n[1].op);case"==":case"!=":case">":case">=":case"<":case"<=":return 3===n.length&&("string"==typeof n[1]||n[1].property&&n[1].op);case"none":case"any":case"all":for(const e of n.slice(1))if(!t(e)&&"boolean"!=typeof e)return!1;return!0;case"contains":return!0;default:return!1}}(t))return Tn(t);{let n=function(t,n="fill"){if(null==t)return{filter:()=>!0,needGeometry:!1,needFeature:!1};const e=t;let r=!0;try{r=function(t){if(!Co(t))return t;let n=zo(t);return function t(n){let e=!1;const r=[];if("case"===n[0]){for(let t=1;t<n.length-1;t+=2)e=e||Co(n[t]),r.push(n[t+1]);r.push(n[n.length-1])}else if("match"===n[0]){e=e||Co(n[1]);for(let t=2;t<n.length-1;t+=2)r.push(n[t+1]);r.push(n[n.length-1])}else if("step"===n[0]){e=e||Co(n[1]);for(let t=1;t<n.length-1;t+=2)r.push(n[t+1])}e&&(n.length=0,n.push("any",...r));for(let e=1;e<n.length;e++)t(n[e])}(n),n=function t(n){if(!Array.isArray(n))return n;const e=function(t){if(To.has(t[0]))for(let n=1;n<t.length;n++)if(Co(t[n]))return!0;return t}(n);return!0===e?e:e.map(n=>t(n))}(n),n}(e)}catch(t){console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate.\\nThis is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md\\nand paste the contents of this message in the report.\\nThank you!\\nFilter Expression:\\n${JSON.stringify(e,null,2)}\\n `)}const i=_o(r,null);let s=null;if("error"===i.result)throw new Error(i.value.map(t=>`${t.key}: ${t.message}`).join(", "));s=(t,n,e)=>i.value.evaluate(t,n,{},e);let o=null,a=null;if(r!==e){const t=_o(e,null);if("error"===t.result)throw new Error(t.value.map(t=>`${t.key}: ${t.message}`).join(", "));o=(n,e,r,i,s)=>t.value.evaluate(n,e,{},r,void 0,void 0,i,s),a=!ss(t.value.expression)}return s=s,{filter:s,dynamicFilter:o||void 0,needGeometry:function t(n){if(!Array.isArray(n))return!1;if("within"===n[0])return!0;for(let e=1;e<n.length;e++)if(t(n[e]))return!0;return!1}(r),needFeature:!!a}}(t);return n=n&&n.filter,(t,e)=>(No.zoom=e,n&&n(No,t))}}const Vo={type:"number","property-type":"data-driven",expression:{parameters:["zoom","feature"]}};function Ro(t,n){Vo.type=n||"number";const e=Uo(t,Vo);if("success"!==e.result)throw new Error(`Invalid maplibre spec expression: ${JSON.stringify(t)} (${e.value})`);return e.value}function Ho(t){return jo(t)}const Wo={lineWidth:1,lineStrokeWidth:1,lineDx:1,lineDy:1,lineOpacity:1,linePatternAnimSpeed:1,markerWidth:1,markerHeight:1,markerDx:1,markerDy:1,markerSpacing:1,markerOpacity:1,markerRotation:1,textWrapWidth:1,textSpacing:1,textSize:1,textHaloRadius:1,textHaloOpacity:1,textDx:1,textDy:1,textOpacity:1,textRotation:1,polygonOpacity:1};function qo(t){return Wo[t]}const Go={markerPlacement:1,markerFile:1,mergeOnProperty:1,markerTextFit:1,markerType:1,markerHorizontalAlignment:1,markerVerticalAlignment:1,markerRotationAlignment:1,markerPitchAlignment:1,markerFillPatternFile:1,markerLinePatternFile:1,textName:1,textPlacement:1,textFaceName:1,textStyle:1,textHorizontalAlignment:1,textVerticalAlignment:1,textRotationAlignment:1,textPitchAlignment:1,lineJoin:1,lineCap:1,linePatternFile:1,polygonPatternFile:1},Bo={lineDasharray:1,markerLineDasharray:1,uvScale:1,uvOffset:1};function Jo(t){return Go[t]?"string":qo(t)?"number":Bo[t]?"array":"color"}var Xo=Object.freeze({__proto__:null,compileStyle:function(t=[]){return function t(n){if(!Array.isArray(n))return t([n]);const e=[];for(let t=0;t<n.length;t++){let r;r=!0===n[t].filter?function(){return!0}:Lo(n[t].filter),e.push(lr({},n[t],{filter:r}))}return e}(t=t.map(t=>{const n=lr({},t);return n.filter&&n.filter.value&&(n.filter=n.filter.value),n}))},compileFilter:Lo,createExpression:Ro,isExpression:Ho,isInterpolated:qo,getExpressionType:Jo});const Yo="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope;class Zo extends Array{push(...t){const n=t.length;for(let e=0;e<n;e++)this[this.Y++]=t[e]}fill(t,n,e){super.fill(t,n,e),e>this.Y&&(this.Y=e)}set(t,n){t>=this.Y&&(this.Y=t+1),this[t]=n}getLength(){return this.Y}setLength(t){this.Y=t,super.length<t&&(super.length=t)}trySetLength(t){t>this.Y&&this.setLength(t)}reset(){this.Y=0}}const Ko={get:function(t,n){return"length"===n?t.getLength():t[n]}};class Qo extends Array{setLength(t){super.length=t}trySetLength(t){super.length=t}}let ta;class na{static createTypedArray(t,n){return ur(t,n)}static getInstance(){return ta}constructor(){this.Z=[],this.Y=0}get(){if(!Yo)return new Qo;const t=this.Z[this.Y]=this.Z[this.Y]||new Proxy(new Zo,Ko);return t.reset(),this.Y++,t}reset(){this.Y=0}}ta=new na;const ea=[],ra={},ia={},sa={},oa=[],aa=na.getInstance();class ua{static isAtlasLoaded(t,n={}){const{iconAtlas:e}=n;return!!(!t||e&&e.positions[t])}static genFnTypes(t){const n={};for(const e in t)if(Ho(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim(),s=Jo(e);n[r]=Ro(t[e],s),n[i]=(t,e)=>{let i;ra.zoom=t,ia.properties=e;try{i=n[r].evaluateWithoutErrorHandling(ra,ia,sa,null,oa)}catch(t){return null}return i}}else if(br(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim();qo(e)?(n[r]=p(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return br(i)?p(i)(t,e):i}):(n[r]=y(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return br(i)?y(i)(t,e):i})}return n}constructor(t,n,e){this.options=e;const r=[];this.symbolDef=n,this.symbol=m(n,()=>(r[0]=e.zoom,r)),this.styledVectors=[],this.properties={},this.K=e.fnTypes||ua.genFnTypes(this.symbolDef),br(this.symbolDef.visible)&&(this.tt=p(this.symbolDef.visible)),e.atlas&&(this.iconAtlas=e.atlas.iconAtlas,this.glyphAtlas=e.atlas.glyphAtlas),this.features=this.nt(t)}needAltitudeAttribute(){return this.options.forceAltitudeAttribute||this.maxPosZ>=Math.pow(2,17)||this.options.positionType===Float32Array}getPositionFormat(){return this.needAltitudeAttribute()?[{type:Int16Array,width:2,name:"aPosition"},{type:Float32Array,width:1,name:"aAltitude"}]:[{type:Int16Array,width:3,name:"aPosition"}]}fillPosition(t,n,e,r){this.needAltitudeAttribute()?(t.aPosition.push(n,e),t.aAltitude.push(r)):(Dr(ea,n,e,r),t.aPosition.push(ea[0],ea[1],ea[2]))}nt(t){if(!t.length)return t;const n="__fea_idx".trim();let e,r=0,i=t[r];for(;!i.geometry;)r++,i=t[r];if(Array.isArray(i.geometry)&&i.properties){let n=i.geometry[0];for(;Array.isArray(n);)n=n[0];n instanceof Ut&&(e=t)}if(!e)if(e=[],Array.isArray(i.geometry))for(let n=0;n<t.length;n++){const r=lr({},t[n]);e.push(hr(r))}else for(let r=0;r<t.length;r++){const i=t[r],s=He(i);for(let t=0;t<s.length;t++){const r=s[t];r[n]=i[n],e.push(r)}}if(this.maxPosZ=0,!this.options.forceAltitudeAttribute){const t="line"===this.symbolDef.textPlacement;let n=0,r=!1;const{textPitchAlignmentFn:i}=this.K;!i&&t&&"map"===this.symbolDef.textPitchAlignment&&(r=!0);for(let s=0;s<e.length;s++){const o=la(e[s]&&e[s].geometry);if(o>n&&(n=o),t&&!r&&i&&e[s].properties){const t=i(null,e[s].properties);"map"===t&&(r=t)}}this.hasMapPitchAlign=r,this.maxPosZ=n}const s=this.options.order;if(s){const t=[];for(let n=0;n<s.length;n++)s[n]&&t.push(Lo(s[n]));e=e.sort((n,e)=>{const r=t.length;let i=-1,s=-1;for(let o=0;o<r&&(t[o](n)&&(i=o),t[o](e)&&(s=o),!(i>=0&&i<r&&s>=0&&s<r));o++);return i-s})}return e}load(t=1){const n="__fea_idx".trim(),e="_debug_info".trim(),r=this.K,i=this.styledVectors;this.count=0;const s=this.features;if(!s||!s.length)return Promise.resolve(null);const o={},a={},u={zoom:this.options.zoom,isVector3D:!!this.options.center},h=[],l=m(this.symbolDef,()=>(h[0]=u.zoom,h));let c=0,f=s.length;const d=this.options.debugIndex;try{for(;c<f;c++){const t=s[c];if(!t||!t.geometry)continue;if(fr(d)&&t[e].index!==d)continue;t.properties||(t.properties={}),t.properties.$layer=t.layer,t.properties.$type=t.type;const h=this.createStyledVector(t,l,r,u,o,a);h&&h.feature.geometry&&(h.featureIdx=void 0===t[n]?c:t[n],this.count++,i.push(h))}}catch(t){return Promise.reject(t)}return this.options.atlas?Promise.resolve(this.pack(t)):this.loadAtlas(o,a).then(()=>this.pack(t))}loadAtlas(t,n){return new Promise((e,r)=>{this.fetchAtlas(t,n,(t,n)=>{if(t)r(t);else{if(n){const{icons:t,glyphs:e}=n;if(t&&Object.keys(t).length){for(const n in t){const e=t[n],{width:r,height:i,data:s}=e.data;e.data=new Qe({width:r,height:i},s)}this.iconAtlas=new nr(t)}if(e&&Object.keys(e).length){for(const t in e){const n=e[t];for(const t in n){const e=n[t],{width:r,height:i,data:s}=e.bitmap;e.bitmap=new Ke({width:r,height:i},s)}}this.glyphAtlas=new ir(e)}}e({glyphAtlas:this.glyphAtlas,iconAtlas:this.iconAtlas})}})})}fetchAtlas(t,n,e){Object.keys(t).length>0||Object.keys(n).length>0?this.options.requestor(t,n,e):e()}pack(t){if(!this.count)return null;if(null==t)throw new Error("layout scale is undefined");const n=this.createDataPack(this.styledVectors,t);if(!n)return null;n.properties=this.properties,this.empty&&(n.empty=!0);const e=n.buffers;delete n.buffers;const r={data:n,buffers:e};if(this.iconAtlas){const t=r.data.iconAtlas=ha(this.iconAtlas);if(t.glyphMap)for(const n in t.glyphMap)e.push(t.glyphMap[n].data.data.buffer);e.push(r.data.iconAtlas.image.data.buffer)}return this.glyphAtlas&&(r.data.glyphAtlas=ha(this.glyphAtlas),e.push(r.data.glyphAtlas.image.data.buffer)),r}createStyledVector(t,n,e,r){return new Tr(t,n,e,r)}createDataPack(t,n){if(!t||!t.length)return null;this.maxIndex=0,this.maxPos=0,this.maxAltitude=0,this.dynamicAttrs={};const e=this.data={};this.et=aa,aa.reset();let r=this.elements=aa.get();const i=this.getFormat(Array.isArray(t[0])?t[0][0].symbol:t[0].symbol),s=this.needAltitudeAttribute()?2:3;for(let t=0;t<i.length;t++)e[i[t].name]=aa.get();let o=aa.get(),a=0;const u=aa.get();let h=0,l=!1,c=!0;const f=new Set;for(let r=0,i=t.length;r<i;r++){if(!t[r].feature.geometry)continue;const i=Array.isArray(t[r])?t[r][0].feature.id:t[r].feature.id;c&&(void 0!==ia.id?f&&(f.has(ia.id)?c=!1:f.add(ia.id)):c=!1),fr(i)&&(Math.abs(i)>h&&(h=Math.abs(i)),i<0&&(l=!0));const d=this.data.aPosition.length;if(Array.isArray(t[r]))for(let e=0;e<t[r].length;e++)this.rt(t[r][e],n);else this.rt(t[r],n);const p=(e.aPosition.length-d)/s;for(let n=0;n<p;n++)o.push(t[r].featureIdx),fr(i)&&u.push(i);a=Math.max(a,t[r].featureIdx)}if(this.countOutOfAngle>0&&console.warn("text anchor along line is ignored as anchor\'s line angle is bigger than textMaxAngle."),this.hasElements()&&!r.length)return null;const d=ar(a);o=na.createTypedArray(o,d),i[0].type=this.options.positionType?this.options.positionType:or(this.maxPos);const p=this.options.center;if(p&&(p[0]||p[1])){const t=e.aPosition;for(let n=0;n<t.length;n+=s)t[n]-=p[0],t[n+1]-=p[1]}const y=function(t,n){const e={};for(let r=0;r<t.length;r++){const i=t[r],s=i.type,o=i.name;e[o]=s===Array?n[o]:ur(n[o],s)}return e}(i,e);y.aPickingId=o;const m=[];for(const t in y)m.push(y[t].buffer);const g=sr(this.maxIndex);r=na.createTypedArray(r,g),m.push(r.buffer);const v={data:y,isIdUnique:c,is2D:0===this.maxPosZ,indices:this.hasElements()?r:null,positionSize:s,buffers:m,symbolIndex:this.symbolDef.index||{index:0},dynamicAttributes:this.dynamicAttrs};if(this.it&&(v.markerPlacement=this.it),this.st&&(v.textPlacement=this.st),u.length){const t=l?or(h):ar(h);v.featureIds=na.createTypedArray(u,t),m.push(v.featureIds.buffer)}else v.featureIds=[];return v.pickingIdIndiceMap=Cr(o,v.indices),v}rt(t,n){this.tt&&!this.tt(this.options.zoom,t.feature.properties)||this.placeVector(t,n,this.formatWidth)}addElements(...t){this.maxIndex=Math.max(this.maxIndex,...t),this.elements.push(...t)}hasElements(){return!0}getAltitude(t){const{altitudeProperty:n,defaultAltitude:e,altitudeScale:r}=this.options;let i=Or(t,n,e);return r&&(i*=r),this.maxAltitude=Math.max(this.maxAltitude,Math.abs(i)),i}getIconAtlasMaxValue(){const t=this.iconAtlas.positions;let n=0;for(const e in t)if(gr(t,e)){const{tl:r,displaySize:i}=t[e],s=Math.max(r[0],r[1],i[0]-1,i[1]-1);s>n&&(n=s)}return n}}function ha(t){let n=t.positions,e=t.image&&t.image.format||"alpha";if(t instanceof nr){n={};for(const e in t.positions){const r=t.positions[e];n[e]={paddedRect:r.paddedRect,pixelRatio:r.pixelRatio,tl:r.tl,br:r.br,displaySize:r.displaySize}}e="rgba"}const r=t.image;return{image:{width:r.width,height:r.height,data:r.data,format:e},glyphMap:t.glyphMap,positions:n}}function la(t){if(!t)return 0;let n=0;if(Array.isArray(t))for(let e=0;e<t.length;e++)if(Array.isArray(t[e])){const r=la(t[e]);r>n&&(n=r)}else{const r=Math.abs(t[e].z||0);r>n&&(n=r)}else{const e=Math.abs(t.z||0);e>n&&(n=e)}return n}function ca(t,n,e,r){const i="__fn_textSize".trim();let s=t.textSize;if(cr(n.textSize))return[16,16];t[i]&&(s=t[i]);const o=[];if(o[0]=yr(s)?s(r,e):s,d(o[0])){const n=o[0].ot=o[0].ot||JSON.stringify(o[0]);t.ut||(t.ut={}),t.ut[n]||(t.ut[n]=p(o[0])),o[0]=(0,t.ut[n])(r,e)}return o[1]=o[0],o}function fa(t){const n=t.stops;let e=-1/0;for(let t=0;t<n.length;t++){let r=n[t][1];dr(n[t][1])&&(r=fa(n[t][1])),r>e&&(e=r)}return e}function da(t,n,e){return[n||"normal",e||"normal","24px",t||"Open Sans Regular"].join(" ")}const pa=/\\{[\\w-]+(?:\\|[\\w-]+)*\\}/g;function ya(t,n){return pr(t)?t.replace(pa,(function(t){if(!n)return"";if((t=t.substring(1,t.length-1)).indexOf("|")>0){const e=t.split("|");for(let t=0;t<e.length;t++){const r=n[e[t]];if(!cr(r))return r}return""}const e=n[t];return cr(e)?"":Array.isArray(e)?e.join():e})):t}var ma=Object.freeze({__proto__:null,getSDFFont:da,resolveText:ya,resolveVarNames:function(t){return t.match(pa)},resolveExpVarNames:function t(n,e){if(2!==e.length||"get"!==e[0])for(let r=0;r<e.length;r++)2===e[r].length&&"get"===e[r][0]?n.push(e[r][1]):Array.isArray(e[r])&&t(n,e[r]);else n.push(e[1])}});const ga=t=>t>=11904&&t<=12031,va=t=>t>=12032&&t<=12255,ba=t=>t>=12272&&t<=12287,wa=t=>t>=12288&&t<=12351,Ma=t=>t>=12352&&t<=12447,xa=t=>t>=12448&&t<=12543,Fa=t=>t>=12544&&t<=12591,Aa=t=>t>=12704&&t<=12735,ka=t=>t>=12736&&t<=12783,Pa=t=>t>=12784&&t<=12799,Sa=t=>t>=12800&&t<=13055,_a=t=>t>=13056&&t<=13311,Oa=t=>t>=13312&&t<=19903,Ea=t=>t>=19968&&t<=40959,Ia=t=>t>=40960&&t<=42127,$a=t=>t>=42128&&t<=42191,za=t=>t>=63744&&t<=64255,Ca=t=>t>=64336&&t<=65023,Ta=t=>t>=65040&&t<=65055,Da=t=>t>=65072&&t<=65103,ja=t=>t>=65104&&t<=65135,Ua=t=>t>=65136&&t<=65279,Na=t=>t>=65280&&t<=65519;function La(t){return!((t=>t>=1536&&t<=1791)(t)||(t=>t>=1872&&t<=1919)(t)||(t=>t>=2208&&t<=2303)(t)||Ca(t)||Ua(t))}function Va(t){return!!(746===t||747===t||!(t<4352)&&(Aa(t)||Fa(t)||Da(t)&&!(t>=65097&&t<=65103)||za(t)||_a(t)||ga(t)||ka(t)||!(!wa(t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||Oa(t)||Ea(t)||Sa(t)||(t=>t>=12592&&t<=12687)(t)||(t=>t>=43360&&t<=43391)(t)||(t=>t>=55216&&t<=55295)(t)||(t=>t>=4352&&t<=4607)(t)||(t=>t>=44032&&t<=55215)(t)||Ma(t)||ba(t)||(t=>t>=12688&&t<=12703)(t)||va(t)||Pa(t)||xa(t)&&12540!==t||!(!Na(t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!ja(t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||(t=>t>=5120&&t<=5759)(t)||(t=>t>=6320&&t<=6399)(t)||Ta(t)||(t=>t>=19904&&t<=19967)(t)||Ia(t)||$a(t)))}function Ra(t){return!(Va(t)||function(t){return!!((t=>t>=128&&t<=255)(t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||(t=>t>=8192&&t<=8303)(t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||(t=>t>=8448&&t<=8527)(t)||(t=>t>=8528&&t<=8591)(t)||(t=>t>=8960&&t<=9215)(t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||(t=>t>=9216&&t<=9279)(t)&&9251!==t||(t=>t>=9280&&t<=9311)(t)||(t=>t>=9312&&t<=9471)(t)||(t=>t>=9632&&t<=9727)(t)||(t=>t>=9728&&t<=9983)(t)&&!(t>=9754&&t<=9759)||(t=>t>=11008&&t<=11263)(t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||wa(t)||xa(t)||(t=>t>=57344&&t<=63743)(t)||Da(t)||ja(t)||Na(t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function Ha(t){return t>=1424&&t<=2303||Ca(t)||Ua(t)}const Wa=[[9,9],[32,32],[5760,5760],[8192,8198],[8200,8202],[8287,12288],[6158,6158],[8203,8205]];function qa(t){for(const n of Wa)if(t>=n[0]&&t<=n[1])return!0;return!1}const Ga={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\\\":"\","]":"﹈","^":"^",ht:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};function Ba(t,n,e,r,i,s,o,a,u,h){let l=t.trim();2===h&&(l=function(t){let n="";for(let e=0;e<t.length;e++){const r=t.charCodeAt(e+1)||null,i=t.charCodeAt(e-1)||null;n+=r&&Ra(r)&&!Ga[t[e+1]]||i&&Ra(i)&&!Ga[t[e-1]]||!Ga[t[e]]?t[e]:Ga[t[e]]}return n}(l));const c=[],f={positionedGlyphs:c,text:l,top:a[1],bottom:a[1],left:a[0],right:a[0],writingMode:h};let d;return d=function(t,n){const e=[];let r=0;for(let i=0;i<n.length;i++){const s=n[i];e.push(t.substring(r,s)),r=s}return r<t.length&&e.push(t.substring(r,t.length)),e}(l,function(t,n,e,r){if(!e)return[];if(!t)return[];const i=[],s=function(t,n,e,r){let i=0;for(let e=0;e<t.length;e++){const s=r[t.charCodeAt(e)];s&&(i+=s.metrics.advance+n)}return i/Math.max(1,Math.ceil(i/e))}(t,n,e,r);let o=0;for(let e=0;e<t.length;e++){const u=t.charCodeAt(e),h=r[u];h&&!Ja[u]&&(o+=h.metrics.advance+n),e<t.length-1&&(Xa[u]||!((a=u)<11904)&&(Aa(a)||Fa(a)||Da(a)||za(a)||_a(a)||ga(a)||ka(a)||wa(a)||Oa(a)||Ea(a)||Sa(a)||Na(a)||Ma(a)||ba(a)||va(a)||Pa(a)||xa(a)||Ta(a)||$a(a)||Ia(a)))&&i.push(Ka(e+1,o,s,i,Za(u,t.charCodeAt(e+1)),!1))}var a;return function t(n){return n?t(n.priorBreak).concat(n.index):[]}(Ka(t.length,o,s,i,0,!0))}(l,o,e,n)),function(t,n,e,r,i,s,o,a,u,h){let l=0,c=0,f=0;const d=t.positionedGlyphs,p="right"===s?1:"left"===s?0:.5;for(let t=0;t<e.length;t++){let i=e[t];if(i=i.trim(),!i.length){c-=r;continue}const s=d.length;for(let t=0;t<i.length;t++){const e=i.charCodeAt(t),r=n[e];r&&(Va(e)&&1!==o?(32!==e&&d.push({glyph:e,x:l,y:0,vertical:!0}),l+=u+a):(32!==e&&d.push({glyph:e,x:l,y:c,vertical:!1}),l+=r.metrics.advance+a))}d.length!==s&&(f=Math.max(l-a,f),tu(d,n,s,d.length-1,p)),l=0,c-=r}const{horizontalAlign:y,verticalAlign:m}=Qa(i,void 0);!function(t,n,e,r,i,s,o){const a=(n-e)*i,u=-(-r*o+.5)*s;if(a||u)for(let n=0;n<t.length;n++)t[n].x+=a,t[n].y+=u}(d,p,y,m,f,r,e.length);const g=e.length*r;t.top+=-m*g,t.bottom=t.top+g,t.left+=-y*f,t.right=t.left+f}(f,n,d,r,i,s,h,o,u),!!c.length&&f}const Ja={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Xa={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function Ya(t,n,e,r){const i=Math.pow(t-n,2);return r?t<n?i/2:2*i:i+Math.abs(e)*e}function Za(t,n){let e=0;return 10===t&&(e-=1e4),40!==t&&65288!==t||(e+=50),41!==n&&65289!==n||(e+=50),e}function Ka(t,n,e,r,i,s){let o=null,a=Ya(n,e,i,s);for(let t=0;t<r.length;t++){const u=r[t],h=Ya(n-u.x,e,i,s)+u.badness;h<=a&&(o=u,a=h)}return{index:t,x:n,priorBreak:o,badness:a}}function Qa(t,n){let e=.5,r=.5;switch(t){case"right":case"top-right":case"bottom-right":e=n?1:0;break;case"left":case"top-left":case"bottom-left":e=n?0:1}switch(t){case"bottom":case"bottom-right":case"bottom-left":r=n?1:0;break;case"top":case"top-right":case"top-left":r=n?0:1}return{horizontalAlign:e,verticalAlign:r}}function tu(t,n,e,r,i){if(!i)return;const s=n[t[r].glyph];if(s){const n=(t[r].x+s.metrics.advance)*i;if(!n)return;for(let i=e;i<=r;i++)t[i].x-=n}}function nu(t){if(!function(t){for(const n of t)if(Ha(n.charCodeAt(0)))return!0;return!1}(t))return t;const n=[],e=[],r=[];let i=0,s=0,o=1,a=1;for(const u of t){const t=u.codePointAt(0);qa(t)?(r.push(u),i++):(o=Ha(t)?-1:1,a!==o?(s=i,e.length&&(a>0&&e.reverse(),n.push(...e)),r.length&&(n.splice(s,0,...r),r.length=0),a=o,e.length=0):r.length&&(e.push(...r),r.length=0),e.push(u),i++)}return r.length&&e.push(...r),e.length&&(a>0&&e.reverse(),n.push(...e)),n.reverse().join("")}const eu=/\\{ *([\\w_]+) *\\}/g;class ru{constructor(t,n,e,r,i){this.feature=t,this.symbolDef=n,this.symbol=e,this.options=i,this.lt=this.ct.bind(this),this.K=r}ct(t,n){return this.feature.properties[n]||"default"}getShape(t,n){if(this.ft)return this.ft;const{textHorizontalAlignmentFn:e,textVerticalAlignmentFn:r,markerHorizontalAlignmentFn:i,markerVerticalAlignmentFn:s,textWrapWidthFn:o}=this.K;let a;const u=this.symbol,h=this.getIconAndGlyph(),l=this.feature.properties;if(h&&h.glyph){const{font:t,text:i}=h.glyph;if(""===i)return null;const s=this.size[0]/24,c=24,f=u.textKeepUpright,d="map"===u.textRotationAlignment&&"line"===u.textPlacement&&!u.isIconText,p=n.glyphMap[t],y=iu(e?e(null,l):u.textHorizontalAlignment,r?r(null,l):u.textVerticalAlignment),m=1.2*c,g=function(t){for(let n=0;n<t.length;n++)if(!La(t.charAt(n).charCodeAt(0)))return!1;return!0}(i),v=g&&u.textLetterSpacing/s||0,b=[u.textDx/s||0,u.textDy/s||0],w=((o?o(null,l):u.textWrapWidth)||10*c)/s;a={},a.horizontal=Ba(i,p,w,m,y,"center",v,b,c,1),g&&d&&f&&(a.vertical=Ba(i,p,w,m,y,"center",v,b,c,2))}else if(h&&h.icon){if(!t.positions[h.icon.url])return null;const n=iu(i?i(null,l):u.markerHorizontalAlignment,s?s(null,l):u.markerVerticalAlignment);a=function(t,n,e){let{horizontalAlign:r,verticalAlign:i}=Qa(n,e);e?r=1-r:i=1-i;const s=-2048*r,o=-2048*i;return{image:t,top:o,bottom:o+2048,left:s,right:s+2048}}(t.positions[h.icon.url],n,this.options.isVector3D),this.size||(this.size=a.image.displaySize)}return this.ft=a,a}getIconAndGlyph(){if(this.iconGlyph)return this.iconGlyph;const{markerFileFn:t,markerTypeFn:n,markerPathFn:e,markerWidthFn:r,markerHeightFn:i,markerFillFn:s,markerFillPatternFileFn:o,markerFillOpacityFn:a,markerTextFitFn:u,markerTextFitPaddingFn:h,markerLineColorFn:l,markerLineWidthFn:c,markerLineOpacityFn:f,markerLineDasharrayFn:y,markerLinePatternFileFn:m,markerPathWidthFn:g,markerPathHeightFn:v,textNameFn:b,textFaceNameFn:w,textStyleFn:M,textWeightFn:x}=this.K,{zoom:F}=this.options,A={},k=this.symbol,P=this.feature.properties,S=t?t(null,P):k.markerFile,_=n?n(null,P):k.markerType,O=S||_||k.markerPath,E=!cr(this.symbolDef.textName);let I;if(O){I=function(t,n,e,r,i,s){if(cr(n.markerWidth)&&cr(n.markerHeight))return null;const o="__fn_markerWidth".trim(),a="__fn_markerHeight".trim();let u=n.markerWidth||0,h=n.markerHeight||0;return dr(u)&&("identity"!==u.type?u=fa(u):(u=t.markerWidth,t[o]&&(u=t[o](r,e)),dr(u)&&(u="identity"===u.type?i(r,e):fa(u)))),dr(h)&&("identity"!==h.type?h=fa(h):(h=t.markerHeight,t[a]&&(h=t[a](r,e)),dr(h)&&(h="identity"===h.type?s(r,e):fa(h)))),[u,h]}(k,this.symbolDef,P,F,r,i)||[0,0];let t=k.markerTextFit;if(u&&(t=u(F,P)),t&&k.text&&"none"!==t){const n=k.text.textSize;let e=k.text.textName;d(e)&&(e=p(e)(F,P));const r=ya(e,P);if(r){const e="__fn_textSize".trim(),i="__fn_textSize_0".trim();d(n)&&!k.text[e]&&(k.text[i]=p(n),k.text[e]=(t,n)=>{const e=k.text[i](t,n);return d(e)?p(e)(t,n):e});const s=ca(k.text,k.text,P,F);if("width"!==t&&"both"!==t||(I[0]=s[0]*r.length),"height"!==t&&"both"!==t||(I[1]=s[1]),s[0]&&s[1]){let t=k.markerTextFitPadding||[0,0,0,0];h&&(t=h(F,P)),I[0]+=t[1]+t[3],I[1]+=t[0]+t[2]}}else I[0]=I[1]=-1}}if(E&&(I=ca(k,this.symbolDef,P,F)),!I)return A;if(I[0]=Math.ceil(I[0]),I[1]=Math.ceil(I[1]),this.size=I,O&&I[0]>=0&&I[1]>=0){let t;if(_){const n={};if(n.markerType=_,"path"===_&&(n.markerPath=e?e(null,P):k.markerPath,n.markerPathWidth=g?g(null,P):k.markerPathWidth,n.markerPathHeight=v?v(null,P):k.markerPathHeight),r){const t=r(null,P);cr(t)||(n.markerWidth=t)}else k.markerWidth>=0&&(n.markerWidth=k.markerWidth);if(i){const t=i(null,P);cr(t)||(n.markerHeight=t)}else k.markerHeight>=0&&(n.markerHeight=k.markerHeight);if(s){const t=s(null,P);cr(t)||(n.markerFill=t)}else k.markerFill&&(n.markerFill=k.markerFill);if(o){const t=o(null,P);cr(t)||(n.markerFillPatternFile=t)}else k.markerFillPatternFile&&(n.markerFillPatternFile=k.markerFillPatternFile);if(a){const t=a(null,P);cr(t)||(n.markerFillOpacity=t)}else k.markerFillOpacity>=0&&(n.markerFillOpacity=k.markerFillOpacity);if(l){const t=l(null,P);cr(t)||(n.markerLineColor=t)}else k.markerLineColor&&(n.markerLineColor=k.markerLineColor);if(c){const t=c(null,P);cr(t)||(n.markerLineWidth=t)}else k.markerLineWidth>=0&&(n.markerLineWidth=k.markerLineWidth);if(f){const t=f(null,P);cr(t)||(n.markerLineOpacity=t)}else k.markerLineOpacity>=0&&(n.markerLineOpacity=k.markerLineOpacity);if(y){const t=y(null,P);cr(t)||(n.markerLineDasharray=t)}else k.markerLineDasharray&&(n.markerLineDasharray=k.markerLineDasharray);if(m){const t=m(null,P);cr(t)||(n.markerLinePatternFile=t)}else k.markerLinePatternFile&&(n.markerLinePatternFile=k.markerLinePatternFile);t="vector://"+JSON.stringify(n)}else t=S?S.replace(eu,this.lt):k.markerPath?function(t,n,e){if(!t.markerPath)return null;let r=1;const i=function(t){const n={stroke:{stroke:t.markerLineColor,"stroke-width":t.markerLineWidth,"stroke-opacity":t.markerLineOpacity,"stroke-dasharray":null,"stroke-linecap":"butt","stroke-linejoin":"round"},fill:{fill:t.markerFill,"fill-opacity":t.markerFillOpacity}};return 0===n.stroke["stroke-width"]&&(n.stroke["stroke-opacity"]=0),n}(t);fr(t.markerOpacity)&&(r=t.markerOpacity),fr(t.opacity)&&(r*=t.opacity);const s={};if(i){for(const t in i.stroke)gr(i.stroke,t)&&(cr(i.stroke[t])||(s[t]=i.stroke[t]));for(const t in i.fill)gr(i.fill,t)&&(cr(i.fill[t])||(s[t]=i.fill[t]))}const o=Array.isArray(t.markerPath)?t.markerPath:[t.markerPath];let a;const u=[];for(let t=0;t<o.length;t++)a=pr(o[t])?{path:o[t]}:o[t],a=lr({},a,s),a.d=a.path,delete a.path,u.push(a);const h=[\'<svg version="1.1"\',\'xmlns="http://www.w3.org/2000/svg"\'];r<1&&h.push(\'opacity="\'+r+\'"\'),t.markerPathWidth&&t.markerPathHeight&&h.push(\'viewBox="0 0 \'+t.markerPathWidth+" "+t.markerPathHeight+\'"\'),h.push(\'preserveAspectRatio="none"\'),n&&h.push(\'width="\'+n+\'"\'),e&&h.push(\'height="\'+e+\'"\'),h.push("><defs></defs>");for(let t=0;t<u.length;t++){let n="<path ";for(const e in u[t])gr(u[t],e)&&(n+=" "+e+\'="\'+u[t][e]+\'"\');n+="></path>",h.push(n)}return h.push("</svg>"),"data:image/svg+xml;base64,"+btoa(h.join(" "))}(k,I[0],I[1]):null;A.icon={url:t,size:I}}if(E){const t=b?b(this.options.zoom,P):k.textName;if(t||0===t){const n=da(w?w(null,P):k.textFaceName,M?M(null,P):k.textStyle,x?x(null,P):k.textWeight);let e=ya(t,P);e&&e.length&&(e=nu(e),A.glyph={font:n,text:e})}}return this.iconGlyph=A,A}}function iu(t,n){n&&"middle"!==n||(n="center"),t&&"middle"!==t||(t="center");let e="center"!==n?n:"";return e+="center"!==t?(e.length?"-":"")+t:"",e\n/*!\n * From mapbox-gl-js\n * MIT License\n * https://github.com/mapbox/mapbox-gl-js\n */}function su(t,n,e,r,i){const s=[];let o;for(let a=0;a<t.length;a++){const u=t[a];let h,l=!1;for(let t=0;t<u.length-1;t++){let a=u[t],c=u[t+1];a.x<n&&c.x<n||(a.x<n?(o=a,a=new Ut(n,a.y+(n-a.x)/(c.x-a.x)*(c.y-a.y)).T(),a.z=o.z+(n-o.x)/(c.x-o.x)*(c.z-o.z),l=!0):c.x<n&&(o=c,c=new Ut(n,a.y+(n-a.x)/(c.x-a.x)*(c.y-a.y)).T(),c.z=a.z+(n-a.x)/(o.x-a.x)*(o.z-a.z),l=!0),a.y<e&&c.y<e||(a.y<e?(o=a,a=new Ut(a.x+(e-a.y)/(c.y-a.y)*(c.x-a.x),e).T(),a.z=o.z+(e-o.y)/(c.y-o.y)*(c.z-o.z),l=!0):c.y<e&&(o=c,c=new Ut(a.x+(e-a.y)/(c.y-a.y)*(c.x-a.x),e).T(),c.z=a.z+(e-a.y)/(o.y-a.y)*(o.z-a.z),l=!0),a.x>=r&&c.x>=r||(a.x>=r?(o=a,a=new Ut(r,a.y+(r-a.x)/(c.x-a.x)*(c.y-a.y)).T(),a.z=o.z+(r-o.x)/(c.x-o.x)*(c.z-o.z),l=!0):c.x>=r&&(o=c,c=new Ut(r,a.y+(r-a.x)/(c.x-a.x)*(c.y-a.y)).T(),c.z=a.z+(r-a.x)/(o.x-a.x)*(o.z-a.z),l=!0),a.y>=i&&c.y>=i||(a.y>=i?(o=a,a=new Ut(a.x+(i-a.y)/(c.y-a.y)*(c.x-a.x),i).T(),a.z=o.z+(i-o.y)/(c.y-o.y)*(c.z-o.z),l=!0):c.y>=i&&(o=c,c=new Ut(a.x+(i-a.y)/(c.y-a.y)*(c.x-a.x),i).T(),c.z=a.z+(i-a.y)/(o.y-a.y)*(o.z-a.z),l=!0),h&&a.equals(h[h.length-1])||(h=[a],s.push(h)),l&&(h.clipped=!0),h.push(c)))))}}return s}class ou extends Ut{constructor(t,n,e,r){super(t,n),this.angle=e,void 0!==r&&(this.segment=r)}clone(){return new ou(this.x,this.y,this.angle,this.segment)}}\n/*!\n * From mapbox-gl-js\n * MIT License\n * https://github.com/mapbox/mapbox-gl-js\n */function au(t,n,e,r,i){if(void 0===n.segment)return!0;let s=n,o=n.segment+1,a=0;for(;a>-e/2;){if(o--,o<0)return!1;a-=t[o].dist(s),s=t[o]}a+=t[o].dist(t[o+1]),o++;const u=[];let h=0;for(;a<e/2;){const n=t[o],e=t[o+1];if(!e)return!1;let s=t[o-1].angleTo(n)-n.angleTo(e);for(s=Math.abs((s+3*Math.PI)%(2*Math.PI)-Math.PI),u.push({distance:a,angleDelta:s}),h+=s;a-u[0].distance>r;)h-=u.shift().angleDelta;if(h>i)return!1;o++,a+=n.dist(e)}return!0}function uu(t,n,e,r,i,s,o,a,u,h,l){const c=function(t,n,e){return t?.6*n*e:0}(r,s,o),f=function(t,n){return Math.max(t?t.right-t.left:0,n?n.right-n.left:0)}(r,i),d=0===t[0].x||t[0].x===u||0===t[0].y||t[0].y===u;return n-f*o<n/4&&(n=f*o+n/4),function t(n,e,r,i,s,o,a,u,h,l,c){let f=0;const d=o/2,p=function(t){let n=0;for(let e=0;e<t.length-1;e++)n+=t[e].dist(t[e+1]);return n}(n);let y=0,m=e-r,g=[];for(let t=0;t<n.length-1;t++){const e=n[t],a=n[t+1],u=e.dist(a),v=a.angleTo(e);for(;m+r<y+u;){m+=r;const b=(m-y)/u,w=hu(e.x,a.x,b),M=hu(e.y,a.y,b),x=hu(e.z||0,a.z||0,b);if(w>=0&&w<h&&M>=0&&M<h&&m-d>=0&&m+d<=p){const r=new ou(w,M,v,t);r.z=x,l&&(r.axis=[e.y-M,w-e.x],r.angleR=x===(e.z||0)?0:Math.atan(.9*(x-(e.z||0))*c/e.dist(r))),r.line=n,r.T(),!i||au(n,r,o,i,s)?g.push(r):i&&f++}}y+=u}return u||g.length||a||(g=t(n,y/2,r,i,s,o,a,!0,h,l,c)),g.countOutOfAngle=f,g}(t,d?n/2*a%n:(f/2+2*s)*o*a%n,n,c,e,f*o,d,!1,u,h,l)}function hu(t,n,e){return t*(1-e)+n*e}function lu(t,n){const e=t.length;if(e<=1)return[t];const r=[];let i,s;for(let n=0;n<e;n++){const e=Sr(t[n]);0!==e&&(t[n].area=Math.abs(e),void 0===s&&(s=e<0),s===e<0?(i&&r.push(i),i=[t[n]]):i.push(t[n]))}if(i&&r.push(i),n>1)for(let t=0;t<r.length;t++)r[t].length<=n||(Gn(r[t],n,1,r[t].length-1,cu),r[t]=r[t].slice(0,n));return r}function cu(t,n){return n.area-t.area}function fu(t,n,e){const r=n.distSqr(e);if(0===r)return t.distSqr(n);const i=((t.x-n.x)*(e.x-n.x)+(t.y-n.y)*(e.y-n.y))/r;return t.distSqr(i<0?n:i>1?e:e.sub(n).k(i).m(n))}function du(t,n=1,e=!1){let r=1/0,i=1/0,s=-1/0,o=-1/0;const a=t[0];for(let t=0;t<a.length;t++){const n=a[t];(!t||n.x<r)&&(r=n.x),(!t||n.y<i)&&(i=n.y),(!t||n.x>s)&&(s=n.x),(!t||n.y>o)&&(o=n.y)}const u=Math.min(s-r,o-i);let h=u/2;const l=new Yn(null,pu);if(0===u)return new Ut(r,i);for(let n=r;n<s;n+=u)for(let e=i;e<o;e+=u)l.push(new yu(n+h,e+h,h,t));let c=function(t){let n=0,e=0,r=0;const i=t[0];for(let t=0,s=i.length,o=s-1;t<s;o=t++){const s=i[t],a=i[o],u=s.x*a.y-a.x*s.y;e+=(s.x+a.x)*u,r+=(s.y+a.y)*u,n+=3*u}return new yu(e/n,r/n,0,t)}(t),f=l.length;for(;l.length;){const r=l.pop();(r.d>c.d||!c.d)&&(c=r,e&&console.log("found best %d after %d probes",Math.round(1e4*r.d)/1e4,f)),r.max-c.d<=n||(h=r.h/2,l.push(new yu(r.p.x-h,r.p.y-h,h,t)),l.push(new yu(r.p.x+h,r.p.y-h,h,t)),l.push(new yu(r.p.x-h,r.p.y+h,h,t)),l.push(new yu(r.p.x+h,r.p.y+h,h,t)),f+=4)}return e&&(console.log("num probes: "+f),console.log("best distance: "+c.d)),c.p}function pu(t,n){return n.max-t.max}function yu(t,n,e,r){this.p=new Ut(t,n),this.h=e,this.d=function(t,n){let e=!1,r=1/0;for(let i=0;i<n.length;i++){const s=n[i];for(let n=0,i=s.length,o=i-1;n<i;o=n++){const i=s[n],a=s[o];i.y>t.y!=a.y>t.y&&t.x<(a.x-i.x)*(t.y-i.y)/(a.y-i.y)+i.x&&(e=!e),r=Math.min(r,fu(t,i,a))}}return(e?1:-1)*Math.sqrt(r)}(this.p,r),this.max=this.d+this.h*Math.SQRT2}function mu(t,n,e,r,i,s,o,a,u,h){const{feature:l,size:c,symbol:f}=t,d=c?24:0,p=i*(c?c[0]/d:1);if("line"===o){const t=[];t.countOutOfAngle=0;let i=l.geometry;s&&(i=su(l.geometry,0,0,s,s));for(let o=0;o<i.length;o++){const l=uu(i[o],a,e,f.isIconText?null:r&&r.vertical||r&&r.horizontal||r,null,d,f.isIconText?1:p,1,s||1/0,u,h);if(f.textPlacement&&!f.isIconText)for(let t=0;t<l.length;t++)l[t].startIndex=n.length/3;if(t.push.apply(t,l),f.textPlacement&&!f.isIconText)for(let t=0;t<i[o].length;t++)n.push(i[o][t].x,i[o][t].y,i[o][t].z||0);t.countOutOfAngle+=l.countOutOfAngle||0}return t}return gu(l,o,s)}function gu(t,n,e,r,i){const s=[];if(3===t.type){const o=lu(t.geometry,0);for(let t=0;t<o.length;t++){const a=o[t];if("vertex"===n)for(let t=0;t<a.length;t++){const n=a[t];for(let o=0;o<n.length;o++)Ir(n[o],e)||(s.push(n[o]),r&&(0===o?vu(n[o],n[o],n[t+1],i):vu(n[o],n[o-1],n[o],i)))}else if("vertex-first"===n){const t=a[0];t&&t[0]&&!Ir(t[0],e)&&(s.push(t[0]),r&&vu(t[0],t[0],t[1],i))}else if("vertex-last"===n||"vertex-firstlast"===n){const t=a[0];if("vertex-firstlast"===n&&t&&t[0]&&!Ir(t[0],e)&&(s.push(t[0]),r&&vu(t[0],t[0],t[1],i)),t&&t[t.length-1]&&!Ir(t[t.length-1],e)){const n=t.length-1;s.push(t[n]),r&&vu(t[n],t[n-1],t[n],i)}}else{const t=du(a,16);Ir(t,e)||s.push(t)}}}else if(2===t.type)for(let o=0;o<t.geometry.length;o++){const a=t.geometry[o];if("vertex"===n)for(let t=0;t<a.length;t++)Ir(a[t],e)||(s.push(a[t]),r&&(0===t?vu(a[t],a[t],a[t+1],i):vu(a[t],a[t-1],a[t],i)));else if("vertex-last"===n||"vertex-firstlast"===n){if("vertex-firstlast"!==n||Ir(a[0],e)||(s.push(a[0]),r&&vu(a[0],a[0],a[1],i)),a&&a[a.length-1]&&!Ir(a[a.length-1],e)){const t=a.length-1;s.push(a[t]),r&&vu(a[t],a[t-1],a[t],i)}}else Ir(a[0],e)||(s.push(a[0]),r&&vu(a[0],a[0],a[1],i))}else if(1===t.type)for(let n=0;n<t.geometry.length;n++){const i=t.geometry[n];for(let t=0;t<i.length;t++){const n=i[t];Ir(n,e)||(r&&(n.xRotation=0,n.yRotation=0,n.zRotation=0),s.push(n))}}return s}function vu(t,n,e,r){if(t.xRotation||t.yRotation||t.zRotation)return t;const i=e.x-n.x,s=n.y-e.y,o=(e.z-n.z)*r,a=Math.atan2(s,i);t.zRotation=a;const u=Math.atan2(o,Math.sqrt(i*i+s*s));return t.xyRotation=u,t}function bu(t,n){const e={},r={},i=[];let s=0;function o(n){i.push(t[n]),s++}function a(t,n,e){const s=r[t];return delete r[t],r[n]=s,i[s].geometry[0].pop(),i[s].geometry[0]=i[s].geometry[0].concat(e[0]),s}function u(t,n,r){const s=e[n];return delete e[n],e[t]=s,i[s].geometry[0].shift(),i[s].geometry[0]=r[0].concat(i[s].geometry[0]),s}function h(t,n,e){const r=e?n[0][n[0].length-1]:n[0][0];return`${t}:${r.x}:${r.y}`}for(let l=0;l<t.length;l++){const c=t[l],f=c.geometry;if(!f)continue;const d=c.properties[n]?c.properties[n].toString():null;if(!d){o(l);continue}const p=h(d,f),y=h(d,f,!0);if(p in r&&y in e&&r[p]!==e[y]){const t=u(p,y,f),n=a(p,y,i[t].geometry);delete e[p],delete r[y],r[h(d,i[n].geometry,!0)]=n,i[t].geometry=null}else p in r?a(p,y,f):y in e?u(p,y,f):(o(l),e[p]=s-1,r[y]=s-1)}return i.filter(t=>t.geometry)}class wu extends ua{static needMerge(t,n,e){if(!t)return!1;let r="line"===t.textPlacement||"line"===t.markerPlacement;return r||(n.textPlacementFn&&(r="line"===n.textPlacementFn(e)),n.markerPlacementFn&&(r="line"===n.markerPlacementFn(e))),t.mergeOnProperty&&r}static mergeLineFeatures(t,n,e,r){const i="__index".trim();let s=n.textPlacement,o=n.markerPlacement;e.textPlacementFn&&(s=e.textPlacementFn(r)),e.markerPlacementFn&&(o=e.markerPlacementFn(r));const a=function(t,n,e,r,i){const s="__index".trim(),o=ua.genFnTypes(n),{mergeOnPropertyFn:a}=o;if(!n.mergeOnProperty||"line"!==r&&"line"!==e)return[];if(!($r(u=n.mergeOnProperty)||"string"!=typeof u&&(null===u.constructor||u.constructor!==String)||"line"!==r&&"line"!==e))return[{features:t,property:n.mergeOnProperty}];var u;const h=[],l={},c=[];for(let o=0;o<t.length;o++){t[o][s]=o;const u=t[o].properties=t[o].properties||{};u.$layer=t[o].layer,u.$type=t[o].type;let f=e;"line"!==f&&(f=r);const d=a?a(i,u):n.mergeOnProperty;"line"!==f||$r(d)?c.push(t[o]):(void 0===l[d]&&(l[d]=h.length,h.push({features:[],property:d})),h[l[d]].features.push(t[o]))}return c.length&&h.push({features:c}),h}(t,n,o,s,r);if(a.length){const n=[];for(let e=0;e<a.length;e++)n.push(a[e].property?bu(a[e].features,a[e].property):t);if(1===n.length)return n[0];{let t=[];for(let e=0;e<n.length;e++)t=t.concat(n[e]);return t.sort((t,n)=>t[i]-n[i]),t}}}static splitPointSymbol(t,n=0){const e=[];if(Array.isArray(t)){const n=t;for(let t=0;t<n.length;t++)n[t]&&e.push(...wu.splitPointSymbol(n[t],t));return e}let r=null,i=null;for(const n in t)0===n.indexOf("marker")?(r=r||{},r[n]=t[n]):0===n.indexOf("text")&&(i=i||{},i[n]=t[n]);return r&&(r.isIconText=!0,t.mergeOnProperty&&(r.mergeOnProperty=t.mergeOnProperty),e.push(r)),i&&(r&&(i.textPlacement=r.markerPlacement,i.textSpacing=r.markerSpacing,i.isIconText=!0),t.mergeOnProperty&&(i.mergeOnProperty=t.mergeOnProperty),e.push(i)),void 0!==t.visible&&(r&&(r.visible=t.visible),i&&(i.visible=t.visible)),r&&(r.markerTextFit&&i&&(r.text={},r.text.textName=i.textName,r.text.textSize=i.textSize),r.index={index:n,type:0}),i&&(i.index={index:n,type:1}),e}static isAtlasLoaded(t,n){const{icon:e,glyph:r}=t,{iconAtlas:i,glyphAtlas:s}=n;if(e&&(!i||!i.positions[e.url]))return!1;if(r){if(!s||!s.positions[r.font])return!1;const t=s.positions[r.font],{text:n}=r;for(let e=0;e<n.length;e++)if(!t[n.charCodeAt(e)])return!1}return!0}constructor(t,n,e){super(t,n,e),this.dt=n.textPlacement,this.K.textPlacementFn&&(this.dt=this.K.textPlacementFn(this.options.zoom))}createStyledVector(t,n,e,r,i,s){const o=new ru(t,this.symbolDef,n,e,r),a=o.getIconAndGlyph();if(a.icon&&!this.options.atlas){const{url:t,size:n}=a.icon;i[t]||(i[t]=a.icon.size),i[t][0]<n[0]&&(i[t][0]=n[0]),i[t][1]<n[1]&&(i[t][1]=n[1])}if(a.glyph&&!this.options.atlas){const{font:t,text:n}=a.glyph,e=s[t]=s[t]||{};for(let t=0;t<n.length;t++)e[n.charCodeAt(t)]=1;"line"===this.dt&&(s.options={isCharsCompact:!1})}return this.options.allowEmptyPack||a.icon||a.glyph?o:null}getFormat(t){const n=void 0!==t.textName,e=n?this.getPackSDFFormat(t):this.getPackMarkerFormat();n?e.push(...this.pt()):e.push(...this.yt());const{markerOpacityFn:r,textOpacityFn:i,markerPitchAlignmentFn:s,textPitchAlignmentFn:o,markerRotationAlignmentFn:a,textRotationAlignmentFn:u,markerRotationFn:h,textRotationFn:l,markerAllowOverlapFn:c,textAllowOverlapFn:f,markerIgnorePlacementFn:d,textIgnorePlacementFn:p}=this.K;return(r||i)&&e.push({type:Uint8Array,width:1,name:"aColorOpacity"}),(s||o)&&e.push({type:Uint8Array,width:1,name:"aPitchAlign"}),(a||u)&&e.push({type:Uint8Array,width:1,name:"aRotationAlign"}),(h||l)&&e.push({type:Uint16Array,width:1,name:"aRotation"}),(c||f||d||p)&&e.push({type:Uint8Array,width:1,name:"aOverlap"}),e}gt(){return this.hasMapPitchAlign}pt(){const{textFillFn:t,textSizeFn:n,textHaloFillFn:e,textHaloRadiusFn:r,textHaloOpacityFn:i,textDxFn:s,textDyFn:o}=this.K,a=[];return t&&a.push({type:Uint8Array,width:4,name:"aTextFill"}),n&&a.push({type:Uint8Array,width:1,name:"aTextSize"}),e&&a.push({type:Uint8Array,width:4,name:"aTextHaloFill"}),r&&a.push({type:Uint8Array,width:1,name:"aTextHaloRadius"}),i&&a.push({type:Uint8Array,width:1,name:"aTextHaloOpacity"}),s&&a.push({type:Int8Array,width:1,name:"aTextDx"}),o&&a.push({type:Int8Array,width:1,name:"aTextDy"}),a}yt(){const{markerWidthFn:t,markerHeightFn:n,markerDxFn:e,markerDyFn:r}=this.K,i=[];return t&&i.push({type:this.options.markerWidthType||Uint8Array,width:1,name:"aMarkerWidth"}),n&&i.push({type:this.options.markerHeightType||Uint8Array,width:1,name:"aMarkerHeight"}),e&&i.push({type:Int8Array,width:1,name:"aMarkerDx"}),r&&i.push({type:Int8Array,width:1,name:"aMarkerDy"}),i}createDataPack(){if(!this.iconAtlas&&!this.glyphAtlas){if(!this.options.allowEmptyPack)return null;this.empty=!0}this.countOutOfAngle=0,this.lineVertex=[];const t=super.createDataPack.apply(this,arguments);return t?(t.lineVertex=new Int16Array(this.lineVertex),t.buffers.push(t.lineVertex.buffer),t):null}placeVector(t,n){const e=t.getShape(this.iconAtlas,this.glyphAtlas);if(!this.options.allowEmptyPack&&!e)return;const r=this.vt(t,e,n);if(this.countOutOfAngle+=r.countOutOfAngle||0,0===r.length)return;const i=this.data,s=this.needAltitudeAttribute()?2:3;let o=this.data.aPosition.length/s;const a=t.symbol,u=t.feature.properties,h="line"===this.dt&&!a.isIconText,l=void 0!==a.textName,c=l&&h&&function(t){let n=0;for(let e=0;e<t.length;e++)if(Va(t.charAt(e).charCodeAt(0)))n=0;else if(n++,n>=1)return!1;return!0}(t.getIconAndGlyph().glyph.text)?1:0,{textFillFn:f,textSizeFn:p,textHaloFillFn:y,textHaloRadiusFn:m,textHaloOpacityFn:g,textDxFn:v,textDyFn:b,textPitchAlignmentFn:w,textRotationAlignmentFn:M,textRotationFn:x,textAllowOverlapFn:F,textIgnorePlacementFn:A,textOpacityFn:k,markerWidthFn:P,markerHeightFn:S,markerDxFn:_,markerDyFn:O,markerPitchAlignmentFn:E,markerRotationAlignmentFn:I,markerRotationFn:$,markerAllowOverlapFn:z,markerIgnorePlacementFn:C,markerOpacityFn:T}=this.K;let D,j,U,N,L,V,R,H,W,q,G,B,J,X,Y,Z,K;if(l){const n=t.getIconAndGlyph().glyph.font;D=function(t,n,e){const r=t.positionedGlyphs,i=[];for(let s=0;s<r.length;s++){const o=r[s],a=e[o.glyph];if(!a)continue;const u=a.rect;if(!u)continue;const h=4,l=a.metrics.advance/2,c=a.metrics.height/2,f=n?[o.x+l,0]:[0,0],d=n?[0,o.y-c]:[o.x+l,o.y-c],p=a.metrics.left-h-l+d[0],y=a.metrics.top-h+d[1],m=p+u.w,g=y+u.h,v=new Ut(p,y),b=new Ut(m,y),w=new Ut(p,g),M=new Ut(m,g);if(n&&o.vertical){const t=new Ut(-l,l),n=-Math.PI/2,e=new Ut(5,0);v._(n,t).m(e),b._(n,t).m(e),w._(n,t).m(e),M._(n,t).m(e)}i.push({tl:v,tr:b,bl:w,br:M,tex:u,writingMode:t.writingMode,glyphOffset:f})}return i}(e.horizontal,h,this.glyphAtlas.positions[n]),f&&(j=f(null,u),d(j)?(this.dynamicAttrs.aTextFill=1,j=[0,0,0,0]):j=Fr([],j)),p&&(U=p(this.options.zoom,u),$r(U)&&(U=14)),y&&(N=y(null,u),d(N)?(this.dynamicAttrs.aTextHaloFill=1,N=[0,0,0,0]):N=Fr([],N)),m&&(L=m(null,u)),g&&(V=255*g(null,u)),v&&(R=v(null,u)||0),b&&(H=b(null,u)||0),w&&(J=+("map"===w(null,u))),M&&(X=+("map"===M(null,u))),x&&(Y=zr(x(null,u),0,360)*Math.PI/180)}else D=e?function(t){const n=t.image,e=t.top-1/n.pixelRatio,r=t.left-1/n.pixelRatio,i=t.bottom+1/n.pixelRatio,s=t.right+1/n.pixelRatio;let o,a,u,h;return o=new Ut(r,e),a=new Ut(s,e),u=new Ut(s,i),h=new Ut(r,i),[{tl:o,tr:a,bl:h,br:u,tex:{x:n.tl[0],y:n.tl[1],w:n.displaySize[0],h:n.displaySize[1]},writingMode:void 0,glyphOffset:[0,0]}]}(e):function(){const t=new Ut(0,0),n=new Ut(0,0),e=new Ut(0,0);return[{tl:t,tr:n,bl:new Ut(0,0),br:e,tex:{x:0,y:0,w:0,h:0},writingMode:void 0,glyphOffset:[0,0]}]}(),P&&(W=P(null,u)),$r(W)&&(W=D[0].tex.w),S&&(q=S(null,u)),$r(q)&&(q=D[0].tex.h),_&&(G=_(null,u)),O&&(B=O(null,u)),E&&(J=+("map"===E(null,u))),I&&(X=+("map"===I(null,u))),$&&(Y=zr($(null,u),0,360)*Math.PI/180);d(U)&&(this.dynamicAttrs.aTextSize=1),d(L)&&(this.dynamicAttrs.aTextHaloRadius=1),d(V)&&(this.dynamicAttrs.aTextHaloOpacity=1),d(R)&&(this.dynamicAttrs.aTextDx=1),d(H)&&(this.dynamicAttrs.aTextDy=1),d(W)&&(this.dynamicAttrs.aMarkerWidth=1),d(q)&&(this.dynamicAttrs.aMarkerHeight=1),d(G)&&(this.dynamicAttrs.aMarkerDx=1),d(B)&&(this.dynamicAttrs.aMarkerDy=1),d(J)&&(this.dynamicAttrs.aPitchAlign=1),d(X)&&(this.dynamicAttrs.aRotationAlign=1),d(Y)&&(this.dynamicAttrs.aRotation=1);const Q=z||F;Q&&(Z=Q(null,u)||0);const tt=C||A;let nt;tt&&(K=tt(null,u)||0);const et=k||T;et&&(nt=255*et(this.options.zoom,u));const rt=this.options.EXTENT,it=D.length,{altitudeScale:st,altitudeProperty:ot,defaultAltitude:at}=this.options,{altitude:ut}=Er(t.feature,st,ot,at);for(let t=0;t<r.length;t++){const n=r[t],e=n.z||ut||0;if(rt!==1/0&&Ir(n,rt))continue;const s=n.x,a=n.y,u=D.length;for(let t=0;t<u;t++){const r=D[t],{tl:u,tr:f,bl:d,br:p,tex:y}=r;this.bt(i,s,a,e,10*u.x,10*u.y,y.x,y.y+y.h),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*f.x,10*f.y,y.x+y.w,y.y+y.h),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*d.x,10*d.y,y.x,y.y),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*p.x,10*p.y,y.x+y.w,y.y),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.addElements(o,o+1,o+2),this.addElements(o+1,o+2,o+3),o+=4;const m=Math.max(Math.abs(s),Math.abs(a),Math.abs(e));m>this.maxPos&&(this.maxPos=m)}}}bt(t,n,e,r,i,s,o,a){this.fillPosition(t,n,e,r),t.aShape.push(i,s),t.aTexCoord.push(o,a)}wt(t,n,e,r,i,s,o,a){if(t.aCount.push(e),n){t.aGlyphOffset.push(r[0],r[1]),this.gt()&&t.aPitchRotation.push(o[0],o[1],a);const n=i.startIndex;t.aSegment.push(i.segment+n,n,i.line.length),t.aVertical.push(s)}}Mt(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p,y,m,g){const{textFillFn:v,textSizeFn:b,textHaloFillFn:w,textHaloRadiusFn:M,textHaloOpacityFn:x,textDxFn:F,textDyFn:A,textPitchAlignmentFn:k,textRotationAlignmentFn:P,textRotationFn:S,textAllowOverlapFn:_,textIgnorePlacementFn:O,textOpacityFn:E,markerWidthFn:I,markerHeightFn:$,markerDxFn:z,markerDyFn:C,markerPitchAlignmentFn:T,markerRotationAlignmentFn:D,markerRotationFn:j,markerAllowOverlapFn:U,markerIgnorePlacementFn:N,markerOpacityFn:L}=this.K;v&&t.aTextFill.push(...n),b&&t.aTextSize.push(e),w&&t.aTextHaloFill.push(...r),M&&t.aTextHaloRadius.push(i),x&&t.aTextHaloOpacity.push(s),F&&t.aTextDx.push(o),A&&t.aTextDy.push(a),I&&t.aMarkerWidth.push(u),$&&t.aMarkerHeight.push(h),z&&t.aMarkerDx.push(l),C&&t.aMarkerDy.push(c),(L||E)&&t.aColorOpacity.push(f),(k||T)&&t.aPitchAlign.push(d),(D||P)&&t.aRotationAlign.push(p),(j||S)&&t.aRotation.push(9362*y);const V=U||_,R=N||O;(V||R)&&t.aOverlap.push((V?8:0)+4*m+((R?2:0)+g)),i>0&&(this.properties.hasHalo=1)}vt(t,n,e){const{feature:r,symbol:i}=t,s=this.xt(t,i),o=r.properties,{markerSpacingFn:a,textSpacingFn:u,textMaxAngleFn:h}=this.K,l=((a?a(null,o):i.markerSpacing)||(u?u(null,o):i.textSpacing)||250)*e;let c=h?h(this.options.zoom,o):i.textMaxAngle;$r(c)&&(c=80),c*=Math.PI/180;const f=this.options.EXTENT,d=this.options.altitudeToTileScale,p=this.gt();return mu(t,this.lineVertex,c,n,e,f,s,l,p,d)}xt(t,n){let e;return e=this.K.markerPlacementFn?this.K.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement||this.dt,this.it||!n.markerPlacement&&!n.isIconText||(this.it=e),!this.dt||n.isIconText||this.st||(this.st=e),e}getPackSDFFormat(t){if("line"!==this.dt||t.isIconText)return[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"},{type:Uint8Array,width:1,name:"aCount"}];{const t=[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"},{type:Uint8Array,width:1,name:"aCount"},{type:Int16Array,width:2,name:"aGlyphOffset"},{type:Uint16Array,width:3,name:"aSegment"},{type:Uint8Array,width:1,name:"aVertical"}];return this.gt()&&t.push({type:Float32Array,width:3,name:"aPitchRotation"}),t}}getPackMarkerFormat(){return[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"}]}}class Mu{constructor(t){this.x=t.x,this.y=t.y,this.z=t.z||0}clone(){return new Mu(this)}I(){return this.P(this.mag()),this}P(t){return this.x/=t,this.y/=t,this.z/=t,this}C(){var t=this.y;return this.y=this.x,this.x=-t,this}mag(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}add(t){return this.clone().m(t)}sub(t){return this.clone().M(t)}m(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}M(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}equals(t){return this.x===t.x&&this.y===t.y&&this.z===t.z}mult(t){return this.clone().k(t)}k(t){return this.x*=t,this.y*=t,this.z*=t,this}dist(t){return Math.sqrt(this.distSqr(t))}distSqr(t){var n=t.x-this.x,e=t.y-this.y,r=t.z-this.z;return n*n+e*e+r*r}T(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}angleTo(t){return Math.atan2(this.y-t.y,this.x-t.x)}}const xu=Math.cos(Math.PI/180*37.5),Fu=Math.pow(2,16)/1,Au=new Ut,ku=new Ut,Pu=new Ut;class Su extends ua{constructor(t,n,e){super(t,n,e);let r=!1;const{lineDasharrayFn:i,lineDashColorFn:s}=this.K;this.hasGradient=this.symbol.lineGradientProperty,i&&(r=function(t,n,e){for(let r=0;r<t.length;r++)if(e(n,t[r].properties))return!0;return!1}(t,this.options.zoom,i),r&&(this.dasharrayFn=i)),this.hasDasharray=Eu(this.symbol.lineDasharray)||r,this.hasDasharray&&s&&(this.dashColorFn=s)}createStyledVector(t,n,e,r,i){const s=new Tr(t,n,e,r),o=s.getLineResource();return!this.options.atlas&&o&&(i[o]=[0,0]),s}getFormat(){const{lineWidthFn:t,lineStrokeWidthFn:n,lineStrokeColorFn:e,lineColorFn:r,lineOpacityFn:i,lineDxFn:s,lineDyFn:o,linePatternAnimSpeedFn:a,linePatternGapFn:u}=this.K,h=[...this.getPositionFormat()];if(h.push(this.iconAtlas||this.hasDasharray?{type:Int8Array,width:3,name:"aExtrude"}:{type:Int8Array,width:2,name:"aExtrude"}),h.push({type:this.options.positionType||Uint16Array,width:1,name:"aLinesofar"}),t&&h.push({type:Uint8Array,width:1,name:"aLineWidth"}),n&&h.push({type:Uint8Array,width:1,name:"aLineStrokeWidth"}),r&&h.push({type:Uint8Array,width:4,name:"aColor"}),e&&h.push({type:Uint8Array,width:4,name:"aStrokeColor"}),i&&h.push({type:Uint8Array,width:1,name:"aOpacity"}),this.dasharrayFn&&h.push({type:Uint8Array,width:4,name:"aDasharray"}),this.dashColorFn&&h.push({type:Uint8Array,width:4,name:"aDashColor"}),this.iconAtlas){const t=this.getIconAtlasMaxValue();h.push({type:t>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return(s||o)&&h.push({type:Int8Array,width:2,name:"aLineDxDy"}),(a||u)&&h.push({type:Int8Array,width:2,name:"aLinePattern"}),h}placeVector(t){const{lineJoinFn:n,lineCapFn:e,lineWidthFn:r,lineHeightFn:i,lineStrokeWidthFn:s,lineStrokeColorFn:o,lineColorFn:a,lineOpacityFn:u,lineDxFn:h,lineDyFn:l,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.K,p=this.symbol,y=t.feature,m=y.properties;let g=p.lineJoin||"miter",v=p.lineCap||"butt";if(n&&(g=n(this.options.zoom,m)||"miter"),e&&(v=e(this.options.zoom,m)||"butt"),r){let t=r(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineWidth=1,t=4),cr(t)&&(t=4),this.feaLineWidth=+t}else this.feaLineWidth=+p.lineWidth;if(i){let t=i(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineHeight=1),cr(t)&&(t=this.feaLineWidth),this.feaLineHeight=+t}else this.feaLineHeight=+p.lineHeight||this.feaLineWidth;if(s){let t=s(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineStrokeWidth=1,t=0),cr(t)&&(t=0),this.feaLineStrokeWidth=t}else this.feaLineStrokeWidth=p.lineStrokeWidth||0;if(a&&(this.feaColor=a(this.options.zoom,m)||[255,255,255,255],d(this.feaColor)?(this.dynamicAttrs.aColor=1,this.feaColor=[0,0,0,0]):this.feaColor=Fr([],this.feaColor)),o&&(this.feaStrokeColor=o(this.options.zoom,m)||[0,0,0,255],d(this.feaStrokeColor)?(this.dynamicAttrs.aStrokeColor=1,this.feaStrokeColor=[0,0,0,0]):this.feaStrokeColor=Fr([],this.feaStrokeColor)),u){let t=u(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aOpacity=1,t=1),cr(t)&&(t=1),this.feaOpacity=255*t}if(this.dasharrayFn){let t=this.dasharrayFn(this.options.zoom,m)||[0,0,0,0];if(d(t)&&(this.dynamicAttrs.aDasharray=1,t=[0,0,0,0]),t.length<4){const n=t;1===t.length?t=[n[0],n[0],n[0],n[0]]:2===t.length?t=[n[0],n[1],n[0],n[1]]:3===t.length&&(t=[n[0],n[1],n[2],n[2]])}this.feaDash=t}if(this.dashColorFn){let t=(this.dashColorFn?this.dashColorFn(this.options.zoom,m):this.symbol.lineDashColor)||[0,0,0,0];d(t)&&(this.dynamicAttrs.aDashColor=1,t=[0,0,0,0]),t=Fr([],t),this.feaDashColor=t}if(this.iconAtlas){const n=t.getLineResource(),e=this.iconAtlas.glyphMap[n];if(this.feaTexInfo=this.feaTexInfo||[0,0,0,0],e){const{tl:t,displaySize:e}=this.iconAtlas.positions[n];this.feaTexInfo[0]=t[0]+1,this.feaTexInfo[1]=t[1]+1,this.feaTexInfo[2]=e[0]-3,this.feaTexInfo[3]=e[1]-3}else this.feaTexInfo[0]=this.feaTexInfo[1]=this.feaTexInfo[2]=this.feaTexInfo[3]=0}if(h){let t=h(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),cr(t)&&(t=0),this.feaLineDx=t}if(l){let t=l(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),cr(t)&&(t=0),this.feaLineDy=t}if(c){let t=c(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLinePatternAnimSpeed=1,t=0),cr(t)&&(t=0),0!==t&&(this.properties.hasPatternAnim=1),this.feaPatternAnimSpeed=t}if(f){let t=f(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLinePatternGap=1,t=0),cr(t)&&(t=0),this.feaLinePatternGap=t}const b=this.options.EXTENT;let w=y.geometry;if(b!==1/0){w=[];const t=[];for(let n=0;n<y.geometry.length;n++){t[0]=y.geometry[n];const e=su(t,-1,-1,b+1,b+1);if(3===y.type&&e.length>1){const t=e[0],n=e[e.length-1];Cu(t[0],n[n.length-1])&&(e[0]=n.concat(t.slice(1)),e.length=e.length-1)}w.push(...e)}}const M=this.needAltitudeAttribute()?2:3;for(let t=0;t<w.length;t++)this.offset=this.data.aPosition.length/M,this.Ft(w[t],y,g,v,2,1.05)}At(){return this.iconAtlas&&this.feaTexInfo[2]&&this.feaTexInfo[3]}Ft(t,n,e,r,i,s){const o=this.At()||Eu(this.feaDash)||Eu(this.symbol.lineDasharray),a=this.options.isTube;a&&(t=t.map(t=>new Mu(t))),this.overscaling=1;const u=this.options.EXTENT;if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.prevVertex=null,this.symbol.lineGradientProperty&&n.properties&&fr(n.properties.mapbox_clip_start)&&fr(n.properties.mapbox_clip_end)){this.clipStart=+n.properties.mapbox_clip_start,this.clipEnd=+n.properties.mapbox_clip_end;for(let n=0;n<t.length-1;n++)this.totalDistance+=t[n].dist(t[n+1]);this.updateScaledDistance()}const h=3===n.type&&!t.clipped;let l=t.length;for(;l>=2&&Cu(t[l-1],t[l-2]);)l--;let c=0;for(;c<l-1&&Cu(t[c],t[c+1]);)c++;if(l<(h?3:2))return;"bevel"===e&&(i=1.05);const f=this.overscaling<=16?15*u/(512*this.overscaling):0,d={vertexLength:0,primitiveLength:0,currentNormal:null};let p,y,m,g,v;this.e1=this.e2=-1,h&&(p=t[l-2],v=t[c].sub(p).I().C());for(let n=c;n<l;n++){if(m=n===l-1?h?t[c+1]:void 0:t[n+1],m&&Cu(t[n],m))continue;v&&(g=v),p&&(y=p),p=t[n],m&&p.x===m.x&&p.y===m.y&&(p.x+=1e-4),v=m?m.sub(p).I().C():g,d.dir=y?p.sub(y).I():m.sub(p).I(),g=g||v,d.currentNormal=g;let u=g.add(v);0===u.x&&0===u.y||u.I();const b=g.x*v.x+g.y*v.y,w=u.x*v.x+u.y*v.y,M=0!==w?1/w:1/0,x=2*Math.sqrt(2-2*w),F=w<xu&&y&&m,A=g.x*v.y-g.y*v.x>0;if(!a&&F&&n>c){const t=p.dist(y);if(t>2*f){const n=p.sub(p.sub(y).k(f/t).T());n.z=p.z,this.updateDistance(y,n),this.addCurrentVertex(n,g,0,0,d),y=n}}const k=y&&m;d.middleVertex=k;let P=k?e:h?"butt":r;if(k&&"round"===P&&(M<s?P="miter":M<=2&&(P="fakeround")),"miter"===P&&M>i&&!a&&(P="bevel"),"bevel"===P&&(M>2&&(P="flipbevel"),M<i&&(P="miter")),y&&this.updateDistance(y,p),"miter"===P)a?(this.addCurrentVertex(p,g,0,0,d),d.dir=m.sub(p).I(),this.addCurrentVertex(p,v,0,0,d)):(u.k(M),this.addCurrentVertex(p,u,0,0,d),o&&(d.currentNormal=v,this.addCurrentVertex(p,u,0,0,d)));else if("flipbevel"===P){if(M>100)u=v.mult(-1);else{const t=M*g.add(v).mag()/g.sub(v).mag();u.C().k(t*(A?-1:1))}this.addCurrentVertex(p,u,0,0,d),this.addCurrentVertex(p,u.mult(-1),0,0,d)}else if("bevel"===P||"fakeround"===P){const t=-Math.sqrt(M*M-1),n=A?t:0,e=A?0:t;if(y&&this.addCurrentVertex(p,g,n,e,d),"fakeround"===P){const t=Math.round(180*x/Math.PI/20);for(let n=1;n<t;n++){let e=n/t;if(.5!==e){const t=e-.5;e+=e*t*(e-1)*((1.0904+b*(b*(3.55645-1.43519*b)-3.2452))*t*t+(.848013+b*(.215638*b-1.06021)))}const r=v.sub(g).k(e).m(g).I().k(A?-1:1);this.addHalfVertex(p,r.x,r.y,!1,A,0,d)}}m&&(d.currentNormal=v,this.addCurrentVertex(p,v,-n,-e,d))}else if("butt"===P)this.addCurrentVertex(p,u,0,0,d);else if("square"===P){const t=y?1:-1;this.addCurrentVertex(p,u,t,t,d)}else"round"===P&&(y&&(this.addCurrentVertex(p,g,0,0,d),this.addCurrentVertex(p,g,1,1,d,!0)),m&&(this.addCurrentVertex(p,v,-1,-1,d,!0),this.addCurrentVertex(p,v,0,0,d)));if(!a&&F&&n<l-1){const t=p.dist(m);if(t>2*f){const n=p.add(m.sub(p).k(f/t).T());n.z=p.z,this.updateDistance(p,n),this.addCurrentVertex(n,v,0,0,d),p=n}}}}addCurrentVertex(t,n,e,r,i,s=!1){const o=n.x+n.y*e,a=n.y-n.x*e,u=n.y*r-n.x,h=-n.y-n.x*r;let l=0,c=0;if(i.middleVertex){Au.x=o,Au.y=a,ku.x=u,ku.y=h;const t=i.currentNormal;if(l=zu(t,Au),0===e&&0===r)c=-l;else{const n=Pu;n.x=t.x,n.y=t.y,n.k(-1),c=zu(n,ku)}}this.addHalfVertex(t,o,a,s,!1,e,i,l),this.addHalfVertex(t,u,h,s,!0,-r,i,c),this.prevVertex&&Cu(t,this.prevVertex)||(this.prevVertex=t),this.distance>Fu/2&&0===this.totalDistance&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(t,n,e,r,i,s))}addHalfVertex({x:t,y:n,z:e},r,i,s,o,a,u,h){this.fillData(this.data,t,n,e||0,r,i,s,o,1*this.scaledDistance,h);const l=u.vertexLength++;this.e1>=0&&this.e2>=0&&(this.addElements(this.e1,this.e2,l),u.primitiveLength++),o?this.e2=l:this.e1=l}fillData(t,n,e,r,i,s,o,a,u,h){const{lineWidthFn:l,lineStrokeWidthFn:c,lineStrokeColorFn:f,lineColorFn:d,lineOpacityFn:p,lineDxFn:y,lineDyFn:m,linePatternAnimSpeedFn:g,linePatternGapFn:v}=this.K;this.fillPosition(t,n,e,r);let b=63*i;b=(Math.sign(b)||1)*((Math.floor(Math.abs(b))>>1<<1)+ +o);let w=63*s;w=(Math.sign(w)||1)*((Math.floor(Math.abs(w))>>1<<1)+ +a),t.aExtrude.push(b,w),(this.iconAtlas||this.hasDasharray)&&t.aExtrude.push(63*h),t.aLinesofar.push(u),l&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),c&&t.aLineStrokeWidth.push(Math.round(2*this.feaLineStrokeWidth)),d&&t.aColor.push(...this.feaColor),f&&t.aStrokeColor.push(...this.feaStrokeColor),p&&t.aOpacity.push(this.feaOpacity),this.dasharrayFn&&t.aDasharray.push(...this.feaDash),this.dashColorFn&&t.aDashColor.push(...this.feaDashColor),this.iconAtlas&&t.aTexInfo.push(...this.feaTexInfo),(y||m)&&t.aLineDxDy.push(this.feaLineDx||0,this.feaLineDy||0),(g||v)&&t.aLinePattern.push(127*(this.feaPatternAnimSpeed||0),10*(this.feaLinePatternGap||0)),this.maxPos=Math.max(this.maxPos,Math.abs(n)+1,Math.abs(e)+1)}addElements(t,n,e){super.addElements(this.offset+t,this.offset+n,this.offset+e)}kt(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=3)n!==1/0&&(Ou(this.data.aPosition,e[r],e[r+1],3,n)||Ou(this.data.aPosition,e[r+1],e[r+2],3,n))||t.push(e[r],e[r+1],e[r+2])}Pt(t){if(t.length<=1)return t;const n=[],e=this.options.EXTENT;let r,i=!0;for(r=0;r<t.length-1;r++){const s=_u(t[r],t[r+1],e);s&&i||(n.push(t[r]),i=s)}return i||n.push(t[r]),n}updateDistance(t,n){if(this.options.isTube){const e=t.dist(n),r=wr(this.options)*(n.z-t.z);this.distance+=Math.sqrt(e*e+r*r)}else this.distance+=t.dist(n);this.updateScaledDistance()}updateScaledDistance(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(Fu-1):this.distance}}function _u(t,n,e){return e!==1/0&&(t.x<0&&n.x<0||t.x>e&&n.x>e||t.y<0&&n.y<0||t.y>e&&n.y>e)}function Ou(t,n,e,r,i){if(i===1/0)return!1;const s=Math.floor(.5*t[n*r]),o=Math.floor(.5*t[n*r+1]),a=Math.floor(.5*t[e*r]),u=Math.floor(.5*t[e*r+1]);return s===a&&(s<0||s>i)&&o!==u||o===u&&(o<0||o>i)&&s!==a}function Eu(t){if(!Array.isArray(t))return!1;for(let n=0;n<t.length;n++)if(t[n])return!0;return!1}const Iu=new Ut(0,0),$u=new Ut(0,0);function zu(t,n){const e=t.mag(),r=n.mag();Iu.x=n.x,Iu.y=n.y;const i=t.angleTo($u),s=n.angleTo($u);return Math.sign(s-i)*Math.sqrt(r*r-e*e)}function Cu(t,n){return t.equals(n)&&t.z===n.z}class Tu extends Su{constructor(t,n,e){super(t,n,e),this.St=e.altitudeProperty}getFormat(){const{lineColorFn:t,lineWidthFn:n}=this.K,e=[{type:this.maxPosZ>=Math.pow(2,15)?Float32Array:Int16Array,width:3,name:"aPosition"},{type:Uint16Array,width:1,name:"aLinesofar"},{type:Uint8Array,width:1,name:"aUp"},{type:Int16Array,width:3,name:"aExtrudedPosition"},{type:Int8Array,width:2,name:"aExtrude"}];return t&&e.push({type:Uint8Array,width:4,name:"aColor"}),n&&e.push({type:Uint8Array,width:1,name:"aLineWidth"}),this.St&&e.push({type:Array,width:1,name:"aLineHeight"}),e}placeVector(t){const n=t.feature;if(this.St){const{altitudeScale:t,altitudeProperty:e,defaultAltitude:r,heightProperty:i,defaultHeight:s,minHeightProperty:o}=this.options,{altitude:a,height:u}=Er(n,t,e,r,i,s,o);this.feaAltitude=a,this.feaMinHeight=(a-u)/a*32767,a>this.maxAltitude&&(this.maxAltitude=a)}return super.placeVector(t)}needAltitudeAttribute(){return!1}Ft(t,n,e,r,i,s){const o=this.data.aPosition.length/3;super.Ft(t,n,e,r,i,s);const a=this.data.aPosition.length/3,u=this.data.aPosition.length/3-this.offset;if(3!==n.type&&u>0&&!1!==this.options.side){const t=!1!==this.options.top?1:0,n=t+4;let e=this.data.aPosition.length/3;for(const t in this.data){const n=this.data[t],r=n.length/e;for(let t=0;t<r;t++)n.push(n[o*r+3*r+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[o*i+i*n+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[o*i+i*(n+3)+t])}super.addElements(t+1,u+1,u),super.addElements(u,u+1,u+2);const r=this.data.aPosition.length/3-this.offset;e=this.data.aPosition.length/3;for(const t in this.data){const n=this.data[t],r=n.length/e;for(let t=0;t<r;t++)n.push(n[a*r-r+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[a*i-n*i-i+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[a*i-n*i-3*i+t])}super.addElements(r,u-3,r+1),super.addElements(u-3,r+2,r+1)}}fillData(t,n,e,r,i,s,o,a,u){const h=!1!==this.options.top,l=!1!==this.options.side,c=this.feaLineWidth||this.symbol.lineWidth/2*(this.options.EXTENT/this.options.tileSize),f=63*i,d=63*s,p=c*i+n,y=c*s+e;this._t(t,n,e,i,s,o,a,u,p,y,f,d),l&&(h&&this._t(t,n,e,i,s,o,a,u,p,y,f,d),this._t(t,n,e,i,s,o,a,u,p,y,f,d),this.Ot(t,n,e,i,s,o,a,u,p,y,f,d),this.Ot(t,n,e,i,s,o,a,u,p,y,f,d)),this.maxPos=Math.max(this.maxPos,Math.abs(n),Math.abs(e))}_t(t,n,e,r,i,s,o,a,u,h,l,c){const{lineColorFn:f,lineWidthFn:d}=this.K;t.aPosition.push(n,e,32767),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,h,1),t.aExtrude.push(l,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.St&&t.aLineHeight.push(this.feaAltitude)}Ot(t,n,e,r,i,s,o,a,u,h,l,c){const{lineColorFn:f,lineWidthFn:d}=this.K;t.aPosition.push(n,e,this.feaMinHeight||0),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,h,1),t.aExtrude.push(l,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.St&&t.aLineHeight.push(this.feaAltitude)}addElements(t,n,e){const r=!1!==this.options.top,i=!1!==this.options.side,s=(r?1:0)+(i?4:0);if(t*=s,n*=s,this.data.aUp[this.offset+(e*=s)+4]){if(r&&super.addElements(n,t,e),i){const t=r?1:0;super.addElements(n+t,e+t,e+t+2),super.addElements(n+t+1,e+t+1+2,n+t+1+2)}}else if(r&&super.addElements(t,e,n),i){const n=r?1:0;super.addElements(t+n,t+n+2,e+n),super.addElements(t+n+1+2,e+n+1+2,e+n+1)}}createDataPack(t,n){this.maxAltitude=0;const e=super.createDataPack(t,n);if(!e)return e;const{data:r,indices:i}=e;this.getFormat().reduce((t,n)=>(t[n.name]={size:n.width},t),{}).aPickingId={size:1};const{aExtrudedPosition:s,aPosition:o,aLinesofar:a,aUp:u,aExtrude:h,aColor:l,aLineHeight:c,aLineWidth:f}=r,d={},p=re(s,i);let y,m=!0;for(let t=0;t<p.length;t++)p[t]=-p[t],p[t]%1!=0&&(m=!1);if(!1!==this.options.top&&this.symbol.material&&function(t){for(const n in t)if(n.indexOf("Texture")>=0&&t[n])return!0;return!1}(this.symbol.material)&&(y=function(t,n,e){const r=[];for(let i=0;i<t.length;i+=3){const t=n[i/3];r.push(t/256,e[i/3]?1:0)}return r}(s,a,u)),d.aPosition=o,y&&(d.aTexCoord0=new Float32Array(y)),d.aNormal=m?new Int8Array(p):new Float32Array(p),d.aPickingId=r.aPickingId,d.aExtrude=h,l&&(d.aColor=l),f&&(d.aLineWidth=f),c){const t=or(this.maxAltitude);d.aLineHeight=new t(c)}const g=[];for(const t in d)g.push(d[t].buffer);return e.data=d,e.buffers=g,e}}const Du=Math.pow(2,16)/1;class ju extends ua{getFormat(){return[...this.getPositionFormat()]}placeVector(t){const n=t.feature,e=3===n.type,r=n.geometry,i=this.elements;e&&(this.elements=[]);const s=this.needAltitudeAttribute()?2:3;for(let t=0;t<r.length;t++)this.offset=this.data.aPosition.length/s,this.Ft(r[t],n),e&&(this.kt(i),this.elements=[]);e&&(this.elements=i)}Ft(t,n){const e=3===n.type;let r=t.length;for(;r>=2&&t[r-1].equals(t[r-2]);)r--;let i,s,o,a=0;for(;a<r-1&&t[a].equals(t[a+1]);)a++;if(!(r<(e?3:2))){this.distance=0,this.vertexLength=0,this.primitiveLength=0,this.e1=this.e2=this.e3=-1,e&&(i=t[r-2]);for(let n=a;n<r;n++)o=e&&n===r-1?t[a+1]:t[n+1],o&&t[n].equals(o)||(i&&(s=i),i=t[n],s&&(this.distance+=i.dist(s)),this.addCurrentVertex(i,this.distance))}}addCurrentVertex(t,n){const e=this.vertexLength++;this.addLineVertex(this.data,t,n),e>=1&&this.addElements(e-1,e),n>Du&&(this.distance=0,this.addCurrentVertex(t,this.distance))}addLineVertex(t,n){this.fillPosition(t,n.x,n.y,n.z||0),this.maxPos=Math.max(this.maxPos,Math.abs(n.x),Math.abs(n.y))}addElements(t,n){super.addElements(this.offset+t,this.offset+n)}kt(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=2)_r(this.data.aPosition,e[r],e[r+1],3,n)||t.push(e[r],e[r+1])}}const Uu=45*Math.PI/100;class Nu extends ua{getFormat(){return"line"===this.symbol.markerRotationAlignment?[...this.getPositionFormat(),{type:Float32Array,width:1,name:"aXYRotation"},{type:Float32Array,width:1,name:"aZRotation"}]:[...this.getPositionFormat()]}placeVector(t){const n="line"===this.symbol.markerRotationAlignment,e=this.vt(t,this.symbol.markerSpacing||250,this.symbol.markerPlacement||"point",n);for(let t=0;t<e.length;t++){const r=e[t];this.fillPosition(this.data,r.x,r.y,r.z),n&&(this.data.aXYRotation.push(r.xyRotation||0),this.data.aZRotation.push(r.zRotation||0));const i=Math.max(Math.abs(r.x),Math.abs(r.y));i>this.maxPos&&(this.maxPos=i)}}vt(t,n,e,r){const i=t.feature,s=this.options.EXTENT;if("line"===e){const t=[];let e=i.geometry;s&&(e=su(i.geometry,0,0,s,s));for(let r=0;r<e.length;r++){const i=uu(e[r],n,Uu,null,null,24,1,1,s||1/0);t.push.apply(t,i)}return t}return gu(i,e,s,r,this.options.altitudeToTileScale)}hasElements(){return!1}}\n/*!\n * from @turf/bboxClip\n * https://github.com/Turfjs/turf\n * MIT LICENSE\n */const Lu=[],Vu=[];function Ru(t,n){var e,r,i,s,o,a,u;for(r=1;r<=8;r*=2){for(e=[],s=!(Wu(i=t[t.length-1],n)&r),o=0;o<t.length;o++){if((u=!(Wu(a=t[o],n)&r))!==s){const t=Hu(i,a,r,n);e.push(void 0!==a.x?new Ut(t[0],t[1]):t)}u&&e.push(a),i=a,s=u}if(!(t=e).length)break}return e}function Hu(t,n,e,r){return Lu[0]=void 0===t.x?t[0]:t.x,Lu[1]=void 0===t.y?t[1]:t.y,t=Lu,Vu[0]=void 0===n.x?n[0]:n.x,Vu[1]=void 0===n.y?n[1]:n.y,n=Vu,8&e?[t[0]+(n[0]-t[0])*(r[3]-t[1])/(n[1]-t[1]),r[3]]:4&e?[t[0]+(n[0]-t[0])*(r[1]-t[1])/(n[1]-t[1]),r[1]]:2&e?[r[2],t[1]+(n[1]-t[1])*(r[2]-t[0])/(n[0]-t[0])]:1&e?[r[0],t[1]+(n[1]-t[1])*(r[0]-t[0])/(n[0]-t[0])]:null}function Wu(t,n){Lu[0]=void 0===t.x?t[0]:t.x,Lu[1]=void 0===t.y?t[1]:t.y;var e=0;return(t=Lu)[0]<n[0]?e|=1:t[0]>n[2]&&(e|=2),t[1]<n[1]?e|=4:t[1]>n[3]&&(e|=8),e}const qu=[0,0,0,0];class Gu extends ua{constructor(...t){super(...t),this.lineElements=[]}createStyledVector(t,n,e,r,i){const s=new Tr(t,n,e,r),o=s.getPolygonResource();return!this.options.atlas&&o&&(i[o]=[0,0]),s}getFormat(){const t=[...this.getPositionFormat()],{polygonFillFn:n,polygonOpacityFn:e,uvScaleFn:r,uvOffsetFn:i}=this.K;if(this.iconAtlas){const n=this.getIconAtlasMaxValue();t.push({type:n>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return n&&t.push({type:Uint8Array,width:4,name:"aColor"}),e&&t.push({type:Uint8Array,width:1,name:"aOpacity"}),r&&t.push({type:Uint16Array,width:2,name:"aUVScale"}),i&&t.push({type:Uint8Array,width:2,name:"aUVOffset"}),t}placeVector(t,n){const e=t.feature;this.Et(e.geometry,e,n)}Et(t,n){let e,r,i,s;const{polygonFillFn:o,polygonOpacityFn:a,uvScaleFn:u,uvOffsetFn:h}=this.K,l=n.properties;o&&(e=o(this.options.zoom,l)||bt([],255,255,255,255),d(e)?(this.dynamicAttrs.aColor=1,e=qu):e=Fr([],e)),a&&(r=a(this.options.zoom,l),d(r)?(this.dynamicAttrs.aOpacity=1,r=255):(cr(r)&&(r=1),r*=255)),u&&(i=u(this.options.zoom,l),d(i)?(i=[255,255],this.dynamicAttrs.aUVScale=1):(cr(i)&&(i=[1,1]),i=[255*i[0],255*i[1]])),h&&(s=h(this.options.zoom,l),d(s)?(s=[0,0],this.dynamicAttrs.aUVOffset=1):(cr(s)&&(s=[0,0]),s=[255*s[0],255*s[1]]));const c=!!this.iconAtlas,f=lu(t,500),p=[0,0],y=[0,0];if(c){const{polygonPatternFileFn:t}=this.K,n=t?t(null,l):this.symbol.polygonPatternFile;if(this.iconAtlas.glyphMap[n]){const t=this.iconAtlas.positions[n];p[0]=t.tl[0]+1,p[1]=t.tl[1]+1,y[0]=t.displaySize[0]-3,y[1]=t.displaySize[1]-3}}const m=this.needAltitudeAttribute()?2:3,g=[-1,-1,n.extent+1,n.extent+1],v=this.It=this.It||this.et.get(),b=this.$t=this.$t||this.et.get();for(let t=0;t<f.length;t++){const n=f[t],o=this.data.aPosition.length/m;v.setLength(0),b.setLength(0);for(let t=0;t<n.length;t++){let o=n[t];if(this.options.EXTENT!==1/0&&0===this.maxPosZ&&(o=Ru(o,g)),0!==o.length){0!==t&&b.push(v.length/3);for(let t=0;t<o.length;t++){const n=o[t].x,a=o[t].y,u=o[t].z||0;this.fillPosition(this.data,n,a,u),c&&this.data.aTexInfo.push(p[0],p[1],y[0],y[1]),void 0!==e&&this.data.aColor.push(e[0],e[1],e[2],e[3]),void 0!==r&&this.data.aOpacity.push(r),void 0!==i&&this.data.aUVScale.push(i[0],i[1]),void 0!==s&&this.data.aUVOffset.push(s[0],s[1]);const h=Math.abs(n),l=Math.abs(a);h>this.maxPos&&(this.maxPos=h),l>this.maxPos&&(this.maxPos=l),v.push(n,a,u)}}}let a=Ve(v,b,3);if(v.length&&!a.length){const t=[];for(let n=0;n<v.length;n+=3)t[n]=v[n],t[n+1]=v[n+2],t[n+2]=v[n+1];if(a=Ve(t,b,3),!a.length){for(let n=0;n<v.length;n+=3)t[n]=v[n+1],t[n+1]=v[n+2],t[n+2]=v[n];a=Ve(t,b,3)}}for(let t=0;t<a.length;t+=3)this.addElements(o+a[t],o+a[t+1],o+a[t+2])}}}const Bu=[{type:Int16Array,width:3,name:"aPosition"}];class Ju extends ua{getFormat(){return Bu}placeVector(t,n){const e=this.vt(t,n);if(0===e.length)return;const r=this.data,i=this.getAltitude(t.feature.properties);let s=r.aPosition.length/Bu[0].width;for(let t=0;t<e.length;t++){const n=e[t];r.aPosition.push(2*n.x+0,2*n.y+0,i),r.aPosition.push(2*n.x+1,2*n.y+0,i),r.aPosition.push(2*n.x+1,2*n.y+1,i),r.aPosition.push(2*n.x+0,2*n.y+1,i),this.addElements(s,s+1,s+2),this.addElements(s,s+2,s+3),s+=4;const o=Math.max(Math.abs(2*n.x+1),Math.abs(2*n.y+1));o>this.maxPos&&(this.maxPos=o)}}vt(t,n){const{feature:e,symbol:r}=t,i=this.xt(t,r),s=e.properties,{markerSpacingFn:o}=this.K,a=((o?o(null,s):r.markerSpacing)||250)*n;return mu(t,null,null,n,this.options.EXTENT,i,a)}xt(t,n){return this.K.markerPlacementFn?this.K.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement}}class Xu extends Su{constructor(t,n,e){(n=lr({},n)).lineJoin="miter",n.lineCap="butt",super(t,n,e),this.options.radialSegments%2==1&&this.options.radialSegments--}getFormat(){const{lineWidthFn:t,lineColorFn:n,lineOpacityFn:e,linePatternAnimSpeedFn:r,linePatternGapFn:i}=this.K,s=[...this.getPositionFormat(),{type:Int8Array,size:4,name:"aTubeNormal"},{type:this.options.positionType||Uint16Array,width:1,name:"aLinesofar"}];if(this.iconAtlas){s.push({type:Int8Array,width:1,name:"aNormalDistance"});const t=this.getIconAtlasMaxValue();s.push({type:t>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return t&&s.push({type:Uint16Array,width:1,name:"aLineWidth"}),n&&s.push({type:Uint8Array,width:4,name:"aColor"}),e&&s.push({type:Uint8Array,width:1,name:"aOpacity"}),r&&s.push({type:Int8Array,width:1,name:"aLinePatternAnimSpeed"}),i&&s.push({type:Int8Array,width:1,name:"aLinePatternGap"}),s}addHalfVertex(t,n,e,r,i,s,o,a){const{x:u,y:h,z:l}=t,c=1*this.scaledDistance,f=this.options.radialSegments/2,{x:d,y:p,z:y}=o.dir,m=function(t,n,e,r,i,s,o,a){ft(Yu,e,r,i),ft(Zu,s,o,0),mt(Ku,Yu,Zu),pt(Zu,Zu),pt(Ku,Ku),Qu[n]||(Qu[n]=[]);const u=Qu[n];for(var h=0;h<n;h++){const t=Math.PI*h/n,e=1-Math.abs(t-0)/(Math.PI/2);u[h]=u[h]||[],th(Zu,Ku,u[h],1,t,e*(a?-1:1))}return u}(0,f,d,p,y,n,e,i);this.prevVertex&&this.fillTubeElements(i),this.fillData(this.data,u,h,l||0,m,i,c,a)}fillTubeElements(t){const n=this.options.radialSegments/2,e=this.needAltitudeAttribute()?2:3,r=this.data.aPosition.length/e;for(let e=0;e<n;e++){const i=e+r-2*n;let s,o;e===n-1&&t?(s=e+r-2*n+1,o=e+r-2*n-2*n+1):(s=e+r+1,o=e+r+1-2*n),super.addElements(e+r-this.offset,s-this.offset,i-this.offset),super.addElements(i-this.offset,s-this.offset,o-this.offset)}}fillData(t,n,e,r,i,s,o,a){const{lineWidthFn:u,lineColorFn:h,lineOpacityFn:l,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.K,d=i.length;for(let s=0;s<d;s++){if(this.fillPosition(t,n,e,r),Mt(i[s],i[s],63),t.aTubeNormal.push(...i[s]),t.aLinesofar.push(o),this.iconAtlas&&(t.aNormalDistance.push(63*a),t.aTexInfo.push(...this.feaTexInfo)),u){const n=Mr(this.options.metric);let e=this.feaLineWidth*n;isNaN(e)&&(e=0),t.aLineWidth.push(Math.round(e))}h&&t.aColor.push(...this.feaColor),l&&t.aOpacity.push(this.feaOpacity),c&&t.aLinePatternAnimSpeed.push(127*(this.feaPatternAnimSpeed||0)),f&&t.aLinePatternGap.push(10*(this.feaLinePatternGap||0))}this.maxPos=Math.max(this.maxPos,Math.abs(n)+1,Math.abs(e)+1)}createDataPack(t,n){const e=super.createDataPack(t,n);return e&&(e.is2D=!1),e}}const Yu=[],Zu=[],Ku=[],Qu={};function th(t,n,e,r,i,s){return bt(e,r*(Math.cos(i)*t[0]+Math.sin(i)*n[0]),r*(Math.cos(i)*t[1]+Math.sin(i)*n[1]),r*(Math.cos(i)*t[2]+Math.sin(i)*n[2]),s),e}class nh extends Xu{addHalfVertex(t,n,e,r,i,s,o,a){const{x:u,y:h,z:l}=t,c=1*this.scaledDistance,{x:f,y:d,z:p}=o.dir,y=function(t,n,e,r,i,s,o,a){ft(rh,e,r,i),ft(ih,s,o,0),mt(sh,rh,ih),pt(ih,ih),pt(sh,sh),_t(eh,t,n);const u=Et(eh)/t,h=Math.atan(n/t);let l=Math.PI/2+(Math.PI/2-h);return oh[0]||(oh[0]=[]),th(ih,sh,oh[0],u,l,a?1:-1),l+=2*h,oh[1]||(oh[1]=[]),th(ih,sh,oh[1],u,l,a?1:-1),oh}(this.feaLineWidth,this.feaLineHeight,f,d,p,n,e,i);this.prevVertex&&this.fillTubeElements(i),this.fillData(this.data,u,h,l||0,y,i,c,a)}}const eh=[],rh=[],ih=[],sh=[],oh=[];class ah{constructor(t){this.max=t,this.reset()}reset(){return this.data={},this.order=[],this}clear(){this.reset()}add(t,n){return this.has(t)?(this.order.splice(this.order.indexOf(t),1),this.data[t]=n,this.order.push(t)):(this.data[t]=n,this.order.push(t),this.order.length>this.max&&this.getAndRemove(this.order[0])),this}has(t){return t in this.data}keys(){return this.order}getAndRemove(t){if(!this.has(t))return null;const n=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),n}get(t){return this.has(t)?this.data[t]:null}remove(t){return this.has(t)?(delete this.data[t],this.order.splice(this.order.indexOf(t),1),this):this}setMaxSize(t){for(this.max=t;this.order.length>this.max;)this.getAndRemove(this.order[0]);return this}}\n/*!\n * based on @mapbox/tiny-sdf\n * https://github.com/mapbox/tiny-sdf\n * @License BSD 2-Clause\n */var uh=1e20;function hh(t,n,e,r,i,s,o){this.fontSize=t||24,this.buffer=void 0===n?3:n,this.cutoff=r||.25,this.fontFamily=i||"sans-serif",this.fontWeight=s||"normal",this.fontStyle=o||"normal",this.radius=e||8;var a=this.size=this.fontSize+2*this.buffer;this.canvas="undefined"==typeof document?new OffscreenCanvas(a,a):document.createElement("canvas"),this.canvas.width=this.canvas.height=a,this.ctx=this.canvas.getContext("2d",{willReadFrequently:!0}),this.ctx.font=this.fontStyle+" "+this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textBaseline="middle",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(a*a),this.gridInner=new Float64Array(a*a),this.f=new Float64Array(a),this.z=new Float64Array(a+1),this.v=new Uint16Array(a),this.middle=Math.round(a/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function lh(t,n,e,r,i,s){for(var o=0;o<n;o++)ch(t,o,n,e,r,i,s);for(var a=0;a<e;a++)ch(t,a*n,1,n,r,i,s)}function ch(t,n,e,r,i,s,o){var a,u,h,l;for(s[0]=0,o[0]=-uh,o[1]=uh,a=0;a<r;a++)i[a]=t[n+a*e];for(a=1,u=0,h=0;a<r;a++){do{h=(i[a]-i[l=s[u]]+a*a-l*l)/(a-l)/2}while(h<=o[u]&&--u>-1);s[++u]=a,o[u]=h,o[u+1]=uh}for(a=0,u=0;a<r;a++){for(;o[u+1]<a;)u++;t[n+a*e]=i[l=s[u]]+(a-l)*(a-l)}}hh.prototype.draw=function(t,n,e){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.textBaseline="top",this.ctx.fillText(t,this.buffer,this.buffer);for(var r=this.ctx.getImageData(0,0,n,e),i=new Uint8ClampedArray(n*e),s=0;s<n*e;s++){var o=r.data[4*s+3]/255;this.gridOuter[s]=1===o?0:0===o?uh:Math.pow(Math.max(0,.5-o),2),this.gridInner[s]=1===o?uh:0===o?0:Math.pow(Math.max(0,o-.5),2)}for(lh(this.gridOuter,n,e,this.f,this.v,this.z),lh(this.gridInner,n,e,this.f,this.v,this.z),s=0;s<n*e;s++){var a=Math.sqrt(this.gridOuter[s])-Math.sqrt(this.gridInner[s]);i[s]=Math.round(255-255*(a/this.radius+this.cutoff))}return i};let fh=0;class dh{constructor(t,n=15,e){this.entries={},this.zt={},this.Ct=new ah(2048,(function(){})),this.Tt=t,this.Dt=n,this.jt=e}getGlyphs(t,n){if(!t||!Object.keys(t).length)return void n(null,{glyphs:null});const e=this.entries,r=t.options;let i=!0;r&&(i=!1!==r.isCharsCompact),i=i||this.jt;const s=(r,s,a)=>{let u=0,h=0;for(const n in t)if("options"!==n){e[n]=e[n]||{},s[n]=s[n]||{};for(const l in t[n]){if(h++,h<=r)continue;const t=n.split(" "),c=i&&"normal"===t[0]&&!Va(+l),f=n+":"+l+":"+c;let d;if(this.Ct.has(f)?d=this.Ct.get(f):(d=this.Ut(e[n],t,l,c),this.Ct.add(f,d),u++),d=ph(d),s[n][l]=d,a.push(d.bitmap.data.buffer),this.Tt&&u>this.Dt)return void this.Tt(o(h,s,a))}}n(null,{glyphs:s,buffers:a})};function o(t,n,e){return()=>{s(t,n,e)}}s(0,{},[])}Ut(t,n,e,r){const i=n[0],s=n[1],o=n.slice(3).join(" ");let a=t.tinySDF,u="normal"!==i?5:2;const h=r?-1:2;if(!a){let n="400";/bolder/i.test(s)?n="1000":/bold/i.test(s)?n="900":/medium/i.test(s)?n="500":/light/i.test(s)&&(n="200"),a=t.tinySDF=new hh(24,u,8,.25,o,n,i)}const l=String.fromCharCode(e),c=a.ctx.measureText(l),f=Math.round(c.width),d=a.draw(String.fromCharCode(e),f+2*u,24+2*u);if(fh<4){const t="undefined"!=typeof document&&document.getElementById("sdf-debug-"+fh++);t&&(t.width=f+2*u,t.height=a.canvas.height,t.getContext("2d").drawImage(a.canvas,0,0))}return{charCode:e,bitmap:{width:f+2*u,height:24+2*u,data:d},metrics:{width:f,height:24,left:1,top:-u,advance:f+u+h}}}}function ph(t){const n={width:t.bitmap.width,height:t.bitmap.height,data:new Uint8ClampedArray(t.bitmap.data)};return{charCode:t.charCode,bitmap:n,metrics:lr({},t.metrics)}}var yh=Object.freeze({__proto__:null,clipPolygon:Ru,calculateSignedArea:Sr,getFeaAltitudeAndHeight:Er,generatePickingIndiceIndex:Cr,convertRTLText:nu,packPosition:Dr,unpackPosition:function(t,n,e,r){const i=(Math.sign(n)||1)*(Math.abs(n)%jr),s=(Math.sign(e)||1)*(Math.abs(e)%jr),o=Math.floor(Math.abs(n)/jr),a=Math.floor(Math.abs(e)/jr);return t[0]=i,t[1]=s,t[2]=Math.sign(r+1e-5)*(2*o+a)*Ur+r,t},convertGeometry:hr,getPosArrayType:or,getUnsignedArrayType:ar,getIndexArrayType:sr});const mh={},gh={},vh=[];Object.freeze({__proto__:null,loadSymbolFnTypes:function t(n,e){if(!n)return null;var r=!1;if(Array.isArray(n)){var i,s=[];for(let o=0;o<n.length;o++)(i=t(n[o],e))?(s.push(i),r=!0):s.push(n[o]);return r?s:n}var o={__fn_types_loaded:!0};const a=[];for(const t in n)gr(n,t)&&a.push(t);const u=function(t){Object.defineProperty(o,t,{get:function(){return this["__fn_"+t]||(this["__fn_"+t]=p(this["_"+t])),this["__fn_"+t].apply(this,e())},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})},h={},l=function(t,n){Object.defineProperty(o,t,{get:function(){this["__fn_"+t]||(this["__fn_"+t]=Ro(this["_"+t],n));const r=e()[0];h.zoom=r;try{return this["__fn_"+t].evaluateWithoutErrorHandling(h,mh,gh,null,vh)}catch(t){return null}},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})};for(let t=0,e=a.length;t<e;t++){const e=a[t];if(d(n[e]))r=!0,o["_"+e]=n[e],u(e);else if(Ho(n[e])){r=!0;const t=Jo(e);o["_"+e]=n[e],l(e,t)}else o[e]=n[e]}return r?o:n}});const bh={polygonPatternFile:1,markerFile:1,markerPlacement:1,markerSpacing:1,textName:1,textStyle:1,textFaceName:1,textWeight:1,textPlacement:1,textSpacing:1,lineJoin:1,lineCap:1,linePatternFile:1};Object.assign({visible:1,textHorizontalAlignment:1,textVerticalAlignment:1,textWrapWidth:1,markerHorizontalAlignment:1,markerVerticalAlignment:1},bh),Object.assign({lineDasharray:1,topPolygonFill:1,bottomPolygonFill:1},bh);new Float32Array([-1e12])[0];const wh="maptalks_ombb";function Mh(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p,y,m){const g=n.length,v=i/3;for(let e=2,r=g;e<r;e+=3)t[i+e-2]=n[e-2],t[i+e-1]=n[e-1],t[i+e-0]=n[e]-o;i+=g;for(let e=2,r=g;e<r;e+=3)t[i+e-2]=n[e-2],t[i+e-1]=n[e-1],t[i+e-0]=n[e]-a;i+=g,t.trySetLength(i+g),t.copyWithin(i,i-2*g,i-g),i+=g,t.trySetLength(i+g),t.copyWithin(i,i-2*g,i-g),i+=g,(e=e||[]).push(g/3);for(let n=0;n<e.length;n++){xh(v+(e[n-1]||0),v+e[n],t,g/3,u,r,h,l,c,f,s,d,p,y,m)}return i}function xh(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p){const y=s.length;let m,g;for(let o=t,a=n;o<a-1;o++)m=o,g=o+1,i!==1/0&&at(e,m,g,i)||((o-t)%2==1&&(m+=2*r,g+=2*r),p?(s.push(m+r,g,m),s.push(g+r,g,m+r)):(s.push(m+r,m,g),s.push(g,g+r,m+r)));o&&function(t,n,e,r,i,s,o,a,u,h,l){let c,f=0,d=0,p=0,y=0;const m=l?[1,3,4]:[2,3,4];for(let l=s.length-1;l>=0;l--){const g=s[l],v=3*g+1,b=3*g+2,w=i[3*g],M=i[v],x=i[b];f||d||(f=Math.max(i[b],i[3*s[l-3]+2]),d=Math.min(i[b],i[3*s[l-3]+2]),c=f-d);let F=p;const A=l%6;0===t?(5===A&&(y=jt(i,s,l,w,M)),F=A===m[0]||A===m[1]||A===m[2]?p:p+y):1===t&&(A===m[0]||A===m[1]||A===m[2]?F=0:5===A?(y=jt(i,s,l,w,M),F=y):F=y);const k=F*u*(1/(100*h))/46.5/o;let P;P=1===n?x===f?1:0:"bottom"===e?x===f?c/100/46.5/a:0:x===f?0:-c/100/46.5/a,r[2*g]=k,r[2*g+1]=P,0===A&&(p+=y)}}(a,u,h,l,e,s.slice(y,s.length),c[0],c[1],f,d,p)}function Fh(t){const n=[t[0]];let e=t[0];for(let r=1;r<t.length;r++)Array.isArray(t[r])?t[r][0]===e[0]&&t[r][1]===e[1]&&t[r][2]===e[2]||n.push(t[r]):t[r].x===e.x&&t[r].y===e.y&&t[r].z===e.z||n.push(t[r]),e=t[r];return n}const Ah=na.getInstance();function kh(t,n,e,r,i,s,o,a,u,h,l,c,f,m){void 0===n.top&&(n.top=!0),void 0===n.side&&(n.side=!0),Ah.reset();const{altitudeScale:g,altitudeProperty:v,defaultAltitude:b,heightProperty:w,minHeightProperty:M,defaultHeight:F,tangent:A,uv:k,uvScale:_,topUVMode:O,sideUVMode:E,sideVerticalUVMode:I,top:$,side:z,textureYOrigin:C,topThickness:T}=n,D=!!m,j=function(t,n,{altitudeScale:e,altitudeProperty:r,defaultAltitude:i,heightProperty:s,minHeightProperty:o,defaultHeight:a},{center:u,side:h,top:l,topThickness:c,uvOrigin:f,uv:d,uvSize:p,topUVMode:y,sideUVMode:m,sideVerticalUVMode:g,textureYOrigin:v,localScale:b,centimeterToPoint:w,positionType:M,res:F,glScale:A,projectionCode:k},S,_){let O=n/t[0].extent;n===1/0&&(O=1);const E=n===1/0,I=_.get(),$=_.get(),z=_.get(),C=_.get(),T=_.get(),D=_.get(),j=_.get(),U=!!d,N=!!l,L=!!h,V=U?_.get():null;function R(t,e,r,i,s,o){let a=e;if(N){const i=Ve(C,r,3);if(0===i.length)return e;if(P(T,C),e+=C.length,o)for(let n=2,e=i.length;n<e;n+=3)i[n]+=t/3,i[n-1]+=t/3,i[n-2]+=t/3;else{let n;for(let e=2,r=i.length;e<r;e+=3)n=i[e-1],i[e-1]=i[e]+t/3,i[e]=n+t/3,i[e-2]+=t/3}P(D,i),U&&Tt(y||0,t,e,V,T,f,w,b,p[0],p[1],s,F,A,k,u),c>0&&!L&&(e=Mh(T,C,r,D,e,V,0,c,n,U,m||0,g||0,v,p,b,w,o)),j.setLength(e/3),j.fill(1,a/3,e/3)}if(L){N&&(c=0),a=e,e=Mh(T,C,r,D,e,V,c,i,n,U,m||0,g||0,v,p,b,w,o),j.setLength(e/3);const t=C.length/3;j.fill(1,a/3,a/3+t),j.fill(0,a/3+t,a/3+2*t),j.fill(1,a/3+2*t,a/3+3*t),j.fill(0,a/3+3*t,e/3)}return e}let H=0,W=0;const q=[-1,-1,n+1,n+1];let G=0,B=t.length;x(S)&&(G=S,B=S+1);let J=0,X=!1;const Y=_.get();for(;G<B;G++){const u=t[G],h=u.id;x(h)&&(Math.abs(h)>J&&(J=Math.abs(h)),h<0&&(X=!0));const l=u.geometry,c=u.properties[wh];let f=Array.isArray(c&&c[0]&&c[0][0])?c[0]:c;const{altitude:d,height:p}=yh.getFeaAltitudeAndHeight(u,e,r,i,s,a,o);H=Math.max(Math.abs(d),H);const y=T.length;let m=0,g=W;Y.setLength(0),C.setLength(0);const v=yh.calculateSignedArea(l[0])<0;for(let t=0,e=l.length;t<e;t++){let r=l[t];v&&(r=r.reverse()),r=Fh(r);const i=yh.calculateSignedArea(r)<0;if(!i&&t>0&&(m++,f=c&&c[m],W=R(g,W,Y,p*O,f,E),C.setLength(0),Y.setLength(0),g=W),n!==1/0&&(r=yh.clipPolygon(r,q)),!r.length){t===e-1&&(W=R(g,W,Y,p*O,f,E));continue}const s=r.length;Array.isArray(r[0])?r[0][0]===r[s-1][0]&&r[0][1]===r[s-1][1]||r.push([r[0][0],r[0][1]]):r[0].x===r[s-1].x&&r[0].y===r[s-1].y||r.push(r[0]),i&&Y.push(C.length/3),ot(C,C.length,r,O,d,!1,M),t===e-1&&(W=R(g,W,Y,p*O,f,E))}const b=T.length-y,w="__fea_idx".trim();for(let t=0;t<b/3;t++)$.push(void 0===u[w]?G:u[w]),I.push(G),x(h)&&z.push(h)}const Z=yh.getUnsignedArrayType($.length?$[$.length-1]:0),K={maxAltitude:H,vertices:T,verticeTypes:j,indices:D,pickingIds:na.createTypedArray($,Z),featureIndexes:I};if(z.length){const t=X?yh.getPosArrayType(J):yh.getUnsignedArrayType(J);K.featureIds=na.createTypedArray(z,t)}else K.featureIds=[];return V&&(V.setLength(T.length/3*2),K.uvs=V),K}(t,e,{altitudeScale:g,altitudeProperty:v,defaultAltitude:b||0,heightProperty:w,minHeightProperty:M,defaultHeight:F||0},{center:m,top:$,side:z,topThickness:10*T||0,uv:k||A,uvSize:_?[.5*_[0],.5*_[1]]:[.5,.5],uvOrigin:r,topUVMode:O,sideUVMode:E,sideVerticalUVMode:I,textureYOrigin:C,localScale:o,centimeterToPoint:a,positionType:f,res:i,glScale:s,projectionCode:l},c,Ah),U=[],N=j.vertices.length/3,L=yh.getIndexArrayType(N),V=na.createTypedArray(j.indices,L);delete j.indices,U.push(V.buffer,j.pickingIds.buffer);const R=A?Ah.get():new Float32Array(3*N);R.setLength&&R.setLength(3*N);const H=re(j.vertices,V,R);let W=!0;for(let t=0;t<H.length;t++){D||(H[t]=-H[t]);const n=H[t]%1;1-Math.abs(n)>1e-6?W=!1:0!==n&&(H[t]=Math.round(H[t]))}if(j.normals=H,A){let t=Ah.get();t.setLength(4*N),t=function(t,n,e,r,i){const s=t.length/3,o=i||new Array(4*s),a=[],u=[];for(let t=0;t<s;t++)a[t]=[0,0,0],u[t]=[0,0,0];const h=[0,0,0],l=[0,0,0],c=[0,0,0],f=[0,0],d=[0,0],p=[0,0],y=[0,0,0],m=[0,0,0];function g(n,r,i){fe(h,t,3*n),fe(l,t,3*r),fe(c,t,3*i),de(f,e,2*n),de(d,e,2*r),de(p,e,2*i);const s=l[0]-h[0],o=c[0]-h[0],g=l[1]-h[1],v=c[1]-h[1],b=l[2]-h[2],w=c[2]-h[2],M=d[0]-f[0],x=p[0]-f[0],F=d[1]-f[1],A=p[1]-f[1],k=1/(M*A-x*F);ft(y,(A*s-F*o)*k,(A*g-F*v)*k,(A*b-F*w)*k),ft(m,(M*o-x*s)*k,(M*v-x*g)*k,(M*w-x*b)*k),dt(a[n],a[n],y),dt(a[r],a[r],y),dt(a[i],a[i],y),dt(u[n],u[n],m),dt(u[r],u[r],m),dt(u[i],u[i],m)}for(let t=0,n=r.length;t<n;t+=3)g(r[t+0],r[t+1],r[t+2]);const v=[],b=[],w=[],M=[];let x,F,A;function k(t){fe(w,n,3*t),ct(M,w),F=a[t],ct(v,F),gt(v,v,function(t,n,e){return t[0]=n[0]*e,t[1]=n[1]*e,t[2]=n[2]*e,t}(w,w,yt(w,F))),pt(v,v),mt(b,M,F),A=yt(b,u[t]),x=A<0?-1:1,o[4*t]=v[0],o[4*t+1]=v[1],o[4*t+2]=v[2],o[4*t+3]=x}for(let t=0,n=r.length;t<n;t+=3)k(r[t+0]),k(r[t+1]),k(r[t+2]);return o}(j.vertices,j.normals,j.uvs,V,t),t=function(t,n){const e=new Float32Array(n.length),r=[],i=[],s=[];for(let o=0;o<n.length;o+=4){const a=o/4*3;ft(i,t[a]||0,t[a+1]||0,t[a+2]||0),bt(r,n[o]||0,n[o+1]||0,n[o+2]||0,n[o+3]||0),ne(s,i,r),vt(e.subarray(o,o+4),s)}return e}(j.normals,t),j.tangents=t,U.push(t.buffer),delete j.normals}if(j.normals&&(W&&(j.normals=na.createTypedArray(j.normals,Int8Array)),U.push(j.normals.buffer)),j.uvs){const t=j.uvs;j.uvs=na.createTypedArray(t,Float32Array),U.push(j.uvs.buffer)}if(m){const t=j.vertices;for(let n=0;n<t.length;n+=3)t[n]-=m[0],t[n+1]-=m[1]}const q=f||yh.getPosArrayType(Math.max(512,j.maxAltitude)),G=function(t,n,e,r){const i={},s={};if(S(n.polygonFill)){let o=y(n.polygonFill);const a=new Uint8Array(4*r.length);a.fill(255);for(let n=0;n<r.length;n++){const s=t[r[n]],u=s.properties||{};u.$layer=s.layer,u.$type=s.type;let h=o(e,u);d(h)&&(i.aColor=1,o=y(h),h=o(e,u)),delete u.$layer,delete u.$type,Pr.normalizeColor(Ph,h),a[4*n]=Ph[0],a[4*n+1]=Ph[1],a[4*n+2]=Ph[2],a[4*n+3]=Ph[3]}s.aColor=a}if(S(n.polygonOpacity)){let o=p(n.polygonOpacity);const a=new Uint8Array(r.length);a.fill(255);for(let n=0;n<r.length;n++){const s=t[r[n]],u=s.properties||{};u.$layer=s.layer,u.$type=s.type;let h=o(e,u);d(h)&&(i.aOpacity=1,o=y(h),h=o(e,u)),delete u.$layer,delete u.$type,a[n]=255*h}s.aOpacity=a}return s.dynamicAttributes=i,s}(t,u,h,j.featureIndexes),B=function(t,n,e,r,i){const s=[[],[]],o=S(r.topPolygonFill),a=S(r.bottomPolygonFill),u=[255,255,255,255];if(o||a){let h=o&&y(r.topPolygonFill),l=a&&y(r.bottomPolygonFill),c=null,f=null,p=null,m=null;for(let r=0;r<n.length;r++){if(1===t[r]&&!o||0===t[r]&&!a)continue;const g=1===t[r];if(g&&n[r]===c){t[r]=p;continue}if(!g&&n[r]===f){t[r]=m;continue}const v=e[n[r]],b=v.properties||{};b.$layer=v.layer,b.$type=v.type;let w=g?h:l,M=w(i,b);d(M)&&(w=y(M),M=w(i,b)),delete b.$layer,delete b.$type,Pr.normalizeColor(Ph,M),wt(Ph,Ph,u);let x=Sh(s,Ph);x<0&&(x=s.length,s.push(vt([],Ph))),t[r]=x,g?(c=n[r],p=x):(f=n[r],m=x)}}return s.slice(2)}(j.verticeTypes,j.featureIndexes,t,u,h),J={data:{data:{aVertexColorType:B.length<=252?na.createTypedArray(j.verticeTypes,Uint8Array):na.createTypedArray(j.verticeTypes,Uint16Array),aPosition:na.createTypedArray(j.vertices,q),aNormal:j.normals,aTexCoord0:j.uvs,aTangent:j.tangents,aPickingId:j.pickingIds},indices:V,properties:{maxAltitude:j.maxAltitude},dynamicAttributes:G.dynamicAttributes,vertexColors:B},buffers:U};return j.featureIds.length?(J.data.featureIds=j.featureIds,U.push(J.data.featureIds.buffer)):J.data.featureIds=[],G.aColor&&(J.data.data.aColor=G.aColor,J.buffers.push(G.aColor.buffer)),G.aOpacity&&(J.data.data.aOpacity=G.aOpacity,J.buffers.push(G.aOpacity.buffer)),J.buffers.push(J.data.data.aPosition.buffer),J.data.pickingIdIndiceMap=yh.generatePickingIndiceIndex(J.data.data.aPickingId,J.data.indices),J}const Ph=[];function Sh(t,n){for(let e=0;e<t.length;e++)if(xt(n,t[e]))return e;return-1}function _h(t,n,e,r,{altitudeScale:i,altitudeProperty:s,defaultAltitude:o,heightProperty:a,minHeightProperty:u,defaultHeight:h,bottom:l}){const c=l,f=n/t[0].extent,p=2*function(t,n){let e=0;for(let r=0,i=t.length;r<i;r++){const i=t[r];if(x(i.geometry[0][0])){const t=3*i.geometry.length;e+=n?2*t-6:t}else for(let t=0,r=i.geometry.length;t<r;t++){let r=3*i.geometry[t].length;3===i.type&&(r-=3),e+=n?2*r-6:r}}return e}(t)+3*t.length*2,y=[],m=new Int16Array(p),g=new Uint8Array(m.length/3*4);d(e)&&(e=Xo.compileFilter(e));const v=[];function b(t,e,r){const i=e-t,s=m.subarray(t,e),o=m.subarray(e,e+i);o.set(s);for(let t=2,n=o.length;t<n;t+=3)o[t]=s[t]-r;const a=t/3,u=i/3;let h,l;for(let t=a,e=u+a;t<e;t++)t<e-1?(h=t,l=t+1):(h=t,l=a),at(m,h,l,n)||(v.push(h,l),c&&v.push(h+u,l+u),Oh(m,h,n)||v.push(h,h+u));return e+i}let w=0,M=0;const F="__fea_idx".trim(),A=[];for(let n=0,l=t.length;n<l;n++){const l=t[n],c=l.geometry;if(e){let t;t="function"==typeof e?e(l&&l.properties):e,Pr.normalizeColor(A,t)}else ft(A,255,255,255);const d=w/3*4,{altitude:p,height:x}=yh.getFeaAltitudeAndHeight(l,i,s,o,a,h,u);M=Math.max(Math.abs(p),M);let k=w;for(let t=0,n=c.length;t<n;t++){let n=c[t];const e=n.length;n[0][0]===n[e-1][0]&&n[0][1]===n[e-1][1]&&(n=n.slice(0,e-1)),w=ot(m,k,n,f,p),w=b(k,w,x*f),k=w}const P=k/3*4;for(let t=d;t<P;t+=4)g[t]=A[0],g[t+1]=A[1],g[t+2]=A[2],g[t+3]=255*(r||1);const S=v.length-y.length;for(let t=0;t<S;t++)y.push(l[F])}const k=v.reduce((t,n)=>Math.max(t,n),0),P=new(yh.getIndexArrayType(k))(v),S=yh.getUnsignedArrayType(t.length);return{aPosition:new(yh.getPosArrayType(Math.max(512,M)))(m),indices:P,aPickingId:new S(y),aColor:g}}function Oh(t,n,e){const r=t[3*n],i=t[3*n+1];return r<0||r>e||i<0||i>e}function Eh(t,n,e,r){const i=_h(t,n,e.lineColor,e.lineOpacity,r),s=[i.aPosition.buffer,i.indices.buffer,i.aPickingId.buffer],o=i.indices;return delete i.indices,{data:{data:i,indices:o},buffers:s}}let Ih=!1;try{const t=new OffscreenCanvas(1,1);t.getContext("2d").fillText("hello",0,0),Ih=!0}catch(t){Ih=!1}var $h=Ih;const zh="__original_properties",Ch="__fn-type_properties";class Th{constructor(t,n,e,r,i){this.id=t,this.options=n,this.upload=e,this.Nt(n.style),this.requests={},this.Ct=r,this.Lt=0,this.loadings=i}updateStyle(t,n){this.options.style=t,this.Lt=t.styleCounter,this.Nt(t),n()}updateOptions(t,n){this.options=w(this.options,t),n()}loadTile(t,n){const e=this.loadings,r=t.tileInfo.url,i=this.options.debugTile;if(i){const{x:e,y:r,z:s}=t.tileInfo;let o=!1;for(let t=0;t<i.length;t++)if(e===i[t].x&&r===i[t].y&&s===i[t].z){o=!0;break}if(!o)return void n()}e[r]?e[r].push({context:t,callback:n,ref:this}):(e[r]=[{context:t,callback:n,ref:this}],this.requests[r]=this.getTileFeatures(t,(n,i,s,o)=>{const a=e[r];if(delete e[r],this.checkIfCanceled(r))return delete this.requests[r],void this.Vt(a,null,{canceled:!0});if(delete this.requests[r],this.options.debug&&i)for(let n=0;n<i.length;n++)i[n]._debug_info={index:n,id:i[n].id,tileId:t.tileInfo.id};if(n)this.Vt(a,n);else if(i&&i.length){if(a)for(let t=0;t<a.length;t++)this.Rt.call(a[t].ref,a[t].context,a[t].callback,r,s,i,o)}else this.Vt(a)}))}Rt(t,n,e,r,i,s){this.Ht(r,i,t).then(e=>{e.canceled?n(null,{canceled:!0}):(e.data.style=t.styleCounter,s&&w(e.data,s),n(null,e.data,e.buffers))}).catch(t=>{n(t)})}abortTile(t,n){delete this.requests[t],this.Wt(t),n()}Wt(t){const n=this.loadings[t];if(n)for(let t=0;t<n.length;t++)n[t].callback(null,{canceled:!0});delete this.loadings[t]}Vt(t,n,e){if(t)for(let r=0;r<t.length;r++)t[r].callback(n,e)}checkIfCanceled(t){return!this.requests[t]}onRemove(){this.loadings={},delete this.Ct,this.requests={}}fetchIconGlyphs(t,n,e){if(this.options.workerGlyph&&$h){const r=[];if(t&&Object.keys(t).length){const n=new Promise(n=>{this.upload("fetchIconGlyphs",{icons:t},null,(t,e)=>{n({err:t,iconData:e})})});r.push(n)}if(n&&Object.keys(n).length){const t=new Promise(t=>{this.qt||(this.qt=new dh),this.qt.getGlyphs(n,(n,e)=>{t({err:n,glyphData:e})})});r.push(t)}Promise.all(r).then(t=>{const n={icons:null,glyphs:null};for(let r=0;r<t.length;r++){if(t[r].err)return void e(t[r].err);t[r].iconData?n.icons=t[r].iconData.icons:t[r].glyphData&&(n.glyphs=t[r].glyphData.glyphs)}return n}).then(t=>{e(null,t)})}else this.upload("fetchIconGlyphs",{icons:t,glyphs:n},null,e)}Ht(t,n,e){if(!n.length)return Promise.resolve({data:null,buffers:[]});const{glScale:r,tileInfo:i}=e,s=!this.options.style.style.length&&!this.options.style.featureStyle.length;let o=this.pluginConfig.slice(0);s&&(o=this.Gt(t)),this.featurePlugins&&P(o,this.featurePlugins);const a={};for(let t=0;t<o.length;t++)Rh(n,e.tileInfo.z,o[t],a);const u=[],h=[];for(let t=0;t<n.length;t++){const e=n[t],r=a[t];if(r){h.fill(null);let t=0;for(const n in r){let i=0;const s=r[n].values();for(const t of s){let r=h[i];r||(r=Gh(e),h[i]=r),r.properties[n]=t,i++}i>t&&(t=i)}for(let n=0;n<t;n++)u.push(h[n])}else u.push(e)}const l=(n=u)[0].extent,c=i.z,f={x:i.extent2d.xmin*r,y:i.extent2d.ymax*r},d=[],p=[],y=[],m=this.options,g=[],v={},b=[Promise.resolve(e.styleCounter)];let M=0,x=-1;const F=[];let A=!1;for(let t=0;t<o.length;t++){x++;const r=o[t];r.type!==M&&(x=0,M=r.type);const a=0===r.type?d:p;if(r.symbol&&!1===r.symbol.visible){a[x]=null;continue}Xh(r.symbol,F,t),A=A||F[t]&&F[t].size>0;const{tileFeatures:u,tileFeaIndexes:h}=this.Bt(c,r.type,r.filter,n,v,t);if(!u.length){a[x]=null;continue}const m=h[h.length-1],k=yh.getIndexArrayType(m);a[x]={styledFeatures:new k(h)},y.push({idx:t,typeIdx:x}),g.push(a[x].styledFeatures.buffer);const P=w({},e,{extent:l,zoom:c,tilePoint:f});if(this.options.debugTile){const t=this.options.debugTile;for(let n=0;n<t.length;n++){const{x:e,y:r,z:s}=t[n];if(i.x===e&&i.y===r&&i.z===s){P.debugIndex=t[n].index;break}}}let S=this.Jt(u,r,P);s&&(S=S.then(t=>{if(!t)return null;if(t.data)t.data.layer=u[0].layer;else if(Array.isArray(t))for(let n=0;n<t.length;n++)t[n]&&t[n].data&&(t[n].data.layer=u[0].layer);return t})),b.push(S)}return Promise.all(b).then(([e,...r])=>{function i(t,n){if(void 0===t.data.ref&&(t.data.type=o[y[n].idx].renderPlugin.dataConfig.type,t.data.filter=o[y[n].idx].filter.def,t.buffers&&t.buffers.length))for(let n=0;n<t.buffers.length;n++)g.push(t.buffers[n])}if(e!==this.Lt)return{canceled:!0};for(let t=0;t<r.length;t++){if(!r[t])continue;const n=r[t],e=0===o[y[t].idx].type?d:p;if(Array.isArray(n)){const r=[];for(let e=0;e<n.length;e++)n[e]&&(i(n[e],t),(void 0===n[e].data.ref||n[n[e].data.ref])&&r.push(n[e].data));r.length&&(e[y[t].typeIdx].data=r)}else i(n,t),e[y[t].typeIdx].data=n.data}const s={},a=t;if(m.features||m.schema||A){let t,e=!1;for(let r=0,i=n.length;r<i;r++)if(t=n[r],a[t.layer].properties||(a[t.layer].properties=Uh(t.properties)),t&&(m.features||A&&v[r]))if("id"===m.features)s[r]=t.id;else{m.pickingGeometry||delete t.geometry,delete t.extent,delete t.properties.$layer,delete t.properties.$type,delete t.__index;const n=t.originalFeature;if(n){const n=t.properties,e=w({},t.originalFeature);delete n[zh],e.customProps=w({},n),t=e}const i=w({},t);if(!m.features){const i=v[r];for(let r=0;r<i.length;r++){const i=F[r];i&&i.forEach(r=>{const i=n?n.properties:t.properties;i[Ch]||(i[Ch]=new Set),i[Ch].add(r),e=!0})}}s[r]=i}if(e)for(const t in s){const n=s[t];if(n.properties[Ch]){const t=n.properties[Ch];delete n.properties[Ch];for(const e in n.properties)t.has(e)||delete n.properties[e]}}}return{data:{schema:a,data:d,featureData:p,extent:l,features:s},buffers:g}}).catch(t=>{console.error(t)})}Jt(t,n,e){let r=t;const i=n.renderPlugin.dataConfig,s=n.symbol,o=this.options.tileSize,{extent:a,glScale:u,zScale:h,zoom:l,tilePoint:c,centimeterToPoint:f}=e,d=a/o,p=i.type,y=e.debugIndex;let m=w({},i,{EXTENT:a,zoom:l,debugIndex:y,features:this.options.features});if("3d-extrusion"===p){const t=Nh(s);t&&(i.uv=1,2===t&&(i.tangent=1));const n=this.options.projectionCode;return Promise.all([Promise.resolve(kh(r,i,a,c,e.tileInfo.res,u,this.options.tileSize/a,f,s,l,n,y))])}if("3d-wireframe"===p)return Promise.all([Promise.resolve(Eh(r,a,s,i))]);if("point"===p){m=w(m,{requestor:this.fetchIconGlyphs.bind(this),altitudeToTileScale:h*a/this.options.tileSize/u});const t=wu.splitPointSymbol(s),n=ua.genFnTypes(t[0]);return wu.needMerge(t[0],n,l)&&(r=wu.mergeLineFeatures(r,t[0],n,l)),Promise.all(t.map((t,e)=>(0===e?m.fnTypes=n:delete m.fnTypes,new wu(r,t,m).load(d))))}if("native-point"===p){const t=h*a/this.options.tileSize/u;return m.altitudeToTileScale=t,Lh(r,s,m,Nu,a/o)}if("line"===p)return m=w(m,{requestor:this.fetchIconGlyphs.bind(this),tileRatio:d}),Lh(r,s,m,Su);if("native-line"===p)return Lh(r,s,m,ju);if("fill"===p)return m=w(m,{requestor:this.fetchIconGlyphs.bind(this)}),Lh(r,s,m,Gu);if("line-extrusion"===p){delete s.lineGradientProperty,s.lineJoin="miter",s.lineCap="butt";const t=Nh(s);if(t&&(i.uv=1,2===t&&(i.tangent=1)),m=w(m,{tileSize:o,zScale:h,glScale:u}),t){const t=[];if(!1!==i.top){const n=w({},m);n.side=!1,t.push(new Tu(r,s,n))}return!1!==i.side&&(m.side=!0,m.top=!1,t.push(new Tu(r,s,m))),Promise.all(t.map(t=>t.load()))}return Promise.all([new Tu(r,s,m).load()])}if("circle"===p)return Lh(r,s,m,Ju);if("round-tube"===p||"square-tube"===p){const t="round-tube"===p?Xu:nh;return m=w(m,{requestor:this.fetchIconGlyphs.bind(this),radialSegments:"round-tube"===p?i.radialSegments||8:4,centimeterToPoint:f,tileRatio:d,isTube:!0}),Lh(r,s,m,t)}return Promise.resolve([])}Bt(t,n,e,r,i,s){const o="__fea_idx".trim(),a=[],u=[],h=r.length;for(let l=0;l<h;l++)if((1===n||void 0===r[l].id||!this.styledFeatures[r[l].id])&&((!e.def||"default"===e.def)&&!i[l]||!0===e.def||e.def&&(void 0!==e.def.condition||Array.isArray(e.def))&&e(r[l],t))){const t=r[l];if(void 0===t[o]&&(t[o]=l),i[l]||(i[l]=[]),i[l].push(s),u.push(t),a.push(l),1===n)break}return{tileFeatures:u,tileFeaIndexes:a}}Nt(t){const{style:n,featureStyle:e}=t,r={};e.forEach(t=>{Array.isArray(t.id)?(t.id.forEach(t=>{r[t]=1}),t.filter=["in","$id",...t.id]):(r[t.id]=1,t.filter=["==","$id",t.id])});const i=Xo.compileStyle(n);for(let t=0;t<n.length;t++)i[t].filter&&(i[t].filter.def=n[t].filter?n[t].filter.value||n[t].filter:void 0),i[t].type=0;const s=[],o=Xo.compileStyle(e);for(let t=0;t<e.length;t++)o[t].type=1,o[t].filter.def=e[t].filter?e[t].filter.value||e[t].filter:void 0,o[t].renderPlugin&&s.push(o[t]);this.pluginConfig=i,this.featurePlugins=s,this.styledFeatures=r}Gt(t){let n=this.Xt;this.Xt||(n=this.Xt={});const e=["","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon"],r=[];for(const i in t){const s=i;if(!n[i]){const r=[];for(let n=0;n<t[i].types.length;n++){const o=t[i].types[n],a=["all",["==","$layer",s],["==","$type",e[o]]],u={filter:Tn(a),renderPlugin:Dh(o),symbol:jh(o)};u.filter.def=a,u.type=0,r.push(u)}n[s]=r}r.push(...n[s])}return r}}function Dh(t){switch(t){case 1:return{type:"native-point",dataConfig:{type:"native-point",only2D:!0}};case 2:return{type:"native-line",dataConfig:{type:"native-line",only2D:!0}};case 3:return{type:"fill",dataConfig:{type:"fill",only2D:!0}}}return null}function jh(t){switch(t){case 1:return{markerFill:"#f00",markerSize:10};case 2:return{lineColor:"#fff"};case 3:return{polygonFill:"#00f",polygonOpacity:.4}}return null}function Uh(t){if(Array.isArray(t)||!A(t))return{};const n={};for(const e in t){const r=t[e];M(r)?n[e]="string":x(r)?n[e]="number":!0===r||!1===r?n[e]="boolean":Array.isArray(r)?n[e]="array":n[e]="object"}return n}function Nh(t){if(!t)return 0;let n=0;for(const e in t){if(("normalTexture"===e||"bumpTexture"===e)&&t[e])return 2;if(e.indexOf("Texture")>0&&t[e])n=1;else if(A(t[e])){const r=Nh(t[e]);if(2===r)return r;1===r&&(n=1)}}return n}function Lh(t,n,e,r,i){const s={},o=Array.isArray(n)?n:[n];let a=-1;for(let t=0;t<o.length;t++)s[t]=Vh(o[t]),!s[t]&&o[t]&&-1===a&&(a=t);const u=[];for(let n=0;n<o.length;n++)o[n]&&(o[n].index={index:n},s[n]||n===a?u.push(new r(t,o[n],e).load(i)):u.push({data:{ref:a,symbolIndex:{index:n}}}));return Promise.all(u)}function Vh(t){if(!t)return 0;for(const n in t)if(S(t[n]))return 1;return 0}function Rh(t,n,e,r){const i=e.customProperties;if(!i)return t;if(i)for(let t=0;t<i.length;t++)i[t].fn=Xo.compileFilter(i[t].filter);for(let e=0;e<i.length;e++)for(let s=0,o=t.length;s<o;s++)if(i[e].fn(t[s],n))for(const t in i[e].properties){const n=i[e].properties[t];k(n)||(r[s]||(r[s]={}),r[s][t]||(r[s][t]=new Set),r[s][t].add(n))}}const Hh={get:(t,n)=>n in t?t[n]:t.originalFeature[n],has:(t,n)=>n in t||n in t.originalFeature},Wh={get:function(t,n){return n in t?t[n]:t[zh][n]},has:(t,n)=>n in t||n in t[zh]},qh={};function Gh(t){const n={};n.originalFeature=t;const e=new Proxy(n,Hh);return e.properties=new Proxy({},Wh),e.properties[zh]=t.properties||qh,e}function Bh(t,n,e){t[n]||(t[n]=new Set),t[n].add(e)}const Jh=[];function Xh(t,n,e){if(!t)return Jh;for(const r in t){if(!t[r]||!Pr.checkIfZoomFnTypeSymbol(r))continue;if(S(t[r]))Bh(n,e,t[r].property);else{if("lineGradientProperty"===r){Bh(n,e,t[r]);continue}if("textName"===r)if(M(t[r])){const i=ma.resolveVarNames(t[r]);if(i)for(let t=0;t<i.length;t++)Bh(n,e,i[t])}else if(Xo.isExpression(t[r])){const i=[];ma.resolveExpVarNames(i,t[r]);for(let t=0;t<i.length;t++)Bh(n,e,i[t])}}const i=t[r].stops;if(i&&i.length)for(let t=0;t<i.length;t++)S(i[t][1])&&Bh(n,t,i[t][1].property)}return n[e]}function Yh(t,n){Zh(t.geometry,n)}function Zh(t,n){if(t)switch(t.type){case"Point":Kh(t.coordinates,n);break;case"MultiPoint":case"LineString":Qh(t.coordinates,n);break;case"MultiLineString":!function(t,n){for(let e=0,r=t.length;e<r;e++)Qh(t[e],n)}(t.coordinates,n);break;case"Polygon":tl(t.coordinates,n);break;case"MultiPolygon":!function(t,n){for(let e=0,r=t.length;e<r;e++)tl(t[e],n)}(t.coordinates,n);break;case"GeometryCollection":const e=t.geometries.length;for(let r=0;r<e;r++)Zh(t.geometries[r],n)}}function Kh(t,n){n[0]=Math.min(n[0],t[0]),n[1]=Math.min(n[1],t[1]),n[2]=Math.max(n[2],t[0]),n[3]=Math.max(n[3],t[1])}function Qh(t,n){for(let e=0,r=t.length;e<r;e++)Kh(t[e],n)}function tl(t,n){t.length&&Qh(t[0],n)}function nl(t,n,e,r,i){!function t(n,e,r,i,s){for(;i>r;){if(i-r>600){var o=i-r+1,a=e-r+1,u=Math.log(o),h=.5*Math.exp(2*u/3),l=.5*Math.sqrt(u*h*(o-h)/o)*(a-o/2<0?-1:1),c=Math.max(r,Math.floor(e-a*h/o+l)),f=Math.min(i,Math.floor(e+(o-a)*h/o+l));t(n,e,c,f,s)}var d=n[e],p=r,y=i;for(el(n,r,e),s(n[i],d)>0&&el(n,r,i);p<y;){for(el(n,p,y),p++,y--;s(n[p],d)<0;)p++;for(;s(n[y],d)>0;)y--}0===s(n[r],d)?el(n,r,y):(y++,el(n,y,i)),y<=e&&(r=y+1),e<=y&&(i=y-1)}}(t,n,e||0,r||t.length-1,i||rl)}function el(t,n,e){var r=t[n];t[n]=t[e],t[e]=r}function rl(t,n){return t<n?-1:t>n?1:0}class il{constructor(t=9){this.Yt=Math.max(4,t),this.Zt=Math.max(2,Math.ceil(.4*this.Yt)),this.clear()}all(){return this.Kt(this.data,[])}search(t){let n=this.data;const e=[];if(!ml(t,n))return e;const r=this.toBBox,i=[];for(;n;){for(let s=0;s<n.children.length;s++){const o=n.children[s],a=n.leaf?r(o):o;ml(t,a)&&(n.leaf?e.push(o):yl(t,a)?this.Kt(o,e):i.push(o))}n=i.pop()}return e}collides(t){let n=this.data;if(!ml(t,n))return!1;const e=[];for(;n;){for(let r=0;r<n.children.length;r++){const i=n.children[r],s=n.leaf?this.toBBox(i):i;if(ml(t,s)){if(n.leaf||yl(t,s))return!0;e.push(i)}}n=e.pop()}return!1}load(t){if(!t||!t.length)return this;if(t.length<this.Zt){for(let n=0;n<t.length;n++)this.insert(t[n]);return this}let n=this.Qt(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this.tn(this.data,n);else{if(this.data.height<n.height){const t=this.data;this.data=n,n=t}this.nn(n,this.data.height-n.height-1,!0)}else this.data=n;return this}insert(t){return t&&this.nn(t,this.data.height-1),this}clear(){return this.data=gl([]),this}remove(t,n){if(!t)return this;let e=this.data;const r=this.toBBox(t),i=[],s=[];let o,a,u;for(;e||i.length;){if(e||(e=i.pop(),a=i[i.length-1],o=s.pop(),u=!0),e.leaf){const r=sl(t,e.children,n);if(-1!==r)return e.children.splice(r,1),i.push(e),this.en(i),this}u||e.leaf||!yl(e,r)?a?(o++,e=a.children[o],u=!1):e=null:(i.push(e),s.push(o),o=0,a=e,e=e.children[0])}return this}toBBox(t){return t}compareMinX(t,n){return t.minX-n.minX}compareMinY(t,n){return t.minY-n.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}Kt(t,n){const e=[];for(;t;)t.leaf?n.push(...t.children):e.push(...t.children),t=e.pop();return n}Qt(t,n,e,r){const i=e-n+1;let s,o=this.Yt;if(i<=o)return s=gl(t.slice(n,e+1)),ol(s,this.toBBox),s;r||(r=Math.ceil(Math.log(i)/Math.log(o)),o=Math.ceil(i/Math.pow(o,r-1))),s=gl([]),s.leaf=!1,s.height=r;const a=Math.ceil(i/o),u=a*Math.ceil(Math.sqrt(o));vl(t,n,e,u,this.compareMinX);for(let i=n;i<=e;i+=u){const n=Math.min(i+u-1,e);vl(t,i,n,a,this.compareMinY);for(let e=i;e<=n;e+=a){const i=Math.min(e+a-1,n);s.children.push(this.Qt(t,e,i,r-1))}}return ol(s,this.toBBox),s}rn(t,n,e,r){for(;r.push(n),!n.leaf&&r.length-1!==e;){let e,r=1/0,i=1/0;for(let s=0;s<n.children.length;s++){const o=n.children[s],a=cl(o),u=dl(t,o)-a;u<i?(i=u,r=a<r?a:r,e=o):u===i&&a<r&&(r=a,e=o)}n=e||n.children[0]}return n}nn(t,n,e){const r=e?t:this.toBBox(t),i=[],s=this.rn(r,this.data,n,i);for(s.children.push(t),ul(s,r);n>=0&&i[n].children.length>this.Yt;)this.sn(i,n),n--;this.an(r,i,n)}sn(t,n){const e=t[n],r=e.children.length,i=this.Zt;this.un(e,i,r);const s=this.hn(e,i,r),o=gl(e.children.splice(s,e.children.length-s));o.height=e.height,o.leaf=e.leaf,ol(e,this.toBBox),ol(o,this.toBBox),n?t[n-1].children.push(o):this.tn(e,o)}tn(t,n){this.data=gl([t,n]),this.data.height=t.height+1,this.data.leaf=!1,ol(this.data,this.toBBox)}hn(t,n,e){let r,i=1/0,s=1/0;for(let o=n;o<=e-n;o++){const n=al(t,0,o,this.toBBox),a=al(t,o,e,this.toBBox),u=pl(n,a),h=cl(n)+cl(a);u<i?(i=u,r=o,s=h<s?h:s):u===i&&h<s&&(s=h,r=o)}return r||e-n}un(t,n,e){const r=t.leaf?this.compareMinX:hl,i=t.leaf?this.compareMinY:ll;this.cn(t,n,e,r)<this.cn(t,n,e,i)&&t.children.sort(r)}cn(t,n,e,r){t.children.sort(r);const i=this.toBBox,s=al(t,0,n,i),o=al(t,e-n,e,i);let a=fl(s)+fl(o);for(let r=n;r<e-n;r++){const n=t.children[r];ul(s,t.leaf?i(n):n),a+=fl(s)}for(let r=e-n-1;r>=n;r--){const n=t.children[r];ul(o,t.leaf?i(n):n),a+=fl(o)}return a}an(t,n,e){for(let r=e;r>=0;r--)ul(n[r],t)}en(t){for(let n,e=t.length-1;e>=0;e--)0===t[e].children.length?e>0?(n=t[e-1].children,n.splice(n.indexOf(t[e]),1)):this.clear():ol(t[e],this.toBBox)}}function sl(t,n,e){if(!e)return n.indexOf(t);for(let r=0;r<n.length;r++)if(e(t,n[r]))return r;return-1}function ol(t,n){al(t,0,t.children.length,n,t)}function al(t,n,e,r,i){i||(i=gl(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(let s=n;s<e;s++){const n=t.children[s];ul(i,t.leaf?r(n):n)}return i}function ul(t,n){return t.minX=Math.min(t.minX,n.minX),t.minY=Math.min(t.minY,n.minY),t.maxX=Math.max(t.maxX,n.maxX),t.maxY=Math.max(t.maxY,n.maxY),t}function hl(t,n){return t.minX-n.minX}function ll(t,n){return t.minY-n.minY}function cl(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function fl(t){return t.maxX-t.minX+(t.maxY-t.minY)}function dl(t,n){return(Math.max(n.maxX,t.maxX)-Math.min(n.minX,t.minX))*(Math.max(n.maxY,t.maxY)-Math.min(n.minY,t.minY))}function pl(t,n){const e=Math.max(t.minX,n.minX),r=Math.max(t.minY,n.minY),i=Math.min(t.maxX,n.maxX),s=Math.min(t.maxY,n.maxY);return Math.max(0,i-e)*Math.max(0,s-r)}function yl(t,n){return t.minX<=n.minX&&t.minY<=n.minY&&n.maxX<=t.maxX&&n.maxY<=t.maxY}function ml(t,n){return n.minX<=t.maxX&&n.minY<=t.maxY&&n.maxX>=t.minX&&n.maxY>=t.minY}function gl(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function vl(t,n,e,r,i){const s=[n,e];for(;s.length;){if((e=s.pop())-(n=s.pop())<=r)continue;const o=n+Math.ceil((e-n)/r/2)*r;nl(t,o,n,e,i),s.push(n,o,o,e)}}class bl{constructor(t=[],n=wl){if(this.data=t,this.length=this.data.length,this.compare=n,this.length>0)for(let t=(this.length>>1)-1;t>=0;t--)this.D(t)}push(t){this.data.push(t),this.length++,this.j(this.length-1)}pop(){if(0===this.length)return;const t=this.data[0],n=this.data.pop();return this.length--,this.length>0&&(this.data[0]=n,this.D(0)),t}peek(){return this.data[0]}j(t){const{data:n,compare:e}=this,r=n[t];for(;t>0;){const i=t-1>>1,s=n[i];if(e(r,s)>=0)break;n[t]=s,t=i}n[t]=r}D(t){const{data:n,compare:e}=this,r=this.length>>1,i=n[t];for(;t<r;){let r=1+(t<<1),s=n[r];const o=r+1;if(o<this.length&&e(n[o],s)<0&&(r=o,s=n[o]),e(s,i)>=0)break;n[t]=s,t=r}n[t]=i}}function wl(t,n){return t<n?-1:t>n?1:0}var Ml={exports:{}},xl=function(t,n,e,r){var i=t[0],s=t[1],o=!1;void 0===e&&(e=0),void 0===r&&(r=n.length);for(var a=(r-e)/2,u=0,h=a-1;u<a;h=u++){var l=n[e+2*u+0],c=n[e+2*u+1],f=n[e+2*h+0],d=n[e+2*h+1];c>s!=d>s&&i<(f-l)*(s-c)/(d-c)+l&&(o=!o)}return o},Fl=function(t,n,e,r){var i=t[0],s=t[1],o=!1;void 0===e&&(e=0),void 0===r&&(r=n.length);for(var a=r-e,u=0,h=a-1;u<a;h=u++){var l=n[u+e][0],c=n[u+e][1],f=n[h+e][0],d=n[h+e][1];c>s!=d>s&&i<(f-l)*(s-c)/(d-c)+l&&(o=!o)}return o};Ml.exports=function(t,n,e,r){return n.length>0&&Array.isArray(n[0])?Fl(t,n,e,r):xl(t,n,e,r)};var Al=Ml.exports.nested=Fl;Ml.exports.flat=xl;function kl(t,n,e,r,i){let s,o,a,u,h=n[0],l=r[0],c=0,f=0;l>h==l>-h?(s=h,h=n[++c]):(s=l,l=r[++f]);let d=0;if(c<t&&f<e)for(l>h==l>-h?(o=h+s,a=s-(o-h),h=n[++c]):(o=l+s,a=s-(o-l),l=r[++f]),s=o,0!==a&&(i[d++]=a);c<t&&f<e;)l>h==l>-h?(o=s+h,u=o-s,a=s-(o-u)+(h-u),h=n[++c]):(o=s+l,u=o-s,a=s-(o-u)+(l-u),l=r[++f]),s=o,0!==a&&(i[d++]=a);for(;c<t;)o=s+h,u=o-s,a=s-(o-u)+(h-u),h=n[++c],s=o,0!==a&&(i[d++]=a);for(;f<e;)o=s+l,u=o-s,a=s-(o-u)+(l-u),l=r[++f],s=o,0!==a&&(i[d++]=a);return 0===s&&0!==d||(i[d++]=s),d}function Pl(t){return new Float64Array(t)}const Sl=Pl(4),_l=Pl(8),Ol=Pl(12),El=Pl(16),Il=Pl(4);function $l(t,n,e,r,i,s){const o=(n-s)*(e-i),a=(t-i)*(r-s),u=o-a;if(0===o||0===a||o>0!=a>0)return u;const h=Math.abs(o+a);return Math.abs(u)>=33306690738754716e-32*h?u:-function(t,n,e,r,i,s,o){let a,u,h,l,c,f,d,p,y,m,g,v,b,w,M,x,F,A;const k=t-i,P=e-i,S=n-s,_=r-s;w=k*_,f=134217729*k,d=f-(f-k),p=k-d,f=134217729*_,y=f-(f-_),m=_-y,M=p*m-(w-d*y-p*y-d*m),x=S*P,f=134217729*S,d=f-(f-S),p=S-d,f=134217729*P,y=f-(f-P),m=P-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,Sl[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,Sl[1]=b-(g+c)+(c-x),A=v+g,c=A-v,Sl[2]=v-(A-c)+(g-c),Sl[3]=A;let O=function(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}(4,Sl),E=22204460492503146e-32*o;if(O>=E||-O>=E)return O;if(c=t-k,a=t-(k+c)+(c-i),c=e-P,h=e-(P+c)+(c-i),c=n-S,u=n-(S+c)+(c-s),c=r-_,l=r-(_+c)+(c-s),0===a&&0===u&&0===h&&0===l)return O;if(E=11093356479670487e-47*o+33306690738754706e-32*Math.abs(O),O+=k*l+_*a-(S*h+P*u),O>=E||-O>=E)return O;w=a*_,f=134217729*a,d=f-(f-a),p=a-d,f=134217729*_,y=f-(f-_),m=_-y,M=p*m-(w-d*y-p*y-d*m),x=u*P,f=134217729*u,d=f-(f-u),p=u-d,f=134217729*P,y=f-(f-P),m=P-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,Il[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,Il[1]=b-(g+c)+(c-x),A=v+g,c=A-v,Il[2]=v-(A-c)+(g-c),Il[3]=A;const I=kl(4,Sl,4,Il,_l);w=k*l,f=134217729*k,d=f-(f-k),p=k-d,f=134217729*l,y=f-(f-l),m=l-y,M=p*m-(w-d*y-p*y-d*m),x=S*h,f=134217729*S,d=f-(f-S),p=S-d,f=134217729*h,y=f-(f-h),m=h-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,Il[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,Il[1]=b-(g+c)+(c-x),A=v+g,c=A-v,Il[2]=v-(A-c)+(g-c),Il[3]=A;const $=kl(I,_l,4,Il,Ol);w=a*l,f=134217729*a,d=f-(f-a),p=a-d,f=134217729*l,y=f-(f-l),m=l-y,M=p*m-(w-d*y-p*y-d*m),x=u*h,f=134217729*u,d=f-(f-u),p=u-d,f=134217729*h,y=f-(f-h),m=h-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,Il[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,Il[1]=b-(g+c)+(c-x),A=v+g,c=A-v,Il[2]=v-(A-c)+(g-c),Il[3]=A;const z=kl($,Ol,4,Il,El);return El[z-1]}(t,n,e,r,i,s,h)}function zl(t,n,e){n=Math.max(0,void 0===n?2:n),e=e||0;var r=function(t){for(var n=t[0],e=t[0],r=t[0],i=t[0],s=0;s<t.length;s++){var o=t[s];o[0]<n[0]&&(n=o),o[0]>r[0]&&(r=o),o[1]<e[1]&&(e=o),o[1]>i[1]&&(i=o)}var a=[n,e,r,i],u=a.slice();for(s=0;s<t.length;s++)Al(t[s],a)||u.push(t[s]);return function(t){t.sort(ql);for(var n=[],e=0;e<t.length;e++){for(;n.length>=2&&Nl(n[n.length-2],n[n.length-1],t[e])<=0;)n.pop();n.push(t[e])}for(var r=[],i=t.length-1;i>=0;i--){for(;r.length>=2&&Nl(r[r.length-2],r[r.length-1],t[i])<=0;)r.pop();r.push(t[i])}return r.pop(),n.pop(),n.concat(r)}(u)}(t),i=new il(16);i.toBBox=function(t){return{minX:t[0],minY:t[1],maxX:t[0],maxY:t[1]}},i.compareMinX=function(t,n){return t[0]-n[0]},i.compareMinY=function(t,n){return t[1]-n[1]},i.load(t);for(var s,o=[],a=0;a<r.length;a++){var u=r[a];i.remove(u),s=Vl(u,s),o.push(s)}var h=new il(16);for(a=0;a<o.length;a++)h.insert(Ll(o[a]));for(var l=n*n,c=e*e;o.length;){var f=o.shift(),d=f.p,p=f.next.p,y=Rl(d,p);if(!(y<c)){var m=y/l;(u=Cl(i,f.prev.p,d,p,f.next.next.p,m,h))&&Math.min(Rl(u,d),Rl(u,p))<=m&&(o.push(f),o.push(Vl(u,f)),i.remove(u),h.remove(f),h.insert(Ll(f)),h.insert(Ll(f.next)))}}f=s;var g=[];do{g.push(f.p),f=f.next}while(f!==s);return g.push(f.p),g}function Cl(t,n,e,r,i,s,o){for(var a=new bl([],Tl),u=t.data;u;){for(var h=0;h<u.children.length;h++){var l=u.children[h],c=u.leaf?Hl(l,e,r):Dl(e,r,l);c>s||a.push({node:l,dist:c})}for(;a.length&&!a.peek().node.children;){var f=a.pop(),d=f.node,p=Hl(d,n,e),y=Hl(d,r,i);if(f.dist<p&&f.dist<y&&Ul(e,d,o)&&Ul(r,d,o))return d}(u=a.pop())&&(u=u.node)}return null}function Tl(t,n){return t.dist-n.dist}function Dl(t,n,e){if(jl(t,e)||jl(n,e))return 0;var r=Wl(t[0],t[1],n[0],n[1],e.minX,e.minY,e.maxX,e.minY);if(0===r)return 0;var i=Wl(t[0],t[1],n[0],n[1],e.minX,e.minY,e.minX,e.maxY);if(0===i)return 0;var s=Wl(t[0],t[1],n[0],n[1],e.maxX,e.minY,e.maxX,e.maxY);if(0===s)return 0;var o=Wl(t[0],t[1],n[0],n[1],e.minX,e.maxY,e.maxX,e.maxY);return 0===o?0:Math.min(r,i,s,o)}function jl(t,n){return t[0]>=n.minX&&t[0]<=n.maxX&&t[1]>=n.minY&&t[1]<=n.maxY}function Ul(t,n,e){for(var r,i,s,o,a=Math.min(t[0],n[0]),u=Math.min(t[1],n[1]),h=Math.max(t[0],n[0]),l=Math.max(t[1],n[1]),c=e.search({minX:a,minY:u,maxX:h,maxY:l}),f=0;f<c.length;f++)if(r=c[f].p,i=c[f].next.p,s=t,r!==(o=n)&&i!==s&&Nl(r,i,s)>0!=Nl(r,i,o)>0&&Nl(s,o,r)>0!=Nl(s,o,i)>0)return!1;return!0}function Nl(t,n,e){return $l(t[0],t[1],n[0],n[1],e[0],e[1])}function Ll(t){var n=t.p,e=t.next.p;return t.minX=Math.min(n[0],e[0]),t.minY=Math.min(n[1],e[1]),t.maxX=Math.max(n[0],e[0]),t.maxY=Math.max(n[1],e[1]),t}function Vl(t,n){var e={p:t,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return n?(e.next=n.next,e.prev=n,n.next.prev=e,n.next=e):(e.prev=e,e.next=e),e}function Rl(t,n){var e=t[0]-n[0],r=t[1]-n[1];return e*e+r*r}function Hl(t,n,e){var r=n[0],i=n[1],s=e[0]-r,o=e[1]-i;if(0!==s||0!==o){var a=((t[0]-r)*s+(t[1]-i)*o)/(s*s+o*o);a>1?(r=e[0],i=e[1]):a>0&&(r+=s*a,i+=o*a)}return(s=t[0]-r)*s+(o=t[1]-i)*o}function Wl(t,n,e,r,i,s,o,a){var u,h,l,c,f=e-t,d=r-n,p=o-i,y=a-s,m=t-i,g=n-s,v=f*f+d*d,b=f*p+d*y,w=p*p+y*y,M=f*m+d*g,x=p*m+y*g,F=v*w-b*b,A=F,k=F;0===F?(h=0,A=1,c=x,k=w):(c=v*x-b*M,(h=b*x-w*M)<0?(h=0,c=x,k=w):h>A&&(h=A,c=x+b,k=w)),c<0?(c=0,-M<0?h=0:-M>v?h=A:(h=-M,A=v)):c>k&&(c=k,-M+b<0?h=0:-M+b>v?h=A:(h=-M+b,A=v));var P=(1-(l=0===c?0:c/k))*i+l*o-((1-(u=0===h?0:h/A))*t+u*e),S=(1-l)*s+l*a-((1-u)*n+u*r);return P*P+S*S}function ql(t,n){return t[0]===n[0]?t[1]-n[1]:t[0]-n[0]}class Gl{constructor(t,n){this.x=t,this.y=n}clone(){return new Gl(this.x,this.y)}normalize(){const t=this.length();this.x/=t,this.y/=t}negate(){this.x=-this.x,this.y=-this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}diff(t){return new Gl(this.x-t.x,this.y-t.y)}distance(t){const n=this.x-t.x,e=this.y-t.y;return Math.sqrt(n*n+e*e)}dot(t){return this.x*t.x+this.y*t.y}equals(t){return this.x===t.x&&this.y===t.y}orthogonal(){return new Gl(this.y,-this.x)}}function Bl(t,n,e,r){const i=n.x*r.y-n.y*r.x,s=e.x-t.x,o=e.y-t.y,a=(s*r.y-o*r.x)/i;return new Gl(t.x+a*n.x,t.y+a*n.y)}const Jl=[],Xl=[];function Yl(t){if(x(t[0]&&t[0].x)){const n=[];let e=0;for(let r=0;r<t.length;r++)Xl[e]?(Xl[e][0]=t[r].x,Xl[e][1]=t[r].y):Xl[e]=[t[r].x,t[r].y],n.push(Xl[e]),e++;t=n}try{const n=zl(t,1/0);let e=[1/0,1/0],r=[-1/0,-1/0];for(let t=0;t<n.length;t++)n[t][0]<e[0]&&(e[0]=n[t][0]),n[t][0]>r[0]&&(r[0]=n[t][0]),n[t][1]<e[1]&&(e[1]=n[t][1]),n[t][1]>r[1]&&(r[1]=n[t][1]);const i=[];let s=[],o=0;for(let t=0;t<n.length;t++)t===n.length-1&&n[t][0]===n[0][0]&&n[t][1]===n[0][1]||(zt(i,n[t],"EPSG:3857"),Jl[o]?(Jl[o].x=i[0],Jl[o].y=i[1]):Jl[o]=new Gl(i[0],i[1]),s.push(Jl[o]),o++);yh.calculateSignedArea(s)<0&&(s=s.reverse());const a=function(t){let n,e=Number.MAX_VALUE;const r=function(t,r,i,s,o,a,u,h){var l=Bl(t,r,o,a),c=Bl(i,s,o,a),f=Bl(u,h,t,r),d=Bl(u,h,i,s),p=l.distance(c)*l.distance(f);0!==p&&p<e&&(n=[l,f,d,c],e=p)};var i=[];for(let n=0;n<t.length;n++)i.push(t[(n+1)%t.length].diff(t[n])),i[n].normalize();var s,o,a,u,h=new Gl(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),l=new Gl(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);for(let n=0;n<t.length;n++){var c=t[n];c.x<h.x&&(h.x=c.x,s=n),c.x>l.x&&(l.x=c.x,o=n),c.y<h.y&&(h.y=c.y,u=n),c.y>l.y&&(l.y=c.y,a=n)}var f=new Gl(0,-1),d=new Gl(0,1),p=new Gl(-1,0),y=new Gl(1,0);for(let n=0;n<t.length;n++){var m=[Math.acos(f.dot(i[s])),Math.acos(d.dot(i[o])),Math.acos(p.dot(i[a])),Math.acos(y.dot(i[u]))];switch(m.indexOf(Math.min.apply(Math,m))){case 0:(d=(f=i[s].clone()).clone()).negate(),(y=(p=f.orthogonal()).clone()).negate(),s=(s+1)%t.length;break;case 1:(f=(d=i[o].clone()).clone()).negate(),(y=(p=f.orthogonal()).clone()).negate(),o=(o+1)%t.length;break;case 2:(y=(p=i[a].clone()).clone()).negate(),(d=(f=y.orthogonal()).clone()).negate(),a=(a+1)%t.length;break;case 3:(p=(y=i[u].clone()).clone()).negate(),(d=(f=y.orthogonal()).clone()).negate(),u=(u+1)%t.length}r(t[s],f,t[o],d,t[a],p,t[u],y)}return n}(s);if(!a||4!==a.length)return null;const u=a[0].distance(a[1]),h=a[1].distance(a[2]),l=a.map(t=>[t.x,t.y]);return l.push(+(h>u)),l}catch(t){return null}}const Zl=[];function Kl(t,n){const e=Array.isArray(t&&t[0]&&t[0][0]);for(let r=0;r<t.length;r++)e?t[r]=Kl(t[r]):(zt(Zl,t[r],n),t[r][0]=Zl[0],t[r][1]=Zl[1]);return t}class Ql extends Th{constructor(t,n,e,r,i,s){super(t,n,e,r,i),(n=n||{}).extent||(n.extent=8192),this.zoomOffset=0,n.tileSize&&(this.zoomOffset=-function(t){if(Math.log2)return Math.log2(t);const n=Math.log(t)*Math.LOG2E,e=Math.round(n);return Math.abs(e-n)<1e-14?e:n}(n.tileSize/256)),this.setData(n.data,s)}setData(t,n){if(delete this.index,!t)return void n();const e={maxZoom:24,tolerance:this.options.simplifyTolerance,extent:this.options.extent,buffer:x(this.options.tileBuffer)?this.options.tileBuffer:64,hasAltitude:!!this.options.hasAltitude,debug:0,lineMetrics:!0,indexMaxZoom:5,indexMaxPoints:1e5,disableFilter:!0};if(this.options.projection&&(e.projection=this.options.projection,"EPSG:4490"===e.projection&&(e.projection="EPSG:4326")),M(t)&&"{"!=t.substring(0,1)||t.url)O.getJSON(t.url?t.url:t,t.url?t:{},(t,r)=>{if(t&&n(t),!r)return void n(null,{extent:null,idMap:{}});let i=r;if(this.options.convertFn){i=new Function("data",this.options.convertFn+"\\nreturn convert(data)")(i)}const s=Array.isArray(i)?i:i.features;this.dn(s);const{first1000:o,idMap:a}=this.pn(s);this.yn(o,a,i,e,n)});else{"string"==typeof t&&(t=JSON.parse(t));const r=Array.isArray(t)?t:t.features;this.dn(r);let i=r;r&&r.length>1e3&&(i=r.slice(0,1e3)),this.yn(i,null,t,e,n)}}dn(t){if(this.options.generateOMBB&&t)for(let n=0;n<t.length;n++){const e=t[n];if(e&&e.geometry&&e.geometry.coordinates)if("Polygon"===e.geometry.type){const t=e.geometry.coordinates[0];if(!t)continue;const n=Yl(t,t.length);e.properties=e.properties||{},e.properties[wh]=n}else if("MultiPolygon"===e.geometry.type){const t=e.geometry.coordinates;for(let n=0;n<t.length;n++){if(!t[n])continue;const r=t[n][0];if(!r)continue;const i=Yl(r,r.length);e.properties=e.properties||{},e.properties[wh]=e.properties[wh]||[],e.properties[wh][n]=i}}}}yn(t,n,e,r,i){try{const s=t&&t.length?function(t){let n=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];switch(t.type){case"FeatureCollection":const e=t.features.length;for(let r=0;r<e;r++)Yh(t.features[r],n);break;case"Feature":Yh(t,n);break;default:Zh(t,n)}return n}({type:"FeatureCollection",features:t}):null;this.index=function(t,n){return new it(t,n)}(e,this.options.geojsonvt||r),i(null,{extent:s,idMap:n})}catch(t){console.warn(t),i({error:t.message})}}pn(t){const n=[],e={};let r=0;return t&&t.forEach(t=>{!function(t){t&&("Feature"!==t.type||t.geometry)&&(x(t.id)||(t.id=r++),e[t.id]=w({},t),t.geometry?(e[t.id].geometry=w({},t.geometry),e[t.id].geometry.coordinates=null):t.coordinates&&(e[t.id].coordinates=null),n.length<1e3&&n.push(t))}(t)}),{first1000:n,idMap:e}}getTileFeatures(t,n){const e=t.tileInfo,r=[];if(!this.index)return setTimeout((function(){n({loading:!0})}),1),1;const i=this.index.getTile(e.z+this.zoomOffset,e.x,e.y);if(!i||0===i.features.length)return setTimeout((function(){n(null,r,[])}),1),1;const s=[];for(let t=0,n=i.features.length;t<n;t++){const n=i.features[t];let e=n.layer;void 0===e&&(e="0"),s[e]={types:{}};s[e].types[n.type]=1,n.tags=n.tags||{},n.geometry.converted||(yh.convertGeometry(n),n.geometry.converted=1),r.push({type:n.type,layer:e,id:n.id,geometry:n.geometry,properties:n.tags,extent:this.options.extent})}for(const t in s)s[t].types=Object.keys(s[t].types).map(t=>+t);return setTimeout((function(){n(null,r,s)}),1),1}onRemove(){super.onRemove(),delete this.index}}var tc={\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nread:function(t,n,e,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,h=u>>1,l=-7,c=e?i-1:0,f=e?-1:1,d=t[n+c];for(c+=f,s=d&(1<<-l)-1,d>>=-l,l+=a;l>0;s=256*s+t[n+c],c+=f,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+t[n+c],c+=f,l-=8);if(0===s)s=1-h;else{if(s===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),s-=h}return(d?-1:1)*o*Math.pow(2,s-r)},write:function(t,n,e,r,i,s){var o,a,u,h=8*s-i-1,l=(1<<h)-1,c=l>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:s-1,p=r?1:-1,y=n<0||0===n&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(a=isNaN(n)?1:0,o=l):(o=Math.floor(Math.log(n)/Math.LN2),n*(u=Math.pow(2,-o))<1&&(o--,u*=2),(n+=o+c>=1?f/u:f*Math.pow(2,1-c))*u>=2&&(o++,u/=2),o+c>=l?(a=0,o=l):o+c>=1?(a=(n*u-1)*Math.pow(2,i),o+=c):(a=n*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;t[e+d]=255&a,d+=p,a/=256,i-=8);for(o=o<<i|a,h+=i;h>0;t[e+d]=255&o,d+=p,o/=256,h-=8);t[e+d-p]|=128*y}},nc=rc,ec=tc;function rc(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}rc.Varint=0,rc.Fixed64=1,rc.Bytes=2,rc.Fixed32=5;var ic="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function sc(t){return t.type===rc.Bytes?t.readVarint()+t.pos:t.pos+1}function oc(t,n,e){return e?4294967296*n+(t>>>0):4294967296*(n>>>0)+(t>>>0)}function ac(t,n,e){var r=n<=16383?1:n<=2097151?2:n<=268435455?3:Math.floor(Math.log(n)/(7*Math.LN2));e.realloc(r);for(var i=e.pos-1;i>=t;i--)e.buf[i+r]=e.buf[i]}function uc(t,n){for(var e=0;e<t.length;e++)n.writeVarint(t[e])}function hc(t,n){for(var e=0;e<t.length;e++)n.writeSVarint(t[e])}function lc(t,n){for(var e=0;e<t.length;e++)n.writeFloat(t[e])}function cc(t,n){for(var e=0;e<t.length;e++)n.writeDouble(t[e])}function fc(t,n){for(var e=0;e<t.length;e++)n.writeBoolean(t[e])}function dc(t,n){for(var e=0;e<t.length;e++)n.writeFixed32(t[e])}function pc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed32(t[e])}function yc(t,n){for(var e=0;e<t.length;e++)n.writeFixed64(t[e])}function mc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed64(t[e])}function gc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+16777216*t[n+3]}function vc(t,n,e){t[e]=n,t[e+1]=n>>>8,t[e+2]=n>>>16,t[e+3]=n>>>24}function bc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+(t[n+3]<<24)}rc.prototype={destroy:function(){this.buf=null},readFields:function(t,n,e){for(e=e||this.length;this.pos<e;){var r=this.readVarint(),i=r>>3,s=this.pos;this.type=7&r,t(i,n,this),this.pos===s&&this.skip(r)}return n},readMessage:function(t,n){return this.readFields(t,n,this.readVarint()+this.pos)},readFixed32:function(){var t=gc(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=bc(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=gc(this.buf,this.pos)+4294967296*gc(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=gc(this.buf,this.pos)+4294967296*bc(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=ec.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=ec.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var n,e,r=this.buf;return n=127&(e=r[this.pos++]),e<128?n:(n|=(127&(e=r[this.pos++]))<<7,e<128?n:(n|=(127&(e=r[this.pos++]))<<14,e<128?n:(n|=(127&(e=r[this.pos++]))<<21,e<128?n:function(t,n,e){var r,i,s=e.buf;if(i=s[e.pos++],r=(112&i)>>4,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<3,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<10,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<17,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<24,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(1&i)<<31,i<128)return oc(t,r,n);throw new Error("Expected varint not more than 10 bytes")}(n|=(15&(e=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,n=this.pos;return this.pos=t,t-n>=12&&ic?function(t,n,e){return ic.decode(t.subarray(n,e))}(this.buf,n,t):function(t,n,e){var r="",i=n;for(;i<e;){var s,o,a,u=t[i],h=null,l=u>239?4:u>223?3:u>191?2:1;if(i+l>e)break;1===l?u<128&&(h=u):2===l?128==(192&(s=t[i+1]))&&(h=(31&u)<<6|63&s)<=127&&(h=null):3===l?(s=t[i+1],o=t[i+2],128==(192&s)&&128==(192&o)&&((h=(15&u)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===l&&(s=t[i+1],o=t[i+2],a=t[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&u)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,l=1):h>65535&&(h-=65536,r+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),r+=String.fromCharCode(h),i+=l}return r}(this.buf,n,t)},readBytes:function(){var t=this.readVarint()+this.pos,n=this.buf.subarray(this.pos,t);return this.pos=t,n},readPackedVarint:function(t,n){if(this.type!==rc.Bytes)return t.push(this.readVarint(n));var e=sc(this);for(t=t||[];this.pos<e;)t.push(this.readVarint(n));return t},readPackedSVarint:function(t){if(this.type!==rc.Bytes)return t.push(this.readSVarint());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==rc.Bytes)return t.push(this.readBoolean());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==rc.Bytes)return t.push(this.readFloat());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==rc.Bytes)return t.push(this.readDouble());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==rc.Bytes)return t.push(this.readFixed32());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==rc.Bytes)return t.push(this.readSFixed32());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==rc.Bytes)return t.push(this.readFixed64());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==rc.Bytes)return t.push(this.readSFixed64());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed64());return t},skip:function(t){var n=7&t;if(n===rc.Varint)for(;this.buf[this.pos++]>127;);else if(n===rc.Bytes)this.pos=this.readVarint()+this.pos;else if(n===rc.Fixed32)this.pos+=4;else{if(n!==rc.Fixed64)throw new Error("Unimplemented type: "+n);this.pos+=8}},writeTag:function(t,n){this.writeVarint(t<<3|n)},realloc:function(t){for(var n=this.length||16;n<this.pos+t;)n*=2;if(n!==this.length){var e=new Uint8Array(n);e.set(this.buf),this.buf=e,this.length=n}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),vc(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),vc(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),vc(this.buf,-1&t,this.pos),vc(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),vc(this.buf,-1&t,this.pos),vc(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,n){var e,r;t>=0?(e=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(e=~(-t%4294967296))?e=e+1|0:(e=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn\'t fit into 10 bytes");n.realloc(10),function(t,n,e){e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos]=127&t}(e,0,n),function(t,n){var e=(7&t)<<4;if(n.buf[n.pos++]|=e|((t>>>=3)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;n.buf[n.pos++]=127&t}(r,n)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var n=this.pos;this.pos=function(t,n,e){for(var r,i,s=0;s<n.length;s++){if((r=n.charCodeAt(s))>55295&&r<57344){if(!i){r>56319||s+1===n.length?(t[e++]=239,t[e++]=191,t[e++]=189):i=r;continue}if(r<56320){t[e++]=239,t[e++]=191,t[e++]=189,i=r;continue}r=i-55296<<10|r-56320|65536,i=null}else i&&(t[e++]=239,t[e++]=191,t[e++]=189,i=null);r<128?t[e++]=r:(r<2048?t[e++]=r>>6|192:(r<65536?t[e++]=r>>12|224:(t[e++]=r>>18|240,t[e++]=r>>12&63|128),t[e++]=r>>6&63|128),t[e++]=63&r|128)}return e}(this.buf,t,this.pos);var e=this.pos-n;e>=128&&ac(n,e,this),this.pos=n-1,this.writeVarint(e),this.pos+=e},writeFloat:function(t){this.realloc(4),ec.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),ec.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var n=t.length;this.writeVarint(n),this.realloc(n);for(var e=0;e<n;e++)this.buf[this.pos++]=t[e]},writeRawMessage:function(t,n){this.pos++;var e=this.pos;t(n,this);var r=this.pos-e;r>=128&&ac(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,n,e){this.writeTag(t,rc.Bytes),this.writeRawMessage(n,e)},writePackedVarint:function(t,n){n.length&&this.writeMessage(t,uc,n)},writePackedSVarint:function(t,n){n.length&&this.writeMessage(t,hc,n)},writePackedBoolean:function(t,n){n.length&&this.writeMessage(t,fc,n)},writePackedFloat:function(t,n){n.length&&this.writeMessage(t,lc,n)},writePackedDouble:function(t,n){n.length&&this.writeMessage(t,cc,n)},writePackedFixed32:function(t,n){n.length&&this.writeMessage(t,dc,n)},writePackedSFixed32:function(t,n){n.length&&this.writeMessage(t,pc,n)},writePackedFixed64:function(t,n){n.length&&this.writeMessage(t,yc,n)},writePackedSFixed64:function(t,n){n.length&&this.writeMessage(t,mc,n)},writeBytesField:function(t,n){this.writeTag(t,rc.Bytes),this.writeBytes(n)},writeFixed32Field:function(t,n){this.writeTag(t,rc.Fixed32),this.writeFixed32(n)},writeSFixed32Field:function(t,n){this.writeTag(t,rc.Fixed32),this.writeSFixed32(n)},writeFixed64Field:function(t,n){this.writeTag(t,rc.Fixed64),this.writeFixed64(n)},writeSFixed64Field:function(t,n){this.writeTag(t,rc.Fixed64),this.writeSFixed64(n)},writeVarintField:function(t,n){this.writeTag(t,rc.Varint),this.writeVarint(n)},writeSVarintField:function(t,n){this.writeTag(t,rc.Varint),this.writeSVarint(n)},writeStringField:function(t,n){this.writeTag(t,rc.Bytes),this.writeString(n)},writeFloatField:function(t,n){this.writeTag(t,rc.Fixed32),this.writeFloat(n)},writeDoubleField:function(t,n){this.writeTag(t,rc.Fixed64),this.writeDouble(n)},writeBooleanField:function(t,n){this.writeVarintField(t,Boolean(n))}};var wc=Ut,Mc=xc;function xc(t,n,e,r,i){this.properties={},this.extent=e,this.type=0,this.mn=t,this.gn=-1,this.vn=r,this.bn=i,t.readFields(Fc,this,n)}function Fc(t,n,e){1==t?n.id=e.readVarint():2==t?function(t,n){var e=t.readVarint()+t.pos;for(;t.pos<e;){var r=n.vn[t.readVarint()],i=n.bn[t.readVarint()];n.properties[r]=i}}(e,n):3==t?n.type=e.readVarint():4==t&&(n.gn=e.pos)}function Ac(t){for(var n,e,r=0,i=0,s=t.length,o=s-1;i<s;o=i++)n=t[i],r+=((e=t[o]).x-n.x)*(n.y+e.y);return r}xc.types=["Unknown","Point","LineString","Polygon"],xc.prototype.loadGeometry=function(){var t=this.mn;t.pos=this.gn;for(var n,e=t.readVarint()+t.pos,r=1,i=0,s=0,o=0,a=[];t.pos<e;){if(i<=0){var u=t.readVarint();r=7&u,i=u>>3}if(i--,1===r||2===r)s+=t.readSVarint(),o+=t.readSVarint(),1===r&&(n&&a.push(n),n=[]),n.push(new wc(s,o));else{if(7!==r)throw new Error("unknown command "+r);n&&n.push(n[0].clone())}}return n&&a.push(n),a},xc.prototype.bbox=function(){var t=this.mn;t.pos=this.gn;for(var n=t.readVarint()+t.pos,e=1,r=0,i=0,s=0,o=1/0,a=-1/0,u=1/0,h=-1/0;t.pos<n;){if(r<=0){var l=t.readVarint();e=7&l,r=l>>3}if(r--,1===e||2===e)(i+=t.readSVarint())<o&&(o=i),i>a&&(a=i),(s+=t.readSVarint())<u&&(u=s),s>h&&(h=s);else if(7!==e)throw new Error("unknown command "+e)}return[o,u,a,h]},xc.prototype.toGeoJSON=function(t,n,e){var r,i,s=this.extent*Math.pow(2,e),o=this.extent*t,a=this.extent*n,u=this.loadGeometry(),h=xc.types[this.type];function l(t){for(var n=0;n<t.length;n++){var e=t[n],r=180-360*(e.y+a)/s;t[n]=[360*(e.x+o)/s-180,360/Math.PI*Math.atan(Math.exp(r*Math.PI/180))-90]}}switch(this.type){case 1:var c=[];for(r=0;r<u.length;r++)c[r]=u[r][0];l(u=c);break;case 2:for(r=0;r<u.length;r++)l(u[r]);break;case 3:for(u=function(t){var n=t.length;if(n<=1)return[t];for(var e,r,i=[],s=0;s<n;s++){var o=Ac(t[s]);0!==o&&(void 0===r&&(r=o<0),r===o<0?(e&&i.push(e),e=[t[s]]):e.push(t[s]))}e&&i.push(e);return i}(u),r=0;r<u.length;r++)for(i=0;i<u[r].length;i++)l(u[r][i])}1===u.length?u=u[0]:h="Multi"+h;var f={type:"Feature",geometry:{type:h,coordinates:u},properties:this.properties};return"id"in this&&(f.id=this.id),f};var kc=Mc,Pc=Sc;function Sc(t,n){this.version=1,this.name=null,this.extent=4096,this.length=0,this.mn=t,this.vn=[],this.bn=[],this.wn=[],t.readFields(_c,this,n),this.length=this.wn.length}function _c(t,n,e){15===t?n.version=e.readVarint():1===t?n.name=e.readString():5===t?n.extent=e.readVarint():2===t?n.wn.push(e.pos):3===t?n.vn.push(e.readString()):4===t&&n.bn.push(function(t){var n=null,e=t.readVarint()+t.pos;for(;t.pos<e;){var r=t.readVarint()>>3;n=1===r?t.readString():2===r?t.readFloat():3===r?t.readDouble():4===r?t.readVarint64():5===r?t.readVarint():6===r?t.readSVarint():7===r?t.readBoolean():null}return n}(e))}Sc.prototype.feature=function(t){if(t<0||t>=this.wn.length)throw new Error("feature index out of bounds");this.mn.pos=this.wn[t];var n=this.mn.readVarint()+this.mn.pos;return new kc(this.mn,n,this.extent,this.vn,this.bn)};var Oc=Pc;function Ec(t,n,e){if(3===t){var r=new Oc(e,e.readVarint()+e.pos);r.length&&(n[r.name]=r)}}var Ic=function(t,n){this.layers=t.readFields(Ec,{},n)};class $c extends Th{constructor(t,n,e,r,i,s){super(t,n,e,r,i),n=n||{},s()}getTileFeatures(t,n){const e=t.tileInfo.url,r=t.fetchOptions;if(this.Ct.has(e)){const{err:t,data:r}=this.Ct.get(e);return setTimeout(()=>{this.Mn(e,t,r,n)},1)}return O.getArrayBuffer(e,r,(t,r)=>{t?t.loading||this.Ct.add(e,{err:t,data:r&&r.data}):r&&r.data&&this.Ct.add(e,{err:null,data:r.data}),this.Mn(e,t,r&&r.data,n)})}Mn(t,n,e,r){if(n)return void r(n);let i;try{i=new Ic(new nc(e))}catch(n){return void r(n.message,[],[])}const s=[];if(!i.layers)return void r(null,s,[]);const o={};let a;for(const t in i.layers)if(u=i.layers,h=t,Object.prototype.hasOwnProperty.call(u,h)){o[t]={types:{}};const e=o[t].types;for(let r=0,o=i.layers[t].length;r<o;r++)try{a=i.layers[t].feature(r),e[a.type]=1;const n={type:a.type,layer:t,geometry:a.loadGeometry(),properties:a.properties,extent:a.extent};void 0!==a.id&&(n.id=a.id);let o=n.properties[wh];o&&(M(o)&&(o=JSON.parse(o)),n.properties[wh]=Kl(o,"EPSG:3857")),s.push(n)}catch(n){console.warn("error when load vt geometry:",n)}}var u,h;for(const t in o)o[t].types=Object.keys(o[t].types).map(t=>+t);r(null,s,o,{byteLength:e.byteLength})}abortTile(t,n){const e=this.requests[t];delete this.requests[t],e&&e.abort&&e.abort(),this.Wt(t),n()}onRemove(){super.onRemove();for(const t in this.requests){const n=this.requests[t];n&&n.abort&&n.abort()}this.requests={}}}let zc=0;const Cc=new ah(128);class Tc{constructor(t){this.xn={},this.Fn={},this.workerId=t}addLayer({actorId:t,mapId:n,layerId:e,params:r},i){if(this.An(n,e))return;const s=this.kn(n,e),o=r.type,a=r.options,u=this.send.bind(this,t);this.xn[s]="GeoJSONVectorTileLayer"===o?new Ql(e,a,u,Cc,{},i):new $c(e,a,u,Cc,{},i)}removeLayer({mapId:t,layerId:n},e){const r=this.An(t,n),i=this.kn(t,n);delete this.xn[i],r&&r.onRemove(e)}loadTile({mapId:t,layerId:n,params:e},r){const i=this.An(t,n);i&&i.loadTile(e,r)}abortTile({mapId:t,layerId:n,params:e},r){const i=this.An(t,n);i&&i.abortTile&&i.abortTile(e.url,r)}removeTile({mapId:t,layerId:n,params:e},r){const i=this.An(t,n);i&&i.removeTile(e,r)}updateStyle({mapId:t,layerId:n,params:e},r){const i=this.An(t,n);i&&i.updateStyle(e,r)}updateOptions({mapId:t,layerId:n,params:e},r){const i=this.An(t,n);i&&i.updateOptions(e,r)}setData({mapId:t,layerId:n,params:e},r){const i=this.An(t,n);i&&i.setData(e.data,r)}receive(t){const n=t.callback,e=this.Fn[n];delete this.Fn[n],e&&t.error?e(new Error(t.error)):e&&e(null,t.data)}send(t,n,e,r,i){const s=i?`${t}-${zc++}`:null;i&&(this.Fn[s]=i),postMessage({type:"<request>",workerId:this.workerId,actorId:t,command:n,params:e,callback:String(s)},r||[])}kn(t,n){return`${t}-${n}`}An(t,n){const e=this.kn(t,n);return this.xn[e]}Pn(){Cc.reset()}}t.initialize=function(){},t.onmessage=function(t,n){const e=t.data;if(this.dispatcher||(this.dispatcher=new Tc(t.workerId)),"<response>"===t.type)this.dispatcher.workerId===t.workerId&&this.dispatcher.receive(t);else{const r=e.command;this.dispatcher[r]({actorId:t.actorId,mapId:e.mapId,layerId:e.layerId,params:e.params},(t,e,i)=>{t&&404!==t.status&&204!==t.status&&console.error(r,t),n(t,e,i)})}},Object.defineProperty(t,"Sn",{value:!0})}';
25
+ const o = 'function(t){let n;const e={width:100,height:10};function r(){if(!n){const{width:t,height:r}=e;OffscreenCanvas?n=new OffscreenCanvas(t,r):(n=document.createElement("canvas"),n.width=t,n.height=r)}return n}class i{constructor(t,n={}){if(!Array.isArray(t))return void console.error("colors is not array");if(t.length<2)return void console.error("colors.length should >1");this.colors=t;let r=1/0,i=-1/0;for(let n=0,e=t.length;n<e;n++){const e=t[n][0];r=Math.min(e,r),i=Math.max(e,i)}this.min=r,this.max=i,this.valueOffset=this.max-this.min,this.options=Object.assign({},e,n),this.t()}getImageData(){return this.imgData}t(){const t=r(),{width:n,height:e}=this.options;t.width=n,t.height=e;const i=t.getContext("2d");i.clearRect(0,0,t.width,t.height);const s=i.createLinearGradient(0,0,t.width,0),{colors:o,valueOffset:a}=this;for(let t=0,n=o.length;t<n;t++){const[n,e]=o[t],r=(n-this.min)/a;s.addColorStop(r,e)}i.fillStyle=s,i.fillRect(0,0,t.width,t.height),this.imgData=i.getImageData(0,0,t.width,t.height)}getColor(t){t=Math.max(this.min,t);const n=((t=Math.min(t,this.max))-this.min)/this.valueOffset;let e=Math.round(n*this.imgData.width);e=Math.min(e,this.imgData.width-1);const r=4*e;return[this.imgData.data[r],this.imgData.data[r+1],this.imgData.data[r+2],this.imgData.data[r+3]]}}var s;function o(t,n){for(let e=0;e<t.stops.length;e++)if(n===t.stops[e][0])return t.stops[e][1];return t.default}function a(t,n){for(var e=0;e<t.stops.length&&!(n<t.stops[e][0]);e++);return t.stops[Math.max(e-1,0)][1]}function u(t,n){for(var e=void 0!==t.base?t.base:1,r=0;!(r>=t.stops.length||n<=t.stops[r][0]);)r++;return 0===r?t.stops[r][1]:r===t.stops.length?t.stops[r-1][1]:function t(n,e,r,i,s,o){return"function"==typeof s?function(){var a=s.apply(void 0,arguments),u=o.apply(void 0,arguments);return t(n,e,r,i,a,u)}:s.length?function(t,n,e,r,i,s){var o=[];for(let a=0;a<i.length;a++)o[a]=f(t,n,e,r,i[a],s[a]);return o}(n,e,r,i,s,o):f(n,e,r,i,s,o)}(n,e,t.stops[r-1][0],t.stops[r][0],t.stops[r-1][1],t.stops[r][1])}"function"==typeof Map&&(s=new Map);const h={width:100,height:1};function l(t,n){const e=t.stops;if(e&&e.length>1){let t;if(s){const n=JSON.stringify(e);if(!s.has(n)){const t=new i(e,h);s.set(n,t)}t=s.get(n)}else t=new i(e,h);const[r,o,a,u]=t.getColor(n);return[r/255,o/255,a/255,u/255]}return e&&1===e.length?e[0][1]:null}function c(t,n){return function(t,n,e){return void 0!==t?t:void 0!==n?n:void 0!==e?e:null}(n,t.default)}function f(t,n,e,r,i,s){var o,a=r-e,u=t-e;return i*(1-(o=1===n?u/a:(Math.pow(n,u)-1)/(Math.pow(n,a)-1)))+s*o}function d(t){return t&&"object"==typeof t&&(t.stops||t.property&&"identity"===t.type)}function p(t){return g(t,"exponential")}function y(t){return g(t,"interval")}function m(t,n){if(!t)return null;var e=!1;if(Array.isArray(t)){var r,i=[];for(let s=0;s<t.length;s++)(r=m(t[s],n))?(i.push(r),e=!0):i.push(t[s]);return e?i:t}var s,o={__fn_types_loaded:!0},a=[];for(s in t)t.hasOwnProperty(s)&&a.push(s);const u=function(t){Object.defineProperty(o,t,{get:function(){return this["__fn_"+t]||(this["__fn_"+t]=p(this["_"+t])),this["__fn_"+t].apply(this,n())},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})};for(let n=0,r=a.length;n<r;n++)d(t[s=a[n]])?(e=!0,o["_"+s]=t[s],u(s)):o[s]=t[s];return e?o:t}function g(t,n){if(!d(t))return function(){return t};let e=!0,r=!0;const i=(t=JSON.parse(JSON.stringify(t))).stops;if(i)for(let t=0;t<i.length;t++)if(d(i[t][1])){const s=g(i[t][1],n);e=e&&s.isZoomConstant,r=r&&s.isFeatureConstant,i[t]=[i[t][0],s]}const s=function t(n,e){var r,i,s;if(d(n)){var h,f=n.stops&&"object"==typeof n.stops[0][0],p=f||void 0!==n.property,y=f||!p,m=n.type||e||"exponential";if("exponential"===m)h=u;else if("interval"===m)h=a;else if("categorical"===m)h=o;else if("identity"===m)h=c;else{if("color-interpolate"!==m)throw new Error(\'Unknown function type "\'+m+\'"\');h=l}if(f){var g={},v=[];for(let t=0;t<n.stops.length;t++){var b=n.stops[t];void 0===g[b[0].zoom]&&(g[b[0].zoom]={zoom:b[0].zoom,type:n.type,property:n.property,default:n.default,stops:[]}),g[b[0].zoom].stops.push([b[0].value,b[1]])}for(let n in g)v.push([g[n].zoom,t(g[n])]);r=function(t,e){const r=u({stops:v,base:n.base},t)(t,e);return"function"==typeof r?r(t,e):r},i=!1,s=!1}else y?(r=function(t){const e=h(n,t);return"function"==typeof e?e(t):e},i=!0,s=!1):(r=function(t,e){const r=h(n,e?e[n.property]:null);return"function"==typeof r?r(t,e):r},i=!1,s=!0)}else r=function(){return n},i=!0,s=!0;return r.isZoomConstant=s,r.isFeatureConstant=i,r}(t,n);return s.isZoomConstant=e&&s.isZoomConstant,s.isFeatureConstant=r&&s.isFeatureConstant,s}let v=0;const b="function"==typeof Object.assign;function w(t,...n){if(b)return Object.assign(t,...n),t;for(let e=0;e<n.length;e++){const r=n[e];for(const n in r)t[n]=r[n]}return t}function M(t){return!A(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function x(t){return"number"==typeof t&&!isNaN(t)}function F(t){return!A(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}function k(t){return!Array.isArray(t)&&"object"==typeof t&&!!t}function A(t){return null==t}function P(t){for(let n=1;n<arguments.length;n++){const e=arguments[n];if(e)for(let n=0,r=e.length;n<r;n++)t.push(e[n])}return t.length}function S(t){return d(t)&&t.property}const _="function"==typeof fetch&&"function"==typeof AbortController,O={jsonp:function(t,n){const e="_maptalks_jsonp_"+v++;t.match(/\\?/)?t+="&callback="+e:t+="?callback="+e;let r=document.createElement("script");return r.type="text/javascript",r.src=t,window[e]=function(t){n(null,t),document.getElementsByTagName("head")[0].removeChild(r),r=null,delete window[e]},document.getElementsByTagName("head")[0].appendChild(r),this},get:function(t,n,e){if(F(n)){const t=e;e=n,n=t}(n=n||{}).method&&(n.method=n.method.toUpperCase());const r="POST"===n.method;if(_){const r=new AbortController,i=n;return i.signal=r.signal,i.referrerPolicy=i.referrerPolicy||"origin",i.method=i.method||"GET",fetch(t,i).then(r=>{const i=this.s(r,n.returnJSON,n.responseType);i.message?(i.url=t,e(i)):i.then(t=>{"arraybuffer"===n.responseType?e(null,{data:t,cacheControl:r.headers.get("Cache-Control"),expires:r.headers.get("Expires"),contentType:r.headers.get("Content-Type")}):e(null,t)}).catch(n=>{n.code&&n.code===DOMException.ABORT_ERR||(console.error("Fetch error:",t,n),e(n))})}).catch(n=>{n.code&&n.code===DOMException.ABORT_ERR||(console.error("Fetch error:",t,n),e(n))}),r}{const i=O.o(e);if(i.open(n.method||"GET",t,!0),n){for(const t in n.headers)i.setRequestHeader(t,n.headers[t]);i.withCredentials="include"===n.credentials,n.responseType&&(i.responseType=n.responseType)}return i.send(r?n.body:null),i}},s:(t,n,e)=>200!==t.status?{status:t.status,statusText:t.statusText,message:`incorrect http request with status code(${t.status}): ${t.statusText}`}:"arraybuffer"===e?t.arrayBuffer():n?t.json():t.text(),u:function(t,n){return function(){if(4===t.readyState)if(200===t.status)if("arraybuffer"===t.responseType){0===t.response.byteLength?n({status:200,statusText:t.statusText,message:"http status 200 returned without content."}):n(null,{data:t.response,cacheControl:t.getResponseHeader("Cache-Control"),expires:t.getResponseHeader("Expires"),contentType:t.getResponseHeader("Content-Type")})}else n(null,t.responseText);else n({status:t.status,statusText:t.statusText,message:`incorrect http request with status code(${t.status}): ${t.statusText}`})}},o:function(t){let n;try{n=new XMLHttpRequest}catch(t){try{n=new ActiveXObject("Msxml2.XMLHTTP")}catch(t){try{n=new ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}}return n.onreadystatechange=O.u(n,t),n},getArrayBuffer(t,n,e){if(F(n)){const t=e;e=n,n=t}return n||(n={}),n.responseType="arraybuffer",O.get(t,n,e)}};function E(t,n,e,r,i,s){let o=i-e,a=s-r;if(0!==o||0!==a){const u=((t-e)*o+(n-r)*a)/(o*o+a*a);u>1?(e=i,r=s):u>0&&(e+=o*u,r+=a*u)}return o=t-e,a=n-r,o*o+a*a}function I(t,n,e,r,i,s){const o={id:null==t?null:t,type:n,geometry:e,tags:r,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0};i&&(o.layer=i);return function(t,n){const e=t.geometry,r=t.type;if("Point"===r||"MultiPoint"===r||"LineString"===r)$(t,e,n);else if("Polygon"===r)$(t,e[0],n);else if("MultiLineString"===r)for(const r of e)$(t,r,n);else if("MultiPolygon"===r)for(const r of e)$(t,r[0],n)}(o,s?4:3),o}function $(t,n,e){for(let r=0;r<n.length;r+=e)t.minX=Math.min(t.minX,n[r]),t.minY=Math.min(t.minY,n[r+1]),t.maxX=Math.max(t.maxX,n[r]),t.maxY=Math.max(t.maxY,n[r+1])}function z(t,n,e,r){if(r.layer=n,"FeatureCollection"===e.type)for(let n=0;n<e.features.length;n++)C(t,e.features[n],r,n);else"Feature"===e.type?C(t,e,r):C(t,{geometry:e},r)}function C(t,n,e,r){if(!n.geometry)return;const i=n.geometry.coordinates,s=n.geometry.type,o=Math.pow(e.tolerance/((1<<e.maxZoom)*e.extent),2);let a=[],u=n.id;if(e.promoteId?u=n.properties[e.promoteId]:e.generateId&&(u=r||0),"Point"===s)T(i,a,e);else if("MultiPoint"===s)for(const t of i)T(t,a,e);else if("LineString"===s)D(i,a,o,!1,e);else if("MultiLineString"===s){if(e.lineMetrics){for(const r of i)a=[],D(r,a,o,!1,e),t.push(I(u,"LineString",a,n.properties,e.layer,e.hasAltitude));return}j(i,a,o,!1,e)}else if("Polygon"===s)j(i,a,o,!0,e);else{if("MultiPolygon"!==s){if("GeometryCollection"===s){for(const i of n.geometry.geometries)C(t,{id:u,geometry:i,properties:n.properties},e,r);return}throw new Error("Input data is not a valid GeoJSON object.")}for(const t of i){const n=[];j(t,n,o,!0,e),a.push(n)}}t.push(I(u,s,a,n.properties,e.layer,e.hasAltitude))}function T(t,n,e){n.push(U(t[0]),N(t[1],e.projection),0),e.hasAltitude&&(t.length>2?n.push(t[2]):n.push(0))}function D(t,n,e,r,i){let s,o,a=0;for(let e=0;e<t.length;e++){const u=U(t[e][0]),h=N(t[e][1],i.projection);n.push(u,h,0),i.hasAltitude&&(t[e].length>2?n.push(t[e][2]):n.push(0)),e>0&&(a+=r?(s*h-u*o)/2:Math.sqrt(Math.pow(u-s,2)+Math.pow(h-o,2))),s=u,o=h}const u=i.hasAltitude?4:3,h=n.length-u;n[2]=1,function t(n,e,r,i,s=3){let o=i;const a=r-e>>1;let u,h=r-e;const l=n[e],c=n[e+1],f=n[r],d=n[r+1];for(let t=e+s;t<r;t+=s){const e=E(n[t],n[t+1],l,c,f,d);if(e>o)u=t,o=e;else if(e===o){const n=Math.abs(t-a);n<h&&(u=t,h=n)}}o>i&&(u-e>s&&t(n,e,u,i,s),n[u+2]=o,r-u>s&&t(n,u,r,i,s))}(n,0,h,e,u),n[h+2]=1,n.size=Math.abs(a),n.start=0,n.end=n.size}function j(t,n,e,r,i){for(let s=0;s<t.length;s++){const o=[];D(t[s],o,e,r,i),n.push(o)}}function U(t){return t/360+.5}function N(t,n){switch(n){case"EPSG:4326":return(90-t)/360}const e=Math.sin(t*Math.PI/180),r=.5-.25*Math.log((1+e)/(1-e))/Math.PI;return r<0?0:r>1?1:r}function L(t,n,e,r,i,s,o,a){if(r/=n,s>=(e/=n)&&o<r)return t;if(o<e||s>=r)return null;const u=[];for(const n of t){const t=n.geometry;let s=n.type;const o=0===i?n.minX:n.minY,h=0===i?n.maxX:n.maxY;if(o>=e&&h<r){u.push(n);continue}if(h<e||o>=r)continue;let l=[];if("Point"===s||"MultiPoint"===s)V(t,l,e,r,i,a.hasAltitude);else if("LineString"===s)R(t,l,e,r,i,!1,a.lineMetrics,a.hasAltitude);else if("MultiLineString"===s)W(t,l,e,r,i,!1,a.hasAltitude);else if("Polygon"===s)W(t,l,e,r,i,!0,a.hasAltitude);else if("MultiPolygon"===s)for(const n of t){const t=[];W(n,t,e,r,i,!0,a.hasAltitude),t.length&&l.push(t)}if(l.length){if(a.lineMetrics&&"LineString"===s){for(const t of l)u.push(I(n.id,s,t,n.tags,n.layer,a.hasAltitude));continue}"LineString"!==s&&"MultiLineString"!==s||(1===l.length?(s="LineString",l=l[0]):s="MultiLineString"),"Point"!==s&&"MultiPoint"!==s||(s=3===l.length?"Point":"MultiPoint"),u.push(I(n.id,s,l,n.tags,n.layer,a.hasAltitude))}}return u.length?u:null}function V(t,n,e,r,i,s){const o=s?4:3;for(let a=0;a<t.length;a+=o){const o=t[a+i];o>=e&&o<=r&&(q(n,t[a],t[a+1],t[a+2]),s&&n.push(t[a+3]))}}function R(t,n,e,r,i,s,o,a){let u=H(t);const h=0===i?G:B;let l,c,f=t.start;const d=a?4:3,p=s?t.length:t.length-d;for(let y=0;y<p;y+=d){const m=t[y],g=t[y+1],v=t[y+2];let b,w,M,x;s&&y===p-d?(b=t[0],w=t[1]):(b=t[y+d],w=t[y+d+1]),a&&(M=t[y+3],x=s&&y===p-d?t[3]:t[y+d+3]);const F=0===i?m:g,k=0===i?b:w;let A=!1;o&&(l=Math.sqrt(Math.pow(m-b,2)+Math.pow(g-w,2))),F<e?k>e&&(c=h(u,m,g,b,w,e),a&&u.push(J(M,x,c)),o&&(u.start=f+l*c)):F>r?k<r&&(c=h(u,m,g,b,w,r),a&&u.push(J(M,x,c)),o&&(u.start=f+l*c)):(q(u,m,g,v),a&&u.push(M)),k<e&&F>=e&&(c=h(u,m,g,b,w,e),a&&u.push(J(M,x,c)),A=!0),k>r&&F<=r&&(c=h(u,m,g,b,w,r),a&&u.push(J(M,x,c)),A=!0),!s&&A&&(o&&(u.end=f+l*c),n.push(u),u=H(t)),o&&(f+=l)}let y=t.length-d;if(!s){const n=t[y],s=t[y+1],o=t[y+2],h=0===i?n:s;if(h>=e&&h<=r&&q(u,n,s,o),h>=e&&h<=r&&a){const n=t[y+3];u.push(n)}}y=u.length-d,s&&y>=d&&(u[y]!==u[0]||u[y+1]!==u[1])&&(q(u,u[0],u[1],u[2]),a&&u.push(u[3])),u.length&&n.push(u)}function H(t){const n=[];return n.size=t.size,n.start=t.start,n.end=t.end,n}function W(t,n,e,r,i,s,o){for(const a of t)R(a,n,e,r,i,s,!1,o)}function q(t,n,e,r){t.push(n,e,r)}function G(t,n,e,r,i,s){const o=(s-n)/(r-n);return q(t,s,e+(i-e)*o,1),o}function B(t,n,e,r,i,s){const o=(s-e)/(i-e);return q(t,n+(r-n)*o,s,1),o}function J(t,n,e){return t+(n-t)*e}function X(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=t[i],o=s.type;let a;if("Point"===o||"MultiPoint"===o||"LineString"===o)a=Y(s.geometry,n,e);else if("MultiLineString"===o||"Polygon"===o){a=[];for(const t of s.geometry)a.push(Y(t,n,e))}else if("MultiPolygon"===o){a=[];for(const t of s.geometry){const r=[];for(const i of t)r.push(Y(i,n,e));a.push(r)}}r.push(I(s.id,o,a,s.tags,s.layer,e))}return r}function Y(t,n,e){const r=[];r.size=t.size,void 0!==t.start&&(r.start=t.start,r.end=t.end);const i=e?4:3;for(let s=0;s<t.length;s+=i)r.push(t[s]+n,t[s+1],t[s+2]),e&&r.push(t[s+3]);return r}function Z(t,n,e){if(t.transformed)return t;const r=1<<t.z,i=t.x,s=t.y,o=e?3:2;for(const a of t.features){const t=a.geometry,u=a.type;if(a.geometry=[],1===u)for(let u=0;u<t.length;u+=o)a.geometry.push(K(t[u],t[u+1],n,r,i,s)),e&&a.geometry[a.geometry.length-1].push(t[u+2]);else for(let u=0;u<t.length;u++){const h=[];for(let a=0;a<t[u].length;a+=o)h.push(K(t[u][a],t[u][a+1],n,r,i,s)),e&&h[h.length-1].push(t[u][a+2]);a.geometry.push(h)}}return t.transformed=!0,t}function K(t,n,e,r,i,s){return[Math.round(e*(t*r-i)),Math.round(e*(n*r-s))]}function Q(t,n,e,r,i){const s=n===i.maxZoom?0:i.tolerance/((1<<n)*i.extent),o={features:[],numPoints:0,numSimplified:0,numFeatures:t.length,source:null,x:e,y:r,z:n,transformed:!1,minX:2,minY:1,maxX:-1,maxY:0};for(const n of t)tt(o,n,s,i);return o}function tt(t,n,e,r){const i=n.geometry,s=n.type,o=[],a=r.hasAltitude?4:3;if(t.minX=Math.min(t.minX,n.minX),t.minY=Math.min(t.minY,n.minY),t.maxX=Math.max(t.maxX,n.maxX),t.maxY=Math.max(t.maxY,n.maxY),"Point"===s||"MultiPoint"===s)for(let n=0;n<i.length;n+=a)o.push(i[n],i[n+1]),r.hasAltitude&&o.push(i[n+3]),t.numPoints++,t.numSimplified++;else if("LineString"===s)et(o,i,t,e,!1,!1,r);else if("MultiLineString"===s||"Polygon"===s)for(let n=0;n<i.length;n++)et(o,i[n],t,e,"Polygon"===s,0===n,r);else if("MultiPolygon"===s)for(let n=0;n<i.length;n++){const s=i[n];for(let n=0;n<s.length;n++)et(o,s[n],t,e,!0,0===n,r)}if(o.length){let e=n.tags||null;if("LineString"===s&&r.lineMetrics){e={};for(const t in n.tags)e[t]=n.tags[t];e.mapbox_clip_start=i.start/i.size,e.mapbox_clip_end=i.end/i.size}const a={geometry:o,type:"Polygon"===s||"MultiPolygon"===s?3:"LineString"===s||"MultiLineString"===s?2:1,tags:e};n.layer&&(a.layer=n.layer),null!==n.id&&(a.id=n.id),t.features.push(a)}}function nt(t,n,e){return 0===t[n+2]&&t[n+3]>0&&e}function et(t,n,e,r,i,s,o){const a=r*r,{hasAltitude:u,disableFilter:h}=o,l=u?4:3;if(!h&&r>0&&n.size<(i?a:r))return void(e.numPoints+=n.length/l);const c=[];for(let t=0;t<n.length;t+=l)(0===r||n[t+2]>a||nt(n,t,u))&&(e.numSimplified++,c.push(n[t],n[t+1]),u&&c.push(n[t+3])),e.numPoints++;i&&function(t,n,e){const r=e?3:2;let i=0;for(let n=0,e=t.length,s=e-r;n<e;s=n,n+=r)i+=(t[n]-t[s])*(t[n+1]+t[s+1]);if(i>0===n){const n=r,i=r-1,s=r-2;for(let o=0,a=t.length;o<a/2;o+=r){const r=t[o],u=t[o+1];let h;e&&(h=t[o+2]),t[o]=t[a-n-o],t[o+1]=t[a-i-o],e&&(t[o+2]=t[a-s-o]),t[a-n-o]=r,t[a-i-o]=u,e&&(t[a-s-o]=h)}}}(c,s,u),t.push(c)}O.getJSON=function(t,n,e){if(F(n)){const t=e;e=n,n=t}const r=function(t,n){const r="string"==typeof n?JSON.parse(n):n||null;e(t,r)};return n&&n.jsonp?O.jsonp(t,r):((n=n||{}).returnJSON=!0,O.get(t,n,r))};const rt={maxZoom:14,indexMaxZoom:5,indexMaxPoints:1e5,tolerance:3,extent:4096,buffer:64,lineMetrics:!1,promoteId:null,generateId:!1,hasAltitude:!1,disableFilter:!1,debug:0};class it{constructor(t,n){const e=(n=this.options=function(t,n){for(const e in n)t[e]=n[e];return t}(Object.create(rt),n)).debug;if(e&&console.time("preprocess data"),n.maxZoom<0||n.maxZoom>24)throw new Error("maxZoom should be in the 0-24 range");if(n.promoteId&&n.generateId)throw new Error("promoteId and generateId cannot be used together.");let r=function(t,n){const e=[];if(Array.isArray(t)){for(let r=0;r<t.length;r++)z(e,t[r].layer,t[r].data,n);return e}if("FeatureCollection"===t.type)for(let r=0;r<t.features.length;r++)C(e,t.features[r],n,r);else"Feature"===t.type?C(e,t,n):C(e,{geometry:t},n);return e}(t,n);this.tiles={},this.tileCoords=[],e&&(console.timeEnd("preprocess data"),console.log("index: maxZoom: %d, maxPoints: %d",n.indexMaxZoom,n.indexMaxPoints),console.time("generate tiles"),this.stats={},this.total=0),r=function(t,n){const e=n.buffer/n.extent;let r=t;const i=L(t,1,-1-e,e,0,-1,2,n),s=L(t,1,1-e,2+e,0,-1,2,n);return(i||s)&&(r=L(t,1,-e,1+e,0,-1,2,n)||[],i&&(r=X(i,1,n.hasAltitude).concat(r)),s&&(r=r.concat(X(s,-1,n.hasAltitude)))),r}(r,n),r.length&&this.splitTile(r,0,0,0),e&&(r.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)))}splitTile(t,n,e,r,i,s,o){const a=[t,n,e,r],u=this.options,h=u.debug;for(;a.length;){r=a.pop(),e=a.pop(),n=a.pop(),t=a.pop();const l=1<<n,c=st(n,e,r);let f=this.tiles[c];if(!f&&(h>1&&console.time("creation"),f=this.tiles[c]=Q(t,n,e,r,u),this.tileCoords.push({z:n,x:e,y:r}),h)){h>1&&(console.log("tile z%d-%d-%d (features: %d, points: %d, simplified: %d)",n,e,r,f.numFeatures,f.numPoints,f.numSimplified),console.timeEnd("creation"));const t="z"+n;this.stats[t]=(this.stats[t]||0)+1,this.total++}if(f.source=t,null==i){if(n===u.indexMaxZoom||f.numPoints<=u.indexMaxPoints)continue}else{if(n===u.maxZoom||n===i)continue;if(null!=i){const t=i-n;if(e!==s>>t||r!==o>>t)continue}}if(f.source=null,0===t.length)continue;h>1&&console.time("clipping");const d=.5*u.buffer/u.extent,p=.5-d,y=.5+d,m=1+d;let g=null,v=null,b=null,w=null,M=L(t,l,e-d,e+y,0,f.minX,f.maxX,u),x=L(t,l,e+p,e+m,0,f.minX,f.maxX,u);t=null,M&&(g=L(M,l,r-d,r+y,1,f.minY,f.maxY,u),v=L(M,l,r+p,r+m,1,f.minY,f.maxY,u),M=null),x&&(b=L(x,l,r-d,r+y,1,f.minY,f.maxY,u),w=L(x,l,r+p,r+m,1,f.minY,f.maxY,u),x=null),h>1&&console.timeEnd("clipping"),a.push(g||[],n+1,2*e,2*r),a.push(v||[],n+1,2*e,2*r+1),a.push(b||[],n+1,2*e+1,2*r),a.push(w||[],n+1,2*e+1,2*r+1)}}getTile(t,n,e){t=+t,n=+n,e=+e;const r=this.options,{extent:i,debug:s}=r,{hasAltitude:o}=r;if(t<0||t>24)return null;const a=1<<t,u=st(t,n=n+a&a-1,e);if(this.tiles[u])return Z(this.tiles[u],i,o);s>1&&console.log("drilling down to z%d-%d-%d",t,n,e);let h,l=t,c=n,f=e;for(;!h&&l>0;)l--,c>>=1,f>>=1,h=this.tiles[st(l,c,f)];return h&&h.source?(s>1&&(console.log("found parent tile z%d-%d-%d",l,c,f),console.time("drilling down")),this.splitTile(h.source,l,c,f,t,n,e),s>1&&console.timeEnd("drilling down"),this.tiles[u]?Z(this.tiles[u],i,o):null):null}}function st(t,n,e){return 32*((1<<t)*e+n)+t}function ot(t,n,e,r,i,s,o){const a=e&&Array.isArray(e[0]);for(let u=0,h=e.length;u<h;u++){t[n]=(a?e[u][0]:e[u].x)*r,t[n+1]=(a?e[u][1]:e[u].y)*r,o!==Float32Array&&(t[n]=Math.round(t[n]),t[n+1]=Math.round(t[n+1]));let l=i||0;Array.isArray(i)&&(l=i[u]),l=l?Math.round(r*l):0,t[n+2]=l,n+=3,s&&0!==u&&u!==h-1&&(t[n]=t[n-3],t[n+1]=t[n-2],t[n+2]=t[n-1],n+=3)}return t.trySetLength&&t.trySetLength(n),n}function at(t,n,e,r){const i=t[3*n],s=t[3*n+1],o=t[3*e],a=t[3*e+1];return i===o&&(i<0||i>r)||s===a&&(s<0||s>r)}var ut="undefined"!=typeof Float32Array?Float32Array:Array;function ht(){var t=new ut(3);return ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t}function lt(t,n,e){var r=new ut(3);return r[0]=t,r[1]=n,r[2]=e,r}function ct(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t}function ft(t,n,e,r){return t[0]=n,t[1]=e,t[2]=r,t}function dt(t,n,e){return t[0]=n[0]+e[0],t[1]=n[1]+e[1],t[2]=n[2]+e[2],t}function pt(t,n){var e=n[0],r=n[1],i=n[2],s=e*e+r*r+i*i;return s>0&&(s=1/Math.sqrt(s),t[0]=n[0]*s,t[1]=n[1]*s,t[2]=n[2]*s),t}function yt(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function mt(t,n,e){var r=n[0],i=n[1],s=n[2],o=e[0],a=e[1],u=e[2];return t[0]=i*u-s*a,t[1]=s*o-r*u,t[2]=r*a-i*o,t}var gt=function(t,n,e){return t[0]=n[0]-e[0],t[1]=n[1]-e[1],t[2]=n[2]-e[2],t};function vt(t,n){return t[0]=n[0],t[1]=n[1],t[2]=n[2],t[3]=n[3],t}function bt(t,n,e,r,i){return t[0]=n,t[1]=e,t[2]=r,t[3]=i,t}function wt(t,n,e){return t[0]=n[0]/e[0],t[1]=n[1]/e[1],t[2]=n[2]/e[2],t[3]=n[3]/e[3],t}function Mt(t,n,e){return t[0]=n[0]*e,t[1]=n[1]*e,t[2]=n[2]*e,t[3]=n[3]*e,t}function xt(t,n){return t[0]===n[0]&&t[1]===n[1]&&t[2]===n[2]&&t[3]===n[3]}function Ft(){var t=new ut(4);return ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0),t[3]=1,t}function kt(t,n){var e=n[0]+n[4]+n[8],r=void 0;if(e>0)r=Math.sqrt(e+1),t[3]=.5*r,r=.5/r,t[0]=(n[5]-n[7])*r,t[1]=(n[6]-n[2])*r,t[2]=(n[1]-n[3])*r;else{var i=0;n[4]>n[0]&&(i=1),n[8]>n[3*i+i]&&(i=2);var s=(i+1)%3,o=(i+2)%3;r=Math.sqrt(n[3*i+i]-n[3*s+s]-n[3*o+o]+1),t[i]=.5*r,r=.5/r,t[3]=(n[3*s+o]-n[3*o+s])*r,t[s]=(n[3*s+i]+n[3*i+s])*r,t[o]=(n[3*o+i]+n[3*i+o])*r}return t}!function(){var t=ht()}(),function(){var t,n=(t=new ut(4),ut!=Float32Array&&(t[0]=0,t[1]=0,t[2]=0,t[3]=0),t)}();var At,Pt=Mt,St=function(t,n){var e=n[0],r=n[1],i=n[2],s=n[3],o=e*e+r*r+i*i+s*s;return o>0&&(o=1/Math.sqrt(o),t[0]=e*o,t[1]=r*o,t[2]=i*o,t[3]=s*o),t};function _t(t,n,e){return t[0]=n,t[1]=e,t}function Ot(t,n){var e=n[0]-t[0],r=n[1]-t[1];return Math.sqrt(e*e+r*r)}ht(),lt(1,0,0),lt(0,1,0),Ft(),Ft(),At=new ut(9),ut!=Float32Array&&(At[1]=0,At[2]=0,At[3]=0,At[5]=0,At[6]=0,At[7]=0),At[0]=1,At[4]=1,At[8]=1;var Et=function(t){var n=t[0],e=t[1];return Math.sqrt(n*n+e*e)};!function(){var t=function(){var t=new ut(2);return ut!=Float32Array&&(t[0]=0,t[1]=0),t}()}();const It=Math.PI/180,$t=6378137*Math.PI/180;function zt(t,n,e){if("EPSG:3857"===e)return function(t,n){const e=85.0511287798,r=n[0],i=Math.max(Math.min(e,n[1]),-e);let s;s=0===i?0:Math.log(Math.tan((90+i)*It/2))/It;return t[0]=r*$t,t[1]=s*$t,t}(t,n);if("EPSG:4326"===e||"EPSG:4490"===e||"identity"===e)return Ct(t,n);if("baidu"===e)return Ct(t,n);throw new Error("unsupported projection:"+e)}function Ct(t,n){return t[0]=n[0],t[1]=n[1],t}function Tt(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p){0===t?function(t,n,e,r,i,s,o,a,u,h){const l=1/(100*s),c=h&&h[0]||0,f=h&&h[1]||0,d=[0,0];for(let i=t;i<n;i+=3){const t=i/3*2,n=r[i]-c,s=r[i+1]-f;e[t]=d[0]+n*l/46.5*o/a,e[t+1]=d[1]-s*l/46.5*o/u}}(n,e,r,i,0,o,a,u,h,p):1===t&&function(t,n,e,r,i,s,o,a,u,h,l){if(!t)return;let c,f,d,p;0===t[4]?(c=t[0],f=t[1],d=t[2],p=t[3]):(c=t[1],f=t[2],d=t[3],p=t[0]);const y=Ot(c,f),m=Ot(f,d),g=[],v=[],b=[];for(let t=n;t<e;t+=3){const n=t/3*2,e=(s.x/u+i[t]*o)*a,d=s.y/u*a+(l?i[t+1]:-i[t+1])*o*a;_t(g,e,d),"EPSG:4326"!==h&&"EPSG:4490"!==h||zt(g,g,"EPSG:3857"),Dt(v,g,c,f),Dt(b,g,p,c),r[n]=Ot(c,v)/y,r[n+1]=Ot(c,b)/m}}(l,n,e,r,i,s,a,c,f,d,!!p)}function Dt(t,n,e,r){const i=e[0]-r[0],s=e[1]-r[1];let o=(n[0]-e[0])*(e[0]-r[0])+(n[1]-e[1])*(e[1]-r[1]);return o/=i*i+s*s,t[0]=e[0]+o*i,t[1]=e[1]+o*s,t}function jt(t,n,e,r,i){const s=3*n[e-1],o=3*n[e-1]+1,a=t[s],u=t[o];return h=r,l=i,c=a,f=u,Math.sqrt((c-h)*(c-h)+(f-l)*(f-l));var h,l,c,f}"undefined"!=typeof undefinedThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof undefined?global:"undefined"!=typeof self&&self;var Ut=Nt;function Nt(t,n){this.x=t,this.y=n}function Lt(t,n,e){e=e||{},this.w=t||64,this.h=n||64,this.autoResize=!!e.autoResize,this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0}function Vt(t,n,e){this.x=0,this.y=t,this.w=this.free=n,this.h=e}function Rt(t,n,e,r,i,s,o){this.id=t,this.x=n,this.y=e,this.w=r,this.h=i,this.maxw=s||r,this.maxh=o||i,this.refcount=0}Nt.prototype={clone:function(){return new Nt(this.x,this.y)},add:function(t){return this.clone().m(t)},sub:function(t){return this.clone().M(t)},multByPoint:function(t){return this.clone().F(t)},divByPoint:function(t){return this.clone().k(t)},mult:function(t){return this.clone().A(t)},div:function(t){return this.clone().P(t)},rotate:function(t){return this.clone().S(t)},rotateAround:function(t,n){return this.clone()._(t,n)},matMult:function(t){return this.clone().O(t)},unit:function(){return this.clone().I()},perp:function(){return this.clone().C()},round:function(){return this.clone().T()},mag:function(){return Math.sqrt(this.x*this.x+this.y*this.y)},equals:function(t){return this.x===t.x&&this.y===t.y},dist:function(t){return Math.sqrt(this.distSqr(t))},distSqr:function(t){var n=t.x-this.x,e=t.y-this.y;return n*n+e*e},angle:function(){return Math.atan2(this.y,this.x)},angleTo:function(t){return Math.atan2(this.y-t.y,this.x-t.x)},angleWith:function(t){return this.angleWithSep(t.x,t.y)},angleWithSep:function(t,n){return Math.atan2(this.x*n-this.y*t,this.x*t+this.y*n)},O:function(t){var n=t[0]*this.x+t[1]*this.y,e=t[2]*this.x+t[3]*this.y;return this.x=n,this.y=e,this},m:function(t){return this.x+=t.x,this.y+=t.y,this},M:function(t){return this.x-=t.x,this.y-=t.y,this},A:function(t){return this.x*=t,this.y*=t,this},P:function(t){return this.x/=t,this.y/=t,this},F:function(t){return this.x*=t.x,this.y*=t.y,this},k:function(t){return this.x/=t.x,this.y/=t.y,this},I:function(){return this.P(this.mag()),this},C:function(){var t=this.y;return this.y=this.x,this.x=-t,this},S:function(t){var n=Math.cos(t),e=Math.sin(t),r=n*this.x-e*this.y,i=e*this.x+n*this.y;return this.x=r,this.y=i,this},_:function(t,n){var e=Math.cos(t),r=Math.sin(t),i=n.x+e*(this.x-n.x)-r*(this.y-n.y),s=n.y+r*(this.x-n.x)+e*(this.y-n.y);return this.x=i,this.y=s,this},T:function(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this}},Nt.convert=function(t){return t instanceof Nt?t:Array.isArray(t)?new Nt(t[0],t[1]):t},Lt.prototype.pack=function(t,n){t=[].concat(t),n=n||{};for(var e,r,i,s,o=[],a=0;a<t.length;a++)if(e=t[a].w||t[a].width,r=t[a].h||t[a].height,i=t[a].id,e&&r){if(!(s=this.packOne(e,r,i)))continue;n.inPlace&&(t[a].x=s.x,t[a].y=s.y,t[a].id=s.id),o.push(s)}return this.shrink(),o},Lt.prototype.packOne=function(t,n,e){var r,i,s,o,a,u,h,l,c={freebin:-1,shelf:-1,waste:1/0},f=0;if("string"==typeof e||"number"==typeof e){if(r=this.getBin(e))return this.ref(r),r;"number"==typeof e&&(this.maxId=Math.max(e,this.maxId))}else e=++this.maxId;for(o=0;o<this.freebins.length;o++){if(n===(r=this.freebins[o]).maxh&&t===r.maxw)return this.allocFreebin(o,t,n,e);n>r.maxh||t>r.maxw||n<=r.maxh&&t<=r.maxw&&(s=r.maxw*r.maxh-t*n)<c.waste&&(c.waste=s,c.freebin=o)}for(o=0;o<this.shelves.length;o++)if(f+=(i=this.shelves[o]).h,!(t>i.free)){if(n===i.h)return this.allocShelf(o,t,n,e);n>i.h||n<i.h&&(s=(i.h-n)*t)<c.waste&&(c.freebin=-1,c.waste=s,c.shelf=o)}return-1!==c.freebin?this.allocFreebin(c.freebin,t,n,e):-1!==c.shelf?this.allocShelf(c.shelf,t,n,e):n<=this.h-f&&t<=this.w?(i=new Vt(f,this.w,n),this.allocShelf(this.shelves.push(i)-1,t,n,e)):this.autoResize?(a=u=this.h,((h=l=this.w)<=a||t>h)&&(l=2*Math.max(t,h)),(a<h||n>a)&&(u=2*Math.max(n,a)),this.resize(l,u),this.packOne(t,n,e)):null},Lt.prototype.allocFreebin=function(t,n,e,r){var i=this.freebins.splice(t,1)[0];return i.id=r,i.w=n,i.h=e,i.refcount=0,this.bins[r]=i,this.ref(i),i},Lt.prototype.allocShelf=function(t,n,e,r){var i=this.shelves[t].alloc(n,e,r);return this.bins[r]=i,this.ref(i),i},Lt.prototype.shrink=function(){if(this.shelves.length>0){for(var t=0,n=0,e=0;e<this.shelves.length;e++){var r=this.shelves[e];n+=r.h,t=Math.max(r.w-r.free,t)}this.resize(t,n)}},Lt.prototype.getBin=function(t){return this.bins[t]},Lt.prototype.ref=function(t){if(1==++t.refcount){var n=t.h;this.stats[n]=1+(0|this.stats[n])}return t.refcount},Lt.prototype.unref=function(t){return 0===t.refcount?0:(0==--t.refcount&&(this.stats[t.h]--,delete this.bins[t.id],this.freebins.push(t)),t.refcount)},Lt.prototype.clear=function(){this.shelves=[],this.freebins=[],this.stats={},this.bins={},this.maxId=0},Lt.prototype.resize=function(t,n){this.w=t,this.h=n;for(var e=0;e<this.shelves.length;e++)this.shelves[e].resize(t);return!0},Vt.prototype.alloc=function(t,n,e){if(t>this.free||n>this.h)return null;var r=this.x;return this.x+=t,this.free-=t,new Rt(e,r,this.y,t,n,t,this.h)},Vt.prototype.resize=function(t){return this.free+=t-this.w,this.w=t,!0};var Ht={exports:{}},Wt={aliceblue:[240,248,255],antiquewhite:[250,235,215],aqua:[0,255,255],aquamarine:[127,255,212],azure:[240,255,255],beige:[245,245,220],bisque:[255,228,196],black:[0,0,0],blanchedalmond:[255,235,205],blue:[0,0,255],blueviolet:[138,43,226],brown:[165,42,42],burlywood:[222,184,135],cadetblue:[95,158,160],chartreuse:[127,255,0],chocolate:[210,105,30],coral:[255,127,80],cornflowerblue:[100,149,237],cornsilk:[255,248,220],crimson:[220,20,60],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgoldenrod:[184,134,11],darkgray:[169,169,169],darkgreen:[0,100,0],darkgrey:[169,169,169],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkseagreen:[143,188,143],darkslateblue:[72,61,139],darkslategray:[47,79,79],darkslategrey:[47,79,79],darkturquoise:[0,206,209],darkviolet:[148,0,211],deeppink:[255,20,147],deepskyblue:[0,191,255],dimgray:[105,105,105],dimgrey:[105,105,105],dodgerblue:[30,144,255],firebrick:[178,34,34],floralwhite:[255,250,240],forestgreen:[34,139,34],fuchsia:[255,0,255],gainsboro:[220,220,220],ghostwhite:[248,248,255],gold:[255,215,0],goldenrod:[218,165,32],gray:[128,128,128],green:[0,128,0],greenyellow:[173,255,47],grey:[128,128,128],honeydew:[240,255,240],hotpink:[255,105,180],indianred:[205,92,92],indigo:[75,0,130],ivory:[255,255,240],khaki:[240,230,140],lavender:[230,230,250],lavenderblush:[255,240,245],lawngreen:[124,252,0],lemonchiffon:[255,250,205],lightblue:[173,216,230],lightcoral:[240,128,128],lightcyan:[224,255,255],lightgoldenrodyellow:[250,250,210],lightgray:[211,211,211],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightsalmon:[255,160,122],lightseagreen:[32,178,170],lightskyblue:[135,206,250],lightslategray:[119,136,153],lightslategrey:[119,136,153],lightsteelblue:[176,196,222],lightyellow:[255,255,224],lime:[0,255,0],limegreen:[50,205,50],linen:[250,240,230],magenta:[255,0,255],maroon:[128,0,0],mediumaquamarine:[102,205,170],mediumblue:[0,0,205],mediumorchid:[186,85,211],mediumpurple:[147,112,219],mediumseagreen:[60,179,113],mediumslateblue:[123,104,238],mediumspringgreen:[0,250,154],mediumturquoise:[72,209,204],mediumvioletred:[199,21,133],midnightblue:[25,25,112],mintcream:[245,255,250],mistyrose:[255,228,225],moccasin:[255,228,181],navajowhite:[255,222,173],navy:[0,0,128],oldlace:[253,245,230],olive:[128,128,0],olivedrab:[107,142,35],orange:[255,165,0],orangered:[255,69,0],orchid:[218,112,214],palegoldenrod:[238,232,170],palegreen:[152,251,152],paleturquoise:[175,238,238],palevioletred:[219,112,147],papayawhip:[255,239,213],peachpuff:[255,218,185],peru:[205,133,63],pink:[255,192,203],plum:[221,160,221],powderblue:[176,224,230],purple:[128,0,128],rebeccapurple:[102,51,153],red:[255,0,0],rosybrown:[188,143,143],royalblue:[65,105,225],saddlebrown:[139,69,19],salmon:[250,128,114],sandybrown:[244,164,96],seagreen:[46,139,87],seashell:[255,245,238],sienna:[160,82,45],silver:[192,192,192],skyblue:[135,206,235],slateblue:[106,90,205],slategray:[112,128,144],slategrey:[112,128,144],snow:[255,250,250],springgreen:[0,255,127],steelblue:[70,130,180],tan:[210,180,140],teal:[0,128,128],thistle:[216,191,216],tomato:[255,99,71],turquoise:[64,224,208],violet:[238,130,238],wheat:[245,222,179],white:[255,255,255],whitesmoke:[245,245,245],yellow:[255,255,0],yellowgreen:[154,205,50]},qt={exports:{}},Gt=function(t){return!(!t||"string"==typeof t)&&(t instanceof Array||Array.isArray(t)||t.length>=0&&(t.splice instanceof Function||Object.getOwnPropertyDescriptor(t,t.length-1)&&"String"!==t.constructor.name))},Bt=Array.prototype.concat,Jt=Array.prototype.slice,Xt=qt.exports=function(t){for(var n=[],e=0,r=t.length;e<r;e++){var i=t[e];Gt(i)?n=Bt.call(n,Jt.call(i)):n.push(i)}return n};Xt.wrap=function(t){return function(){return t(Xt(arguments))}};var Yt=Wt,Zt=qt.exports,Kt=Object.hasOwnProperty,Qt=Object.create(null);for(var tn in Yt)Kt.call(Yt,tn)&&(Qt[Yt[tn]]=tn);var nn=Ht.exports={to:{},get:{}};function en(t,n,e){return Math.min(Math.max(n,t),e)}function rn(t){var n=Math.round(t).toString(16).toUpperCase();return n.length<2?"0"+n:n}nn.get=function(t){var n,e;switch(t.substring(0,3).toLowerCase()){case"hsl":n=nn.get.hsl(t),e="hsl";break;case"hwb":n=nn.get.hwb(t),e="hwb";break;default:n=nn.get.rgb(t),e="rgb"}return n?{model:e,value:n}:null},nn.get.rgb=function(t){if(!t)return null;var n,e,r,i=[0,0,0,1];if(n=t.match(/^#([a-f0-9]{6})([a-f0-9]{2})?$/i)){for(r=n[2],n=n[1],e=0;e<3;e++){var s=2*e;i[e]=parseInt(n.slice(s,s+2),16)}r&&(i[3]=parseInt(r,16)/255)}else if(n=t.match(/^#([a-f0-9]{3,4})$/i)){for(r=(n=n[1])[3],e=0;e<3;e++)i[e]=parseInt(n[e]+n[e],16);r&&(i[3]=parseInt(r+r,16)/255)}else if(n=t.match(/^rgba?\\(\\s*([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)(?=[\\s,])\\s*(?:,\\s*)?([+-]?\\d+)\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/)){for(e=0;e<3;e++)i[e]=parseInt(n[e+1],0);n[4]&&(n[5]?i[3]=.01*parseFloat(n[4]):i[3]=parseFloat(n[4]))}else{if(!(n=t.match(/^rgba?\\(\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*,?\\s*([+-]?[\\d\\.]+)\\%\\s*(?:[,|\\/]\\s*([+-]?[\\d\\.]+)(%?)\\s*)?\\)$/)))return(n=t.match(/^(\\w+)$/))?"transparent"===n[1]?[0,0,0,0]:Kt.call(Yt,n[1])?((i=Yt[n[1]])[3]=1,i):null:null;for(e=0;e<3;e++)i[e]=Math.round(2.55*parseFloat(n[e+1]));n[4]&&(n[5]?i[3]=.01*parseFloat(n[4]):i[3]=parseFloat(n[4]))}for(e=0;e<3;e++)i[e]=en(i[e],0,255);return i[3]=en(i[3],0,1),i},nn.get.hsl=function(t){if(!t)return null;var n=t.match(/^hsla?\\(\\s*([+-]?(?:\\d{0,3}\\.)?\\d+)(?:deg)?\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*,?\\s*([+-]?[\\d\\.]+)%\\s*(?:[,|\\/]\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/);if(n){var e=parseFloat(n[4]);return[(parseFloat(n[1])%360+360)%360,en(parseFloat(n[2]),0,100),en(parseFloat(n[3]),0,100),en(isNaN(e)?1:e,0,1)]}return null},nn.get.hwb=function(t){if(!t)return null;var n=t.match(/^hwb\\(\\s*([+-]?\\d{0,3}(?:\\.\\d+)?)(?:deg)?\\s*,\\s*([+-]?[\\d\\.]+)%\\s*,\\s*([+-]?[\\d\\.]+)%\\s*(?:,\\s*([+-]?(?=\\.\\d|\\d)(?:0|[1-9]\\d*)?(?:\\.\\d*)?(?:[eE][+-]?\\d+)?)\\s*)?\\)$/);if(n){var e=parseFloat(n[4]);return[(parseFloat(n[1])%360+360)%360,en(parseFloat(n[2]),0,100),en(parseFloat(n[3]),0,100),en(isNaN(e)?1:e,0,1)]}return null},nn.to.hex=function(){var t=Zt(arguments);return"#"+rn(t[0])+rn(t[1])+rn(t[2])+(t[3]<1?rn(Math.round(255*t[3])):"")},nn.to.rgb=function(){var t=Zt(arguments);return t.length<4||1===t[3]?"rgb("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+")":"rgba("+Math.round(t[0])+", "+Math.round(t[1])+", "+Math.round(t[2])+", "+t[3]+")"},nn.to.rgb.percent=function(){var t=Zt(arguments),n=Math.round(t[0]/255*100),e=Math.round(t[1]/255*100),r=Math.round(t[2]/255*100);return t.length<4||1===t[3]?"rgb("+n+"%, "+e+"%, "+r+"%)":"rgba("+n+"%, "+e+"%, "+r+"%, "+t[3]+")"},nn.to.hsl=function(){var t=Zt(arguments);return t.length<4||1===t[3]?"hsl("+t[0]+", "+t[1]+"%, "+t[2]+"%)":"hsla("+t[0]+", "+t[1]+"%, "+t[2]+"%, "+t[3]+")"},nn.to.hwb=function(){var t=Zt(arguments),n="";return t.length>=4&&1!==t[3]&&(n=", "+t[3]),"hwb("+t[0]+", "+t[1]+"%, "+t[2]+"%"+n+")"},nn.to.keyword=function(t){return Qt[t.slice(0,3)]};var sn={exports:{}},on=Wt,an={};for(var un in on)on.hasOwnProperty(un)&&(an[on[un]]=un);var hn=sn.exports={rgb:{channels:3,labels:"rgb"},hsl:{channels:3,labels:"hsl"},hsv:{channels:3,labels:"hsv"},hwb:{channels:3,labels:"hwb"},cmyk:{channels:4,labels:"cmyk"},xyz:{channels:3,labels:"xyz"},lab:{channels:3,labels:"lab"},lch:{channels:3,labels:"lch"},hex:{channels:1,labels:["hex"]},keyword:{channels:1,labels:["keyword"]},ansi16:{channels:1,labels:["ansi16"]},ansi256:{channels:1,labels:["ansi256"]},hcg:{channels:3,labels:["h","c","g"]},apple:{channels:3,labels:["r16","g16","b16"]},gray:{channels:1,labels:["gray"]}};for(var ln in hn)if(hn.hasOwnProperty(ln)){if(!("channels"in hn[ln]))throw new Error("missing channels property: "+ln);if(!("labels"in hn[ln]))throw new Error("missing channel labels property: "+ln);if(hn[ln].labels.length!==hn[ln].channels)throw new Error("channel and label counts mismatch: "+ln);var cn=hn[ln].channels,fn=hn[ln].labels;delete hn[ln].channels,delete hn[ln].labels,Object.defineProperty(hn[ln],"channels",{value:cn}),Object.defineProperty(hn[ln],"labels",{value:fn})}function dn(t,n){return Math.pow(t[0]-n[0],2)+Math.pow(t[1]-n[1],2)+Math.pow(t[2]-n[2],2)}hn.rgb.hsl=function(t){var n,e,r=t[0]/255,i=t[1]/255,s=t[2]/255,o=Math.min(r,i,s),a=Math.max(r,i,s),u=a-o;return a===o?n=0:r===a?n=(i-s)/u:i===a?n=2+(s-r)/u:s===a&&(n=4+(r-i)/u),(n=Math.min(60*n,360))<0&&(n+=360),e=(o+a)/2,[n,100*(a===o?0:e<=.5?u/(a+o):u/(2-a-o)),100*e]},hn.rgb.hsv=function(t){var n,e,r,i,s,o=t[0]/255,a=t[1]/255,u=t[2]/255,h=Math.max(o,a,u),l=h-Math.min(o,a,u),c=function(t){return(h-t)/6/l+.5};return 0===l?i=s=0:(s=l/h,n=c(o),e=c(a),r=c(u),o===h?i=r-e:a===h?i=1/3+n-r:u===h&&(i=2/3+e-n),i<0?i+=1:i>1&&(i-=1)),[360*i,100*s,100*h]},hn.rgb.hwb=function(t){var n=t[0],e=t[1],r=t[2];return[hn.rgb.hsl(t)[0],100*(1/255*Math.min(n,Math.min(e,r))),100*(r=1-1/255*Math.max(n,Math.max(e,r)))]},hn.rgb.cmyk=function(t){var n,e=t[0]/255,r=t[1]/255,i=t[2]/255;return[100*((1-e-(n=Math.min(1-e,1-r,1-i)))/(1-n)||0),100*((1-r-n)/(1-n)||0),100*((1-i-n)/(1-n)||0),100*n]},hn.rgb.keyword=function(t){var n=an[t];if(n)return n;var e,r=1/0;for(var i in on)if(on.hasOwnProperty(i)){var s=dn(t,on[i]);s<r&&(r=s,e=i)}return e},hn.keyword.rgb=function(t){return on[t]},hn.rgb.xyz=function(t){var n=t[0]/255,e=t[1]/255,r=t[2]/255;return[100*(.4124*(n=n>.04045?Math.pow((n+.055)/1.055,2.4):n/12.92)+.3576*(e=e>.04045?Math.pow((e+.055)/1.055,2.4):e/12.92)+.1805*(r=r>.04045?Math.pow((r+.055)/1.055,2.4):r/12.92)),100*(.2126*n+.7152*e+.0722*r),100*(.0193*n+.1192*e+.9505*r)]},hn.rgb.lab=function(t){var n=hn.rgb.xyz(t),e=n[0],r=n[1],i=n[2];return r/=100,i/=108.883,e=(e/=95.047)>.008856?Math.pow(e,1/3):7.787*e+16/116,[116*(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116)-16,500*(e-r),200*(r-(i=i>.008856?Math.pow(i,1/3):7.787*i+16/116))]},hn.hsl.rgb=function(t){var n,e,r,i,s,o=t[0]/360,a=t[1]/100,u=t[2]/100;if(0===a)return[s=255*u,s,s];n=2*u-(e=u<.5?u*(1+a):u+a-u*a),i=[0,0,0];for(var h=0;h<3;h++)(r=o+1/3*-(h-1))<0&&r++,r>1&&r--,s=6*r<1?n+6*(e-n)*r:2*r<1?e:3*r<2?n+(e-n)*(2/3-r)*6:n,i[h]=255*s;return i},hn.hsl.hsv=function(t){var n=t[0],e=t[1]/100,r=t[2]/100,i=e,s=Math.max(r,.01);return e*=(r*=2)<=1?r:2-r,i*=s<=1?s:2-s,[n,100*(0===r?2*i/(s+i):2*e/(r+e)),100*((r+e)/2)]},hn.hsv.rgb=function(t){var n=t[0]/60,e=t[1]/100,r=t[2]/100,i=Math.floor(n)%6,s=n-Math.floor(n),o=255*r*(1-e),a=255*r*(1-e*s),u=255*r*(1-e*(1-s));switch(r*=255,i){case 0:return[r,u,o];case 1:return[a,r,o];case 2:return[o,r,u];case 3:return[o,a,r];case 4:return[u,o,r];case 5:return[r,o,a]}},hn.hsv.hsl=function(t){var n,e,r,i=t[0],s=t[1]/100,o=t[2]/100,a=Math.max(o,.01);return r=(2-s)*o,e=s*a,[i,100*(e=(e/=(n=(2-s)*a)<=1?n:2-n)||0),100*(r/=2)]},hn.hwb.rgb=function(t){var n,e,r,i,s,o,a,u=t[0]/360,h=t[1]/100,l=t[2]/100,c=h+l;switch(c>1&&(h/=c,l/=c),r=6*u-(n=Math.floor(6*u)),0!=(1&n)&&(r=1-r),i=h+r*((e=1-l)-h),n){default:case 6:case 0:s=e,o=i,a=h;break;case 1:s=i,o=e,a=h;break;case 2:s=h,o=e,a=i;break;case 3:s=h,o=i,a=e;break;case 4:s=i,o=h,a=e;break;case 5:s=e,o=h,a=i}return[255*s,255*o,255*a]},hn.cmyk.rgb=function(t){var n=t[0]/100,e=t[1]/100,r=t[2]/100,i=t[3]/100;return[255*(1-Math.min(1,n*(1-i)+i)),255*(1-Math.min(1,e*(1-i)+i)),255*(1-Math.min(1,r*(1-i)+i))]},hn.xyz.rgb=function(t){var n,e,r,i=t[0]/100,s=t[1]/100,o=t[2]/100;return e=-.9689*i+1.8758*s+.0415*o,r=.0557*i+-.204*s+1.057*o,n=(n=3.2406*i+-1.5372*s+-.4986*o)>.0031308?1.055*Math.pow(n,1/2.4)-.055:12.92*n,e=e>.0031308?1.055*Math.pow(e,1/2.4)-.055:12.92*e,r=r>.0031308?1.055*Math.pow(r,1/2.4)-.055:12.92*r,[255*(n=Math.min(Math.max(0,n),1)),255*(e=Math.min(Math.max(0,e),1)),255*(r=Math.min(Math.max(0,r),1))]},hn.xyz.lab=function(t){var n=t[0],e=t[1],r=t[2];return e/=100,r/=108.883,n=(n/=95.047)>.008856?Math.pow(n,1/3):7.787*n+16/116,[116*(e=e>.008856?Math.pow(e,1/3):7.787*e+16/116)-16,500*(n-e),200*(e-(r=r>.008856?Math.pow(r,1/3):7.787*r+16/116))]},hn.lab.xyz=function(t){var n,e,r,i=t[0];n=t[1]/500+(e=(i+16)/116),r=e-t[2]/200;var s=Math.pow(e,3),o=Math.pow(n,3),a=Math.pow(r,3);return e=s>.008856?s:(e-16/116)/7.787,n=o>.008856?o:(n-16/116)/7.787,r=a>.008856?a:(r-16/116)/7.787,[n*=95.047,e*=100,r*=108.883]},hn.lab.lch=function(t){var n,e=t[0],r=t[1],i=t[2];return(n=360*Math.atan2(i,r)/2/Math.PI)<0&&(n+=360),[e,Math.sqrt(r*r+i*i),n]},hn.lch.lab=function(t){var n,e=t[0],r=t[1];return n=t[2]/360*2*Math.PI,[e,r*Math.cos(n),r*Math.sin(n)]},hn.rgb.ansi16=function(t){var n=t[0],e=t[1],r=t[2],i=1 in arguments?arguments[1]:hn.rgb.hsv(t)[2];if(0===(i=Math.round(i/50)))return 30;var s=30+(Math.round(r/255)<<2|Math.round(e/255)<<1|Math.round(n/255));return 2===i&&(s+=60),s},hn.hsv.ansi16=function(t){return hn.rgb.ansi16(hn.hsv.rgb(t),t[2])},hn.rgb.ansi256=function(t){var n=t[0],e=t[1],r=t[2];return n===e&&e===r?n<8?16:n>248?231:Math.round((n-8)/247*24)+232:16+36*Math.round(n/255*5)+6*Math.round(e/255*5)+Math.round(r/255*5)},hn.ansi16.rgb=function(t){var n=t%10;if(0===n||7===n)return t>50&&(n+=3.5),[n=n/10.5*255,n,n];var e=.5*(1+~~(t>50));return[(1&n)*e*255,(n>>1&1)*e*255,(n>>2&1)*e*255]},hn.ansi256.rgb=function(t){if(t>=232){var n=10*(t-232)+8;return[n,n,n]}var e;return t-=16,[Math.floor(t/36)/5*255,Math.floor((e=t%36)/6)/5*255,e%6/5*255]},hn.rgb.hex=function(t){var n=(((255&Math.round(t[0]))<<16)+((255&Math.round(t[1]))<<8)+(255&Math.round(t[2]))).toString(16).toUpperCase();return"000000".substring(n.length)+n},hn.hex.rgb=function(t){var n=t.toString(16).match(/[a-f0-9]{6}|[a-f0-9]{3}/i);if(!n)return[0,0,0];var e=n[0];3===n[0].length&&(e=e.split("").map((function(t){return t+t})).join(""));var r=parseInt(e,16);return[r>>16&255,r>>8&255,255&r]},hn.rgb.hcg=function(t){var n,e=t[0]/255,r=t[1]/255,i=t[2]/255,s=Math.max(Math.max(e,r),i),o=Math.min(Math.min(e,r),i),a=s-o;return n=a<=0?0:s===e?(r-i)/a%6:s===r?2+(i-e)/a:4+(e-r)/a+4,n/=6,[360*(n%=1),100*a,100*(a<1?o/(1-a):0)]},hn.hsl.hcg=function(t){var n=t[1]/100,e=t[2]/100,r=1,i=0;return(r=e<.5?2*n*e:2*n*(1-e))<1&&(i=(e-.5*r)/(1-r)),[t[0],100*r,100*i]},hn.hsv.hcg=function(t){var n=t[1]/100,e=t[2]/100,r=n*e,i=0;return r<1&&(i=(e-r)/(1-r)),[t[0],100*r,100*i]},hn.hcg.rgb=function(t){var n=t[0]/360,e=t[1]/100,r=t[2]/100;if(0===e)return[255*r,255*r,255*r];var i,s=[0,0,0],o=n%1*6,a=o%1,u=1-a;switch(Math.floor(o)){case 0:s[0]=1,s[1]=a,s[2]=0;break;case 1:s[0]=u,s[1]=1,s[2]=0;break;case 2:s[0]=0,s[1]=1,s[2]=a;break;case 3:s[0]=0,s[1]=u,s[2]=1;break;case 4:s[0]=a,s[1]=0,s[2]=1;break;default:s[0]=1,s[1]=0,s[2]=u}return i=(1-e)*r,[255*(e*s[0]+i),255*(e*s[1]+i),255*(e*s[2]+i)]},hn.hcg.hsv=function(t){var n=t[1]/100,e=n+t[2]/100*(1-n),r=0;return e>0&&(r=n/e),[t[0],100*r,100*e]},hn.hcg.hsl=function(t){var n=t[1]/100,e=t[2]/100*(1-n)+.5*n,r=0;return e>0&&e<.5?r=n/(2*e):e>=.5&&e<1&&(r=n/(2*(1-e))),[t[0],100*r,100*e]},hn.hcg.hwb=function(t){var n=t[1]/100,e=n+t[2]/100*(1-n);return[t[0],100*(e-n),100*(1-e)]},hn.hwb.hcg=function(t){var n=t[1]/100,e=1-t[2]/100,r=e-n,i=0;return r<1&&(i=(e-r)/(1-r)),[t[0],100*r,100*i]},hn.apple.rgb=function(t){return[t[0]/65535*255,t[1]/65535*255,t[2]/65535*255]},hn.rgb.apple=function(t){return[t[0]/255*65535,t[1]/255*65535,t[2]/255*65535]},hn.gray.rgb=function(t){return[t[0]/100*255,t[0]/100*255,t[0]/100*255]},hn.gray.hsl=hn.gray.hsv=function(t){return[0,0,t[0]]},hn.gray.hwb=function(t){return[0,100,t[0]]},hn.gray.cmyk=function(t){return[0,0,0,t[0]]},hn.gray.lab=function(t){return[t[0],0,0]},hn.gray.hex=function(t){var n=255&Math.round(t[0]/100*255),e=((n<<16)+(n<<8)+n).toString(16).toUpperCase();return"000000".substring(e.length)+e},hn.rgb.gray=function(t){return[(t[0]+t[1]+t[2])/3/255*100]};var pn=sn.exports;function yn(t){var n=function(){for(var t={},n=Object.keys(pn),e=n.length,r=0;r<e;r++)t[n[r]]={distance:-1,parent:null};return t}(),e=[t];for(n[t].distance=0;e.length;)for(var r=e.pop(),i=Object.keys(pn[r]),s=i.length,o=0;o<s;o++){var a=i[o],u=n[a];-1===u.distance&&(u.distance=n[r].distance+1,u.parent=r,e.unshift(a))}return n}function mn(t,n){return function(e){return n(t(e))}}function gn(t,n){for(var e=[n[t].parent,t],r=pn[n[t].parent][t],i=n[t].parent;n[i].parent;)e.unshift(n[i].parent),r=mn(pn[n[i].parent][i],r),i=n[i].parent;return r.conversion=e,r}var vn=sn.exports,bn=function(t){for(var n=yn(t),e={},r=Object.keys(n),i=r.length,s=0;s<i;s++){var o=r[s];null!==n[o].parent&&(e[o]=gn(o,n))}return e},wn={};Object.keys(vn).forEach((function(t){wn[t]={},Object.defineProperty(wn[t],"channels",{value:vn[t].channels}),Object.defineProperty(wn[t],"labels",{value:vn[t].labels});var n=bn(t);Object.keys(n).forEach((function(e){var r=n[e];wn[t][e]=function(t){var n=function(n){if(null==n)return n;arguments.length>1&&(n=Array.prototype.slice.call(arguments));var e=t(n);if("object"==typeof e)for(var r=e.length,i=0;i<r;i++)e[i]=Math.round(e[i]);return e};return"conversion"in t&&(n.conversion=t.conversion),n}(r),wn[t][e].raw=function(t){var n=function(n){return null==n?n:(arguments.length>1&&(n=Array.prototype.slice.call(arguments)),t(n))};return"conversion"in t&&(n.conversion=t.conversion),n}(r)}))}));var Mn=wn,xn=Ht.exports,Fn=Mn,kn=[].slice,An=["keyword","gray","hex"],Pn={};Object.keys(Fn).forEach((function(t){Pn[kn.call(Fn[t].labels).sort().join("")]=t}));var Sn={};function _n(t,n){if(!(this instanceof _n))return new _n(t,n);if(n&&n in An&&(n=null),n&&!(n in Fn))throw new Error("Unknown model: "+n);var e,r;if(null==t)this.model="rgb",this.color=[0,0,0],this.valpha=1;else if(t instanceof _n)this.model=t.model,this.color=t.color.slice(),this.valpha=t.valpha;else if("string"==typeof t){var i=xn.get(t);if(null===i)throw new Error("Unable to parse color from string: "+t);this.model=i.model,r=Fn[this.model].channels,this.color=i.value.slice(0,r),this.valpha="number"==typeof i.value[r]?i.value[r]:1}else if(t.length){this.model=n||"rgb",r=Fn[this.model].channels;var s=kn.call(t,0,r);this.color=$n(s,r),this.valpha="number"==typeof t[r]?t[r]:1}else if("number"==typeof t)t&=16777215,this.model="rgb",this.color=[t>>16&255,t>>8&255,255&t],this.valpha=1;else{this.valpha=1;var o=Object.keys(t);"alpha"in t&&(o.splice(o.indexOf("alpha"),1),this.valpha="number"==typeof t.alpha?t.alpha:0);var a=o.sort().join("");if(!(a in Pn))throw new Error("Unable to parse color from object: "+JSON.stringify(t));this.model=Pn[a];var u=Fn[this.model].labels,h=[];for(e=0;e<u.length;e++)h.push(t[u[e]]);this.color=$n(h)}if(Sn[this.model])for(r=Fn[this.model].channels,e=0;e<r;e++){var l=Sn[this.model][e];l&&(this.color[e]=l(this.color[e]))}this.valpha=Math.max(0,Math.min(1,this.valpha)),Object.freeze&&Object.freeze(this)}function On(t,n,e){return(t=Array.isArray(t)?t:[t]).forEach((function(t){(Sn[t]||(Sn[t]=[]))[n]=e})),t=t[0],function(r){var i;return arguments.length?(e&&(r=e(r)),(i=this[t]()).color[n]=r,i):(i=this[t]().color[n],e&&(i=e(i)),i)}}function En(t){return function(n){return Math.max(0,Math.min(t,n))}}function In(t){return Array.isArray(t)?t:[t]}function $n(t,n){for(var e=0;e<n;e++)"number"!=typeof t[e]&&(t[e]=0);return t}_n.prototype={toString:function(){return this.string()},toJSON:function(){return this[this.model]()},string:function(t){var n=this.model in xn.to?this:this.rgb(),e=1===(n=n.round("number"==typeof t?t:1)).valpha?n.color:n.color.concat(this.valpha);return xn.to[n.model](e)},percentString:function(t){var n=this.rgb().round("number"==typeof t?t:1),e=1===n.valpha?n.color:n.color.concat(this.valpha);return xn.to.rgb.percent(e)},array:function(){return 1===this.valpha?this.color.slice():this.color.concat(this.valpha)},object:function(){for(var t={},n=Fn[this.model].channels,e=Fn[this.model].labels,r=0;r<n;r++)t[e[r]]=this.color[r];return 1!==this.valpha&&(t.alpha=this.valpha),t},unitArray:function(){var t=this.rgb().color;return t[0]/=255,t[1]/=255,t[2]/=255,1!==this.valpha&&t.push(this.valpha),t},unitObject:function(){var t=this.rgb().object();return t.r/=255,t.g/=255,t.b/=255,1!==this.valpha&&(t.alpha=this.valpha),t},round:function(t){return t=Math.max(t||0,0),new _n(this.color.map(function(t){return function(n){return function(t,n){return Number(t.toFixed(n))}(n,t)}}(t)).concat(this.valpha),this.model)},alpha:function(t){return arguments.length?new _n(this.color.concat(Math.max(0,Math.min(1,t))),this.model):this.valpha},red:On("rgb",0,En(255)),green:On("rgb",1,En(255)),blue:On("rgb",2,En(255)),hue:On(["hsl","hsv","hsl","hwb","hcg"],0,(function(t){return(t%360+360)%360})),saturationl:On("hsl",1,En(100)),lightness:On("hsl",2,En(100)),saturationv:On("hsv",1,En(100)),value:On("hsv",2,En(100)),chroma:On("hcg",1,En(100)),gray:On("hcg",2,En(100)),white:On("hwb",1,En(100)),wblack:On("hwb",2,En(100)),cyan:On("cmyk",0,En(100)),magenta:On("cmyk",1,En(100)),yellow:On("cmyk",2,En(100)),black:On("cmyk",3,En(100)),x:On("xyz",0,En(100)),y:On("xyz",1,En(100)),z:On("xyz",2,En(100)),l:On("lab",0,En(100)),a:On("lab",1),b:On("lab",2),keyword:function(t){return arguments.length?new _n(t):Fn[this.model].keyword(this.color)},hex:function(t){return arguments.length?new _n(t):xn.to.hex(this.rgb().round().color)},rgbNumber:function(){var t=this.rgb().color;return(255&t[0])<<16|(255&t[1])<<8|255&t[2]},luminosity:function(){for(var t=this.rgb().color,n=[],e=0;e<t.length;e++){var r=t[e]/255;n[e]=r<=.03928?r/12.92:Math.pow((r+.055)/1.055,2.4)}return.2126*n[0]+.7152*n[1]+.0722*n[2]},contrast:function(t){var n=this.luminosity(),e=t.luminosity();return n>e?(n+.05)/(e+.05):(e+.05)/(n+.05)},level:function(t){var n=this.contrast(t);return n>=7.1?"AAA":n>=4.5?"AA":""},isDark:function(){var t=this.rgb().color;return(299*t[0]+587*t[1]+114*t[2])/1e3<128},isLight:function(){return!this.isDark()},negate:function(){for(var t=this.rgb(),n=0;n<3;n++)t.color[n]=255-t.color[n];return t},lighten:function(t){var n=this.hsl();return n.color[2]+=n.color[2]*t,n},darken:function(t){var n=this.hsl();return n.color[2]-=n.color[2]*t,n},saturate:function(t){var n=this.hsl();return n.color[1]+=n.color[1]*t,n},desaturate:function(t){var n=this.hsl();return n.color[1]-=n.color[1]*t,n},whiten:function(t){var n=this.hwb();return n.color[1]+=n.color[1]*t,n},blacken:function(t){var n=this.hwb();return n.color[2]+=n.color[2]*t,n},grayscale:function(){var t=this.rgb().color,n=.3*t[0]+.59*t[1]+.11*t[2];return _n.rgb(n,n,n)},fade:function(t){return this.alpha(this.valpha-this.valpha*t)},opaquer:function(t){return this.alpha(this.valpha+this.valpha*t)},rotate:function(t){var n=this.hsl(),e=n.color[0];return e=(e=(e+t)%360)<0?360+e:e,n.color[0]=e,n},mix:function(t,n){if(!t||!t.rgb)throw new Error(\'Argument to "mix" was not a Color instance, but rather an instance of \'+typeof t);var e=t.rgb(),r=this.rgb(),i=void 0===n?.5:n,s=2*i-1,o=e.alpha()-r.alpha(),a=((s*o==-1?s:(s+o)/(1+s*o))+1)/2,u=1-a;return _n.rgb(a*e.red()+u*r.red(),a*e.green()+u*r.green(),a*e.blue()+u*r.blue(),e.alpha()*i+r.alpha()*(1-i))}},Object.keys(Fn).forEach((function(t){if(-1===An.indexOf(t)){var n=Fn[t].channels;_n.prototype[t]=function(){if(this.model===t)return new _n(this);if(arguments.length)return new _n(arguments,t);var e="number"==typeof arguments[n]?n:this.valpha;return new _n(In(Fn[this.model][t].raw(this.color)).concat(e),t)},_n[t]=function(e){return"number"==typeof e&&(e=$n(kn.call(arguments),n)),new _n(e,t)}}}));var zn=_n;\n/*!\n Feature Filter by\n\n (c) mapbox 2016 and maptalks 2018\n www.mapbox.com | www.maptalks.org\n License: MIT, header required.\n */const Cn=["Unknown","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon","GeometryCollection"];function Tn(t){return new Function("f","var p = (f && f.properties || {}); return "+Dn(t))}function Dn(t){if(!t)return"true";const n=t[0];if(t.length<=1)return"any"===n?"false":"true";return`(${"=="===n?Un(t[1],t[2],"===",!1):"!="===n?Un(t[1],t[2],"!==",!1):"<"===n||">"===n||"<="===n||">="===n?Un(t[1],t[2],n,!0):"any"===n?Ln(t.slice(1),"||"):"all"===n?Ln(t.slice(1),"&&"):"none"===n?Hn(Ln(t.slice(1),"||")):"in"===n?Vn(t[1],t.slice(2)):"!in"===n?Hn(Vn(t[1],t.slice(2))):"has"===n?Rn(t[1]):"!has"===n?Hn(Rn(t[1])):"contains"===n?function(t,n,e){const r=jn(t);return void 0!==e?`(${r} + \'\').indexOf("${n}") === ${e}`:`(${r} + \'\').indexOf("${n}") >= 0`}(t[1],t[2],t[3]):"true"})`}function jn(t){return"$"===t[0]?"f."+t.substring(1):"p["+JSON.stringify(t)+"]"}function Un(t,n,e,r){if("object"==typeof(i=t)&&i&&t.op)return function(t,n,e,r){const i=t.property,s=t.op;let o=jn(i);return"length"!==s?(console.error(`not support ${s} op`),"false"):(o=`((${o}+=\'\').length)`,Nn(o,i,n,e,r))}(t,n,e,r);var i;return Nn(jn(t),t,n,e,r)}function Nn(t,n,e,r,i){const s="$type"===n?Cn.indexOf(e):JSON.stringify(e);return(i?`typeof ${t}=== typeof ${s}&&`:"")+t+r+s}function Ln(t,n){return t.map(Dn).join(n)}function Vn(t,n){"$type"===t&&(n=n.map(t=>Cn.indexOf(t)));const e=JSON.stringify(n.sort(Wn)),r=jn(t);return n.length<=200?`${e}.indexOf(${r}) !== -1`:`function(v, a, i, j) {\\n while (i <= j) { var m = (i + j) >> 1;\\n if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;\\n }\\n return false; }(${r}, ${e},0,${n.length-1})`}function Rn(t){return"$id"===t?\'"id" in f\':JSON.stringify(t)+" in p"}function Hn(t){return`!(${t})`}function Wn(t,n){return t<n?-1:t>n?1:0}var qn={exports:{}};qn.exports=function(){function t(t,n,e){var r=t[n];t[n]=t[e],t[e]=r}function n(t,n){return t<n?-1:t>n?1:0}return function(e,r,i,s,o){!function n(e,r,i,s,o){for(;s>i;){if(s-i>600){var a=s-i+1,u=r-i+1,h=Math.log(a),l=.5*Math.exp(2*h/3),c=.5*Math.sqrt(h*l*(a-l)/a)*(u-a/2<0?-1:1),f=Math.max(i,Math.floor(r-u*l/a+c)),d=Math.min(s,Math.floor(r+(a-u)*l/a+c));n(e,r,f,d,o)}var p=e[r],y=i,m=s;for(t(e,i,r),o(e[s],p)>0&&t(e,i,s);y<m;){for(t(e,y,m),y++,m--;o(e[y],p)<0;)y++;for(;o(e[m],p)>0;)m--}0===o(e[i],p)?t(e,i,m):(m++,t(e,m,s)),m<=r&&(i=m+1),r<=m&&(s=m-1)}}(e,r,i||0,s||e.length-1,o||n)}}();var Gn=qn.exports,Bn={exports:{}};function Jn(t,n){if(!(this instanceof Jn))return new Jn(t,n);if(this.data=t||[],this.length=this.data.length,this.compare=n||Xn,this.length>0)for(var e=(this.length>>1)-1;e>=0;e--)this.D(e)}function Xn(t,n){return t<n?-1:t>n?1:0}Bn.exports=Jn,Bn.exports.default=Jn,Jn.prototype={push:function(t){this.data.push(t),this.length++,this.j(this.length-1)},pop:function(){if(0!==this.length){var t=this.data[0];return this.length--,this.length>0&&(this.data[0]=this.data[this.length],this.D(0)),this.data.pop(),t}},peek:function(){return this.data[0]},j:function(t){for(var n=this.data,e=this.compare,r=n[t];t>0;){var i=t-1>>1,s=n[i];if(e(r,s)>=0)break;n[t]=s,t=i}n[t]=r},D:function(t){for(var n=this.data,e=this.compare,r=this.length>>1,i=n[t];t<r;){var s=1+(t<<1),o=s+1,a=n[s];if(o<this.length&&e(n[o],a)<0&&(s=o,a=n[o]),e(a,i)>=0)break;n[t]=a,t=s}n[t]=i}};var Yn=Bn.exports;\n/*!\n * Contains code from google filament\n * https://github.com/google/filament/\n * License Apache-2.0\n */const Zn=[],Kn=[],Qn=[],te=[];function ne(t,n,e){const r=mt(Kn,n,e);t=kt(t,function(t,n,e,r,i,s,o,a,u,h){return t[0]=n,t[1]=e,t[2]=r,t[3]=i,t[4]=s,t[5]=o,t[6]=a,t[7]=u,t[8]=h,t}(Zn,e[0],e[1],e[2],...r,...n));if((t=function(t){return t[3]<0?Pt(t,t,-1):t}(t=St(t,t)))[3]<1/32767){t[3]=1/32767;const n=Math.sqrt(.9999999990686206);t[0]*=n,t[1]*=n,t[2]*=n}const i=e[3]>0?mt(Qn,e,n):mt(Qn,n,e);return yt(mt(te,e,n),i)<0&&Pt(t,t,-1),t}const ee=[];function re(t,n,e){const r=e||[];r.setLength&&r.setLength(t.length);const i=ee;i.length<t.length/3&&(i.length=t.length/3),i.fill(0,0,t.length/3),r.fill(0,0,t.length);for(let e=0;e<n.length/3;e++)ce(t,n[3*e],n[3*e+1],n[3*e+2],r,i);for(let t=0;t<r.length;t+=3){const n=i[t/3];0!==n&&(r[t]/=n,r[t+1]/=n,r[t+2]/=n)}return r}const ie=[],se=[],oe=[],ae=[],ue=[],he=[],le=[];function ce(t,n,e,r,i,s){ft(ae,t[3*n],t[3*n+1],t[3*n+2]),ft(ue,t[3*e],t[3*e+1],t[3*e+2]),ft(he,t[3*r],t[3*r+1],t[3*r+2]);const o=gt(ie,he,ue),a=gt(se,ae,ue),u=mt(oe,o,a);pt(le,u),i[3*n]+=le[0],i[3*e]+=le[0],i[3*r]+=le[0],i[3*n+1]+=le[1],i[3*e+1]+=le[1],i[3*r+1]+=le[1],i[3*n+2]+=le[2],i[3*e+2]+=le[2],i[3*r+2]+=le[2],s[n]+=1,s[e]+=1,s[r]+=1}\n/*!\n * Contains code from THREE.JS\n * https://github.com/mrdoob/three.js/\n * License MIT\n * \n * Generate tangents per vertex.\n */function fe(t,n,e){return t[0]=n[e],t[1]=n[e+1],t[2]=n[e+2],t}function de(t,n,e){return t[0]=n[e],t[1]=n[e+1],t}var pe={exports:{}};function ye(t,n,e){e=e||2;var r,i,s,o,a,u,h,l=n&&n.length,c=l?n[0]*e:t.length,f=me(t,0,c,e,!0),d=[];if(!f||f.next===f.prev)return d;if(l&&(f=function(t,n,e,r){var i,s,o,a,u,h=[];for(i=0,s=n.length;i<s;i++)o=n[i]*r,a=i<s-1?n[i+1]*r:t.length,(u=me(t,o,a,r,!1))===u.next&&(u.steiner=!0),h.push(Se(u));for(h.sort(Fe),i=0;i<h.length;i++)e=ke(h[i],e);return e}(t,n,f,e)),t.length>80*e){r=s=t[0],i=o=t[1];for(var p=e;p<c;p+=e)(a=t[p])<r&&(r=a),(u=t[p+1])<i&&(i=u),a>s&&(s=a),u>o&&(o=u);h=0!==(h=Math.max(s-r,o-i))?32767/h:0}return ve(f,d,e,r,i,h,0),d}function me(t,n,e,r,i){var s,o;if(i===Le(t,n,e,r)>0)for(s=n;s<e;s+=r)o=je(s,t[s],t[s+1],o);else for(s=e-r;s>=n;s-=r)o=je(s,t[s],t[s+1],o);return o&&Ie(o,o.next)&&(Ue(o),o=o.next),o}function ge(t,n){if(!t)return t;n||(n=t);var e,r=t;do{if(e=!1,r.steiner||!Ie(r,r.next)&&0!==Ee(r.prev,r,r.next))r=r.next;else{if(Ue(r),(r=n=r.prev)===r.next)break;e=!0}}while(e||r!==n);return n}function ve(t,n,e,r,i,s,o){if(t){!o&&s&&function(t,n,e,r){var i=t;do{0===i.z&&(i.z=Pe(i.x,i.y,n,e,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==t);i.prevZ.nextZ=null,i.prevZ=null,function(t){var n,e,r,i,s,o,a,u,h=1;do{for(e=t,t=null,s=null,o=0;e;){for(o++,r=e,a=0,n=0;n<h&&(a++,r=r.nextZ);n++);for(u=h;a>0||u>0&&r;)0!==a&&(0===u||!r||e.z<=r.z)?(i=e,e=e.nextZ,a--):(i=r,r=r.nextZ,u--),s?s.nextZ=i:t=i,i.prevZ=s,s=i;e=r}s.nextZ=null,h*=2}while(o>1)}(i)}(t,r,i,s);for(var a,u,h=t;t.prev!==t.next;)if(a=t.prev,u=t.next,s?we(t,r,i,s):be(t))n.push(a.i/e|0),n.push(t.i/e|0),n.push(u.i/e|0),Ue(t),t=u.next,h=u.next;else if((t=u)===h){o?1===o?ve(t=Me(ge(t),n,e),n,e,r,i,s,2):2===o&&xe(t,n,e,r,i,s):ve(ge(t),n,e,r,i,s,1);break}}}function be(t){var n=t.prev,e=t,r=t.next;if(Ee(n,e,r)>=0)return!1;for(var i=n.x,s=e.x,o=r.x,a=n.y,u=e.y,h=r.y,l=i<s?i<o?i:o:s<o?s:o,c=a<u?a<h?a:h:u<h?u:h,f=i>s?i>o?i:o:s>o?s:o,d=a>u?a>h?a:h:u>h?u:h,p=r.next;p!==n;){if(p.x>=l&&p.x<=f&&p.y>=c&&p.y<=d&&_e(i,a,s,u,o,h,p.x,p.y)&&Ee(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function we(t,n,e,r){var i=t.prev,s=t,o=t.next;if(Ee(i,s,o)>=0)return!1;for(var a=i.x,u=s.x,h=o.x,l=i.y,c=s.y,f=o.y,d=a<u?a<h?a:h:u<h?u:h,p=l<c?l<f?l:f:c<f?c:f,y=a>u?a>h?a:h:u>h?u:h,m=l>c?l>f?l:f:c>f?c:f,g=Pe(d,p,n,e,r),v=Pe(y,m,n,e,r),b=t.prevZ,w=t.nextZ;b&&b.z>=g&&w&&w.z<=v;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&_e(a,l,u,c,h,f,b.x,b.y)&&Ee(b.prev,b,b.next)>=0)return!1;if(b=b.prevZ,w.x>=d&&w.x<=y&&w.y>=p&&w.y<=m&&w!==i&&w!==o&&_e(a,l,u,c,h,f,w.x,w.y)&&Ee(w.prev,w,w.next)>=0)return!1;w=w.nextZ}for(;b&&b.z>=g;){if(b.x>=d&&b.x<=y&&b.y>=p&&b.y<=m&&b!==i&&b!==o&&_e(a,l,u,c,h,f,b.x,b.y)&&Ee(b.prev,b,b.next)>=0)return!1;b=b.prevZ}for(;w&&w.z<=v;){if(w.x>=d&&w.x<=y&&w.y>=p&&w.y<=m&&w!==i&&w!==o&&_e(a,l,u,c,h,f,w.x,w.y)&&Ee(w.prev,w,w.next)>=0)return!1;w=w.nextZ}return!0}function Me(t,n,e){var r=t;do{var i=r.prev,s=r.next.next;!Ie(i,s)&&$e(i,r,r.next,s)&&Te(i,s)&&Te(s,i)&&(n.push(i.i/e|0),n.push(r.i/e|0),n.push(s.i/e|0),Ue(r),Ue(r.next),r=t=s),r=r.next}while(r!==t);return ge(r)}function xe(t,n,e,r,i,s){var o=t;do{for(var a=o.next.next;a!==o.prev;){if(o.i!==a.i&&Oe(o,a)){var u=De(o,a);return o=ge(o,o.next),u=ge(u,u.next),ve(o,n,e,r,i,s,0),void ve(u,n,e,r,i,s,0)}a=a.next}o=o.next}while(o!==t)}function Fe(t,n){return t.x-n.x}function ke(t,n){var e=function(t,n){var e,r=n,i=t.x,s=t.y,o=-1/0;do{if(s<=r.y&&s>=r.next.y&&r.next.y!==r.y){var a=r.x+(s-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(a<=i&&a>o&&(o=a,e=r.x<r.next.x?r:r.next,a===i))return e}r=r.next}while(r!==n);if(!e)return null;var u,h=e,l=e.x,c=e.y,f=1/0;r=e;do{i>=r.x&&r.x>=l&&i!==r.x&&_e(s<c?i:o,s,l,c,s<c?o:i,s,r.x,r.y)&&(u=Math.abs(s-r.y)/(i-r.x),Te(r,t)&&(u<f||u===f&&(r.x>e.x||r.x===e.x&&Ae(e,r)))&&(e=r,f=u)),r=r.next}while(r!==h);return e}(t,n);if(!e)return n;var r=De(e,t);return ge(r,r.next),ge(e,e.next)}function Ae(t,n){return Ee(t.prev,t,n.prev)<0&&Ee(n.next,t,t.next)<0}function Pe(t,n,e,r,i){return(t=1431655765&((t=858993459&((t=252645135&((t=16711935&((t=(t-e)*i|0)|t<<8))|t<<4))|t<<2))|t<<1))|(n=1431655765&((n=858993459&((n=252645135&((n=16711935&((n=(n-r)*i|0)|n<<8))|n<<4))|n<<2))|n<<1))<<1}function Se(t){var n=t,e=t;do{(n.x<e.x||n.x===e.x&&n.y<e.y)&&(e=n),n=n.next}while(n!==t);return e}function _e(t,n,e,r,i,s,o,a){return(i-o)*(n-a)>=(t-o)*(s-a)&&(t-o)*(r-a)>=(e-o)*(n-a)&&(e-o)*(s-a)>=(i-o)*(r-a)}function Oe(t,n){return t.next.i!==n.i&&t.prev.i!==n.i&&!function(t,n){var e=t;do{if(e.i!==t.i&&e.next.i!==t.i&&e.i!==n.i&&e.next.i!==n.i&&$e(e,e.next,t,n))return!0;e=e.next}while(e!==t);return!1}(t,n)&&(Te(t,n)&&Te(n,t)&&function(t,n){var e=t,r=!1,i=(t.x+n.x)/2,s=(t.y+n.y)/2;do{e.y>s!=e.next.y>s&&e.next.y!==e.y&&i<(e.next.x-e.x)*(s-e.y)/(e.next.y-e.y)+e.x&&(r=!r),e=e.next}while(e!==t);return r}(t,n)&&(Ee(t.prev,t,n.prev)||Ee(t,n.prev,n))||Ie(t,n)&&Ee(t.prev,t,t.next)>0&&Ee(n.prev,n,n.next)>0)}function Ee(t,n,e){return(n.y-t.y)*(e.x-n.x)-(n.x-t.x)*(e.y-n.y)}function Ie(t,n){return t.x===n.x&&t.y===n.y}function $e(t,n,e,r){var i=Ce(Ee(t,n,e)),s=Ce(Ee(t,n,r)),o=Ce(Ee(e,r,t)),a=Ce(Ee(e,r,n));return i!==s&&o!==a||(!(0!==i||!ze(t,e,n))||(!(0!==s||!ze(t,r,n))||(!(0!==o||!ze(e,t,r))||!(0!==a||!ze(e,n,r)))))}function ze(t,n,e){return n.x<=Math.max(t.x,e.x)&&n.x>=Math.min(t.x,e.x)&&n.y<=Math.max(t.y,e.y)&&n.y>=Math.min(t.y,e.y)}function Ce(t){return t>0?1:t<0?-1:0}function Te(t,n){return Ee(t.prev,t,t.next)<0?Ee(t,n,t.next)>=0&&Ee(t,t.prev,n)>=0:Ee(t,n,t.prev)<0||Ee(t,t.next,n)<0}function De(t,n){var e=new Ne(t.i,t.x,t.y),r=new Ne(n.i,n.x,n.y),i=t.next,s=n.prev;return t.next=n,n.prev=t,e.next=i,i.prev=e,r.next=e,e.prev=r,s.next=r,r.prev=s,r}function je(t,n,e,r){var i=new Ne(t,n,e);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function Ue(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function Ne(t,n,e){this.i=t,this.x=n,this.y=e,this.prev=null,this.next=null,this.z=0,this.prevZ=null,this.nextZ=null,this.steiner=!1}function Le(t,n,e,r){for(var i=0,s=n,o=e-r;s<e;s+=r)i+=(t[o]-t[s])*(t[s+1]+t[o+1]),o=s;return i}pe.exports=ye,pe.exports.default=ye,ye.deviation=function(t,n,e,r){var i=n&&n.length,s=i?n[0]*e:t.length,o=Math.abs(Le(t,0,s,e));if(i)for(var a=0,u=n.length;a<u;a++){var h=n[a]*e,l=a<u-1?n[a+1]*e:t.length;o-=Math.abs(Le(t,h,l,e))}var c=0;for(a=0;a<r.length;a+=3){var f=r[a]*e,d=r[a+1]*e,p=r[a+2]*e;c+=Math.abs((t[f]-t[p])*(t[d+1]-t[f+1])-(t[f]-t[d])*(t[p+1]-t[f+1]))}return 0===o&&0===c?0:Math.abs((c-o)/o)},ye.flatten=function(t){for(var n=t[0][0].length,e={vertices:[],holes:[],dimensions:n},r=0,i=0;i<t.length;i++){for(var s=0;s<t[i].length;s++)for(var o=0;o<n;o++)e.vertices.push(t[i][s][o]);i>0&&(r+=t[i-1].length,e.holes.push(r))}return e};var Ve=pe.exports;\n/*!\n * @maptalks/vector-packer v0.89.0\n * LICENSE : UNLICENSED\n * (c) 2016-2023 maptalks.com\n */const Re={Point:1,LineString:2,Polygon:3,MultiPoint:4,MultiLineString:5,MultiPolygon:6};function He(t,n={}){var e=[];if("FeatureCollection"===t.type)for(var r=0;r<t.features.length;r++)We(e,t.features[r],n,r);else We(e,"Feature"===t.type?t:{geometry:t},n);return e}function We(t,n,e,r){if(n.geometry&&n.geometry.geometry){var i=n.geometry.coordinates,s=n.geometry.type,o=[],a=n.id;if(e.promoteId?a=n.properties[e.promoteId]:e.generateId&&(a=r||0),"Point"===s)qe(i,o);else if("MultiPoint"===s)for(var u=0;u<i.length;u++)qe(i[u],o);else if("LineString"===s)Be([i],o);else if("MultiLineString"===s){if(e.lineMetrics){for(u=0;u<i.length;u++)Ge(i[u],o=[]),t.push(Je(a,"LineString",o,n.properties));return}Be(i,o)}else if("Polygon"===s)Be(i,o);else{if("MultiPolygon"!==s){if("GeometryCollection"===s){for(u=0;u<n.geometry.geometries.length;u++)We(t,{id:a,geometry:n.geometry.geometries[u],properties:n.properties},e,r);return}return void console.warn(`Input data type(${s}) is not a valid GeoJSON geometry type.`)}for(u=0;u<i.length;u++){var h=[];Be(i[u],h),o.push(h)}}t.push(Je(a,s,o,n.properties))}}function qe(t,n){const e=new Ut(t[0],t[1]);e.z=100*(t[2]||0),n.push([e])}function Ge(t,n){for(let e=0;e<t.length;e++){const r=new Ut(t[e][0],t[e][1]);r.z=100*(t[e][2]||0),n.push(r)}}function Be(t,n,e,r){for(var i=0;i<t.length;i++){var s=[];Ge(t[i],s),n.push(s)}}function Je(t,n,e,r){return{id:void 0===t?null:t,type:Re[n],geometry:e,properties:r}}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */function Xe(t,{width:n,height:e},r,i){if(i){if(i.length!==n*e*r)throw new RangeError("mismatched image size")}else i=new Uint8Array(n*e*r);return t.width=n,t.height=e,t.data=i,t}function Ye(t,{width:n,height:e},r){if(n===t.width&&e===t.height)return;const i=Xe({},{width:n,height:e},r);Ze(t,i,{x:0,y:0},{x:0,y:0},{width:Math.min(t.width,n),height:Math.min(t.height,e)},r),t.width=n,t.height=e,t.data=i.data}function Ze(t,n,e,r,i,s){if(0===i.width||0===i.height)return n;if(i.width>t.width||i.height>t.height||e.x>t.width-i.width||e.y>t.height-i.height)throw new RangeError("out of range source coordinates for image copy");if(i.width>n.width||i.height>n.height||r.x>n.width-i.width||r.y>n.height-i.height)throw new RangeError("out of range destination coordinates for image copy");const o=t.data,a=n.data;if(o===a)return n;for(let u=0;u<i.height;u++){const h=((e.y+u)*t.width+e.x)*s,l=((r.y+u)*n.width+r.x)*s;for(let t=0;t<i.width*s;t++)a[l+t]=o[h+t]}return n}class Ke{constructor(t,n){Xe(this,t,1,n)}resize(t){Ye(this,t,1)}clone(){return new Ke({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Ze(t,n,e,r,i,1)}}class Qe{constructor(t,n){Xe(this,t,4,n)}resize(t){Ye(this,t,4)}clone(){return new Qe({width:this.width,height:this.height},new Uint8Array(this.data))}static copy(t,n,e,r,i){Ze(t,n,e,r,i,4)}}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n */class tr{constructor(t,n,{pixelRatio:e}){this.paddedRect=t,this.pixelRatio=e||1,this.padding=n}get tl(){return[this.paddedRect.x+this.padding,this.paddedRect.y+this.padding]}get br(){return[this.paddedRect.x+this.paddedRect.w-this.padding,this.paddedRect.y+this.paddedRect.h-this.padding]}get displaySize(){return[(this.paddedRect.w-2*this.padding)/this.pixelRatio,(this.paddedRect.h-2*this.padding)/this.pixelRatio]}}class nr{constructor(t){this.glyphMap=t,this.build()}build(){const t=this.glyphMap,n=Object.keys(t).length,e={},r=new Lt(0,0,{autoResize:!0}),i=[],s=n>1?1:0;for(const n in t){const r=t[n],o={x:0,y:0,w:r.data.width+2*s,h:r.data.height+2*s};i.push(o),e[n]=new tr(o,s,r)}if(r.pack(i,{inPlace:!0}),!er(r.w)||!er(r.h)){const t=rr(r.w),n=rr(r.h);r.resize(t,n)}const o=new Qe({width:r.w,height:r.h});for(const n in t){const r=t[n],i=e[n].paddedRect;Qe.copy(r.data,o,{x:0,y:0},{x:i.x+s,y:i.y+s},r.data)}this.image=o,this.positions=e}}function er(t){return 0==(t&t-1)&&0!==t}function rr(t){return Math.pow(2,Math.ceil(Math.log(t)/Math.LN2))}\n/*!\n * Codes from mapbox-gl-js\n * github.com/mapbox/mapbox-gl-js\n * MIT License\n * TODO 升级为potpack\n */class ir{constructor(t){this.glyphMap=t,this.build()}build(){const t=this.glyphMap,n={},e=new Lt(0,0,{autoResize:!0}),r=[];for(const e in t){const i=t[e],s=n[e]={};for(const t in i){const n=i[+t];if(!n||0===n.bitmap.width||0===n.bitmap.height)continue;const e={x:0,y:0,w:n.bitmap.width+2,h:n.bitmap.height+2};r.push(e),s[t]={rect:e,metrics:n.metrics}}}e.pack(r,{inPlace:!0});const i=new Ke({width:e.w,height:e.h});for(const e in t){const r=t[e];for(const t in r){const s=r[+t];if(!s||0===s.bitmap.width||0===s.bitmap.height)continue;const o=n[e][t].rect;Ke.copy(s.bitmap,i,{x:0,y:0},{x:o.x+1,y:o.y+1},s.bitmap)}}this.image=i,this.positions=n}}function sr(t){return t<65536?Uint16Array:Uint32Array}function or(t){return(t=Math.abs(t))<128?Int8Array:t<32768?Int16Array:Float32Array}function ar(t){return t<256?Uint8Array:t<65536?Uint16Array:t<Math.pow(2,32)?Uint32Array:Float64Array}function ur(t,n){const e=new n(t.length),r=e.length;for(let n=0;n<r;n++)e[n]=t[n];return e}function hr(t){const n=t.type,e=[];if(1===n||4===n)for(let n=0;n<t.geometry.length;n++)qe(t.geometry[n],e);else if(2===n)Be(t.geometry,e);else if(3===n)Be(t.geometry,e);else if(5===n)Be(t.geometry,e);else if(6===n)for(let n=0;n<t.geometry.length;n++){const r=[];Be(t.geometry[n],r),e.push(r)}return t.geometry=e,t}function lr(t){for(let n=1;n<arguments.length;n++){const e=arguments[n];for(const n in e)t[n]=e[n]}return t}function cr(t){return null==t}function fr(t){return"number"==typeof t&&!isNaN(t)}function dr(t){return"object"==typeof t&&!!t}function pr(t){return!cr(t)&&("string"==typeof t||null!==t.constructor&&t.constructor===String)}function yr(t){return!cr(t)&&("function"==typeof t||null!==t.constructor&&t.constructor===Function)}const mr=Object.prototype.hasOwnProperty;function gr(t,n){return mr.call(t,n)}const vr=Math.PI/180;function br(t){return t&&d(t)&&t.property}function wr(t){const{centimeterToPoint:n,tileRatio:e}=t;return n*e}function Mr(t){return"centimeter"===t||"cm"===t?1:"millimeter"===t||"mm"===t?.1:100}const xr={};function Fr(t,n){if(!Array.isArray(n)){if(n&&void 0!==n.r&&void 0!==n.g&&void 0!==n.b)return t[0]=255*n.r,t[1]=255*n.g,t[2]=255*n.b,t[3]=void 0!==n.a?255*n.a:255,t;n=xr[n]=xr[n]||zn(n).unitArray()}for(let e=0;e<n.length;e++)t[e]=255*n[e];return 3===n.length&&(t[3]=255),t}const kr={textFill:1,textSize:1,textOpacity:1,markerWidth:1,markerHeight:1,markerOpacity:1,markerDx:1,markerDy:1,lineWidth:1,lineColor:1,lineOpacity:1,polygonFill:1,polygonOpacity:1},Ar={textName:1,markerTextFitPadding:1,markerTextFit:1,lineGradientProperty:1};var Pr=Object.freeze({__proto__:null,now:function(){return Date.now()},extend:lr,isNil:cr,isNumber:fr,isInteger:function(t){return(0|t)===t},isObject:dr,isString:pr,isFunction:yr,hasOwn:gr,join:function(t,n){return t.join?t.join(n||","):Array.prototype.join.call(t,n||",")},toRadian:function(t){return t*vr},toDegree:function(t){return t/vr},evaluate:function(t,n,e){return yr(t)?t(void 0!==e?e:null,n):t},isFnTypeSymbol:br,getAltitudeToLocal:wr,getTubeSizeScale:Mr,normalizeColor:Fr,checkIfIdentityZoomDependent:function(t,n,e){if(Array.isArray(e)||(e=Object.values(e)),!e||!e.length)return!1;if(!kr[t])return!1;for(let t=0;t<e.length;t++){const r=e[t]&&(e[t].feature||e[t]);if(!r)continue;const i=r.properties&&r.properties[n];if(i&&d(i)&&!p(i).isZoomConstant)return!0}return!1},checkIfZoomFnTypeSymbol:function(t){return!!kr[t]||!!Ar[t]}});function Sr(t){let n=0;for(let e,r,i=0,s=t.length,o=s-1;i<s;o=i++)if(e=t[i],r=t[o],void 0!==e.x){if(e.z||r.z)return 1;n+=(r.x-e.x)*(e.y+r.y)}else{if(e[2]||r[2])return 1;n+=(r[0]-e[0])*(e[1]+r[1])}return n}function _r(t,n,e,r,i){const s=t[n*r],o=t[n*r+1],a=t[e*r],u=t[e*r+1];return s===a&&(s<0||s>i)&&o!==u||o===u&&(o<0||o>i)&&s!==a}function Or(t,n,e){let r=e;return n&&t&&(r=+t[n]),isNaN(r)&&(r=e||0),100*r}function Er(t,n,e,r,i,s,o){n||0===n||(n=1);const a=Or(t.properties,e,r),u=a*n;let h=(s?100*s:0)||a;return i?h=Or(t.properties,i,s):o&&(h=a-Or(t.properties,o,s)),h*=n,{altitude:u,height:h}}function Ir(t,n){return n<1/0&&(t.x<0||t.x>n||t.y<0||t.y>n)}function $r(t){return null==t}function zr(t,n,e){if(t===e||t===n)return t;const r=e-n;return((t-n)%r+r)%r+n}function Cr(t,n){if(!n)return null;const e=new Map;for(let r=0;r<n.length;r++){const i=n[r],s=t[i];let o=e.get(s);o||(o=[],e.set(s,o)),o.push(i)}return e}class Tr{constructor(t,n,e,r){this.feature=t,this.symbol=n,this.fnTypes=e,this.options=r}getPolygonResource(){let t=this.symbol.polygonPatternFile;const{polygonPatternFileFn:n}=this.fnTypes;return this.U(t,n)}getLineResource(){let t=this.symbol.linePatternFile;const{linePatternFileFn:n}=this.fnTypes;return this.U(t,n)}U(t,n){return n&&(t=n(this.options.zoom,this.feature.properties)),t}}function Dr(t,n,e,r){const i=Math.abs(r)>>15,s=i>>1,o=i%2;let a=r%Math.pow(2,15);const u=n+(s<<14)*Math.sign(n),h=e+(o<<14)*Math.sign(e);return t[0]=u,t[1]=h,a=Math.round(a),t[2]=0===a?r<0?-1:0:a,t}const jr=Math.pow(2,14),Ur=Math.pow(2,15);\n/*!\n * a compact version of mapbox-gl-style-spec\n * based on mapbox-gl-style-spec@13.28.0\n * https://github.com/mapbox/mapbox-gl-js/tree/main/src/style-spec\n * LICENSE : ISC\n */var Nr,Lr,Vr="undefined"!=typeof undefinedThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof undefined?global:"undefined"!=typeof self?self:{},Rr={exports:{}};function Hr(t,...n){for(const e of n)for(const n in e)t[n]=e[n];return t}\n/*! https://mths.be/punycode v1.3.2 by @mathias */Nr=Rr,Lr=Rr.exports,function(t){var n=Lr&&!Lr.nodeType&&Lr,e=Nr&&!Nr.nodeType&&Nr,r="object"==typeof Vr&&Vr;r.global!==r&&r.window!==r&&r.self!==r||(t=r);var i,s,o=2147483647,a=/^xn--/,u=/[^\\x20-\\x7E]/,h=/[\\x2E\\u3002\\uFF0E\\uFF61]/g,l={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},c=Math.floor,f=String.fromCharCode;function d(t){throw RangeError(l[t])}function p(t,n){for(var e=t.length,r=[];e--;)r[e]=n(t[e]);return r}function y(t,n){var e=t.split("@"),r="";return e.length>1&&(r=e[0]+"@",t=e[1]),r+p((t=t.replace(h,".")).split("."),n).join(".")}function m(t){for(var n,e,r=[],i=0,s=t.length;i<s;)(n=t.charCodeAt(i++))>=55296&&n<=56319&&i<s?56320==(64512&(e=t.charCodeAt(i++)))?r.push(((1023&n)<<10)+(1023&e)+65536):(r.push(n),i--):r.push(n);return r}function g(t){return p(t,(function(t){var n="";return t>65535&&(n+=f((t-=65536)>>>10&1023|55296),t=56320|1023&t),n+f(t)})).join("")}function v(t,n){return t+22+75*(t<26)-((0!=n)<<5)}function b(t,n,e){var r=0;for(t=e?c(t/700):t>>1,t+=c(t/n);t>455;r+=36)t=c(t/35);return c(r+36*t/(t+38))}function w(t){var n,e,r,i,s,a,u,h,l,f,p,y=[],m=t.length,v=0,w=128,M=72;for((e=t.lastIndexOf("-"))<0&&(e=0),r=0;r<e;++r)t.charCodeAt(r)>=128&&d("not-basic"),y.push(t.charCodeAt(r));for(i=e>0?e+1:0;i<m;){for(s=v,a=1,u=36;i>=m&&d("invalid-input"),((h=(p=t.charCodeAt(i++))-48<10?p-22:p-65<26?p-65:p-97<26?p-97:36)>=36||h>c((o-v)/a))&&d("overflow"),v+=h*a,!(h<(l=u<=M?1:u>=M+26?26:u-M));u+=36)a>c(o/(f=36-l))&&d("overflow"),a*=f;M=b(v-s,n=y.length+1,0==s),c(v/n)>o-w&&d("overflow"),w+=c(v/n),v%=n,y.splice(v++,0,w)}return g(y)}function M(t){var n,e,r,i,s,a,u,h,l,p,y,g,w,M,x,F=[];for(g=(t=m(t)).length,n=128,e=0,s=72,a=0;a<g;++a)(y=t[a])<128&&F.push(f(y));for(r=i=F.length,i&&F.push("-");r<g;){for(u=o,a=0;a<g;++a)(y=t[a])>=n&&y<u&&(u=y);for(u-n>c((o-e)/(w=r+1))&&d("overflow"),e+=(u-n)*w,n=u,a=0;a<g;++a)if((y=t[a])<n&&++e>o&&d("overflow"),y==n){for(h=e,l=36;!(h<(p=l<=s?1:l>=s+26?26:l-s));l+=36)F.push(f(v(p+(x=h-p)%(M=36-p),0))),h=c(x/M);F.push(f(v(h,0))),s=b(e,w,r==i),e=0,++r}++e,++n}return F.join("")}if(i={version:"1.3.2",ucs2:{decode:m,encode:g},decode:w,encode:M,toASCII:function(t){return y(t,(function(t){return u.test(t)?"xn--"+M(t):t}))},toUnicode:function(t){return y(t,(function(t){return a.test(t)?w(t.slice(4).toLowerCase()):t}))}},n&&e)if(Nr.exports==n)e.exports=i;else for(s in i)i.hasOwnProperty(s)&&(n[s]=i[s]);else t.punycode=i}(Vr);class Wr extends Error{constructor(t,n){super(n),this.message=n,this.key=t}}var qr=Wr;class Gr{constructor(t,n=[]){this.parent=t,this.bindings={};for(const[t,e]of n)this.bindings[t]=e}concat(t){return new Gr(this,t)}get(t){if(this.bindings[t])return this.bindings[t];if(this.parent)return this.parent.get(t);throw new Error(t+" not found in scope.")}has(t){return!!this.bindings[t]||!!this.parent&&this.parent.has(t)}}var Br=Gr;const Jr={kind:"null"},Xr={kind:"number"},Yr={kind:"string"},Zr={kind:"boolean"},Kr={kind:"color"},Qr={kind:"object"},ti={kind:"value"},ni={kind:"collator"},ei={kind:"formatted"},ri={kind:"resolvedImage"};function ii(t,n){return{kind:"array",itemType:t,N:n}}function si(t){if("array"===t.kind){const n=si(t.itemType);return"number"==typeof t.N?`array<${n}, ${t.N}>`:"value"===t.itemType.kind?"array":`array<${n}>`}return t.kind}const oi=[Jr,Xr,Yr,Zr,Kr,ei,Qr,ii(ti),ri];function ai(t,n){if("error"===n.kind)return null;if("array"===t.kind){if("array"===n.kind&&(0===n.N&&"value"===n.itemType.kind||!ai(t.itemType,n.itemType))&&("number"!=typeof t.N||t.N===n.N))return null}else{if(t.kind===n.kind)return null;if("value"===t.kind)for(const t of oi)if(!ai(t,n))return null}return`Expected ${si(t)} but found ${si(n)} instead.`}function ui(t,n){return n.some(n=>n.kind===t.kind)}function hi(t,n){return n.some(n=>"null"===n?null===t:"array"===n?Array.isArray(t):"object"===n?t&&!Array.isArray(t)&&"object"==typeof t:n===typeof t)}var li,ci={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 fi(t){return(t=Math.round(t))<0?0:t>255?255:t}function di(t){return fi("%"===t[t.length-1]?parseFloat(t)/100*255:parseInt(t))}function pi(t){return function(t){return t<0?0:t>1?1:t}("%"===t[t.length-1]?parseFloat(t)/100:parseFloat(t))}function yi(t,n,e){return e<0?e+=1:e>1&&(e-=1),6*e<1?t+(n-t)*e*6:2*e<1?n:3*e<2?t+(n-t)*(2/3-e)*6:t}try{li={}.parseCSSColor=function(t){var n,e=t.replace(/ /g,"").toLowerCase();if(e in ci)return ci[e].slice();if("#"===e[0])return 4===e.length?(n=parseInt(e.substr(1),16))>=0&&n<=4095?[(3840&n)>>4|(3840&n)>>8,240&n|(240&n)>>4,15&n|(15&n)<<4,1]:null:7===e.length&&(n=parseInt(e.substr(1),16))>=0&&n<=16777215?[(16711680&n)>>16,(65280&n)>>8,255&n,1]:null;var r=e.indexOf("("),i=e.indexOf(")");if(-1!==r&&i+1===e.length){var s=e.substr(0,r),o=e.substr(r+1,i-(r+1)).split(","),a=1;switch(s){case"rgba":if(4!==o.length)return null;a=pi(o.pop());case"rgb":return 3!==o.length?null:[di(o[0]),di(o[1]),di(o[2]),a];case"hsla":if(4!==o.length)return null;a=pi(o.pop());case"hsl":if(3!==o.length)return null;var u=(parseFloat(o[0])%360+360)%360/360,h=pi(o[1]),l=pi(o[2]),c=l<=.5?l*(h+1):l+h-l*h,f=2*l-c;return[fi(255*yi(f,c,u+1/3)),fi(255*yi(f,c,u)),fi(255*yi(f,c,u-1/3)),a];default:return null}}return null}}catch(t){}class mi{constructor(t,n,e,r=1){this.r=t,this.g=n,this.b=e,this.a=r}static parse(t){if(!t)return;if(t instanceof mi)return t;if("string"!=typeof t)return;const n=li(t);return n?new mi(n[0]/255*n[3],n[1]/255*n[3],n[2]/255*n[3],n[3]):void 0}toString(){const[t,n,e,r]=this.toArray();return`rgba(${Math.round(t)},${Math.round(n)},${Math.round(e)},${r})`}toArray(){const{r:t,g:n,b:e,a:r}=this;return 0===r?[0,0,0,0]:[255*t/r,255*n/r,255*e/r,r]}toArray01(){const{r:t,g:n,b:e,a:r}=this;return 0===r?[0,0,0,0]:[t/r,n/r,e/r,r]}toArray01PremultipliedAlpha(){const{r:t,g:n,b:e,a:r}=this;return[t,n,e,r]}}mi.black=new mi(0,0,0,1),mi.white=new mi(1,1,1,1),mi.transparent=new mi(0,0,0,0),mi.red=new mi(1,0,0,1),mi.blue=new mi(0,0,1,1);var gi=mi;class vi{constructor(t,n,e){this.sensitivity=t?n?"variant":"case":n?"accent":"base",this.locale=e,this.collator=new Intl.Collator(this.locale?this.locale:[],{sensitivity:this.sensitivity,usage:"search"})}compare(t,n){return this.collator.compare(t,n)}resolvedLocale(){return new Intl.Collator(this.locale?this.locale:[]).resolvedOptions().locale}}class bi{constructor(t,n,e,r,i){this.text=t.normalize?t.normalize():t,this.image=n,this.scale=e,this.fontStack=r,this.textColor=i}}class wi{constructor(t){this.sections=t}static fromString(t){return new wi([new bi(t,null,null,null,null)])}isEmpty(){return 0===this.sections.length||!this.sections.some(t=>0!==t.text.length||t.image&&0!==t.image.name.length)}static factory(t){return t instanceof wi?t:wi.fromString(t)}toString(){return 0===this.sections.length?"":this.sections.map(t=>t.text).join("")}serialize(){const t=["format"];for(const n of this.sections){if(n.image){t.push(["image",n.image.name]);continue}t.push(n.text);const e={};n.fontStack&&(e["text-font"]=["literal",n.fontStack.split(",")]),n.scale&&(e["font-scale"]=n.scale),n.textColor&&(e["text-color"]=["rgba"].concat(n.textColor.toArray())),t.push(e)}return t}}class Mi{constructor(t){this.name=t.name,this.available=t.available}toString(){return this.name}static fromString(t){return t?new Mi({name:t,available:!1}):null}serialize(){return["image",this.name]}}function xi(t,n,e,r){return"number"==typeof t&&t>=0&&t<=255&&"number"==typeof n&&n>=0&&n<=255&&"number"==typeof e&&e>=0&&e<=255?void 0===r||"number"==typeof r&&r>=0&&r<=1?null:`Invalid rgba value [${[t,n,e,r].join(", ")}]: \'a\' must be between 0 and 1.`:`Invalid rgba value [${("number"==typeof r?[t,n,e,r]:[t,n,e]).join(", ")}]: \'r\', \'g\', and \'b\' must be between 0 and 255.`}function Fi(t){if(null===t)return!0;if("string"==typeof t)return!0;if("boolean"==typeof t)return!0;if("number"==typeof t)return!0;if(t instanceof gi)return!0;if(t instanceof vi)return!0;if(t instanceof wi)return!0;if(t instanceof Mi)return!0;if(Array.isArray(t)){for(const n of t)if(!Fi(n))return!1;return!0}if("object"==typeof t){for(const n in t)if(!Fi(t[n]))return!1;return!0}return!1}function ki(t){if(null===t)return Jr;if("string"==typeof t)return Yr;if("boolean"==typeof t)return Zr;if("number"==typeof t)return Xr;if(t instanceof gi)return Kr;if(t instanceof vi)return ni;if(t instanceof wi)return ei;if(t instanceof Mi)return ri;if(Array.isArray(t)){const n=t.length;let e;for(const n of t){const t=ki(n);if(e){if(e===t)continue;e=ti;break}e=t}return ii(e||ti,n)}return Qr}function Ai(t){const n=typeof t;return null===t?"":"string"===n||"number"===n||"boolean"===n?String(t):t instanceof gi||t instanceof wi||t instanceof Mi?t.toString():JSON.stringify(t)}class Pi{constructor(t,n){this.type=t,this.value=n}static parse(t,n){if(2!==t.length)return n.error(`\'literal\' expression requires exactly one argument, but found ${t.length-1} instead.`);if(!Fi(t[1]))return n.error("invalid value");const e=t[1];let r=ki(e);const i=n.expectedType;return"array"!==r.kind||0!==r.N||!i||"array"!==i.kind||"number"==typeof i.N&&0!==i.N||(r=i),new Pi(r,e)}evaluate(){return this.value}eachChild(){}outputDefined(){return!0}serialize(){return"array"===this.type.kind||"object"===this.type.kind?["literal",this.value]:this.value instanceof gi?["rgba"].concat(this.value.toArray()):this.value instanceof wi?this.value.serialize():this.value}}var Si=Pi,_i=class{constructor(t){this.name="ExpressionEvaluationError",this.message=t}toJSON(){return this.message}};const Oi={string:Yr,number:Xr,boolean:Zr,object:Qr};class Ei{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");let e,r=1;const i=t[0];if("array"===i){let i,s;if(t.length>2){const e=t[1];if("string"!=typeof e||!(e in Oi)||"object"===e)return n.error(\'The item type argument of "array" must be one of string, number, boolean\',1);i=Oi[e],r++}else i=ti;if(t.length>3){if(null!==t[2]&&("number"!=typeof t[2]||t[2]<0||t[2]!==Math.floor(t[2])))return n.error(\'The length argument to "array" must be a positive integer literal\',2);s=t[2],r++}e=ii(i,s)}else e=Oi[i];const s=[];for(;r<t.length;r++){const e=n.parse(t[r],r,ti);if(!e)return null;s.push(e)}return new Ei(e,s)}evaluate(t){for(let n=0;n<this.args.length;n++){const e=this.args[n].evaluate(t);if(!ai(this.type,ki(e)))return e;if(n===this.args.length-1)throw new _i(`Expected value to be of type ${si(this.type)}, but found ${si(ki(e))} instead.`)}return null}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){const t=this.type,n=[t.kind];if("array"===t.kind){const e=t.itemType;if("string"===e.kind||"number"===e.kind||"boolean"===e.kind){n.push(e.kind);const r=t.N;("number"==typeof r||this.args.length>1)&&n.push(r)}}return n.concat(this.args.map(t=>t.serialize()))}}var Ii=Ei;class $i{constructor(t){this.type=ei,this.sections=t}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");const e=t[1];if(!Array.isArray(e)&&"object"==typeof e)return n.error("First argument must be an image or text section.");const r=[];let i=!1;for(let e=1;e<=t.length-1;++e){const s=t[e];if(i&&"object"==typeof s&&!Array.isArray(s)){i=!1;let t=null;if(s["font-scale"]&&(t=n.parse(s["font-scale"],1,Xr),!t))return null;let e=null;if(s["text-font"]&&(e=n.parse(s["text-font"],1,ii(Yr)),!e))return null;let o=null;if(s["text-color"]&&(o=n.parse(s["text-color"],1,Kr),!o))return null;const a=r[r.length-1];a.scale=t,a.font=e,a.textColor=o}else{const s=n.parse(t[e],1,ti);if(!s)return null;const o=s.type.kind;if("string"!==o&&"value"!==o&&"null"!==o&&"resolvedImage"!==o)return n.error("Formatted text type must be \'string\', \'value\', \'image\' or \'null\'.");i=!0,r.push({content:s,scale:null,font:null,textColor:null})}}return new $i(r)}evaluate(t){return new wi(this.sections.map(n=>{const e=n.content.evaluate(t);return ki(e)===ri?new bi("",e,null,null,null):new bi(Ai(e),null,n.scale?n.scale.evaluate(t):null,n.font?n.font.evaluate(t).join(","):null,n.textColor?n.textColor.evaluate(t):null)}))}eachChild(t){for(const n of this.sections)t(n.content),n.scale&&t(n.scale),n.font&&t(n.font),n.textColor&&t(n.textColor)}outputDefined(){return!1}serialize(){const t=["format"];for(const n of this.sections){t.push(n.content.serialize());const e={};n.scale&&(e["font-scale"]=n.scale.serialize()),n.font&&(e["text-font"]=n.font.serialize()),n.textColor&&(e["text-color"]=n.textColor.serialize()),t.push(e)}return t}}class zi{constructor(t){this.type=ri,this.input=t}static parse(t,n){if(2!==t.length)return n.error("Expected two arguments.");const e=n.parse(t[1],1,Yr);return e?new zi(e):n.error("No image name provided.")}evaluate(t){const n=this.input.evaluate(t),e=Mi.fromString(n);return e&&t.availableImages&&(e.available=t.availableImages.indexOf(n)>-1),e}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){return["image",this.input.serialize()]}}const Ci={"to-boolean":Zr,"to-color":Kr,"to-number":Xr,"to-string":Yr};class Ti{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expected at least one argument.");const e=t[0];if(("to-boolean"===e||"to-string"===e)&&2!==t.length)return n.error("Expected one argument.");const r=Ci[e],i=[];for(let e=1;e<t.length;e++){const r=n.parse(t[e],e,ti);if(!r)return null;i.push(r)}return new Ti(r,i)}evaluate(t){if("boolean"===this.type.kind)return Boolean(this.args[0].evaluate(t));if("color"===this.type.kind){let n,e;for(const r of this.args){if(n=r.evaluate(t),e=null,n instanceof gi)return n;if("string"==typeof n){const e=t.parseColor(n);if(e)return e}else if(Array.isArray(n)&&(e=n.length<3||n.length>4?`Invalid rbga value ${JSON.stringify(n)}: expected an array containing either three or four numeric values.`:xi(n[0],n[1],n[2],n[3]),!e))return new gi(n[0]/255,n[1]/255,n[2]/255,n[3])}throw new _i(e||`Could not parse color from value \'${"string"==typeof n?n:String(JSON.stringify(n))}\'`)}if("number"===this.type.kind){let n=null;for(const e of this.args){if(n=e.evaluate(t),null===n)return 0;const r=Number(n);if(!isNaN(r))return r}throw new _i(`Could not convert ${JSON.stringify(n)} to number.`)}return"formatted"===this.type.kind?wi.fromString(Ai(this.args[0].evaluate(t))):"resolvedImage"===this.type.kind?Mi.fromString(Ai(this.args[0].evaluate(t))):Ai(this.args[0].evaluate(t))}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){if("formatted"===this.type.kind)return new $i([{content:this.args[0],scale:null,font:null,textColor:null}]).serialize();if("resolvedImage"===this.type.kind)return new zi(this.args[0]).serialize();const t=["to-"+this.type.kind];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Di=Ti;const ji=["Unknown","Point","LineString","Polygon"];var Ui=class{constructor(){this.globals=null,this.feature=null,this.featureState=null,this.formattedSection=null,this.L={},this.availableImages=null,this.canonical=null,this.featureTileCoord=null,this.featureDistanceData=null}id(){return this.feature&&void 0!==this.feature.id?this.feature.id:null}geometryType(){return this.feature?"number"==typeof this.feature.type?ji[this.feature.type]:this.feature.type:null}geometry(){return this.feature&&"geometry"in this.feature?this.feature.geometry:null}canonicalID(){return this.canonical}properties(){return this.feature&&this.feature.properties||{}}distanceFromCenter(){if(this.featureTileCoord&&this.featureDistanceData){const t=this.featureDistanceData.center,n=this.featureDistanceData.scale,{x:e,y:r}=this.featureTileCoord;return this.featureDistanceData.bearing[0]*(e*n-t[0])+this.featureDistanceData.bearing[1]*(r*n-t[1])}return 0}parseColor(t){let n=this.L[t];return n||(n=this.L[t]=gi.parse(t)),n}};class Ni{constructor(t,n,e,r){this.name=t,this.type=n,this.V=e,this.args=r}evaluate(t){return this.V(t,this.args)}eachChild(t){this.args.forEach(t)}outputDefined(){return!1}serialize(){return[this.name].concat(this.args.map(t=>t.serialize()))}static parse(t,n){const e=t[0],r=Ni.definitions[e];if(!r)return n.error(`Unknown expression "${e}". If you wanted a literal array, use ["literal", [...]].`,0);const i=Array.isArray(r)?r[0]:r.type,s=Array.isArray(r)?[[r[1],r[2]]]:r.overloads,o=s.filter(([n])=>!Array.isArray(n)||n.length===t.length-1);let a=null;for(const[r,s]of o){a=new cs(n.registry,n.path,null,n.scope);const o=[];let u=!1;for(let n=1;n<t.length;n++){const e=t[n],i=Array.isArray(r)?r[n-1]:r.type,s=a.parse(e,1+o.length,i);if(!s){u=!0;break}o.push(s)}if(!u)if(Array.isArray(r)&&r.length!==o.length)a.error(`Expected ${r.length} arguments, but found ${o.length} instead.`);else{for(let t=0;t<o.length;t++){const n=Array.isArray(r)?r[t]:r.type,e=o[t];a.concat(t+1).checkSubtype(n,e.type)}if(0===a.errors.length)return new Ni(e,i,s,o)}}if(1===o.length)n.errors.push(...a.errors);else{const e=(o.length?o:s).map(([t])=>{return n=t,Array.isArray(n)?`(${n.map(si).join(", ")})`:`(${si(n.type)}...)`;var n}).join(" | "),r=[];for(let e=1;e<t.length;e++){const i=n.parse(t[e],1+r.length);if(!i)return null;r.push(si(i.type))}n.error(`Expected arguments of type ${e}, but found (${r.join(", ")}) instead.`)}return null}static register(t,n){Ni.definitions=n;for(const e in n)t[e]=Ni}}var Li=Ni;class Vi{constructor(t,n,e){this.type=ni,this.locale=e,this.caseSensitive=t,this.diacriticSensitive=n}static parse(t,n){if(2!==t.length)return n.error("Expected one argument.");const e=t[1];if("object"!=typeof e||Array.isArray(e))return n.error("Collator options argument must be an object.");const r=n.parse(void 0!==e["case-sensitive"]&&e["case-sensitive"],1,Zr);if(!r)return null;const i=n.parse(void 0!==e["diacritic-sensitive"]&&e["diacritic-sensitive"],1,Zr);if(!i)return null;let s=null;return e.locale&&(s=n.parse(e.locale,1,Yr),!s)?null:new Vi(r,i,s)}evaluate(t){return new vi(this.caseSensitive.evaluate(t),this.diacriticSensitive.evaluate(t),this.locale?this.locale.evaluate(t):null)}eachChild(t){t(this.caseSensitive),t(this.diacriticSensitive),this.locale&&t(this.locale)}outputDefined(){return!1}serialize(){const t={};return t["case-sensitive"]=this.caseSensitive.serialize(),t["diacritic-sensitive"]=this.diacriticSensitive.serialize(),this.locale&&(t.locale=this.locale.serialize()),["collator",t]}}function Ri(t,n){t[0]=Math.min(t[0],n[0]),t[1]=Math.min(t[1],n[1]),t[2]=Math.max(t[2],n[0]),t[3]=Math.max(t[3],n[1])}function Hi(t,n){return!(t[0]<=n[0]||t[2]>=n[2]||t[1]<=n[1]||t[3]>=n[3])}function Wi(t,n){const e=(180+t[0])/360,r=(180-180/Math.PI*Math.log(Math.tan(Math.PI/4+t[1]*Math.PI/360)))/360,i=Math.pow(2,n.z);return[Math.round(e*i*8192),Math.round(r*i*8192)]}function qi(t,n,e){const r=t[0]-n[0],i=t[1]-n[1],s=t[0]-e[0],o=t[1]-e[1];return r*o-s*i==0&&r*s<=0&&i*o<=0}function Gi(t,n){let e=!1;for(let o=0,a=n.length;o<a;o++){const a=n[o];for(let n=0,o=a.length;n<o-1;n++){if(qi(t,a[n],a[n+1]))return!1;(i=a[n])[1]>(r=t)[1]!=(s=a[n+1])[1]>r[1]&&r[0]<(s[0]-i[0])*(r[1]-i[1])/(s[1]-i[1])+i[0]&&(e=!e)}}var r,i,s;return e}function Bi(t,n){for(let e=0;e<n.length;e++)if(Gi(t,n[e]))return!0;return!1}function Ji(t,n,e,r){const i=r[0]-e[0],s=r[1]-e[1],o=(t[0]-e[0])*s-i*(t[1]-e[1]),a=(n[0]-e[0])*s-i*(n[1]-e[1]);return o>0&&a<0||o<0&&a>0}function Xi(t,n,e){for(const h of e)for(let e=0;e<h.length-1;++e)if(void 0,void 0,0!=(a=[(o=h[e+1])[0]-(s=h[e])[0],o[1]-s[1]])[0]*(u=[(i=n)[0]-(r=t)[0],i[1]-r[1]])[1]-a[1]*u[0]&&Ji(r,i,s,o)&&Ji(s,o,r,i))return!0;var r,i,s,o,a,u;return!1}function Yi(t,n){for(let e=0;e<t.length;++e)if(!Gi(t[e],n))return!1;for(let e=0;e<t.length-1;++e)if(Xi(t[e],t[e+1],n))return!1;return!0}function Zi(t,n){for(let e=0;e<n.length;e++)if(Yi(t,n[e]))return!0;return!1}function Ki(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=[];for(let r=0;r<t[i].length;r++){const o=Wi(t[i][r],e);Ri(n,o),s.push(o)}r.push(s)}return r}function Qi(t,n,e){const r=[];for(let i=0;i<t.length;i++){const s=Ki(t[i],n,e);r.push(s)}return r}function ts(t,n,e,r){if(t[0]<e[0]||t[0]>e[2]){const n=.5*r;let i=t[0]-e[0]>n?-r:e[0]-t[0]>n?r:0;0===i&&(i=t[0]-e[2]>n?-r:e[2]-t[0]>n?r:0),t[0]+=i}Ri(n,t)}function ns(t,n,e,r){const i=8192*Math.pow(2,r.z),s=[8192*r.x,8192*r.y],o=[];if(!t)return o;for(const r of t)for(const t of r){const r=[t.x+s[0],t.y+s[1]];ts(r,n,e,i),o.push(r)}return o}function es(t,n,e,r){const i=8192*Math.pow(2,r.z),s=[8192*r.x,8192*r.y],o=[];if(!t)return o;for(const e of t){const t=[];for(const r of e){const e=[r.x+s[0],r.y+s[1]];Ri(n,e),t.push(e)}o.push(t)}if(n[2]-n[0]<=i/2){(a=n)[0]=a[1]=1/0,a[2]=a[3]=-1/0;for(const t of o)for(const r of t)ts(r,n,e,i)}var a;return o}class rs{constructor(t,n){this.type=Zr,this.geojson=t,this.geometries=n}static parse(t,n){if(2!==t.length)return n.error(`\'within\' expression requires exactly one argument, but found ${t.length-1} instead.`);if(Fi(t[1])){const n=t[1];if("FeatureCollection"===n.type)for(let t=0;t<n.features.length;++t){const e=n.features[t].geometry.type;if("Polygon"===e||"MultiPolygon"===e)return new rs(n,n.features[t].geometry)}else if("Feature"===n.type){const t=n.geometry.type;if("Polygon"===t||"MultiPolygon"===t)return new rs(n,n.geometry)}else if("Polygon"===n.type||"MultiPolygon"===n.type)return new rs(n,n)}return n.error("\'within\' expression requires valid geojson object that contains polygon geometry type.")}evaluate(t){if(null!=t.geometry()&&null!=t.canonicalID()){if("Point"===t.geometryType())return function(t,n){const e=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if(!i)return!1;if("Polygon"===n.type){const s=Ki(n.coordinates,r,i),o=ns(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Gi(t,s))return!1}if("MultiPolygon"===n.type){const s=Qi(n.coordinates,r,i),o=ns(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Bi(t,s))return!1}return!0}(t,this.geometries);if("LineString"===t.geometryType())return function(t,n){const e=[1/0,1/0,-1/0,-1/0],r=[1/0,1/0,-1/0,-1/0],i=t.canonicalID();if(!i)return!1;if("Polygon"===n.type){const s=Ki(n.coordinates,r,i),o=es(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Yi(t,s))return!1}if("MultiPolygon"===n.type){const s=Qi(n.coordinates,r,i),o=es(t.geometry(),e,r,i);if(!Hi(e,r))return!1;for(const t of o)if(!Zi(t,s))return!1}return!0}(t,this.geometries)}return!1}eachChild(){}outputDefined(){return!0}serialize(){return["within",this.geojson]}}var is=rs;function ss(t){if(t instanceof Li){if("get"===t.name&&1===t.args.length)return!1;if("feature-state"===t.name)return!1;if("has"===t.name&&1===t.args.length)return!1;if("properties"===t.name||"geometry-type"===t.name||"id"===t.name)return!1;if(/^filter-/.test(t.name))return!1}if(t instanceof is)return!1;let n=!0;return t.eachChild(t=>{n&&!ss(t)&&(n=!1)}),n}function os(t){if(t instanceof Li&&"feature-state"===t.name)return!1;let n=!0;return t.eachChild(t=>{n&&!os(t)&&(n=!1)}),n}function as(t,n){if(t instanceof Li&&n.indexOf(t.name)>=0)return!1;let e=!0;return t.eachChild(t=>{e&&!as(t,n)&&(e=!1)}),e}class us{constructor(t,n){this.type=n.type,this.name=t,this.boundExpression=n}static parse(t,n){if(2!==t.length||"string"!=typeof t[1])return n.error("\'var\' expression requires exactly one string literal argument.");const e=t[1];return n.scope.has(e)?new us(e,n.scope.get(e)):n.error(`Unknown variable "${e}". Make sure "${e}" has been bound in an enclosing "let" expression before using it.`,1)}evaluate(t){return this.boundExpression.evaluate(t)}eachChild(){}outputDefined(){return!1}serialize(){return["var",this.name]}}var hs=us;class ls{constructor(t,n=[],e,r=new Br,i=[]){this.registry=t,this.path=n,this.key=n.map(t=>`[${t}]`).join(""),this.scope=r,this.errors=i,this.expectedType=e}parse(t,n,e,r,i={}){return n?this.concat(n,e,r).R(t,i):this.R(t,i)}R(t,n){function e(t,n,e){return"assert"===e?new Ii(n,[t]):"coerce"===e?new Di(n,[t]):t}if(null!==t&&"string"!=typeof t&&"boolean"!=typeof t&&"number"!=typeof t||(t=["literal",t]),Array.isArray(t)){if(0===t.length)return this.error(\'Expected an array with at least one element. If you wanted a literal array, use ["literal", []].\');const r=t[0];if("string"!=typeof r)return this.error(`Expression name must be a string, but found ${typeof r} instead. If you wanted a literal array, use ["literal", [...]].`,0),null;const i=this.registry[r];if(i){let r=i.parse(t,this);if(!r)return null;if(this.expectedType){const t=this.expectedType,i=r.type;if("string"!==t.kind&&"number"!==t.kind&&"boolean"!==t.kind&&"object"!==t.kind&&"array"!==t.kind||"value"!==i.kind)if("color"!==t.kind&&"formatted"!==t.kind&&"resolvedImage"!==t.kind||"value"!==i.kind&&"string"!==i.kind){if(this.checkSubtype(t,i))return null}else r=e(r,t,n.typeAnnotation||"coerce");else r=e(r,t,n.typeAnnotation||"assert")}if(!(r instanceof Si)&&"resolvedImage"!==r.type.kind&&function t(n){if(n instanceof hs)return t(n.boundExpression);if(n instanceof Li&&"error"===n.name)return!1;if(n instanceof Vi)return!1;if(n instanceof is)return!1;const e=n instanceof Di||n instanceof Ii;let r=!0;return n.eachChild(n=>{r=e?r&&t(n):r&&n instanceof Si}),!!r&&(ss(n)&&as(n,["zoom","heatmap-density","line-progress","sky-radial-progress","accumulated","is-supported-script","pitch","distance-from-center"]))}(r)){const n=new Ui;try{r=new Si(r.type,r.evaluate(n))}catch(t){return this.error(t.message),null}}return r}return this.error(`Unknown expression "${r}". If you wanted a literal array, use ["literal", [...]].`,0)}return this.error(void 0===t?"\'undefined\' value invalid. Use null instead.":"object"==typeof t?\'Bare objects invalid. Use ["literal", {...}] instead.\':`Expected an array, but found ${typeof t} instead.`)}concat(t,n,e){const r="number"==typeof t?this.path.concat(t):this.path,i=e?this.scope.concat(e):this.scope;return new ls(this.registry,r,n||null,i,this.errors)}error(t,...n){const e=`${this.key}${n.map(t=>`[${t}]`).join("")}`;this.errors.push(new qr(e,t))}checkSubtype(t,n){const e=ai(t,n);return e&&this.error(e),e}}var cs=ls;function fs(t,n){const e=t.length-1;let r,i,s=0,o=e,a=0;for(;s<=o;)if(a=Math.floor((s+o)/2),r=t[a],i=t[a+1],r<=n){if(a===e||n<i)return a;s=a+1}else{if(!(r>n))throw new _i("Input is not a number.");o=a-1}return 0}class ds{constructor(t,n,e){this.type=t,this.input=n,this.labels=[],this.outputs=[];for(const[t,n]of e)this.labels.push(t),this.outputs.push(n)}static parse(t,n){if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error("Expected an even number of arguments.");const e=n.parse(t[1],1,Xr);if(!e)return null;const r=[];let i=null;n.expectedType&&"value"!==n.expectedType.kind&&(i=n.expectedType);for(let e=1;e<t.length;e+=2){const s=1===e?-1/0:t[e],o=t[e+1],a=e,u=e+1;if("number"!=typeof s)return n.error(\'Input/output pairs for "step" expressions must be defined using literal numeric values (not computed expressions) for the input values.\',a);if(r.length&&r[r.length-1][0]>=s)return n.error(\'Input/output pairs for "step" expressions must be arranged with input values in strictly ascending order.\',a);const h=n.parse(o,u,i);if(!h)return null;i=i||h.type,r.push([s,h])}return new ds(i,e,r)}evaluate(t){const n=this.labels,e=this.outputs;if(1===n.length)return e[0].evaluate(t);const r=this.input.evaluate(t);if(r<=n[0])return e[0].evaluate(t);const i=n.length;return r>=n[i-1]?e[i-1].evaluate(t):e[fs(n,r)].evaluate(t)}eachChild(t){t(this.input);for(const n of this.outputs)t(n)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){const t=["step",this.input.serialize()];for(let n=0;n<this.labels.length;n++)n>0&&t.push(this.labels[n]),t.push(this.outputs[n].serialize());return t}}var ps=ds,ys=ms;function ms(t,n,e,r){this.cx=3*t,this.bx=3*(e-t)-this.cx,this.ax=1-this.cx-this.bx,this.cy=3*n,this.by=3*(r-n)-this.cy,this.ay=1-this.cy-this.by,this.p1x=t,this.p1y=n,this.p2x=e,this.p2y=r}function gs(t,n,e){return t*(1-e)+n*e}ms.prototype={sampleCurveX:function(t){return((this.ax*t+this.bx)*t+this.cx)*t},sampleCurveY:function(t){return((this.ay*t+this.by)*t+this.cy)*t},sampleCurveDerivativeX:function(t){return(3*this.ax*t+2*this.bx)*t+this.cx},solveCurveX:function(t,n){if(void 0===n&&(n=1e-6),t<0)return 0;if(t>1)return 1;for(var e=t,r=0;r<8;r++){var i=this.sampleCurveX(e)-t;if(Math.abs(i)<n)return e;var s=this.sampleCurveDerivativeX(e);if(Math.abs(s)<1e-6)break;e-=i/s}var o=0,a=1;for(e=t,r=0;r<20&&(i=this.sampleCurveX(e),!(Math.abs(i-t)<n));r++)t>i?o=e:a=e,e=.5*(a-o)+o;return e},solve:function(t,n){return this.sampleCurveY(this.solveCurveX(t,n))}};var vs=Object.freeze({__proto__:null,number:gs,color:function(t,n,e){return new gi(gs(t.r,n.r,e),gs(t.g,n.g,e),gs(t.b,n.b,e),gs(t.a,n.a,e))},array:function(t,n,e){return t.map((t,r)=>gs(t,n[r],e))}});const bs=6/29*3*(6/29),ws=Math.PI/180,Ms=180/Math.PI;function xs(t){return t>.008856451679035631?Math.pow(t,1/3):t/bs+4/29}function Fs(t){return t>6/29?t*t*t:bs*(t-4/29)}function ks(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function As(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Ps(t){const n=As(t.r),e=As(t.g),r=As(t.b),i=xs((.4124564*n+.3575761*e+.1804375*r)/.95047),s=xs((.2126729*n+.7151522*e+.072175*r)/1);return{l:116*s-16,a:500*(i-s),b:200*(s-xs((.0193339*n+.119192*e+.9503041*r)/1.08883)),alpha:t.a}}function Ss(t){let n=(t.l+16)/116,e=isNaN(t.a)?n:n+t.a/500,r=isNaN(t.b)?n:n-t.b/200;return n=1*Fs(n),e=.95047*Fs(e),r=1.08883*Fs(r),new gi(ks(3.2404542*e-1.5371385*n-.4985314*r),ks(-.969266*e+1.8760108*n+.041556*r),ks(.0556434*e-.2040259*n+1.0572252*r),t.alpha)}function _s(t,n,e){const r=n-t;return t+e*(r>180||r<-180?r-360*Math.round(r/360):r)}const Os={forward:Ps,reverse:Ss,interpolate:function(t,n,e){return{l:gs(t.l,n.l,e),a:gs(t.a,n.a,e),b:gs(t.b,n.b,e),alpha:gs(t.alpha,n.alpha,e)}}},Es={forward:function(t){const{l:n,a:e,b:r}=Ps(t),i=Math.atan2(r,e)*Ms;return{h:i<0?i+360:i,c:Math.sqrt(e*e+r*r),l:n,alpha:t.a}},reverse:function(t){const n=t.h*ws,e=t.c;return Ss({l:t.l,a:Math.cos(n)*e,b:Math.sin(n)*e,alpha:t.alpha})},interpolate:function(t,n,e){return{h:_s(t.h,n.h,e),c:gs(t.c,n.c,e),l:gs(t.l,n.l,e),alpha:gs(t.alpha,n.alpha,e)}}};var Is=Object.freeze({__proto__:null,lab:Os,hcl:Es});class $s{constructor(t,n,e,r,i){this.type=t,this.operator=n,this.interpolation=e,this.input=r,this.labels=[],this.outputs=[];for(const[t,n]of i)this.labels.push(t),this.outputs.push(n)}static interpolationFactor(t,n,e,r){let i=0;if("exponential"===t.name)i=zs(n,t.base,e,r);else if("linear"===t.name)i=zs(n,1,e,r);else if("cubic-bezier"===t.name){const s=t.controlPoints;i=new ys(s[0],s[1],s[2],s[3]).solve(zs(n,1,e,r))}return i}static parse(t,n){let[e,r,i,...s]=t;if(!Array.isArray(r)||0===r.length)return n.error("Expected an interpolation type expression.",1);if("linear"===r[0])r={name:"linear"};else if("exponential"===r[0]){const t=r[1];if("number"!=typeof t)return n.error("Exponential interpolation requires a numeric base.",1,1);r={name:"exponential",base:t}}else{if("cubic-bezier"!==r[0])return n.error("Unknown interpolation type "+String(r[0]),1,0);{const t=r.slice(1);if(4!==t.length||t.some(t=>"number"!=typeof t||t<0||t>1))return n.error("Cubic bezier interpolation requires four numeric arguments with values between 0 and 1.",1);r={name:"cubic-bezier",controlPoints:t}}}if(t.length-1<4)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if((t.length-1)%2!=0)return n.error("Expected an even number of arguments.");if(i=n.parse(i,2,Xr),!i)return null;const o=[];let a=null;"interpolate-hcl"===e||"interpolate-lab"===e?a=Kr:n.expectedType&&"value"!==n.expectedType.kind&&(a=n.expectedType);for(let t=0;t<s.length;t+=2){const e=s[t],r=s[t+1],i=t+3,u=t+4;if("number"!=typeof e)return n.error(\'Input/output pairs for "interpolate" expressions must be defined using literal numeric values (not computed expressions) for the input values.\',i);if(o.length&&o[o.length-1][0]>=e)return n.error(\'Input/output pairs for "interpolate" expressions must be arranged with input values in strictly ascending order.\',i);const h=n.parse(r,u,a);if(!h)return null;a=a||h.type,o.push([e,h])}return"number"===a.kind||"color"===a.kind||"array"===a.kind&&"number"===a.itemType.kind&&"number"==typeof a.N?new $s(a,e,r,i,o):n.error(`Type ${si(a)} is not interpolatable.`)}evaluate(t){const n=this.labels,e=this.outputs;if(1===n.length)return e[0].evaluate(t);const r=this.input.evaluate(t);if(r<=n[0])return e[0].evaluate(t);const i=n.length;if(r>=n[i-1])return e[i-1].evaluate(t);const s=fs(n,r),o=$s.interpolationFactor(this.interpolation,r,n[s],n[s+1]),a=e[s].evaluate(t),u=e[s+1].evaluate(t);return"interpolate"===this.operator?vs[this.type.kind.toLowerCase()](a,u,o):"interpolate-hcl"===this.operator?Es.reverse(Es.interpolate(Es.forward(a),Es.forward(u),o)):Os.reverse(Os.interpolate(Os.forward(a),Os.forward(u),o))}eachChild(t){t(this.input);for(const n of this.outputs)t(n)}outputDefined(){return this.outputs.every(t=>t.outputDefined())}serialize(){let t;t="linear"===this.interpolation.name?["linear"]:"exponential"===this.interpolation.name?1===this.interpolation.base?["linear"]:["exponential",this.interpolation.base]:["cubic-bezier"].concat(this.interpolation.controlPoints);const n=[this.operator,t,this.input.serialize()];for(let t=0;t<this.labels.length;t++)n.push(this.labels[t],this.outputs[t].serialize());return n}}function zs(t,n,e,r){const i=r-e,s=t-e;return 0===i?0:1===n?s/i:(Math.pow(n,s)-1)/(Math.pow(n,i)-1)}var Cs=$s;class Ts{constructor(t,n){this.type=t,this.args=n}static parse(t,n){if(t.length<2)return n.error("Expectected at least one argument.");let e=null;const r=n.expectedType;r&&"value"!==r.kind&&(e=r);const i=[];for(const r of t.slice(1)){const t=n.parse(r,1+i.length,e,void 0,{typeAnnotation:"omit"});if(!t)return null;e=e||t.type,i.push(t)}const s=r&&i.some(t=>ai(r,t.type));return new Ts(s?ti:e,i)}evaluate(t){let n,e=null,r=0;for(const i of this.args){if(r++,e=i.evaluate(t),e&&e instanceof Mi&&!e.available&&(n||(n=e),e=null,r===this.args.length))return n;if(null!==e)break}return e}eachChild(t){this.args.forEach(t)}outputDefined(){return this.args.every(t=>t.outputDefined())}serialize(){const t=["coalesce"];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Ds=Ts;class js{constructor(t,n){this.type=n.type,this.bindings=[].concat(t),this.result=n}evaluate(t){return this.result.evaluate(t)}eachChild(t){for(const n of this.bindings)t(n[1]);t(this.result)}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found ${t.length-1} instead.`);const e=[];for(let r=1;r<t.length-1;r+=2){const i=t[r];if("string"!=typeof i)return n.error(`Expected string, but found ${typeof i} instead.`,r);if(/[^a-zA-Z0-9_]/.test(i))return n.error("Variable names must contain only alphanumeric characters or \'_\'.",r);const s=n.parse(t[r+1],r+1);if(!s)return null;e.push([i,s])}const r=n.parse(t[t.length-1],t.length-1,n.expectedType,e);return r?new js(e,r):null}outputDefined(){return this.result.outputDefined()}serialize(){const t=["let"];for(const[n,e]of this.bindings)t.push(n,e.serialize());return t.push(this.result.serialize()),t}}var Us=js;class Ns{constructor(t,n,e){this.type=t,this.index=n,this.input=e}static parse(t,n){if(3!==t.length)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,Xr),r=n.parse(t[2],2,ii(n.expectedType||ti));return e&&r?new Ns(r.type.itemType,e,r):null}evaluate(t){const n=this.index.evaluate(t),e=this.input.evaluate(t);if(n<0)throw new _i(`Array index out of bounds: ${n} < 0.`);if(n>=e.length)throw new _i(`Array index out of bounds: ${n} > ${e.length-1}.`);if(n!==Math.floor(n))throw new _i(`Array index must be an integer, but found ${n} instead.`);return e[n]}eachChild(t){t(this.index),t(this.input)}outputDefined(){return!1}serialize(){return["at",this.index.serialize(),this.input.serialize()]}}var Ls=Ns;class Vs{constructor(t,n){this.type=Zr,this.needle=t,this.haystack=n}static parse(t,n){if(3!==t.length)return n.error(`Expected 2 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,ti);return e&&r?ui(e.type,[Zr,Yr,Xr,Jr,ti])?new Vs(e,r):n.error(`Expected first argument to be of type boolean, string, number or null, but found ${si(e.type)} instead`):null}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(null==e)return!1;if(!hi(n,["boolean","string","number","null"]))throw new _i(`Expected first argument to be of type boolean, string, number or null, but found ${si(ki(n))} instead.`);if(!hi(e,["string","array"]))throw new _i(`Expected second argument to be of type array or string, but found ${si(ki(e))} instead.`);return e.indexOf(n)>=0}eachChild(t){t(this.needle),t(this.haystack)}outputDefined(){return!0}serialize(){return["in",this.needle.serialize(),this.haystack.serialize()]}}var Rs=Vs;class Hs{constructor(t,n,e){this.type=Xr,this.needle=t,this.haystack=n,this.fromIndex=e}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,ti);if(!e||!r)return null;if(!ui(e.type,[Zr,Yr,Xr,Jr,ti]))return n.error(`Expected first argument to be of type boolean, string, number or null, but found ${si(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Xr);return i?new Hs(e,r,i):null}return new Hs(e,r)}evaluate(t){const n=this.needle.evaluate(t),e=this.haystack.evaluate(t);if(!hi(n,["boolean","string","number","null"]))throw new _i(`Expected first argument to be of type boolean, string, number or null, but found ${si(ki(n))} instead.`);if(!hi(e,["string","array"]))throw new _i(`Expected second argument to be of type array or string, but found ${si(ki(e))} instead.`);if(this.fromIndex){const r=this.fromIndex.evaluate(t);return e.indexOf(n,r)}return e.indexOf(n)}eachChild(t){t(this.needle),t(this.haystack),this.fromIndex&&t(this.fromIndex)}outputDefined(){return!1}serialize(){if(null!=this.fromIndex&&void 0!==this.fromIndex){const t=this.fromIndex.serialize();return["index-of",this.needle.serialize(),this.haystack.serialize(),t]}return["index-of",this.needle.serialize(),this.haystack.serialize()]}}var Ws=Hs;class qs{constructor(t,n,e,r,i,s){this.inputType=t,this.type=n,this.input=e,this.cases=r,this.outputs=i,this.otherwise=s}static parse(t,n){if(t.length<5)return n.error(`Expected at least 4 arguments, but found only ${t.length-1}.`);if(t.length%2!=1)return n.error("Expected an even number of arguments.");let e,r;n.expectedType&&"value"!==n.expectedType.kind&&(r=n.expectedType);const i={},s=[];for(let o=2;o<t.length-1;o+=2){let a=t[o];const u=t[o+1];Array.isArray(a)||(a=[a]);const h=n.concat(o);if(0===a.length)return h.error("Expected at least one branch label.");for(const t of a){if("number"!=typeof t&&"string"!=typeof t)return h.error("Branch labels must be numbers or strings.");if("number"==typeof t&&Math.abs(t)>Number.MAX_SAFE_INTEGER)return h.error(`Branch labels must be integers no larger than ${Number.MAX_SAFE_INTEGER}.`);if("number"==typeof t&&Math.floor(t)!==t)return h.error("Numeric branch labels must be integer values.");if(e){if(h.checkSubtype(e,ki(t)))return null}else e=ki(t);if(void 0!==i[String(t)])return h.error("Branch labels must be unique.");i[String(t)]=s.length}const l=n.parse(u,o,r);if(!l)return null;r=r||l.type,s.push(l)}const o=n.parse(t[1],1,ti);if(!o)return null;const a=n.parse(t[t.length-1],t.length-1,r);return a?"value"!==o.type.kind&&n.concat(1).checkSubtype(e,o.type)?null:new qs(e,r,o,i,s,a):null}evaluate(t){const n=this.input.evaluate(t);return(ki(n)===this.inputType&&this.outputs[this.cases[n]]||this.otherwise).evaluate(t)}eachChild(t){t(this.input),this.outputs.forEach(t),t(this.otherwise)}outputDefined(){return this.outputs.every(t=>t.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["match",this.input.serialize()],n=Object.keys(this.cases).sort(),e=[],r={};for(const t of n){const n=r[this.cases[t]];void 0===n?(r[this.cases[t]]=e.length,e.push([this.cases[t],[t]])):e[n][1].push(t)}const i=t=>"number"===this.inputType.kind?Number(t):t;for(const[n,r]of e)t.push(1===r.length?i(r[0]):r.map(i)),t.push(this.outputs[n].serialize());return t.push(this.otherwise.serialize()),t}}var Gs=qs;class Bs{constructor(t,n,e){this.type=t,this.branches=n,this.otherwise=e}static parse(t,n){if(t.length<4)return n.error(`Expected at least 3 arguments, but found only ${t.length-1}.`);if(t.length%2!=0)return n.error("Expected an odd number of arguments.");let e;n.expectedType&&"value"!==n.expectedType.kind&&(e=n.expectedType);const r=[];for(let i=1;i<t.length-1;i+=2){const s=n.parse(t[i],i,Zr);if(!s)return null;const o=n.parse(t[i+1],i+1,e);if(!o)return null;r.push([s,o]),e=e||o.type}const i=n.parse(t[t.length-1],t.length-1,e);return i?new Bs(e,r,i):null}evaluate(t){for(const[n,e]of this.branches)if(n.evaluate(t))return e.evaluate(t);return this.otherwise.evaluate(t)}eachChild(t){for(const[n,e]of this.branches)t(n),t(e);t(this.otherwise)}outputDefined(){return this.branches.every(([t,n])=>n.outputDefined())&&this.otherwise.outputDefined()}serialize(){const t=["case"];return this.eachChild(n=>{t.push(n.serialize())}),t}}var Js=Bs;class Xs{constructor(t,n,e,r){this.type=t,this.input=n,this.beginIndex=e,this.endIndex=r}static parse(t,n){if(t.length<=2||t.length>=5)return n.error(`Expected 3 or 4 arguments, but found ${t.length-1} instead.`);const e=n.parse(t[1],1,ti),r=n.parse(t[2],2,Xr);if(!e||!r)return null;if(!ui(e.type,[ii(ti),Yr,ti]))return n.error(`Expected first argument to be of type array or string, but found ${si(e.type)} instead`);if(4===t.length){const i=n.parse(t[3],3,Xr);return i?new Xs(e.type,e,r,i):null}return new Xs(e.type,e,r)}evaluate(t){const n=this.input.evaluate(t),e=this.beginIndex.evaluate(t);if(!hi(n,["string","array"]))throw new _i(`Expected first argument to be of type array or string, but found ${si(ki(n))} instead.`);if(this.endIndex){const r=this.endIndex.evaluate(t);return n.slice(e,r)}return n.slice(e)}eachChild(t){t(this.input),t(this.beginIndex),this.endIndex&&t(this.endIndex)}outputDefined(){return!1}serialize(){if(null!=this.endIndex&&void 0!==this.endIndex){const t=this.endIndex.serialize();return["slice",this.input.serialize(),this.beginIndex.serialize(),t]}return["slice",this.input.serialize(),this.beginIndex.serialize()]}}var Ys=Xs;function Zs(t,n){return"=="===t||"!="===t?"boolean"===n.kind||"string"===n.kind||"number"===n.kind||"null"===n.kind||"value"===n.kind:"string"===n.kind||"number"===n.kind||"value"===n.kind}function Ks(t,n,e,r){return 0===r.compare(n,e)}function Qs(t,n,e){const r="=="!==t&&"!="!==t;return class i{constructor(t,n,e){this.type=Zr,this.lhs=t,this.rhs=n,this.collator=e,this.hasUntypedArgument="value"===t.type.kind||"value"===n.type.kind}static parse(t,n){if(3!==t.length&&4!==t.length)return n.error("Expected two or three arguments.");const e=t[0];let s=n.parse(t[1],1,ti);if(!s)return null;if(!Zs(e,s.type))return n.concat(1).error(`"${e}" comparisons are not supported for type \'${si(s.type)}\'.`);let o=n.parse(t[2],2,ti);if(!o)return null;if(!Zs(e,o.type))return n.concat(2).error(`"${e}" comparisons are not supported for type \'${si(o.type)}\'.`);if(s.type.kind!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return n.error(`Cannot compare types \'${si(s.type)}\' and \'${si(o.type)}\'.`);r&&("value"===s.type.kind&&"value"!==o.type.kind?s=new Ii(o.type,[s]):"value"!==s.type.kind&&"value"===o.type.kind&&(o=new Ii(s.type,[o])));let a=null;if(4===t.length){if("string"!==s.type.kind&&"string"!==o.type.kind&&"value"!==s.type.kind&&"value"!==o.type.kind)return n.error("Cannot use collator to compare non-string types.");if(a=n.parse(t[3],3,ni),!a)return null}return new i(s,o,a)}evaluate(i){const s=this.lhs.evaluate(i),o=this.rhs.evaluate(i);if(r&&this.hasUntypedArgument){const n=ki(s),e=ki(o);if(n.kind!==e.kind||"string"!==n.kind&&"number"!==n.kind)throw new _i(`Expected arguments for "${t}" to be (string, string) or (number, number), but found (${n.kind}, ${e.kind}) instead.`)}if(this.collator&&!r&&this.hasUntypedArgument){const t=ki(s),e=ki(o);if("string"!==t.kind||"string"!==e.kind)return n(i,s,o)}return this.collator?e(i,s,o,this.collator.evaluate(i)):n(i,s,o)}eachChild(t){t(this.lhs),t(this.rhs),this.collator&&t(this.collator)}outputDefined(){return!0}serialize(){const n=[t];return this.eachChild(t=>{n.push(t.serialize())}),n}}}const to=Qs("==",(function(t,n,e){return n===e}),Ks),no=Qs("!=",(function(t,n,e){return n!==e}),(function(t,n,e,r){return!Ks(0,n,e,r)})),eo=Qs("<",(function(t,n,e){return n<e}),(function(t,n,e,r){return r.compare(n,e)<0})),ro=Qs(">",(function(t,n,e){return n>e}),(function(t,n,e,r){return r.compare(n,e)>0})),io=Qs("<=",(function(t,n,e){return n<=e}),(function(t,n,e,r){return r.compare(n,e)<=0})),so=Qs(">=",(function(t,n,e){return n>=e}),(function(t,n,e,r){return r.compare(n,e)>=0}));class oo{constructor(t,n,e,r,i,s){this.type=Yr,this.number=t,this.locale=n,this.currency=e,this.unit=r,this.minFractionDigits=i,this.maxFractionDigits=s}static parse(t,n){if(3!==t.length)return n.error("Expected two arguments.");const e=n.parse(t[1],1,Xr);if(!e)return null;const r=t[2];if("object"!=typeof r||Array.isArray(r))return n.error("NumberFormat options argument must be an object.");let i=null;if(r.locale&&(i=n.parse(r.locale,1,Yr),!i))return null;let s=null;if(r.currency&&(s=n.parse(r.currency,1,Yr),!s))return null;let o=null;if(r.unit&&(o=n.parse(r.unit,1,Yr),!o))return null;let a=null;if(r["min-fraction-digits"]&&(a=n.parse(r["min-fraction-digits"],1,Xr),!a))return null;let u=null;return r["max-fraction-digits"]&&(u=n.parse(r["max-fraction-digits"],1,Xr),!u)?null:new oo(e,i,s,o,a,u)}evaluate(t){return new Intl.NumberFormat(this.locale?this.locale.evaluate(t):[],{style:(this.currency?"currency":this.unit&&"unit")||"decimal",currency:this.currency?this.currency.evaluate(t):void 0,unit:this.unit?this.unit.evaluate(t):void 0,minimumFractionDigits:this.minFractionDigits?this.minFractionDigits.evaluate(t):void 0,maximumFractionDigits:this.maxFractionDigits?this.maxFractionDigits.evaluate(t):void 0}).format(this.number.evaluate(t))}eachChild(t){t(this.number),this.locale&&t(this.locale),this.currency&&t(this.currency),this.unit&&t(this.unit),this.minFractionDigits&&t(this.minFractionDigits),this.maxFractionDigits&&t(this.maxFractionDigits)}outputDefined(){return!1}serialize(){const t={};return this.locale&&(t.locale=this.locale.serialize()),this.currency&&(t.currency=this.currency.serialize()),this.unit&&(t.unit=this.unit.serialize()),this.minFractionDigits&&(t["min-fraction-digits"]=this.minFractionDigits.serialize()),this.maxFractionDigits&&(t["max-fraction-digits"]=this.maxFractionDigits.serialize()),["number-format",this.number.serialize(),t]}}class ao{constructor(t){this.type=Xr,this.input=t}static parse(t,n){if(2!==t.length)return n.error(`Expected 1 argument, but found ${t.length-1} instead.`);const e=n.parse(t[1],1);return e?"array"!==e.type.kind&&"string"!==e.type.kind&&"value"!==e.type.kind?n.error(`Expected argument of type string or array, but found ${si(e.type)} instead.`):new ao(e):null}evaluate(t){const n=this.input.evaluate(t);if("string"==typeof n)return n.length;if(Array.isArray(n))return n.length;throw new _i(`Expected value to be of type string or array, but found ${si(ki(n))} instead.`)}eachChild(t){t(this.input)}outputDefined(){return!1}serialize(){const t=["length"];return this.eachChild(n=>{t.push(n.serialize())}),t}}const uo={"==":to,"!=":no,">":ro,"<":eo,">=":so,"<=":io,array:Ii,at:Ls,boolean:Ii,case:Js,coalesce:Ds,collator:Vi,format:$i,image:zi,in:Rs,"index-of":Ws,interpolate:Cs,"interpolate-hcl":Cs,"interpolate-lab":Cs,length:ao,let:Us,literal:Si,match:Gs,number:Ii,"number-format":oo,object:Ii,slice:Ys,step:ps,string:Ii,"to-boolean":Di,"to-color":Di,"to-number":Di,"to-string":Di,var:hs,within:is};function ho(t,[n,e,r,i]){n=n.evaluate(t),e=e.evaluate(t),r=r.evaluate(t);const s=i?i.evaluate(t):1,o=xi(n,e,r,s);if(o)throw new _i(o);return new gi(n/255*s,e/255*s,r/255*s,s)}function lo(t,n){return t in n}function co(t,n){const e=n[t];return void 0===e?null:e}function fo(t){return{type:t}}Li.register(uo,{error:[{kind:"error"},[Yr],(t,[n])=>{throw new _i(n.evaluate(t))}],typeof:[Yr,[ti],(t,[n])=>si(ki(n.evaluate(t)))],"to-rgba":[ii(Xr,4),[Kr],(t,[n])=>n.evaluate(t).toArray()],rgb:[Kr,[Xr,Xr,Xr],ho],rgba:[Kr,[Xr,Xr,Xr,Xr],ho],has:{type:Zr,overloads:[[[Yr],(t,[n])=>lo(n.evaluate(t),t.properties())],[[Yr,Qr],(t,[n,e])=>lo(n.evaluate(t),e.evaluate(t))]]},get:{type:ti,overloads:[[[Yr],(t,[n])=>co(n.evaluate(t),t.properties())],[[Yr,Qr],(t,[n,e])=>co(n.evaluate(t),e.evaluate(t))]]},"feature-state":[ti,[Yr],(t,[n])=>co(n.evaluate(t),t.featureState||{})],properties:[Qr,[],t=>t.properties()],"geometry-type":[Yr,[],t=>t.geometryType()],id:[ti,[],t=>t.id()],zoom:[Xr,[],t=>t.globals.zoom],pitch:[Xr,[],t=>t.globals.pitch||0],"distance-from-center":[Xr,[],t=>t.distanceFromCenter()],"heatmap-density":[Xr,[],t=>t.globals.heatmapDensity||0],"line-progress":[Xr,[],t=>t.globals.lineProgress||0],"sky-radial-progress":[Xr,[],t=>t.globals.skyRadialProgress||0],accumulated:[ti,[],t=>void 0===t.globals.accumulated?null:t.globals.accumulated],"+":[Xr,fo(Xr),(t,n)=>{let e=0;for(const r of n)e+=r.evaluate(t);return e}],"*":[Xr,fo(Xr),(t,n)=>{let e=1;for(const r of n)e*=r.evaluate(t);return e}],"-":{type:Xr,overloads:[[[Xr,Xr],(t,[n,e])=>n.evaluate(t)-e.evaluate(t)],[[Xr],(t,[n])=>-n.evaluate(t)]]},"/":[Xr,[Xr,Xr],(t,[n,e])=>n.evaluate(t)/e.evaluate(t)],"%":[Xr,[Xr,Xr],(t,[n,e])=>n.evaluate(t)%e.evaluate(t)],ln2:[Xr,[],()=>Math.LN2],pi:[Xr,[],()=>Math.PI],e:[Xr,[],()=>Math.E],"^":[Xr,[Xr,Xr],(t,[n,e])=>Math.pow(n.evaluate(t),e.evaluate(t))],sqrt:[Xr,[Xr],(t,[n])=>Math.sqrt(n.evaluate(t))],log10:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))/Math.LN10],ln:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))],log2:[Xr,[Xr],(t,[n])=>Math.log(n.evaluate(t))/Math.LN2],sin:[Xr,[Xr],(t,[n])=>Math.sin(n.evaluate(t))],cos:[Xr,[Xr],(t,[n])=>Math.cos(n.evaluate(t))],tan:[Xr,[Xr],(t,[n])=>Math.tan(n.evaluate(t))],asin:[Xr,[Xr],(t,[n])=>Math.asin(n.evaluate(t))],acos:[Xr,[Xr],(t,[n])=>Math.acos(n.evaluate(t))],atan:[Xr,[Xr],(t,[n])=>Math.atan(n.evaluate(t))],min:[Xr,fo(Xr),(t,n)=>Math.min(...n.map(n=>n.evaluate(t)))],max:[Xr,fo(Xr),(t,n)=>Math.max(...n.map(n=>n.evaluate(t)))],abs:[Xr,[Xr],(t,[n])=>Math.abs(n.evaluate(t))],round:[Xr,[Xr],(t,[n])=>{const e=n.evaluate(t);return e<0?-Math.round(-e):Math.round(e)}],floor:[Xr,[Xr],(t,[n])=>Math.floor(n.evaluate(t))],ceil:[Xr,[Xr],(t,[n])=>Math.ceil(n.evaluate(t))],"filter-==":[Zr,[Yr,ti],(t,[n,e])=>t.properties()[n.value]===e.value],"filter-id-==":[Zr,[ti],(t,[n])=>t.id()===n.value],"filter-type-==":[Zr,[Yr],(t,[n])=>t.geometryType()===n.value],"filter-<":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<i}],"filter-id-<":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<r}],"filter->":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>i}],"filter-id->":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>r}],"filter-<=":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r<=i}],"filter-id-<=":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e<=r}],"filter->=":[Zr,[Yr,ti],(t,[n,e])=>{const r=t.properties()[n.value],i=e.value;return typeof r==typeof i&&r>=i}],"filter-id->=":[Zr,[ti],(t,[n])=>{const e=t.id(),r=n.value;return typeof e==typeof r&&e>=r}],"filter-has":[Zr,[ti],(t,[n])=>n.value in t.properties()],"filter-has-id":[Zr,[],t=>null!==t.id()&&void 0!==t.id()],"filter-type-in":[Zr,[ii(Yr)],(t,[n])=>n.value.indexOf(t.geometryType())>=0],"filter-id-in":[Zr,[ii(ti)],(t,[n])=>n.value.indexOf(t.id())>=0],"filter-in-small":[Zr,[Yr,ii(ti)],(t,[n,e])=>e.value.indexOf(t.properties()[n.value])>=0],"filter-in-large":[Zr,[Yr,ii(ti)],(t,[n,e])=>function(t,n,e,r){for(;e<=r;){const i=e+r>>1;if(n[i]===t)return!0;n[i]>t?r=i-1:e=i+1}return!1}(t.properties()[n.value],e.value,0,e.value.length-1)],all:{type:Zr,overloads:[[[Zr,Zr],(t,[n,e])=>n.evaluate(t)&&e.evaluate(t)],[fo(Zr),(t,n)=>{for(const e of n)if(!e.evaluate(t))return!1;return!0}]]},any:{type:Zr,overloads:[[[Zr,Zr],(t,[n,e])=>n.evaluate(t)||e.evaluate(t)],[fo(Zr),(t,n)=>{for(const e of n)if(e.evaluate(t))return!0;return!1}]]},"!":[Zr,[Zr],(t,[n])=>!n.evaluate(t)],"is-supported-script":[Zr,[Yr],(t,[n])=>{const e=t.globals&&t.globals.isSupportedScript;return!e||e(n.evaluate(t))}],upcase:[Yr,[Yr],(t,[n])=>n.evaluate(t).toUpperCase()],downcase:[Yr,[Yr],(t,[n])=>n.evaluate(t).toLowerCase()],concat:[Yr,fo(ti),(t,n)=>n.map(n=>Ai(n.evaluate(t))).join("")],"resolved-locale":[Yr,[ni],(t,[n])=>n.evaluate(t).resolvedLocale()]});var po=uo;function yo(t){return{result:"success",value:t}}function mo(t){return{result:"error",value:t}}function go(t){return!!t.expression&&t.expression.interpolated}function vo(t){return t instanceof Number?"number":t instanceof String?"string":t instanceof Boolean?"boolean":Array.isArray(t)?"array":null===t?"null":typeof t}function bo(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}function wo(t){return t}function Mo(t,n,e){return void 0!==t?t:void 0!==n?n:void 0!==e?e:void 0}function xo(t,n,e,r,i){return Mo(typeof e===i?r[e]:void 0,t.default,n.default)}function Fo(t,n,e){if("number"!==vo(e))return Mo(t.default,n.default);const r=t.stops.length;if(1===r)return t.stops[0][1];if(e<=t.stops[0][0])return t.stops[0][1];if(e>=t.stops[r-1][0])return t.stops[r-1][1];const i=fs(t.stops.map(t=>t[0]),e);return t.stops[i][1]}function ko(t,n,e){const r=void 0!==t.base?t.base:1;if("number"!==vo(e))return Mo(t.default,n.default);const i=t.stops.length;if(1===i)return t.stops[0][1];if(e<=t.stops[0][0])return t.stops[0][1];if(e>=t.stops[i-1][0])return t.stops[i-1][1];const s=fs(t.stops.map(t=>t[0]),e),o=function(t,n,e,r){const i=r-e,s=t-e;return 0===i?0:1===n?s/i:(Math.pow(n,s)-1)/(Math.pow(n,i)-1)}(e,r,t.stops[s][0],t.stops[s+1][0]),a=t.stops[s][1],u=t.stops[s+1][1];let h=vs[n.type]||wo;if(t.colorSpace&&"rgb"!==t.colorSpace){const n=Is[t.colorSpace];h=(t,e)=>n.reverse(n.interpolate(n.forward(t),n.forward(e),o))}return"function"==typeof a.evaluate?{evaluate(...t){const n=a.evaluate.apply(void 0,t),e=u.evaluate.apply(void 0,t);if(void 0!==n&&void 0!==e)return h(n,e,o)}}:h(a,u,o)}function Ao(t,n,e){return"color"===n.type?e=gi.parse(e):"formatted"===n.type?e=wi.fromString(e.toString()):"resolvedImage"===n.type?e=Mi.fromString(e.toString()):vo(e)===n.type||"enum"===n.type&&n.values[e]||(e=void 0),Mo(e,t.default,n.default)}class Po{constructor(t,n){this.expression=t,this.H={},this.W=new Ui,this.q=n?function(t){return"color"===t.type&&(bo(t.default)||Array.isArray(t.default))?new gi(0,0,0,0):"color"===t.type?gi.parse(t.default)||null:void 0===t.default?null:t.default}(n):null,this.G=n&&"enum"===n.type?n.values:null}evaluateWithoutErrorHandling(t,n,e,r,i,s,o,a){return this.W.globals=t,this.W.feature=n,this.W.featureState=e,this.W.canonical=r||null,this.W.availableImages=i||null,this.W.formattedSection=s,this.W.featureTileCoord=o||null,this.W.featureDistanceData=a||null,this.expression.evaluate(this.W)}evaluate(t,n,e,r,i,s,o,a){this.W.globals=t,this.W.feature=n||null,this.W.featureState=e||null,this.W.canonical=r||null,this.W.availableImages=i||null,this.W.formattedSection=s||null,this.W.featureTileCoord=o||null,this.W.featureDistanceData=a||null;try{const t=this.expression.evaluate(this.W);if(null==t||"number"==typeof t&&t!=t)return this.q;if(this.G&&!(t in this.G))throw new _i(`Expected value to be one of ${Object.keys(this.G).map(t=>JSON.stringify(t)).join(", ")}, but found ${JSON.stringify(t)} instead.`);return t}catch(t){return this.H[t.message]||(this.H[t.message]=!0,"undefined"!=typeof console&&console.warn(t.message)),this.q}}}function So(t){return Array.isArray(t)&&t.length>0&&"string"==typeof t[0]&&t[0]in po}function _o(t,n){const e=new cs(po,[],n?function(t){const n={color:Kr,string:Yr,number:Xr,enum:Yr,boolean:Zr,formatted:ei,resolvedImage:ri};return"array"===t.type?ii(n[t.value]||ti,t.length):n[t.type]}(n):void 0),r=e.parse(t,void 0,void 0,void 0,n&&"string"===n.type?{typeAnnotation:"coerce"}:void 0);return r?yo(new Po(r,n)):mo(e.errors)}class Oo{constructor(t,n){this.kind=t,this.B=n,this.isStateDependent="constant"!==t&&!os(n.expression)}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.B.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.B.evaluate(t,n,e,r,i,s)}}class Eo{constructor(t,n,e,r){this.kind=t,this.zoomStops=e,this.B=n,this.isStateDependent="camera"!==t&&!os(n.expression),this.interpolationType=r}evaluateWithoutErrorHandling(t,n,e,r,i,s){return this.B.evaluateWithoutErrorHandling(t,n,e,r,i,s)}evaluate(t,n,e,r,i,s){return this.B.evaluate(t,n,e,r,i,s)}interpolationFactor(t,n,e){return this.interpolationType?Cs.interpolationFactor(this.interpolationType,t,n,e):0}}function Io(t,n){if("error"===(t=_o(t,n)).result)return t;const e=t.value.expression,r=ss(e);if(!r&&!function(t){return"data-driven"===t["property-type"]}(n))return mo([new qr("","data expressions not supported")]);const i=as(e,["zoom","pitch","distance-from-center"]);if(!i&&!function(t){return!!t.expression&&t.expression.parameters.indexOf("zoom")>-1}(n))return mo([new qr("","zoom expressions not supported")]);const s=function t(n){let e=null;if(n instanceof Us)e=t(n.result);else if(n instanceof Ds){for(const r of n.args)if(e=t(r),e)break}else(n instanceof ps||n instanceof Cs)&&n.input instanceof Li&&"zoom"===n.input.name&&(e=n);return e instanceof qr||n.eachChild(n=>{const r=t(n);r instanceof qr?e=r:!e&&r?e=new qr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\'):e&&r&&e!==r&&(e=new qr("",\'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.\'))}),e}(e);if(!s&&!i)return mo([new qr("",\'"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.\')]);if(s instanceof qr)return mo([s]);if(s instanceof Cs&&!go(n))return mo([new qr("",\'"interpolate" expressions cannot be used with this property\')]);if(!s)return yo(new Oo(r?"constant":"source",t.value));const o=s instanceof Cs?s.interpolation:void 0;return yo(new Eo(r?"camera":"composite",t.value,s.labels,o))}class $o{constructor(t,n){this.J=t,this.X=n,Hr(this,function t(n,e){const r="color"===e.type,i=n.stops&&"object"==typeof n.stops[0][0],s=i||!(i||void 0!==n.property),o=n.type||(go(e)?"exponential":"interval");if(r&&((n=Hr({},n)).stops&&(n.stops=n.stops.map(t=>[t[0],gi.parse(t[1])])),n.default=gi.parse(n.default?n.default:e.default)),n.colorSpace&&"rgb"!==n.colorSpace&&!Is[n.colorSpace])throw new Error("Unknown color space: "+n.colorSpace);let a,u,h;if("exponential"===o)a=ko;else if("interval"===o)a=Fo;else if("categorical"===o){a=xo,u=Object.create(null);for(const t of n.stops)u[t[0]]=t[1];h=typeof n.stops[0][0]}else{if("identity"!==o)throw new Error(`Unknown function type "${o}"`);a=Ao}if(i){const r={},i=[];for(let t=0;t<n.stops.length;t++){const e=n.stops[t],s=e[0].zoom;void 0===r[s]&&(r[s]={zoom:s,type:n.type,property:n.property,default:n.default,stops:[]},i.push(s)),r[s].stops.push([e[0].value,e[1]])}const s=[];for(const n of i)s.push([r[n].zoom,t(r[n],e)]);const o={name:"linear"};return{kind:"composite",interpolationType:o,interpolationFactor:Cs.interpolationFactor.bind(void 0,o),zoomStops:s.map(t=>t[0]),evaluate:({zoom:t},r)=>ko({stops:s,base:n.base},e,t).evaluate(t,r)}}if(s){const t="exponential"===o?{name:"exponential",base:void 0!==n.base?n.base:1}:null;return{kind:"camera",interpolationType:t,interpolationFactor:Cs.interpolationFactor.bind(void 0,t),zoomStops:n.stops.map(t=>t[0]),evaluate:({zoom:t})=>a(n,e,t,u,h)}}return{kind:"source",evaluate(t,r){const i=r&&r.properties?r.properties[n.property]:void 0;return void 0===i?Mo(n.default,e.default):a(n,e,i,u,h)}}}(this.J,this.X))}static deserialize(t){return new $o(t.J,t.X)}static serialize(t){return{J:t.J,X:t.X}}}function zo(t){if(Array.isArray(t))return t.map(zo);if(t instanceof Object&&!(t instanceof Number||t instanceof String||t instanceof Boolean)){const n={};for(const e in t)n[e]=zo(t[e]);return n}return function(t){return t instanceof Number||t instanceof String||t instanceof Boolean?t.valueOf():t}(t)}function Co(t){if(!Array.isArray(t))return!1;if(function(t){return"pitch"===t||"distance-from-center"===t}(t[0]))return!0;for(let n=1;n<t.length;n++)if(Co(t[n]))return!0;return!1}const To=new Set(["in","==","!=",">",">=","<","<=","to-boolean"]),Do={StyleExpression:Po,isExpression:So,isExpressionFilter:function t(n){if(!0===n||!1===n)return!0;if(!Array.isArray(n)||0===n.length)return!1;switch(n[0]){case"has":return n.length>=2&&"$id"!==n[1]&&"$type"!==n[1];case"in":return n.length>=3&&("string"!=typeof n[1]||Array.isArray(n[2]));case"!in":case"!has":case"none":return!1;case"==":case"!=":case">":case">=":case"<":case"<=":return 3!==n.length||Array.isArray(n[1])||Array.isArray(n[2]);case"any":case"all":for(const e of n.slice(1))if(!t(e)&&"boolean"!=typeof e)return!1;return!0;default:return!0}},createExpression:_o,createPropertyExpression:Io,normalizePropertyExpression:function(t,n){if(bo(t))return new $o(t,n);if(So(t)){const e=Io(t,n);if("error"===e.result)throw new Error(e.value.map(t=>`${t.key}: ${t.message}`).join(", "));return e.value}{let e=t;return"string"==typeof t&&"color"===n.type&&(e=gi.parse(t)),{kind:"constant",evaluate:()=>e}}},ZoomConstantExpression:Oo,ZoomDependentExpression:Eo,StylePropertyFunction:$o},{isExpression:jo,createExpression:Uo}=Do,No={};function Lo(t){if(!0===t)return function(){return!0};if(t&&t.condition){if("any"===t.type){const n=t.condition,e=[];for(let t=0;t<n.length;t++)e.push(Lo(n[t]));return(t,n)=>{for(let r=0;r<e.length;r++)if(e[r](t,n))return!0;return!1}}const n=Lo(t.condition);if(cr(t.layer))return n;const e=n=>n.layer===t.layer;return(t,r)=>e(t)&&n(t,r)}if(function t(n){if(!0===n||!1===n)return!0;if(!Array.isArray(n)||0===n.length)return!1;switch(n[0]){case"has":case"!has":return 2===n.length&&("string"==typeof n[1]||n[1].property&&n[1].op);case"in":case"!in":return n.length>=2&&("string"==typeof n[1]||n[1].property&&n[1].op);case"==":case"!=":case">":case">=":case"<":case"<=":return 3===n.length&&("string"==typeof n[1]||n[1].property&&n[1].op);case"none":case"any":case"all":for(const e of n.slice(1))if(!t(e)&&"boolean"!=typeof e)return!1;return!0;case"contains":return!0;default:return!1}}(t))return Tn(t);{let n=function(t,n="fill"){if(null==t)return{filter:()=>!0,needGeometry:!1,needFeature:!1};const e=t;let r=!0;try{r=function(t){if(!Co(t))return t;let n=zo(t);return function t(n){let e=!1;const r=[];if("case"===n[0]){for(let t=1;t<n.length-1;t+=2)e=e||Co(n[t]),r.push(n[t+1]);r.push(n[n.length-1])}else if("match"===n[0]){e=e||Co(n[1]);for(let t=2;t<n.length-1;t+=2)r.push(n[t+1]);r.push(n[n.length-1])}else if("step"===n[0]){e=e||Co(n[1]);for(let t=1;t<n.length-1;t+=2)r.push(n[t+1])}e&&(n.length=0,n.push("any",...r));for(let e=1;e<n.length;e++)t(n[e])}(n),n=function t(n){if(!Array.isArray(n))return n;const e=function(t){if(To.has(t[0]))for(let n=1;n<t.length;n++)if(Co(t[n]))return!0;return t}(n);return!0===e?e:e.map(n=>t(n))}(n),n}(e)}catch(t){console.warn(`Failed to extract static filter. Filter will continue working, but at higher memory usage and slower framerate.\\nThis is most likely a bug, please report this via https://github.com/mapbox/mapbox-gl-js/issues/new?assignees=&labels=&template=Bug_report.md\\nand paste the contents of this message in the report.\\nThank you!\\nFilter Expression:\\n${JSON.stringify(e,null,2)}\\n `)}const i=_o(r,null);let s=null;if("error"===i.result)throw new Error(i.value.map(t=>`${t.key}: ${t.message}`).join(", "));s=(t,n,e)=>i.value.evaluate(t,n,{},e);let o=null,a=null;if(r!==e){const t=_o(e,null);if("error"===t.result)throw new Error(t.value.map(t=>`${t.key}: ${t.message}`).join(", "));o=(n,e,r,i,s)=>t.value.evaluate(n,e,{},r,void 0,void 0,i,s),a=!ss(t.value.expression)}return s=s,{filter:s,dynamicFilter:o||void 0,needGeometry:function t(n){if(!Array.isArray(n))return!1;if("within"===n[0])return!0;for(let e=1;e<n.length;e++)if(t(n[e]))return!0;return!1}(r),needFeature:!!a}}(t);return n=n&&n.filter,(t,e)=>(No.zoom=e,n&&n(No,t))}}const Vo={type:"number","property-type":"data-driven",expression:{parameters:["zoom","feature"]}};function Ro(t,n){Vo.type=n||"number";const e=Uo(t,Vo);if("success"!==e.result)throw new Error(`Invalid maplibre spec expression: ${JSON.stringify(t)} (${e.value})`);return e.value}function Ho(t){return jo(t)}const Wo={lineWidth:1,lineStrokeWidth:1,lineDx:1,lineDy:1,lineOpacity:1,linePatternAnimSpeed:1,markerWidth:1,markerHeight:1,markerDx:1,markerDy:1,markerSpacing:1,markerOpacity:1,markerRotation:1,textWrapWidth:1,textSpacing:1,textSize:1,textHaloRadius:1,textHaloOpacity:1,textDx:1,textDy:1,textOpacity:1,textRotation:1,polygonOpacity:1};function qo(t){return Wo[t]}const Go={markerPlacement:1,markerFile:1,mergeOnProperty:1,markerTextFit:1,markerType:1,markerHorizontalAlignment:1,markerVerticalAlignment:1,markerRotationAlignment:1,markerPitchAlignment:1,markerFillPatternFile:1,markerLinePatternFile:1,textName:1,textPlacement:1,textFaceName:1,textStyle:1,textHorizontalAlignment:1,textVerticalAlignment:1,textRotationAlignment:1,textPitchAlignment:1,lineJoin:1,lineCap:1,linePatternFile:1,polygonPatternFile:1},Bo={lineDasharray:1,markerLineDasharray:1,uvScale:1,uvOffset:1};function Jo(t){return Go[t]?"string":qo(t)?"number":Bo[t]?"array":"color"}var Xo=Object.freeze({__proto__:null,compileStyle:function(t=[]){return function t(n){if(!Array.isArray(n))return t([n]);const e=[];for(let t=0;t<n.length;t++){let r;r=!0===n[t].filter?function(){return!0}:Lo(n[t].filter),e.push(lr({},n[t],{filter:r}))}return e}(t=t.map(t=>{const n=lr({},t);return n.filter&&n.filter.value&&(n.filter=n.filter.value),n}))},compileFilter:Lo,createExpression:Ro,isExpression:Ho,isInterpolated:qo,getExpressionType:Jo});const Yo="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope;class Zo extends Array{push(...t){const n=t.length;for(let e=0;e<n;e++)this[this.Y++]=t[e]}fill(t,n,e){super.fill(t,n,e),e>this.Y&&(this.Y=e)}set(t,n){t>=this.Y&&(this.Y=t+1),this[t]=n}getLength(){return this.Y}setLength(t){this.Y=t,super.length<t&&(super.length=t)}trySetLength(t){t>this.Y&&this.setLength(t)}reset(){this.Y=0}}const Ko={get:function(t,n){return"length"===n?t.getLength():t[n]}};class Qo extends Array{setLength(t){super.length=t}trySetLength(t){super.length=t}}let ta;class na{static createTypedArray(t,n){return ur(t,n)}static getInstance(){return ta}constructor(){this.Z=[],this.Y=0}get(){if(!Yo)return new Qo;const t=this.Z[this.Y]=this.Z[this.Y]||new Proxy(new Zo,Ko);return t.reset(),this.Y++,t}reset(){this.Y=0}}ta=new na;const ea=[],ra={},ia={},sa={},oa=[],aa=na.getInstance();class ua{static isAtlasLoaded(t,n={}){const{iconAtlas:e}=n;return!!(!t||e&&e.positions[t])}static genFnTypes(t){const n={};for(const e in t)if(Ho(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim(),s=Jo(e);n[r]=Ro(t[e],s),n[i]=(t,e)=>{let i;ra.zoom=t,ia.properties=e;try{i=n[r].evaluateWithoutErrorHandling(ra,ia,sa,null,oa)}catch(t){return null}return i}}else if(br(t[e])){const r=(e+"_Fn_0").trim(),i=(e+"Fn").trim();qo(e)?(n[r]=p(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return br(i)?p(i)(t,e):i}):(n[r]=y(t[e]),n[i]=(t,e)=>{const i=n[r](t,e);return br(i)?y(i)(t,e):i})}return n}constructor(t,n,e){this.options=e;const r=[];this.symbolDef=n,this.symbol=m(n,()=>(r[0]=e.zoom,r)),this.styledVectors=[],this.properties={},this.K=e.fnTypes||ua.genFnTypes(this.symbolDef),br(this.symbolDef.visible)&&(this.tt=p(this.symbolDef.visible)),e.atlas&&(this.iconAtlas=e.atlas.iconAtlas,this.glyphAtlas=e.atlas.glyphAtlas),this.features=this.nt(t)}needAltitudeAttribute(){return this.options.forceAltitudeAttribute||this.maxPosZ>=Math.pow(2,17)||this.options.positionType===Float32Array}getPositionFormat(){return this.needAltitudeAttribute()?[{type:Int16Array,width:2,name:"aPosition"},{type:Float32Array,width:1,name:"aAltitude"}]:[{type:Int16Array,width:3,name:"aPosition"}]}fillPosition(t,n,e,r){this.needAltitudeAttribute()?(t.aPosition.push(n,e),t.aAltitude.push(r)):(Dr(ea,n,e,r),t.aPosition.push(ea[0],ea[1],ea[2]))}nt(t){if(!t.length)return t;const n="__fea_idx".trim();let e,r=0,i=t[r];for(;!i.geometry;)r++,i=t[r];if(Array.isArray(i.geometry)&&i.properties){let n=i.geometry[0];for(;Array.isArray(n);)n=n[0];n instanceof Ut&&(e=t)}if(!e)if(e=[],Array.isArray(i.geometry))for(let n=0;n<t.length;n++){const r=lr({},t[n]);e.push(hr(r))}else for(let r=0;r<t.length;r++){const i=t[r],s=He(i);for(let t=0;t<s.length;t++){const r=s[t];r[n]=i[n],e.push(r)}}if(this.maxPosZ=0,!this.options.forceAltitudeAttribute){const t="line"===this.symbolDef.textPlacement;let n=0,r=!1;const{textPitchAlignmentFn:i}=this.K;!i&&t&&"map"===this.symbolDef.textPitchAlignment&&(r=!0);for(let s=0;s<e.length;s++){const o=la(e[s]&&e[s].geometry);if(o>n&&(n=o),t&&!r&&i&&e[s].properties){const t=i(null,e[s].properties);"map"===t&&(r=t)}}this.hasMapPitchAlign=r,this.maxPosZ=n}const s=this.options.order;if(s){const t=[];for(let n=0;n<s.length;n++)s[n]&&t.push(Lo(s[n]));e=e.sort((n,e)=>{const r=t.length;let i=-1,s=-1;for(let o=0;o<r&&(t[o](n)&&(i=o),t[o](e)&&(s=o),!(i>=0&&i<r&&s>=0&&s<r));o++);return i-s})}return e}load(t=1){const n="__fea_idx".trim(),e="_debug_info".trim(),r=this.K,i=this.styledVectors;this.count=0;const s=this.features;if(!s||!s.length)return Promise.resolve(null);const o={},a={},u={zoom:this.options.zoom,isVector3D:!!this.options.center},h=[],l=m(this.symbolDef,()=>(h[0]=u.zoom,h));let c=0,f=s.length;const d=this.options.debugIndex;try{for(;c<f;c++){const t=s[c];if(!t||!t.geometry)continue;if(fr(d)&&t[e].index!==d)continue;t.properties||(t.properties={}),t.properties.$layer=t.layer,t.properties.$type=t.type;const h=this.createStyledVector(t,l,r,u,o,a);h&&h.feature.geometry&&(h.featureIdx=void 0===t[n]?c:t[n],this.count++,i.push(h))}}catch(t){return Promise.reject(t)}return this.options.atlas?Promise.resolve(this.pack(t)):this.loadAtlas(o,a).then(()=>this.pack(t))}loadAtlas(t,n){return new Promise((e,r)=>{this.fetchAtlas(t,n,(t,n)=>{if(t)r(t);else{if(n){const{icons:t,glyphs:e}=n;if(t&&Object.keys(t).length){for(const n in t){const e=t[n],{width:r,height:i,data:s}=e.data;e.data=new Qe({width:r,height:i},s)}this.iconAtlas=new nr(t)}if(e&&Object.keys(e).length){for(const t in e){const n=e[t];for(const t in n){const e=n[t],{width:r,height:i,data:s}=e.bitmap;e.bitmap=new Ke({width:r,height:i},s)}}this.glyphAtlas=new ir(e)}}e({glyphAtlas:this.glyphAtlas,iconAtlas:this.iconAtlas})}})})}fetchAtlas(t,n,e){Object.keys(t).length>0||Object.keys(n).length>0?this.options.requestor(t,n,e):e()}pack(t){if(!this.count)return null;if(null==t)throw new Error("layout scale is undefined");const n=this.createDataPack(this.styledVectors,t);if(!n)return null;n.properties=this.properties,this.empty&&(n.empty=!0);const e=n.buffers;delete n.buffers;const r={data:n,buffers:e};if(this.iconAtlas){const t=r.data.iconAtlas=ha(this.iconAtlas);if(t.glyphMap)for(const n in t.glyphMap)e.push(t.glyphMap[n].data.data.buffer);e.push(r.data.iconAtlas.image.data.buffer)}return this.glyphAtlas&&(r.data.glyphAtlas=ha(this.glyphAtlas),e.push(r.data.glyphAtlas.image.data.buffer)),r}createStyledVector(t,n,e,r){return new Tr(t,n,e,r)}createDataPack(t,n){if(!t||!t.length)return null;this.maxIndex=0,this.maxPos=0,this.maxAltitude=0,this.dynamicAttrs={};const e=this.data={};this.et=aa,aa.reset();let r=this.elements=aa.get();const i=this.getFormat(Array.isArray(t[0])?t[0][0].symbol:t[0].symbol),s=this.needAltitudeAttribute()?2:3;for(let t=0;t<i.length;t++)e[i[t].name]=aa.get();let o=aa.get(),a=0;const u=aa.get();let h=0,l=!1,c=!0;const f=new Set;for(let r=0,i=t.length;r<i;r++){if(!t[r].feature.geometry)continue;const i=Array.isArray(t[r])?t[r][0].feature.id:t[r].feature.id;c&&(void 0!==ia.id?f&&(f.has(ia.id)?c=!1:f.add(ia.id)):c=!1),fr(i)&&(Math.abs(i)>h&&(h=Math.abs(i)),i<0&&(l=!0));const d=this.data.aPosition.length;if(Array.isArray(t[r]))for(let e=0;e<t[r].length;e++)this.rt(t[r][e],n);else this.rt(t[r],n);const p=(e.aPosition.length-d)/s;for(let n=0;n<p;n++)o.push(t[r].featureIdx),fr(i)&&u.push(i);a=Math.max(a,t[r].featureIdx)}if(this.countOutOfAngle>0&&console.warn("text anchor along line is ignored as anchor\'s line angle is bigger than textMaxAngle."),this.hasElements()&&!r.length)return null;const d=ar(a);o=na.createTypedArray(o,d),i[0].type=this.options.positionType?this.options.positionType:or(this.maxPos);const p=this.options.center;if(p&&(p[0]||p[1])){const t=e.aPosition;for(let n=0;n<t.length;n+=s)t[n]-=p[0],t[n+1]-=p[1]}const y=function(t,n){const e={};for(let r=0;r<t.length;r++){const i=t[r],s=i.type,o=i.name;e[o]=s===Array?n[o]:ur(n[o],s)}return e}(i,e);y.aPickingId=o;const m=[];for(const t in y)m.push(y[t].buffer);const g=sr(this.maxIndex);r=na.createTypedArray(r,g),m.push(r.buffer);const v={data:y,isIdUnique:c,is2D:0===this.maxPosZ,indices:this.hasElements()?r:null,positionSize:s,buffers:m,symbolIndex:this.symbolDef.index||{index:0},dynamicAttributes:this.dynamicAttrs};if(this.it&&(v.markerPlacement=this.it),this.st&&(v.textPlacement=this.st),u.length){const t=l?or(h):ar(h);v.featureIds=na.createTypedArray(u,t),m.push(v.featureIds.buffer)}else v.featureIds=[];return v.pickingIdIndiceMap=Cr(o,v.indices),v}rt(t,n){this.tt&&!this.tt(this.options.zoom,t.feature.properties)||this.placeVector(t,n,this.formatWidth)}addElements(...t){this.maxIndex=Math.max(this.maxIndex,...t),this.elements.push(...t)}hasElements(){return!0}getAltitude(t){const{altitudeProperty:n,defaultAltitude:e,altitudeScale:r}=this.options;let i=Or(t,n,e);return r&&(i*=r),this.maxAltitude=Math.max(this.maxAltitude,Math.abs(i)),i}getIconAtlasMaxValue(){const t=this.iconAtlas.positions;let n=0;for(const e in t)if(gr(t,e)){const{tl:r,displaySize:i}=t[e],s=Math.max(r[0],r[1],i[0]-1,i[1]-1);s>n&&(n=s)}return n}}function ha(t){let n=t.positions,e=t.image&&t.image.format||"alpha";if(t instanceof nr){n={};for(const e in t.positions){const r=t.positions[e];n[e]={paddedRect:r.paddedRect,pixelRatio:r.pixelRatio,tl:r.tl,br:r.br,displaySize:r.displaySize}}e="rgba"}const r=t.image;return{image:{width:r.width,height:r.height,data:r.data,format:e},glyphMap:t.glyphMap,positions:n}}function la(t){if(!t)return 0;let n=0;if(Array.isArray(t))for(let e=0;e<t.length;e++)if(Array.isArray(t[e])){const r=la(t[e]);r>n&&(n=r)}else{const r=Math.abs(t[e].z||0);r>n&&(n=r)}else{const e=Math.abs(t.z||0);e>n&&(n=e)}return n}function ca(t,n,e,r){const i="__fn_textSize".trim();let s=t.textSize;if(cr(n.textSize))return[16,16];t[i]&&(s=t[i]);const o=[];if(o[0]=yr(s)?s(r,e):s,d(o[0])){const n=o[0].ot=o[0].ot||JSON.stringify(o[0]);t.ut||(t.ut={}),t.ut[n]||(t.ut[n]=p(o[0])),o[0]=(0,t.ut[n])(r,e)}return o[1]=o[0],o}function fa(t){const n=t.stops;let e=-1/0;for(let t=0;t<n.length;t++){let r=n[t][1];dr(n[t][1])&&(r=fa(n[t][1])),r>e&&(e=r)}return e}function da(t,n,e){return[n||"normal",e||"normal","24px",t||"Open Sans Regular"].join(" ")}const pa=/\\{[\\w-]+(?:\\|[\\w-]+)*\\}/g;function ya(t,n){return pr(t)?t.replace(pa,(function(t){if(!n)return"";if((t=t.substring(1,t.length-1)).indexOf("|")>0){const e=t.split("|");for(let t=0;t<e.length;t++){const r=n[e[t]];if(!cr(r))return r}return""}const e=n[t];return cr(e)?"":Array.isArray(e)?e.join():e})):t}var ma=Object.freeze({__proto__:null,getSDFFont:da,resolveText:ya,resolveVarNames:function(t){return t.match(pa)},resolveExpVarNames:function t(n,e){if(2!==e.length||"get"!==e[0])for(let r=0;r<e.length;r++)2===e[r].length&&"get"===e[r][0]?n.push(e[r][1]):Array.isArray(e[r])&&t(n,e[r]);else n.push(e[1])}});const ga=t=>t>=11904&&t<=12031,va=t=>t>=12032&&t<=12255,ba=t=>t>=12272&&t<=12287,wa=t=>t>=12288&&t<=12351,Ma=t=>t>=12352&&t<=12447,xa=t=>t>=12448&&t<=12543,Fa=t=>t>=12544&&t<=12591,ka=t=>t>=12704&&t<=12735,Aa=t=>t>=12736&&t<=12783,Pa=t=>t>=12784&&t<=12799,Sa=t=>t>=12800&&t<=13055,_a=t=>t>=13056&&t<=13311,Oa=t=>t>=13312&&t<=19903,Ea=t=>t>=19968&&t<=40959,Ia=t=>t>=40960&&t<=42127,$a=t=>t>=42128&&t<=42191,za=t=>t>=63744&&t<=64255,Ca=t=>t>=64336&&t<=65023,Ta=t=>t>=65040&&t<=65055,Da=t=>t>=65072&&t<=65103,ja=t=>t>=65104&&t<=65135,Ua=t=>t>=65136&&t<=65279,Na=t=>t>=65280&&t<=65519;function La(t){return!((t=>t>=1536&&t<=1791)(t)||(t=>t>=1872&&t<=1919)(t)||(t=>t>=2208&&t<=2303)(t)||Ca(t)||Ua(t))}function Va(t){return!!(746===t||747===t||!(t<4352)&&(ka(t)||Fa(t)||Da(t)&&!(t>=65097&&t<=65103)||za(t)||_a(t)||ga(t)||Aa(t)||!(!wa(t)||t>=12296&&t<=12305||t>=12308&&t<=12319||12336===t)||Oa(t)||Ea(t)||Sa(t)||(t=>t>=12592&&t<=12687)(t)||(t=>t>=43360&&t<=43391)(t)||(t=>t>=55216&&t<=55295)(t)||(t=>t>=4352&&t<=4607)(t)||(t=>t>=44032&&t<=55215)(t)||Ma(t)||ba(t)||(t=>t>=12688&&t<=12703)(t)||va(t)||Pa(t)||xa(t)&&12540!==t||!(!Na(t)||65288===t||65289===t||65293===t||t>=65306&&t<=65310||65339===t||65341===t||65343===t||t>=65371&&t<=65503||65507===t||t>=65512&&t<=65519)||!(!ja(t)||t>=65112&&t<=65118||t>=65123&&t<=65126)||(t=>t>=5120&&t<=5759)(t)||(t=>t>=6320&&t<=6399)(t)||Ta(t)||(t=>t>=19904&&t<=19967)(t)||Ia(t)||$a(t)))}function Ra(t){return!(Va(t)||function(t){return!!((t=>t>=128&&t<=255)(t)&&(167===t||169===t||174===t||177===t||188===t||189===t||190===t||215===t||247===t)||(t=>t>=8192&&t<=8303)(t)&&(8214===t||8224===t||8225===t||8240===t||8241===t||8251===t||8252===t||8258===t||8263===t||8264===t||8265===t||8273===t)||(t=>t>=8448&&t<=8527)(t)||(t=>t>=8528&&t<=8591)(t)||(t=>t>=8960&&t<=9215)(t)&&(t>=8960&&t<=8967||t>=8972&&t<=8991||t>=8996&&t<=9e3||9003===t||t>=9085&&t<=9114||t>=9150&&t<=9165||9167===t||t>=9169&&t<=9179||t>=9186&&t<=9215)||(t=>t>=9216&&t<=9279)(t)&&9251!==t||(t=>t>=9280&&t<=9311)(t)||(t=>t>=9312&&t<=9471)(t)||(t=>t>=9632&&t<=9727)(t)||(t=>t>=9728&&t<=9983)(t)&&!(t>=9754&&t<=9759)||(t=>t>=11008&&t<=11263)(t)&&(t>=11026&&t<=11055||t>=11088&&t<=11097||t>=11192&&t<=11243)||wa(t)||xa(t)||(t=>t>=57344&&t<=63743)(t)||Da(t)||ja(t)||Na(t)||8734===t||8756===t||8757===t||t>=9984&&t<=10087||t>=10102&&t<=10131||65532===t||65533===t)}(t))}function Ha(t){return t>=1424&&t<=2303||Ca(t)||Ua(t)}const Wa=[[9,9],[32,32],[5760,5760],[8192,8198],[8200,8202],[8287,12288],[6158,6158],[8203,8205]];function qa(t){for(const n of Wa)if(t>=n[0]&&t<=n[1])return!0;return!1}const Ga={"!":"︕","#":"#",$:"$","%":"%","&":"&","(":"︵",")":"︶","*":"*","+":"+",",":"︐","-":"︲",".":"・","/":"/",":":"︓",";":"︔","<":"︿","=":"=",">":"﹀","?":"︖","@":"@","[":"﹇","\\\\":"\","]":"﹈","^":"^",ht:"︳","`":"`","{":"︷","|":"―","}":"︸","~":"~","¢":"¢","£":"£","¥":"¥","¦":"¦","¬":"¬","¯":" ̄","–":"︲","—":"︱","‘":"﹃","’":"﹄","“":"﹁","”":"﹂","…":"︙","‧":"・","₩":"₩","、":"︑","。":"︒","〈":"︿","〉":"﹀","《":"︽","》":"︾","「":"﹁","」":"﹂","『":"﹃","』":"﹄","【":"︻","】":"︼","〔":"︹","〕":"︺","〖":"︗","〗":"︘","!":"︕","(":"︵",")":"︶",",":"︐","-":"︲",".":"・",":":"︓",";":"︔","<":"︿",">":"﹀","?":"︖","[":"﹇","]":"﹈","_":"︳","{":"︷","|":"―","}":"︸","⦅":"︵","⦆":"︶","。":"︒","「":"﹁","」":"﹂"};function Ba(t,n,e,r,i,s,o,a,u,h){let l=t.trim();2===h&&(l=function(t){let n="";for(let e=0;e<t.length;e++){const r=t.charCodeAt(e+1)||null,i=t.charCodeAt(e-1)||null;n+=r&&Ra(r)&&!Ga[t[e+1]]||i&&Ra(i)&&!Ga[t[e-1]]||!Ga[t[e]]?t[e]:Ga[t[e]]}return n}(l));const c=[],f={positionedGlyphs:c,text:l,top:a[1],bottom:a[1],left:a[0],right:a[0],writingMode:h};let d;return d=function(t,n){const e=[];let r=0;for(let i=0;i<n.length;i++){const s=n[i];e.push(t.substring(r,s)),r=s}return r<t.length&&e.push(t.substring(r,t.length)),e}(l,function(t,n,e,r){if(!e)return[];if(!t)return[];const i=[],s=function(t,n,e,r){let i=0;for(let e=0;e<t.length;e++){const s=r[t.charCodeAt(e)];s&&(i+=s.metrics.advance+n)}return i/Math.max(1,Math.ceil(i/e))}(t,n,e,r);let o=0;for(let e=0;e<t.length;e++){const u=t.charCodeAt(e),h=r[u];h&&!Ja[u]&&(o+=h.metrics.advance+n),e<t.length-1&&(Xa[u]||!((a=u)<11904)&&(ka(a)||Fa(a)||Da(a)||za(a)||_a(a)||ga(a)||Aa(a)||wa(a)||Oa(a)||Ea(a)||Sa(a)||Na(a)||Ma(a)||ba(a)||va(a)||Pa(a)||xa(a)||Ta(a)||$a(a)||Ia(a)))&&i.push(Ka(e+1,o,s,i,Za(u,t.charCodeAt(e+1)),!1))}var a;return function t(n){return n?t(n.priorBreak).concat(n.index):[]}(Ka(t.length,o,s,i,0,!0))}(l,o,e,n)),function(t,n,e,r,i,s,o,a,u,h){let l=0,c=0,f=0;const d=t.positionedGlyphs,p="right"===s?1:"left"===s?0:.5;for(let t=0;t<e.length;t++){let i=e[t];if(i=i.trim(),!i.length){c-=r;continue}const s=d.length;for(let t=0;t<i.length;t++){const e=i.charCodeAt(t),r=n[e];r&&(Va(e)&&1!==o?(32!==e&&d.push({glyph:e,x:l,y:0,vertical:!0}),l+=u+a):(32!==e&&d.push({glyph:e,x:l,y:c,vertical:!1}),l+=r.metrics.advance+a))}d.length!==s&&(f=Math.max(l-a,f),tu(d,n,s,d.length-1,p)),l=0,c-=r}const{horizontalAlign:y,verticalAlign:m}=Qa(i,void 0);!function(t,n,e,r,i,s,o){const a=(n-e)*i,u=-(-r*o+.5)*s;if(a||u)for(let n=0;n<t.length;n++)t[n].x+=a,t[n].y+=u}(d,p,y,m,f,r,e.length);const g=e.length*r;t.top+=-m*g,t.bottom=t.top+g,t.left+=-y*f,t.right=t.left+f}(f,n,d,r,i,s,h,o,u),!!c.length&&f}const Ja={9:!0,10:!0,11:!0,12:!0,13:!0,32:!0},Xa={10:!0,32:!0,38:!0,40:!0,41:!0,43:!0,45:!0,47:!0,173:!0,183:!0,8203:!0,8208:!0,8211:!0,8231:!0};function Ya(t,n,e,r){const i=Math.pow(t-n,2);return r?t<n?i/2:2*i:i+Math.abs(e)*e}function Za(t,n){let e=0;return 10===t&&(e-=1e4),40!==t&&65288!==t||(e+=50),41!==n&&65289!==n||(e+=50),e}function Ka(t,n,e,r,i,s){let o=null,a=Ya(n,e,i,s);for(let t=0;t<r.length;t++){const u=r[t],h=Ya(n-u.x,e,i,s)+u.badness;h<=a&&(o=u,a=h)}return{index:t,x:n,priorBreak:o,badness:a}}function Qa(t,n){let e=.5,r=.5;switch(t){case"right":case"top-right":case"bottom-right":e=n?1:0;break;case"left":case"top-left":case"bottom-left":e=n?0:1}switch(t){case"bottom":case"bottom-right":case"bottom-left":r=n?1:0;break;case"top":case"top-right":case"top-left":r=n?0:1}return{horizontalAlign:e,verticalAlign:r}}function tu(t,n,e,r,i){if(!i)return;const s=n[t[r].glyph];if(s){const n=(t[r].x+s.metrics.advance)*i;if(!n)return;for(let i=e;i<=r;i++)t[i].x-=n}}function nu(t){if(!function(t){for(const n of t)if(Ha(n.charCodeAt(0)))return!0;return!1}(t))return t;const n=[],e=[],r=[];let i=0,s=0,o=1,a=1;for(const u of t){const t=u.codePointAt(0);qa(t)?(r.push(u),i++):(o=Ha(t)?-1:1,a!==o?(s=i,e.length&&(a>0&&e.reverse(),n.push(...e)),r.length&&(n.splice(s,0,...r),r.length=0),a=o,e.length=0):r.length&&(e.push(...r),r.length=0),e.push(u),i++)}return r.length&&e.push(...r),e.length&&(a>0&&e.reverse(),n.push(...e)),n.reverse().join("")}const eu=/\\{ *([\\w_]+) *\\}/g;class ru{constructor(t,n,e,r,i){this.feature=t,this.symbolDef=n,this.symbol=e,this.options=i,this.lt=this.ct.bind(this),this.K=r}ct(t,n){return this.feature.properties[n]||"default"}getShape(t,n){if(this.ft)return this.ft;const{textHorizontalAlignmentFn:e,textVerticalAlignmentFn:r,markerHorizontalAlignmentFn:i,markerVerticalAlignmentFn:s,textWrapWidthFn:o}=this.K;let a;const u=this.symbol,h=this.getIconAndGlyph(),l=this.feature.properties;if(h&&h.glyph){const{font:t,text:i}=h.glyph;if(""===i)return null;const s=this.size[0]/24,c=24,f=u.textKeepUpright,d="map"===u.textRotationAlignment&&"line"===u.textPlacement&&!u.isIconText,p=n.glyphMap[t],y=iu(e?e(null,l):u.textHorizontalAlignment,r?r(null,l):u.textVerticalAlignment),m=1.2*c,g=function(t){for(let n=0;n<t.length;n++)if(!La(t.charAt(n).charCodeAt(0)))return!1;return!0}(i),v=g&&u.textLetterSpacing/s||0,b=[u.textDx/s||0,u.textDy/s||0],w=((o?o(null,l):u.textWrapWidth)||10*c)/s;a={},a.horizontal=Ba(i,p,w,m,y,"center",v,b,c,1),g&&d&&f&&(a.vertical=Ba(i,p,w,m,y,"center",v,b,c,2))}else if(h&&h.icon){if(!t.positions[h.icon.url])return null;const n=iu(i?i(null,l):u.markerHorizontalAlignment,s?s(null,l):u.markerVerticalAlignment);a=function(t,n,e){let{horizontalAlign:r,verticalAlign:i}=Qa(n,e);e?r=1-r:i=1-i;const s=-2048*r,o=-2048*i;return{image:t,top:o,bottom:o+2048,left:s,right:s+2048}}(t.positions[h.icon.url],n,this.options.isVector3D),this.size||(this.size=a.image.displaySize)}return this.ft=a,a}getIconAndGlyph(){if(this.iconGlyph)return this.iconGlyph;const{markerFileFn:t,markerTypeFn:n,markerPathFn:e,markerWidthFn:r,markerHeightFn:i,markerFillFn:s,markerFillPatternFileFn:o,markerFillOpacityFn:a,markerTextFitFn:u,markerTextFitPaddingFn:h,markerLineColorFn:l,markerLineWidthFn:c,markerLineOpacityFn:f,markerLineDasharrayFn:y,markerLinePatternFileFn:m,markerPathWidthFn:g,markerPathHeightFn:v,textNameFn:b,textFaceNameFn:w,textStyleFn:M,textWeightFn:x}=this.K,{zoom:F}=this.options,k={},A=this.symbol,P=this.feature.properties,S=t?t(null,P):A.markerFile,_=n?n(null,P):A.markerType,O=S||_||A.markerPath,E=!cr(this.symbolDef.textName);let I;if(O){I=function(t,n,e,r,i,s){if(cr(n.markerWidth)&&cr(n.markerHeight))return null;const o="__fn_markerWidth".trim(),a="__fn_markerHeight".trim();let u=n.markerWidth||0,h=n.markerHeight||0;return dr(u)&&("identity"!==u.type?u=fa(u):(u=t.markerWidth,t[o]&&(u=t[o](r,e)),dr(u)&&(u="identity"===u.type?i(r,e):fa(u)))),dr(h)&&("identity"!==h.type?h=fa(h):(h=t.markerHeight,t[a]&&(h=t[a](r,e)),dr(h)&&(h="identity"===h.type?s(r,e):fa(h)))),[u,h]}(A,this.symbolDef,P,F,r,i)||[0,0];let t=A.markerTextFit;if(u&&(t=u(F,P)),t&&A.text&&"none"!==t){const n=A.text.textSize;let e=A.text.textName;d(e)&&(e=p(e)(F,P));const r=ya(e,P);if(r){const e="__fn_textSize".trim(),i="__fn_textSize_0".trim();d(n)&&!A.text[e]&&(A.text[i]=p(n),A.text[e]=(t,n)=>{const e=A.text[i](t,n);return d(e)?p(e)(t,n):e});const s=ca(A.text,A.text,P,F);if("width"!==t&&"both"!==t||(I[0]=s[0]*r.length),"height"!==t&&"both"!==t||(I[1]=s[1]),s[0]&&s[1]){let t=A.markerTextFitPadding||[0,0,0,0];h&&(t=h(F,P)),I[0]+=t[1]+t[3],I[1]+=t[0]+t[2]}}else I[0]=I[1]=-1}}if(E&&(I=ca(A,this.symbolDef,P,F)),!I)return k;if(I[0]=Math.ceil(I[0]),I[1]=Math.ceil(I[1]),this.size=I,O&&I[0]>=0&&I[1]>=0){let t;if(_){const n={};if(n.markerType=_,"path"===_&&(n.markerPath=e?e(null,P):A.markerPath,n.markerPathWidth=g?g(null,P):A.markerPathWidth,n.markerPathHeight=v?v(null,P):A.markerPathHeight),r){const t=r(null,P);cr(t)||(n.markerWidth=t)}else A.markerWidth>=0&&(n.markerWidth=A.markerWidth);if(i){const t=i(null,P);cr(t)||(n.markerHeight=t)}else A.markerHeight>=0&&(n.markerHeight=A.markerHeight);if(s){const t=s(null,P);cr(t)||(n.markerFill=t)}else A.markerFill&&(n.markerFill=A.markerFill);if(o){const t=o(null,P);cr(t)||(n.markerFillPatternFile=t)}else A.markerFillPatternFile&&(n.markerFillPatternFile=A.markerFillPatternFile);if(a){const t=a(null,P);cr(t)||(n.markerFillOpacity=t)}else A.markerFillOpacity>=0&&(n.markerFillOpacity=A.markerFillOpacity);if(l){const t=l(null,P);cr(t)||(n.markerLineColor=t)}else A.markerLineColor&&(n.markerLineColor=A.markerLineColor);if(c){const t=c(null,P);cr(t)||(n.markerLineWidth=t)}else A.markerLineWidth>=0&&(n.markerLineWidth=A.markerLineWidth);if(f){const t=f(null,P);cr(t)||(n.markerLineOpacity=t)}else A.markerLineOpacity>=0&&(n.markerLineOpacity=A.markerLineOpacity);if(y){const t=y(null,P);cr(t)||(n.markerLineDasharray=t)}else A.markerLineDasharray&&(n.markerLineDasharray=A.markerLineDasharray);if(m){const t=m(null,P);cr(t)||(n.markerLinePatternFile=t)}else A.markerLinePatternFile&&(n.markerLinePatternFile=A.markerLinePatternFile);t="vector://"+JSON.stringify(n)}else t=S?S.replace(eu,this.lt):A.markerPath?function(t,n,e){if(!t.markerPath)return null;let r=1;const i=function(t){const n={stroke:{stroke:t.markerLineColor,"stroke-width":t.markerLineWidth,"stroke-opacity":t.markerLineOpacity,"stroke-dasharray":null,"stroke-linecap":"butt","stroke-linejoin":"round"},fill:{fill:t.markerFill,"fill-opacity":t.markerFillOpacity}};return 0===n.stroke["stroke-width"]&&(n.stroke["stroke-opacity"]=0),n}(t);fr(t.markerOpacity)&&(r=t.markerOpacity),fr(t.opacity)&&(r*=t.opacity);const s={};if(i){for(const t in i.stroke)gr(i.stroke,t)&&(cr(i.stroke[t])||(s[t]=i.stroke[t]));for(const t in i.fill)gr(i.fill,t)&&(cr(i.fill[t])||(s[t]=i.fill[t]))}const o=Array.isArray(t.markerPath)?t.markerPath:[t.markerPath];let a;const u=[];for(let t=0;t<o.length;t++)a=pr(o[t])?{path:o[t]}:o[t],a=lr({},a,s),a.d=a.path,delete a.path,u.push(a);const h=[\'<svg version="1.1"\',\'xmlns="http://www.w3.org/2000/svg"\'];r<1&&h.push(\'opacity="\'+r+\'"\'),t.markerPathWidth&&t.markerPathHeight&&h.push(\'viewBox="0 0 \'+t.markerPathWidth+" "+t.markerPathHeight+\'"\'),h.push(\'preserveAspectRatio="none"\'),n&&h.push(\'width="\'+n+\'"\'),e&&h.push(\'height="\'+e+\'"\'),h.push("><defs></defs>");for(let t=0;t<u.length;t++){let n="<path ";for(const e in u[t])gr(u[t],e)&&(n+=" "+e+\'="\'+u[t][e]+\'"\');n+="></path>",h.push(n)}return h.push("</svg>"),"data:image/svg+xml;base64,"+btoa(h.join(" "))}(A,I[0],I[1]):null;k.icon={url:t,size:I}}if(E){const t=b?b(this.options.zoom,P):A.textName;if(t||0===t){const n=da(w?w(null,P):A.textFaceName,M?M(null,P):A.textStyle,x?x(null,P):A.textWeight);let e=ya(t,P);e&&e.length&&(e=nu(e),k.glyph={font:n,text:e})}}return this.iconGlyph=k,k}}function iu(t,n){n&&"middle"!==n||(n="center"),t&&"middle"!==t||(t="center");let e="center"!==n?n:"";return e+="center"!==t?(e.length?"-":"")+t:"",e\n/*!\n * From mapbox-gl-js\n * MIT License\n * https://github.com/mapbox/mapbox-gl-js\n */}function su(t,n,e,r,i){const s=[];let o;for(let a=0;a<t.length;a++){const u=t[a];let h,l=!1;for(let t=0;t<u.length-1;t++){let a=u[t],c=u[t+1];a.x<n&&c.x<n||(a.x<n?(o=a,a=new Ut(n,a.y+(n-a.x)/(c.x-a.x)*(c.y-a.y)).T(),a.z=o.z+(n-o.x)/(c.x-o.x)*(c.z-o.z),l=!0):c.x<n&&(o=c,c=new Ut(n,a.y+(n-a.x)/(c.x-a.x)*(c.y-a.y)).T(),c.z=a.z+(n-a.x)/(o.x-a.x)*(o.z-a.z),l=!0),a.y<e&&c.y<e||(a.y<e?(o=a,a=new Ut(a.x+(e-a.y)/(c.y-a.y)*(c.x-a.x),e).T(),a.z=o.z+(e-o.y)/(c.y-o.y)*(c.z-o.z),l=!0):c.y<e&&(o=c,c=new Ut(a.x+(e-a.y)/(c.y-a.y)*(c.x-a.x),e).T(),c.z=a.z+(e-a.y)/(o.y-a.y)*(o.z-a.z),l=!0),a.x>=r&&c.x>=r||(a.x>=r?(o=a,a=new Ut(r,a.y+(r-a.x)/(c.x-a.x)*(c.y-a.y)).T(),a.z=o.z+(r-o.x)/(c.x-o.x)*(c.z-o.z),l=!0):c.x>=r&&(o=c,c=new Ut(r,a.y+(r-a.x)/(c.x-a.x)*(c.y-a.y)).T(),c.z=a.z+(r-a.x)/(o.x-a.x)*(o.z-a.z),l=!0),a.y>=i&&c.y>=i||(a.y>=i?(o=a,a=new Ut(a.x+(i-a.y)/(c.y-a.y)*(c.x-a.x),i).T(),a.z=o.z+(i-o.y)/(c.y-o.y)*(c.z-o.z),l=!0):c.y>=i&&(o=c,c=new Ut(a.x+(i-a.y)/(c.y-a.y)*(c.x-a.x),i).T(),c.z=a.z+(i-a.y)/(o.y-a.y)*(o.z-a.z),l=!0),h&&a.equals(h[h.length-1])||(h=[a],s.push(h)),l&&(h.clipped=!0),h.push(c)))))}}return s}class ou extends Ut{constructor(t,n,e,r){super(t,n),this.angle=e,void 0!==r&&(this.segment=r)}clone(){return new ou(this.x,this.y,this.angle,this.segment)}}\n/*!\n * From mapbox-gl-js\n * MIT License\n * https://github.com/mapbox/mapbox-gl-js\n */function au(t,n,e,r,i){if(void 0===n.segment)return!0;let s=n,o=n.segment+1,a=0;for(;a>-e/2;){if(o--,o<0)return!1;a-=t[o].dist(s),s=t[o]}a+=t[o].dist(t[o+1]),o++;const u=[];let h=0;for(;a<e/2;){const n=t[o],e=t[o+1];if(!e)return!1;let s=t[o-1].angleTo(n)-n.angleTo(e);for(s=Math.abs((s+3*Math.PI)%(2*Math.PI)-Math.PI),u.push({distance:a,angleDelta:s}),h+=s;a-u[0].distance>r;)h-=u.shift().angleDelta;if(h>i)return!1;o++,a+=n.dist(e)}return!0}function uu(t,n,e,r,i,s,o,a,u,h,l){const c=function(t,n,e){return t?.6*n*e:0}(r,s,o),f=function(t,n){return Math.max(t?t.right-t.left:0,n?n.right-n.left:0)}(r,i),d=0===t[0].x||t[0].x===u||0===t[0].y||t[0].y===u;return n-f*o<n/4&&(n=f*o+n/4),function t(n,e,r,i,s,o,a,u,h,l,c){let f=0;const d=o/2,p=function(t){let n=0;for(let e=0;e<t.length-1;e++)n+=t[e].dist(t[e+1]);return n}(n);let y=0,m=e-r,g=[];for(let t=0;t<n.length-1;t++){const e=n[t],a=n[t+1],u=e.dist(a),v=a.angleTo(e);for(;m+r<y+u;){m+=r;const b=(m-y)/u,w=hu(e.x,a.x,b),M=hu(e.y,a.y,b),x=hu(e.z||0,a.z||0,b);if(w>=0&&w<h&&M>=0&&M<h&&m-d>=0&&m+d<=p){const r=new ou(w,M,v,t);r.z=x,l&&(r.axis=[e.y-M,w-e.x],r.angleR=x===(e.z||0)?0:Math.atan(.9*(x-(e.z||0))*c/e.dist(r))),r.line=n,r.T(),!i||au(n,r,o,i,s)?g.push(r):i&&f++}}y+=u}return u||g.length||a||(g=t(n,y/2,r,i,s,o,a,!0,h,l,c)),g.countOutOfAngle=f,g}(t,d?n/2*a%n:(f/2+2*s)*o*a%n,n,c,e,f*o,d,!1,u,h,l)}function hu(t,n,e){return t*(1-e)+n*e}function lu(t,n){const e=t.length;if(e<=1)return[t];const r=[];let i,s;for(let n=0;n<e;n++){const e=Sr(t[n]);0!==e&&(t[n].area=Math.abs(e),void 0===s&&(s=e<0),s===e<0?(i&&r.push(i),i=[t[n]]):i.push(t[n]))}if(i&&r.push(i),n>1)for(let t=0;t<r.length;t++)r[t].length<=n||(Gn(r[t],n,1,r[t].length-1,cu),r[t]=r[t].slice(0,n));return r}function cu(t,n){return n.area-t.area}function fu(t,n,e){const r=n.distSqr(e);if(0===r)return t.distSqr(n);const i=((t.x-n.x)*(e.x-n.x)+(t.y-n.y)*(e.y-n.y))/r;return t.distSqr(i<0?n:i>1?e:e.sub(n).A(i).m(n))}function du(t,n=1,e=!1){let r=1/0,i=1/0,s=-1/0,o=-1/0;const a=t[0];for(let t=0;t<a.length;t++){const n=a[t];(!t||n.x<r)&&(r=n.x),(!t||n.y<i)&&(i=n.y),(!t||n.x>s)&&(s=n.x),(!t||n.y>o)&&(o=n.y)}const u=Math.min(s-r,o-i);let h=u/2;const l=new Yn(null,pu);if(0===u)return new Ut(r,i);for(let n=r;n<s;n+=u)for(let e=i;e<o;e+=u)l.push(new yu(n+h,e+h,h,t));let c=function(t){let n=0,e=0,r=0;const i=t[0];for(let t=0,s=i.length,o=s-1;t<s;o=t++){const s=i[t],a=i[o],u=s.x*a.y-a.x*s.y;e+=(s.x+a.x)*u,r+=(s.y+a.y)*u,n+=3*u}return new yu(e/n,r/n,0,t)}(t),f=l.length;for(;l.length;){const r=l.pop();(r.d>c.d||!c.d)&&(c=r,e&&console.log("found best %d after %d probes",Math.round(1e4*r.d)/1e4,f)),r.max-c.d<=n||(h=r.h/2,l.push(new yu(r.p.x-h,r.p.y-h,h,t)),l.push(new yu(r.p.x+h,r.p.y-h,h,t)),l.push(new yu(r.p.x-h,r.p.y+h,h,t)),l.push(new yu(r.p.x+h,r.p.y+h,h,t)),f+=4)}return e&&(console.log("num probes: "+f),console.log("best distance: "+c.d)),c.p}function pu(t,n){return n.max-t.max}function yu(t,n,e,r){this.p=new Ut(t,n),this.h=e,this.d=function(t,n){let e=!1,r=1/0;for(let i=0;i<n.length;i++){const s=n[i];for(let n=0,i=s.length,o=i-1;n<i;o=n++){const i=s[n],a=s[o];i.y>t.y!=a.y>t.y&&t.x<(a.x-i.x)*(t.y-i.y)/(a.y-i.y)+i.x&&(e=!e),r=Math.min(r,fu(t,i,a))}}return(e?1:-1)*Math.sqrt(r)}(this.p,r),this.max=this.d+this.h*Math.SQRT2}function mu(t,n,e,r,i,s,o,a,u,h){const{feature:l,size:c,symbol:f}=t,d=c?24:0,p=i*(c?c[0]/d:1);if("line"===o){const t=[];t.countOutOfAngle=0;let i=l.geometry;s&&(i=su(l.geometry,0,0,s,s));for(let o=0;o<i.length;o++){const l=uu(i[o],a,e,f.isIconText?null:r&&r.vertical||r&&r.horizontal||r,null,d,f.isIconText?1:p,1,s||1/0,u,h);if(f.textPlacement&&!f.isIconText)for(let t=0;t<l.length;t++)l[t].startIndex=n.length/3;if(t.push.apply(t,l),f.textPlacement&&!f.isIconText)for(let t=0;t<i[o].length;t++)n.push(i[o][t].x,i[o][t].y,i[o][t].z||0);t.countOutOfAngle+=l.countOutOfAngle||0}return t}return gu(l,o,s)}function gu(t,n,e,r,i){const s=[];if(3===t.type){const o=lu(t.geometry,0);for(let t=0;t<o.length;t++){const a=o[t];if("vertex"===n)for(let t=0;t<a.length;t++){const n=a[t];for(let o=0;o<n.length;o++)Ir(n[o],e)||(s.push(n[o]),r&&(0===o?vu(n[o],n[o],n[t+1],i):vu(n[o],n[o-1],n[o],i)))}else if("vertex-first"===n){const t=a[0];t&&t[0]&&!Ir(t[0],e)&&(s.push(t[0]),r&&vu(t[0],t[0],t[1],i))}else if("vertex-last"===n||"vertex-firstlast"===n){const t=a[0];if("vertex-firstlast"===n&&t&&t[0]&&!Ir(t[0],e)&&(s.push(t[0]),r&&vu(t[0],t[0],t[1],i)),t&&t[t.length-1]&&!Ir(t[t.length-1],e)){const n=t.length-1;s.push(t[n]),r&&vu(t[n],t[n-1],t[n],i)}}else{const t=du(a,16);Ir(t,e)||s.push(t)}}}else if(2===t.type)for(let o=0;o<t.geometry.length;o++){const a=t.geometry[o];if("vertex"===n)for(let t=0;t<a.length;t++)Ir(a[t],e)||(s.push(a[t]),r&&(0===t?vu(a[t],a[t],a[t+1],i):vu(a[t],a[t-1],a[t],i)));else if("vertex-last"===n||"vertex-firstlast"===n){if("vertex-firstlast"!==n||Ir(a[0],e)||(s.push(a[0]),r&&vu(a[0],a[0],a[1],i)),a&&a[a.length-1]&&!Ir(a[a.length-1],e)){const t=a.length-1;s.push(a[t]),r&&vu(a[t],a[t-1],a[t],i)}}else Ir(a[0],e)||(s.push(a[0]),r&&vu(a[0],a[0],a[1],i))}else if(1===t.type)for(let n=0;n<t.geometry.length;n++){const i=t.geometry[n];for(let t=0;t<i.length;t++){const n=i[t];Ir(n,e)||(r&&(n.xRotation=0,n.yRotation=0,n.zRotation=0),s.push(n))}}return s}function vu(t,n,e,r){if(t.xRotation||t.yRotation||t.zRotation)return t;const i=e.x-n.x,s=n.y-e.y,o=(e.z-n.z)*r,a=Math.atan2(s,i);t.zRotation=a;const u=Math.atan2(o,Math.sqrt(i*i+s*s));return t.xyRotation=u,t}function bu(t,n){const e={},r={},i=[];let s=0;function o(n){i.push(t[n]),s++}function a(t,n,e){const s=r[t];return delete r[t],r[n]=s,i[s].geometry[0].pop(),i[s].geometry[0]=i[s].geometry[0].concat(e[0]),s}function u(t,n,r){const s=e[n];return delete e[n],e[t]=s,i[s].geometry[0].shift(),i[s].geometry[0]=r[0].concat(i[s].geometry[0]),s}function h(t,n,e){const r=e?n[0][n[0].length-1]:n[0][0];return`${t}:${r.x}:${r.y}`}for(let l=0;l<t.length;l++){const c=t[l],f=c.geometry;if(!f)continue;const d=c.properties[n]?c.properties[n].toString():null;if(!d){o(l);continue}const p=h(d,f),y=h(d,f,!0);if(p in r&&y in e&&r[p]!==e[y]){const t=u(p,y,f),n=a(p,y,i[t].geometry);delete e[p],delete r[y],r[h(d,i[n].geometry,!0)]=n,i[t].geometry=null}else p in r?a(p,y,f):y in e?u(p,y,f):(o(l),e[p]=s-1,r[y]=s-1)}return i.filter(t=>t.geometry)}class wu extends ua{static needMerge(t,n,e){if(!t)return!1;let r="line"===t.textPlacement||"line"===t.markerPlacement;return r||(n.textPlacementFn&&(r="line"===n.textPlacementFn(e)),n.markerPlacementFn&&(r="line"===n.markerPlacementFn(e))),t.mergeOnProperty&&r}static mergeLineFeatures(t,n,e,r){const i="__index".trim();let s=n.textPlacement,o=n.markerPlacement;e.textPlacementFn&&(s=e.textPlacementFn(r)),e.markerPlacementFn&&(o=e.markerPlacementFn(r));const a=function(t,n,e,r,i){const s="__index".trim(),o=ua.genFnTypes(n),{mergeOnPropertyFn:a}=o;if(!n.mergeOnProperty||"line"!==r&&"line"!==e)return[];if(!($r(u=n.mergeOnProperty)||"string"!=typeof u&&(null===u.constructor||u.constructor!==String)||"line"!==r&&"line"!==e))return[{features:t,property:n.mergeOnProperty}];var u;const h=[],l={},c=[];for(let o=0;o<t.length;o++){t[o][s]=o;const u=t[o].properties=t[o].properties||{};u.$layer=t[o].layer,u.$type=t[o].type;let f=e;"line"!==f&&(f=r);const d=a?a(i,u):n.mergeOnProperty;"line"!==f||$r(d)?c.push(t[o]):(void 0===l[d]&&(l[d]=h.length,h.push({features:[],property:d})),h[l[d]].features.push(t[o]))}return c.length&&h.push({features:c}),h}(t,n,o,s,r);if(a.length){const n=[];for(let e=0;e<a.length;e++)n.push(a[e].property?bu(a[e].features,a[e].property):t);if(1===n.length)return n[0];{let t=[];for(let e=0;e<n.length;e++)t=t.concat(n[e]);return t.sort((t,n)=>t[i]-n[i]),t}}}static splitPointSymbol(t,n=0){const e=[];if(Array.isArray(t)){const n=t;for(let t=0;t<n.length;t++)n[t]&&e.push(...wu.splitPointSymbol(n[t],t));return e}let r=null,i=null;for(const n in t)0===n.indexOf("marker")?(r=r||{},r[n]=t[n]):0===n.indexOf("text")&&(i=i||{},i[n]=t[n]);return r&&(r.isIconText=!0,t.mergeOnProperty&&(r.mergeOnProperty=t.mergeOnProperty),e.push(r)),i&&(r&&(i.textPlacement=r.markerPlacement,i.textSpacing=r.markerSpacing,i.isIconText=!0),t.mergeOnProperty&&(i.mergeOnProperty=t.mergeOnProperty),e.push(i)),void 0!==t.visible&&(r&&(r.visible=t.visible),i&&(i.visible=t.visible)),r&&(r.markerTextFit&&i&&(r.text={},r.text.textName=i.textName,r.text.textSize=i.textSize),r.index={index:n,type:0}),i&&(i.index={index:n,type:1}),e}static isAtlasLoaded(t,n){const{icon:e,glyph:r}=t,{iconAtlas:i,glyphAtlas:s}=n;if(e&&(!i||!i.positions[e.url]))return!1;if(r){if(!s||!s.positions[r.font])return!1;const t=s.positions[r.font],{text:n}=r;for(let e=0;e<n.length;e++)if(!t[n.charCodeAt(e)])return!1}return!0}constructor(t,n,e){super(t,n,e),this.dt=n.textPlacement,this.K.textPlacementFn&&(this.dt=this.K.textPlacementFn(this.options.zoom))}createStyledVector(t,n,e,r,i,s){const o=new ru(t,this.symbolDef,n,e,r),a=o.getIconAndGlyph();if(a.icon&&!this.options.atlas){const{url:t,size:n}=a.icon;i[t]||(i[t]=a.icon.size),i[t][0]<n[0]&&(i[t][0]=n[0]),i[t][1]<n[1]&&(i[t][1]=n[1])}if(a.glyph&&!this.options.atlas){const{font:t,text:n}=a.glyph,e=s[t]=s[t]||{};for(let t=0;t<n.length;t++)e[n.charCodeAt(t)]=1;"line"===this.dt&&(s.options={isCharsCompact:!1})}return this.options.allowEmptyPack||a.icon||a.glyph?o:null}getFormat(t){const n=void 0!==t.textName,e=n?this.getPackSDFFormat(t):this.getPackMarkerFormat();n?e.push(...this.pt()):e.push(...this.yt());const{markerOpacityFn:r,textOpacityFn:i,markerPitchAlignmentFn:s,textPitchAlignmentFn:o,markerRotationAlignmentFn:a,textRotationAlignmentFn:u,markerRotationFn:h,textRotationFn:l,markerAllowOverlapFn:c,textAllowOverlapFn:f,markerIgnorePlacementFn:d,textIgnorePlacementFn:p}=this.K;return(r||i)&&e.push({type:Uint8Array,width:1,name:"aColorOpacity"}),(s||o)&&e.push({type:Uint8Array,width:1,name:"aPitchAlign"}),(a||u)&&e.push({type:Uint8Array,width:1,name:"aRotationAlign"}),(h||l)&&e.push({type:Uint16Array,width:1,name:"aRotation"}),(c||f||d||p)&&e.push({type:Uint8Array,width:1,name:"aOverlap"}),e}gt(){return this.hasMapPitchAlign}pt(){const{textFillFn:t,textSizeFn:n,textHaloFillFn:e,textHaloRadiusFn:r,textHaloOpacityFn:i,textDxFn:s,textDyFn:o}=this.K,a=[];return t&&a.push({type:Uint8Array,width:4,name:"aTextFill"}),n&&a.push({type:Uint8Array,width:1,name:"aTextSize"}),e&&a.push({type:Uint8Array,width:4,name:"aTextHaloFill"}),r&&a.push({type:Uint8Array,width:1,name:"aTextHaloRadius"}),i&&a.push({type:Uint8Array,width:1,name:"aTextHaloOpacity"}),s&&a.push({type:Int8Array,width:1,name:"aTextDx"}),o&&a.push({type:Int8Array,width:1,name:"aTextDy"}),a}yt(){const{markerWidthFn:t,markerHeightFn:n,markerDxFn:e,markerDyFn:r}=this.K,i=[];return t&&i.push({type:this.options.markerWidthType||Uint8Array,width:1,name:"aMarkerWidth"}),n&&i.push({type:this.options.markerHeightType||Uint8Array,width:1,name:"aMarkerHeight"}),e&&i.push({type:Int8Array,width:1,name:"aMarkerDx"}),r&&i.push({type:Int8Array,width:1,name:"aMarkerDy"}),i}createDataPack(){if(!this.iconAtlas&&!this.glyphAtlas){if(!this.options.allowEmptyPack)return null;this.empty=!0}this.countOutOfAngle=0,this.lineVertex=[];const t=super.createDataPack.apply(this,arguments);return t?(t.lineVertex=new Int16Array(this.lineVertex),t.buffers.push(t.lineVertex.buffer),t):null}placeVector(t,n){const e=t.getShape(this.iconAtlas,this.glyphAtlas);if(!(this.options.allowEmptyPack||e&&e.image||e&&(e.horizontal||e.vertical)))return;const r=this.vt(t,e,n);if(this.countOutOfAngle+=r.countOutOfAngle||0,0===r.length)return;const i=this.data,s=this.needAltitudeAttribute()?2:3;let o=this.data.aPosition.length/s;const a=t.symbol,u=t.feature.properties,h="line"===this.dt&&!a.isIconText,l=void 0!==a.textName,c=l&&h&&function(t){let n=0;for(let e=0;e<t.length;e++)if(Va(t.charAt(e).charCodeAt(0)))n=0;else if(n++,n>=1)return!1;return!0}(t.getIconAndGlyph().glyph.text)?1:0,{textFillFn:f,textSizeFn:p,textHaloFillFn:y,textHaloRadiusFn:m,textHaloOpacityFn:g,textDxFn:v,textDyFn:b,textPitchAlignmentFn:w,textRotationAlignmentFn:M,textRotationFn:x,textAllowOverlapFn:F,textIgnorePlacementFn:k,textOpacityFn:A,markerWidthFn:P,markerHeightFn:S,markerDxFn:_,markerDyFn:O,markerPitchAlignmentFn:E,markerRotationAlignmentFn:I,markerRotationFn:$,markerAllowOverlapFn:z,markerIgnorePlacementFn:C,markerOpacityFn:T}=this.K;let D,j,U,N,L,V,R,H,W,q,G,B,J,X,Y,Z,K;if(l){const n=t.getIconAndGlyph().glyph.font;D=function(t,n,e){const r=t.positionedGlyphs,i=[];for(let s=0;s<r.length;s++){const o=r[s],a=e[o.glyph];if(!a)continue;const u=a.rect;if(!u)continue;const h=4,l=a.metrics.advance/2,c=a.metrics.height/2,f=n?[o.x+l,0]:[0,0],d=n?[0,o.y-c]:[o.x+l,o.y-c],p=a.metrics.left-h-l+d[0],y=a.metrics.top-h+d[1],m=p+u.w,g=y+u.h,v=new Ut(p,y),b=new Ut(m,y),w=new Ut(p,g),M=new Ut(m,g);if(n&&o.vertical){const t=new Ut(-l,l),n=-Math.PI/2,e=new Ut(5,0);v._(n,t).m(e),b._(n,t).m(e),w._(n,t).m(e),M._(n,t).m(e)}i.push({tl:v,tr:b,bl:w,br:M,tex:u,writingMode:t.writingMode,glyphOffset:f})}return i}(e.horizontal,h,this.glyphAtlas.positions[n]),f&&(j=f(null,u),d(j)?(this.dynamicAttrs.aTextFill=1,j=[0,0,0,0]):j=Fr([],j)),p&&(U=p(this.options.zoom,u),$r(U)&&(U=14)),y&&(N=y(null,u),d(N)?(this.dynamicAttrs.aTextHaloFill=1,N=[0,0,0,0]):N=Fr([],N)),m&&(L=m(null,u)),g&&(V=255*g(null,u)),v&&(R=v(null,u)||0),b&&(H=b(null,u)||0),w&&(J=+("map"===w(null,u))),M&&(X=+("map"===M(null,u))),x&&(Y=zr(x(null,u),0,360)*Math.PI/180)}else D=e?function(t){const n=t.image,e=t.top-1/n.pixelRatio,r=t.left-1/n.pixelRatio,i=t.bottom+1/n.pixelRatio,s=t.right+1/n.pixelRatio;let o,a,u,h;return o=new Ut(r,e),a=new Ut(s,e),u=new Ut(s,i),h=new Ut(r,i),[{tl:o,tr:a,bl:h,br:u,tex:{x:n.tl[0],y:n.tl[1],w:n.displaySize[0],h:n.displaySize[1]},writingMode:void 0,glyphOffset:[0,0]}]}(e):function(){const t=new Ut(0,0),n=new Ut(0,0),e=new Ut(0,0);return[{tl:t,tr:n,bl:new Ut(0,0),br:e,tex:{x:0,y:0,w:0,h:0},writingMode:void 0,glyphOffset:[0,0]}]}(),P&&(W=P(null,u)),$r(W)&&(W=D[0].tex.w),S&&(q=S(null,u)),$r(q)&&(q=D[0].tex.h),_&&(G=_(null,u)),O&&(B=O(null,u)),E&&(J=+("map"===E(null,u))),I&&(X=+("map"===I(null,u))),$&&(Y=zr($(null,u),0,360)*Math.PI/180);d(U)&&(this.dynamicAttrs.aTextSize=1),d(L)&&(this.dynamicAttrs.aTextHaloRadius=1),d(V)&&(this.dynamicAttrs.aTextHaloOpacity=1),d(R)&&(this.dynamicAttrs.aTextDx=1),d(H)&&(this.dynamicAttrs.aTextDy=1),d(W)&&(this.dynamicAttrs.aMarkerWidth=1),d(q)&&(this.dynamicAttrs.aMarkerHeight=1),d(G)&&(this.dynamicAttrs.aMarkerDx=1),d(B)&&(this.dynamicAttrs.aMarkerDy=1),d(J)&&(this.dynamicAttrs.aPitchAlign=1),d(X)&&(this.dynamicAttrs.aRotationAlign=1),d(Y)&&(this.dynamicAttrs.aRotation=1);const Q=z||F;Q&&(Z=Q(null,u)||0);const tt=C||k;let nt;tt&&(K=tt(null,u)||0);const et=A||T;et&&(nt=255*et(this.options.zoom,u));const rt=this.options.EXTENT,it=D.length,{altitudeScale:st,altitudeProperty:ot,defaultAltitude:at}=this.options,{altitude:ut}=Er(t.feature,st,ot,at);for(let t=0;t<r.length;t++){const n=r[t],e=n.z||ut||0;if(rt!==1/0&&Ir(n,rt))continue;const s=n.x,a=n.y,u=D.length;for(let t=0;t<u;t++){const r=D[t],{tl:u,tr:f,bl:d,br:p,tex:y}=r;this.bt(i,s,a,e,10*u.x,10*u.y,y.x,y.y+y.h),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*f.x,10*f.y,y.x+y.w,y.y+y.h),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*d.x,10*d.y,y.x,y.y),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.bt(i,s,a,e,10*p.x,10*p.y,y.x+y.w,y.y),l&&this.wt(i,h,it,r.glyphOffset,n,c,n.axis,n.angleR),this.Mt(i,j,U,N,L,V,R,H,W,q,G,B,nt,J,X,Y,Z,K),this.addElements(o,o+1,o+2),this.addElements(o+1,o+2,o+3),o+=4;const m=Math.max(Math.abs(s),Math.abs(a),Math.abs(e));m>this.maxPos&&(this.maxPos=m)}}}bt(t,n,e,r,i,s,o,a){this.fillPosition(t,n,e,r),t.aShape.push(i,s),t.aTexCoord.push(o,a)}wt(t,n,e,r,i,s,o,a){if(t.aCount.push(e),n){t.aGlyphOffset.push(r[0],r[1]),this.gt()&&t.aPitchRotation.push(o[0],o[1],a);const n=i.startIndex;t.aSegment.push(i.segment+n,n,i.line.length),t.aVertical.push(s)}}Mt(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p,y,m,g){const{textFillFn:v,textSizeFn:b,textHaloFillFn:w,textHaloRadiusFn:M,textHaloOpacityFn:x,textDxFn:F,textDyFn:k,textPitchAlignmentFn:A,textRotationAlignmentFn:P,textRotationFn:S,textAllowOverlapFn:_,textIgnorePlacementFn:O,textOpacityFn:E,markerWidthFn:I,markerHeightFn:$,markerDxFn:z,markerDyFn:C,markerPitchAlignmentFn:T,markerRotationAlignmentFn:D,markerRotationFn:j,markerAllowOverlapFn:U,markerIgnorePlacementFn:N,markerOpacityFn:L}=this.K;v&&t.aTextFill.push(...n),b&&t.aTextSize.push(e),w&&t.aTextHaloFill.push(...r),M&&t.aTextHaloRadius.push(i),x&&t.aTextHaloOpacity.push(s),F&&t.aTextDx.push(o),k&&t.aTextDy.push(a),I&&t.aMarkerWidth.push(u),$&&t.aMarkerHeight.push(h),z&&t.aMarkerDx.push(l),C&&t.aMarkerDy.push(c),(L||E)&&t.aColorOpacity.push(f),(A||T)&&t.aPitchAlign.push(d),(D||P)&&t.aRotationAlign.push(p),(j||S)&&t.aRotation.push(9362*y);const V=U||_,R=N||O;(V||R)&&t.aOverlap.push((V?8:0)+4*m+((R?2:0)+g)),i>0&&(this.properties.hasHalo=1)}vt(t,n,e){const{feature:r,symbol:i}=t,s=this.xt(t,i),o=r.properties,{markerSpacingFn:a,textSpacingFn:u,textMaxAngleFn:h}=this.K,l=((a?a(null,o):i.markerSpacing)||(u?u(null,o):i.textSpacing)||250)*e;let c=h?h(this.options.zoom,o):i.textMaxAngle;$r(c)&&(c=80),c*=Math.PI/180;const f=this.options.EXTENT,d=this.options.altitudeToTileScale,p=this.gt();return mu(t,this.lineVertex,c,n,e,f,s,l,p,d)}xt(t,n){let e;return e=this.K.markerPlacementFn?this.K.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement||this.dt,this.it||!n.markerPlacement&&!n.isIconText||(this.it=e),!this.dt||n.isIconText||this.st||(this.st=e),e}getPackSDFFormat(t){if("line"!==this.dt||t.isIconText)return[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"},{type:Uint8Array,width:1,name:"aCount"}];{const t=[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"},{type:Uint8Array,width:1,name:"aCount"},{type:Int16Array,width:2,name:"aGlyphOffset"},{type:Uint16Array,width:3,name:"aSegment"},{type:Uint8Array,width:1,name:"aVertical"}];return this.gt()&&t.push({type:Float32Array,width:3,name:"aPitchRotation"}),t}}getPackMarkerFormat(){return[...this.getPositionFormat(),{type:Int16Array,width:2,name:"aShape"},{type:Uint16Array,width:2,name:"aTexCoord"}]}}class Mu{constructor(t){this.x=t.x,this.y=t.y,this.z=t.z||0}clone(){return new Mu(this)}I(){return this.P(this.mag()),this}P(t){return this.x/=t,this.y/=t,this.z/=t,this}C(){var t=this.y;return this.y=this.x,this.x=-t,this}mag(){return Math.sqrt(this.x*this.x+this.y*this.y+this.z*this.z)}add(t){return this.clone().m(t)}sub(t){return this.clone().M(t)}m(t){return this.x+=t.x,this.y+=t.y,this.z+=t.z,this}M(t){return this.x-=t.x,this.y-=t.y,this.z-=t.z,this}equals(t){return this.x===t.x&&this.y===t.y&&this.z===t.z}mult(t){return this.clone().A(t)}A(t){return this.x*=t,this.y*=t,this.z*=t,this}dist(t){return Math.sqrt(this.distSqr(t))}distSqr(t){var n=t.x-this.x,e=t.y-this.y,r=t.z-this.z;return n*n+e*e+r*r}T(){return this.x=Math.round(this.x),this.y=Math.round(this.y),this.z=Math.round(this.z),this}angleTo(t){return Math.atan2(this.y-t.y,this.x-t.x)}}const xu=Math.cos(Math.PI/180*37.5),Fu=Math.pow(2,16)/1,ku=new Ut,Au=new Ut,Pu=new Ut;class Su extends ua{constructor(t,n,e){super(t,n,e);let r=!1;const{lineDasharrayFn:i,lineDashColorFn:s}=this.K;this.hasGradient=this.symbol.lineGradientProperty,i&&(r=function(t,n,e){for(let r=0;r<t.length;r++)if(e(n,t[r].properties))return!0;return!1}(t,this.options.zoom,i),r&&(this.dasharrayFn=i)),this.hasDasharray=Eu(this.symbol.lineDasharray)||r,this.hasDasharray&&s&&(this.dashColorFn=s)}createStyledVector(t,n,e,r,i){const s=new Tr(t,n,e,r),o=s.getLineResource();return!this.options.atlas&&o&&(i[o]=[0,0]),s}getFormat(){const{lineWidthFn:t,lineStrokeWidthFn:n,lineStrokeColorFn:e,lineColorFn:r,lineOpacityFn:i,lineDxFn:s,lineDyFn:o,linePatternAnimSpeedFn:a,linePatternGapFn:u}=this.K,h=[...this.getPositionFormat()];if(h.push(this.iconAtlas||this.hasDasharray?{type:Int8Array,width:3,name:"aExtrude"}:{type:Int8Array,width:2,name:"aExtrude"}),h.push({type:this.options.positionType||Uint16Array,width:1,name:"aLinesofar"}),t&&h.push({type:Uint8Array,width:1,name:"aLineWidth"}),n&&h.push({type:Uint8Array,width:1,name:"aLineStrokeWidth"}),r&&h.push({type:Uint8Array,width:4,name:"aColor"}),e&&h.push({type:Uint8Array,width:4,name:"aStrokeColor"}),i&&h.push({type:Uint8Array,width:1,name:"aOpacity"}),this.dasharrayFn&&h.push({type:Uint8Array,width:4,name:"aDasharray"}),this.dashColorFn&&h.push({type:Uint8Array,width:4,name:"aDashColor"}),this.iconAtlas){const t=this.getIconAtlasMaxValue();h.push({type:t>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return(s||o)&&h.push({type:Int8Array,width:2,name:"aLineDxDy"}),(a||u)&&h.push({type:Int8Array,width:2,name:"aLinePattern"}),h}placeVector(t){const{lineJoinFn:n,lineCapFn:e,lineWidthFn:r,lineHeightFn:i,lineStrokeWidthFn:s,lineStrokeColorFn:o,lineColorFn:a,lineOpacityFn:u,lineDxFn:h,lineDyFn:l,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.K,p=this.symbol,y=t.feature,m=y.properties;let g=p.lineJoin||"miter",v=p.lineCap||"butt";if(n&&(g=n(this.options.zoom,m)||"miter"),e&&(v=e(this.options.zoom,m)||"butt"),r){let t=r(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineWidth=1,t=4),cr(t)&&(t=4),this.feaLineWidth=+t}else this.feaLineWidth=+p.lineWidth;if(i){let t=i(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineHeight=1),cr(t)&&(t=this.feaLineWidth),this.feaLineHeight=+t}else this.feaLineHeight=+p.lineHeight||this.feaLineWidth;if(s){let t=s(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineStrokeWidth=1,t=0),cr(t)&&(t=0),this.feaLineStrokeWidth=t}else this.feaLineStrokeWidth=p.lineStrokeWidth||0;if(a&&(this.feaColor=a(this.options.zoom,m)||[255,255,255,255],d(this.feaColor)?(this.dynamicAttrs.aColor=1,this.feaColor=[0,0,0,0]):this.feaColor=Fr([],this.feaColor)),o&&(this.feaStrokeColor=o(this.options.zoom,m)||[0,0,0,255],d(this.feaStrokeColor)?(this.dynamicAttrs.aStrokeColor=1,this.feaStrokeColor=[0,0,0,0]):this.feaStrokeColor=Fr([],this.feaStrokeColor)),u){let t=u(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aOpacity=1,t=1),cr(t)&&(t=1),this.feaOpacity=255*t}if(this.dasharrayFn){let t=this.dasharrayFn(this.options.zoom,m)||[0,0,0,0];if(d(t)&&(this.dynamicAttrs.aDasharray=1,t=[0,0,0,0]),t.length<4){const n=t;1===t.length?t=[n[0],n[0],n[0],n[0]]:2===t.length?t=[n[0],n[1],n[0],n[1]]:3===t.length&&(t=[n[0],n[1],n[2],n[2]])}this.feaDash=t}if(this.dashColorFn){let t=(this.dashColorFn?this.dashColorFn(this.options.zoom,m):this.symbol.lineDashColor)||[0,0,0,0];d(t)&&(this.dynamicAttrs.aDashColor=1,t=[0,0,0,0]),t=Fr([],t),this.feaDashColor=t}if(this.iconAtlas){const n=t.getLineResource(),e=this.iconAtlas.glyphMap[n];if(this.feaTexInfo=this.feaTexInfo||[0,0,0,0],e){const{tl:t,displaySize:e}=this.iconAtlas.positions[n];this.feaTexInfo[0]=t[0]+1,this.feaTexInfo[1]=t[1]+1,this.feaTexInfo[2]=e[0]-3,this.feaTexInfo[3]=e[1]-3}else this.feaTexInfo[0]=this.feaTexInfo[1]=this.feaTexInfo[2]=this.feaTexInfo[3]=0}if(h){let t=h(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),cr(t)&&(t=0),this.feaLineDx=t}if(l){let t=l(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLineDxDy=1,t=0),cr(t)&&(t=0),this.feaLineDy=t}if(c){let t=c(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLinePatternAnimSpeed=1,t=0),cr(t)&&(t=0),0!==t&&(this.properties.hasPatternAnim=1),this.feaPatternAnimSpeed=t}if(f){let t=f(this.options.zoom,m);d(t)&&(this.dynamicAttrs.aLinePatternGap=1,t=0),cr(t)&&(t=0),this.feaLinePatternGap=t}const b=this.options.EXTENT;let w=y.geometry;if(b!==1/0){w=[];const t=[];for(let n=0;n<y.geometry.length;n++){t[0]=y.geometry[n];const e=su(t,-1,-1,b+1,b+1);if(3===y.type&&e.length>1){const t=e[0],n=e[e.length-1];Cu(t[0],n[n.length-1])&&(e[0]=n.concat(t.slice(1)),e.length=e.length-1)}w.push(...e)}}const M=this.needAltitudeAttribute()?2:3;for(let t=0;t<w.length;t++)this.offset=this.data.aPosition.length/M,this.Ft(w[t],y,g,v,2,1.05)}kt(){return this.iconAtlas&&this.feaTexInfo[2]&&this.feaTexInfo[3]}Ft(t,n,e,r,i,s){const o=this.kt()||Eu(this.feaDash)||Eu(this.symbol.lineDasharray),a=this.options.isTube;a&&(t=t.map(t=>new Mu(t))),this.overscaling=1;const u=this.options.EXTENT;if(this.distance=0,this.scaledDistance=0,this.totalDistance=0,this.prevVertex=null,this.symbol.lineGradientProperty&&n.properties&&fr(n.properties.mapbox_clip_start)&&fr(n.properties.mapbox_clip_end)){this.clipStart=+n.properties.mapbox_clip_start,this.clipEnd=+n.properties.mapbox_clip_end;for(let n=0;n<t.length-1;n++)this.totalDistance+=t[n].dist(t[n+1]);this.updateScaledDistance()}const h=3===n.type&&!t.clipped;let l=t.length;for(;l>=2&&Cu(t[l-1],t[l-2]);)l--;let c=0;for(;c<l-1&&Cu(t[c],t[c+1]);)c++;if(l<(h?3:2))return;"bevel"===e&&(i=1.05);const f=this.overscaling<=16?15*u/(512*this.overscaling):0,d={vertexLength:0,primitiveLength:0,currentNormal:null};let p,y,m,g,v;this.e1=this.e2=-1,h&&(p=t[l-2],v=t[c].sub(p).I().C());for(let n=c;n<l;n++){if(m=n===l-1?h?t[c+1]:void 0:t[n+1],m&&Cu(t[n],m))continue;v&&(g=v),p&&(y=p),p=t[n],m&&p.x===m.x&&p.y===m.y&&(p.x+=1e-4),v=m?m.sub(p).I().C():g,d.dir=y?p.sub(y).I():m.sub(p).I(),g=g||v,d.currentNormal=g;let u=g.add(v);0===u.x&&0===u.y||u.I();const b=g.x*v.x+g.y*v.y,w=u.x*v.x+u.y*v.y,M=0!==w?1/w:1/0,x=2*Math.sqrt(2-2*w),F=w<xu&&y&&m,k=g.x*v.y-g.y*v.x>0;if(!a&&F&&n>c){const t=p.dist(y);if(t>2*f){const n=p.sub(p.sub(y).A(f/t).T());n.z=p.z,this.updateDistance(y,n),this.addCurrentVertex(n,g,0,0,d),y=n}}const A=y&&m;d.middleVertex=A;let P=A?e:h?"butt":r;if(A&&"round"===P&&(M<s?P="miter":M<=2&&(P="fakeround")),"miter"===P&&M>i&&!a&&(P="bevel"),"bevel"===P&&(M>2&&(P="flipbevel"),M<i&&(P="miter")),y&&this.updateDistance(y,p),"miter"===P)a?(this.addCurrentVertex(p,g,0,0,d),d.dir=m.sub(p).I(),this.addCurrentVertex(p,v,0,0,d)):(u.A(M),this.addCurrentVertex(p,u,0,0,d),o&&(d.currentNormal=v,this.addCurrentVertex(p,u,0,0,d)));else if("flipbevel"===P){if(M>100)u=v.mult(-1);else{const t=M*g.add(v).mag()/g.sub(v).mag();u.C().A(t*(k?-1:1))}this.addCurrentVertex(p,u,0,0,d),this.addCurrentVertex(p,u.mult(-1),0,0,d)}else if("bevel"===P||"fakeround"===P){const t=-Math.sqrt(M*M-1),n=k?t:0,e=k?0:t;if(y&&this.addCurrentVertex(p,g,n,e,d),"fakeround"===P){const t=Math.round(180*x/Math.PI/20);for(let n=1;n<t;n++){let e=n/t;if(.5!==e){const t=e-.5;e+=e*t*(e-1)*((1.0904+b*(b*(3.55645-1.43519*b)-3.2452))*t*t+(.848013+b*(.215638*b-1.06021)))}const r=v.sub(g).A(e).m(g).I().A(k?-1:1);this.addHalfVertex(p,r.x,r.y,!1,k,0,d)}}m&&(d.currentNormal=v,this.addCurrentVertex(p,v,-n,-e,d))}else if("butt"===P)this.addCurrentVertex(p,u,0,0,d);else if("square"===P){const t=y?1:-1;this.addCurrentVertex(p,u,t,t,d)}else"round"===P&&(y&&(this.addCurrentVertex(p,g,0,0,d),this.addCurrentVertex(p,g,1,1,d,!0)),m&&(this.addCurrentVertex(p,v,-1,-1,d,!0),this.addCurrentVertex(p,v,0,0,d)));if(!a&&F&&n<l-1){const t=p.dist(m);if(t>2*f){const n=p.add(m.sub(p).A(f/t).T());n.z=p.z,this.updateDistance(p,n),this.addCurrentVertex(n,v,0,0,d),p=n}}}}addCurrentVertex(t,n,e,r,i,s=!1){const o=n.x+n.y*e,a=n.y-n.x*e,u=n.y*r-n.x,h=-n.y-n.x*r;let l=0,c=0;if(i.middleVertex){ku.x=o,ku.y=a,Au.x=u,Au.y=h;const t=i.currentNormal;if(l=zu(t,ku),0===e&&0===r)c=-l;else{const n=Pu;n.x=t.x,n.y=t.y,n.A(-1),c=zu(n,Au)}}this.addHalfVertex(t,o,a,s,!1,e,i,l),this.addHalfVertex(t,u,h,s,!0,-r,i,c),this.prevVertex&&Cu(t,this.prevVertex)||(this.prevVertex=t),this.distance>Fu/2&&0===this.totalDistance&&(this.distance=0,this.updateScaledDistance(),this.addCurrentVertex(t,n,e,r,i,s))}addHalfVertex({x:t,y:n,z:e},r,i,s,o,a,u,h){this.fillData(this.data,t,n,e||0,r,i,s,o,1*this.scaledDistance,h);const l=u.vertexLength++;this.e1>=0&&this.e2>=0&&(this.addElements(this.e1,this.e2,l),u.primitiveLength++),o?this.e2=l:this.e1=l}fillData(t,n,e,r,i,s,o,a,u,h){const{lineWidthFn:l,lineStrokeWidthFn:c,lineStrokeColorFn:f,lineColorFn:d,lineOpacityFn:p,lineDxFn:y,lineDyFn:m,linePatternAnimSpeedFn:g,linePatternGapFn:v}=this.K;this.fillPosition(t,n,e,r);let b=63*i;b=(Math.sign(b)||1)*((Math.floor(Math.abs(b))>>1<<1)+ +o);let w=63*s;w=(Math.sign(w)||1)*((Math.floor(Math.abs(w))>>1<<1)+ +a),t.aExtrude.push(b,w),(this.iconAtlas||this.hasDasharray)&&t.aExtrude.push(63*h),t.aLinesofar.push(u),l&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),c&&t.aLineStrokeWidth.push(Math.round(2*this.feaLineStrokeWidth)),d&&t.aColor.push(...this.feaColor),f&&t.aStrokeColor.push(...this.feaStrokeColor),p&&t.aOpacity.push(this.feaOpacity),this.dasharrayFn&&t.aDasharray.push(...this.feaDash),this.dashColorFn&&t.aDashColor.push(...this.feaDashColor),this.iconAtlas&&t.aTexInfo.push(...this.feaTexInfo),(y||m)&&t.aLineDxDy.push(this.feaLineDx||0,this.feaLineDy||0),(g||v)&&t.aLinePattern.push(127*(this.feaPatternAnimSpeed||0),10*(this.feaLinePatternGap||0)),this.maxPos=Math.max(this.maxPos,Math.abs(n)+1,Math.abs(e)+1)}addElements(t,n,e){super.addElements(this.offset+t,this.offset+n,this.offset+e)}At(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=3)n!==1/0&&(Ou(this.data.aPosition,e[r],e[r+1],3,n)||Ou(this.data.aPosition,e[r+1],e[r+2],3,n))||t.push(e[r],e[r+1],e[r+2])}Pt(t){if(t.length<=1)return t;const n=[],e=this.options.EXTENT;let r,i=!0;for(r=0;r<t.length-1;r++){const s=_u(t[r],t[r+1],e);s&&i||(n.push(t[r]),i=s)}return i||n.push(t[r]),n}updateDistance(t,n){if(this.options.isTube){const e=t.dist(n),r=wr(this.options)*(n.z-t.z);this.distance+=Math.sqrt(e*e+r*r)}else this.distance+=t.dist(n);this.updateScaledDistance()}updateScaledDistance(){this.scaledDistance=this.totalDistance>0?(this.clipStart+(this.clipEnd-this.clipStart)*this.distance/this.totalDistance)*(Fu-1):this.distance}}function _u(t,n,e){return e!==1/0&&(t.x<0&&n.x<0||t.x>e&&n.x>e||t.y<0&&n.y<0||t.y>e&&n.y>e)}function Ou(t,n,e,r,i){if(i===1/0)return!1;const s=Math.floor(.5*t[n*r]),o=Math.floor(.5*t[n*r+1]),a=Math.floor(.5*t[e*r]),u=Math.floor(.5*t[e*r+1]);return s===a&&(s<0||s>i)&&o!==u||o===u&&(o<0||o>i)&&s!==a}function Eu(t){if(!Array.isArray(t))return!1;for(let n=0;n<t.length;n++)if(t[n])return!0;return!1}const Iu=new Ut(0,0),$u=new Ut(0,0);function zu(t,n){const e=t.mag(),r=n.mag();Iu.x=n.x,Iu.y=n.y;const i=t.angleTo($u),s=n.angleTo($u);return Math.sign(s-i)*Math.sqrt(r*r-e*e)}function Cu(t,n){return t.equals(n)&&t.z===n.z}class Tu extends Su{constructor(t,n,e){super(t,n,e),this.St=e.altitudeProperty}getFormat(){const{lineColorFn:t,lineWidthFn:n}=this.K,e=[{type:this.maxPosZ>=Math.pow(2,15)?Float32Array:Int16Array,width:3,name:"aPosition"},{type:Uint16Array,width:1,name:"aLinesofar"},{type:Uint8Array,width:1,name:"aUp"},{type:Int16Array,width:3,name:"aExtrudedPosition"},{type:Int8Array,width:2,name:"aExtrude"}];return t&&e.push({type:Uint8Array,width:4,name:"aColor"}),n&&e.push({type:Uint8Array,width:1,name:"aLineWidth"}),this.St&&e.push({type:Array,width:1,name:"aLineHeight"}),e}placeVector(t){const n=t.feature;if(this.St){const{altitudeScale:t,altitudeProperty:e,defaultAltitude:r,heightProperty:i,defaultHeight:s,minHeightProperty:o}=this.options,{altitude:a,height:u}=Er(n,t,e,r,i,s,o);this.feaAltitude=a,this.feaMinHeight=(a-u)/a*32767,a>this.maxAltitude&&(this.maxAltitude=a)}return super.placeVector(t)}needAltitudeAttribute(){return!1}Ft(t,n,e,r,i,s){const o=this.data.aPosition.length/3;super.Ft(t,n,e,r,i,s);const a=this.data.aPosition.length/3,u=this.data.aPosition.length/3-this.offset;if(3!==n.type&&u>0&&!1!==this.options.side){const t=!1!==this.options.top?1:0,n=t+4;let e=this.data.aPosition.length/3;for(const t in this.data){const n=this.data[t],r=n.length/e;for(let t=0;t<r;t++)n.push(n[o*r+3*r+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[o*i+i*n+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[o*i+i*(n+3)+t])}super.addElements(t+1,u+1,u),super.addElements(u,u+1,u+2);const r=this.data.aPosition.length/3-this.offset;e=this.data.aPosition.length/3;for(const t in this.data){const n=this.data[t],r=n.length/e;for(let t=0;t<r;t++)n.push(n[a*r-r+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[a*i-n*i-i+t])}e=this.data.aPosition.length/3;for(const t in this.data){const r=this.data[t],i=r.length/e;for(let t=0;t<i;t++)r.push(r[a*i-n*i-3*i+t])}super.addElements(r,u-3,r+1),super.addElements(u-3,r+2,r+1)}}fillData(t,n,e,r,i,s,o,a,u){const h=!1!==this.options.top,l=!1!==this.options.side,c=this.feaLineWidth||this.symbol.lineWidth/2*(this.options.EXTENT/this.options.tileSize),f=63*i,d=63*s,p=c*i+n,y=c*s+e;this._t(t,n,e,i,s,o,a,u,p,y,f,d),l&&(h&&this._t(t,n,e,i,s,o,a,u,p,y,f,d),this._t(t,n,e,i,s,o,a,u,p,y,f,d),this.Ot(t,n,e,i,s,o,a,u,p,y,f,d),this.Ot(t,n,e,i,s,o,a,u,p,y,f,d)),this.maxPos=Math.max(this.maxPos,Math.abs(n),Math.abs(e))}_t(t,n,e,r,i,s,o,a,u,h,l,c){const{lineColorFn:f,lineWidthFn:d}=this.K;t.aPosition.push(n,e,32767),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,h,1),t.aExtrude.push(l,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.St&&t.aLineHeight.push(this.feaAltitude)}Ot(t,n,e,r,i,s,o,a,u,h,l,c){const{lineColorFn:f,lineWidthFn:d}=this.K;t.aPosition.push(n,e,this.feaMinHeight||0),t.aLinesofar.push(a),t.aUp.push(+o),t.aExtrudedPosition.push(u,h,1),t.aExtrude.push(l,c),f&&t.aColor.push(...this.feaColor),d&&t.aLineWidth.push(Math.round(2*this.feaLineWidth)),this.St&&t.aLineHeight.push(this.feaAltitude)}addElements(t,n,e){const r=!1!==this.options.top,i=!1!==this.options.side,s=(r?1:0)+(i?4:0);if(t*=s,n*=s,this.data.aUp[this.offset+(e*=s)+4]){if(r&&super.addElements(n,t,e),i){const t=r?1:0;super.addElements(n+t,e+t,e+t+2),super.addElements(n+t+1,e+t+1+2,n+t+1+2)}}else if(r&&super.addElements(t,e,n),i){const n=r?1:0;super.addElements(t+n,t+n+2,e+n),super.addElements(t+n+1+2,e+n+1+2,e+n+1)}}createDataPack(t,n){this.maxAltitude=0;const e=super.createDataPack(t,n);if(!e)return e;const{data:r,indices:i}=e;this.getFormat().reduce((t,n)=>(t[n.name]={size:n.width},t),{}).aPickingId={size:1};const{aExtrudedPosition:s,aPosition:o,aLinesofar:a,aUp:u,aExtrude:h,aColor:l,aLineHeight:c,aLineWidth:f}=r,d={},p=re(s,i);let y,m=!0;for(let t=0;t<p.length;t++)p[t]=-p[t],p[t]%1!=0&&(m=!1);if(!1!==this.options.top&&this.symbol.material&&function(t){for(const n in t)if(n.indexOf("Texture")>=0&&t[n])return!0;return!1}(this.symbol.material)&&(y=function(t,n,e){const r=[];for(let i=0;i<t.length;i+=3){const t=n[i/3];r.push(t/256,e[i/3]?1:0)}return r}(s,a,u)),d.aPosition=o,y&&(d.aTexCoord0=new Float32Array(y)),d.aNormal=m?new Int8Array(p):new Float32Array(p),d.aPickingId=r.aPickingId,d.aExtrude=h,l&&(d.aColor=l),f&&(d.aLineWidth=f),c){const t=or(this.maxAltitude);d.aLineHeight=new t(c)}const g=[];for(const t in d)g.push(d[t].buffer);return e.data=d,e.buffers=g,e}}const Du=Math.pow(2,16)/1;class ju extends ua{getFormat(){return[...this.getPositionFormat()]}placeVector(t){const n=t.feature,e=3===n.type,r=n.geometry,i=this.elements;e&&(this.elements=[]);const s=this.needAltitudeAttribute()?2:3;for(let t=0;t<r.length;t++)this.offset=this.data.aPosition.length/s,this.Ft(r[t],n),e&&(this.At(i),this.elements=[]);e&&(this.elements=i)}Ft(t,n){const e=3===n.type;let r=t.length;for(;r>=2&&t[r-1].equals(t[r-2]);)r--;let i,s,o,a=0;for(;a<r-1&&t[a].equals(t[a+1]);)a++;if(!(r<(e?3:2))){this.distance=0,this.vertexLength=0,this.primitiveLength=0,this.e1=this.e2=this.e3=-1,e&&(i=t[r-2]);for(let n=a;n<r;n++)o=e&&n===r-1?t[a+1]:t[n+1],o&&t[n].equals(o)||(i&&(s=i),i=t[n],s&&(this.distance+=i.dist(s)),this.addCurrentVertex(i,this.distance))}}addCurrentVertex(t,n){const e=this.vertexLength++;this.addLineVertex(this.data,t,n),e>=1&&this.addElements(e-1,e),n>Du&&(this.distance=0,this.addCurrentVertex(t,this.distance))}addLineVertex(t,n){this.fillPosition(t,n.x,n.y,n.z||0),this.maxPos=Math.max(this.maxPos,Math.abs(n.x),Math.abs(n.y))}addElements(t,n){super.addElements(this.offset+t,this.offset+n)}At(t){const n=this.options.EXTENT,e=this.elements;for(let r=0;r<e.length;r+=2)_r(this.data.aPosition,e[r],e[r+1],3,n)||t.push(e[r],e[r+1])}}const Uu=45*Math.PI/100;class Nu extends ua{getFormat(){const{markerFillFn:t}=this.K;let n;return n="line"===this.symbol.markerRotationAlignment?[...this.getPositionFormat(),{type:Float32Array,width:1,name:"aXYRotation"},{type:Float32Array,width:1,name:"aZRotation"}]:[...this.getPositionFormat()],t&&n.push({type:Uint8Array,width:4,name:"aColor"}),n}placeVector(t){const n=t.feature.properties,{markerFillFn:e}=this.K;let r;e&&(r=e(this.options.zoom,n)||[255,255,255,255],d(r)?(this.dynamicAttrs.aColor=1,r=[0,0,0,0]):r=Fr([],r));const i="line"===this.symbol.markerRotationAlignment,s=this.vt(t,this.symbol.markerSpacing||250,this.symbol.markerPlacement||"point",i);for(let t=0;t<s.length;t++){const n=s[t];this.fillPosition(this.data,n.x,n.y,n.z),i&&(this.data.aXYRotation.push(n.xyRotation||0),this.data.aZRotation.push(n.zRotation||0)),r&&this.data.aColor.push(...r);const e=Math.max(Math.abs(n.x),Math.abs(n.y));e>this.maxPos&&(this.maxPos=e)}}vt(t,n,e,r){const i=t.feature,s=this.options.EXTENT;if("line"===e){const t=[];let e=i.geometry;s&&(e=su(i.geometry,0,0,s,s));for(let r=0;r<e.length;r++){const i=uu(e[r],n,Uu,null,null,24,1,1,s||1/0);t.push.apply(t,i)}return t}return gu(i,e,s,r,this.options.altitudeToTileScale)}hasElements(){return!1}}\n/*!\n * from @turf/bboxClip\n * https://github.com/Turfjs/turf\n * MIT LICENSE\n */const Lu=[],Vu=[];function Ru(t,n){var e,r,i,s,o,a,u;for(r=1;r<=8;r*=2){for(e=[],s=!(Wu(i=t[t.length-1],n)&r),o=0;o<t.length;o++){if((u=!(Wu(a=t[o],n)&r))!==s){const t=Hu(i,a,r,n);e.push(void 0!==a.x?new Ut(t[0],t[1]):t)}u&&e.push(a),i=a,s=u}if(!(t=e).length)break}return e}function Hu(t,n,e,r){return Lu[0]=void 0===t.x?t[0]:t.x,Lu[1]=void 0===t.y?t[1]:t.y,t=Lu,Vu[0]=void 0===n.x?n[0]:n.x,Vu[1]=void 0===n.y?n[1]:n.y,n=Vu,8&e?[t[0]+(n[0]-t[0])*(r[3]-t[1])/(n[1]-t[1]),r[3]]:4&e?[t[0]+(n[0]-t[0])*(r[1]-t[1])/(n[1]-t[1]),r[1]]:2&e?[r[2],t[1]+(n[1]-t[1])*(r[2]-t[0])/(n[0]-t[0])]:1&e?[r[0],t[1]+(n[1]-t[1])*(r[0]-t[0])/(n[0]-t[0])]:null}function Wu(t,n){Lu[0]=void 0===t.x?t[0]:t.x,Lu[1]=void 0===t.y?t[1]:t.y;var e=0;return(t=Lu)[0]<n[0]?e|=1:t[0]>n[2]&&(e|=2),t[1]<n[1]?e|=4:t[1]>n[3]&&(e|=8),e}const qu=[0,0,0,0];class Gu extends ua{constructor(...t){super(...t),this.lineElements=[]}createStyledVector(t,n,e,r,i){const s=new Tr(t,n,e,r),o=s.getPolygonResource();return!this.options.atlas&&o&&(i[o]=[0,0]),s}getFormat(){const t=[...this.getPositionFormat()],{polygonFillFn:n,polygonOpacityFn:e,uvScaleFn:r,uvOffsetFn:i}=this.K;if(this.iconAtlas){const n=this.getIconAtlasMaxValue();t.push({type:n>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return n&&t.push({type:Uint8Array,width:4,name:"aColor"}),e&&t.push({type:Uint8Array,width:1,name:"aOpacity"}),r&&t.push({type:Uint16Array,width:2,name:"aUVScale"}),i&&t.push({type:Uint8Array,width:2,name:"aUVOffset"}),t}placeVector(t,n){const e=t.feature;this.Et(e.geometry,e,n)}Et(t,n){let e,r,i,s;const{polygonFillFn:o,polygonOpacityFn:a,uvScaleFn:u,uvOffsetFn:h}=this.K,l=n.properties;o&&(e=o(this.options.zoom,l)||bt([],255,255,255,255),d(e)?(this.dynamicAttrs.aColor=1,e=qu):e=Fr([],e)),a&&(r=a(this.options.zoom,l),d(r)?(this.dynamicAttrs.aOpacity=1,r=255):(cr(r)&&(r=1),r*=255)),u&&(i=u(this.options.zoom,l),d(i)?(i=[255,255],this.dynamicAttrs.aUVScale=1):(cr(i)&&(i=[1,1]),i=[255*i[0],255*i[1]])),h&&(s=h(this.options.zoom,l),d(s)?(s=[0,0],this.dynamicAttrs.aUVOffset=1):(cr(s)&&(s=[0,0]),s=[255*s[0],255*s[1]]));const c=!!this.iconAtlas,f=lu(t,500),p=[0,0],y=[0,0];if(c){const{polygonPatternFileFn:t}=this.K,n=t?t(null,l):this.symbol.polygonPatternFile;if(this.iconAtlas.glyphMap[n]){const t=this.iconAtlas.positions[n];p[0]=t.tl[0]+1,p[1]=t.tl[1]+1,y[0]=t.displaySize[0]-3,y[1]=t.displaySize[1]-3}}const m=this.needAltitudeAttribute()?2:3,g=[-1,-1,n.extent+1,n.extent+1],v=this.It=this.It||this.et.get(),b=this.$t=this.$t||this.et.get();for(let t=0;t<f.length;t++){const n=f[t],o=this.data.aPosition.length/m;v.setLength(0),b.setLength(0);for(let t=0;t<n.length;t++){let o=n[t];if(this.options.EXTENT!==1/0&&0===this.maxPosZ&&(o=Ru(o,g)),0!==o.length){0!==t&&b.push(v.length/3);for(let t=0;t<o.length;t++){const n=o[t].x,a=o[t].y,u=o[t].z||0;this.fillPosition(this.data,n,a,u),c&&this.data.aTexInfo.push(p[0],p[1],y[0],y[1]),void 0!==e&&this.data.aColor.push(e[0],e[1],e[2],e[3]),void 0!==r&&this.data.aOpacity.push(r),void 0!==i&&this.data.aUVScale.push(i[0],i[1]),void 0!==s&&this.data.aUVOffset.push(s[0],s[1]);const h=Math.abs(n),l=Math.abs(a);h>this.maxPos&&(this.maxPos=h),l>this.maxPos&&(this.maxPos=l),v.push(n,a,u)}}}let a=Ve(v,b,3);if(v.length&&!a.length){const t=[];for(let n=0;n<v.length;n+=3)t[n]=v[n],t[n+1]=v[n+2],t[n+2]=v[n+1];if(a=Ve(t,b,3),!a.length){for(let n=0;n<v.length;n+=3)t[n]=v[n+1],t[n+1]=v[n+2],t[n+2]=v[n];a=Ve(t,b,3)}}for(let t=0;t<a.length;t+=3)this.addElements(o+a[t],o+a[t+1],o+a[t+2])}}}const Bu=[{type:Int16Array,width:3,name:"aPosition"}];class Ju extends ua{getFormat(){return Bu}placeVector(t,n){const e=this.vt(t,n);if(0===e.length)return;const r=this.data,i=this.getAltitude(t.feature.properties);let s=r.aPosition.length/Bu[0].width;for(let t=0;t<e.length;t++){const n=e[t];r.aPosition.push(2*n.x+0,2*n.y+0,i),r.aPosition.push(2*n.x+1,2*n.y+0,i),r.aPosition.push(2*n.x+1,2*n.y+1,i),r.aPosition.push(2*n.x+0,2*n.y+1,i),this.addElements(s,s+1,s+2),this.addElements(s,s+2,s+3),s+=4;const o=Math.max(Math.abs(2*n.x+1),Math.abs(2*n.y+1));o>this.maxPos&&(this.maxPos=o)}}vt(t,n){const{feature:e,symbol:r}=t,i=this.xt(t,r),s=e.properties,{markerSpacingFn:o}=this.K,a=((o?o(null,s):r.markerSpacing)||250)*n;return mu(t,null,null,n,this.options.EXTENT,i,a)}xt(t,n){return this.K.markerPlacementFn?this.K.markerPlacementFn(this.options.zoom,t.feature.properties):n.markerPlacement}}class Xu extends Su{constructor(t,n,e){(n=lr({},n)).lineJoin="miter",n.lineCap="butt",super(t,n,e),this.options.radialSegments%2==1&&this.options.radialSegments--}getFormat(){const{lineWidthFn:t,lineColorFn:n,lineOpacityFn:e,linePatternAnimSpeedFn:r,linePatternGapFn:i}=this.K,s=[...this.getPositionFormat(),{type:Int8Array,size:4,name:"aTubeNormal"},{type:this.options.positionType||Uint16Array,width:1,name:"aLinesofar"}];if(this.iconAtlas){s.push({type:Int8Array,width:1,name:"aNormalDistance"});const t=this.getIconAtlasMaxValue();s.push({type:t>255?Uint16Array:Uint8Array,width:4,name:"aTexInfo"})}return t&&s.push({type:Uint16Array,width:1,name:"aLineWidth"}),n&&s.push({type:Uint8Array,width:4,name:"aColor"}),e&&s.push({type:Uint8Array,width:1,name:"aOpacity"}),r&&s.push({type:Int8Array,width:1,name:"aLinePatternAnimSpeed"}),i&&s.push({type:Int8Array,width:1,name:"aLinePatternGap"}),s}addHalfVertex(t,n,e,r,i,s,o,a){const{x:u,y:h,z:l}=t,c=1*this.scaledDistance,f=this.options.radialSegments/2,{x:d,y:p,z:y}=o.dir,m=function(t,n,e,r,i,s,o,a){ft(Yu,e,r,i),ft(Zu,s,o,0),mt(Ku,Yu,Zu),pt(Zu,Zu),pt(Ku,Ku),Qu[n]||(Qu[n]=[]);const u=Qu[n];for(var h=0;h<n;h++){const t=Math.PI*h/n,e=1-Math.abs(t-0)/(Math.PI/2);u[h]=u[h]||[],th(Zu,Ku,u[h],1,t,e*(a?-1:1))}return u}(0,f,d,p,y,n,e,i);this.prevVertex&&this.fillTubeElements(i),this.fillData(this.data,u,h,l||0,m,i,c,a)}fillTubeElements(t){const n=this.options.radialSegments/2,e=this.needAltitudeAttribute()?2:3,r=this.data.aPosition.length/e;for(let e=0;e<n;e++){const i=e+r-2*n;let s,o;e===n-1&&t?(s=e+r-2*n+1,o=e+r-2*n-2*n+1):(s=e+r+1,o=e+r+1-2*n),super.addElements(e+r-this.offset,s-this.offset,i-this.offset),super.addElements(i-this.offset,s-this.offset,o-this.offset)}}fillData(t,n,e,r,i,s,o,a){const{lineWidthFn:u,lineColorFn:h,lineOpacityFn:l,linePatternAnimSpeedFn:c,linePatternGapFn:f}=this.K,d=i.length;for(let s=0;s<d;s++){if(this.fillPosition(t,n,e,r),Mt(i[s],i[s],63),t.aTubeNormal.push(...i[s]),t.aLinesofar.push(o),this.iconAtlas&&(t.aNormalDistance.push(63*a),t.aTexInfo.push(...this.feaTexInfo)),u){const n=Mr(this.options.metric);let e=this.feaLineWidth*n;isNaN(e)&&(e=0),t.aLineWidth.push(Math.round(e))}h&&t.aColor.push(...this.feaColor),l&&t.aOpacity.push(this.feaOpacity),c&&t.aLinePatternAnimSpeed.push(127*(this.feaPatternAnimSpeed||0)),f&&t.aLinePatternGap.push(10*(this.feaLinePatternGap||0))}this.maxPos=Math.max(this.maxPos,Math.abs(n)+1,Math.abs(e)+1)}createDataPack(t,n){const e=super.createDataPack(t,n);return e&&(e.is2D=!1),e}}const Yu=[],Zu=[],Ku=[],Qu={};function th(t,n,e,r,i,s){return bt(e,r*(Math.cos(i)*t[0]+Math.sin(i)*n[0]),r*(Math.cos(i)*t[1]+Math.sin(i)*n[1]),r*(Math.cos(i)*t[2]+Math.sin(i)*n[2]),s),e}class nh extends Xu{addHalfVertex(t,n,e,r,i,s,o,a){const{x:u,y:h,z:l}=t,c=1*this.scaledDistance,{x:f,y:d,z:p}=o.dir,y=function(t,n,e,r,i,s,o,a){ft(rh,e,r,i),ft(ih,s,o,0),mt(sh,rh,ih),pt(ih,ih),pt(sh,sh),_t(eh,t,n);const u=Et(eh)/t,h=Math.atan(n/t);let l=Math.PI/2+(Math.PI/2-h);return oh[0]||(oh[0]=[]),th(ih,sh,oh[0],u,l,a?1:-1),l+=2*h,oh[1]||(oh[1]=[]),th(ih,sh,oh[1],u,l,a?1:-1),oh}(this.feaLineWidth,this.feaLineHeight,f,d,p,n,e,i);this.prevVertex&&this.fillTubeElements(i),this.fillData(this.data,u,h,l||0,y,i,c,a)}}const eh=[],rh=[],ih=[],sh=[],oh=[];class ah{constructor(t){this.max=t,this.reset()}reset(){return this.data={},this.order=[],this}clear(){this.reset()}add(t,n){return this.has(t)?(this.order.splice(this.order.indexOf(t),1),this.data[t]=n,this.order.push(t)):(this.data[t]=n,this.order.push(t),this.order.length>this.max&&this.getAndRemove(this.order[0])),this}has(t){return t in this.data}keys(){return this.order}getAndRemove(t){if(!this.has(t))return null;const n=this.data[t];return delete this.data[t],this.order.splice(this.order.indexOf(t),1),n}get(t){return this.has(t)?this.data[t]:null}remove(t){return this.has(t)?(delete this.data[t],this.order.splice(this.order.indexOf(t),1),this):this}setMaxSize(t){for(this.max=t;this.order.length>this.max;)this.getAndRemove(this.order[0]);return this}}\n/*!\n * based on @mapbox/tiny-sdf\n * https://github.com/mapbox/tiny-sdf\n * @License BSD 2-Clause\n */var uh=1e20;function hh(t,n,e,r,i,s,o){this.fontSize=t||24,this.buffer=void 0===n?3:n,this.cutoff=r||.25,this.fontFamily=i||"sans-serif",this.fontWeight=s||"normal",this.fontStyle=o||"normal",this.radius=e||8;var a=this.size=this.fontSize+2*this.buffer;this.canvas="undefined"==typeof document?new OffscreenCanvas(a,a):document.createElement("canvas"),this.canvas.width=this.canvas.height=a,this.ctx=this.canvas.getContext("2d",{willReadFrequently:!0}),this.ctx.font=this.fontStyle+" "+this.fontWeight+" "+this.fontSize+"px "+this.fontFamily,this.ctx.textBaseline="middle",this.ctx.fillStyle="black",this.gridOuter=new Float64Array(a*a),this.gridInner=new Float64Array(a*a),this.f=new Float64Array(a),this.z=new Float64Array(a+1),this.v=new Uint16Array(a),this.middle=Math.round(a/2*(navigator.userAgent.indexOf("Gecko/")>=0?1.2:1))}function lh(t,n,e,r,i,s){for(var o=0;o<n;o++)ch(t,o,n,e,r,i,s);for(var a=0;a<e;a++)ch(t,a*n,1,n,r,i,s)}function ch(t,n,e,r,i,s,o){var a,u,h,l;for(s[0]=0,o[0]=-uh,o[1]=uh,a=0;a<r;a++)i[a]=t[n+a*e];for(a=1,u=0,h=0;a<r;a++){do{h=(i[a]-i[l=s[u]]+a*a-l*l)/(a-l)/2}while(h<=o[u]&&--u>-1);s[++u]=a,o[u]=h,o[u+1]=uh}for(a=0,u=0;a<r;a++){for(;o[u+1]<a;)u++;t[n+a*e]=i[l=s[u]]+(a-l)*(a-l)}}hh.prototype.draw=function(t,n,e){this.ctx.clearRect(0,0,this.size,this.size),this.ctx.textBaseline="top",this.ctx.fillText(t,this.buffer,this.buffer);for(var r=this.ctx.getImageData(0,0,n,e),i=new Uint8ClampedArray(n*e),s=0;s<n*e;s++){var o=r.data[4*s+3]/255;this.gridOuter[s]=1===o?0:0===o?uh:Math.pow(Math.max(0,.5-o),2),this.gridInner[s]=1===o?uh:0===o?0:Math.pow(Math.max(0,o-.5),2)}for(lh(this.gridOuter,n,e,this.f,this.v,this.z),lh(this.gridInner,n,e,this.f,this.v,this.z),s=0;s<n*e;s++){var a=Math.sqrt(this.gridOuter[s])-Math.sqrt(this.gridInner[s]);i[s]=Math.round(255-255*(a/this.radius+this.cutoff))}return i};let fh=0;class dh{constructor(t,n=15,e){this.entries={},this.zt={},this.Ct=new ah(2048,(function(){})),this.Tt=t,this.Dt=n,this.jt=e}getGlyphs(t,n){if(!t||!Object.keys(t).length)return void n(null,{glyphs:null});const e=this.entries,r=t.options;let i=!0;r&&(i=!1!==r.isCharsCompact),i=i||this.jt;const s=(r,s,a)=>{let u=0,h=0;for(const n in t)if("options"!==n){e[n]=e[n]||{},s[n]=s[n]||{};for(const l in t[n]){if(h++,h<=r)continue;const t=n.split(" "),c=i&&"normal"===t[0]&&!Va(+l),f=n+":"+l+":"+c;let d;if(this.Ct.has(f)?d=this.Ct.get(f):(d=this.Ut(e[n],t,l,c),this.Ct.add(f,d),u++),d=ph(d),s[n][l]=d,a.push(d.bitmap.data.buffer),this.Tt&&u>this.Dt)return void this.Tt(o(h,s,a))}}n(null,{glyphs:s,buffers:a})};function o(t,n,e){return()=>{s(t,n,e)}}s(0,{},[])}Ut(t,n,e,r){const i=n[0],s=n[1],o=n.slice(3).join(" ");let a=t.tinySDF,u="normal"!==i?5:2;const h=r?-1:2;if(!a){let n="400";/bolder/i.test(s)?n="1000":/bold/i.test(s)?n="900":/medium/i.test(s)?n="500":/light/i.test(s)&&(n="200"),a=t.tinySDF=new hh(24,u,8,.25,o,n,i)}const l=String.fromCharCode(e),c=a.ctx.measureText(l),f=Math.round(c.width),d=a.draw(String.fromCharCode(e),f+2*u,24+2*u);if(fh<4){const t="undefined"!=typeof document&&document.getElementById("sdf-debug-"+fh++);t&&(t.width=f+2*u,t.height=a.canvas.height,t.getContext("2d").drawImage(a.canvas,0,0))}return{charCode:e,bitmap:{width:f+2*u,height:24+2*u,data:d},metrics:{width:f,height:24,left:1,top:-u,advance:f+u+h}}}}function ph(t){const n={width:t.bitmap.width,height:t.bitmap.height,data:new Uint8ClampedArray(t.bitmap.data)};return{charCode:t.charCode,bitmap:n,metrics:lr({},t.metrics)}}var yh=Object.freeze({__proto__:null,clipPolygon:Ru,calculateSignedArea:Sr,getFeaAltitudeAndHeight:Er,generatePickingIndiceIndex:Cr,convertRTLText:nu,packPosition:Dr,unpackPosition:function(t,n,e,r){const i=(Math.sign(n)||1)*(Math.abs(n)%jr),s=(Math.sign(e)||1)*(Math.abs(e)%jr),o=Math.floor(Math.abs(n)/jr),a=Math.floor(Math.abs(e)/jr);return t[0]=i,t[1]=s,t[2]=Math.sign(r+1e-5)*(2*o+a)*Ur+r,t},convertGeometry:hr,getPosArrayType:or,getUnsignedArrayType:ar,getIndexArrayType:sr});const mh={},gh={},vh=[];Object.freeze({__proto__:null,loadSymbolFnTypes:function t(n,e){if(!n)return null;var r=!1;if(Array.isArray(n)){var i,s=[];for(let o=0;o<n.length;o++)(i=t(n[o],e))?(s.push(i),r=!0):s.push(n[o]);return r?s:n}var o={__fn_types_loaded:!0};const a=[];for(const t in n)gr(n,t)&&a.push(t);const u=function(t){Object.defineProperty(o,t,{get:function(){return this["__fn_"+t]||(this["__fn_"+t]=p(this["_"+t])),this["__fn_"+t].apply(this,e())},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})},h={},l=function(t,n){Object.defineProperty(o,t,{get:function(){this["__fn_"+t]||(this["__fn_"+t]=Ro(this["_"+t],n));const r=e()[0];h.zoom=r;try{return this["__fn_"+t].evaluateWithoutErrorHandling(h,mh,gh,null,vh)}catch(t){return null}},set:function(n){this["_"+t]=n},configurable:!0,enumerable:!0})};for(let t=0,e=a.length;t<e;t++){const e=a[t];if(d(n[e]))r=!0,o["_"+e]=n[e],u(e);else if(Ho(n[e])){r=!0;const t=Jo(e);o["_"+e]=n[e],l(e,t)}else o[e]=n[e]}return r?o:n}});const bh={polygonPatternFile:1,markerFile:1,markerPlacement:1,markerSpacing:1,textName:1,textStyle:1,textFaceName:1,textWeight:1,textPlacement:1,textSpacing:1,lineJoin:1,lineCap:1,linePatternFile:1};Object.assign({visible:1,textHorizontalAlignment:1,textVerticalAlignment:1,textWrapWidth:1,markerHorizontalAlignment:1,markerVerticalAlignment:1},bh),Object.assign({lineDasharray:1,topPolygonFill:1,bottomPolygonFill:1},bh);new Float32Array([-1e12])[0];const wh="maptalks_ombb";function Mh(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p,y,m){const g=n.length,v=i/3;for(let e=2,r=g;e<r;e+=3)t[i+e-2]=n[e-2],t[i+e-1]=n[e-1],t[i+e-0]=n[e]-o;i+=g;for(let e=2,r=g;e<r;e+=3)t[i+e-2]=n[e-2],t[i+e-1]=n[e-1],t[i+e-0]=n[e]-a;i+=g,t.trySetLength(i+g),t.copyWithin(i,i-2*g,i-g),i+=g,t.trySetLength(i+g),t.copyWithin(i,i-2*g,i-g),i+=g,(e=e||[]).push(g/3);for(let n=0;n<e.length;n++){xh(v+(e[n-1]||0),v+e[n],t,g/3,u,r,h,l,c,f,s,d,p,y,m)}return i}function xh(t,n,e,r,i,s,o,a,u,h,l,c,f,d,p){const y=s.length;let m,g;for(let o=t,a=n;o<a-1;o++)m=o,g=o+1,i!==1/0&&at(e,m,g,i)||((o-t)%2==1&&(m+=2*r,g+=2*r),p?(s.push(m+r,g,m),s.push(g+r,g,m+r)):(s.push(m+r,m,g),s.push(g,g+r,m+r)));o&&function(t,n,e,r,i,s,o,a,u,h,l){let c,f=0,d=0,p=0,y=0;const m=l?[1,3,4]:[2,3,4];for(let l=s.length-1;l>=0;l--){const g=s[l],v=3*g+1,b=3*g+2,w=i[3*g],M=i[v],x=i[b];f||d||(f=Math.max(i[b],i[3*s[l-3]+2]),d=Math.min(i[b],i[3*s[l-3]+2]),c=f-d);let F=p;const k=l%6;0===t?(5===k&&(y=jt(i,s,l,w,M)),F=k===m[0]||k===m[1]||k===m[2]?p:p+y):1===t&&(k===m[0]||k===m[1]||k===m[2]?F=0:5===k?(y=jt(i,s,l,w,M),F=y):F=y);const A=F*u*(1/(100*h))/46.5/o;let P;P=1===n?x===f?1:0:"bottom"===e?x===f?c/100/46.5/a:0:x===f?0:-c/100/46.5/a,r[2*g]=A,r[2*g+1]=P,0===k&&(p+=y)}}(a,u,h,l,e,s.slice(y,s.length),c[0],c[1],f,d,p)}function Fh(t){const n=[t[0]];let e=t[0];for(let r=1;r<t.length;r++)Array.isArray(t[r])?t[r][0]===e[0]&&t[r][1]===e[1]&&t[r][2]===e[2]||n.push(t[r]):t[r].x===e.x&&t[r].y===e.y&&t[r].z===e.z||n.push(t[r]),e=t[r];return n}const kh=na.getInstance();function Ah(t,n,e,r,i,s,o,a,u,h,l,c,f,m){void 0===n.top&&(n.top=!0),void 0===n.side&&(n.side=!0),kh.reset();const{altitudeScale:g,altitudeProperty:v,defaultAltitude:b,heightProperty:w,minHeightProperty:M,defaultHeight:F,tangent:k,uv:A,uvScale:_,topUVMode:O,sideUVMode:E,sideVerticalUVMode:I,top:$,side:z,textureYOrigin:C,topThickness:T}=n,D=!!m,j=function(t,n,{altitudeScale:e,altitudeProperty:r,defaultAltitude:i,heightProperty:s,minHeightProperty:o,defaultHeight:a},{center:u,side:h,top:l,topThickness:c,uvOrigin:f,uv:d,uvSize:p,topUVMode:y,sideUVMode:m,sideVerticalUVMode:g,textureYOrigin:v,localScale:b,centimeterToPoint:w,positionType:M,res:F,glScale:k,projectionCode:A},S,_){let O=n/t[0].extent;n===1/0&&(O=1);const E=n===1/0,I=_.get(),$=_.get(),z=_.get(),C=_.get(),T=_.get(),D=_.get(),j=_.get(),U=!!d,N=!!l,L=!!h,V=U?_.get():null;function R(t,e,r,i,s,o){let a=e;if(N){const i=Ve(C,r,3);if(0===i.length)return e;if(P(T,C),e+=C.length,o)for(let n=2,e=i.length;n<e;n+=3)i[n]+=t/3,i[n-1]+=t/3,i[n-2]+=t/3;else{let n;for(let e=2,r=i.length;e<r;e+=3)n=i[e-1],i[e-1]=i[e]+t/3,i[e]=n+t/3,i[e-2]+=t/3}P(D,i),U&&Tt(y||0,t,e,V,T,f,w,b,p[0],p[1],s,F,k,A,u),c>0&&!L&&(e=Mh(T,C,r,D,e,V,0,c,n,U,m||0,g||0,v,p,b,w,o)),j.setLength(e/3),j.fill(1,a/3,e/3)}if(L){N&&(c=0),a=e,e=Mh(T,C,r,D,e,V,c,i,n,U,m||0,g||0,v,p,b,w,o),j.setLength(e/3);const t=C.length/3;j.fill(1,a/3,a/3+t),j.fill(0,a/3+t,a/3+2*t),j.fill(1,a/3+2*t,a/3+3*t),j.fill(0,a/3+3*t,e/3)}return e}let H=0,W=0;const q=[-1,-1,n+1,n+1];let G=0,B=t.length;x(S)&&(G=S,B=S+1);let J=0,X=!1;const Y=_.get();for(;G<B;G++){const u=t[G],h=u.id;x(h)&&(Math.abs(h)>J&&(J=Math.abs(h)),h<0&&(X=!0));const l=u.geometry,c=u.properties[wh];let f=Array.isArray(c&&c[0]&&c[0][0])?c[0]:c;const{altitude:d,height:p}=yh.getFeaAltitudeAndHeight(u,e,r,i,s,a,o);H=Math.max(Math.abs(d),H);const y=T.length;let m=0,g=W;Y.setLength(0),C.setLength(0);const v=yh.calculateSignedArea(l[0])<0;for(let t=0,e=l.length;t<e;t++){let r=l[t];v&&(r=r.reverse()),r=Fh(r);const i=yh.calculateSignedArea(r)<0;if(!i&&t>0&&(m++,f=c&&c[m],W=R(g,W,Y,p*O,f,E),C.setLength(0),Y.setLength(0),g=W),n!==1/0&&(r=yh.clipPolygon(r,q)),!r.length){t===e-1&&(W=R(g,W,Y,p*O,f,E));continue}const s=r.length;Array.isArray(r[0])?r[0][0]===r[s-1][0]&&r[0][1]===r[s-1][1]||r.push([r[0][0],r[0][1]]):r[0].x===r[s-1].x&&r[0].y===r[s-1].y||r.push(r[0]),i&&Y.push(C.length/3),ot(C,C.length,r,O,d,!1,M),t===e-1&&(W=R(g,W,Y,p*O,f,E))}const b=T.length-y,w="__fea_idx".trim();for(let t=0;t<b/3;t++)$.push(void 0===u[w]?G:u[w]),I.push(G),x(h)&&z.push(h)}const Z=yh.getUnsignedArrayType($.length?$[$.length-1]:0),K={maxAltitude:H,vertices:T,verticeTypes:j,indices:D,pickingIds:na.createTypedArray($,Z),featureIndexes:I};if(z.length){const t=X?yh.getPosArrayType(J):yh.getUnsignedArrayType(J);K.featureIds=na.createTypedArray(z,t)}else K.featureIds=[];return V&&(V.setLength(T.length/3*2),K.uvs=V),K}(t,e,{altitudeScale:g,altitudeProperty:v,defaultAltitude:b||0,heightProperty:w,minHeightProperty:M,defaultHeight:F||0},{center:m,top:$,side:z,topThickness:10*T||0,uv:A||k,uvSize:_?[.5*_[0],.5*_[1]]:[.5,.5],uvOrigin:r,topUVMode:O,sideUVMode:E,sideVerticalUVMode:I,textureYOrigin:C,localScale:o,centimeterToPoint:a,positionType:f,res:i,glScale:s,projectionCode:l},c,kh),U=[],N=j.vertices.length/3,L=yh.getIndexArrayType(N),V=na.createTypedArray(j.indices,L);delete j.indices,U.push(V.buffer,j.pickingIds.buffer);const R=k?kh.get():new Float32Array(3*N);R.setLength&&R.setLength(3*N);const H=re(j.vertices,V,R);let W=!0;for(let t=0;t<H.length;t++){D||(H[t]=-H[t]);const n=H[t]%1;1-Math.abs(n)>1e-6?W=!1:0!==n&&(H[t]=Math.round(H[t]))}if(j.normals=H,k){let t=kh.get();t.setLength(4*N),t=function(t,n,e,r,i){const s=t.length/3,o=i||new Array(4*s),a=[],u=[];for(let t=0;t<s;t++)a[t]=[0,0,0],u[t]=[0,0,0];const h=[0,0,0],l=[0,0,0],c=[0,0,0],f=[0,0],d=[0,0],p=[0,0],y=[0,0,0],m=[0,0,0];function g(n,r,i){fe(h,t,3*n),fe(l,t,3*r),fe(c,t,3*i),de(f,e,2*n),de(d,e,2*r),de(p,e,2*i);const s=l[0]-h[0],o=c[0]-h[0],g=l[1]-h[1],v=c[1]-h[1],b=l[2]-h[2],w=c[2]-h[2],M=d[0]-f[0],x=p[0]-f[0],F=d[1]-f[1],k=p[1]-f[1],A=1/(M*k-x*F);ft(y,(k*s-F*o)*A,(k*g-F*v)*A,(k*b-F*w)*A),ft(m,(M*o-x*s)*A,(M*v-x*g)*A,(M*w-x*b)*A),dt(a[n],a[n],y),dt(a[r],a[r],y),dt(a[i],a[i],y),dt(u[n],u[n],m),dt(u[r],u[r],m),dt(u[i],u[i],m)}for(let t=0,n=r.length;t<n;t+=3)g(r[t+0],r[t+1],r[t+2]);const v=[],b=[],w=[],M=[];let x,F,k;function A(t){fe(w,n,3*t),ct(M,w),F=a[t],ct(v,F),gt(v,v,function(t,n,e){return t[0]=n[0]*e,t[1]=n[1]*e,t[2]=n[2]*e,t}(w,w,yt(w,F))),pt(v,v),mt(b,M,F),k=yt(b,u[t]),x=k<0?-1:1,o[4*t]=v[0],o[4*t+1]=v[1],o[4*t+2]=v[2],o[4*t+3]=x}for(let t=0,n=r.length;t<n;t+=3)A(r[t+0]),A(r[t+1]),A(r[t+2]);return o}(j.vertices,j.normals,j.uvs,V,t),t=function(t,n){const e=new Float32Array(n.length),r=[],i=[],s=[];for(let o=0;o<n.length;o+=4){const a=o/4*3;ft(i,t[a]||0,t[a+1]||0,t[a+2]||0),bt(r,n[o]||0,n[o+1]||0,n[o+2]||0,n[o+3]||0),ne(s,i,r),vt(e.subarray(o,o+4),s)}return e}(j.normals,t),j.tangents=t,U.push(t.buffer),delete j.normals}if(j.normals&&(W&&(j.normals=na.createTypedArray(j.normals,Int8Array)),U.push(j.normals.buffer)),j.uvs){const t=j.uvs;j.uvs=na.createTypedArray(t,Float32Array),U.push(j.uvs.buffer)}if(m){const t=j.vertices;for(let n=0;n<t.length;n+=3)t[n]-=m[0],t[n+1]-=m[1]}const q=f||yh.getPosArrayType(Math.max(512,j.maxAltitude)),G=function(t,n,e,r){const i={},s={};if(S(n.polygonFill)){let o=y(n.polygonFill);const a=new Uint8Array(4*r.length);a.fill(255);for(let n=0;n<r.length;n++){const s=t[r[n]],u=s.properties||{};u.$layer=s.layer,u.$type=s.type;let h=o(e,u);d(h)&&(i.aColor=1,o=y(h),h=o(e,u)),delete u.$layer,delete u.$type,Pr.normalizeColor(Ph,h),a[4*n]=Ph[0],a[4*n+1]=Ph[1],a[4*n+2]=Ph[2],a[4*n+3]=Ph[3]}s.aColor=a}if(S(n.polygonOpacity)){let o=p(n.polygonOpacity);const a=new Uint8Array(r.length);a.fill(255);for(let n=0;n<r.length;n++){const s=t[r[n]],u=s.properties||{};u.$layer=s.layer,u.$type=s.type;let h=o(e,u);d(h)&&(i.aOpacity=1,o=y(h),h=o(e,u)),delete u.$layer,delete u.$type,a[n]=255*h}s.aOpacity=a}return s.dynamicAttributes=i,s}(t,u,h,j.featureIndexes),B=function(t,n,e,r,i){const s=[[],[]],o=S(r.topPolygonFill),a=S(r.bottomPolygonFill),u=[255,255,255,255];if(o||a){let h=o&&y(r.topPolygonFill),l=a&&y(r.bottomPolygonFill),c=null,f=null,p=null,m=null;for(let r=0;r<n.length;r++){if(1===t[r]&&!o||0===t[r]&&!a)continue;const g=1===t[r];if(g&&n[r]===c){t[r]=p;continue}if(!g&&n[r]===f){t[r]=m;continue}const v=e[n[r]],b=v.properties||{};b.$layer=v.layer,b.$type=v.type;let w=g?h:l,M=w(i,b);d(M)&&(w=y(M),M=w(i,b)),delete b.$layer,delete b.$type,Pr.normalizeColor(Ph,M),wt(Ph,Ph,u);let x=Sh(s,Ph);x<0&&(x=s.length,s.push(vt([],Ph))),t[r]=x,g?(c=n[r],p=x):(f=n[r],m=x)}}return s.slice(2)}(j.verticeTypes,j.featureIndexes,t,u,h),J={data:{data:{aVertexColorType:B.length<=252?na.createTypedArray(j.verticeTypes,Uint8Array):na.createTypedArray(j.verticeTypes,Uint16Array),aPosition:na.createTypedArray(j.vertices,q),aNormal:j.normals,aTexCoord0:j.uvs,aTangent:j.tangents,aPickingId:j.pickingIds},indices:V,properties:{maxAltitude:j.maxAltitude},dynamicAttributes:G.dynamicAttributes,vertexColors:B},buffers:U};return j.featureIds.length?(J.data.featureIds=j.featureIds,U.push(J.data.featureIds.buffer)):J.data.featureIds=[],G.aColor&&(J.data.data.aColor=G.aColor,J.buffers.push(G.aColor.buffer)),G.aOpacity&&(J.data.data.aOpacity=G.aOpacity,J.buffers.push(G.aOpacity.buffer)),J.buffers.push(J.data.data.aPosition.buffer),J.data.pickingIdIndiceMap=yh.generatePickingIndiceIndex(J.data.data.aPickingId,J.data.indices),J}const Ph=[];function Sh(t,n){for(let e=0;e<t.length;e++)if(xt(n,t[e]))return e;return-1}function _h(t,n,e,r,{altitudeScale:i,altitudeProperty:s,defaultAltitude:o,heightProperty:a,minHeightProperty:u,defaultHeight:h,bottom:l}){const c=l,f=n/t[0].extent,p=2*function(t,n){let e=0;for(let r=0,i=t.length;r<i;r++){const i=t[r];if(x(i.geometry[0][0])){const t=3*i.geometry.length;e+=n?2*t-6:t}else for(let t=0,r=i.geometry.length;t<r;t++){let r=3*i.geometry[t].length;3===i.type&&(r-=3),e+=n?2*r-6:r}}return e}(t)+3*t.length*2,y=[],m=new Int16Array(p),g=new Uint8Array(m.length/3*4);d(e)&&(e=Xo.compileFilter(e));const v=[];function b(t,e,r){const i=e-t,s=m.subarray(t,e),o=m.subarray(e,e+i);o.set(s);for(let t=2,n=o.length;t<n;t+=3)o[t]=s[t]-r;const a=t/3,u=i/3;let h,l;for(let t=a,e=u+a;t<e;t++)t<e-1?(h=t,l=t+1):(h=t,l=a),at(m,h,l,n)||(v.push(h,l),c&&v.push(h+u,l+u),Oh(m,h,n)||v.push(h,h+u));return e+i}let w=0,M=0;const F="__fea_idx".trim(),k=[];for(let n=0,l=t.length;n<l;n++){const l=t[n],c=l.geometry;if(e){let t;t="function"==typeof e?e(l&&l.properties):e,Pr.normalizeColor(k,t)}else ft(k,255,255,255);const d=w/3*4,{altitude:p,height:x}=yh.getFeaAltitudeAndHeight(l,i,s,o,a,h,u);M=Math.max(Math.abs(p),M);let A=w;for(let t=0,n=c.length;t<n;t++){let n=c[t];const e=n.length;n[0][0]===n[e-1][0]&&n[0][1]===n[e-1][1]&&(n=n.slice(0,e-1)),w=ot(m,A,n,f,p),w=b(A,w,x*f),A=w}const P=A/3*4;for(let t=d;t<P;t+=4)g[t]=k[0],g[t+1]=k[1],g[t+2]=k[2],g[t+3]=255*(r||1);const S=v.length-y.length;for(let t=0;t<S;t++)y.push(l[F])}const A=v.reduce((t,n)=>Math.max(t,n),0),P=new(yh.getIndexArrayType(A))(v),S=yh.getUnsignedArrayType(t.length);return{aPosition:new(yh.getPosArrayType(Math.max(512,M)))(m),indices:P,aPickingId:new S(y),aColor:g}}function Oh(t,n,e){const r=t[3*n],i=t[3*n+1];return r<0||r>e||i<0||i>e}function Eh(t,n,e,r){const i=_h(t,n,e.lineColor,e.lineOpacity,r),s=[i.aPosition.buffer,i.indices.buffer,i.aPickingId.buffer],o=i.indices;return delete i.indices,{data:{data:i,indices:o},buffers:s}}let Ih=!1;try{const t=new OffscreenCanvas(1,1);t.getContext("2d").fillText("hello",0,0),Ih=!0}catch(t){Ih=!1}var $h=Ih;const zh="__original_properties",Ch="__fn-type_properties";class Th{constructor(t,n,e,r,i){this.id=t,this.options=n,this.upload=e,this.Nt(n.style),this.requests={},this.Ct=r,this.Lt=0,this.loadings=i}updateStyle(t,n){this.options.style=t,this.Lt=t.styleCounter,this.Nt(t),n()}updateOptions(t,n){this.options=w(this.options,t),n()}loadTile(t,n){const e=this.loadings,r=t.tileInfo.url,i=this.options.debugTile;if(i){const{x:e,y:r,z:s}=t.tileInfo;let o=!1;for(let t=0;t<i.length;t++)if(e===i[t].x&&r===i[t].y&&s===i[t].z){o=!0;break}if(!o)return void n()}e[r]?e[r].push({context:t,callback:n,ref:this}):(e[r]=[{context:t,callback:n,ref:this}],this.requests[r]=this.getTileFeatures(t,(n,i,s,o)=>{const a=e[r];if(delete e[r],this.checkIfCanceled(r))return delete this.requests[r],void this.Vt(a,null,{canceled:!0});if(delete this.requests[r],this.options.debug&&i)for(let n=0;n<i.length;n++)i[n]._debug_info={index:n,id:i[n].id,tileId:t.tileInfo.id};if(n)this.Vt(a,n);else if(i&&i.length){if(a)for(let t=0;t<a.length;t++)this.Rt.call(a[t].ref,a[t].context,a[t].callback,r,s,i,o)}else this.Vt(a)}))}Rt(t,n,e,r,i,s){this.Ht(r,i,t).then(e=>{e.canceled?n(null,{canceled:!0}):(e.data.style=t.styleCounter,s&&w(e.data,s),n(null,e.data,e.buffers))}).catch(t=>{n(t)})}abortTile(t,n){delete this.requests[t],this.Wt(t),n()}Wt(t){const n=this.loadings[t];if(n)for(let t=0;t<n.length;t++)n[t].callback(null,{canceled:!0});delete this.loadings[t]}Vt(t,n,e){if(t)for(let r=0;r<t.length;r++)t[r].callback(n,e)}checkIfCanceled(t){return!this.requests[t]}onRemove(){this.loadings={},delete this.Ct,this.requests={}}fetchIconGlyphs(t,n,e){if(this.options.workerGlyph&&$h){const r=[];if(t&&Object.keys(t).length){const n=new Promise(n=>{this.upload("fetchIconGlyphs",{icons:t},null,(t,e)=>{n({err:t,iconData:e})})});r.push(n)}if(n&&Object.keys(n).length){const t=new Promise(t=>{this.qt||(this.qt=new dh),this.qt.getGlyphs(n,(n,e)=>{t({err:n,glyphData:e})})});r.push(t)}Promise.all(r).then(t=>{const n={icons:null,glyphs:null};for(let r=0;r<t.length;r++){if(t[r].err)return void e(t[r].err);t[r].iconData?n.icons=t[r].iconData.icons:t[r].glyphData&&(n.glyphs=t[r].glyphData.glyphs)}return n}).then(t=>{e(null,t)})}else this.upload("fetchIconGlyphs",{icons:t,glyphs:n},null,e)}Ht(t,n,e){if(!n.length)return Promise.resolve({data:null,buffers:[]});const{glScale:r,tileInfo:i}=e,s=!this.options.style.style.length&&!this.options.style.featureStyle.length;let o=this.pluginConfig.slice(0);s&&(o=this.Gt(t)),this.featurePlugins&&P(o,this.featurePlugins);const a={};for(let t=0;t<o.length;t++)Rh(n,e.tileInfo.z,o[t],a);const u=[],h=[];for(let t=0;t<n.length;t++){const e=n[t],r=a[t];if(r){h.fill(null);let t=0;for(const n in r){let i=0;const s=r[n].values();for(const t of s){let r=h[i];r||(r=Gh(e),h[i]=r),r.properties[n]=t,i++}i>t&&(t=i)}for(let n=0;n<t;n++)u.push(h[n])}else u.push(e)}const l=(n=u)[0].extent,c=i.z,f={x:i.extent2d.xmin*r,y:i.extent2d.ymax*r},d=[],p=[],y=[],m=this.options,g=[],v={},b=[Promise.resolve(e.styleCounter)];let M=0,x=-1;const F=[];let k=!1;for(let t=0;t<o.length;t++){x++;const r=o[t];r.type!==M&&(x=0,M=r.type);const a=0===r.type?d:p;if(r.symbol&&!1===r.symbol.visible){a[x]=null;continue}Xh(r.symbol,F,t),k=k||F[t]&&F[t].size>0;const{tileFeatures:u,tileFeaIndexes:h}=this.Bt(c,r.type,r.filter,n,v,t);if(!u.length){a[x]=null;continue}const m=h[h.length-1],A=yh.getIndexArrayType(m);a[x]={styledFeatures:new A(h)},y.push({idx:t,typeIdx:x}),g.push(a[x].styledFeatures.buffer);const P=w({},e,{extent:l,zoom:c,tilePoint:f});if(this.options.debugTile){const t=this.options.debugTile;for(let n=0;n<t.length;n++){const{x:e,y:r,z:s}=t[n];if(i.x===e&&i.y===r&&i.z===s){P.debugIndex=t[n].index;break}}}let S=this.Jt(u,r,P);s&&(S=S.then(t=>{if(!t)return null;if(t.data)t.data.layer=u[0].layer;else if(Array.isArray(t))for(let n=0;n<t.length;n++)t[n]&&t[n].data&&(t[n].data.layer=u[0].layer);return t})),b.push(S)}return Promise.all(b).then(([e,...r])=>{function i(t,n){if(void 0===t.data.ref&&(t.data.type=o[y[n].idx].renderPlugin.dataConfig.type,t.data.filter=o[y[n].idx].filter.def,t.buffers&&t.buffers.length))for(let n=0;n<t.buffers.length;n++)g.push(t.buffers[n])}if(e!==this.Lt)return{canceled:!0};for(let t=0;t<r.length;t++){if(!r[t])continue;const n=r[t],e=0===o[y[t].idx].type?d:p;if(Array.isArray(n)){const r=[];for(let e=0;e<n.length;e++)n[e]&&(i(n[e],t),(void 0===n[e].data.ref||n[n[e].data.ref])&&r.push(n[e].data));r.length&&(e[y[t].typeIdx].data=r)}else i(n,t),e[y[t].typeIdx].data=n.data}const s={},a=t;if(m.features||m.schema||k){let t,e=!1;for(let r=0,i=n.length;r<i;r++)if(t=n[r],a[t.layer].properties||(a[t.layer].properties=Uh(t.properties)),t&&(m.features||k&&v[r]))if("id"===m.features)s[r]=t.id;else{m.pickingGeometry||delete t.geometry,delete t.extent,delete t.properties.$layer,delete t.properties.$type,delete t.__index;const n=t.originalFeature;if(n){const n=t.properties,e=w({},t.originalFeature);delete n[zh],e.customProps=w({},n),t=e}const i=w({},t);if(!m.features){const i=v[r];for(let r=0;r<i.length;r++){const i=F[r];i&&i.forEach(r=>{const i=n?n.properties:t.properties;i[Ch]||(i[Ch]=new Set),i[Ch].add(r),e=!0})}}s[r]=i}if(e)for(const t in s){const n=s[t];if(n.properties[Ch]){const t=n.properties[Ch];delete n.properties[Ch];for(const e in n.properties)t.has(e)||delete n.properties[e]}}}return{data:{schema:a,data:d,featureData:p,extent:l,features:s},buffers:g}}).catch(t=>{console.error(t)})}Jt(t,n,e){let r=t;const i=n.renderPlugin.dataConfig,s=n.symbol,o=this.options.tileSize,{extent:a,glScale:u,zScale:h,zoom:l,tilePoint:c,centimeterToPoint:f}=e,d=a/o,p=i.type,y=e.debugIndex;let m=w({},i,{EXTENT:a,zoom:l,debugIndex:y,features:this.options.features});if("3d-extrusion"===p){const t=Nh(s);t&&(i.uv=1,2===t&&(i.tangent=1));const n=this.options.projectionCode;return Promise.all([Promise.resolve(Ah(r,i,a,c,e.tileInfo.res,u,this.options.tileSize/a,f,s,l,n,y))])}if("3d-wireframe"===p)return Promise.all([Promise.resolve(Eh(r,a,s,i))]);if("point"===p){m=w(m,{requestor:this.fetchIconGlyphs.bind(this),altitudeToTileScale:h*a/this.options.tileSize/u});const t=wu.splitPointSymbol(s),n=ua.genFnTypes(t[0]);return wu.needMerge(t[0],n,l)&&(r=wu.mergeLineFeatures(r,t[0],n,l)),Promise.all(t.map((t,e)=>(0===e?m.fnTypes=n:delete m.fnTypes,new wu(r,t,m).load(d))))}if("native-point"===p){const t=h*a/this.options.tileSize/u;return m.altitudeToTileScale=t,Lh(r,s,m,Nu,a/o)}if("line"===p)return m=w(m,{requestor:this.fetchIconGlyphs.bind(this),tileRatio:d}),Lh(r,s,m,Su);if("native-line"===p)return Lh(r,s,m,ju);if("fill"===p)return m=w(m,{requestor:this.fetchIconGlyphs.bind(this)}),Lh(r,s,m,Gu);if("line-extrusion"===p){delete s.lineGradientProperty,s.lineJoin="miter",s.lineCap="butt";const t=Nh(s);if(t&&(i.uv=1,2===t&&(i.tangent=1)),m=w(m,{tileSize:o,zScale:h,glScale:u}),t){const t=[];if(!1!==i.top){const n=w({},m);n.side=!1,t.push(new Tu(r,s,n))}return!1!==i.side&&(m.side=!0,m.top=!1,t.push(new Tu(r,s,m))),Promise.all(t.map(t=>t.load()))}return Promise.all([new Tu(r,s,m).load()])}if("circle"===p)return Lh(r,s,m,Ju);if("round-tube"===p||"square-tube"===p){const t="round-tube"===p?Xu:nh;return m=w(m,{requestor:this.fetchIconGlyphs.bind(this),radialSegments:"round-tube"===p?i.radialSegments||8:4,centimeterToPoint:f,tileRatio:d,isTube:!0}),Lh(r,s,m,t)}return Promise.resolve([])}Bt(t,n,e,r,i,s){const o="__fea_idx".trim(),a=[],u=[],h=r.length;for(let l=0;l<h;l++)if((1===n||void 0===r[l].id||!this.styledFeatures[r[l].id])&&((!e.def||"default"===e.def)&&!i[l]||!0===e.def||e.def&&(void 0!==e.def.condition||Array.isArray(e.def))&&e(r[l],t))){const t=r[l];if(void 0===t[o]&&(t[o]=l),i[l]||(i[l]=[]),i[l].push(s),u.push(t),a.push(l),1===n)break}return{tileFeatures:u,tileFeaIndexes:a}}Nt(t){const{style:n,featureStyle:e}=t,r={};e.forEach(t=>{Array.isArray(t.id)?(t.id.forEach(t=>{r[t]=1}),t.filter=["in","$id",...t.id]):(r[t.id]=1,t.filter=["==","$id",t.id])});const i=Xo.compileStyle(n);for(let t=0;t<n.length;t++)i[t].filter&&(i[t].filter.def=n[t].filter?n[t].filter.value||n[t].filter:void 0),i[t].type=0;const s=[],o=Xo.compileStyle(e);for(let t=0;t<e.length;t++)o[t].type=1,o[t].filter.def=e[t].filter?e[t].filter.value||e[t].filter:void 0,o[t].renderPlugin&&s.push(o[t]);this.pluginConfig=i,this.featurePlugins=s,this.styledFeatures=r}Gt(t){let n=this.Xt;this.Xt||(n=this.Xt={});const e=["","Point","LineString","Polygon","MultiPoint","MultiLineString","MultiPolygon"],r=[];for(const i in t){const s=i;if(!n[i]){const r=[];for(let n=0;n<t[i].types.length;n++){const o=t[i].types[n],a=["all",["==","$layer",s],["==","$type",e[o]]],u={filter:Tn(a),renderPlugin:Dh(o),symbol:jh(o)};u.filter.def=a,u.type=0,r.push(u)}n[s]=r}r.push(...n[s])}return r}}function Dh(t){switch(t){case 1:return{type:"native-point",dataConfig:{type:"native-point",only2D:!0}};case 2:return{type:"native-line",dataConfig:{type:"native-line",only2D:!0}};case 3:return{type:"fill",dataConfig:{type:"fill",only2D:!0}}}return null}function jh(t){switch(t){case 1:return{markerFill:"#f00",markerSize:10};case 2:return{lineColor:"#fff"};case 3:return{polygonFill:"#00f",polygonOpacity:.4}}return null}function Uh(t){if(Array.isArray(t)||!k(t))return{};const n={};for(const e in t){const r=t[e];M(r)?n[e]="string":x(r)?n[e]="number":!0===r||!1===r?n[e]="boolean":Array.isArray(r)?n[e]="array":n[e]="object"}return n}function Nh(t){if(!t)return 0;let n=0;for(const e in t){if(("normalTexture"===e||"bumpTexture"===e)&&t[e])return 2;if(e.indexOf("Texture")>0&&t[e])n=1;else if(k(t[e])){const r=Nh(t[e]);if(2===r)return r;1===r&&(n=1)}}return n}function Lh(t,n,e,r,i){const s={},o=Array.isArray(n)?n:[n];let a=-1;for(let t=0;t<o.length;t++)s[t]=Vh(o[t]),!s[t]&&o[t]&&-1===a&&(a=t);const u=[];for(let n=0;n<o.length;n++)o[n]&&(o[n].index={index:n},s[n]||n===a?u.push(new r(t,o[n],e).load(i)):u.push({data:{ref:a,symbolIndex:{index:n}}}));return Promise.all(u)}function Vh(t){if(!t)return 0;for(const n in t)if(S(t[n]))return 1;return 0}function Rh(t,n,e,r){const i=e.customProperties;if(!i)return t;if(i)for(let t=0;t<i.length;t++)i[t].fn=Xo.compileFilter(i[t].filter);for(let e=0;e<i.length;e++)for(let s=0,o=t.length;s<o;s++)if(i[e].fn(t[s],n))for(const t in i[e].properties){const n=i[e].properties[t];A(n)||(r[s]||(r[s]={}),r[s][t]||(r[s][t]=new Set),r[s][t].add(n))}}const Hh={get:(t,n)=>n in t?t[n]:t.originalFeature[n],has:(t,n)=>n in t||n in t.originalFeature},Wh={get:function(t,n){return n in t?t[n]:t[zh][n]},has:(t,n)=>n in t||n in t[zh]},qh={};function Gh(t){const n={};n.originalFeature=t;const e=new Proxy(n,Hh);return e.properties=new Proxy({},Wh),e.properties[zh]=t.properties||qh,e}function Bh(t,n,e){t[n]||(t[n]=new Set),t[n].add(e)}const Jh=[];function Xh(t,n,e){if(!t)return Jh;for(const r in t){if(!t[r]||!Pr.checkIfZoomFnTypeSymbol(r))continue;if(S(t[r]))Bh(n,e,t[r].property);else{if("lineGradientProperty"===r){Bh(n,e,t[r]);continue}if("textName"===r)if(M(t[r])){const i=ma.resolveVarNames(t[r]);if(i)for(let t=0;t<i.length;t++)Bh(n,e,i[t])}else if(Xo.isExpression(t[r])){const i=[];ma.resolveExpVarNames(i,t[r]);for(let t=0;t<i.length;t++)Bh(n,e,i[t])}}const i=t[r].stops;if(i&&i.length)for(let t=0;t<i.length;t++)S(i[t][1])&&Bh(n,t,i[t][1].property)}return n[e]}function Yh(t,n){Zh(t.geometry,n)}function Zh(t,n){if(t)switch(t.type){case"Point":Kh(t.coordinates,n);break;case"MultiPoint":case"LineString":Qh(t.coordinates,n);break;case"MultiLineString":!function(t,n){for(let e=0,r=t.length;e<r;e++)Qh(t[e],n)}(t.coordinates,n);break;case"Polygon":tl(t.coordinates,n);break;case"MultiPolygon":!function(t,n){for(let e=0,r=t.length;e<r;e++)tl(t[e],n)}(t.coordinates,n);break;case"GeometryCollection":const e=t.geometries.length;for(let r=0;r<e;r++)Zh(t.geometries[r],n)}}function Kh(t,n){n[0]=Math.min(n[0],t[0]),n[1]=Math.min(n[1],t[1]),n[2]=Math.max(n[2],t[0]),n[3]=Math.max(n[3],t[1])}function Qh(t,n){for(let e=0,r=t.length;e<r;e++)Kh(t[e],n)}function tl(t,n){t.length&&Qh(t[0],n)}function nl(t,n,e,r,i){!function t(n,e,r,i,s){for(;i>r;){if(i-r>600){var o=i-r+1,a=e-r+1,u=Math.log(o),h=.5*Math.exp(2*u/3),l=.5*Math.sqrt(u*h*(o-h)/o)*(a-o/2<0?-1:1),c=Math.max(r,Math.floor(e-a*h/o+l)),f=Math.min(i,Math.floor(e+(o-a)*h/o+l));t(n,e,c,f,s)}var d=n[e],p=r,y=i;for(el(n,r,e),s(n[i],d)>0&&el(n,r,i);p<y;){for(el(n,p,y),p++,y--;s(n[p],d)<0;)p++;for(;s(n[y],d)>0;)y--}0===s(n[r],d)?el(n,r,y):(y++,el(n,y,i)),y<=e&&(r=y+1),e<=y&&(i=y-1)}}(t,n,e||0,r||t.length-1,i||rl)}function el(t,n,e){var r=t[n];t[n]=t[e],t[e]=r}function rl(t,n){return t<n?-1:t>n?1:0}class il{constructor(t=9){this.Yt=Math.max(4,t),this.Zt=Math.max(2,Math.ceil(.4*this.Yt)),this.clear()}all(){return this.Kt(this.data,[])}search(t){let n=this.data;const e=[];if(!ml(t,n))return e;const r=this.toBBox,i=[];for(;n;){for(let s=0;s<n.children.length;s++){const o=n.children[s],a=n.leaf?r(o):o;ml(t,a)&&(n.leaf?e.push(o):yl(t,a)?this.Kt(o,e):i.push(o))}n=i.pop()}return e}collides(t){let n=this.data;if(!ml(t,n))return!1;const e=[];for(;n;){for(let r=0;r<n.children.length;r++){const i=n.children[r],s=n.leaf?this.toBBox(i):i;if(ml(t,s)){if(n.leaf||yl(t,s))return!0;e.push(i)}}n=e.pop()}return!1}load(t){if(!t||!t.length)return this;if(t.length<this.Zt){for(let n=0;n<t.length;n++)this.insert(t[n]);return this}let n=this.Qt(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this.tn(this.data,n);else{if(this.data.height<n.height){const t=this.data;this.data=n,n=t}this.nn(n,this.data.height-n.height-1,!0)}else this.data=n;return this}insert(t){return t&&this.nn(t,this.data.height-1),this}clear(){return this.data=gl([]),this}remove(t,n){if(!t)return this;let e=this.data;const r=this.toBBox(t),i=[],s=[];let o,a,u;for(;e||i.length;){if(e||(e=i.pop(),a=i[i.length-1],o=s.pop(),u=!0),e.leaf){const r=sl(t,e.children,n);if(-1!==r)return e.children.splice(r,1),i.push(e),this.en(i),this}u||e.leaf||!yl(e,r)?a?(o++,e=a.children[o],u=!1):e=null:(i.push(e),s.push(o),o=0,a=e,e=e.children[0])}return this}toBBox(t){return t}compareMinX(t,n){return t.minX-n.minX}compareMinY(t,n){return t.minY-n.minY}toJSON(){return this.data}fromJSON(t){return this.data=t,this}Kt(t,n){const e=[];for(;t;)t.leaf?n.push(...t.children):e.push(...t.children),t=e.pop();return n}Qt(t,n,e,r){const i=e-n+1;let s,o=this.Yt;if(i<=o)return s=gl(t.slice(n,e+1)),ol(s,this.toBBox),s;r||(r=Math.ceil(Math.log(i)/Math.log(o)),o=Math.ceil(i/Math.pow(o,r-1))),s=gl([]),s.leaf=!1,s.height=r;const a=Math.ceil(i/o),u=a*Math.ceil(Math.sqrt(o));vl(t,n,e,u,this.compareMinX);for(let i=n;i<=e;i+=u){const n=Math.min(i+u-1,e);vl(t,i,n,a,this.compareMinY);for(let e=i;e<=n;e+=a){const i=Math.min(e+a-1,n);s.children.push(this.Qt(t,e,i,r-1))}}return ol(s,this.toBBox),s}rn(t,n,e,r){for(;r.push(n),!n.leaf&&r.length-1!==e;){let e,r=1/0,i=1/0;for(let s=0;s<n.children.length;s++){const o=n.children[s],a=cl(o),u=dl(t,o)-a;u<i?(i=u,r=a<r?a:r,e=o):u===i&&a<r&&(r=a,e=o)}n=e||n.children[0]}return n}nn(t,n,e){const r=e?t:this.toBBox(t),i=[],s=this.rn(r,this.data,n,i);for(s.children.push(t),ul(s,r);n>=0&&i[n].children.length>this.Yt;)this.sn(i,n),n--;this.an(r,i,n)}sn(t,n){const e=t[n],r=e.children.length,i=this.Zt;this.un(e,i,r);const s=this.hn(e,i,r),o=gl(e.children.splice(s,e.children.length-s));o.height=e.height,o.leaf=e.leaf,ol(e,this.toBBox),ol(o,this.toBBox),n?t[n-1].children.push(o):this.tn(e,o)}tn(t,n){this.data=gl([t,n]),this.data.height=t.height+1,this.data.leaf=!1,ol(this.data,this.toBBox)}hn(t,n,e){let r,i=1/0,s=1/0;for(let o=n;o<=e-n;o++){const n=al(t,0,o,this.toBBox),a=al(t,o,e,this.toBBox),u=pl(n,a),h=cl(n)+cl(a);u<i?(i=u,r=o,s=h<s?h:s):u===i&&h<s&&(s=h,r=o)}return r||e-n}un(t,n,e){const r=t.leaf?this.compareMinX:hl,i=t.leaf?this.compareMinY:ll;this.cn(t,n,e,r)<this.cn(t,n,e,i)&&t.children.sort(r)}cn(t,n,e,r){t.children.sort(r);const i=this.toBBox,s=al(t,0,n,i),o=al(t,e-n,e,i);let a=fl(s)+fl(o);for(let r=n;r<e-n;r++){const n=t.children[r];ul(s,t.leaf?i(n):n),a+=fl(s)}for(let r=e-n-1;r>=n;r--){const n=t.children[r];ul(o,t.leaf?i(n):n),a+=fl(o)}return a}an(t,n,e){for(let r=e;r>=0;r--)ul(n[r],t)}en(t){for(let n,e=t.length-1;e>=0;e--)0===t[e].children.length?e>0?(n=t[e-1].children,n.splice(n.indexOf(t[e]),1)):this.clear():ol(t[e],this.toBBox)}}function sl(t,n,e){if(!e)return n.indexOf(t);for(let r=0;r<n.length;r++)if(e(t,n[r]))return r;return-1}function ol(t,n){al(t,0,t.children.length,n,t)}function al(t,n,e,r,i){i||(i=gl(null)),i.minX=1/0,i.minY=1/0,i.maxX=-1/0,i.maxY=-1/0;for(let s=n;s<e;s++){const n=t.children[s];ul(i,t.leaf?r(n):n)}return i}function ul(t,n){return t.minX=Math.min(t.minX,n.minX),t.minY=Math.min(t.minY,n.minY),t.maxX=Math.max(t.maxX,n.maxX),t.maxY=Math.max(t.maxY,n.maxY),t}function hl(t,n){return t.minX-n.minX}function ll(t,n){return t.minY-n.minY}function cl(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function fl(t){return t.maxX-t.minX+(t.maxY-t.minY)}function dl(t,n){return(Math.max(n.maxX,t.maxX)-Math.min(n.minX,t.minX))*(Math.max(n.maxY,t.maxY)-Math.min(n.minY,t.minY))}function pl(t,n){const e=Math.max(t.minX,n.minX),r=Math.max(t.minY,n.minY),i=Math.min(t.maxX,n.maxX),s=Math.min(t.maxY,n.maxY);return Math.max(0,i-e)*Math.max(0,s-r)}function yl(t,n){return t.minX<=n.minX&&t.minY<=n.minY&&n.maxX<=t.maxX&&n.maxY<=t.maxY}function ml(t,n){return n.minX<=t.maxX&&n.minY<=t.maxY&&n.maxX>=t.minX&&n.maxY>=t.minY}function gl(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function vl(t,n,e,r,i){const s=[n,e];for(;s.length;){if((e=s.pop())-(n=s.pop())<=r)continue;const o=n+Math.ceil((e-n)/r/2)*r;nl(t,o,n,e,i),s.push(n,o,o,e)}}class bl{constructor(t=[],n=wl){if(this.data=t,this.length=this.data.length,this.compare=n,this.length>0)for(let t=(this.length>>1)-1;t>=0;t--)this.D(t)}push(t){this.data.push(t),this.length++,this.j(this.length-1)}pop(){if(0===this.length)return;const t=this.data[0],n=this.data.pop();return this.length--,this.length>0&&(this.data[0]=n,this.D(0)),t}peek(){return this.data[0]}j(t){const{data:n,compare:e}=this,r=n[t];for(;t>0;){const i=t-1>>1,s=n[i];if(e(r,s)>=0)break;n[t]=s,t=i}n[t]=r}D(t){const{data:n,compare:e}=this,r=this.length>>1,i=n[t];for(;t<r;){let r=1+(t<<1),s=n[r];const o=r+1;if(o<this.length&&e(n[o],s)<0&&(r=o,s=n[o]),e(s,i)>=0)break;n[t]=s,t=r}n[t]=i}}function wl(t,n){return t<n?-1:t>n?1:0}var Ml={exports:{}},xl=function(t,n,e,r){var i=t[0],s=t[1],o=!1;void 0===e&&(e=0),void 0===r&&(r=n.length);for(var a=(r-e)/2,u=0,h=a-1;u<a;h=u++){var l=n[e+2*u+0],c=n[e+2*u+1],f=n[e+2*h+0],d=n[e+2*h+1];c>s!=d>s&&i<(f-l)*(s-c)/(d-c)+l&&(o=!o)}return o},Fl=function(t,n,e,r){var i=t[0],s=t[1],o=!1;void 0===e&&(e=0),void 0===r&&(r=n.length);for(var a=r-e,u=0,h=a-1;u<a;h=u++){var l=n[u+e][0],c=n[u+e][1],f=n[h+e][0],d=n[h+e][1];c>s!=d>s&&i<(f-l)*(s-c)/(d-c)+l&&(o=!o)}return o};Ml.exports=function(t,n,e,r){return n.length>0&&Array.isArray(n[0])?Fl(t,n,e,r):xl(t,n,e,r)};var kl=Ml.exports.nested=Fl;Ml.exports.flat=xl;function Al(t,n,e,r,i){let s,o,a,u,h=n[0],l=r[0],c=0,f=0;l>h==l>-h?(s=h,h=n[++c]):(s=l,l=r[++f]);let d=0;if(c<t&&f<e)for(l>h==l>-h?(o=h+s,a=s-(o-h),h=n[++c]):(o=l+s,a=s-(o-l),l=r[++f]),s=o,0!==a&&(i[d++]=a);c<t&&f<e;)l>h==l>-h?(o=s+h,u=o-s,a=s-(o-u)+(h-u),h=n[++c]):(o=s+l,u=o-s,a=s-(o-u)+(l-u),l=r[++f]),s=o,0!==a&&(i[d++]=a);for(;c<t;)o=s+h,u=o-s,a=s-(o-u)+(h-u),h=n[++c],s=o,0!==a&&(i[d++]=a);for(;f<e;)o=s+l,u=o-s,a=s-(o-u)+(l-u),l=r[++f],s=o,0!==a&&(i[d++]=a);return 0===s&&0!==d||(i[d++]=s),d}function Pl(t){return new Float64Array(t)}const Sl=Pl(4),_l=Pl(8),Ol=Pl(12),El=Pl(16),Il=Pl(4);function $l(t,n,e,r,i,s){const o=(n-s)*(e-i),a=(t-i)*(r-s),u=o-a;if(0===o||0===a||o>0!=a>0)return u;const h=Math.abs(o+a);return Math.abs(u)>=33306690738754716e-32*h?u:-function(t,n,e,r,i,s,o){let a,u,h,l,c,f,d,p,y,m,g,v,b,w,M,x,F,k;const A=t-i,P=e-i,S=n-s,_=r-s;w=A*_,f=134217729*A,d=f-(f-A),p=A-d,f=134217729*_,y=f-(f-_),m=_-y,M=p*m-(w-d*y-p*y-d*m),x=S*P,f=134217729*S,d=f-(f-S),p=S-d,f=134217729*P,y=f-(f-P),m=P-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,Sl[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,Sl[1]=b-(g+c)+(c-x),k=v+g,c=k-v,Sl[2]=v-(k-c)+(g-c),Sl[3]=k;let O=function(t,n){let e=n[0];for(let r=1;r<t;r++)e+=n[r];return e}(4,Sl),E=22204460492503146e-32*o;if(O>=E||-O>=E)return O;if(c=t-A,a=t-(A+c)+(c-i),c=e-P,h=e-(P+c)+(c-i),c=n-S,u=n-(S+c)+(c-s),c=r-_,l=r-(_+c)+(c-s),0===a&&0===u&&0===h&&0===l)return O;if(E=11093356479670487e-47*o+33306690738754706e-32*Math.abs(O),O+=A*l+_*a-(S*h+P*u),O>=E||-O>=E)return O;w=a*_,f=134217729*a,d=f-(f-a),p=a-d,f=134217729*_,y=f-(f-_),m=_-y,M=p*m-(w-d*y-p*y-d*m),x=u*P,f=134217729*u,d=f-(f-u),p=u-d,f=134217729*P,y=f-(f-P),m=P-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,Il[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,Il[1]=b-(g+c)+(c-x),k=v+g,c=k-v,Il[2]=v-(k-c)+(g-c),Il[3]=k;const I=Al(4,Sl,4,Il,_l);w=A*l,f=134217729*A,d=f-(f-A),p=A-d,f=134217729*l,y=f-(f-l),m=l-y,M=p*m-(w-d*y-p*y-d*m),x=S*h,f=134217729*S,d=f-(f-S),p=S-d,f=134217729*h,y=f-(f-h),m=h-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,Il[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,Il[1]=b-(g+c)+(c-x),k=v+g,c=k-v,Il[2]=v-(k-c)+(g-c),Il[3]=k;const $=Al(I,_l,4,Il,Ol);w=a*l,f=134217729*a,d=f-(f-a),p=a-d,f=134217729*l,y=f-(f-l),m=l-y,M=p*m-(w-d*y-p*y-d*m),x=u*h,f=134217729*u,d=f-(f-u),p=u-d,f=134217729*h,y=f-(f-h),m=h-y,F=p*m-(x-d*y-p*y-d*m),g=M-F,c=M-g,Il[0]=M-(g+c)+(c-F),v=w+g,c=v-w,b=w-(v-c)+(g-c),g=b-x,c=b-g,Il[1]=b-(g+c)+(c-x),k=v+g,c=k-v,Il[2]=v-(k-c)+(g-c),Il[3]=k;const z=Al($,Ol,4,Il,El);return El[z-1]}(t,n,e,r,i,s,h)}function zl(t,n,e){n=Math.max(0,void 0===n?2:n),e=e||0;var r=function(t){for(var n=t[0],e=t[0],r=t[0],i=t[0],s=0;s<t.length;s++){var o=t[s];o[0]<n[0]&&(n=o),o[0]>r[0]&&(r=o),o[1]<e[1]&&(e=o),o[1]>i[1]&&(i=o)}var a=[n,e,r,i],u=a.slice();for(s=0;s<t.length;s++)kl(t[s],a)||u.push(t[s]);return function(t){t.sort(ql);for(var n=[],e=0;e<t.length;e++){for(;n.length>=2&&Nl(n[n.length-2],n[n.length-1],t[e])<=0;)n.pop();n.push(t[e])}for(var r=[],i=t.length-1;i>=0;i--){for(;r.length>=2&&Nl(r[r.length-2],r[r.length-1],t[i])<=0;)r.pop();r.push(t[i])}return r.pop(),n.pop(),n.concat(r)}(u)}(t),i=new il(16);i.toBBox=function(t){return{minX:t[0],minY:t[1],maxX:t[0],maxY:t[1]}},i.compareMinX=function(t,n){return t[0]-n[0]},i.compareMinY=function(t,n){return t[1]-n[1]},i.load(t);for(var s,o=[],a=0;a<r.length;a++){var u=r[a];i.remove(u),s=Vl(u,s),o.push(s)}var h=new il(16);for(a=0;a<o.length;a++)h.insert(Ll(o[a]));for(var l=n*n,c=e*e;o.length;){var f=o.shift(),d=f.p,p=f.next.p,y=Rl(d,p);if(!(y<c)){var m=y/l;(u=Cl(i,f.prev.p,d,p,f.next.next.p,m,h))&&Math.min(Rl(u,d),Rl(u,p))<=m&&(o.push(f),o.push(Vl(u,f)),i.remove(u),h.remove(f),h.insert(Ll(f)),h.insert(Ll(f.next)))}}f=s;var g=[];do{g.push(f.p),f=f.next}while(f!==s);return g.push(f.p),g}function Cl(t,n,e,r,i,s,o){for(var a=new bl([],Tl),u=t.data;u;){for(var h=0;h<u.children.length;h++){var l=u.children[h],c=u.leaf?Hl(l,e,r):Dl(e,r,l);c>s||a.push({node:l,dist:c})}for(;a.length&&!a.peek().node.children;){var f=a.pop(),d=f.node,p=Hl(d,n,e),y=Hl(d,r,i);if(f.dist<p&&f.dist<y&&Ul(e,d,o)&&Ul(r,d,o))return d}(u=a.pop())&&(u=u.node)}return null}function Tl(t,n){return t.dist-n.dist}function Dl(t,n,e){if(jl(t,e)||jl(n,e))return 0;var r=Wl(t[0],t[1],n[0],n[1],e.minX,e.minY,e.maxX,e.minY);if(0===r)return 0;var i=Wl(t[0],t[1],n[0],n[1],e.minX,e.minY,e.minX,e.maxY);if(0===i)return 0;var s=Wl(t[0],t[1],n[0],n[1],e.maxX,e.minY,e.maxX,e.maxY);if(0===s)return 0;var o=Wl(t[0],t[1],n[0],n[1],e.minX,e.maxY,e.maxX,e.maxY);return 0===o?0:Math.min(r,i,s,o)}function jl(t,n){return t[0]>=n.minX&&t[0]<=n.maxX&&t[1]>=n.minY&&t[1]<=n.maxY}function Ul(t,n,e){for(var r,i,s,o,a=Math.min(t[0],n[0]),u=Math.min(t[1],n[1]),h=Math.max(t[0],n[0]),l=Math.max(t[1],n[1]),c=e.search({minX:a,minY:u,maxX:h,maxY:l}),f=0;f<c.length;f++)if(r=c[f].p,i=c[f].next.p,s=t,r!==(o=n)&&i!==s&&Nl(r,i,s)>0!=Nl(r,i,o)>0&&Nl(s,o,r)>0!=Nl(s,o,i)>0)return!1;return!0}function Nl(t,n,e){return $l(t[0],t[1],n[0],n[1],e[0],e[1])}function Ll(t){var n=t.p,e=t.next.p;return t.minX=Math.min(n[0],e[0]),t.minY=Math.min(n[1],e[1]),t.maxX=Math.max(n[0],e[0]),t.maxY=Math.max(n[1],e[1]),t}function Vl(t,n){var e={p:t,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return n?(e.next=n.next,e.prev=n,n.next.prev=e,n.next=e):(e.prev=e,e.next=e),e}function Rl(t,n){var e=t[0]-n[0],r=t[1]-n[1];return e*e+r*r}function Hl(t,n,e){var r=n[0],i=n[1],s=e[0]-r,o=e[1]-i;if(0!==s||0!==o){var a=((t[0]-r)*s+(t[1]-i)*o)/(s*s+o*o);a>1?(r=e[0],i=e[1]):a>0&&(r+=s*a,i+=o*a)}return(s=t[0]-r)*s+(o=t[1]-i)*o}function Wl(t,n,e,r,i,s,o,a){var u,h,l,c,f=e-t,d=r-n,p=o-i,y=a-s,m=t-i,g=n-s,v=f*f+d*d,b=f*p+d*y,w=p*p+y*y,M=f*m+d*g,x=p*m+y*g,F=v*w-b*b,k=F,A=F;0===F?(h=0,k=1,c=x,A=w):(c=v*x-b*M,(h=b*x-w*M)<0?(h=0,c=x,A=w):h>k&&(h=k,c=x+b,A=w)),c<0?(c=0,-M<0?h=0:-M>v?h=k:(h=-M,k=v)):c>A&&(c=A,-M+b<0?h=0:-M+b>v?h=k:(h=-M+b,k=v));var P=(1-(l=0===c?0:c/A))*i+l*o-((1-(u=0===h?0:h/k))*t+u*e),S=(1-l)*s+l*a-((1-u)*n+u*r);return P*P+S*S}function ql(t,n){return t[0]===n[0]?t[1]-n[1]:t[0]-n[0]}class Gl{constructor(t,n){this.x=t,this.y=n}clone(){return new Gl(this.x,this.y)}normalize(){const t=this.length();this.x/=t,this.y/=t}negate(){this.x=-this.x,this.y=-this.y}length(){return Math.sqrt(this.x*this.x+this.y*this.y)}diff(t){return new Gl(this.x-t.x,this.y-t.y)}distance(t){const n=this.x-t.x,e=this.y-t.y;return Math.sqrt(n*n+e*e)}dot(t){return this.x*t.x+this.y*t.y}equals(t){return this.x===t.x&&this.y===t.y}orthogonal(){return new Gl(this.y,-this.x)}}function Bl(t,n,e,r){const i=n.x*r.y-n.y*r.x,s=e.x-t.x,o=e.y-t.y,a=(s*r.y-o*r.x)/i;return new Gl(t.x+a*n.x,t.y+a*n.y)}const Jl=[],Xl=[];function Yl(t){if(x(t[0]&&t[0].x)){const n=[];let e=0;for(let r=0;r<t.length;r++)Xl[e]?(Xl[e][0]=t[r].x,Xl[e][1]=t[r].y):Xl[e]=[t[r].x,t[r].y],n.push(Xl[e]),e++;t=n}try{const n=zl(t,1/0);let e=[1/0,1/0],r=[-1/0,-1/0];for(let t=0;t<n.length;t++)n[t][0]<e[0]&&(e[0]=n[t][0]),n[t][0]>r[0]&&(r[0]=n[t][0]),n[t][1]<e[1]&&(e[1]=n[t][1]),n[t][1]>r[1]&&(r[1]=n[t][1]);const i=[];let s=[],o=0;for(let t=0;t<n.length;t++)t===n.length-1&&n[t][0]===n[0][0]&&n[t][1]===n[0][1]||(zt(i,n[t],"EPSG:3857"),Jl[o]?(Jl[o].x=i[0],Jl[o].y=i[1]):Jl[o]=new Gl(i[0],i[1]),s.push(Jl[o]),o++);yh.calculateSignedArea(s)<0&&(s=s.reverse());const a=function(t){let n,e=Number.MAX_VALUE;const r=function(t,r,i,s,o,a,u,h){var l=Bl(t,r,o,a),c=Bl(i,s,o,a),f=Bl(u,h,t,r),d=Bl(u,h,i,s),p=l.distance(c)*l.distance(f);0!==p&&p<e&&(n=[l,f,d,c],e=p)};var i=[];for(let n=0;n<t.length;n++)i.push(t[(n+1)%t.length].diff(t[n])),i[n].normalize();var s,o,a,u,h=new Gl(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),l=new Gl(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY);for(let n=0;n<t.length;n++){var c=t[n];c.x<h.x&&(h.x=c.x,s=n),c.x>l.x&&(l.x=c.x,o=n),c.y<h.y&&(h.y=c.y,u=n),c.y>l.y&&(l.y=c.y,a=n)}var f=new Gl(0,-1),d=new Gl(0,1),p=new Gl(-1,0),y=new Gl(1,0);for(let n=0;n<t.length;n++){var m=[Math.acos(f.dot(i[s])),Math.acos(d.dot(i[o])),Math.acos(p.dot(i[a])),Math.acos(y.dot(i[u]))];switch(m.indexOf(Math.min.apply(Math,m))){case 0:(d=(f=i[s].clone()).clone()).negate(),(y=(p=f.orthogonal()).clone()).negate(),s=(s+1)%t.length;break;case 1:(f=(d=i[o].clone()).clone()).negate(),(y=(p=f.orthogonal()).clone()).negate(),o=(o+1)%t.length;break;case 2:(y=(p=i[a].clone()).clone()).negate(),(d=(f=y.orthogonal()).clone()).negate(),a=(a+1)%t.length;break;case 3:(p=(y=i[u].clone()).clone()).negate(),(d=(f=y.orthogonal()).clone()).negate(),u=(u+1)%t.length}r(t[s],f,t[o],d,t[a],p,t[u],y)}return n}(s);if(!a||4!==a.length)return null;const u=a[0].distance(a[1]),h=a[1].distance(a[2]),l=a.map(t=>[t.x,t.y]);return l.push(+(h>u)),l}catch(t){return null}}const Zl=[];function Kl(t,n){const e=Array.isArray(t&&t[0]&&t[0][0]);for(let r=0;r<t.length;r++)e?t[r]=Kl(t[r]):(zt(Zl,t[r],n),t[r][0]=Zl[0],t[r][1]=Zl[1]);return t}class Ql extends Th{constructor(t,n,e,r,i,s){super(t,n,e,r,i),(n=n||{}).extent||(n.extent=8192),this.zoomOffset=0,n.tileSize&&(this.zoomOffset=-function(t){if(Math.log2)return Math.log2(t);const n=Math.log(t)*Math.LOG2E,e=Math.round(n);return Math.abs(e-n)<1e-14?e:n}(n.tileSize/256)),this.setData(n.data,s)}setData(t,n){if(delete this.index,!t)return void n();const e={maxZoom:24,tolerance:this.options.simplifyTolerance,extent:this.options.extent,buffer:x(this.options.tileBuffer)?this.options.tileBuffer:64,hasAltitude:!!this.options.hasAltitude,debug:0,lineMetrics:!0,indexMaxZoom:5,indexMaxPoints:1e5,disableFilter:!0};if(this.options.projection&&(e.projection=this.options.projection,"EPSG:4490"===e.projection&&(e.projection="EPSG:4326")),M(t)&&"{"!=t.substring(0,1)||t.url)O.getJSON(t.url?t.url:t,t.url?t:{},(t,r)=>{if(t&&n(t),!r)return void n(null,{extent:null,idMap:{}});let i=r;if(this.options.convertFn){i=new Function("data",this.options.convertFn+"\\nreturn convert(data)")(i)}const s=Array.isArray(i)?i:i.features;this.dn(s);const{first1000:o,idMap:a}=this.pn(s);this.yn(o,a,i,e,n)});else{"string"==typeof t&&(t=JSON.parse(t));const r=Array.isArray(t)?t:t.features;this.dn(r);let i=r;r&&r.length>1e3&&(i=r.slice(0,1e3)),this.yn(i,null,t,e,n)}}dn(t){if(this.options.generateOMBB&&t)for(let n=0;n<t.length;n++){const e=t[n];if(e&&e.geometry&&e.geometry.coordinates)if("Polygon"===e.geometry.type){const t=e.geometry.coordinates[0];if(!t)continue;const n=Yl(t,t.length);e.properties=e.properties||{},e.properties[wh]=n}else if("MultiPolygon"===e.geometry.type){const t=e.geometry.coordinates;for(let n=0;n<t.length;n++){if(!t[n])continue;const r=t[n][0];if(!r)continue;const i=Yl(r,r.length);e.properties=e.properties||{},e.properties[wh]=e.properties[wh]||[],e.properties[wh][n]=i}}}}yn(t,n,e,r,i){try{const s=t&&t.length?function(t){let n=[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY];switch(t.type){case"FeatureCollection":const e=t.features.length;for(let r=0;r<e;r++)Yh(t.features[r],n);break;case"Feature":Yh(t,n);break;default:Zh(t,n)}return n}({type:"FeatureCollection",features:t}):null;this.index=function(t,n){return new it(t,n)}(e,this.options.geojsonvt||r),i(null,{extent:s,idMap:n})}catch(t){console.warn(t),i({error:t.message})}}pn(t){const n=[],e={};let r=0;return t&&t.forEach(t=>{!function(t){t&&("Feature"!==t.type||t.geometry)&&(x(t.id)||(t.id=r++),e[t.id]=w({},t),t.geometry?(e[t.id].geometry=w({},t.geometry),e[t.id].geometry.coordinates=null):t.coordinates&&(e[t.id].coordinates=null),n.length<1e3&&n.push(t))}(t)}),{first1000:n,idMap:e}}getTileFeatures(t,n){const e=t.tileInfo,r=[];if(!this.index)return setTimeout((function(){n({loading:!0})}),1),1;const i=this.index.getTile(e.z+this.zoomOffset,e.x,e.y);if(!i||0===i.features.length)return setTimeout((function(){n(null,r,[])}),1),1;const s=[];for(let t=0,n=i.features.length;t<n;t++){const n=i.features[t];let e=n.layer;void 0===e&&(e="0"),s[e]={types:{}};s[e].types[n.type]=1,n.tags=n.tags||{},n.geometry.converted||(yh.convertGeometry(n),n.geometry.converted=1),r.push({type:n.type,layer:e,id:n.id,geometry:n.geometry,properties:n.tags,extent:this.options.extent})}for(const t in s)s[t].types=Object.keys(s[t].types).map(t=>+t);return setTimeout((function(){n(null,r,s)}),1),1}onRemove(){super.onRemove(),delete this.index}}var tc={\n/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh <https://feross.org/opensource> */\nread:function(t,n,e,r,i){var s,o,a=8*i-r-1,u=(1<<a)-1,h=u>>1,l=-7,c=e?i-1:0,f=e?-1:1,d=t[n+c];for(c+=f,s=d&(1<<-l)-1,d>>=-l,l+=a;l>0;s=256*s+t[n+c],c+=f,l-=8);for(o=s&(1<<-l)-1,s>>=-l,l+=r;l>0;o=256*o+t[n+c],c+=f,l-=8);if(0===s)s=1-h;else{if(s===u)return o?NaN:1/0*(d?-1:1);o+=Math.pow(2,r),s-=h}return(d?-1:1)*o*Math.pow(2,s-r)},write:function(t,n,e,r,i,s){var o,a,u,h=8*s-i-1,l=(1<<h)-1,c=l>>1,f=23===i?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:s-1,p=r?1:-1,y=n<0||0===n&&1/n<0?1:0;for(n=Math.abs(n),isNaN(n)||n===1/0?(a=isNaN(n)?1:0,o=l):(o=Math.floor(Math.log(n)/Math.LN2),n*(u=Math.pow(2,-o))<1&&(o--,u*=2),(n+=o+c>=1?f/u:f*Math.pow(2,1-c))*u>=2&&(o++,u/=2),o+c>=l?(a=0,o=l):o+c>=1?(a=(n*u-1)*Math.pow(2,i),o+=c):(a=n*Math.pow(2,c-1)*Math.pow(2,i),o=0));i>=8;t[e+d]=255&a,d+=p,a/=256,i-=8);for(o=o<<i|a,h+=i;h>0;t[e+d]=255&o,d+=p,o/=256,h-=8);t[e+d-p]|=128*y}},nc=rc,ec=tc;function rc(t){this.buf=ArrayBuffer.isView&&ArrayBuffer.isView(t)?t:new Uint8Array(t||0),this.pos=0,this.type=0,this.length=this.buf.length}rc.Varint=0,rc.Fixed64=1,rc.Bytes=2,rc.Fixed32=5;var ic="undefined"==typeof TextDecoder?null:new TextDecoder("utf8");function sc(t){return t.type===rc.Bytes?t.readVarint()+t.pos:t.pos+1}function oc(t,n,e){return e?4294967296*n+(t>>>0):4294967296*(n>>>0)+(t>>>0)}function ac(t,n,e){var r=n<=16383?1:n<=2097151?2:n<=268435455?3:Math.floor(Math.log(n)/(7*Math.LN2));e.realloc(r);for(var i=e.pos-1;i>=t;i--)e.buf[i+r]=e.buf[i]}function uc(t,n){for(var e=0;e<t.length;e++)n.writeVarint(t[e])}function hc(t,n){for(var e=0;e<t.length;e++)n.writeSVarint(t[e])}function lc(t,n){for(var e=0;e<t.length;e++)n.writeFloat(t[e])}function cc(t,n){for(var e=0;e<t.length;e++)n.writeDouble(t[e])}function fc(t,n){for(var e=0;e<t.length;e++)n.writeBoolean(t[e])}function dc(t,n){for(var e=0;e<t.length;e++)n.writeFixed32(t[e])}function pc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed32(t[e])}function yc(t,n){for(var e=0;e<t.length;e++)n.writeFixed64(t[e])}function mc(t,n){for(var e=0;e<t.length;e++)n.writeSFixed64(t[e])}function gc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+16777216*t[n+3]}function vc(t,n,e){t[e]=n,t[e+1]=n>>>8,t[e+2]=n>>>16,t[e+3]=n>>>24}function bc(t,n){return(t[n]|t[n+1]<<8|t[n+2]<<16)+(t[n+3]<<24)}rc.prototype={destroy:function(){this.buf=null},readFields:function(t,n,e){for(e=e||this.length;this.pos<e;){var r=this.readVarint(),i=r>>3,s=this.pos;this.type=7&r,t(i,n,this),this.pos===s&&this.skip(r)}return n},readMessage:function(t,n){return this.readFields(t,n,this.readVarint()+this.pos)},readFixed32:function(){var t=gc(this.buf,this.pos);return this.pos+=4,t},readSFixed32:function(){var t=bc(this.buf,this.pos);return this.pos+=4,t},readFixed64:function(){var t=gc(this.buf,this.pos)+4294967296*gc(this.buf,this.pos+4);return this.pos+=8,t},readSFixed64:function(){var t=gc(this.buf,this.pos)+4294967296*bc(this.buf,this.pos+4);return this.pos+=8,t},readFloat:function(){var t=ec.read(this.buf,this.pos,!0,23,4);return this.pos+=4,t},readDouble:function(){var t=ec.read(this.buf,this.pos,!0,52,8);return this.pos+=8,t},readVarint:function(t){var n,e,r=this.buf;return n=127&(e=r[this.pos++]),e<128?n:(n|=(127&(e=r[this.pos++]))<<7,e<128?n:(n|=(127&(e=r[this.pos++]))<<14,e<128?n:(n|=(127&(e=r[this.pos++]))<<21,e<128?n:function(t,n,e){var r,i,s=e.buf;if(i=s[e.pos++],r=(112&i)>>4,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<3,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<10,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<17,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(127&i)<<24,i<128)return oc(t,r,n);if(i=s[e.pos++],r|=(1&i)<<31,i<128)return oc(t,r,n);throw new Error("Expected varint not more than 10 bytes")}(n|=(15&(e=r[this.pos]))<<28,t,this))))},readVarint64:function(){return this.readVarint(!0)},readSVarint:function(){var t=this.readVarint();return t%2==1?(t+1)/-2:t/2},readBoolean:function(){return Boolean(this.readVarint())},readString:function(){var t=this.readVarint()+this.pos,n=this.pos;return this.pos=t,t-n>=12&&ic?function(t,n,e){return ic.decode(t.subarray(n,e))}(this.buf,n,t):function(t,n,e){var r="",i=n;for(;i<e;){var s,o,a,u=t[i],h=null,l=u>239?4:u>223?3:u>191?2:1;if(i+l>e)break;1===l?u<128&&(h=u):2===l?128==(192&(s=t[i+1]))&&(h=(31&u)<<6|63&s)<=127&&(h=null):3===l?(s=t[i+1],o=t[i+2],128==(192&s)&&128==(192&o)&&((h=(15&u)<<12|(63&s)<<6|63&o)<=2047||h>=55296&&h<=57343)&&(h=null)):4===l&&(s=t[i+1],o=t[i+2],a=t[i+3],128==(192&s)&&128==(192&o)&&128==(192&a)&&((h=(15&u)<<18|(63&s)<<12|(63&o)<<6|63&a)<=65535||h>=1114112)&&(h=null)),null===h?(h=65533,l=1):h>65535&&(h-=65536,r+=String.fromCharCode(h>>>10&1023|55296),h=56320|1023&h),r+=String.fromCharCode(h),i+=l}return r}(this.buf,n,t)},readBytes:function(){var t=this.readVarint()+this.pos,n=this.buf.subarray(this.pos,t);return this.pos=t,n},readPackedVarint:function(t,n){if(this.type!==rc.Bytes)return t.push(this.readVarint(n));var e=sc(this);for(t=t||[];this.pos<e;)t.push(this.readVarint(n));return t},readPackedSVarint:function(t){if(this.type!==rc.Bytes)return t.push(this.readSVarint());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSVarint());return t},readPackedBoolean:function(t){if(this.type!==rc.Bytes)return t.push(this.readBoolean());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readBoolean());return t},readPackedFloat:function(t){if(this.type!==rc.Bytes)return t.push(this.readFloat());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFloat());return t},readPackedDouble:function(t){if(this.type!==rc.Bytes)return t.push(this.readDouble());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readDouble());return t},readPackedFixed32:function(t){if(this.type!==rc.Bytes)return t.push(this.readFixed32());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed32());return t},readPackedSFixed32:function(t){if(this.type!==rc.Bytes)return t.push(this.readSFixed32());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed32());return t},readPackedFixed64:function(t){if(this.type!==rc.Bytes)return t.push(this.readFixed64());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readFixed64());return t},readPackedSFixed64:function(t){if(this.type!==rc.Bytes)return t.push(this.readSFixed64());var n=sc(this);for(t=t||[];this.pos<n;)t.push(this.readSFixed64());return t},skip:function(t){var n=7&t;if(n===rc.Varint)for(;this.buf[this.pos++]>127;);else if(n===rc.Bytes)this.pos=this.readVarint()+this.pos;else if(n===rc.Fixed32)this.pos+=4;else{if(n!==rc.Fixed64)throw new Error("Unimplemented type: "+n);this.pos+=8}},writeTag:function(t,n){this.writeVarint(t<<3|n)},realloc:function(t){for(var n=this.length||16;n<this.pos+t;)n*=2;if(n!==this.length){var e=new Uint8Array(n);e.set(this.buf),this.buf=e,this.length=n}},finish:function(){return this.length=this.pos,this.pos=0,this.buf.subarray(0,this.length)},writeFixed32:function(t){this.realloc(4),vc(this.buf,t,this.pos),this.pos+=4},writeSFixed32:function(t){this.realloc(4),vc(this.buf,t,this.pos),this.pos+=4},writeFixed64:function(t){this.realloc(8),vc(this.buf,-1&t,this.pos),vc(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeSFixed64:function(t){this.realloc(8),vc(this.buf,-1&t,this.pos),vc(this.buf,Math.floor(t*(1/4294967296)),this.pos+4),this.pos+=8},writeVarint:function(t){(t=+t||0)>268435455||t<0?function(t,n){var e,r;t>=0?(e=t%4294967296|0,r=t/4294967296|0):(r=~(-t/4294967296),4294967295^(e=~(-t%4294967296))?e=e+1|0:(e=0,r=r+1|0));if(t>=0x10000000000000000||t<-0x10000000000000000)throw new Error("Given varint doesn\'t fit into 10 bytes");n.realloc(10),function(t,n,e){e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos++]=127&t|128,t>>>=7,e.buf[e.pos]=127&t}(e,0,n),function(t,n){var e=(7&t)<<4;if(n.buf[n.pos++]|=e|((t>>>=3)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;if(n.buf[n.pos++]=127&t|((t>>>=7)?128:0),!t)return;n.buf[n.pos++]=127&t}(r,n)}(t,this):(this.realloc(4),this.buf[this.pos++]=127&t|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=127&(t>>>=7)|(t>127?128:0),t<=127||(this.buf[this.pos++]=t>>>7&127))))},writeSVarint:function(t){this.writeVarint(t<0?2*-t-1:2*t)},writeBoolean:function(t){this.writeVarint(Boolean(t))},writeString:function(t){t=String(t),this.realloc(4*t.length),this.pos++;var n=this.pos;this.pos=function(t,n,e){for(var r,i,s=0;s<n.length;s++){if((r=n.charCodeAt(s))>55295&&r<57344){if(!i){r>56319||s+1===n.length?(t[e++]=239,t[e++]=191,t[e++]=189):i=r;continue}if(r<56320){t[e++]=239,t[e++]=191,t[e++]=189,i=r;continue}r=i-55296<<10|r-56320|65536,i=null}else i&&(t[e++]=239,t[e++]=191,t[e++]=189,i=null);r<128?t[e++]=r:(r<2048?t[e++]=r>>6|192:(r<65536?t[e++]=r>>12|224:(t[e++]=r>>18|240,t[e++]=r>>12&63|128),t[e++]=r>>6&63|128),t[e++]=63&r|128)}return e}(this.buf,t,this.pos);var e=this.pos-n;e>=128&&ac(n,e,this),this.pos=n-1,this.writeVarint(e),this.pos+=e},writeFloat:function(t){this.realloc(4),ec.write(this.buf,t,this.pos,!0,23,4),this.pos+=4},writeDouble:function(t){this.realloc(8),ec.write(this.buf,t,this.pos,!0,52,8),this.pos+=8},writeBytes:function(t){var n=t.length;this.writeVarint(n),this.realloc(n);for(var e=0;e<n;e++)this.buf[this.pos++]=t[e]},writeRawMessage:function(t,n){this.pos++;var e=this.pos;t(n,this);var r=this.pos-e;r>=128&&ac(e,r,this),this.pos=e-1,this.writeVarint(r),this.pos+=r},writeMessage:function(t,n,e){this.writeTag(t,rc.Bytes),this.writeRawMessage(n,e)},writePackedVarint:function(t,n){n.length&&this.writeMessage(t,uc,n)},writePackedSVarint:function(t,n){n.length&&this.writeMessage(t,hc,n)},writePackedBoolean:function(t,n){n.length&&this.writeMessage(t,fc,n)},writePackedFloat:function(t,n){n.length&&this.writeMessage(t,lc,n)},writePackedDouble:function(t,n){n.length&&this.writeMessage(t,cc,n)},writePackedFixed32:function(t,n){n.length&&this.writeMessage(t,dc,n)},writePackedSFixed32:function(t,n){n.length&&this.writeMessage(t,pc,n)},writePackedFixed64:function(t,n){n.length&&this.writeMessage(t,yc,n)},writePackedSFixed64:function(t,n){n.length&&this.writeMessage(t,mc,n)},writeBytesField:function(t,n){this.writeTag(t,rc.Bytes),this.writeBytes(n)},writeFixed32Field:function(t,n){this.writeTag(t,rc.Fixed32),this.writeFixed32(n)},writeSFixed32Field:function(t,n){this.writeTag(t,rc.Fixed32),this.writeSFixed32(n)},writeFixed64Field:function(t,n){this.writeTag(t,rc.Fixed64),this.writeFixed64(n)},writeSFixed64Field:function(t,n){this.writeTag(t,rc.Fixed64),this.writeSFixed64(n)},writeVarintField:function(t,n){this.writeTag(t,rc.Varint),this.writeVarint(n)},writeSVarintField:function(t,n){this.writeTag(t,rc.Varint),this.writeSVarint(n)},writeStringField:function(t,n){this.writeTag(t,rc.Bytes),this.writeString(n)},writeFloatField:function(t,n){this.writeTag(t,rc.Fixed32),this.writeFloat(n)},writeDoubleField:function(t,n){this.writeTag(t,rc.Fixed64),this.writeDouble(n)},writeBooleanField:function(t,n){this.writeVarintField(t,Boolean(n))}};var wc=Ut,Mc=xc;function xc(t,n,e,r,i){this.properties={},this.extent=e,this.type=0,this.mn=t,this.gn=-1,this.vn=r,this.bn=i,t.readFields(Fc,this,n)}function Fc(t,n,e){1==t?n.id=e.readVarint():2==t?function(t,n){var e=t.readVarint()+t.pos;for(;t.pos<e;){var r=n.vn[t.readVarint()],i=n.bn[t.readVarint()];n.properties[r]=i}}(e,n):3==t?n.type=e.readVarint():4==t&&(n.gn=e.pos)}function kc(t){for(var n,e,r=0,i=0,s=t.length,o=s-1;i<s;o=i++)n=t[i],r+=((e=t[o]).x-n.x)*(n.y+e.y);return r}xc.types=["Unknown","Point","LineString","Polygon"],xc.prototype.loadGeometry=function(){var t=this.mn;t.pos=this.gn;for(var n,e=t.readVarint()+t.pos,r=1,i=0,s=0,o=0,a=[];t.pos<e;){if(i<=0){var u=t.readVarint();r=7&u,i=u>>3}if(i--,1===r||2===r)s+=t.readSVarint(),o+=t.readSVarint(),1===r&&(n&&a.push(n),n=[]),n.push(new wc(s,o));else{if(7!==r)throw new Error("unknown command "+r);n&&n.push(n[0].clone())}}return n&&a.push(n),a},xc.prototype.bbox=function(){var t=this.mn;t.pos=this.gn;for(var n=t.readVarint()+t.pos,e=1,r=0,i=0,s=0,o=1/0,a=-1/0,u=1/0,h=-1/0;t.pos<n;){if(r<=0){var l=t.readVarint();e=7&l,r=l>>3}if(r--,1===e||2===e)(i+=t.readSVarint())<o&&(o=i),i>a&&(a=i),(s+=t.readSVarint())<u&&(u=s),s>h&&(h=s);else if(7!==e)throw new Error("unknown command "+e)}return[o,u,a,h]},xc.prototype.toGeoJSON=function(t,n,e){var r,i,s=this.extent*Math.pow(2,e),o=this.extent*t,a=this.extent*n,u=this.loadGeometry(),h=xc.types[this.type];function l(t){for(var n=0;n<t.length;n++){var e=t[n],r=180-360*(e.y+a)/s;t[n]=[360*(e.x+o)/s-180,360/Math.PI*Math.atan(Math.exp(r*Math.PI/180))-90]}}switch(this.type){case 1:var c=[];for(r=0;r<u.length;r++)c[r]=u[r][0];l(u=c);break;case 2:for(r=0;r<u.length;r++)l(u[r]);break;case 3:for(u=function(t){var n=t.length;if(n<=1)return[t];for(var e,r,i=[],s=0;s<n;s++){var o=kc(t[s]);0!==o&&(void 0===r&&(r=o<0),r===o<0?(e&&i.push(e),e=[t[s]]):e.push(t[s]))}e&&i.push(e);return i}(u),r=0;r<u.length;r++)for(i=0;i<u[r].length;i++)l(u[r][i])}1===u.length?u=u[0]:h="Multi"+h;var f={type:"Feature",geometry:{type:h,coordinates:u},properties:this.properties};return"id"in this&&(f.id=this.id),f};var Ac=Mc,Pc=Sc;function Sc(t,n){this.version=1,this.name=null,this.extent=4096,this.length=0,this.mn=t,this.vn=[],this.bn=[],this.wn=[],t.readFields(_c,this,n),this.length=this.wn.length}function _c(t,n,e){15===t?n.version=e.readVarint():1===t?n.name=e.readString():5===t?n.extent=e.readVarint():2===t?n.wn.push(e.pos):3===t?n.vn.push(e.readString()):4===t&&n.bn.push(function(t){var n=null,e=t.readVarint()+t.pos;for(;t.pos<e;){var r=t.readVarint()>>3;n=1===r?t.readString():2===r?t.readFloat():3===r?t.readDouble():4===r?t.readVarint64():5===r?t.readVarint():6===r?t.readSVarint():7===r?t.readBoolean():null}return n}(e))}Sc.prototype.feature=function(t){if(t<0||t>=this.wn.length)throw new Error("feature index out of bounds");this.mn.pos=this.wn[t];var n=this.mn.readVarint()+this.mn.pos;return new Ac(this.mn,n,this.extent,this.vn,this.bn)};var Oc=Pc;function Ec(t,n,e){if(3===t){var r=new Oc(e,e.readVarint()+e.pos);r.length&&(n[r.name]=r)}}var Ic=function(t,n){this.layers=t.readFields(Ec,{},n)};class $c extends Th{constructor(t,n,e,r,i,s){super(t,n,e,r,i),n=n||{},s()}getTileFeatures(t,n){const e=t.tileInfo.url,r=t.fetchOptions;if(this.Ct.has(e)){const{err:t,data:r}=this.Ct.get(e);return setTimeout(()=>{this.Mn(e,t,r,n)},1)}return O.getArrayBuffer(e,r,(t,r)=>{t?t.loading||this.Ct.add(e,{err:t,data:r&&r.data}):r&&r.data&&this.Ct.add(e,{err:null,data:r.data}),this.Mn(e,t,r&&r.data,n)})}Mn(t,n,e,r){if(n)return void r(n);let i;try{i=new Ic(new nc(e))}catch(n){return void r(n.message,[],[])}const s=[];if(!i.layers)return void r(null,s,[]);const o={};let a;for(const t in i.layers)if(u=i.layers,h=t,Object.prototype.hasOwnProperty.call(u,h)){o[t]={types:{}};const e=o[t].types;for(let r=0,o=i.layers[t].length;r<o;r++)try{a=i.layers[t].feature(r),e[a.type]=1;const n={type:a.type,layer:t,geometry:a.loadGeometry(),properties:a.properties,extent:a.extent};void 0!==a.id&&(n.id=a.id);let o=n.properties[wh];o&&(M(o)&&(o=JSON.parse(o)),n.properties[wh]=Kl(o,"EPSG:3857")),s.push(n)}catch(n){console.warn("error when load vt geometry:",n)}}var u,h;for(const t in o)o[t].types=Object.keys(o[t].types).map(t=>+t);r(null,s,o,{byteLength:e.byteLength})}abortTile(t,n){const e=this.requests[t];delete this.requests[t],e&&e.abort&&e.abort(),this.Wt(t),n()}onRemove(){super.onRemove();for(const t in this.requests){const n=this.requests[t];n&&n.abort&&n.abort()}this.requests={}}}let zc=0;const Cc=new ah(128);class Tc{constructor(t){this.xn={},this.Fn={},this.workerId=t}addLayer({actorId:t,mapId:n,layerId:e,params:r},i){if(this.kn(n,e))return;const s=this.An(n,e),o=r.type,a=r.options,u=this.send.bind(this,t);this.xn[s]="GeoJSONVectorTileLayer"===o?new Ql(e,a,u,Cc,{},i):new $c(e,a,u,Cc,{},i)}removeLayer({mapId:t,layerId:n},e){const r=this.kn(t,n),i=this.An(t,n);delete this.xn[i],r&&r.onRemove(e)}loadTile({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.loadTile(e,r)}abortTile({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.abortTile&&i.abortTile(e.url,r)}removeTile({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.removeTile(e,r)}updateStyle({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.updateStyle(e,r)}updateOptions({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.updateOptions(e,r)}setData({mapId:t,layerId:n,params:e},r){const i=this.kn(t,n);i&&i.setData(e.data,r)}receive(t){const n=t.callback,e=this.Fn[n];delete this.Fn[n],e&&t.error?e(new Error(t.error)):e&&e(null,t.data)}send(t,n,e,r,i){const s=i?`${t}-${zc++}`:null;i&&(this.Fn[s]=i),postMessage({type:"<request>",workerId:this.workerId,actorId:t,command:n,params:e,callback:String(s)},r||[])}An(t,n){return`${t}-${n}`}kn(t,n){const e=this.An(t,n);return this.xn[e]}Pn(){Cc.reset()}}t.initialize=function(){},t.onmessage=function(t,n){const e=t.data;if(this.dispatcher||(this.dispatcher=new Tc(t.workerId)),"<response>"===t.type)this.dispatcher.workerId===t.workerId&&this.dispatcher.receive(t);else{const r=e.command;this.dispatcher[r]({actorId:t.actorId,mapId:e.mapId,layerId:e.layerId,params:e.params},(t,e,i)=>{t&&404!==t.status&&204!==t.status&&console.error(r,t),n(t,e,i)})}},Object.defineProperty(t,"Sn",{value:!0})}';
26
26
  let a;
27
27
  const l = {
28
28
  width: 100,
@@ -230,15 +230,15 @@
230
230
  return t;
231
231
  }
232
232
  function T(t) {
233
- return !O(t) && ("string" == typeof t || null !== t.constructor && t.constructor === String);
233
+ return !I(t) && ("string" == typeof t || null !== t.constructor && t.constructor === String);
234
234
  }
235
235
  function F(t) {
236
236
  return "number" == typeof t && !isNaN(t);
237
237
  }
238
- function I(t) {
239
- return !O(t) && ("function" == typeof t || null !== t.constructor && t.constructor === Function);
240
- }
241
238
  function O(t) {
239
+ return !I(t) && ("function" == typeof t || null !== t.constructor && t.constructor === Function);
240
+ }
241
+ function I(t) {
242
242
  return null == t;
243
243
  }
244
244
  function C(t) {
@@ -317,7 +317,7 @@
317
317
  return this.clone().F();
318
318
  },
319
319
  round: function() {
320
- return this.clone().I();
320
+ return this.clone().O();
321
321
  },
322
322
  mag: function() {
323
323
  return Math.sqrt(this.x * this.x + this.y * this.y);
@@ -381,7 +381,7 @@
381
381
  var n = Math.cos(t), i = Math.sin(t), r = e.x + n * (this.x - e.x) - i * (this.y - e.y), s = e.y + i * (this.x - e.x) + n * (this.y - e.y);
382
382
  return this.x = r, this.y = s, this;
383
383
  },
384
- I: function() {
384
+ O: function() {
385
385
  return this.x = Math.round(this.x), this.y = Math.round(this.y), this;
386
386
  }
387
387
  }, z.convert = function(t) {
@@ -1300,14 +1300,14 @@
1300
1300
  };
1301
1301
  }
1302
1302
  }));
1303
- var It = St;
1303
+ var Ot = St;
1304
1304
  /*!
1305
1305
  Feature Filter by
1306
1306
 
1307
1307
  (c) mapbox 2016 and maptalks 2018
1308
1308
  www.mapbox.com | www.maptalks.org
1309
1309
  License: MIT, header required.
1310
- */ const Ot = [ "Unknown", "Point", "LineString", "Polygon", "MultiPoint", "MultiLineString", "MultiPolygon", "GeometryCollection" ];
1310
+ */ const It = [ "Unknown", "Point", "LineString", "Polygon", "MultiPoint", "MultiLineString", "MultiPolygon", "GeometryCollection" ];
1311
1311
  function Ct(t) {
1312
1312
  return new Function("f", "var p = (f && f.properties || {}); return " + Et(t));
1313
1313
  }
@@ -1334,14 +1334,14 @@
1334
1334
  return Nt(Dt(t), t, e, n, i);
1335
1335
  }
1336
1336
  function Nt(t, e, n, i, r) {
1337
- const s = "$type" === e ? Ot.indexOf(n) : JSON.stringify(n);
1337
+ const s = "$type" === e ? It.indexOf(n) : JSON.stringify(n);
1338
1338
  return (r ? `typeof ${t}=== typeof ${s}&&` : "") + t + i + s;
1339
1339
  }
1340
1340
  function zt(t, e) {
1341
1341
  return t.map(Et).join(e);
1342
1342
  }
1343
1343
  function Rt(t, e) {
1344
- "$type" === t && (e = e.map(t => Ot.indexOf(t)));
1344
+ "$type" === t && (e = e.map(t => It.indexOf(t)));
1345
1345
  const n = JSON.stringify(e.sort(Vt)), i = Dt(t);
1346
1346
  return e.length <= 200 ? `${n}.indexOf(${i}) !== -1` : `function(v, a, i, j) {\n while (i <= j) { var m = (i + j) >> 1;\n if (a[m] === v) return true; if (a[m] > v) j = m - 1; else i = m + 1;\n }\n return false; }(${i}, ${n},0,${e.length - 1})`;
1347
1347
  }
@@ -1390,7 +1390,7 @@
1390
1390
  function Xt(t, e) {
1391
1391
  if (!(this instanceof Xt)) return new Xt(t, e);
1392
1392
  if (this.data = t || [], this.length = this.data.length, this.compare = e || $t,
1393
- this.length > 0) for (var n = (this.length >> 1) - 1; n >= 0; n--) this.O(n);
1393
+ this.length > 0) for (var n = (this.length >> 1) - 1; n >= 0; n--) this.I(n);
1394
1394
  }
1395
1395
  function $t(t, e) {
1396
1396
  return t < e ? -1 : t > e ? 1 : 0;
@@ -1403,7 +1403,7 @@
1403
1403
  if (0 !== this.length) {
1404
1404
  var t = this.data[0];
1405
1405
  return this.length--, this.length > 0 && (this.data[0] = this.data[this.length],
1406
- this.O(0)), this.data.pop(), t;
1406
+ this.I(0)), this.data.pop(), t;
1407
1407
  }
1408
1408
  },
1409
1409
  peek: function() {
@@ -1417,7 +1417,7 @@
1417
1417
  }
1418
1418
  e[t] = i;
1419
1419
  },
1420
- O: function(t) {
1420
+ I: function(t) {
1421
1421
  for (var e = this.data, n = this.compare, i = this.length >> 1, r = e[t]; t < i; ) {
1422
1422
  var s = 1 + (t << 1), o = s + 1, a = e[s];
1423
1423
  if (o < this.length && n(e[o], a) < 0 && (s = o, a = e[o]), n(a, r) >= 0) break;
@@ -1558,10 +1558,10 @@
1558
1558
  */ function Fe(t, e, n) {
1559
1559
  return t[0] = e[n], t[1] = e[n + 1], t[2] = e[n + 2], t;
1560
1560
  }
1561
- function Ie(t, e, n) {
1561
+ function Oe(t, e, n) {
1562
1562
  return t[0] = e[n], t[1] = e[n + 1], t;
1563
1563
  }
1564
- var Oe = {
1564
+ var Ie = {
1565
1565
  exports: {}
1566
1566
  };
1567
1567
  function Ce(t, e, n) {
@@ -1779,7 +1779,7 @@
1779
1779
  o = s;
1780
1780
  return r;
1781
1781
  }
1782
- Oe.exports = Ce, Oe.exports.default = Ce, Ce.deviation = function(t, e, n, i) {
1782
+ Ie.exports = Ce, Ie.exports.default = Ce, Ce.deviation = function(t, e, n, i) {
1783
1783
  var r = e && e.length, s = r ? e[0] * n : t.length, o = Math.abs(rn(t, 0, s, n));
1784
1784
  if (r) for (var a = 0, l = e.length; a < l; a++) {
1785
1785
  var h = e[a] * n, u = a < l - 1 ? e[a + 1] * n : t.length;
@@ -1802,9 +1802,9 @@
1802
1802
  }
1803
1803
  return n;
1804
1804
  };
1805
- var sn = Oe.exports;
1805
+ var sn = Ie.exports;
1806
1806
  /*!
1807
- * @maptalks/vector-packer v0.88.0
1807
+ * @maptalks/vector-packer v0.89.0
1808
1808
  * LICENSE : UNLICENSED
1809
1809
  * (c) 2016-2023 maptalks.com
1810
1810
  */ const on = {
@@ -2100,10 +2100,10 @@
2100
2100
  function Fn(t) {
2101
2101
  return null == t;
2102
2102
  }
2103
- function In(t) {
2103
+ function On(t) {
2104
2104
  return "number" == typeof t && !isNaN(t);
2105
2105
  }
2106
- function On(t) {
2106
+ function In(t) {
2107
2107
  return "object" == typeof t && !!t;
2108
2108
  }
2109
2109
  function Cn(t) {
@@ -2129,7 +2129,7 @@
2129
2129
  if (!Array.isArray(e)) {
2130
2130
  if (e && void 0 !== e.r && void 0 !== e.g && void 0 !== e.b) return t[0] = 255 * e.r,
2131
2131
  t[1] = 255 * e.g, t[2] = 255 * e.b, t[3] = void 0 !== e.a ? 255 * e.a : 255, t;
2132
- e = Hn[e] = Hn[e] || It(e).unitArray();
2132
+ e = Hn[e] = Hn[e] || Ot(e).unitArray();
2133
2133
  }
2134
2134
  for (let n = 0; n < e.length; n++) t[n] = 255 * e[n];
2135
2135
  return 3 === e.length && (t[3] = 255), t;
@@ -2161,11 +2161,11 @@
2161
2161
  },
2162
2162
  extend: Tn,
2163
2163
  isNil: Fn,
2164
- isNumber: In,
2164
+ isNumber: On,
2165
2165
  isInteger: function(t) {
2166
2166
  return (0 | t) === t;
2167
2167
  },
2168
- isObject: On,
2168
+ isObject: In,
2169
2169
  isString: Cn,
2170
2170
  isFunction: En,
2171
2171
  hasOwn: Ln,
@@ -2608,12 +2608,12 @@
2608
2608
  function Fi(t) {
2609
2609
  return Ti("%" === t[t.length - 1] ? parseFloat(t) / 100 * 255 : parseInt(t));
2610
2610
  }
2611
- function Ii(t) {
2611
+ function Oi(t) {
2612
2612
  return function(t) {
2613
2613
  return t < 0 ? 0 : t > 1 ? 1 : t;
2614
2614
  }("%" === t[t.length - 1] ? parseFloat(t) / 100 : parseFloat(t));
2615
2615
  }
2616
- function Oi(t, e, n) {
2616
+ function Ii(t, e, n) {
2617
2617
  return n < 0 ? n += 1 : n > 1 && (n -= 1), 6 * n < 1 ? t + (e - t) * n * 6 : 2 * n < 1 ? e : 3 * n < 2 ? t + (e - t) * (2 / 3 - n) * 6 : t;
2618
2618
  }
2619
2619
  try {
@@ -2627,19 +2627,19 @@
2627
2627
  switch (s) {
2628
2628
  case "rgba":
2629
2629
  if (4 !== o.length) return null;
2630
- a = Ii(o.pop());
2630
+ a = Oi(o.pop());
2631
2631
 
2632
2632
  case "rgb":
2633
2633
  return 3 !== o.length ? null : [ Fi(o[0]), Fi(o[1]), Fi(o[2]), a ];
2634
2634
 
2635
2635
  case "hsla":
2636
2636
  if (4 !== o.length) return null;
2637
- a = Ii(o.pop());
2637
+ a = Oi(o.pop());
2638
2638
 
2639
2639
  case "hsl":
2640
2640
  if (3 !== o.length) return null;
2641
- var l = (parseFloat(o[0]) % 360 + 360) % 360 / 360, h = Ii(o[1]), u = Ii(o[2]), c = u <= .5 ? u * (h + 1) : u + h - u * h, f = 2 * u - c;
2642
- return [ Ti(255 * Oi(f, c, l + 1 / 3)), Ti(255 * Oi(f, c, l)), Ti(255 * Oi(f, c, l - 1 / 3)), a ];
2641
+ var l = (parseFloat(o[0]) % 360 + 360) % 360 / 360, h = Oi(o[1]), u = Oi(o[2]), c = u <= .5 ? u * (h + 1) : u + h - u * h, f = 2 * u - c;
2642
+ return [ Ti(255 * Ii(f, c, l + 1 / 3)), Ti(255 * Ii(f, c, l)), Ti(255 * Ii(f, c, l - 1 / 3)), a ];
2643
2643
 
2644
2644
  default:
2645
2645
  return null;
@@ -3509,7 +3509,7 @@
3509
3509
  return t;
3510
3510
  }
3511
3511
  }
3512
- var Ir = Fr, Or = Cr;
3512
+ var Or = Fr, Ir = Cr;
3513
3513
  function Cr(t, e, n, i) {
3514
3514
  this.cx = 3 * t, this.bx = 3 * (n - t) - this.cx, this.ax = 1 - this.cx - this.bx,
3515
3515
  this.cy = 3 * e, this.by = 3 * (i - e) - this.cy, this.ay = 1 - this.cy - this.by,
@@ -3641,7 +3641,7 @@
3641
3641
  let r = 0;
3642
3642
  if ("exponential" === t.name) r = qr(e, t.base, n, i); else if ("linear" === t.name) r = qr(e, 1, n, i); else if ("cubic-bezier" === t.name) {
3643
3643
  const s = t.controlPoints;
3644
- r = new Or(s[0], s[1], s[2], s[3]).solve(qr(e, 1, n, i));
3644
+ r = new Ir(s[0], s[1], s[2], s[3]).solve(qr(e, 1, n, i));
3645
3645
  }
3646
3646
  return r;
3647
3647
  }
@@ -4205,7 +4205,7 @@
4205
4205
  "number-format": As,
4206
4206
  object: Bi,
4207
4207
  slice: fs,
4208
- step: Ir,
4208
+ step: Or,
4209
4209
  string: Bi,
4210
4210
  "to-boolean": Ki,
4211
4211
  "to-color": Ki,
@@ -4373,13 +4373,13 @@
4373
4373
  "resolved-locale": [ fi, [ gi ], (t, [e]) => e.evaluate(t).resolvedLocale() ]
4374
4374
  });
4375
4375
  var Fs = _s;
4376
- function Is(t) {
4376
+ function Os(t) {
4377
4377
  return {
4378
4378
  result: "success",
4379
4379
  value: t
4380
4380
  };
4381
4381
  }
4382
- function Os(t) {
4382
+ function Is(t) {
4383
4383
  return {
4384
4384
  result: "error",
4385
4385
  value: t
@@ -4483,7 +4483,7 @@
4483
4483
  }(e) : void 0), i = n.parse(t, void 0, void 0, void 0, e && "string" === e.type ? {
4484
4484
  typeAnnotation: "coerce"
4485
4485
  } : void 0);
4486
- return i ? Is(new Vs(i, e)) : Os(n.errors);
4486
+ return i ? Os(new Vs(i, e)) : Is(n.errors);
4487
4487
  }
4488
4488
  class Ws {
4489
4489
  constructor(t, e) {
@@ -4516,27 +4516,27 @@
4516
4516
  const n = t.value.expression, i = wr(n);
4517
4517
  if (!i && !function(t) {
4518
4518
  return "data-driven" === t["property-type"];
4519
- }(e)) return Os([ new ai("", "data expressions not supported") ]);
4519
+ }(e)) return Is([ new ai("", "data expressions not supported") ]);
4520
4520
  const r = Mr(n, [ "zoom", "pitch", "distance-from-center" ]);
4521
4521
  if (!r && !function(t) {
4522
4522
  return !!t.expression && t.expression.parameters.indexOf("zoom") > -1;
4523
- }(e)) return Os([ new ai("", "zoom expressions not supported") ]);
4523
+ }(e)) return Is([ new ai("", "zoom expressions not supported") ]);
4524
4524
  const s = function t(e) {
4525
4525
  let n = null;
4526
4526
  if (e instanceof ts) n = t(e.result); else if (e instanceof Kr) {
4527
4527
  for (const i of e.args) if (n = t(i), n) break;
4528
- } else (e instanceof Ir || e instanceof Jr) && e.input instanceof nr && "zoom" === e.input.name && (n = e);
4528
+ } else (e instanceof Or || e instanceof Jr) && e.input instanceof nr && "zoom" === e.input.name && (n = e);
4529
4529
  return n instanceof ai || e.eachChild(e => {
4530
4530
  const i = t(e);
4531
4531
  i instanceof ai ? n = i : !n && i ? n = new ai("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') : n && i && n !== i && (n = new ai("", 'Only one zoom-based "step" or "interpolate" subexpression may be used in an expression.'));
4532
4532
  }), n;
4533
4533
  }(n);
4534
- if (!s && !r) return Os([ new ai("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') ]);
4535
- if (s instanceof ai) return Os([ s ]);
4536
- if (s instanceof Jr && !Cs(e)) return Os([ new ai("", '"interpolate" expressions cannot be used with this property') ]);
4537
- if (!s) return Is(new Ws(i ? "constant" : "source", t.value));
4534
+ if (!s && !r) return Is([ new ai("", '"zoom" expression may only be used as input to a top-level "step" or "interpolate" expression.') ]);
4535
+ if (s instanceof ai) return Is([ s ]);
4536
+ if (s instanceof Jr && !Cs(e)) return Is([ new ai("", '"interpolate" expressions cannot be used with this property') ]);
4537
+ if (!s) return Os(new Ws(i ? "constant" : "source", t.value));
4538
4538
  const o = s instanceof Jr ? s.interpolation : void 0;
4539
- return Is(new Xs(i ? "camera" : "composite", t.value, s.labels, o));
4539
+ return Os(new Xs(i ? "camera" : "composite", t.value, s.labels, o));
4540
4540
  }
4541
4541
  class Bs {
4542
4542
  constructor(t, e) {
@@ -5091,7 +5091,7 @@
5091
5091
  for (;c < f; c++) {
5092
5092
  const t = s[c];
5093
5093
  if (!t || !t.geometry) continue;
5094
- if (In(d) && t[n].index !== d) continue;
5094
+ if (On(d) && t[n].index !== d) continue;
5095
5095
  t.properties || (t.properties = {}), t.properties.$layer = t.layer, t.properties.$type = t.type;
5096
5096
  const h = this.createStyledVector(t, u, i, l, o, a);
5097
5097
  h && h.feature.geometry && (h.featureIdx = void 0 === t[e] ? c : t[e], this.count++,
@@ -5182,11 +5182,11 @@
5182
5182
  if (!t[i].feature.geometry) continue;
5183
5183
  const r = Array.isArray(t[i]) ? t[i][0].feature.id : t[i].feature.id;
5184
5184
  c && (void 0 !== bo.id ? f && (f.has(bo.id) ? c = !1 : f.add(bo.id)) : c = !1),
5185
- In(r) && (Math.abs(r) > h && (h = Math.abs(r)), r < 0 && (u = !0));
5185
+ On(r) && (Math.abs(r) > h && (h = Math.abs(r)), r < 0 && (u = !0));
5186
5186
  const d = this.data.aPosition.length;
5187
5187
  if (Array.isArray(t[i])) for (let n = 0; n < t[i].length; n++) this.et(t[i][n], e); else this.et(t[i], e);
5188
5188
  const p = (n.aPosition.length - d) / s;
5189
- for (let e = 0; e < p; e++) o.push(t[i].featureIdx), In(r) && l.push(r);
5189
+ for (let e = 0; e < p; e++) o.push(t[i].featureIdx), On(r) && l.push(r);
5190
5190
  a = Math.max(a, t[i].featureIdx);
5191
5191
  }
5192
5192
  if (this.countOutOfAngle > 0 && console.warn("text anchor along line is ignored as anchor's line angle is bigger than textMaxAngle."),
@@ -5315,16 +5315,16 @@
5315
5315
  let n = -1 / 0;
5316
5316
  for (let t = 0; t < e.length; t++) {
5317
5317
  let i = e[t][1];
5318
- On(e[t][1]) && (i = To(e[t][1])), i > n && (n = i);
5318
+ In(e[t][1]) && (i = To(e[t][1])), i > n && (n = i);
5319
5319
  }
5320
5320
  return n;
5321
5321
  }
5322
5322
  function Fo(t, e, n) {
5323
5323
  return [ e || "normal", n || "normal", "24px", t || "Open Sans Regular" ].join(" ");
5324
5324
  }
5325
- const Io = /\{[\w-]+(?:\|[\w-]+)*\}/g;
5326
- function Oo(t, e) {
5327
- return Cn(t) ? t.replace(Io, (function(t) {
5325
+ const Oo = /\{[\w-]+(?:\|[\w-]+)*\}/g;
5326
+ function Io(t, e) {
5327
+ return Cn(t) ? t.replace(Oo, (function(t) {
5328
5328
  if (!e) return "";
5329
5329
  if ((t = t.substring(1, t.length - 1)).indexOf("|") > 0) {
5330
5330
  const n = t.split("|");
@@ -5341,9 +5341,9 @@
5341
5341
  var Co = Object.freeze({
5342
5342
  __proto__: null,
5343
5343
  getSDFFont: Fo,
5344
- resolveText: Oo,
5344
+ resolveText: Io,
5345
5345
  resolveVarNames: function(t) {
5346
- return t.match(Io);
5346
+ return t.match(Oo);
5347
5347
  },
5348
5348
  resolveExpVarNames: function t(e, n) {
5349
5349
  if (2 !== n.length || "get" !== n[0]) for (let i = 0; i < n.length; i++) 2 === n[i].length && "get" === n[i][0] ? e.push(n[i][1]) : Array.isArray(n[i]) && t(e, n[i]); else e.push(n[1]);
@@ -5681,16 +5681,16 @@
5681
5681
  }
5682
5682
  getIconAndGlyph() {
5683
5683
  if (this.iconGlyph) return this.iconGlyph;
5684
- const {markerFileFn: t, markerTypeFn: e, markerPathFn: n, markerWidthFn: i, markerHeightFn: r, markerFillFn: s, markerFillPatternFileFn: o, markerFillOpacityFn: a, markerTextFitFn: l, markerTextFitPaddingFn: h, markerLineColorFn: u, markerLineWidthFn: c, markerLineOpacityFn: f, markerLineDasharrayFn: d, markerLinePatternFileFn: p, markerPathWidthFn: y, markerPathHeightFn: m, textNameFn: g, textFaceNameFn: v, textStyleFn: w, textWeightFn: A} = this.J, {zoom: M} = this.options, _ = {}, S = this.symbol, k = this.feature.properties, P = t ? t(null, k) : S.markerFile, T = e ? e(null, k) : S.markerType, F = P || T || S.markerPath, I = !Fn(this.symbolDef.textName);
5685
- let O;
5684
+ const {markerFileFn: t, markerTypeFn: e, markerPathFn: n, markerWidthFn: i, markerHeightFn: r, markerFillFn: s, markerFillPatternFileFn: o, markerFillOpacityFn: a, markerTextFitFn: l, markerTextFitPaddingFn: h, markerLineColorFn: u, markerLineWidthFn: c, markerLineOpacityFn: f, markerLineDasharrayFn: d, markerLinePatternFileFn: p, markerPathWidthFn: y, markerPathHeightFn: m, textNameFn: g, textFaceNameFn: v, textStyleFn: w, textWeightFn: A} = this.J, {zoom: M} = this.options, _ = {}, S = this.symbol, k = this.feature.properties, P = t ? t(null, k) : S.markerFile, T = e ? e(null, k) : S.markerType, F = P || T || S.markerPath, O = !Fn(this.symbolDef.textName);
5685
+ let I;
5686
5686
  if (F) {
5687
- O = function(t, e, n, i, r, s) {
5687
+ I = function(t, e, n, i, r, s) {
5688
5688
  if (Fn(e.markerWidth) && Fn(e.markerHeight)) return null;
5689
5689
  const o = "__fn_markerWidth".trim(), a = "__fn_markerHeight".trim();
5690
5690
  let l = e.markerWidth || 0, h = e.markerHeight || 0;
5691
- return On(l) && ("identity" !== l.type ? l = To(l) : (l = t.markerWidth, t[o] && (l = t[o](i, n)),
5692
- On(l) && (l = "identity" === l.type ? r(i, n) : To(l)))), On(h) && ("identity" !== h.type ? h = To(h) : (h = t.markerHeight,
5693
- t[a] && (h = t[a](i, n)), On(h) && (h = "identity" === h.type ? s(i, n) : To(h)))),
5691
+ return In(l) && ("identity" !== l.type ? l = To(l) : (l = t.markerWidth, t[o] && (l = t[o](i, n)),
5692
+ In(l) && (l = "identity" === l.type ? r(i, n) : To(l)))), In(h) && ("identity" !== h.type ? h = To(h) : (h = t.markerHeight,
5693
+ t[a] && (h = t[a](i, n)), In(h) && (h = "identity" === h.type ? s(i, n) : To(h)))),
5694
5694
  [ l, h ];
5695
5695
  }(S, this.symbolDef, k, M, i, r) || [ 0, 0 ];
5696
5696
  let t = S.markerTextFit;
@@ -5698,7 +5698,7 @@
5698
5698
  const e = S.text.textSize;
5699
5699
  let n = S.text.textName;
5700
5700
  x(n) && (n = b(n)(M, k));
5701
- const i = Oo(n, k);
5701
+ const i = Io(n, k);
5702
5702
  if (i) {
5703
5703
  const n = "__fn_textSize".trim(), r = "__fn_textSize_0".trim();
5704
5704
  x(e) && !S.text[n] && (S.text[r] = b(e), S.text[n] = (t, e) => {
@@ -5706,16 +5706,16 @@
5706
5706
  return x(n) ? b(n)(t, e) : n;
5707
5707
  });
5708
5708
  const s = Po(S.text, S.text, k, M);
5709
- if ("width" !== t && "both" !== t || (O[0] = s[0] * i.length), "height" !== t && "both" !== t || (O[1] = s[1]),
5709
+ if ("width" !== t && "both" !== t || (I[0] = s[0] * i.length), "height" !== t && "both" !== t || (I[1] = s[1]),
5710
5710
  s[0] && s[1]) {
5711
5711
  let t = S.markerTextFitPadding || [ 0, 0, 0, 0 ];
5712
- h && (t = h(M, k)), O[0] += t[1] + t[3], O[1] += t[0] + t[2];
5712
+ h && (t = h(M, k)), I[0] += t[1] + t[3], I[1] += t[0] + t[2];
5713
5713
  }
5714
- } else O[0] = O[1] = -1;
5714
+ } else I[0] = I[1] = -1;
5715
5715
  }
5716
5716
  }
5717
- if (I && (O = Po(S, this.symbolDef, k, M)), !O) return _;
5718
- if (O[0] = Math.ceil(O[0]), O[1] = Math.ceil(O[1]), this.size = O, F && O[0] >= 0 && O[1] >= 0) {
5717
+ if (O && (I = Po(S, this.symbolDef, k, M)), !I) return _;
5718
+ if (I[0] = Math.ceil(I[0]), I[1] = Math.ceil(I[1]), this.size = I, F && I[0] >= 0 && I[1] >= 0) {
5719
5719
  let t;
5720
5720
  if (T) {
5721
5721
  const e = {};
@@ -5782,7 +5782,7 @@
5782
5782
  };
5783
5783
  return 0 === e.stroke["stroke-width"] && (e.stroke["stroke-opacity"] = 0), e;
5784
5784
  }(t);
5785
- In(t.markerOpacity) && (i = t.markerOpacity), In(t.opacity) && (i *= t.opacity);
5785
+ On(t.markerOpacity) && (i = t.markerOpacity), On(t.opacity) && (i *= t.opacity);
5786
5786
  const s = {};
5787
5787
  if (r) {
5788
5788
  for (const t in r.stroke) Ln(r.stroke, t) && (Fn(r.stroke[t]) || (s[t] = r.stroke[t]));
@@ -5804,17 +5804,17 @@
5804
5804
  e += "></path>", h.push(e);
5805
5805
  }
5806
5806
  return h.push("</svg>"), "data:image/svg+xml;base64," + btoa(h.join(" "));
5807
- }(S, O[0], O[1]) : null;
5807
+ }(S, I[0], I[1]) : null;
5808
5808
  _.icon = {
5809
5809
  url: t,
5810
- size: O
5810
+ size: I
5811
5811
  };
5812
5812
  }
5813
- if (I) {
5813
+ if (O) {
5814
5814
  const t = g ? g(this.options.zoom, k) : S.textName;
5815
5815
  if (t || 0 === t) {
5816
5816
  const e = Fo(v ? v(null, k) : S.textFaceName, w ? w(null, k) : S.textStyle, A ? A(null, k) : S.textWeight);
5817
- let n = Oo(t, k);
5817
+ let n = Io(t, k);
5818
5818
  n && n.length && (n = ga(n), _.glyph = {
5819
5819
  font: e,
5820
5820
  text: n
@@ -5842,18 +5842,18 @@
5842
5842
  let h, u = !1;
5843
5843
  for (let t = 0; t < l.length - 1; t++) {
5844
5844
  let a = l[t], c = l[t + 1];
5845
- a.x < e && c.x < e || (a.x < e ? (o = a, a = new N(e, a.y + (e - a.x) / (c.x - a.x) * (c.y - a.y)).I(),
5845
+ a.x < e && c.x < e || (a.x < e ? (o = a, a = new N(e, a.y + (e - a.x) / (c.x - a.x) * (c.y - a.y)).O(),
5846
5846
  a.z = o.z + (e - o.x) / (c.x - o.x) * (c.z - o.z), u = !0) : c.x < e && (o = c,
5847
- c = new N(e, a.y + (e - a.x) / (c.x - a.x) * (c.y - a.y)).I(), c.z = a.z + (e - a.x) / (o.x - a.x) * (o.z - a.z),
5848
- u = !0), a.y < n && c.y < n || (a.y < n ? (o = a, a = new N(a.x + (n - a.y) / (c.y - a.y) * (c.x - a.x), n).I(),
5847
+ c = new N(e, a.y + (e - a.x) / (c.x - a.x) * (c.y - a.y)).O(), c.z = a.z + (e - a.x) / (o.x - a.x) * (o.z - a.z),
5848
+ u = !0), a.y < n && c.y < n || (a.y < n ? (o = a, a = new N(a.x + (n - a.y) / (c.y - a.y) * (c.x - a.x), n).O(),
5849
5849
  a.z = o.z + (n - o.y) / (c.y - o.y) * (c.z - o.z), u = !0) : c.y < n && (o = c,
5850
- c = new N(a.x + (n - a.y) / (c.y - a.y) * (c.x - a.x), n).I(), c.z = a.z + (n - a.y) / (o.y - a.y) * (o.z - a.z),
5851
- u = !0), a.x >= i && c.x >= i || (a.x >= i ? (o = a, a = new N(i, a.y + (i - a.x) / (c.x - a.x) * (c.y - a.y)).I(),
5850
+ c = new N(a.x + (n - a.y) / (c.y - a.y) * (c.x - a.x), n).O(), c.z = a.z + (n - a.y) / (o.y - a.y) * (o.z - a.z),
5851
+ u = !0), a.x >= i && c.x >= i || (a.x >= i ? (o = a, a = new N(i, a.y + (i - a.x) / (c.x - a.x) * (c.y - a.y)).O(),
5852
5852
  a.z = o.z + (i - o.x) / (c.x - o.x) * (c.z - o.z), u = !0) : c.x >= i && (o = c,
5853
- c = new N(i, a.y + (i - a.x) / (c.x - a.x) * (c.y - a.y)).I(), c.z = a.z + (i - a.x) / (o.x - a.x) * (o.z - a.z),
5854
- u = !0), a.y >= r && c.y >= r || (a.y >= r ? (o = a, a = new N(a.x + (r - a.y) / (c.y - a.y) * (c.x - a.x), r).I(),
5853
+ c = new N(i, a.y + (i - a.x) / (c.x - a.x) * (c.y - a.y)).O(), c.z = a.z + (i - a.x) / (o.x - a.x) * (o.z - a.z),
5854
+ u = !0), a.y >= r && c.y >= r || (a.y >= r ? (o = a, a = new N(a.x + (r - a.y) / (c.y - a.y) * (c.x - a.x), r).O(),
5855
5855
  a.z = o.z + (r - o.y) / (c.y - o.y) * (c.z - o.z), u = !0) : c.y >= r && (o = c,
5856
- c = new N(a.x + (r - a.y) / (c.y - a.y) * (c.x - a.x), r).I(), c.z = a.z + (r - a.y) / (o.y - a.y) * (o.z - a.z),
5856
+ c = new N(a.x + (r - a.y) / (c.y - a.y) * (c.x - a.x), r).O(), c.z = a.z + (r - a.y) / (o.y - a.y) * (o.z - a.z),
5857
5857
  u = !0), h && a.equals(h[h.length - 1]) || (h = [ a ], s.push(h)), u && (h.clipped = !0),
5858
5858
  h.push(c)))));
5859
5859
  }
@@ -5917,7 +5917,7 @@
5917
5917
  if (b >= 0 && b < h && w >= 0 && w < h && m - d >= 0 && m + d <= p) {
5918
5918
  const i = new Aa(b, w, v, t);
5919
5919
  i.z = A, u && (i.axis = [ n.y - w, b - n.x ], i.angleR = A === (n.z || 0) ? 0 : Math.atan(.9 * (A - (n.z || 0)) * c / n.dist(i))),
5920
- i.line = e, i.I(), !r || Ma(e, i, o, r, s) ? g.push(i) : r && f++;
5920
+ i.line = e, i.O(), !r || Ma(e, i, o, r, s) ? g.push(i) : r && f++;
5921
5921
  }
5922
5922
  }
5923
5923
  y += l;
@@ -5962,9 +5962,9 @@
5962
5962
  }
5963
5963
  const l = Math.min(s - i, o - r);
5964
5964
  let h = l / 2;
5965
- const u = new Bt(null, Ia);
5965
+ const u = new Bt(null, Oa);
5966
5966
  if (0 === l) return new N(i, r);
5967
- for (let e = i; e < s; e += l) for (let n = r; n < o; n += l) u.push(new Oa(e + h, n + h, h, t));
5967
+ for (let e = i; e < s; e += l) for (let n = r; n < o; n += l) u.push(new Ia(e + h, n + h, h, t));
5968
5968
  let c = function(t) {
5969
5969
  let e = 0, n = 0, i = 0;
5970
5970
  const r = t[0];
@@ -5972,22 +5972,22 @@
5972
5972
  const s = r[t], a = r[o], l = s.x * a.y - a.x * s.y;
5973
5973
  n += (s.x + a.x) * l, i += (s.y + a.y) * l, e += 3 * l;
5974
5974
  }
5975
- return new Oa(n / e, i / e, 0, t);
5975
+ return new Ia(n / e, i / e, 0, t);
5976
5976
  }(t), f = u.length;
5977
5977
  for (;u.length; ) {
5978
5978
  const i = u.pop();
5979
5979
  (i.d > c.d || !c.d) && (c = i, n && console.log("found best %d after %d probes", Math.round(1e4 * i.d) / 1e4, f)),
5980
- i.max - c.d <= e || (h = i.h / 2, u.push(new Oa(i.p.x - h, i.p.y - h, h, t)), u.push(new Oa(i.p.x + h, i.p.y - h, h, t)),
5981
- u.push(new Oa(i.p.x - h, i.p.y + h, h, t)), u.push(new Oa(i.p.x + h, i.p.y + h, h, t)),
5980
+ i.max - c.d <= e || (h = i.h / 2, u.push(new Ia(i.p.x - h, i.p.y - h, h, t)), u.push(new Ia(i.p.x + h, i.p.y - h, h, t)),
5981
+ u.push(new Ia(i.p.x - h, i.p.y + h, h, t)), u.push(new Ia(i.p.x + h, i.p.y + h, h, t)),
5982
5982
  f += 4);
5983
5983
  }
5984
5984
  return n && (console.log("num probes: " + f), console.log("best distance: " + c.d)),
5985
5985
  c.p;
5986
5986
  }
5987
- function Ia(t, e) {
5987
+ function Oa(t, e) {
5988
5988
  return e.max - t.max;
5989
5989
  }
5990
- function Oa(t, e, n, i) {
5990
+ function Ia(t, e, n, i) {
5991
5991
  this.p = new N(t, e), this.h = n, this.d = function(t, e) {
5992
5992
  let n = !1, i = 1 / 0;
5993
5993
  for (let r = 0; r < e.length; r++) {
@@ -6294,7 +6294,7 @@
6294
6294
  }
6295
6295
  placeVector(t, e) {
6296
6296
  const n = t.getShape(this.iconAtlas, this.glyphAtlas);
6297
- if (!this.options.allowEmptyPack && !n) return;
6297
+ if (!(this.options.allowEmptyPack || n && n.image || n && (n.horizontal || n.vertical))) return;
6298
6298
  const i = this.yt(t, n, e);
6299
6299
  if (this.countOutOfAngle += i.countOutOfAngle || 0, 0 === i.length) return;
6300
6300
  const r = this.data, s = this.needAltitudeAttribute() ? 2 : 3;
@@ -6304,7 +6304,7 @@
6304
6304
  for (let n = 0; n < t.length; n++) if (ia(t.charAt(n).charCodeAt(0))) e = 0; else if (e++,
6305
6305
  e >= 1) return !1;
6306
6306
  return !0;
6307
- }(t.getIconAndGlyph().glyph.text) ? 1 : 0, {textFillFn: f, textSizeFn: d, textHaloFillFn: p, textHaloRadiusFn: y, textHaloOpacityFn: m, textDxFn: g, textDyFn: v, textPitchAlignmentFn: b, textRotationAlignmentFn: w, textRotationFn: A, textAllowOverlapFn: M, textIgnorePlacementFn: _, textOpacityFn: S, markerWidthFn: k, markerHeightFn: P, markerDxFn: T, markerDyFn: F, markerPitchAlignmentFn: I, markerRotationAlignmentFn: O, markerRotationFn: C, markerAllowOverlapFn: E, markerIgnorePlacementFn: D, markerOpacityFn: L} = this.J;
6307
+ }(t.getIconAndGlyph().glyph.text) ? 1 : 0, {textFillFn: f, textSizeFn: d, textHaloFillFn: p, textHaloRadiusFn: y, textHaloOpacityFn: m, textDxFn: g, textDyFn: v, textPitchAlignmentFn: b, textRotationAlignmentFn: w, textRotationFn: A, textAllowOverlapFn: M, textIgnorePlacementFn: _, textOpacityFn: S, markerWidthFn: k, markerHeightFn: P, markerDxFn: T, markerDyFn: F, markerPitchAlignmentFn: O, markerRotationAlignmentFn: I, markerRotationFn: C, markerAllowOverlapFn: E, markerIgnorePlacementFn: D, markerOpacityFn: L} = this.J;
6308
6308
  let z, R, H, j, V, U, G, W, X, $, B, Y, q, J, Z, K, Q;
6309
6309
  if (u) {
6310
6310
  const e = t.getIconAndGlyph().glyph.font;
@@ -6371,8 +6371,8 @@
6371
6371
  glyphOffset: [ 0, 0 ]
6372
6372
  } ];
6373
6373
  }(), k && (X = k(null, l)), Yn(X) && (X = z[0].tex.w), P && ($ = P(null, l)), Yn($) && ($ = z[0].tex.h),
6374
- T && (B = T(null, l)), F && (Y = F(null, l)), I && (q = +("map" === I(null, l))),
6375
- O && (J = +("map" === O(null, l))), C && (Z = qn(C(null, l), 0, 360) * Math.PI / 180);
6374
+ T && (B = T(null, l)), F && (Y = F(null, l)), O && (q = +("map" === O(null, l))),
6375
+ I && (J = +("map" === I(null, l))), C && (Z = qn(C(null, l), 0, 360) * Math.PI / 180);
6376
6376
  x(H) && (this.dynamicAttrs.aTextSize = 1), x(V) && (this.dynamicAttrs.aTextHaloRadius = 1),
6377
6377
  x(U) && (this.dynamicAttrs.aTextHaloOpacity = 1), x(G) && (this.dynamicAttrs.aTextDx = 1),
6378
6378
  x(W) && (this.dynamicAttrs.aTextDy = 1), x(X) && (this.dynamicAttrs.aMarkerWidth = 1),
@@ -6416,11 +6416,11 @@
6416
6416
  }
6417
6417
  }
6418
6418
  xt(t, e, n, i, r, s, o, a, l, h, u, c, f, d, p, y, m, g) {
6419
- const {textFillFn: v, textSizeFn: x, textHaloFillFn: b, textHaloRadiusFn: w, textHaloOpacityFn: A, textDxFn: M, textDyFn: _, textPitchAlignmentFn: S, textRotationAlignmentFn: k, textRotationFn: P, textAllowOverlapFn: T, textIgnorePlacementFn: F, textOpacityFn: I, markerWidthFn: O, markerHeightFn: C, markerDxFn: E, markerDyFn: D, markerPitchAlignmentFn: L, markerRotationAlignmentFn: N, markerRotationFn: z, markerAllowOverlapFn: R, markerIgnorePlacementFn: H, markerOpacityFn: j} = this.J;
6419
+ const {textFillFn: v, textSizeFn: x, textHaloFillFn: b, textHaloRadiusFn: w, textHaloOpacityFn: A, textDxFn: M, textDyFn: _, textPitchAlignmentFn: S, textRotationAlignmentFn: k, textRotationFn: P, textAllowOverlapFn: T, textIgnorePlacementFn: F, textOpacityFn: O, markerWidthFn: I, markerHeightFn: C, markerDxFn: E, markerDyFn: D, markerPitchAlignmentFn: L, markerRotationAlignmentFn: N, markerRotationFn: z, markerAllowOverlapFn: R, markerIgnorePlacementFn: H, markerOpacityFn: j} = this.J;
6420
6420
  v && t.aTextFill.push(...e), x && t.aTextSize.push(n), b && t.aTextHaloFill.push(...i),
6421
6421
  w && t.aTextHaloRadius.push(r), A && t.aTextHaloOpacity.push(s), M && t.aTextDx.push(o),
6422
- _ && t.aTextDy.push(a), O && t.aMarkerWidth.push(l), C && t.aMarkerHeight.push(h),
6423
- E && t.aMarkerDx.push(u), D && t.aMarkerDy.push(c), (j || I) && t.aColorOpacity.push(f),
6422
+ _ && t.aTextDy.push(a), I && t.aMarkerWidth.push(l), C && t.aMarkerHeight.push(h),
6423
+ E && t.aMarkerDx.push(u), D && t.aMarkerDy.push(c), (j || O) && t.aColorOpacity.push(f),
6424
6424
  (S || L) && t.aPitchAlign.push(d), (N || k) && t.aRotationAlign.push(p), (z || P) && t.aRotation.push(9362 * y);
6425
6425
  const V = R || T, U = H || F;
6426
6426
  (V || U) && t.aOverlap.push((V ? 8 : 0) + 4 * m + ((U ? 2 : 0) + g)), r > 0 && (this.properties.hasHalo = 1);
@@ -6545,7 +6545,7 @@
6545
6545
  var e = t.x - this.x, n = t.y - this.y, i = t.z - this.z;
6546
6546
  return e * e + n * n + i * i;
6547
6547
  }
6548
- I() {
6548
+ O() {
6549
6549
  return this.x = Math.round(this.x), this.y = Math.round(this.y), this.z = Math.round(this.z),
6550
6550
  this;
6551
6551
  }
@@ -6716,7 +6716,7 @@
6716
6716
  a && (t = t.map(t => new Na(t))), this.overscaling = 1;
6717
6717
  const l = this.options.EXTENT;
6718
6718
  if (this.distance = 0, this.scaledDistance = 0, this.totalDistance = 0, this.prevVertex = null,
6719
- this.symbol.lineGradientProperty && e.properties && In(e.properties.mapbox_clip_start) && In(e.properties.mapbox_clip_end)) {
6719
+ this.symbol.lineGradientProperty && e.properties && On(e.properties.mapbox_clip_start) && On(e.properties.mapbox_clip_end)) {
6720
6720
  this.clipStart = +e.properties.mapbox_clip_start, this.clipEnd = +e.properties.mapbox_clip_end;
6721
6721
  for (let e = 0; e < t.length - 1; e++) this.totalDistance += t[e].dist(t[e + 1]);
6722
6722
  this.updateScaledDistance();
@@ -6746,7 +6746,7 @@
6746
6746
  if (!a && M && e > c) {
6747
6747
  const t = p.dist(y);
6748
6748
  if (t > 2 * f) {
6749
- const e = p.sub(p.sub(y).M(f / t).I());
6749
+ const e = p.sub(p.sub(y).M(f / t).O());
6750
6750
  e.z = p.z, this.updateDistance(y, e), this.addCurrentVertex(e, g, 0, 0, d), y = e;
6751
6751
  }
6752
6752
  }
@@ -6786,7 +6786,7 @@
6786
6786
  if (!a && M && e < u - 1) {
6787
6787
  const t = p.dist(m);
6788
6788
  if (t > 2 * f) {
6789
- const e = p.add(m.sub(p).M(f / t).I());
6789
+ const e = p.add(m.sub(p).M(f / t).O());
6790
6790
  e.z = p.z, this.updateDistance(p, e), this.addCurrentVertex(e, v, 0, 0, d), p = e;
6791
6791
  }
6792
6792
  }
@@ -7089,8 +7089,8 @@
7089
7089
  let ll = 0;
7090
7090
  class hl {
7091
7091
  constructor(t, e = 15, n) {
7092
- this.entries = {}, this.Tt = {}, this.Ft = new il(2048, (function() {})), this.It = t,
7093
- this.Ot = e, this.Ct = n;
7092
+ this.entries = {}, this.Tt = {}, this.Ft = new il(2048, (function() {})), this.Ot = t,
7093
+ this.It = e, this.Ct = n;
7094
7094
  }
7095
7095
  getGlyphs(t, e) {
7096
7096
  if (!t || !Object.keys(t).length) return void e(null, {
@@ -7108,7 +7108,7 @@
7108
7108
  const t = e.split(" "), c = r && "normal" === t[0] && !ia(+u), f = e + ":" + u + ":" + c;
7109
7109
  let d;
7110
7110
  if (this.Ft.has(f) ? d = this.Ft.get(f) : (d = this.Et(n[e], t, u, c), this.Ft.add(f, d),
7111
- l++), d = ul(d), s[e][u] = d, a.push(d.bitmap.data.buffer), this.It && l > this.Ot) return void this.It(o(h, s, a));
7111
+ l++), d = ul(d), s[e][u] = d, a.push(d.bitmap.data.buffer), this.Ot && l > this.It) return void this.Ot(o(h, s, a));
7112
7112
  }
7113
7113
  }
7114
7114
  e(null, {
@@ -7635,7 +7635,7 @@
7635
7635
  return new Uint16Array([ 0, t - 64 * e, 0, t, 512 * e, t - 64 * e, 512 * e, t ]);
7636
7636
  }
7637
7637
  const Tl = new Uint8Array([ 0, 0, 0, 1, 1, 0, 1, 0, 0, 1, 1, 1 ]), Fl = [];
7638
- class Il {
7638
+ class Ol {
7639
7639
  constructor(t, e, i) {
7640
7640
  this.Bt = t;
7641
7641
  (this.re = new n.reshader.Geometry({
@@ -7712,7 +7712,7 @@
7712
7712
  this.oe.length = 0, this.ce.dispose();
7713
7713
  }
7714
7714
  }
7715
- const Ol = new Float32Array([ -1e12 ])[0], Cl = "__fea_idx".trim();
7715
+ const Il = new Float32Array([ -1e12 ])[0], Cl = "__fea_idx".trim();
7716
7716
  function El(t, e, n, i, r) {
7717
7717
  const s = {};
7718
7718
  if (function(t) {
@@ -7845,9 +7845,14 @@
7845
7845
  for (let e = 0; e < t.length; e++) if (t[e] && t[e].needToRetireFrames()) return !0;
7846
7846
  return !1;
7847
7847
  }
7848
- needToRefreshTerrainTile() {
7848
+ isAnimating() {
7849
+ const t = this.Pe();
7850
+ for (let e = 0; e < t.length; e++) if (t[e] && t[e].isAnimating()) return !0;
7851
+ return !1;
7852
+ }
7853
+ needToRefreshTerrainTileOnZooming() {
7849
7854
  const t = this.Pe();
7850
- for (let e = 0; e < t.length; e++) if (t[e] && t[e].needToRefreshTerrainTile()) return !0;
7855
+ for (let e = 0; e < t.length; e++) if (t[e] && t[e].needToRefreshTerrainTileOnZooming()) return !0;
7851
7856
  return !1;
7852
7857
  }
7853
7858
  Te() {
@@ -7861,7 +7866,7 @@
7861
7866
  }
7862
7867
  if (t && (this.canvas.pickingFBO = this.canvas.pickingFBO || this.regl.framebuffer(this.canvas.width, this.canvas.height)),
7863
7868
  this.pickingFBO = this.canvas.pickingFBO || this.regl.framebuffer(this.canvas.width, this.canvas.height),
7864
- this.Ie = new Sl(this.regl, this.getMap()), this.Oe(), this.ge = new n.GroundPainter(this.regl, this.layer),
7869
+ this.Oe = new Sl(this.regl, this.getMap()), this.Ie(), this.ge = new n.GroundPainter(this.regl, this.layer),
7865
7870
  !this.consumeTile) {
7866
7871
  const t = this.getMap().VERSION;
7867
7872
  throw new Error(`Incompatible version of maptalks: ${t}, upgrade maptalks >= v1.0.0-rc.14`);
@@ -7886,7 +7891,7 @@
7886
7891
  })
7887
7892
  };
7888
7893
  }
7889
- Oe() {
7894
+ Ie() {
7890
7895
  this.me || (this.me = new Al("@maptalks/vt", this.layer));
7891
7896
  this.me.addLayer((t, e) => {
7892
7897
  this.layer && (this.ready = !0, this.layer.onWorkerReady(t, e), this.layer.fire("workerready"),
@@ -8193,10 +8198,10 @@
8193
8198
  return t;
8194
8199
  }
8195
8200
  _e(t) {
8196
- return O(t) && (t = this.fe), this.pe[t] || Rl;
8201
+ return I(t) && (t = this.fe), this.pe[t] || Rl;
8197
8202
  }
8198
8203
  Se(t) {
8199
- return O(t) && (t = this.fe), this.ye[t] || Rl;
8204
+ return I(t) && (t = this.fe), this.ye[t] || Rl;
8200
8205
  }
8201
8206
  je(t, e) {
8202
8207
  const n = !!this.hn, i = this.layer.isDefaultRender() && this.sn, r = this.He;
@@ -8260,7 +8265,7 @@
8260
8265
  const s = this.tilesInView[r].info, o = s.transform, a = this.tilesInView[r].image.extent, l = t && t.renderTarget;
8261
8266
  if (o && a) {
8262
8267
  const t = this.getDebugInfo(s.id), r = n.mat4.multiply(e, i, o), h = this.layer.getTileSize().width;
8263
- this.Ie.draw(t, r, h, a, l && l.fbo);
8268
+ this.Oe.draw(t, r, h, a, l && l.fbo);
8264
8269
  }
8265
8270
  }
8266
8271
  }
@@ -8293,7 +8298,7 @@
8293
8298
  dn(t) {
8294
8299
  const e = this.isEnableTileStencil(), n = this.getCurrentTileZoom();
8295
8300
  let i = this.mn;
8296
- i || (i = this.mn = new Il(this.regl, this.canvas, this.getMap())), i.start();
8301
+ i || (i = this.mn = new Ol(this.regl, this.canvas, this.getMap())), i.start();
8297
8302
  const {tiles: r} = this.gn;
8298
8303
  let {parentTiles: s, childTiles: o} = this.gn, a = 1;
8299
8304
  o = o.sort($l);
@@ -8516,7 +8521,7 @@
8516
8521
  this.mn && this.mn.remove(), this.me && (this.me.removeLayer(t => {
8517
8522
  if (t) throw t;
8518
8523
  }), this.me.remove(), delete this.me), this.pickingFBO && (this.canvas.pickingFBO || this.pickingFBO.destroy(),
8519
- delete this.pickingFBO), this.Ie && (this.Ie.delete(), delete this.Ie), this.xn && (this.xn.destroy(),
8524
+ delete this.pickingFBO), this.Oe && (this.Oe.delete(), delete this.Oe), this.xn && (this.xn.destroy(),
8520
8525
  delete this.xn), this.ge && (this.ge.dispose(), delete this.ge), super.onRemove && super.onRemove(),
8521
8526
  this.Me();
8522
8527
  }
@@ -8694,7 +8699,7 @@
8694
8699
  for (let n = 0; n < e.length; n++) e[n].outlineAll(t);
8695
8700
  }
8696
8701
  paintOutline(t, e, n) {
8697
- if (!O(e)) {
8702
+ if (!I(e)) {
8698
8703
  const i = e, r = this.Pe();
8699
8704
  if (!r[i] || r[i].painter && !r[i].painter.isVisible()) return;
8700
8705
  return void r[i].outline(t, n);
@@ -8729,8 +8734,8 @@
8729
8734
  }
8730
8735
  }
8731
8736
  highlight(t) {
8732
- if (this.Sn || (this.Sn = new Map), Array.isArray(t)) for (let e = 0; e < t.length; e++) O(t[e].name) && !O(t[e].id) && (t[e] = P({}, t[e]),
8733
- t[e].name = t[e].id), this.Sn.set(t[e].name, t[e]); else O(t.name) && !O(t.id) && ((t = P({}, t)).name = t.id),
8737
+ if (this.Sn || (this.Sn = new Map), Array.isArray(t)) for (let e = 0; e < t.length; e++) I(t[e].name) && !I(t[e].id) && (t[e] = P({}, t[e]),
8738
+ t[e].name = t[e].id), this.Sn.set(t[e].name, t[e]); else I(t.name) && !I(t.id) && ((t = P({}, t)).name = t.id),
8734
8739
  this.Sn.set(t.name, t);
8735
8740
  this.Pe().forEach(t => {
8736
8741
  t.highlight(this.Sn);
@@ -8751,7 +8756,7 @@
8751
8756
  }
8752
8757
  Pn() {
8753
8758
  const t = this.layer.options.opacity;
8754
- return this.Te() ? O(t) ? 1 : t : 1;
8759
+ return this.Te() ? I(t) ? 1 : t : 1;
8755
8760
  }
8756
8761
  }
8757
8762
  function Xl(t) {
@@ -8870,7 +8875,7 @@
8870
8875
  }, document.getElementsByTagName("head")[0].appendChild(i), this;
8871
8876
  },
8872
8877
  get: function(t, e, n) {
8873
- if (I(e)) {
8878
+ if (O(e)) {
8874
8879
  const t = n;
8875
8880
  n = e, e = t;
8876
8881
  }
@@ -8911,7 +8916,7 @@
8911
8916
  statusText: t.statusText,
8912
8917
  message: `incorrect http request with status code(${t.status}): ${t.statusText}`
8913
8918
  } : "arraybuffer" === n ? t.arrayBuffer() : e ? t.json() : t.text(),
8914
- In: function(t, e) {
8919
+ On: function(t, e) {
8915
8920
  return function() {
8916
8921
  if (4 === t.readyState) if (200 === t.status) if ("arraybuffer" === t.responseType) {
8917
8922
  0 === t.response.byteLength ? e({
@@ -8944,17 +8949,17 @@
8944
8949
  } catch (t) {}
8945
8950
  }
8946
8951
  }
8947
- return e.onreadystatechange = ih.In(e, t), e;
8952
+ return e.onreadystatechange = ih.On(e, t), e;
8948
8953
  },
8949
8954
  getArrayBuffer(t, e, n) {
8950
- if (I(e)) {
8955
+ if (O(e)) {
8951
8956
  const t = n;
8952
8957
  n = e, e = t;
8953
8958
  }
8954
8959
  return e || (e = {}), e.responseType = "arraybuffer", ih.get(t, e, n);
8955
8960
  },
8956
8961
  getJSON: function(t, e, n) {
8957
- if (I(e)) {
8962
+ if (O(e)) {
8958
8963
  const t = n;
8959
8964
  n = e, e = t;
8960
8965
  }
@@ -8976,11 +8981,11 @@
8976
8981
  }
8977
8982
  onAdd() {
8978
8983
  const t = this.getMap();
8979
- this.On();
8984
+ this.In();
8980
8985
  const e = this.getSpatialReference().toJSON().projection, n = t.getSpatialReference().toJSON().projection;
8981
8986
  if ((e && e.toLowerCase()) !== (n && n.toLowerCase())) throw new Error(`VectorTileLayer's projection(${e}) must be the same with map(${n}).`);
8982
8987
  }
8983
- On() {
8988
+ In() {
8984
8989
  const t = this.getMap().getProjection(), e = "EPSG:4326" === t.code || "EPSG:4490" === t.code, n = "EPSG:3857" === t.code;
8985
8990
  if (!this.options.spatialReference) {
8986
8991
  512 === this.getTileSize().width && (n ? this.options.spatialReference = "preset-vt-3857" : e && (this.options.spatialReference = "preset-vt-4326"));
@@ -9141,7 +9146,7 @@
9141
9146
  if (!this.options.features) throw new Error("options.features must be turned on to support filter in highlight");
9142
9147
  if (!t.name) throw new Error("A name is required for highlight with filter");
9143
9148
  }
9144
- if (O(t.filter) && O(t.id)) throw new Error("id or filter must be provided for highlight");
9149
+ if (I(t.filter) && I(t.id)) throw new Error("id or filter must be provided for highlight");
9145
9150
  }
9146
9151
  }
9147
9152
  kn() {
@@ -9385,7 +9390,7 @@
9385
9390
  return o;
9386
9391
  }
9387
9392
  getDataSchema(t) {
9388
- return this.Qn || (this.Qn = {}), O(t) || this.Qn[t] || (this.Qn[t] = {}), O(t) ? this.Qn : this.Qn[t];
9393
+ return this.Qn || (this.Qn = {}), I(t) || this.Qn[t] || (this.Qn[t] = {}), I(t) ? this.Qn : this.Qn[t];
9389
9394
  }
9390
9395
  onRemove() {
9391
9396
  super.onRemove();
@@ -9423,7 +9428,7 @@
9423
9428
  return !(!t || !t.properties);
9424
9429
  }
9425
9430
  function hh(t) {
9426
- return t ? (Array.isArray(t) || (t = It(t).unitArray()), 3 === t.length && t.push(1),
9431
+ return t ? (Array.isArray(t) || (t = Ot(t).unitArray()), 3 === t.length && t.push(1),
9427
9432
  t) : null;
9428
9433
  }
9429
9434
  function uh(t, e) {
@@ -9506,7 +9511,7 @@
9506
9511
  constructor(t, e = {}) {
9507
9512
  e.spatialReference = null, super(t, e), this.setData(e.data);
9508
9513
  }
9509
- On() {}
9514
+ In() {}
9510
9515
  getWorkerOptions() {
9511
9516
  const t = super.getWorkerOptions();
9512
9517
  let e = this.options.data;
@@ -10124,7 +10129,7 @@
10124
10129
  n;
10125
10130
  }
10126
10131
  let Fh = 1;
10127
- const Ih = "_symbol_".trim(), Oh = "__fea_idx".trim();
10132
+ const Oh = "_symbol_".trim(), Ih = "__fea_idx".trim();
10128
10133
  let Ch = new Float32Array(1);
10129
10134
  const Eh = [];
10130
10135
  class Dh extends r.renderer.CanvasRenderer {
@@ -10163,7 +10168,7 @@
10163
10168
  delete this.ki, this.Ai(t), this._i = !1;
10164
10169
  }
10165
10170
  if (!this.meshes && !this.Pi && !this.Ti) return void this.completeRender();
10166
- this.Fi && (this.Ii(), this.Fi = !1), this.Oi();
10171
+ this.Fi && (this.Oi(), this.Fi = !1), this.Ii();
10167
10172
  const s = !i || "default" === i;
10168
10173
  let o = this.Ti && (s || this.xi.supportRenderMode(i)) ? 2 : 1;
10169
10174
  if (0 === this.layer.options.meshRenderOrder && this.Ci(r, o--, i), this.Ti && (s || this.xi.supportRenderMode(i)) && (this.xi.startFrame(r),
@@ -10174,7 +10179,7 @@
10174
10179
  const e = !this.He.timestamp || this.He.isFinalRender, i = !this.Ei || this.Ei !== t;
10175
10180
  n.options.collision && i && n.clearCollisionIndex();
10176
10181
  const s = this.layer.options.sceneConfig;
10177
- this.vi.sceneConfig.collision = !s || (!!O(s.collision) || s.collision), this.vi.startFrame(r),
10182
+ this.vi.sceneConfig.collision = !s || (!!I(s.collision) || s.collision), this.vi.startFrame(r),
10178
10183
  this.vi.addMesh(this.Pi, null, {
10179
10184
  bloom: this.He.bloom
10180
10185
  }), this.vi.prepareRender(r), n.options.collision && i && (this.vi.updateCollision(r),
@@ -10227,12 +10232,12 @@
10227
10232
  if (!this.features[o]) continue;
10228
10233
  const a = this.features[o];
10229
10234
  if (Array.isArray(a)) for (let r = 0; r < a.length; r++) {
10230
- const s = a[r], o = s[Oh];
10235
+ const s = a[r], o = s[Ih];
10231
10236
  (!t || t[o] || e && (!e || e[o])) && (s.visible || (this.Fi = !0), this.Ni(s.geometry, i, s.coordinates),
10232
10237
  n.push(s));
10233
10238
  } else {
10234
10239
  a.visible || (this.Fi = !0);
10235
- const r = a[Oh];
10240
+ const r = a[Ih];
10236
10241
  if (t && !t[r] && (!e || e && !e[r])) continue;
10237
10242
  this.Ni(a.geometry, i, a.coordinates), n.push(a);
10238
10243
  }
@@ -10342,7 +10347,7 @@
10342
10347
  delete this.Pi));
10343
10348
  const {features: r, center: s} = this.Li(this.ci, this.fi), o = [], a = [];
10344
10349
  for (let t = 0; t < r.length; t++) {
10345
- const e = r[t][Oh];
10350
+ const e = r[t][Ih];
10346
10351
  this.ci[e] && o.push(r[t]), this.fi[e] && a.push(r[t]);
10347
10352
  }
10348
10353
  if (!o.length && !a.length) return void (this.Pi && (this.vi.deleteMesh(this.Pi),
@@ -10367,7 +10372,7 @@
10367
10372
  this.Pi = a, l && (this.Fi = !0), this.$i = !1, this.setToRedraw(), this.layer.fire("buildmarkermesh");
10368
10373
  });
10369
10374
  }
10370
- Ii() {
10375
+ Oi() {
10371
10376
  if (this.Pi && (this.Bi(this.Pi[0], this.ci), this.Bi(this.Pi[1], this.fi)), this.Ti) for (let t = 0; t < this.Ti.length; t++) this.Bi(this.Ti[t], this.di);
10372
10377
  if (this.meshes) for (let t = 0; t < this.meshes.length; t++) this.Bi(this.meshes[t], this.hi);
10373
10378
  }
@@ -10417,7 +10422,7 @@
10417
10422
  !1;
10418
10423
  }
10419
10424
  for (let t = 0; t < r.length; t++) {
10420
- const e = r[t][Oh];
10425
+ const e = r[t][Ih];
10421
10426
  this.ci[e] && o.push(r[t]), this.fi[e] && a.push(r[t]);
10422
10427
  }
10423
10428
  const c = r[0].id, f = this.Xi(o, a, this.Si, this.Wi), d = this.Pi;
@@ -10522,7 +10527,7 @@
10522
10527
  });
10523
10528
  }
10524
10529
  nr(t) {
10525
- const e = (Ih + "lineDasharray").trim(), n = (Ih + "linePatternFile").trim(), i = [], r = [], s = [];
10530
+ const e = (Oh + "lineDasharray").trim(), n = (Oh + "linePatternFile").trim(), i = [], r = [], s = [];
10526
10531
  for (let o = 0; o < t.length; o++) {
10527
10532
  const a = t[o], l = a.properties && a.properties[e];
10528
10533
  l && Uh(l) ? s.push(a) : a.properties && a.properties[n] ? r.push(a) : i.push(a);
@@ -10559,7 +10564,7 @@
10559
10564
  if (!t) return;
10560
10565
  const n = Array.isArray(t) ? t[0].id : t.id;
10561
10566
  if (this.ui[n] = t, Array.isArray(t)) for (let n = 0; n < t.length; n++) {
10562
- const i = t[n][Oh];
10567
+ const i = t[n][Ih];
10563
10568
  if (t[n][Sh] = e, this.hi[i] = {
10564
10569
  feature: t[n]
10565
10570
  }, this.hi[i][Sh] = e, !this.needCheckPointLineSymbols()) continue;
@@ -10571,7 +10576,7 @@
10571
10576
  t[Sh] = e;
10572
10577
  const n = {
10573
10578
  feature: t
10574
- }, i = t[Oh];
10579
+ }, i = t[Ih];
10575
10580
  if (this.hi[i] = n, !this.needCheckPointLineSymbols()) return;
10576
10581
  zh(t) && (this.ci[i] = n), Rh(t) && (this.fi[i] = n), Vh(t) && (this.di[i] = n);
10577
10582
  }
@@ -10582,10 +10587,10 @@
10582
10587
  ar(t) {
10583
10588
  const e = this.features[t];
10584
10589
  if (e) if (Array.isArray(e)) for (let t = 0; t < e.length; t++) {
10585
- const n = e[t][Oh], i = e[t].id;
10590
+ const n = e[t][Ih], i = e[t].id;
10586
10591
  delete this.ui[i], delete this.hi[n], delete this.ci[n], delete this.fi[n], delete this.di[n];
10587
10592
  } else {
10588
- const t = e[Oh], n = e.id;
10593
+ const t = e[Ih], n = e.id;
10589
10594
  delete this.ui[n], delete this.hi[t], delete this.ci[t], delete this.fi[t], delete this.di[t];
10590
10595
  }
10591
10596
  }
@@ -10603,9 +10608,9 @@
10603
10608
  }
10604
10609
  hr(t) {
10605
10610
  const e = t[Sh], n = this.features[e];
10606
- return Array.isArray(n) ? n[0][Oh] : n[Oh];
10611
+ return Array.isArray(n) ? n[0][Ih] : n[Ih];
10607
10612
  }
10608
- Oi() {
10613
+ Ii() {
10609
10614
  let t = !1;
10610
10615
  for (const e in this.gi) {
10611
10616
  const n = this.gi[e], i = this.hr(n);
@@ -10814,7 +10819,7 @@
10814
10819
  }
10815
10820
  Pn() {
10816
10821
  const t = this.layer.options.opacity;
10817
- return this.Te() ? O(t) ? 1 : t : 1;
10822
+ return this.Te() ? I(t) ? 1 : t : 1;
10818
10823
  }
10819
10824
  }
10820
10825
  function Lh(t) {
@@ -10829,13 +10834,13 @@
10829
10834
  return !1;
10830
10835
  }
10831
10836
  function zh({properties: t}) {
10832
- const e = (Ih + "markerFile").trim(), n = (Ih + "markerType").trim();
10837
+ const e = (Oh + "markerFile").trim(), n = (Oh + "markerType").trim();
10833
10838
  return t[e] || t[n];
10834
10839
  }
10835
10840
  function Rh({properties: t}) {
10836
- return t[(Ih + "textName").trim()];
10841
+ return t[(Oh + "textName").trim()];
10837
10842
  }
10838
- const Hh = (Ih + "lineWidth").trim(), jh = "_line_gradient_property".trim();
10843
+ const Hh = (Oh + "lineWidth").trim(), jh = "_line_gradient_property".trim();
10839
10844
  function Vh(t) {
10840
10845
  return 2 === t.type && !t.properties[jh] || 3 === t.type && void 0 !== t.properties[Hh];
10841
10846
  }
@@ -10846,9 +10851,9 @@
10846
10851
  return e;
10847
10852
  }
10848
10853
  function Gh(t, e) {
10849
- if (Object.keys(t).sort().join() !== Object.keys(e.properties || {}).filter(t => 0 === t.indexOf(Ih)).map(t => t.substring(Ih.length)).sort().join()) return !1;
10854
+ if (Object.keys(t).sort().join() !== Object.keys(e.properties || {}).filter(t => 0 === t.indexOf(Oh)).map(t => t.substring(Oh.length)).sort().join()) return !1;
10850
10855
  for (const n in t) if (D(t, n)) {
10851
- const i = (Ih + n).trim();
10856
+ const i = (Oh + n).trim();
10852
10857
  if (x(t[n]) !== x(e.properties[i])) return !1;
10853
10858
  }
10854
10859
  return !0;
@@ -11124,10 +11129,10 @@
11124
11129
  const hu = go.getInstance();
11125
11130
  function uu(t, e, n, i, r, s, o, a, l, h, u, c, f, d) {
11126
11131
  void 0 === e.top && (e.top = !0), void 0 === e.side && (e.side = !0), hu.reset();
11127
- const {altitudeScale: p, altitudeProperty: y, defaultAltitude: m, heightProperty: g, minHeightProperty: v, defaultHeight: A, tangent: M, uv: _, uvScale: S, topUVMode: k, sideUVMode: P, sideVerticalUVMode: T, top: I, side: O, textureYOrigin: D, topThickness: L} = e, N = !!d, z = function(t, e, {altitudeScale: n, altitudeProperty: i, defaultAltitude: r, heightProperty: s, minHeightProperty: o, defaultHeight: a}, {center: l, side: h, top: u, topThickness: c, uvOrigin: f, uv: d, uvSize: p, topUVMode: y, sideUVMode: m, sideVerticalUVMode: g, textureYOrigin: v, localScale: x, centimeterToPoint: b, positionType: w, res: A, glScale: M, projectionCode: _}, S, k) {
11132
+ const {altitudeScale: p, altitudeProperty: y, defaultAltitude: m, heightProperty: g, minHeightProperty: v, defaultHeight: A, tangent: M, uv: _, uvScale: S, topUVMode: k, sideUVMode: P, sideVerticalUVMode: T, top: O, side: I, textureYOrigin: D, topThickness: L} = e, N = !!d, z = function(t, e, {altitudeScale: n, altitudeProperty: i, defaultAltitude: r, heightProperty: s, minHeightProperty: o, defaultHeight: a}, {center: l, side: h, top: u, topThickness: c, uvOrigin: f, uv: d, uvSize: p, topUVMode: y, sideUVMode: m, sideVerticalUVMode: g, textureYOrigin: v, localScale: x, centimeterToPoint: b, positionType: w, res: A, glScale: M, projectionCode: _}, S, k) {
11128
11133
  let P = e / t[0].extent;
11129
11134
  e === 1 / 0 && (P = 1);
11130
- const T = e === 1 / 0, I = k.get(), O = k.get(), E = k.get(), D = k.get(), L = k.get(), N = k.get(), z = k.get(), R = !!d, H = !!u, j = !!h, V = R ? k.get() : null;
11135
+ const T = e === 1 / 0, O = k.get(), I = k.get(), E = k.get(), D = k.get(), L = k.get(), N = k.get(), z = k.get(), R = !!d, H = !!u, j = !!h, V = R ? k.get() : null;
11131
11136
  function U(t, n, i, r, s, o) {
11132
11137
  let a = n;
11133
11138
  if (H) {
@@ -11182,15 +11187,15 @@
11182
11187
  r && J.push(D.length / 3), Zh(D, D.length, i, P, d, !1, w), t === n - 1 && (W = U(g, W, J, p * P, f, T));
11183
11188
  }
11184
11189
  const x = L.length - y, b = "__fea_idx".trim();
11185
- for (let t = 0; t < x / 3; t++) O.push(void 0 === l[b] ? $ : l[b]), I.push($), F(h) && E.push(h);
11190
+ for (let t = 0; t < x / 3; t++) I.push(void 0 === l[b] ? $ : l[b]), O.push($), F(h) && E.push(h);
11186
11191
  }
11187
- const Z = dl.getUnsignedArrayType(O.length ? O[O.length - 1] : 0), K = {
11192
+ const Z = dl.getUnsignedArrayType(I.length ? I[I.length - 1] : 0), K = {
11188
11193
  maxAltitude: G,
11189
11194
  vertices: L,
11190
11195
  verticeTypes: z,
11191
11196
  indices: N,
11192
- pickingIds: go.createTypedArray(O, Z),
11193
- featureIndexes: I
11197
+ pickingIds: go.createTypedArray(I, Z),
11198
+ featureIndexes: O
11194
11199
  };
11195
11200
  if (E.length) {
11196
11201
  const t = q ? dl.getPosArrayType(Y) : dl.getUnsignedArrayType(Y);
@@ -11206,8 +11211,8 @@
11206
11211
  defaultHeight: A || 0
11207
11212
  }, {
11208
11213
  center: d,
11209
- top: I,
11210
- side: O,
11214
+ top: O,
11215
+ side: I,
11211
11216
  topThickness: 10 * L || 0,
11212
11217
  uv: _ || M,
11213
11218
  uvSize: S ? [ .5 * S[0], .5 * S[1] ] : [ .5, .5 ],
@@ -11252,8 +11257,8 @@
11252
11257
  for (let t = 0; t < s; t++) a[t] = [ 0, 0, 0 ], l[t] = [ 0, 0, 0 ];
11253
11258
  const h = [ 0, 0, 0 ], u = [ 0, 0, 0 ], c = [ 0, 0, 0 ], f = [ 0, 0 ], d = [ 0, 0 ], p = [ 0, 0 ], y = [ 0, 0, 0 ], m = [ 0, 0, 0 ];
11254
11259
  function g(e, i, r) {
11255
- Fe(h, t, 3 * e), Fe(u, t, 3 * i), Fe(c, t, 3 * r), Ie(f, n, 2 * e), Ie(d, n, 2 * i),
11256
- Ie(p, n, 2 * r);
11260
+ Fe(h, t, 3 * e), Fe(u, t, 3 * i), Fe(c, t, 3 * r), Oe(f, n, 2 * e), Oe(d, n, 2 * i),
11261
+ Oe(p, n, 2 * r);
11257
11262
  const s = u[0] - h[0], o = c[0] - h[0], g = u[1] - h[1], v = c[1] - h[1], x = u[2] - h[2], b = c[2] - h[2], w = d[0] - f[0], A = p[0] - f[0], M = d[1] - f[1], _ = p[1] - f[1], S = 1 / (w * _ - A * M);
11258
11263
  Kt(y, (_ * s - M * o) * S, (_ * g - M * v) * S, (_ * x - M * b) * S), Kt(m, (w * o - A * s) * S, (w * v - A * g) * S, (w * b - A * x) * S),
11259
11264
  Qt(a[e], a[e], y), Qt(a[i], a[i], y), Qt(a[r], a[r], y), Qt(l[e], l[e], m), Qt(l[i], l[i], m),
@@ -11499,10 +11504,10 @@
11499
11504
  i || (i = Math.ceil(Math.log(r) / Math.log(o)), o = Math.ceil(r / Math.pow(o, i - 1))),
11500
11505
  s = Fu([]), s.leaf = !1, s.height = i;
11501
11506
  const a = Math.ceil(r / o), l = a * Math.ceil(Math.sqrt(o));
11502
- Iu(t, e, n, l, this.compareMinX);
11507
+ Ou(t, e, n, l, this.compareMinX);
11503
11508
  for (let r = e; r <= n; r += l) {
11504
11509
  const e = Math.min(r + l - 1, n);
11505
- Iu(t, r, e, a, this.compareMinY);
11510
+ Ou(t, r, e, a, this.compareMinY);
11506
11511
  for (let n = r; n <= e; n += a) {
11507
11512
  const r = Math.min(n + a - 1, e);
11508
11513
  s.children.push(this.Sr(t, n, r, i - 1));
@@ -11523,11 +11528,11 @@
11523
11528
  }
11524
11529
  Pr(t, e, n) {
11525
11530
  const i = n ? t : this.toBBox(t), r = [], s = this.Fr(i, this.data, e, r);
11526
- for (s.children.push(t), bu(s, i); e >= 0 && r[e].children.length > this.Ar; ) this.Ir(r, e),
11531
+ for (s.children.push(t), bu(s, i); e >= 0 && r[e].children.length > this.Ar; ) this.Or(r, e),
11527
11532
  e--;
11528
- this.Or(i, r, e);
11533
+ this.Ir(i, r, e);
11529
11534
  }
11530
- Ir(t, e) {
11535
+ Or(t, e) {
11531
11536
  const n = t[e], i = n.children.length, r = this.Mr;
11532
11537
  this.Cr(n, r, i);
11533
11538
  const s = this.Er(n, r, i), o = Fu(n.children.splice(s, n.children.length - s));
@@ -11563,7 +11568,7 @@
11563
11568
  }
11564
11569
  return a;
11565
11570
  }
11566
- Or(t, e, n) {
11571
+ Ir(t, e, n) {
11567
11572
  for (let i = n; i >= 0; i--) bu(e[i], t);
11568
11573
  }
11569
11574
  Tr(t) {
@@ -11627,7 +11632,7 @@
11627
11632
  maxY: -1 / 0
11628
11633
  };
11629
11634
  }
11630
- function Iu(t, e, n, i, r) {
11635
+ function Ou(t, e, n, i, r) {
11631
11636
  const s = [ e, n ];
11632
11637
  for (;s.length; ) {
11633
11638
  if ((n = s.pop()) - (e = s.pop()) <= i) continue;
@@ -11635,9 +11640,9 @@
11635
11640
  du(t, o, e, n, r), s.push(e, o, o, n);
11636
11641
  }
11637
11642
  }
11638
- class Ou {
11643
+ class Iu {
11639
11644
  constructor(t = [], e = Cu) {
11640
- if (this.data = t, this.length = this.data.length, this.compare = e, this.length > 0) for (let t = (this.length >> 1) - 1; t >= 0; t--) this.O(t);
11645
+ if (this.data = t, this.length = this.data.length, this.compare = e, this.length > 0) for (let t = (this.length >> 1) - 1; t >= 0; t--) this.I(t);
11641
11646
  }
11642
11647
  push(t) {
11643
11648
  this.data.push(t), this.length++, this.C(this.length - 1);
@@ -11645,7 +11650,7 @@
11645
11650
  pop() {
11646
11651
  if (0 === this.length) return;
11647
11652
  const t = this.data[0], e = this.data.pop();
11648
- return this.length--, this.length > 0 && (this.data[0] = e, this.O(0)), t;
11653
+ return this.length--, this.length > 0 && (this.data[0] = e, this.I(0)), t;
11649
11654
  }
11650
11655
  peek() {
11651
11656
  return this.data[0];
@@ -11659,7 +11664,7 @@
11659
11664
  }
11660
11665
  e[t] = i;
11661
11666
  }
11662
- O(t) {
11667
+ I(t) {
11663
11668
  const {data: e, compare: n} = this, i = this.length >> 1, r = e[t];
11664
11669
  for (;t < i; ) {
11665
11670
  let i = 1 + (t << 1), s = e[i];
@@ -11732,26 +11737,26 @@
11732
11737
  let n = e[0];
11733
11738
  for (let i = 1; i < t; i++) n += e[i];
11734
11739
  return n;
11735
- }(4, Hu), I = 22204460492503146e-32 * o;
11736
- if (F >= I || -F >= I) return F;
11740
+ }(4, Hu), O = 22204460492503146e-32 * o;
11741
+ if (F >= O || -F >= O) return F;
11737
11742
  if (c = t - S, a = t - (S + c) + (c - r), c = n - k, h = n - (k + c) + (c - r),
11738
11743
  c = e - P, l = e - (P + c) + (c - s), c = i - T, u = i - (T + c) + (c - s), 0 === a && 0 === l && 0 === h && 0 === u) return F;
11739
- if (I = 11093356479670487e-47 * o + 33306690738754706e-32 * Math.abs(F), F += S * u + T * a - (P * h + k * l),
11740
- F >= I || -F >= I) return F;
11744
+ if (O = 11093356479670487e-47 * o + 33306690738754706e-32 * Math.abs(F), F += S * u + T * a - (P * h + k * l),
11745
+ F >= O || -F >= O) return F;
11741
11746
  b = a * T, f = 134217729 * a, d = f - (f - a), p = a - d, f = 134217729 * T, y = f - (f - T),
11742
11747
  m = T - y, w = p * m - (b - d * y - p * y - d * m), A = l * k, f = 134217729 * l,
11743
11748
  d = f - (f - l), p = l - d, f = 134217729 * k, y = f - (f - k), m = k - y, M = p * m - (A - d * y - p * y - d * m),
11744
11749
  g = w - M, c = w - g, Gu[0] = w - (g + c) + (c - M), v = b + g, c = v - b, x = b - (v - c) + (g - c),
11745
11750
  g = x - A, c = x - g, Gu[1] = x - (g + c) + (c - A), _ = v + g, c = _ - v, Gu[2] = v - (_ - c) + (g - c),
11746
11751
  Gu[3] = _;
11747
- const O = zu(4, Hu, 4, Gu, ju);
11752
+ const I = zu(4, Hu, 4, Gu, ju);
11748
11753
  b = S * u, f = 134217729 * S, d = f - (f - S), p = S - d, f = 134217729 * u, y = f - (f - u),
11749
11754
  m = u - y, w = p * m - (b - d * y - p * y - d * m), A = P * h, f = 134217729 * P,
11750
11755
  d = f - (f - P), p = P - d, f = 134217729 * h, y = f - (f - h), m = h - y, M = p * m - (A - d * y - p * y - d * m),
11751
11756
  g = w - M, c = w - g, Gu[0] = w - (g + c) + (c - M), v = b + g, c = v - b, x = b - (v - c) + (g - c),
11752
11757
  g = x - A, c = x - g, Gu[1] = x - (g + c) + (c - A), _ = v + g, c = _ - v, Gu[2] = v - (_ - c) + (g - c),
11753
11758
  Gu[3] = _;
11754
- const C = zu(O, ju, 4, Gu, Vu);
11759
+ const C = zu(I, ju, 4, Gu, Vu);
11755
11760
  b = a * u, f = 134217729 * a, d = f - (f - a), p = a - d, f = 134217729 * u, y = f - (f - u),
11756
11761
  m = u - y, w = p * m - (b - d * y - p * y - d * m), A = l * h, f = 134217729 * l,
11757
11762
  d = f - (f - l), p = l - d, f = 134217729 * h, y = f - (f - h), m = h - y, M = p * m - (A - d * y - p * y - d * m),
@@ -11818,7 +11823,7 @@
11818
11823
  return g.push(f.p), g;
11819
11824
  }
11820
11825
  function $u(t, e, n, i, r, s, o) {
11821
- for (var a = new Ou([], Bu), l = t.data; l; ) {
11826
+ for (var a = new Iu([], Bu), l = t.data; l; ) {
11822
11827
  for (var h = 0; h < l.children.length; h++) {
11823
11828
  var u = l.children[h], c = l.leaf ? ec(u, n, i) : Yu(n, i, u);
11824
11829
  c > s || a.push({
@@ -12075,7 +12080,7 @@
12075
12080
  return [ t ];
12076
12081
  }
12077
12082
  onConfig(t) {
12078
- this.painter && (O(t.cullFace) || this.painter.updateSceneConfig({
12083
+ this.painter && (I(t.cullFace) || this.painter.updateSceneConfig({
12079
12084
  cullFace: t.cullFace
12080
12085
  }));
12081
12086
  }
@@ -12425,8 +12430,8 @@
12425
12430
  const Fc = {
12426
12431
  redraw: !1,
12427
12432
  retire: !1
12428
- }, Ic = [];
12429
- let Oc = 1;
12433
+ }, Oc = [];
12434
+ let Ic = 1;
12430
12435
  function Cc(t, e) {
12431
12436
  return Sc.extend(t, {
12432
12437
  init: function() {
@@ -12464,7 +12469,7 @@
12464
12469
  },
12465
12470
  getShadowMeshes() {
12466
12471
  const t = this.painter;
12467
- return t && t.getShadowMeshes && t.getShadowMeshes() || Ic;
12472
+ return t && t.getShadowMeshes && t.getShadowMeshes() || Oc;
12468
12473
  },
12469
12474
  createTile: function(t) {
12470
12475
  const {tileCache: e, tileData: n} = t;
@@ -12514,7 +12519,7 @@
12514
12519
  }, e);
12515
12520
  if (d.length) {
12516
12521
  const t = n.getRenderer().isEnableTileStencil();
12517
- for (let n = 0; n < d.length; n++) d[n] && (u = !0, this.$r(d[n], s, e.timestamp, Oc++, t));
12522
+ for (let n = 0; n < d.length; n++) d[n] && (u = !0, this.$r(d[n], s, e.timestamp, Ic++, t));
12518
12523
  h.animation && (d.Br = e.timestamp);
12519
12524
  const i = this.Gr(e);
12520
12525
  this.Hr[i] = d;
@@ -12616,8 +12621,11 @@
12616
12621
  needToRetireFrames: function() {
12617
12622
  return !!this.painter && this.painter.needToRetireFrames();
12618
12623
  },
12619
- needToRefreshTerrainTile: function() {
12620
- return !!this.painter && this.painter.needToRefreshTerrainTile();
12624
+ isAnimating() {
12625
+ return !!this.painter && this.painter.isAnimating();
12626
+ },
12627
+ needToRefreshTerrainTileOnZooming: function() {
12628
+ return !!this.painter && this.painter.needToRefreshTerrainTileOnZooming();
12621
12629
  },
12622
12630
  isTerrainSkin: function() {
12623
12631
  return !!this.painter && this.painter.isTerrainSkin();
@@ -12635,7 +12643,7 @@
12635
12643
  const i = e[n];
12636
12644
  if (o = t[i].symbol, a = h[i], !a) if (l) {
12637
12645
  let e;
12638
- e = "function" == typeof l ? l(t[i].feature && t[i].feature.properties) : l, e = It(e),
12646
+ e = "function" == typeof l ? l(t[i].feature && t[i].feature.properties) : l, e = Ot(e),
12639
12647
  a = h[i] = e.array();
12640
12648
  } else a = h[i] = [ 255, 255, 255 ];
12641
12649
  u = 4 * n, s[u] = a[0], s[u + 1] = a[1], s[u + 2] = a[2], s[u + 3] = 255 * (o[this.painter.opacitySymbol] || 1);
@@ -12644,7 +12652,7 @@
12644
12652
  },
12645
12653
  Gr: function(t) {
12646
12654
  const e = t.tileInfo;
12647
- return e.meshKey || (e.meshKey = Oc++), e.meshKey;
12655
+ return e.meshKey || (e.meshKey = Ic++), e.meshKey;
12648
12656
  },
12649
12657
  he: function(t) {
12650
12658
  return this.Hr[t];
@@ -12763,7 +12771,7 @@
12763
12771
  if (void 0 !== n.r && void 0 !== n.g && void 0 !== n.b && void 0 !== n.a) {
12764
12772
  return [ n.r, n.g, n.b, n.a ];
12765
12773
  }
12766
- const i = It(n).unitArray();
12774
+ const i = Ot(n).unitArray();
12767
12775
  return 3 === i.length && 4 === e && i.push(1), t && (t[n] = i), i;
12768
12776
  }
12769
12777
  function Wc(t, e, n, i) {
@@ -12948,7 +12956,7 @@
12948
12956
  break;
12949
12957
  }
12950
12958
  if (!m) return pf;
12951
- const g = yf.set(f, d), v = o.queryTilePointTerrain(r, m, g, u, h), x = null === v[0] ? Ol : v[0];
12959
+ const g = yf.set(f, d), v = o.queryTilePointTerrain(r, m, g, u, h), x = null === v[0] ? Il : v[0];
12952
12960
  if (x) {
12953
12961
  let i = n.vec3.set(mf, r.x, r.y, 0);
12954
12962
  return i[2] += 100 * x, i = uf(t, i, a, e.width, e.height), i;
@@ -12960,7 +12968,7 @@
12960
12968
  return t.extent2d.contains(r);
12961
12969
  }
12962
12970
  const {loginIBLResOnCanvas: xf, logoutIBLResOnCanvas: bf, getIBLResOnCanvas: wf} = n.reshader.pbr.PBRUtils, Af = [], Mf = [], _f = new r.Point(0, 0), Sf = new r.Point(0, 0), kf = new Float32Array(1), Pf = [], Tf = t => 0 === t.properties.level, Ff = t => t.properties.level > 0;
12963
- class If {
12971
+ class Of {
12964
12972
  static getBloomSymbol() {
12965
12973
  return [ "bloom" ];
12966
12974
  }
@@ -12974,7 +12982,7 @@
12974
12982
  y: 0,
12975
12983
  width: () => this.canvas ? this.canvas.width : 1,
12976
12984
  height: () => this.canvas ? this.canvas.height : 1
12977
- }, this.sortByCommandKey = Of.bind(this), this.colorCache = {}, this.ns = this.symbolDef.map(t => !(!t || !1 !== t.visible));
12985
+ }, this.sortByCommandKey = If.bind(this), this.colorCache = {}, this.ns = this.symbolDef.map(t => !(!t || !1 !== t.visible));
12978
12986
  }
12979
12987
  getMap() {
12980
12988
  return this.layer ? this.layer.getMap() : null;
@@ -13019,7 +13027,7 @@
13019
13027
  needToRetireFrames() {
13020
13028
  return this.be;
13021
13029
  }
13022
- needToRefreshTerrainTile() {
13030
+ needToRefreshTerrainTileOnZooming() {
13023
13031
  return !0;
13024
13032
  }
13025
13033
  isTerrainSkin() {
@@ -13537,7 +13545,7 @@
13537
13545
  cancelAllHighlight() {
13538
13546
  this.Sn = null, this.Fs = this.layer.getRenderer().getFrameTimestamp(), this.setToRedraw(!0);
13539
13547
  }
13540
- Is(t, e) {
13548
+ Os(t, e) {
13541
13549
  const {featureIds: n, pickingIdIndiceMap: i} = e;
13542
13550
  t.properties.aFeaIds = n, t.properties.pickingIdIndiceMap = i;
13543
13551
  }
@@ -13572,13 +13580,13 @@
13572
13580
  s = n.aAnchor = t.slice(0);
13573
13581
  }
13574
13582
  let o = n.aTerrainAltitude;
13575
- o || (o = n.aTerrainAltitude = new Float32Array(s.length / i), o.fill(Ol)), this.Os(o, s, r.tileInfo, 0, o.length - 1),
13583
+ o || (o = n.aTerrainAltitude = new Float32Array(s.length / i), o.fill(Il)), this.Is(o, s, r.tileInfo, 0, o.length - 1),
13576
13584
  e.aTerrainAltitude ? o.dirty && this.Cs(t, o) : e.aTerrainAltitude = o, o.dirty = !1;
13577
13585
  }
13578
13586
  Cs(t, e) {
13579
13587
  t && t.updateData && t.updateData("aTerrainAltitude", e);
13580
13588
  }
13581
- Os(t, e, n, i, s) {
13589
+ Is(t, e, n, i, s) {
13582
13590
  const {res: o, extent: a, extent2d: l, id: h} = n, u = this.pluginIndex, c = h + "-" + u;
13583
13591
  if (n.completeTerrainQuery || (n.completeTerrainQuery = []), n.completeTerrainQuery[u]) return;
13584
13592
  if (!n.completeTerrainQuery[u] && this.ps && this.ps.has(c)) {
@@ -13621,8 +13629,8 @@
13621
13629
  l = m[t];
13622
13630
  break;
13623
13631
  }
13624
- l && (y.getRenderer().isTileCached(l.id) || t[n] === Ol) && (Sf.set(i, r), h = this.layer.queryTilePointTerrain(Sf, l, M, a, o)),
13625
- u = t[n], h && (u = null === h[0] ? Ol : h[0], kf[0] = u, u = kf[0]), t[n] !== u && (t[n] = u,
13632
+ l && (y.getRenderer().isTileCached(l.id) || t[n] === Il) && (Sf.set(i, r), h = this.layer.queryTilePointTerrain(Sf, l, M, a, o)),
13633
+ u = t[n], h && (u = null === h[0] ? Il : h[0], kf[0] = u, u = kf[0]), t[n] !== u && (t[n] = u,
13626
13634
  t.dirty = !0), h && h[1] ? k.set(s, u) : P = !1;
13627
13635
  }
13628
13636
  }
@@ -13634,14 +13642,14 @@
13634
13642
  }));
13635
13643
  }
13636
13644
  }
13637
- function Of(t, e) {
13645
+ function If(t, e) {
13638
13646
  const n = t && t.getCommandKey(this.regl) || "", i = e && e.getCommandKey(this.regl) || "";
13639
13647
  return n.localeCompare(i);
13640
13648
  }
13641
13649
  function Cf(t, e) {
13642
13650
  return t.properties.level - e.properties.level;
13643
13651
  }
13644
- class Ef extends If {
13652
+ class Ef extends Of {
13645
13653
  createGeometry(t, e) {
13646
13654
  if (!t.data) return {
13647
13655
  geometry: null,
@@ -13659,7 +13667,7 @@
13659
13667
  features: e
13660
13668
  }, t.iconAtlas && (s.properties.iconAtlas = t.iconAtlas.image, s.properties.iconPositions = t.iconAtlas.positions),
13661
13669
  t.glyphAtlas && (s.properties.glyphAtlas = t.glyphAtlas.image), qc(e) || (s.properties.aFeaIds = t.featureIds,
13662
- this.Is(s, t)), t.markerPlacement && (s.properties.markerPlacement = t.markerPlacement),
13670
+ this.Os(s, t)), t.markerPlacement && (s.properties.markerPlacement = t.markerPlacement),
13663
13671
  t.textPlacement && (s.properties.textPlacement = t.textPlacement), Dc(s.properties, t.properties),
13664
13672
  {
13665
13673
  geometry: s,
@@ -13796,7 +13804,7 @@
13796
13804
  define: "HAS_COLOR",
13797
13805
  evaluate: (e, i) => {
13798
13806
  let r = n(t.getZoom(), e);
13799
- return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || It(r).unitArray()),
13807
+ return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || Ot(r).unitArray()),
13800
13808
  r = Vc(r), r;
13801
13809
  }
13802
13810
  }, {
@@ -13933,9 +13941,6 @@
13933
13941
  const i = t.lineDashColor;
13934
13942
  Array.isArray(i) && (3 === i.length && i.push(1), t.lineDashColor = i.map(t => 255 * t));
13935
13943
  }
13936
- needToRefreshTerrainTile() {
13937
- return !0;
13938
- }
13939
13944
  isAnimating() {
13940
13945
  if (this.Ds) return !0;
13941
13946
  const t = this.getSymbols(), e = this.sceneConfig.trailAnimation;
@@ -14030,7 +14035,7 @@
14030
14035
  define: "HAS_COLOR",
14031
14036
  evaluate: (e, i) => {
14032
14037
  let r = n(t.getZoom(), e);
14033
- return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || It(r).unitArray()),
14038
+ return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || Ot(r).unitArray()),
14034
14039
  r = Vc(r), r;
14035
14040
  }
14036
14041
  }, {
@@ -14617,17 +14622,17 @@
14617
14622
  const t = this.layer.getRenderer();
14618
14623
  this._o = this.scene.getMeshes().filter(e => !t.isForeground(e) && !e.properties.isLinePlacement);
14619
14624
  } else e && !this.io && (this.Fo = t.getResolution());
14620
- if (e) this.Io && (clearTimeout(this.Io), delete this.oo, delete this.Io), this.oo = this.Fo && t.getResolution() > this.Fo; else if (this.io && !this.Io) {
14625
+ if (e) this.Oo && (clearTimeout(this.Oo), delete this.oo, delete this.Oo), this.oo = this.Fo && t.getResolution() > this.Fo; else if (this.io && !this.Oo) {
14621
14626
  let {fadeOutDelay: t, fadingDuration: e} = this.sceneConfig;
14622
- zc(t) && (t = td), zc(e) && (e = Kf), this.Io = setTimeout(() => {
14623
- delete this.oo, delete this.Io;
14627
+ zc(t) && (t = td), zc(e) && (e = Kf), this.Oo = setTimeout(() => {
14628
+ delete this.oo, delete this.Oo;
14624
14629
  }, t + e + 1);
14625
14630
  }
14626
14631
  this.io = e;
14627
14632
  }
14628
14633
  To(t) {
14629
14634
  if (!this.Ao || !this.layer.options.debugCollision) return;
14630
- this.bo || this.Oo();
14635
+ this.bo || this.Io();
14631
14636
  const {aPosition: e, aVisible: i, indices: r} = this.Ao;
14632
14637
  if (!this.vo) {
14633
14638
  const t = new n.reshader.Geometry({
@@ -14645,7 +14650,7 @@
14645
14650
  size: [ this.canvas.width, this.canvas.height ]
14646
14651
  }, this.Co, this.getRenderFBO(t)), delete this.Ao;
14647
14652
  }
14648
- Oo() {
14653
+ Io() {
14649
14654
  const t = this.regl;
14650
14655
  this.bo = new n.reshader.Renderer(t);
14651
14656
  const e = this.canvas, i = {
@@ -14837,8 +14842,8 @@
14837
14842
  m = Lc(.5 + .5 * (1 - (1 - a / y) * o.markerPerspectiveRatio), 0, 4);
14838
14843
  }
14839
14844
  const {aShape: g, aMarkerDx: v, aMarkerDy: x, aMarkerWidth: b, aMarkerHeight: w, aPitchAlign: A, aRotationAlign: M, aRotation: _} = l, S = v ? v[i] : h.markerDx, k = x ? x[i] : h.markerDy, P = A ? A[i] : o.pitchWithMap, T = M ? M[i] : o.rotateWithMap, F = n.vec2.set(kd, S || 0, -(k || 0));
14840
- let I = n.vec2.set(Ad, g[2 * i] / 10, g[2 * i + 1] / 10), O = n.vec2.set(Md, g[2 * i + 2] / 10, g[2 * i + 3] / 10), C = n.vec2.set(_d, g[2 * i + 4] / 10, g[2 * i + 5] / 10), E = n.vec2.set(Sd, g[2 * i + 6] / 10, g[2 * i + 7] / 10);
14841
- 0 === o.flipY && 1 === P && (n.vec2.multiply(I, I, Pd), n.vec2.multiply(O, O, Pd),
14845
+ let O = n.vec2.set(Ad, g[2 * i] / 10, g[2 * i + 1] / 10), I = n.vec2.set(Md, g[2 * i + 2] / 10, g[2 * i + 3] / 10), C = n.vec2.set(_d, g[2 * i + 4] / 10, g[2 * i + 5] / 10), E = n.vec2.set(Sd, g[2 * i + 6] / 10, g[2 * i + 7] / 10);
14846
+ 0 === o.flipY && 1 === P && (n.vec2.multiply(O, O, Pd), n.vec2.multiply(I, I, Pd),
14842
14847
  n.vec2.multiply(C, C, Pd), n.vec2.multiply(E, E, Pd));
14843
14848
  const [D, L] = Rf(e.geometry);
14844
14849
  let N = b ? b[i] : h.markerWidth;
@@ -14846,19 +14851,19 @@
14846
14851
  let z = w ? w[i] : h.markerHeight;
14847
14852
  zc(z) && (z = L || 15);
14848
14853
  const R = n.vec2.set(Td, N / 2048, z / 2048);
14849
- n.vec2.mul(I, I, R), n.vec2.mul(O, O, R), n.vec2.mul(C, C, R), n.vec2.mul(E, E, R);
14854
+ n.vec2.mul(O, O, R), n.vec2.mul(I, I, R), n.vec2.mul(C, C, R), n.vec2.mul(E, E, R);
14850
14855
  const H = -(_ ? _[i] / 9362 : -(h.markerRotation || 0) * Math.PI / 180), j = s.getBearing() * Math.PI / 180;
14851
14856
  if (j * T || H) {
14852
14857
  const t = vd(wd, H, j, T, P);
14853
- I = n.vec2.transformMat2(I, I, t), O = n.vec2.transformMat2(O, O, t), C = n.vec2.transformMat2(C, C, t),
14858
+ O = n.vec2.transformMat2(O, O, t), I = n.vec2.transformMat2(I, I, t), C = n.vec2.transformMat2(C, C, t),
14854
14859
  E = n.vec2.transformMat2(E, E, t);
14855
14860
  }
14856
- 1 === P ? md(t, f, I, O, C, E, r, F, o, s, y, m) : (n.vec2.multiply(I, I, Pd), n.vec2.multiply(O, O, Pd),
14857
- n.vec2.multiply(C, C, Pd), n.vec2.multiply(E, E, Pd), gd(t, p, I, O, C, E, F, m));
14861
+ 1 === P ? md(t, f, O, I, C, E, r, F, o, s, y, m) : (n.vec2.multiply(O, O, Pd), n.vec2.multiply(I, I, Pd),
14862
+ n.vec2.multiply(C, C, Pd), n.vec2.multiply(E, E, Pd), gd(t, p, O, I, C, E, F, m));
14858
14863
  const V = this.getMap().getDevicePixelRatio();
14859
14864
  return 1 !== V && (t[0] *= V, t[1] *= V, t[2] *= V, t[3] *= V), t;
14860
14865
  }
14861
- const Id = [], Od = [], Cd = [], Ed = [], Dd = [], Ld = [], Nd = [ 1, -1 ];
14866
+ const Od = [], Id = [], Cd = [], Ed = [], Dd = [], Ld = [], Nd = [ 1, -1 ];
14862
14867
  function zd(t, e, i, r, s, o, a, l, h) {
14863
14868
  const u = r.material.uniforms, c = h.cameraToCenterDistance, f = r.geometry.properties, d = this.getSymbol(f.symbolIndex), p = "line" === d.textPlacement && !$c(d), y = i[2];
14864
14869
  let m = 1;
@@ -14869,9 +14874,9 @@
14869
14874
  if (p) {
14870
14875
  const {aOffset: r, aShape: s} = f, o = r.length !== s.length;
14871
14876
  let c, d, p, g;
14872
- if (o ? (c = n.vec3.set(Od, r[3 * a] / 10, r[3 * a + 1] / 10, r[3 * a + 2] / 10),
14877
+ if (o ? (c = n.vec3.set(Id, r[3 * a] / 10, r[3 * a + 1] / 10, r[3 * a + 2] / 10),
14873
14878
  d = n.vec3.set(Cd, r[3 * a + 3] / 10, r[3 * a + 4] / 10, r[3 * a + 5] / 10), p = n.vec3.set(Ed, r[3 * a + 6] / 10, r[3 * a + 7] / 10, r[3 * a + 8] / 10),
14874
- g = n.vec3.set(Dd, r[3 * a + 9] / 10, r[3 * a + 10] / 10, r[3 * a + 11] / 10)) : (c = n.vec2.set(Od, r[2 * a] / 10, r[2 * a + 1] / 10),
14879
+ g = n.vec3.set(Dd, r[3 * a + 9] / 10, r[3 * a + 10] / 10, r[3 * a + 11] / 10)) : (c = n.vec2.set(Id, r[2 * a] / 10, r[2 * a + 1] / 10),
14875
14880
  d = n.vec2.set(Cd, r[2 * a + 2] / 10, r[2 * a + 3] / 10), p = n.vec2.set(Ed, r[2 * a + 4] / 10, r[2 * a + 5] / 10),
14876
14881
  g = n.vec2.set(Dd, r[2 * a + 6] / 10, r[2 * a + 7] / 10)), 1 === _) {
14877
14882
  const n = L(h.getResolution(), h);
@@ -14880,12 +14885,12 @@
14880
14885
  n.vec2.multiply(g, g, Nd), gd(t, i, c, d, p, g, k, m);
14881
14886
  } else {
14882
14887
  const {aShape: r} = f;
14883
- let o = n.vec2.set(Od, r[2 * a] / 10, -r[2 * a + 1] / 10), c = n.vec2.set(Cd, r[2 * a + 2] / 10, -r[2 * a + 3] / 10), g = n.vec2.set(Ed, r[2 * a + 4] / 10, -r[2 * a + 5] / 10), v = n.vec2.set(Dd, r[2 * a + 6] / 10, -r[2 * a + 7] / 10);
14888
+ let o = n.vec2.set(Id, r[2 * a] / 10, -r[2 * a + 1] / 10), c = n.vec2.set(Cd, r[2 * a + 2] / 10, -r[2 * a + 3] / 10), g = n.vec2.set(Ed, r[2 * a + 4] / 10, -r[2 * a + 5] / 10), v = n.vec2.set(Dd, r[2 * a + 6] / 10, -r[2 * a + 7] / 10);
14884
14889
  0 === u.flipY && 1 === _ && (n.vec2.multiply(o, o, Nd), n.vec2.multiply(c, c, Nd),
14885
14890
  n.vec2.multiply(g, g, Nd), n.vec2.multiply(v, v, Nd));
14886
14891
  const x = w ? w[a] / 9362 : (d.textRotation || 0) * Math.PI / 180, b = p ? 0 : h.getBearing() * Math.PI / 180;
14887
14892
  if (x || b) {
14888
- const t = vd(Id, x, b, S, _);
14893
+ const t = vd(Od, x, b, S, _);
14889
14894
  o = n.vec2.transformMat2(o, o, t), c = n.vec2.transformMat2(c, c, t), g = n.vec2.transformMat2(g, g, t),
14890
14895
  v = n.vec2.transformMat2(v, v, t);
14891
14896
  }
@@ -15127,7 +15132,7 @@
15127
15132
  width: 4,
15128
15133
  evaluate: (e, i) => {
15129
15134
  let r = n(t.getZoom(), e);
15130
- return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = y[r] = y[r] || It(r).unitArray()),
15135
+ return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = y[r] = y[r] || Ot(r).unitArray()),
15131
15136
  r = Vc(r), r;
15132
15137
  }
15133
15138
  }, {
@@ -15148,7 +15153,7 @@
15148
15153
  width: 4,
15149
15154
  evaluate: e => {
15150
15155
  let n = r(t.getZoom(), e);
15151
- return Array.isArray(n) || (n = y[n] = y[n] || It(n).unitArray()), n = Vc(n), n;
15156
+ return Array.isArray(n) || (n = y[n] = y[n] || Ot(n).unitArray()), n = Vc(n), n;
15152
15157
  }
15153
15158
  }, {
15154
15159
  attrName: "aTextHaloRadius",
@@ -15640,7 +15645,7 @@
15640
15645
  this.ms = {}, this.isLabelCollides = qd.bind(this), this.Go = hp.bind(this), this.Wo = up.bind(this),
15641
15646
  this.Xo = cp.bind(this), this.$o = fp.bind(this), this.Bo = [];
15642
15647
  }
15643
- needToRefreshTerrainTile() {
15648
+ needToRefreshTerrainTileOnZooming() {
15644
15649
  for (let t = 0; t < this.symbolDef.length; t++) {
15645
15650
  const e = this.symbolDef[t].markerPitchAlignment;
15646
15651
  if ("map" === e || x(e) || uo.isExpression(e)) return !0;
@@ -15648,10 +15653,10 @@
15648
15653
  return !1;
15649
15654
  }
15650
15655
  isTerrainVector() {
15651
- return this.layer.options.awareOfTerrain && !this.needToRefreshTerrainTile();
15656
+ return this.layer.options.awareOfTerrain && !this.needToRefreshTerrainTileOnZooming();
15652
15657
  }
15653
15658
  isTerrainSkin() {
15654
- return super.isTerrainSkin() && this.needToRefreshTerrainTile();
15659
+ return super.isTerrainSkin() && this.needToRefreshTerrainTileOnZooming();
15655
15660
  }
15656
15661
  setTextShaderDefines(t) {
15657
15662
  this.Yo = t;
@@ -15936,7 +15941,7 @@
15936
15941
  if (t.geometry.properties.isEmpty) return pp;
15937
15942
  const {aTerrainAltitude: o} = t.geometry.properties;
15938
15943
  if (o) {
15939
- if (o[2 * e[i]] === Ol) return pp;
15944
+ if (o[2 * e[i]] === Il) return pp;
15940
15945
  }
15941
15946
  const a = this.getMap(), {boxes: l, collision: h} = this.zo(t, i);
15942
15947
  let u = 0, c = 0, f = 0;
@@ -16084,13 +16089,13 @@
16084
16089
  let w = b > 0 ? 1 : -1, A = 0;
16085
16090
  f && (w *= -1, A = Math.PI), w < 0 && (A += Math.PI);
16086
16091
  const M = h + u, _ = Math.abs(b);
16087
- let S = w > 0 ? l : l + 1, k = N.convert(i), P = N.convert(i), T = N.convert(r), F = N.convert(r), I = 0, O = 0;
16088
- for (;I + O <= _; ) {
16092
+ let S = w > 0 ? l : l + 1, k = N.convert(i), P = N.convert(i), T = N.convert(r), F = N.convert(r), O = 0, I = 0;
16093
+ for (;O + I <= _; ) {
16089
16094
  if (S += w, S < h || S >= M) return null;
16090
16095
  P.x = k.x, P.y = k.y, F.x = T.x, F.y = T.y, k.x = n[3 * S], k.y = n[3 * S + 1],
16091
- T.x = v[3 * S], T.y = v[3 * S + 1], I += O, O = P.dist(k) / d;
16096
+ T.x = v[3 * S], T.y = v[3 * S + 1], O += I, I = P.dist(k) / d;
16092
16097
  }
16093
- const C = (_ - I) / O, E = y && y.getRenderer(), D = E && E.getTerrainHelper(), L = e.properties.tile.terrainTileInfos;
16098
+ const C = (_ - O) / I, E = y && y.getRenderer(), D = E && E.getTerrainHelper(), L = e.properties.tile.terrainTileInfos;
16094
16099
  if (!g && D) {
16095
16100
  const {extent: n} = e.properties.tile, i = y.getTileSize().width / n, r = y.getMap();
16096
16101
  let s = T.sub(F).mult(C).o(F);
@@ -16124,10 +16129,10 @@
16124
16129
  }, Fp = function(t) {
16125
16130
  const e = this.layer.getRenderer();
16126
16131
  return !this.jo(t) && !e.isForeground(t) && "line" !== t.geometry.properties.textPlacement;
16127
- }, Ip = function(t) {
16132
+ }, Op = function(t) {
16128
16133
  const e = this.layer.getRenderer();
16129
16134
  return !this.jo(t) && e.isTileNearCamera(t) && "line" === t.geometry.properties.textPlacement;
16130
- }, Op = function(t) {
16135
+ }, Ip = function(t) {
16131
16136
  const e = this.layer.getRenderer(), n = t.properties.tile.z, i = e.getCurrentTileZoom();
16132
16137
  return !this.jo(t) && !e.isForeground(t) && "line" === t.geometry.properties.textPlacement && n < i;
16133
16138
  }, Cp = [ 0, 0, 3 ], Ep = [], Dp = [], Lp = [], Np = [], zp = [], Rp = [], Hp = [], jp = [], Vp = [ 1, -1 ], Up = new Int16Array(3), Gp = [], Wp = [], Xp = [], $p = [], Bp = [], Yp = [], qp = [], Jp = {}, Zp = {}, Kp = {}, Qp = [], ty = [], ey = n.mat4.identity([]), ny = [];
@@ -16137,8 +16142,8 @@
16137
16142
  }
16138
16143
  constructor(t, e, n, i, r, s) {
16139
16144
  super(t, e, n, i, r, s), this.propAllowOverlap = "textAllowOverlap", this.propIgnorePlacement = "textIgnorePlacement",
16140
- this.colorCache = {}, this.la = Tp.bind(this), this.ha = Fp.bind(this), this.ua = Ip.bind(this),
16141
- this.ca = Op.bind(this), this.isLabelCollides = qd.bind(this), this.fa();
16145
+ this.colorCache = {}, this.la = Tp.bind(this), this.ha = Fp.bind(this), this.ua = Op.bind(this),
16146
+ this.ca = Ip.bind(this), this.isLabelCollides = qd.bind(this), this.fa();
16142
16147
  }
16143
16148
  prepareRender(...t) {
16144
16149
  super.prepareRender(...t);
@@ -16352,23 +16357,23 @@
16352
16357
  let F;
16353
16358
  if (T) {
16354
16359
  const t = T[_];
16355
- if (t === Ol) return w[3 * _] = -999999, w[3 * _ + 1] = -999999, w[3 * _ + 2] = -999999,
16360
+ if (t === Il) return w[3 * _] = -999999, w[3 * _ + 1] = -999999, w[3 * _ + 2] = -999999,
16356
16361
  !1;
16357
16362
  t ? (F = n.vec3.set(ty, ...k), F[2] = 100 * t, F = uf(F, F, o, d.width, d.height)) : F = P;
16358
16363
  } else F = P;
16359
- const I = d.getDevicePixelRatio();
16360
- if (n.vec4.scale(ny, F, 1 / I), d.isOffscreen(ny)) return f || ry(g, e, i, r), w[3 * _] = -999999,
16364
+ const O = d.getDevicePixelRatio();
16365
+ if (n.vec4.scale(ny, F, 1 / O), d.isOffscreen(ny)) return f || ry(g, e, i, r), w[3 * _] = -999999,
16361
16366
  w[3 * _ + 1] = -999999, w[3 * _ + 2] = -999999, !1;
16362
16367
  M && (k = P), w[3 * _] = F[0], w[3 * _ + 1] = F[1], w[3 * _ + 2] = F[2];
16363
- const O = M ? 1 : p.properties.tileExtent / this.layer.getTileSize().width;
16368
+ const I = M ? 1 : p.properties.tileExtent / this.layer.getTileSize().width;
16364
16369
  let C = !0;
16365
- const E = e[i], D = e[r - 1], L = A ? A[E] : t.properties.textSize, N = this._a(t, L, s, E, D, k, Np, O, a);
16370
+ const E = e[i], D = e[r - 1], L = A ? A[E] : t.properties.textSize, N = this._a(t, L, s, E, D, k, Np, I, a);
16366
16371
  if (null === N) return ry(g, e, i, r), !1;
16367
16372
  const z = D - E <= 3, R = Math.floor(N / 2), H = N % 2;
16368
16373
  for (let a = i; a < r; a += 6) {
16369
16374
  const l = e[a];
16370
16375
  let d;
16371
- if (d = R || a !== i || z || c ? R || a !== r - 6 || z || c ? Mp.call(this, Dp, t, L, s, l, k, Np, O, R, F, this.layer, o, u) : qp : Yp,
16376
+ if (d = R || a !== i || z || c ? R || a !== r - 6 || z || c ? Mp.call(this, Dp, t, L, s, l, k, Np, I, R, F, this.layer, o, u) : qp : Yp,
16372
16377
  !d) {
16373
16378
  C = !1, f || ry(g, e, i, r);
16374
16379
  break;
@@ -16494,7 +16499,7 @@
16494
16499
  const n = t.properties.level - e.properties.level;
16495
16500
  return 0 === n ? t.properties.meshKey - e.properties.meshKey : n;
16496
16501
  }
16497
- var oy = "#define SHADER_NAME NATIVE_POINT\n#include <gl2_vert>\n#ifdef HAS_ALTITUDE\nattribute vec2 aPosition;\nattribute float aAltitude;\n#else\nattribute vec3 aPosition;\n#endif\nuniform mat4 positionMatrix;\nuniform mat4 projViewModelMatrix;\nuniform float markerSize;\n#ifdef PICKING_MODE\n#include <fbo_picking_vert>\n#endif\n#include <vt_position_vert>\nvoid main() {\n vec3 c = unpackVTPosition();\n gl_Position = projViewModelMatrix * positionMatrix * vec4(c, 1.);\n gl_PointSize = markerSize;\n#ifdef PICKING_MODE\nfbo_picking_setData(gl_Position.w, true);\n#endif\n}";
16502
+ var oy = "#define SHADER_NAME NATIVE_POINT\n#include <gl2_vert>\n#ifdef HAS_ALTITUDE\nattribute vec2 aPosition;\nattribute float aAltitude;\n#else\nattribute vec3 aPosition;\n#endif\n#ifdef HAS_COLOR\nattribute vec4 aColor;\nvarying vec4 vColor;\n#endif\nuniform mat4 positionMatrix;\nuniform mat4 projViewModelMatrix;\nuniform float markerSize;\n#ifdef PICKING_MODE\n#include <fbo_picking_vert>\n#endif\n#include <vt_position_vert>\nvoid main() {\n vec3 c = unpackVTPosition();\n gl_Position = projViewModelMatrix * positionMatrix * vec4(c, 1.);\n gl_PointSize = markerSize;\n#ifdef HAS_COLOR\nvColor = aColor / 255.;\n#endif\n#ifdef PICKING_MODE\nfbo_picking_setData(gl_Position.w, true);\n#endif\n}";
16498
16503
  const ay = {
16499
16504
  markerFill: [ 0, 0, 0 ],
16500
16505
  markerOpacity: 1,
@@ -16512,7 +16517,9 @@
16512
16517
  }
16513
16518
  createMesh(t, e) {
16514
16519
  const {geometry: i, symbolIndex: r, ref: s} = t, o = this.getSymbol(r);
16515
- void 0 === s && i.generateBuffers(this.regl);
16520
+ if (void 0 === s) {
16521
+ Zc(i, this.getSymbolDef(r), this.getFnTypeConfig(r)), i.generateBuffers(this.regl);
16522
+ }
16516
16523
  const a = {};
16517
16524
  Hc(a, "markerOpacity", o, "markerOpacity", 1), Hc(a, "markerSize", o, "markerSize", 10),
16518
16525
  Hc(a, "markerFill", o, "markerFill", "#000", Uc(this.colorCache, 3));
@@ -16525,15 +16532,31 @@
16525
16532
  castShadow: !1,
16526
16533
  picking: !0
16527
16534
  }), u = {};
16528
- return h.geometry.data.aAltitude && (u.HAS_ALTITUDE = 1), h.setDefines(u), h.positionMatrix = this.getAltitudeOffsetMatrix(),
16529
- h.setLocalTransform(e), h.properties.symbolIndex = r, h;
16535
+ return h.geometry.data.aAltitude && (u.HAS_ALTITUDE = 1), i.data.aColor && (u.HAS_COLOR = 1),
16536
+ h.setDefines(u), h.positionMatrix = this.getAltitudeOffsetMatrix(), h.setLocalTransform(e),
16537
+ h.properties.symbolIndex = r, h;
16538
+ }
16539
+ createFnTypeConfig(t, e) {
16540
+ const n = w(e.markerFill);
16541
+ return [ {
16542
+ attrName: "aColor",
16543
+ symbolName: "markerFill",
16544
+ type: Uint8Array,
16545
+ width: 4,
16546
+ define: "HAS_COLOR",
16547
+ evaluate: (e, i) => {
16548
+ let r = n(t.getZoom(), e);
16549
+ return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || Ot(r).unitArray()),
16550
+ r = Vc(r), r;
16551
+ }
16552
+ } ];
16530
16553
  }
16531
16554
  init() {
16532
16555
  const t = this.regl;
16533
16556
  this.renderer = new n.reshader.Renderer(t);
16534
16557
  const e = [], i = {
16535
16558
  vert: oy,
16536
- frag: "#define SHADER_NAME NATIVE_POINT\nprecision mediump float;\n#include <gl2_frag>\n#ifdef USE_CIRCLE\n#if __VERSION__ == 100\n#ifdef GL_OES_standard_derivatives\n#define STANDARD_DERIVATIVES_ENABLED 1\n#extension GL_OES_standard_derivatives : enable\n#endif\n#else\n#define STANDARD_DERIVATIVES_ENABLED 1\n#endif\n#endif\nuniform vec3 markerFill;\nuniform float markerOpacity;\nuniform float layerOpacity;\nvoid main() {\n float c = 1.;\n#ifdef USE_CIRCLE\nfloat r = .0, d = .0;\n vec2 e = 2. * gl_PointCoord - 1.;\n r = dot(e, e);\n if(r > 1.) {\n discard;\n }\n#ifdef STANDARD_DERIVATIVES_ENABLED\nd = fwidth(r);\n c = 1. - smoothstep(1. - d, 1. + d, r);\n#endif\n#endif\nglFragColor = vec4(markerFill, 1.) * markerOpacity * c * layerOpacity;\n#if __VERSION__ == 100\ngl_FragColor = glFragColor;\n#endif\n}",
16559
+ frag: "#define SHADER_NAME NATIVE_POINT\nprecision mediump float;\n#include <gl2_frag>\n#ifdef USE_CIRCLE\n#if __VERSION__ == 100\n#ifdef GL_OES_standard_derivatives\n#define STANDARD_DERIVATIVES_ENABLED 1\n#extension GL_OES_standard_derivatives : enable\n#endif\n#else\n#define STANDARD_DERIVATIVES_ENABLED 1\n#endif\n#endif\n#ifdef HAS_COLOR\nvarying vec4 vColor;\n#else\nuniform vec3 markerFill;\n#endif\nuniform float markerOpacity;\nuniform float layerOpacity;\nvoid main() {\n float c = 1.;\n#ifdef USE_CIRCLE\nfloat r = .0, d = .0;\n vec2 e = 2. * gl_PointCoord - 1.;\n r = dot(e, e);\n if(r > 1.) {\n discard;\n }\n#ifdef STANDARD_DERIVATIVES_ENABLED\nd = fwidth(r);\n c = 1. - smoothstep(1. - d, 1. + d, r);\n#endif\n#endif\n#ifdef HAS_COLOR\nvec4 f = vColor;\n#else\nvec4 f = vec4(markerFill, 1.);\n#endif\nglFragColor = f * markerOpacity * c * layerOpacity;\n#if __VERSION__ == 100\ngl_FragColor = glFragColor;\n#endif\n}",
16537
16560
  uniforms: [ {
16538
16561
  name: "projViewModelMatrix",
16539
16562
  type: "function",
@@ -16685,7 +16708,7 @@
16685
16708
  }
16686
16709
  }
16687
16710
  const fy = [ 0, 0 ], dy = [ 1, 1, 1 ], py = [ 1, 1, 1, 1 ], yy = [ 0, 0 ], my = [];
16688
- class gy extends If {
16711
+ class gy extends Of {
16689
16712
  supportRenderMode(t) {
16690
16713
  return this.isAnimating() ? "fxaa" === t || "fxaaAfterTaa" === t : "taa" === t || "fxaa" === t;
16691
16714
  }
@@ -16857,7 +16880,7 @@
16857
16880
  define: "HAS_COLOR",
16858
16881
  evaluate: (e, i) => {
16859
16882
  let r = n(t.getZoom(), e);
16860
- return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || It(r).unitArray()),
16883
+ return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || Ot(r).unitArray()),
16861
16884
  r = Vc(r), r;
16862
16885
  }
16863
16886
  }, {
@@ -16919,7 +16942,7 @@
16919
16942
  e.aExtrusionOpacity = t;
16920
16943
  }
16921
16944
  const r = new n.reshader.Geometry(e, t.indices);
16922
- return Dc(r.properties, t.properties), this.Is(r, t), {
16945
+ return Dc(r.properties, t.properties), this.Os(r, t), {
16923
16946
  geometry: r,
16924
16947
  symbolIndex: {
16925
16948
  index: 0
@@ -17039,7 +17062,7 @@
17039
17062
  }
17040
17063
  }
17041
17064
  const wy = [ 1, 1, 1 ];
17042
- class Ay extends If {
17065
+ class Ay extends Of {
17043
17066
  createGeometry(t) {
17044
17067
  const {data: e, indices: i} = t, r = new n.reshader.Geometry(e, i, 0, {
17045
17068
  primitive: "lines"
@@ -17130,14 +17153,14 @@
17130
17153
  return this.getSymbols()[0].ssr ? "fxaa" === t || "fxaaAfterTaa" === t : super.supportRenderMode(t);
17131
17154
  }
17132
17155
  isAnimating() {
17133
- const t = this.Ia();
17156
+ const t = this.Oa();
17134
17157
  if (t && (t[0] || t[1])) return !0;
17135
17158
  }
17136
17159
  needToRedraw() {
17137
- const t = this.Ia();
17160
+ const t = this.Oa();
17138
17161
  return !(!t || !t[0] && !t[1]) || super.needToRedraw();
17139
17162
  }
17140
- Ia() {
17163
+ Oa() {
17141
17164
  const t = this.getSymbols()[0];
17142
17165
  return t.material && t.material.uvOffsetAnim;
17143
17166
  }
@@ -17150,7 +17173,7 @@
17150
17173
  const i = new n.reshader.Geometry(t.data, t.indices, 0, e);
17151
17174
  return Dc(i.properties, t.properties), t.vertexColors && (i.properties.vertexColors = t.vertexColors),
17152
17175
  this.material.uniforms.normalTexture && !i.data[i.desc.tangentAttribute] && (i.data[i.desc.normalAttribute] || i.createNormal(),
17153
- i.createTangent()), this.Is(i, t), {
17176
+ i.createTangent()), this.Os(i, t), {
17154
17177
  geometry: i,
17155
17178
  symbolIndex: {
17156
17179
  index: 0
@@ -17160,20 +17183,20 @@
17160
17183
  paint(t) {
17161
17184
  const e = !!t.shadow;
17162
17185
  t.states && t.states.includesChanged && (this.shader.dispose(), delete this.shader,
17163
- this.Oa.dispose(), delete this.Oa, this.Es(t));
17186
+ this.Ia.dispose(), delete this.Ia, this.Es(t));
17164
17187
  let n = !!t.ssr && this.getSymbols()[0].ssr;
17165
17188
  const i = this.shader, r = i.shaderDefines;
17166
17189
  if (n) {
17167
17190
  const e = Dc({}, r, t.ssr.defines);
17168
17191
  i.shaderDefines = e;
17169
17192
  }
17170
- if (t.onlyUpdateDepthInTaa && (this.shader = this.Oa, !n && this.Ca && (this.shader = i,
17193
+ if (t.onlyUpdateDepthInTaa && (this.shader = this.Ia, !n && this.Ca && (this.shader = i,
17171
17194
  this.setToRedraw(!0))), this.updateIBLDefines(i), super.paint(t), void 0 !== this.shadowCount && e) {
17172
17195
  const t = this.scene.getMeshes().length;
17173
17196
  this.shadowCount !== t && this.setToRedraw();
17174
17197
  }
17175
17198
  this.shader = i, n && (i.shaderDefines = r), delete this.shadowCount;
17176
- const s = this.Ia();
17199
+ const s = this.Oa();
17177
17200
  if (s && (s[0] || s[1])) this.material.set("uvOffset", [ 0, 0 ]); else {
17178
17201
  const t = this.getUVOffset(s);
17179
17202
  this.material.set("uvOffset", t);
@@ -17184,8 +17207,8 @@
17184
17207
  Dc(this.sceneConfig, t), this.setToRedraw();
17185
17208
  }
17186
17209
  delete() {
17187
- super.delete(), this.disposeIBLTextures(), this.material.dispose(), this.Oa && (this.Oa.dispose(),
17188
- delete this.Oa);
17210
+ super.delete(), this.disposeIBLTextures(), this.material.dispose(), this.Ia && (this.Ia.dispose(),
17211
+ delete this.Ia);
17189
17212
  }
17190
17213
  init(t) {
17191
17214
  this.getMap().on("updatelights", this.Ea, this), this.createIBLTextures(), this.zs = this.zs || t;
@@ -17254,7 +17277,7 @@
17254
17277
  extraCommandProps: s
17255
17278
  };
17256
17279
  this.shader = new n.reshader.pbr.StandardShader(o), o.frag = "\n precision mediump float;\n #include <gl2_frag>\n void main() {\n glFragColor = vec4(0.0);\n #if __VERSION__ == 100\n gl_FragColor = glFragColor;\n #endif\n }\n ",
17257
- this.Oa = new n.reshader.pbr.StandardShader(o);
17280
+ this.Ia = new n.reshader.pbr.StandardShader(o);
17258
17281
  }
17259
17282
  La({resources: t}) {
17260
17283
  for (let e = 0; e < t.length; e++) this.addCachedTexture(t[e].url, t[e].data);
@@ -17478,7 +17501,7 @@
17478
17501
  define: "HAS_COLOR",
17479
17502
  evaluate: (e, i) => {
17480
17503
  let r = n(t.getZoom(), e);
17481
- return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || It(r).unitArray()),
17504
+ return x(r) && (r = this.evaluateInFnTypeConfig(r, i, t, e, !0)), Array.isArray(r) || (r = this.colorCache[r] = this.colorCache[r] || Ot(r).unitArray()),
17482
17505
  r = Vc(r), r;
17483
17506
  }
17484
17507
  }, {
@@ -17544,7 +17567,7 @@
17544
17567
  delete this.shader);
17545
17568
  }
17546
17569
  }
17547
- const Ty = [], Fy = [], Iy = [], Oy = [], Cy = [], Ey = [ 0, 0, 0 ], Dy = [ 0, 0, 0 ], Ly = [ 1, 1, 1 ], Ny = [], zy = [ 1, 1, 1, 1 ], Ry = [], Hy = [ 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1 ], jy = t => class extends t {
17570
+ const Ty = [], Fy = [], Oy = [], Iy = [], Cy = [], Ey = [ 0, 0, 0 ], Dy = [ 0, 0, 0 ], Ly = [ 1, 1, 1 ], Ny = [], zy = [ 1, 1, 1, 1 ], Ry = [], Hy = [ 1, 0, 0, 0, 0, 0, 1, 0, 0, -1, 0, 0, 0, 0, 0, 1 ], jy = t => class extends t {
17548
17571
  constructor(t, e, i, r, s, o) {
17549
17572
  super(t, e, i, r, s, o), this.ja = !1, this.scene.sortFunction = this.sortByCommandKey,
17550
17573
  this.Va = [], this.Ua = new n.reshader.GLTFManager(t), this.Ga(), this.Wa();
@@ -17634,10 +17657,10 @@
17634
17657
  }
17635
17658
  return P;
17636
17659
  });
17637
- const T = this.layer.getRenderer().getZScale(), F = [], I = [];
17660
+ const T = this.layer.getRenderer().getZScale(), F = [], O = [];
17638
17661
  return k.setLocalTransform(() => {
17639
17662
  const t = this.layer.options.altitude || 0;
17640
- return n.vec3.copy(I, g), I[2] += 100 * t * T, n.mat4.translate(F, i, I), F;
17663
+ return n.vec3.copy(O, g), O[2] += 100 * t * T, n.mat4.translate(F, i, O), F;
17641
17664
  }), p.generateBuffers(this.regl, {
17642
17665
  excludeElementsInVAO: !0
17643
17666
  }), m.instance_color && (S.HAS_INSTANCE_COLOR = 1), m.aTerrainAltitude && (S.HAS_INSTANCE_TERRAIN_ALTITUDE = 1,
@@ -17723,13 +17746,13 @@
17723
17746
  e[0] < g && (g = e[0]), e[0] > b && (b = e[0]), e[1] < v && (v = e[1]), e[1] > w && (w = e[1]),
17724
17747
  e[2] < x && (x = e[2]), e[2] > A && (A = e[2]);
17725
17748
  }
17726
- const S = (g + b) / 2, k = (v + w) / 2, P = (x + A) / 2, T = [], F = this.Ya(), I = [ 0, 0, 1 ];
17749
+ const S = (g + b) / 2, k = (v + w) / 2, P = (x + A) / 2, T = [], F = this.Ya(), O = [ 0, 0, 1 ];
17727
17750
  for (let e = 0; e < d; e++) {
17728
17751
  o ? n.vec3.set(_, s[e * h], s[e * h + 1], o[e]) : dl.unpackPosition(_, s[e * h], s[e * h + 1], s[e * h + 2]);
17729
17752
  const i = _[0], r = _[1], d = n.vec3.set(M, i * p - S, -r * p - k, (_[2] + m) * y - P), g = a && a[e] || 0, v = l && l[e] || 0;
17730
17753
  if (g || v) {
17731
- n.mat4.fromRotation(T, v, I);
17732
- const t = n.vec3.set(Ty, i, r, 0), e = n.vec3.normalize(t, n.vec3.cross(t, t, I));
17754
+ n.mat4.fromRotation(T, v, O);
17755
+ const t = n.vec3.set(Ty, i, r, 0), e = n.vec3.normalize(t, n.vec3.cross(t, t, O));
17733
17756
  n.mat4.rotate(T, T, g, e);
17734
17757
  const s = n.mat4.fromTranslation(Ry, d);
17735
17758
  n.mat4.multiply(T, s, T);
@@ -17757,9 +17780,9 @@
17757
17780
  this.sl && (l = this.sl(x, b)), this.ol && (h = this.ol(x, b)), this.al && (u = this.al(x, b));
17758
17781
  const w = n.vec3.set(Fy, l * a, h * a, u * a);
17759
17782
  this.ll && (c = this.ll(x, b)), this.hl && (f = this.hl(x, b)), this.ul && (d = this.ul(x, b));
17760
- const A = n.vec3.set(Iy, c, f, d);
17783
+ const A = n.vec3.set(Oy, c, f, d);
17761
17784
  this.cl && (p = this.cl(x, b)), this.fl && (y = this.fl(x, b)), this.dl && (m = this.dl(x, b));
17762
- const M = n.vec3.set(Oy, p, y, m);
17785
+ const M = n.vec3.set(Iy, p, y, m);
17763
17786
  return this.pl(t, w, A, M);
17764
17787
  }
17765
17788
  getShaderConfig() {
@@ -18214,7 +18237,7 @@
18214
18237
  hm.registerAt(ah), bh.registerPainter("lit", _y), bh.registerPainter("icon", vp),
18215
18238
  bh.registerPainter("fill", Uf), bh.registerPainter("line", $f), bh.registerPainter("line-gradient", Bf),
18216
18239
  bh.registerPainter("water", Yy), bh.registerPainter("tube", Py), n.reshader.ShaderLib.register("vt_position_vert", "#ifdef HAS_TERRAIN_ALTITUDE\n attribute float aTerrainAltitude;\n#endif\nuniform float minAltitude;\n#ifdef HAS_ALTITUDE\n vec3 unpackVTPosition() {\n float altitude = aAltitude;\n #ifdef HAS_TERRAIN_ALTITUDE\n altitude += aTerrainAltitude * 100.0;\n #endif\n altitude += minAltitude * 100.0;\n return vec3(aPosition, altitude);\n }\n#else\n float position_modValue = 16384.0;\n float position_delta = 0.00001;\n vec3 unpackVTPosition() {\n float z = aPosition.z;\n vec2 pos = sign(aPosition.xy + position_delta) * mod(abs(aPosition.xy), position_modValue);\n vec2 highs = floor(abs(aPosition.xy) / position_modValue);\n float altitude = sign(z + position_delta) * (highs.x * 2.0 + highs.y) * pow(2.0, 15.0) + z;\n #ifdef HAS_TERRAIN_ALTITUDE\n altitude += aTerrainAltitude * 100.0;\n #endif\n altitude += minAltitude * 100.0;\n return vec3(pos, altitude);\n }\n#endif"),
18217
- ah.VERSION = "0.88.0", bh.VERSION = "0.88.0";
18240
+ ah.VERSION = "0.89.0", bh.VERSION = "0.89.0";
18218
18241
  if (s.mat4.create(), s.transcoders) {
18219
18242
  const t = r.Map.VERSION;
18220
18243
  if (t.indexOf("1.0.0-beta") >= 0 || t.indexOf("1.0.0-alpha") >= 0) {
@@ -18235,5 +18258,5 @@
18235
18258
  t.VectorTileLayer = ah, t.VectorTileLayerRenderer = Wl, t.WaterPlugin = hm, t.WireframePainter = Ay,
18236
18259
  t.WireframePlugin = im, Object.defineProperty(t, "t", {
18237
18260
  value: !0
18238
- }), "undefined" != typeof console && console.log("@maptalks/vt v0.88.0");
18261
+ }), "undefined" != typeof console && console.log("@maptalks/vt v0.89.0");
18239
18262
  }));